@font-face{font-family:LINE Seed Sans TH;font-weight:400;font-style:normal;font-display:swap;src:url(/assets/LINESeedSansTH-Regular-DMEjU-ca.woff2) format("woff2")}@font-face{font-family:LINE Seed Sans TH;font-weight:700;font-style:normal;font-display:swap;src:url(/assets/LINESeedSansTH-Bold-B2-H7xt1.woff2) format("woff2")}@font-face{font-family:LINE Seed Sans TH;font-weight:800;font-style:normal;font-display:swap;src:url(/assets/LINESeedSansTH-ExtraBold-BpCeszHz.woff2) format("woff2")}:root{--brand-teal: #00ac95;--brand-mid: #0097a4;--brand-blue: #0083af;--brand-gray: #6d6e71;--navy: #06182c;--teal: #00aeae;--surface: #ffffff;--surface-muted: #f8f9fc;--surface-raised: #ffffff;--surface-inverse: #06182c;--line: #e9edf0;--line-strong: #6f8187;--ink: #06182c;--ink-body: #202c38;--ink-muted: #6d6e71;--ink-subtle: #909498;--ink-inverse: #ffffff;--ink-inverse-body: #b0bcc8;--primary: #007a7a;--on-primary: #ffffff;--primary-soft: #e5f5f5;--accent: #006d8f;--focus: var(--primary);--danger: #b42318;--danger-soft: #fef3f2;--warning: #b54708;--warning-soft: #fffaeb;--success: #067647;--success-soft: #ecfdf3;--font-sans: "LINE Seed Sans TH", "Noto Sans Thai", system-ui, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px;--shadow-md: 0 8px 24px rgba(6, 24, 44, .1);--rule-width: 48px;--rule-weight: 3px;--font-heading: var(--font-sans);--font-body: var(--font-sans);--color-bg: var(--surface-muted);--color-surface: var(--surface);--color-text: var(--ink);--color-accent: var(--primary);--color-divider: var(--line);--color-neutral-100: var(--ink-body);--color-neutral-200: var(--ink-body);--color-neutral-300: var(--ink-muted);--color-neutral-400: var(--ink-muted);--color-neutral-500: var(--ink-muted);--color-neutral-600: var(--ink-muted);--color-neutral-800: var(--surface-muted);--color-neutral-900: var(--surface-muted);--shadow-lg: var(--shadow-md)}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--surface-muted);color:var(--ink-body);font-family:var(--font-sans);font-size:15px;line-height:26px;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);color:var(--ink);margin:0 0 var(--space-2)}h1{font-size:36px;line-height:46px;font-weight:800}h2{font-size:24px;line-height:34px;font-weight:800}h3{font-size:18px;line-height:28px;font-weight:700}h4{font-size:16px;line-height:26px;font-weight:700}h5{font-size:15px;line-height:24px;font-weight:700}h6{font-size:12px;line-height:16px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--primary)}p{margin:0 0 var(--space-2)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.text-muted{color:var(--ink-muted)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.app-shell{display:flex;height:100vh;overflow:hidden}.sidebar{width:248px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;transition:width .2s ease}.sidebar-brand{padding:20px 20px 16px;display:flex;align-items:center;gap:10px}.sidebar-logo{width:38px;height:38px;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.sidebar-logo img{width:100%;height:100%;object-fit:contain}.sidebar-brand-text{flex:1;min-width:0}.sidebar-brand-name{font-weight:800;font-size:15px;line-height:20px;color:var(--ink);white-space:nowrap}.sidebar-brand-sub{font-size:12px;line-height:16px;color:var(--ink-muted);white-space:nowrap}.sidebar-nav{flex:1;overflow-y:auto;padding:4px 12px 12px;display:flex;flex-direction:column;gap:2px}.sidebar-foot{padding:12px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-muted)}.sidebar-collapse-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:none;color:var(--ink-muted);cursor:pointer}.sidebar-collapse-btn:hover{background:var(--surface-muted);color:var(--ink)}.navlink{border-radius:var(--radius-md);padding:9px 12px;font-size:14px;line-height:22px;font-weight:400;color:var(--ink-body);display:flex;align-items:center;gap:10px;cursor:pointer;background:none;border:none;text-align:left;width:100%;font-family:var(--font-sans)}.navlink:hover{background:var(--surface-muted);text-decoration:none;color:var(--ink)}.navlink.active{background:var(--primary-soft);color:var(--primary);font-weight:700}.navlink-icon{width:18px;height:18px;flex-shrink:0;color:var(--ink-muted)}.navlink.active .navlink-icon{color:var(--primary)}.navlink-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nav-group{padding-top:var(--space-3)}.nav-group:first-child{padding-top:0}.nav-group-head{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:none;cursor:pointer;font-family:var(--font-sans);padding:6px 12px;color:var(--ink-muted)}.nav-group-head:hover{color:var(--ink)}.nav-group-label{display:flex;align-items:center;gap:var(--space-2);font-size:12px;line-height:16px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-group-label:before{content:"";flex:none;width:14px;height:var(--rule-weight);border-radius:var(--radius-full);background:linear-gradient(90deg,var(--brand-teal),var(--teal))}.nav-group-chevron{width:14px;height:14px;flex-shrink:0;transition:transform .15s}.nav-group.collapsed .nav-group-chevron{transform:rotate(-90deg)}.nav-group.collapsed .nav-group-items{display:none}.nav-group-items{display:flex;flex-direction:column;gap:2px;margin-top:2px}.sidebar-subheader{font-size:12px;line-height:16px;color:var(--ink-subtle);padding:10px 12px 2px;white-space:nowrap;overflow:hidden}.sidebar.collapsed{width:72px}.sidebar.collapsed .sidebar-brand{padding:16px 0;flex-direction:column;gap:12px}.sidebar.collapsed .sidebar-brand-text{display:none}.sidebar.collapsed .sidebar-nav{padding:8px}.sidebar.collapsed .navlink{justify-content:center;padding:10px;gap:0}.sidebar.collapsed .navlink-label{display:none}.sidebar.collapsed .nav-group{padding-top:8px;margin-top:8px;border-top:1px solid var(--line)}.sidebar.collapsed .nav-group:first-child{margin-top:0;border-top:0}.sidebar.collapsed .nav-group-head,.sidebar.collapsed .sidebar-subheader{display:none}.sidebar.collapsed .nav-group.collapsed .nav-group-items{display:flex}.sidebar.collapsed .sidebar-foot{padding:12px 8px}.sidebar.collapsed .sidebar-foot .btn{padding:9px}.main-area{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:68px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:var(--surface);border-bottom:1px solid var(--line)}.topbar-eyebrow{display:flex;align-items:center;gap:var(--space-2);font-size:12px;line-height:16px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--primary)}.topbar-eyebrow:before{content:"";width:28px;height:var(--rule-weight);border-radius:var(--radius-full);background:linear-gradient(90deg,var(--brand-teal),var(--teal))}.topbar h4{margin:2px 0 0;font-size:18px;line-height:26px;font-weight:800}.topbar-user{transition:background .15s}.topbar-user:hover{background:var(--surface-muted)!important}.content-area{flex:1;overflow-y:auto;overflow-x:auto;padding:24px 28px}.avatar{width:38px;height:38px;border-radius:50%;flex-shrink:0;background:var(--navy);color:var(--ink-inverse);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;text-decoration:none;font-family:var(--font-sans);font-weight:700;font-size:13px;line-height:20px;padding:9px 18px;border-radius:var(--radius-md);border:1px solid transparent}.btn:hover{text-decoration:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover:not(:disabled){background:#066}.btn-secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-secondary:hover:not(:disabled){background:var(--surface-muted)}.btn-ghost{background:transparent;color:var(--primary)}.btn-ghost:hover:not(:disabled){background:var(--primary-soft)}.btn-danger,.btn-reject{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled),.btn-reject:hover:not(:disabled){background:#912018}.btn-approve{background:var(--success);color:#fff}.btn-approve:hover:not(:disabled){background:#05603a}.btn-change-password,.btn-reset-password,.btn-set-password{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-change-password:hover:not(:disabled),.btn-reset-password:hover:not(:disabled),.btn-set-password:hover:not(:disabled){background:var(--surface-muted)}.btn-sm{padding:5px 12px;font-size:12px;line-height:18px}.btn-confirm-action{background:var(--primary);color:var(--on-primary);border:1px solid transparent;border-radius:var(--radius-md);padding:8px 18px;font-weight:700;cursor:pointer;font-family:var(--font-sans)}.btn-cancel-action{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-md);padding:8px 18px;font-weight:700;cursor:pointer;font-family:var(--font-sans)}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:13px;line-height:20px;font-weight:700;color:var(--ink)}.field .req{color:var(--danger)}.input,select.select,textarea.input{width:100%;min-height:40px;padding:8px 12px;font:inherit;font-size:14px;line-height:22px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.input:hover,select.select:hover{border-color:var(--ink-muted)}.input:focus-visible,select.select:focus-visible{border-color:var(--primary)}.input:disabled,select.select:disabled{opacity:.55;cursor:not-allowed;background:var(--surface-muted)}textarea.input{min-height:80px;resize:vertical}.select-pill{border:none;background:transparent;border-radius:var(--radius-full);font-size:13px;padding:4px 6px;color:var(--ink)}.pill-group{display:inline-flex;align-items:center;gap:6px;font-size:13px;background:var(--surface-muted);border:1px solid var(--line);padding:5px 12px;border-radius:var(--radius-full)}.card{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-6)}.card-flat{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg)}.stat-card{background:var(--surface-muted);border-radius:var(--radius-lg);padding:var(--space-6)}.stat-label{font-size:13px;line-height:22px;color:var(--ink-body);margin-bottom:var(--space-2)}.stat-value{font-weight:800;font-size:36px;line-height:44px;color:var(--ink);font-variant-numeric:tabular-nums}.stat-sub{font-size:13px;line-height:22px;color:var(--ink-muted);margin-top:var(--space-1)}.tag{display:inline-flex;align-items:center;font-size:12px;line-height:18px;font-weight:700;padding:2px 10px;border-radius:var(--radius-full)}.tag-neutral{background:var(--surface-muted);color:var(--ink-body);border:1px solid var(--line)}.tag-accent{background:var(--primary-soft);color:var(--primary)}.tag-accent-2{background:var(--primary-soft);color:var(--accent)}.tag-success{background:var(--success-soft);color:var(--success)}.tag-danger{background:var(--danger-soft);color:var(--danger)}.tag-warning,.tag-caution{background:var(--warning-soft);color:var(--warning)}.table-wrap{overflow-x:auto;overflow-y:auto;max-height:min(560px,62vh)}.table{width:100%;border-collapse:collapse;font-size:13px;line-height:22px}.table th{text-align:left;font-size:13px;line-height:20px;font-weight:700;color:var(--ink);padding:10px 12px;border-bottom:1px solid var(--line-strong);white-space:nowrap;position:sticky;top:0;z-index:1;background:var(--surface)}.table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.table tbody tr:hover{background:var(--surface-muted)}.table-sticky-cols th:nth-child(1),.table-sticky-cols td:nth-child(1){position:sticky;left:0;z-index:2;background:var(--surface);width:100px;min-width:100px;max-width:100px}.table-sticky-cols th:nth-child(2),.table-sticky-cols td:nth-child(2){position:sticky;left:100px;z-index:2;background:var(--surface);box-shadow:3px 0 6px -3px #06182c26}.table-sticky-cols th:nth-child(1),.table-sticky-cols th:nth-child(2){z-index:3}.table-sticky-cols tbody tr:hover td:nth-child(1),.table-sticky-cols tbody tr:hover td:nth-child(2){background:var(--surface-muted)}.table-sticky-col1 th:nth-child(1),.table-sticky-col1 td:nth-child(1){position:sticky;left:0;z-index:2;background:var(--surface);box-shadow:3px 0 6px -3px #06182c26}.table-sticky-col1 th:nth-child(1){z-index:3}.table-sticky-col1 tbody tr:hover td:nth-child(1){background:var(--surface-muted)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;z-index:100;background:#06182c80}.dialog{width:min(480px,100%);display:flex;flex-direction:column;gap:12px;padding:var(--space-6);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-md);max-height:calc(100vh - 32px);overflow-y:auto}.dialog-title{margin:0;font-size:18px;line-height:28px;font-weight:800}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.hr{height:1px;border:0;margin:16px 0;background:var(--line)}.toast{position:fixed;bottom:24px;right:24px;background:var(--navy);color:var(--ink-inverse);padding:12px 20px;border-radius:var(--radius-md);font-size:13px;font-weight:700;z-index:200;box-shadow:var(--shadow-md)}.sidebar-nav,.content-area,.table-wrap,.dialog,.scroll-thin{scrollbar-width:auto;scrollbar-color:var(--ink-subtle) var(--surface-muted)}.sidebar-nav::-webkit-scrollbar,.content-area::-webkit-scrollbar,.table-wrap::-webkit-scrollbar,.dialog::-webkit-scrollbar,.scroll-thin::-webkit-scrollbar{width:12px;height:12px}.sidebar-nav::-webkit-scrollbar-track,.content-area::-webkit-scrollbar-track,.table-wrap::-webkit-scrollbar-track,.dialog::-webkit-scrollbar-track,.scroll-thin::-webkit-scrollbar-track{background:var(--surface-muted)}.sidebar-nav::-webkit-scrollbar-thumb,.content-area::-webkit-scrollbar-thumb,.table-wrap::-webkit-scrollbar-thumb,.dialog::-webkit-scrollbar-thumb,.scroll-thin::-webkit-scrollbar-thumb{background:var(--ink-subtle);border-radius:8px;border:2px solid var(--surface-muted);background-clip:padding-box}.sidebar-nav::-webkit-scrollbar-thumb:hover,.content-area::-webkit-scrollbar-thumb:hover,.table-wrap::-webkit-scrollbar-thumb:hover,.dialog::-webkit-scrollbar-thumb:hover,.scroll-thin::-webkit-scrollbar-thumb:hover{background:var(--ink-muted);background-clip:padding-box}.sidebar-nav::-webkit-scrollbar-corner,.content-area::-webkit-scrollbar-corner,.table-wrap::-webkit-scrollbar-corner{background:var(--surface-muted)}.grid-2{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}.grid-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}@media (max-width: 900px){.grid-2{grid-template-columns:1fr}.grid-stats{grid-template-columns:repeat(2,1fr)}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:22px;background:var(--surface-muted)}.login-panel{width:min(920px,100%);min-height:560px;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;background:var(--surface)}.login-brand-side{background:var(--navy);display:flex;flex-direction:column;justify-content:space-between;padding:48px;color:var(--ink-inverse)}.login-brand-side h1,.login-brand-side h2,.login-brand-side h3{color:var(--ink-inverse)}.login-brand-mark{display:flex;align-items:center;gap:12px}.login-brand-mark-box{width:40px;height:40px;background:var(--surface);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--primary);font-size:18px}.login-form-side{display:flex;flex-direction:column;justify-content:center;padding:48px}@media (max-width: 760px){.login-panel{grid-template-columns:1fr}.login-brand-side{padding:28px;min-height:0;gap:24px}.login-form-side{padding:28px}}.check-pill{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-md);cursor:pointer;font-size:14px;margin-bottom:6px;background:var(--surface)}.check-pill.checked{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);font-weight:700}
