@import "https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@400;500;600;700&display=swap";:root{color:#142033;font-synthesis:none;--navy:#082441;--navy2:#0d3154;--orange:#ef6400;--line:#dce3e9;--muted:#687587;--green:#16834b;--red:#d92d20;background:#f5f7f9;font-family:Noto Sans Thai,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--navy),#061b31);color:#fff;z-index:30;width:260px;padding:18px 12px;position:fixed;inset:0 auto 0 0;overflow:auto}.brand{align-items:center;gap:12px;height:62px;padding:0 8px 14px;display:flex}.brand>span{border:1px solid #7b95ad;border-radius:9px;place-items:center;width:40px;height:40px;display:grid}.brand strong{font-size:20px;display:block}.brand small{color:#aac0d2;font-size:10px;display:block}.brand>button{color:#fff;background:0 0;border:0;margin-left:auto;display:none}.brand svg{width:23px}.sidebar nav p{color:#7f9ab2;text-transform:uppercase;letter-spacing:.1em;margin:22px 12px 6px;font-size:10px;font-weight:700}.sidebar nav a{color:#dbe6ef;border-radius:8px;align-items:center;gap:12px;margin:2px 0;padding:10px 12px;font-size:14px;display:flex}.sidebar nav a:hover{background:#ffffff0d}.sidebar nav a.active{background:var(--orange);color:#fff;font-weight:700}.sidebar nav svg{width:18px}.workspace{min-width:0;margin-left:260px}.topbar{border-bottom:1px solid var(--line);z-index:20;background:#fff;align-items:center;gap:20px;height:68px;padding:0 24px;display:flex;position:sticky;top:0}.search{border:1px solid var(--line);border-radius:9px;flex:1;align-items:center;gap:10px;max-width:600px;height:42px;padding:0 12px;display:flex}.search input{border:0;outline:0;flex:1;min-width:0}.search svg{width:19px;color:var(--muted)}kbd{color:#6f7780;background:#f0f3f5;border-radius:5px;padding:2px 6px;font-size:11px}.topbar button{border:1px solid var(--line);background:#fff;border-radius:9px;height:42px}.warehouse{align-items:center;gap:9px;padding:0 14px;font-weight:600;display:flex}.warehouse svg{width:18px}.icon-button{width:42px;position:relative}.icon-button svg{width:19px}.icon-button b{background:var(--orange);color:#fff;border-radius:50%;place-items:center;width:18px;height:18px;font-size:9px;display:grid;position:absolute;top:-7px;right:-5px}.profile{align-items:center;gap:9px;display:flex}.profile>span{color:#46576a;background:#e6ebef;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.profile strong,.profile small{white-space:nowrap;display:block}.profile strong{font-size:12px}.profile small{color:var(--muted);font-size:10px}.menu{width:42px;display:none}.menu svg{width:20px}main{max-width:1600px;margin:auto;padding:26px 28px 50px}.page-head{justify-content:space-between;align-items:end;margin-bottom:20px;display:flex}.page-head p{color:var(--muted);margin:0 0 3px;font-size:11px}.page-head h1{border-left:5px solid var(--orange);letter-spacing:-.04em;margin:0;padding-left:16px;font-size:30px}.actions{gap:10px;display:flex}.actions button,.modal-actions button{color:#146f41;background:#fff;border:1px solid #17844b;border-radius:9px;align-items:center;gap:8px;height:44px;padding:0 18px;font-weight:700;display:flex}.actions button.primary,.primary{background:var(--orange)!important;border-color:var(--orange)!important;color:#fff!important}.actions svg{width:19px}.kpis{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px;display:grid}.kpi{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:14px;min-height:96px;padding:16px;display:flex}.kpi>span{border-radius:10px;place-items:center;width:48px;height:48px;display:grid}.kpi>span svg{width:23px}.kpi .green{color:var(--green);background:#e3f5ea}.kpi .red{color:var(--red);background:#fee9e7}.kpi .orange{color:#d86b00;background:#fff0d6}.kpi .blue{color:#245cc7;background:#e8efff}.kpi small,.kpi strong{display:block}.kpi small{color:#4b5767;font-size:11px}.kpi strong{margin-top:4px;font-size:21px}.dashboard-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.panel{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:70px;padding:15px 18px;display:flex}.panel-head small{color:var(--orange);text-transform:uppercase;letter-spacing:.08em;font-size:9px;font-weight:700}.panel-head h2{margin:1px 0;font-size:18px}.panel-head button{color:#155bd4;background:0 0;border:0;font-size:11px}.task{border-bottom:1px solid #edf0f3;grid-template-columns:38px 1fr auto 78px;align-items:center;gap:11px;padding:11px 18px;display:grid}.task:last-child{border:0}.task-icon{width:34px;height:34px;color:var(--orange);background:#fff0e4;border-radius:8px;place-items:center;display:grid}.task-icon svg{width:17px}.task strong,.task small{display:block}.task strong{font-size:12px}.task small{color:var(--muted);font-size:9px}.task em{color:#157542;background:#e7f5ec;border-radius:20px;padding:4px 8px;font-size:9px;font-style:normal}.task:first-of-type em{color:var(--red);background:#fee9e7}.task button{background:#fff;border:1px solid #bac4ce;border-radius:7px;height:32px;font-size:10px}.chart-area{height:240px;padding:20px 16px 0;display:flex}.y-axis{color:var(--muted);flex-direction:column;justify-content:space-between;padding-bottom:28px;font-size:9px;display:flex}.bars{border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:repeating-linear-gradient(#fff 0 39px,#edf0f3 40px);flex:1;justify-content:space-around;align-items:end;margin-left:8px;display:flex}.week{flex-direction:column;justify-content:end;align-items:center;width:17%;height:100%;display:flex}.week>div{justify-content:center;align-items:end;gap:4px;width:100%;height:185px;display:flex}.week i{background:#39a45d;width:28%;display:block}.week i+i{background:#f58a24}.week small{white-space:nowrap;margin:7px 0 4px;font-size:8px}.legend{justify-content:center;gap:25px;height:38px;padding-top:10px;font-size:9px;display:flex}.legend i{background:#39a45d;width:9px;height:9px;margin-right:5px;display:inline-block}.legend i.out{background:#f58a24}.table-panel{min-width:0}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:10px}th{text-align:left;color:#4e5968;white-space:nowrap;background:#f3f5f7;padding:9px 12px}td{white-space:nowrap;border-bottom:1px solid #edf0f3;padding:9px 12px}.danger{color:var(--red);font-weight:700}.positive{color:var(--green);font-weight:700}.status{border-radius:16px;padding:3px 8px;font-weight:700}.status.low,.status.s1{color:var(--red);background:#fee9e7}.status.s0{color:var(--green);background:#e3f5ea}.status.s2{color:#bd6108;background:#fff0d6}.status.s3{color:#245cc7;background:#e8efff}.modal-backdrop{z-index:100;background:#07142499;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:min(560px,100%);max-height:92vh;overflow:auto;box-shadow:0 24px 70px #00152e55}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-head small{color:var(--orange);font-size:9px;font-weight:700}.modal-head h2{margin:0;font-size:23px}.modal-head button{background:#f1f3f5;border:0;border-radius:50%;width:34px;height:34px}.modal-head svg{width:17px}.modal form{padding:22px 24px}.modal label{margin-bottom:16px;font-size:11px;font-weight:600;display:block}.modal input,.modal select,.modal textarea{border:1px solid var(--line);border-radius:8px;outline:none;width:100%;margin-top:6px;padding:11px 12px}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#2b68d8;box-shadow:0 0 0 3px #2b68d81c}.modal textarea{resize:vertical;min-height:80px}.field{position:relative}.field svg{width:18px;color:var(--muted);position:absolute;top:17px;left:12px}.field input{padding-left:38px}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.modal-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;margin:24px -24px -22px;padding:16px 24px;display:flex}.modal-actions button{border-color:var(--line);color:#3a4654}.scrim{display:none}@media (width<=1100px){.profile div{display:none}.warehouse{font-size:0}.warehouse svg{margin:0}.kpis{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}@media (width<=760px){.sidebar{transition:all .2s;transform:translate(-100%)}.sidebar.open{transform:none}.brand>button{display:block}.scrim.show{z-index:25;background:#07142499;border:0;display:block;position:fixed;inset:0}.workspace{margin-left:0}.menu{display:block}.topbar{gap:8px;padding:0 12px}.search kbd,.warehouse,.profile{display:none}main{padding:20px 14px}.page-head{align-items:flex-start;gap:18px}.page-head h1{font-size:24px}.page-head p{display:none}.actions button{padding:0 12px;font-size:12px}.actions button+button{display:none}.kpis{grid-template-columns:1fr 1fr;gap:9px}.kpi{min-height:82px;padding:12px}.kpi>span{width:38px;height:38px}.kpi strong{font-size:15px}.task{grid-template-columns:34px 1fr 68px}.task em,.chart{display:none}.dashboard-grid{gap:12px}.panel-head{height:64px}.table-panel table{min-width:600px}}.boot-screen{min-height:100vh;color:var(--muted);place-items:center;display:grid}.login-page{background:#fff;grid-template-columns:minmax(340px,1fr) minmax(420px,560px);max-width:none;min-height:100vh;padding:0;display:grid}.login-brand{background:var(--navy);color:#fff;align-items:center;gap:24px;padding:64px clamp(36px,7vw,110px);display:flex}.login-brand>span{border:1px solid #68839c;border-radius:16px;flex:none;place-items:center;width:72px;height:72px;display:grid}.login-brand svg{width:36px}.login-brand strong{font-size:42px}.login-brand p{color:#b9c9d6;max-width:520px;line-height:1.8}.login-panel{align-self:center;padding:48px clamp(32px,6vw,80px)}.login-title{align-items:center;gap:16px;margin-bottom:32px;display:flex}.login-title>svg{color:var(--orange);width:30px}.login-title small{color:var(--orange);font-weight:700}.login-title h1{margin:3px 0;font-size:30px}.login-panel label{margin:18px 0;font-size:12px;font-weight:700;display:block}.login-panel input{border:1px solid var(--line);border-radius:9px;outline:none;width:100%;height:48px;margin-top:7px;padding:0 13px}.login-panel input:focus{border-color:#2563c8;box-shadow:0 0 0 3px #2563c81a}.login-panel form>button{border:0;border-radius:9px;width:100%;height:48px;margin-top:8px;font-weight:700}.login-error{color:var(--red);background:#fee9e7;border-radius:8px;padding:10px 12px;font-size:12px}.login-help{color:var(--muted);text-align:center;margin-top:18px;font-size:10px}.profile-button{text-align:left;border:0!important;height:auto!important;padding:0!important}.profile-button>span{color:#46576a;background:#e6ebef;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.cell-sub{color:var(--muted);font-weight:400;display:block}.role{color:#245cc7;background:#e8efff;border-radius:14px;margin:2px;padding:3px 7px;display:inline-block}.table-action{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 8px}.add-user{border:0;border-radius:9px;align-items:center;gap:7px;padding:10px 15px;display:flex}.add-user svg{width:17px}.notice{color:var(--green);background:#e3f5ea;border-radius:9px;align-items:center;gap:9px;margin-bottom:14px;padding:12px 14px;font-size:12px;display:flex}.notice svg,.form-help svg{width:18px}.form-help{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}@media (width<=900px){.login-page{background:var(--navy);padding-top:44px;display:block}.login-brand{align-items:flex-start;padding:24px}.login-brand>span{width:48px;height:48px}.login-brand svg{width:24px}.login-brand strong{font-size:28px}.login-brand p{margin:5px 0;font-size:12px}.login-panel{background:#fff;border-radius:24px 24px 0 0;min-height:65vh;padding:34px 24px}.login-title h1{font-size:26px}}.sidebar nav button{color:#dbe6ef;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;width:100%;margin:2px 0;padding:10px 12px;font-size:14px;display:flex}.sidebar nav button:hover{background:#ffffff0d}.sidebar nav button.active{background:var(--orange);color:#fff;font-weight:700}.sidebar nav button svg{width:18px}.inventory-search{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;height:48px;margin-bottom:16px;padding-left:14px;display:flex}.inventory-search svg{width:18px;color:var(--muted)}.inventory-search input{border:0;outline:0;flex:1;padding:0 12px}.inventory-search button{border:0;border-left:1px solid var(--line);color:#155bd4;background:#fff;border-radius:0 10px 10px 0;height:100%;padding:0 20px;font-weight:700}.barcode-layout{grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:16px;display:grid}.scanner-panel,.label-panel{padding-bottom:20px}.camera-frame{color:#b9c9d6;background:#071d34;border:1px dashed #9baabd;border-radius:12px;place-items:center;height:260px;margin:18px;display:grid;position:relative;overflow:hidden}.camera-frame video{object-fit:cover;width:100%;height:100%;display:none;position:absolute;inset:0}.camera-frame.active video{display:block}.camera-frame>svg{opacity:.55;width:58px;height:58px}.camera-frame span{color:#fff;background:#071d34cc;border-radius:20px;padding:6px 12px;font-size:11px;position:absolute;bottom:14px}.scanner-actions{align-items:center;gap:14px;padding:0 18px;display:flex}.scanner-actions button{border:0;border-radius:8px;align-items:center;gap:7px;padding:10px 14px;font-weight:700;display:flex}.scanner-actions svg{width:18px}.scanner-actions span{color:var(--muted);align-items:center;gap:7px;font-size:10px;display:flex}.scan-code-form{grid-template-columns:1fr auto;align-items:end;gap:10px;padding:18px;display:grid}.scan-code-form label,.label-panel>label{font-size:11px;font-weight:700}.scan-code-form input,.label-panel select{border:1px solid var(--line);border-radius:8px;width:100%;margin-top:6px;padding:11px 12px}.scan-code-form button{border:1px solid var(--line);background:#fff;border-radius:8px;height:42px;padding:0 18px;font-weight:700}.number-pad{grid-template-columns:repeat(3,1fr);gap:8px;padding:0 18px;display:grid}.number-pad button{border:1px solid var(--line);background:#f8fafb;border-radius:8px;height:44px;font-weight:700}.number-pad button:active{background:#e7edf2}.scanner-message{color:#174ea6;background:#eef5ff;border-radius:8px;margin:14px 18px 0;padding:10px 12px;font-size:11px}.label-panel>label{padding:18px 18px 0;display:block}.stock-label{text-align:center;border:1px dashed #8da0b2;border-radius:12px;margin:18px;padding:20px}.stock-label strong,.stock-label small{display:block}.stock-label strong{font-size:16px}.stock-label small{color:var(--muted);margin:4px 0 10px}.stock-label svg{width:100%;max-height:110px}.stock-label img{width:150px;height:150px;margin:8px auto;display:block}.stock-label p,.label-help{color:var(--muted);font-size:10px}.label-help{padding:0 18px;line-height:1.7}@media (width<=950px){.barcode-layout{grid-template-columns:1fr}.camera-frame{height:220px}}@media (width<=560px){.scan-code-form{grid-template-columns:1fr}.scan-code-form button{width:100%}.scanner-actions{flex-direction:column;align-items:flex-start}.stock-label,.camera-frame{margin:12px}}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.62}.busy-label{white-space:nowrap;justify-content:center;align-items:center;gap:8px;display:inline-flex}.spinner{width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.page-loading{min-height:180px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:12px;display:flex}.page-loading .spinner{width:28px;height:28px;color:var(--orange)}.feedback-modal,.confirm-modal{text-align:center;width:min(430px,100%);padding:34px 30px 28px;position:relative;overflow:visible}.modal-close{background:#f1f3f5;border:0;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:14px;right:14px}.modal-close svg{width:17px}.feedback-icon{color:#245cc7;background:#e8efff;border-radius:50%;place-items:center;width:62px;height:62px;margin:0 auto 18px;display:grid}.feedback-modal.success .feedback-icon{color:var(--green);background:#e3f5ea}.feedback-modal.error .feedback-icon,.feedback-icon.error{color:var(--red);background:#fee9e7}.feedback-icon svg{width:29px;height:29px}.feedback-modal h2,.confirm-modal h2{margin:0;font-size:23px}.feedback-modal>p,.confirm-modal>p{color:var(--muted);text-wrap:pretty;margin:9px 0 20px;font-size:13px;line-height:1.7}.feedback-detail{border:1px solid var(--line);text-align:left;background:#f3f5f7;border-radius:10px;gap:6px;margin:0 0 18px;padding:14px;display:grid}.feedback-detail code{color:var(--navy);word-break:break-all;-webkit-user-select:all;user-select:all;font-size:16px;font-weight:700;display:block}.feedback-detail small{color:var(--muted);line-height:1.6}.feedback-action{border:0;border-radius:9px;min-width:120px;height:44px;font-weight:700}.confirm-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.confirm-actions button{border:1px solid var(--line);background:#fff;border-radius:9px;height:44px;font-weight:700}.danger-button{color:#fff;background:var(--red)!important;border-color:var(--red)!important}.boot-screen .page-loading{min-height:auto}.modal button:focus-visible,.actions button:focus-visible,.table-action:focus-visible{outline-offset:2px;outline:3px solid #2563c833}@media (width>=1440px){main{padding-left:40px;padding-right:40px}.kpis,.dashboard-grid{gap:18px}}@media (width<=1200px){.topbar{gap:12px}.dashboard-grid{grid-template-columns:1fr}.chart{display:block}.barcode-layout{grid-template-columns:1fr}.label-panel{max-width:none}}@media (width<=900px){.sidebar{transition:transform .2s;transform:translate(-100%)}.sidebar.open{transform:none}.brand>button{display:block}.scrim.show{z-index:25;background:#07142499;border:0;display:block;position:fixed;inset:0}.workspace{margin-left:0}.menu{display:block}.topbar{padding:0 14px}.warehouse{display:none}.search{max-width:none}.profile div{display:none}main{padding:22px 18px 44px}.table-scroll{-webkit-overflow-scrolling:touch}.table-panel table,.users-page table{min-width:720px}.modal{max-height:calc(100dvh - 28px)}}@media (width<=640px){.topbar{height:60px}.topbar .search{height:40px}.search kbd,.icon-button{display:none}.profile-button{flex:0 0 42px;width:42px!important;display:flex!important}.profile-button>span{width:38px;height:38px}.page-head{flex-direction:column;align-items:stretch;gap:14px}.page-head h1{font-size:23px}.page-head .actions,.page-head>button{width:100%}.page-head .actions{grid-template-columns:1fr 1fr;display:grid}.page-head .actions button,.page-head .actions button+button,.page-head>button{justify-content:center;display:flex}.kpis{grid-template-columns:1fr 1fr}.modal-backdrop{align-items:end;padding:0}.modal{border-radius:18px 18px 0 0;width:100%;max-height:94dvh}.modal-head,.modal form{padding:18px}.modal-actions{background:#fff;margin:22px -18px -18px;padding:14px 18px;position:sticky;bottom:0}.form-row{grid-template-columns:1fr;gap:0}.feedback-modal,.confirm-modal{border-radius:18px 18px 0 0;padding:32px 20px 22px}.inventory-search{grid-template-columns:auto minmax(0,1fr);height:auto;min-height:48px;display:grid}.inventory-search button{border-left:0;border-top:1px solid var(--line);border-radius:0 0 10px 10px;grid-column:1/-1;height:42px}.scanner-actions button{justify-content:center;width:100%}.camera-frame{height:min(58vw,240px)}.stock-label img{width:120px;height:120px}.label-panel>label select{font-size:12px}.task{padding:11px 12px}.task button{width:64px}}@media (width<=420px){main{padding:18px 10px 36px}.page-head h1{padding-left:12px;font-size:21px}.page-head .actions,.kpis{grid-template-columns:1fr}.kpi{min-height:76px}.task{grid-template-columns:30px minmax(0,1fr)}.task button{grid-column:2;width:100%;margin-top:2px}.panel-head{padding:13px 14px}.panel-head h2{font-size:16px}.number-pad{padding:0 12px}.modal-actions,.confirm-actions{grid-template-columns:1fr}.modal-actions{display:grid}.modal-actions button{justify-content:center;width:100%}.feedback-modal h2,.confirm-modal h2{font-size:21px}.login-panel{padding:30px 18px}.login-brand{padding:20px 18px}.login-brand p{line-height:1.55}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.static-control{border:1px solid var(--line);background:#fff;border-radius:9px;height:42px}.button-link{background:var(--green);color:#fff;border-radius:9px;align-items:center;gap:8px;height:44px;padding:0 16px;font-weight:700;text-decoration:none;display:inline-flex}.button-link svg{width:18px}.empty-cell{color:var(--muted);text-align:center!important;padding:30px!important}.empty-state{color:var(--muted);text-align:center;padding:38px 24px;line-height:1.7}.info-banner{color:#174ea6;background:#eef5ff;border:1px solid #cfddf4;border-radius:9px;margin-bottom:14px;padding:12px 14px;font-size:12px}.form-panels,.settings-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-panel .panel-head h2,.settings-grid .panel-head h2{align-items:center;gap:8px;display:flex}.form-panel .panel-head svg,.settings-grid .panel-head svg{width:19px}.form-panel form{padding:22px}.form-panel label{margin-bottom:15px;font-size:11px;font-weight:700;display:block}.form-panel input,.form-panel select,.form-panel textarea{border:1px solid var(--line);border-radius:8px;width:100%;margin-top:6px;padding:11px 12px}.form-panel textarea{min-height:84px}.form-submit{border:0;border-radius:9px;width:100%;height:44px;font-weight:700}.scope-list{border:1px solid var(--line);border-radius:9px;margin:0;padding:12px}.scope-list legend{font-size:11px;font-weight:700}.scope-list label{align-items:center;gap:8px;margin:8px 0;display:flex}.scope-list input{width:auto;margin:0}.panel-head>button{align-items:center;gap:6px;display:flex}.panel-head>button svg{width:15px}@media (width<=1050px){.form-panels,.settings-grid{grid-template-columns:1fr}}@media (width<=640px){.button-link{justify-content:center;width:100%}.static-control{display:none}.form-panel form{padding:18px}}
