@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--brand-900: #041b42;--brand-800: #06265a;--brand-700: #0b3a7d;--brand-600: #0f4c9e;--brand-500: #1665c1;--brand-100: #e8f0fb;--brand-50: #f3f7fd;--gold-600: #b8860b;--gold-500: #d8a62a;--gold-400: #f1c75b;--gold-100: #fff4d6;--ink: #0f1b2d;--text: #1f2a3d;--text-2: #46546b;--muted: #6b7890;--subtle: #93a0b4;--line: #e4e9f0;--line-2: #eef1f6;--surface: #ffffff;--surface-2: #f8fafc;--bg: #f3f5f9;--success: #0f7a55;--success-bg: #e8f7f0;--success-line: #c3e8d6;--warning: #946200;--warning-bg: #fff6df;--warning-line: #f1dca4;--danger: #b4332f;--danger-bg: #fdf0ef;--danger-line: #f2cfcc;--info: #1d5fa8;--info-bg: #edf4fd;--info-line: #cfe0f6;--radius-sm: 7px;--radius: 10px;--radius-lg: 14px;--radius-xl: 18px;--shadow-xs: 0 1px 2px rgba(15, 27, 45, .05);--shadow-sm: 0 1px 2px rgba(15, 27, 45, .04), 0 2px 8px rgba(15, 27, 45, .04);--shadow-md: 0 4px 12px rgba(15, 27, 45, .06), 0 12px 32px rgba(15, 27, 45, .06);--shadow-lg: 0 24px 64px rgba(6, 18, 40, .22);--ring: 0 0 0 3px rgba(22, 101, 193, .16);--sidebar-w: 256px;--sidebar-w-collapsed: 74px;--topbar-h: 62px;--navy: var(--brand-800);--navy2: var(--brand-700);--blue: var(--brand-500);--gold: var(--gold-500);--gold2: var(--gold-400);--line2: var(--line-2);--shadow: var(--shadow-sm);font-family:Inter Variable,Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-feature-settings:"cv11","ss01";color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);font-size:13px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}svg{flex-shrink:0}:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}::selection{background:#1665c12e}*{scrollbar-width:thin;scrollbar-color:#cdd5e1 transparent}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-thumb{background:#cdd5e1;border-radius:9px;border:2px solid transparent;background-clip:padding-box}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh;transition:grid-template-columns .2s ease}.app-shell.collapsed{grid-template-columns:var(--sidebar-w-collapsed) minmax(0,1fr)}.sidebar{background:linear-gradient(185deg,#052150 0%,var(--brand-800) 45%,#041a3f 100%);color:#fff;position:sticky;top:0;height:100vh;z-index:40;display:flex;flex-direction:column;min-width:0}.sidebar:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 50% at 0% 0%,rgba(241,199,91,.08),transparent 60%)}.brand-box{display:flex;align-items:center;gap:10px;padding:14px 14px 12px;height:var(--topbar-h);border-bottom:1px solid rgba(255,255,255,.07);position:relative;z-index:1}.brand-box img{width:40px;height:34px;object-fit:contain;flex-shrink:0}.brand-text{min-width:0}.brand-title{font-weight:800;font-size:15px;letter-spacing:.06em;line-height:1.1}.brand-sub{font-size:10.5px;color:#9fb4d3;margin-top:2px;white-space:nowrap}.icon-btn.sidebar-close{display:none;margin-left:auto;background:transparent;border-color:#ffffff26;color:#fff}.sidebar nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:6px 10px 12px;position:relative;z-index:1;scrollbar-color:rgba(255,255,255,.14) transparent}.sidebar nav::-webkit-scrollbar-thumb{background:#ffffff24}.nav-section{margin-top:12px}.nav-label{padding:0 10px 6px;color:#6f8bb4;font-size:10px;text-transform:uppercase;font-weight:700;letter-spacing:.13em;white-space:nowrap}.nav-item{position:relative;display:flex;align-items:center;gap:11px;padding:0 11px;height:36px;margin:1px 0;border-radius:9px;color:#cfdbee;font-size:13px;font-weight:550;transition:background .15s,color .15s;white-space:nowrap}.nav-item svg{width:17px;height:17px;color:#86a2c9;transition:color .15s}.nav-item:hover{background:#ffffff12;color:#fff}.nav-item:hover svg{color:#dbe6f6}.nav-item.active{background:linear-gradient(90deg,#f1c75b29,#ffffff0f);color:#fff}.nav-item.active:before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--gold-400)}.nav-item.active svg{color:var(--gold-400)}.nav-item .nav-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--gold-500);color:#2a1d00;font-size:10.5px;font-weight:800;display:grid;place-items:center}.sidebar-foot{position:relative;z-index:1;padding:10px 12px 12px;border-top:1px solid rgba(255,255,255,.07);display:grid;gap:8px}.collapse-btn{display:flex;align-items:center;gap:10px;height:34px;padding:0 11px;width:100%;border:0;border-radius:9px;background:#ffffff0d;color:#b5c6de;font-size:12px;font-weight:600}.collapse-btn:hover{background:#ffffff1a;color:#fff}.credit{font-size:10px;color:#6f8bb4;text-align:center;letter-spacing:.02em;line-height:1.4}.credit strong{color:#a9bcd8;font-weight:650}.app-shell.collapsed .brand-text,.app-shell.collapsed .nav-label,.app-shell.collapsed .nav-item span,.app-shell.collapsed .credit,.app-shell.collapsed .collapse-btn span,.app-shell.collapsed .nav-badge{display:none}.app-shell.collapsed .brand-box{justify-content:center;padding:14px 8px 12px}.app-shell.collapsed .nav-section{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06)}.app-shell.collapsed .nav-section:first-child{border-top:0}.app-shell.collapsed .nav-item,.app-shell.collapsed .collapse-btn{justify-content:center;padding:0}.app-shell.collapsed .nav-item[data-tip]:hover:after{content:attr(data-tip);position:fixed;left:calc(var(--sidebar-w-collapsed) + 6px);transform:translateY(0);background:var(--ink);color:#fff;padding:6px 10px;border-radius:7px;font-size:12px;font-weight:600;box-shadow:var(--shadow-md);z-index:100;pointer-events:none;white-space:nowrap}.sidebar-backdrop{display:none}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:var(--topbar-h);background:#ffffffeb;backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 22px;position:sticky;top:0;z-index:30}.topbar-left{display:flex;align-items:center;gap:14px;min-width:0;flex:1}.icon-btn.menu-toggle{display:none}.page-context{min-width:0}.page-context strong{display:block;font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.page-context span{font-size:11px;color:var(--muted);white-space:nowrap}.search-trigger{display:flex;align-items:center;gap:9px;width:min(400px,36vw);height:36px;padding:0 8px 0 11px;border:1px solid var(--line);background:var(--surface-2);border-radius:var(--radius);color:var(--subtle);font-size:12.5px;text-align:left;transition:border-color .15s,background .15s}.search-trigger:hover{border-color:#cbd5e3;background:#fff;color:var(--muted)}.search-trigger span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kbd{display:inline-flex;align-items:center;gap:2px;font-size:10.5px;font-weight:650;color:var(--muted);border:1px solid var(--line);border-bottom-width:2px;background:#fff;border-radius:5px;padding:1px 5px;font-family:inherit;line-height:1.4;white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:8px}.user-trigger{display:flex;align-items:center;gap:9px;padding:4px 8px 4px 4px;border-radius:999px;border:1px solid transparent;background:none;transition:background .15s,border-color .15s}.user-trigger:hover,.user-trigger[aria-expanded=true]{background:var(--surface-2);border-color:var(--line)}.user-chip{display:flex;align-items:center;gap:9px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand-700),var(--brand-500));color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.02em;flex-shrink:0}.avatar.lg{width:44px;height:44px;font-size:15px}.user-meta{text-align:left;line-height:1.2}.user-meta strong{display:block;font-size:12.5px;color:var(--ink);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-meta span{font-size:11px;color:var(--muted)}.content{padding:22px 26px 44px;width:100%;max-width:1680px;margin:0 auto;flex:1;animation:pageIn .22s ease-out}@keyframes pageIn{0%{opacity:0;transform:translateY(4px)}}.boot{padding:60px;max-width:600px;margin:auto}.bell{position:relative}.bell .count{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--danger);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;border:2px solid #fff}.bell .count.gold{background:var(--gold-500);color:#2a1d00}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-head h1{margin:0;font-size:21px;letter-spacing:-.025em;color:var(--ink);font-weight:750;display:flex;align-items:center;gap:8px}.page-head p{margin:5px 0 0;color:var(--muted);font-size:12.5px;max-width:760px;line-height:1.5}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{border:1px solid transparent;border-radius:var(--radius-sm);padding:0 14px;height:36px;font-weight:600;font-size:12.5px;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .15s,border-color .15s,box-shadow .15s,color .15s,transform .05s;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn svg{width:15px;height:15px}.btn-sm{height:30px;padding:0 10px;font-size:12px;gap:6px}.btn-sm svg{width:14px;height:14px}.btn-lg{height:44px;padding:0 18px;font-size:14px}.btn-primary{background:var(--brand-700);color:#fff;box-shadow:0 1px 2px #0b3a7d4d,inset 0 1px #ffffff14}.btn-primary:hover:not(:disabled){background:#0a3169}.btn-gold{background:var(--gold-500);color:#261a00;box-shadow:0 1px 2px #966e0a4d}.btn-gold:hover:not(:disabled){background:#c9951b}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:#0b6545}.btn-light{background:#fff;border-color:var(--line);color:var(--text-2);box-shadow:var(--shadow-xs)}.btn-light:hover:not(:disabled){border-color:#cbd5e3;background:var(--surface-2);color:var(--ink)}.btn-danger{background:#fff;border-color:var(--danger-line);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-bg)}.btn-danger-solid{background:var(--danger);color:#fff}.btn-danger-solid:hover:not(:disabled){background:#9c2b27}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:#edf1f6;color:var(--ink)}.btn:disabled,.btn.is-disabled{opacity:.5;cursor:not-allowed}.icon-btn{width:36px;height:36px;border:1px solid var(--line);background:#fff;border-radius:var(--radius-sm);display:grid;place-items:center;color:var(--text-2);transition:background .15s,border-color .15s,color .15s}.icon-btn:hover:not(:disabled){border-color:#c7d2e3;background:var(--surface-2);color:var(--ink)}.icon-btn.sm{width:30px;height:30px;border-color:transparent;background:transparent}.icon-btn.sm:hover:not(:disabled),.icon-btn.sm[aria-expanded=true]{background:#edf1f6;border-color:var(--line)}.icon-btn.ghost{border-color:transparent;background:transparent}.mini-btn{width:28px;height:28px;border:1px solid var(--line);border-radius:7px;background:#fff;display:grid;place-items:center;color:var(--text-2)}.mini-btn:hover:not(:disabled){background:var(--surface-2);border-color:#cbd5e3}.mini-btn:disabled{opacity:.4;cursor:not-allowed}.link-btn{background:none;border:0;padding:0;color:var(--brand-500);font-weight:600;text-decoration:underline;text-underline-offset:2px;margin-left:auto}.row-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:nowrap}.dropdown-trigger{border:0;padding:0;background:none;display:inline-flex}.caret{width:14px!important;height:14px!important;transition:transform .15s;opacity:.7}.caret.up{transform:rotate(180deg)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-width:0}.card+.card{margin-top:16px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}.card-head h3{margin:0;font-size:13.5px;color:var(--ink);font-weight:700;letter-spacing:-.01em}.card-head span{font-size:11.5px;color:var(--muted)}.card-body{padding:18px}.pad{padding:14px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.kpi-grid.six{grid-template-columns:repeat(6,minmax(0,1fr))}.kpi-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-grid>a{display:block;min-width:0}.kpi-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:15px 16px;box-shadow:var(--shadow-sm);min-width:0;height:100%;position:relative;overflow:hidden;transition:border-color .15s,box-shadow .15s,transform .15s}a>.kpi-card:hover,.kpi-card.clickable:hover{border-color:#c9d6ea;box-shadow:var(--shadow-md);transform:translateY(-1px)}.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:11.5px;font-weight:600}.kpi-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--brand-100);color:var(--brand-600)}.kpi-icon svg{width:16px;height:16px}.kpi-icon.gold{background:var(--gold-100);color:var(--warning)}.kpi-icon.green{background:var(--success-bg);color:var(--success)}.kpi-icon.red{background:var(--danger-bg);color:var(--danger)}.kpi-value{font-size:22px;font-weight:750;letter-spacing:-.03em;color:var(--ink);margin-top:6px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-value.sm{font-size:16px}.kpi-foot{display:flex;align-items:center;flex-wrap:wrap;gap:4px;color:var(--muted);font-size:11.5px;margin-top:5px}.delta{display:inline-flex;align-items:center;gap:2px;font-weight:700;padding:1px 6px 1px 4px;border-radius:999px;font-size:11px}.delta.up{color:var(--success);background:var(--success-bg)}.delta.down{color:var(--danger);background:var(--danger-bg)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr);gap:16px;margin-bottom:16px}.dashboard-grid>.card+.card{margin-top:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid-2>.card+.card{margin-top:0}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid-3>.card+.card{margin-top:0}.chart-wrap{height:280px;padding:14px 12px 8px 0}.chart-wrap.sm{height:220px}.chart-empty{height:100%;display:grid;place-items:center;color:var(--subtle);font-size:12px;text-align:center;padding:20px}.chart-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}.chart-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.metric-list{display:grid}.metric-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-2);font-size:12.5px}.metric-row:last-child{border-bottom:0}.metric-row span{color:var(--muted)}.metric-row strong{color:var(--text);font-variant-numeric:tabular-nums}.list-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;border-bottom:1px solid var(--line-2);font-size:12.5px;transition:background .12s}.list-row:last-child{border-bottom:0}.list-row:hover{background:var(--surface-2)}.bar-track{height:6px;background:#eaeff5;border-radius:99px;overflow:hidden;margin-top:5px}.bar-fill{height:100%;background:var(--brand-500);border-radius:99px;transition:width .4s ease}.bar-fill.done{background:var(--success)}.activity{display:grid}.activity-item{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:10px 18px;border-bottom:1px solid var(--line-2);font-size:12.5px}.activity-item:last-child{border-bottom:0}.activity-dot{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--brand-100);color:var(--brand-600)}.activity-dot svg{width:14px;height:14px}.activity-item p{margin:0;color:var(--text);line-height:1.45}.activity-item time{font-size:11px;color:var(--subtle)}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#22a06b;box-shadow:0 0 0 3px #22a06b2e;animation:pulse 2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 6px #22a06b0f}}.toolbar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}.toolbar .spacer{flex:1}.toolbar-total{font-size:12.5px;color:var(--muted);white-space:nowrap}.toolbar-total strong{color:var(--ink)}.field-inline{position:relative;min-width:200px;flex:1}.field-inline.fixed{flex:none;min-width:0;width:184px}.field-inline input,.field-inline select{width:100%;height:36px;border:1px solid #dbe2ec;background:#fff;border-radius:var(--radius-sm);padding:0 30px 0 11px;font-size:12.5px;outline:none;transition:border-color .15s,box-shadow .15s}.field-inline select{padding-right:10px}.field-inline.has-icon input{padding-left:34px}.field-inline>svg{position:absolute;left:11px;top:10px;width:16px;height:16px;color:var(--subtle);pointer-events:none}.field-clear{position:absolute;right:7px;top:8px;width:20px;height:20px;border:0;border-radius:50%;background:#edf1f6;color:var(--text-2);display:grid;place-items:center}.field-spinner{position:absolute;right:10px;top:10px;color:var(--subtle)}.field-inline input:focus,.field-inline select:focus,.form-control:focus{border-color:#7aa6dc;box-shadow:var(--ring)}.date-range{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.date-range input{height:36px;border:1px solid #dbe2ec;border-radius:var(--radius-sm);padding:0 9px;font-size:12.5px;background:#fff;outline:none}.date-range input:focus{border-color:#7aa6dc;box-shadow:var(--ring)}.segmented{display:inline-flex;background:#edf1f6;border-radius:9px;padding:3px;gap:2px;flex-wrap:wrap}.segmented button{border:0;background:transparent;padding:0 11px;height:28px;border-radius:7px;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap;transition:background .15s,color .15s,box-shadow .15s}.segmented button:hover{color:var(--ink)}.segmented button.active{background:#fff;color:var(--brand-700);box-shadow:var(--shadow-xs),0 0 0 1px #0f1b2d0a}.segmented.sm button{height:24px;padding:0 9px;font-size:11.5px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}.data-table th{background:var(--surface-2);color:var(--muted);text-align:left;font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0;z-index:1}.data-table th.sortable{padding:0}.data-table th.sortable button{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:5px;padding:10px 14px;cursor:pointer;width:100%;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit}.data-table th.sortable.right button{justify-content:flex-end}.data-table th.sortable button svg{opacity:.35;transition:opacity .15s}.data-table th.sortable:hover button svg,.data-table th.sorted button svg{opacity:1}.data-table th.sorted{color:var(--brand-700)}.data-table td{padding:11px 14px;border-bottom:1px solid var(--line-2);color:var(--text);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr{transition:background .12s}.data-table tbody tr:hover td{background:#f8fbff}.data-table tr.inactive td{color:var(--subtle)}.data-table tr.inactive .cell-title{color:var(--muted)}.data-table tr.clickable{cursor:pointer}.data-table tfoot td{font-weight:700;background:var(--surface-2);border-top:1px solid var(--line);border-bottom:0}.data-table .form-control{height:32px;font-size:12.5px}.cell-title{font-weight:650;color:var(--ink)}a.cell-title:hover{color:var(--brand-600);text-decoration:underline;text-underline-offset:2px}.cell-sub{font-size:11px;color:var(--muted);margin-top:2px}.is-refreshing{opacity:.65;transition:opacity .2s}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:650;white-space:nowrap;border:1px solid transparent;line-height:1.35}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.badge-blue{background:var(--info-bg);color:var(--info);border-color:var(--info-line)}.badge-green{background:var(--success-bg);color:var(--success);border-color:var(--success-line)}.badge-red{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-line)}.badge-gold{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-line)}.badge-gray{background:#f1f3f7;color:#5b677b;border-color:#e3e7ee}.swatch{width:12px;height:12px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.15);vertical-align:-1px;margin-right:6px}.empty{padding:46px 20px;text-align:center;color:var(--muted)}.empty-icon{width:52px;height:52px;border-radius:14px;background:linear-gradient(180deg,var(--brand-50),#eaf0f8);border:1px solid #e1e8f2;display:grid;place-items:center;margin:0 auto 12px;color:#6b84a6}.empty-icon svg{width:22px;height:22px}.empty strong{display:block;color:var(--ink);font-size:13.5px}.empty p{max-width:420px;margin:6px auto 0;font-size:12.5px;line-height:1.55}.loading-rows{padding:16px;display:grid;gap:12px}.skeleton{height:14px;background:linear-gradient(90deg,#edf1f5,#f7f9fb,#edf1f5);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:6px}.skeleton.block{height:92px;border-radius:var(--radius-lg)}@keyframes shimmer{to{background-position:-200% 0}}.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;font-size:12px;color:var(--muted);border-top:1px solid var(--line-2);flex-wrap:wrap}.pager-actions{display:flex;gap:6px}.pager-actions button{border:1px solid var(--line);background:#fff;border-radius:7px;width:32px;height:30px;display:grid;place-items:center;color:var(--text-2)}.pager-actions button:hover:not(:disabled){background:var(--surface-2)}.pager-actions button:disabled{opacity:.4;cursor:not-allowed}.alert{display:flex;align-items:flex-start;gap:9px;border-radius:var(--radius);padding:11px 13px;font-size:12.5px;border:1px solid;margin-bottom:12px;line-height:1.5}.alert svg{margin-top:1px}.alert-error{background:var(--danger-bg);border-color:var(--danger-line);color:#8e2a26}.alert-info{background:var(--info-bg);border-color:var(--info-line);color:#1f548f}.alert-warn{background:var(--warning-bg);border-color:var(--warning-line);color:#7a5300}.alert-success{background:var(--success-bg);border-color:var(--success-line);color:#0d6648}.toast-stack{position:fixed;right:18px;top:74px;z-index:300;display:grid;gap:8px;width:min(380px,calc(100vw - 36px));pointer-events:none}.toast-stack .toast{pointer-events:auto}.toast{display:flex;align-items:flex-start;gap:10px;background:#fff;color:var(--text);border:1px solid var(--line);border-left:4px solid var(--info);border-radius:var(--radius);padding:12px 12px 12px 13px;box-shadow:var(--shadow-md);font-size:12.5px;line-height:1.45;animation:toastIn .22s cubic-bezier(.2,.8,.2,1)}.toast-success{border-left-color:var(--success)}.toast-success svg:first-child{color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-error svg:first-child{color:var(--danger)}.toast-info svg:first-child{color:var(--info)}.toast span{flex:1}.toast-close{background:none;border:0;color:var(--subtle);padding:0}.toast-close:hover{color:var(--ink)}@keyframes toastIn{0%{transform:translate(14px);opacity:0}}.modal-backdrop{position:fixed;inset:0;background:#06102080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:200;padding:18px;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}}.modal{background:#fff;border-radius:var(--radius-xl);width:min(640px,100%);max-height:calc(100vh - 36px);max-height:calc(100dvh - 36px);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:modalIn .2s cubic-bezier(.2,.8,.2,1)}@keyframes modalIn{0%{opacity:0;transform:translateY(8px) scale(.985)}}.modal-sm{width:min(450px,100%)}.modal-lg{width:min(1060px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0;font-size:15.5px;color:var(--ink);letter-spacing:-.01em}.modal-head span{font-size:12px;color:var(--muted)}.modal-body{padding:20px;overflow-y:auto;overscroll-behavior:contain}.modal-foot{padding:13px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface-2);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.modal-foot .foot-left{margin-right:auto;font-size:12px;color:var(--muted)}.card>.modal-foot{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.confirm-text{font-size:13px;line-height:1.6;color:var(--text-2)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-group{display:flex;flex-direction:column;gap:6px;min-width:0}.form-group.full{grid-column:1 / -1}.form-label{font-size:12px;font-weight:600;color:var(--text-2)}.req{color:var(--danger)}.form-control{width:100%;height:38px;border:1px solid #d8e0eb;border-radius:var(--radius-sm);padding:0 11px;outline:none;color:var(--text);background:#fff;font-size:13px;transition:border-color .15s,box-shadow .15s}.form-control:hover:not(:disabled):not(:focus){border-color:#c4cfdd}.form-control:disabled,.form-control[readonly]{background:var(--surface-2);color:var(--muted)}.form-control.textarea{height:80px;padding:9px 11px;resize:vertical;line-height:1.5}.form-control:user-invalid:not(:focus){border-color:#e2a19c}select.form-control{padding-right:8px}.static-value{display:flex;align-items:center;min-height:38px;font-weight:650;font-size:13px;color:var(--text)}.hint{font-size:11px;color:var(--muted);line-height:1.45}.check{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-2);cursor:pointer}.check input{width:16px;height:16px;accent-color:var(--brand-700)}.section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:20px 0 9px;display:flex;align-items:center;gap:8px}.section-title:after{content:"";flex:1;height:1px;background:var(--line-2)}.form-section{border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px 16px 16px;background:#fff}.form-section+.form-section{margin-top:14px}.form-section>h4{margin:0 0 12px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);display:flex;align-items:center;gap:7px}.form-section>h4 svg{width:15px;height:15px;color:var(--brand-600)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);padding:0 12px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{padding:12px;font-size:12.5px;font-weight:600;color:var(--muted);border:0;border-bottom:2px solid transparent;background:none;white-space:nowrap;transition:color .15s,border-color .15s}.tab:hover{color:var(--ink)}.tab.active{color:var(--brand-700);border-color:var(--brand-700)}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px;margin-bottom:16px;padding:14px 16px;border:1px solid var(--line-2);background:var(--surface-2);border-radius:var(--radius)}.detail-grid div span{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}.detail-grid div strong{font-size:13px;color:var(--ink)}.chip-list{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid #d8e0eb;background:#fff;border-radius:9px;padding:7px 11px;display:inline-flex;align-items:center;font-size:12px;font-weight:550;transition:border-color .15s,background .15s}.chip:hover{border-color:#b9c8dc}.chip.active{border-color:var(--brand-700);background:var(--brand-50);color:var(--brand-700);box-shadow:0 0 0 1px var(--brand-700) inset}.file-drop{display:flex;align-items:center;gap:12px;border:1.5px dashed #c9d4e4;border-radius:var(--radius);padding:12px 14px;background:var(--surface-2);font-size:12.5px;color:var(--muted);cursor:pointer;transition:border-color .15s,background .15s}.file-drop:hover{border-color:var(--brand-500);background:var(--brand-50)}.file-drop input{display:none}.file-drop strong{color:var(--ink);display:block}.variant-search{position:relative;width:100%}.variant-search .field-inline{min-width:0}.search-popover{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);max-height:360px;overflow-y:auto;z-index:60}.search-row{display:flex;width:100%;text-align:left;background:#fff;border:0;align-items:center;justify-content:space-between;gap:14px;padding:10px 13px;border-bottom:1px solid var(--line-2)}.search-row:last-child{border-bottom:0}.search-row.active,.search-row:hover{background:var(--brand-50)}.search-name{font-weight:650;font-size:13px;color:var(--ink)}.search-meta{font-size:11px;color:var(--muted);margin-top:2px}.search-side{text-align:right;font-size:11px;color:var(--muted);display:grid;gap:1px;white-space:nowrap}.search-side strong{font-size:12px;color:var(--brand-800)}.search-empty{padding:14px;font-size:12.5px;color:var(--muted)}.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) 410px;gap:16px;height:calc(100vh - 168px);min-height:540px}.pos-browser,.pos-cart{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;min-height:0;box-shadow:var(--shadow-sm)}.pos-search{padding:12px;border-bottom:1px solid var(--line-2);display:flex;gap:8px;align-items:center}.pos-search .field-inline input{height:42px;font-size:13.5px}.pos-search .field-inline>svg{top:13px}.pos-search .field-spinner{top:13px}.pos-cats{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line-2);overflow-x:auto;scrollbar-width:none}.pos-cats::-webkit-scrollbar{display:none}.pos-cats .chip{white-space:nowrap;padding:5px 11px;border-radius:999px}.product-grid{padding:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:10px;overflow-y:auto;align-content:start}.product-tile{border:1px solid #e3e8ef;border-radius:12px;padding:12px;background:#fff;transition:border-color .15s,box-shadow .15s,transform .1s;text-align:left;display:flex;flex-direction:column;gap:4px;min-height:104px}.product-tile:hover{border-color:#9dbbe2;box-shadow:0 8px 22px #11417a17}.product-tile:active{transform:scale(.985)}.product-tile:disabled{opacity:.6}.product-tile .code{font-size:10.5px;color:var(--subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-tile .name{font-size:13px;font-weight:650;color:var(--ink);line-height:1.3}.product-tile .tile-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:6px;font-size:11px;color:var(--muted);margin-top:auto;padding-top:6px}.product-tile .price{font-size:13px;font-weight:750;color:var(--brand-700)}.product-tile.out{background:#fcfcfd}.cart-head{padding:13px 16px;border-bottom:1px solid var(--line-2);display:flex;justify-content:space-between;align-items:center;gap:8px}.cart-customer{padding:10px 16px;border-bottom:1px solid var(--line-2);background:var(--surface-2)}.cart-items{flex:1;overflow-y:auto}.cart-line{padding:12px 16px;border-bottom:1px solid var(--line-2);animation:lineIn .18s ease-out}@keyframes lineIn{0%{background:var(--brand-50)}}.cart-line-top{display:flex;justify-content:space-between;gap:10px}.cart-line strong{font-size:12.5px}.cart-meta{font-size:11px;color:var(--muted);margin-top:2px}.cart-price{font-weight:750;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.cart-line-bottom{margin-top:8px;display:flex;justify-content:space-between;align-items:center;gap:8px}.qty-box{display:flex;align-items:center;gap:5px}.qty-box input{width:76px;height:30px;border:1px solid #dbe2ec;border-radius:7px;padding:0 8px;text-align:right;outline:none}.qty-box input:focus{border-color:#7aa6dc;box-shadow:var(--ring)}.cart-summary{padding:13px 16px 16px;border-top:1px solid var(--line);background:var(--surface-2)}.summary-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12.5px;color:var(--text-2);margin:5px 0}.summary-row input{width:116px;height:32px;border:1px solid #dbe2ec;border-radius:7px;padding:0 9px;text-align:right;outline:none;background:#fff}.summary-row input:focus{border-color:#7aa6dc;box-shadow:var(--ring)}.summary-row.total{font-size:19px;font-weight:800;color:var(--ink);padding-top:9px;margin-top:8px;border-top:1px dashed #d1d9e5;letter-spacing:-.02em}.checkout-btn{width:100%;height:48px;margin-top:12px;font-size:15px;border-radius:11px}.checkout-btn .kbd{background:#ffffff24;color:#dfe8f6;border-color:#ffffff38}.warn-text{color:var(--warning);font-size:11px}.shortcut-bar{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:10px}.shortcut-bar span{display:inline-flex;align-items:center;gap:5px}.quick-cash{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.quick-cash button{border:1px solid var(--line);background:#fff;border-radius:8px;height:30px;padding:0 10px;font-size:12px;font-weight:650;color:var(--text-2)}.quick-cash button:hover{border-color:var(--brand-500);color:var(--brand-700);background:var(--brand-50)}.tier-badge{font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:5px;background:var(--gold-100);color:var(--warning);margin-left:6px}.login-page{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;background:#fff}.login-visual{position:relative;overflow:hidden;background:radial-gradient(circle at 18% 12%,rgba(22,101,193,.38),transparent 36%),radial-gradient(circle at 85% 90%,rgba(216,166,42,.18),transparent 40%),linear-gradient(150deg,#03142e,var(--brand-800) 55%,#0a3a7a);display:flex;align-items:center;justify-content:center;padding:56px}.login-visual:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:radial-gradient(circle at 40% 40%,#000 20%,transparent 75%);mask-image:radial-gradient(circle at 40% 40%,#000 20%,transparent 75%)}.login-hero{position:relative;color:#fff;max-width:520px}.login-logo{width:176px;height:128px;object-fit:contain;display:block;margin-bottom:26px;filter:drop-shadow(0 10px 30px rgba(0,0,0,.3))}.login-hero h1{font-size:38px;line-height:1.08;margin:0 0 14px;letter-spacing:-.035em;font-weight:800}.login-hero h1 em{font-style:normal;color:var(--gold-400)}.login-hero p{color:#bfd0e7;line-height:1.7;font-size:14.5px;margin:0}.login-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.login-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;padding:7px 12px;border-radius:999px;font-size:11.5px;color:#dbe7f6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.login-pill svg{width:13px;height:13px;color:var(--gold-400)}.login-panel{display:grid;place-items:center;padding:40px;position:relative}.login-form{width:min(390px,100%)}.login-badge{display:inline-flex;align-items:center;gap:6px;color:#8a6409;background:var(--gold-100);border:1px solid #f3e0a8;font-size:10.5px;font-weight:750;letter-spacing:.08em;padding:4px 10px;border-radius:999px;margin-bottom:16px}.login-form h2{font-size:27px;margin:0;color:var(--ink);letter-spacing:-.03em}.login-form>p{font-size:13px;color:var(--muted);margin:6px 0 24px}.login-form .form-group{margin-bottom:14px}.login-form .form-control{height:44px;font-size:13.5px}.login-submit{width:100%;height:46px;margin-top:8px;font-size:14px;border-radius:10px}.password-field{position:relative}.password-field .form-control{padding-right:42px}.password-field button{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;background:none;color:var(--muted);display:grid;place-items:center;border-radius:7px}.password-field button:hover{background:var(--surface-2);color:var(--ink)}.login-note{font-size:11.5px;color:var(--subtle);text-align:center;margin-top:18px;line-height:1.5}.caps-warning{font-size:11px;color:var(--warning);display:flex;align-items:center;gap:5px}.signature{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-size:11px;color:var(--subtle);letter-spacing:.02em}.signature strong{color:var(--text-2);font-weight:650}.crash{min-height:100vh;display:grid;place-items:center;padding:20px}.crash-card{max-width:440px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px;text-align:center;box-shadow:var(--shadow-sm)}.crash-card h2{margin:0 0 8px;font-size:18px}.crash-card p{color:var(--muted);font-size:13px;line-height:1.55;margin:0 0 18px}.split-btn{position:relative;display:inline-flex}.split-btn>.btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.split-caret{border-top-left-radius:0!important;border-bottom-left-radius:0!important;margin-left:-1px;padding:0 8px}.menu-pop{position:absolute;right:0;bottom:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow-md);z-index:260;min-width:180px;padding:5px;display:grid;animation:menuIn .12s ease-out}.menu-pop.fixed{position:fixed;right:auto;bottom:auto;width:220px;max-height:360px;overflow-y:auto}@keyframes menuIn{0%{opacity:0;transform:translateY(-3px)}}.menu-pop button{border:0;background:none;text-align:left;padding:0 10px;height:34px;border-radius:7px;font-size:12.5px;display:flex;align-items:center;gap:9px;color:var(--text);white-space:nowrap}.menu-pop button svg{color:var(--muted)}.menu-pop button:hover:not(:disabled),.menu-pop button.active{background:var(--brand-50);color:var(--brand-700)}.menu-pop button:hover:not(:disabled) svg{color:var(--brand-600)}.menu-pop button.danger{color:var(--danger)}.menu-pop button.danger svg{color:var(--danger)}.menu-pop button.danger:hover:not(:disabled){background:var(--danger-bg);color:var(--danger)}.menu-pop button:disabled{opacity:.45;cursor:not-allowed}.menu-divider{height:1px;background:var(--line-2);margin:4px 2px}.panel{position:fixed;top:calc(var(--topbar-h) - 4px);right:16px;width:min(400px,calc(100vw - 24px));background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:250;animation:menuIn .14s ease-out;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line-2)}.panel-head h4{margin:0;font-size:13.5px;color:var(--ink)}.panel-head span{font-size:11px;color:var(--muted)}.panel-body{max-height:min(460px,70vh);overflow-y:auto}.notif{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;padding:12px 16px;border-bottom:1px solid var(--line-2);text-align:left;width:100%;background:#fff;border-left:0;border-right:0;border-top:0;transition:background .12s}.notif:hover{background:var(--surface-2)}.notif:last-child{border-bottom:0}.notif .ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center}.notif .ic svg{width:16px;height:16px}.notif .ic.red{background:var(--danger-bg);color:var(--danger)}.notif .ic.gold{background:var(--warning-bg);color:var(--warning)}.notif .ic.blue{background:var(--info-bg);color:var(--info)}.notif .ic.green{background:var(--success-bg);color:var(--success)}.notif strong{display:block;font-size:12.5px;color:var(--ink)}.notif p{margin:2px 0 0;font-size:12px;color:var(--muted);line-height:1.45}.notif.unread strong:after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--brand-500);margin-left:7px;vertical-align:1px}.user-panel{width:280px}.user-panel .who{display:flex;gap:12px;align-items:center;padding:16px;border-bottom:1px solid var(--line-2)}.user-panel .who strong{display:block;color:var(--ink);font-size:13.5px}.user-panel .who span{font-size:11.5px;color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis}.user-panel nav{padding:6px;display:grid}.user-panel nav button{display:flex;align-items:center;gap:10px;border:0;background:none;padding:0 10px;height:38px;border-radius:8px;font-size:12.5px;color:var(--text);text-align:left}.user-panel nav button:hover{background:var(--brand-50);color:var(--brand-700)}.user-panel nav button svg{width:16px;height:16px;color:var(--muted)}.user-panel nav button.danger{color:var(--danger)}.user-panel nav button.danger svg{color:var(--danger)}.user-panel nav button.danger:hover{background:var(--danger-bg)}.palette-backdrop{position:fixed;inset:0;background:#0610206b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:280;display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;animation:fadeIn .12s}.palette{width:min(620px,100%);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;animation:modalIn .16s cubic-bezier(.2,.8,.2,1)}.palette-input{display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--line)}.palette-input svg{color:var(--subtle)}.palette-input input{flex:1;height:54px;border:0;outline:none;font-size:15px;background:none}.palette-list{max-height:min(420px,60vh);overflow-y:auto;padding:6px}.palette-group{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--subtle);padding:10px 10px 5px}.palette-item{display:flex;align-items:center;gap:11px;width:100%;border:0;background:none;padding:9px 10px;border-radius:9px;text-align:left;font-size:13px;color:var(--text)}.palette-item svg{width:17px;height:17px;color:var(--muted)}.palette-item .meta{margin-left:auto;font-size:11.5px;color:var(--muted);white-space:nowrap}.palette-item.active{background:var(--brand-50);color:var(--brand-700)}.palette-item.active svg{color:var(--brand-600)}.palette-foot{display:flex;gap:14px;justify-content:flex-end;padding:9px 14px;border-top:1px solid var(--line-2);font-size:11px;color:var(--muted);background:var(--surface-2)}.shortcuts{display:grid;gap:4px}.shortcuts div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid var(--line-2);font-size:12.5px}.shortcuts div:last-child{border-bottom:0}.credit-progress{min-width:150px;font-size:11.5px;color:var(--text-2)}.credit-progress .bar-track{height:7px;margin-top:4px}.credit-progress.compact{min-width:120px;font-size:11px}.picker-value{display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer}.picker-value span:first-of-type{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cash-banner{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--radius);margin-bottom:14px;font-size:12.5px;flex-wrap:wrap;border:1px solid}.cash-banner.open{background:var(--success-bg);border-color:var(--success-line);color:#0d6648}.cash-banner.closed{background:var(--warning-bg);border-color:var(--warning-line);color:#7a5300}.cash-banner .spacer{flex:1}.cash-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-radius:999px;font-size:11.5px;font-weight:650;border:1px solid;white-space:nowrap;transition:filter .15s}.cash-chip:hover{filter:brightness(.97)}.cash-chip.open{background:var(--success-bg);color:var(--success);border-color:var(--success-line)}.cash-chip.closed{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-line)}.breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.breakdown>div{border:1px solid var(--line);border-radius:var(--radius);padding:11px 13px;background:var(--surface-2)}.breakdown h4{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.breakdown .metric-row{padding:5px 0;font-size:12px}.breakdown .metric-row.total{border-top:1px dashed #cfd8e3;margin-top:4px;padding-top:7px;font-weight:700}.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.perm-group{border:1px solid var(--line);border-radius:var(--radius);padding:11px 13px}.perm-group h4{margin:0 0 8px;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2);display:flex;justify-content:space-between;align-items:center}.perm-group .check{margin:5px 0;font-size:12px}.perm-group .check.inherited{color:var(--subtle)}.mini-stats{display:flex;gap:22px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line-2);font-size:12px;color:var(--muted)}.mini-stats strong{display:block;color:var(--ink);font-size:14.5px;font-variant-numeric:tabular-nums;margin-top:2px}.legend-list{display:grid;gap:7px;font-size:12px}.legend-list .dot{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:7px;vertical-align:-1px}.change-box{font-size:22px;font-weight:800;letter-spacing:-.02em}.money{font-variant-numeric:tabular-nums;font-weight:650;white-space:nowrap}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.stat-number{font-weight:700;color:var(--ink)}.danger-text{color:var(--danger)!important}.success-text{color:var(--success)!important}.warning-text{color:var(--warning)!important}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.right{text-align:right}.center{text-align:center}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.w-full{width:100%}.flex{display:flex;align-items:center;gap:8px}.flex-between{display:flex;align-items:center;justify-content:space-between;gap:8px}.hide-desktop{display:none}@media(max-width:1280px){.kpi-grid.six{grid-template-columns:repeat(3,minmax(0,1fr))}.pos-layout{grid-template-columns:minmax(0,1fr) 370px}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.grid-2,.grid-3{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.breakdown{grid-template-columns:1fr 1fr}}@media(max-width:960px){.app-shell,.app-shell.collapsed{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:282px;transform:translate(-100%);transition:transform .24s cubic-bezier(.2,.8,.2,1);box-shadow:none}.sidebar.open{transform:translate(0);box-shadow:16px 0 48px #0000004d}.app-shell.collapsed .brand-text,.app-shell.collapsed .nav-label,.app-shell.collapsed .nav-item span,.app-shell.collapsed .credit,.app-shell.collapsed .nav-badge{display:revert}.app-shell.collapsed .nav-item{justify-content:flex-start;padding:0 11px}.app-shell.collapsed .brand-box{justify-content:flex-start;padding:14px 14px 12px}.app-shell.collapsed .nav-section{border-top:0;padding-top:0;margin-top:12px}.collapse-btn{display:none}.icon-btn.sidebar-close{display:grid}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#050e1c73;z-index:35;animation:fadeIn .2s}.icon-btn.menu-toggle{display:grid}.topbar{padding:0 14px}.content{padding:16px 14px 36px}.pos-layout{grid-template-columns:1fr;height:auto}.pos-browser{max-height:62vh}.pos-cart{min-height:440px}.login-page{grid-template-columns:1fr}.login-visual{display:none}.search-trigger{width:40px;padding:0;justify-content:center}.search-trigger span,.search-trigger .kbd{display:none}}@media(max-width:720px){body{font-size:13.5px}.user-meta,.hide-sm,.page-context span{display:none}.kpi-grid,.kpi-grid.six,.kpi-grid.three{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi-card{padding:12px 13px}.kpi-value{font-size:18px}.page-head{align-items:flex-start;margin-bottom:14px}.page-head h1{font-size:19px}.page-head .actions{width:100%}.page-head .actions>.btn,.page-head .actions>.dropdown-trigger{flex:1 1 auto}.page-head .actions>.dropdown-trigger>.btn{width:100%}.form-grid,.form-grid.three{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr 1fr;padding:12px}.field-inline,.field-inline.fixed{min-width:0;width:100%;flex:1 1 100%}.date-range{flex:1 1 100%}.date-range input{flex:1;min-width:0}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-backdrop{padding:0;place-items:end center}.modal,.modal-sm,.modal-lg{width:100%;max-height:94vh;max-height:94dvh;border-radius:18px 18px 0 0;animation:sheetIn .24s cubic-bezier(.2,.8,.2,1)}.modal-foot{border-radius:0;padding-bottom:max(13px,env(safe-area-inset-bottom))}@keyframes sheetIn{0%{transform:translateY(30px);opacity:.6}}.login-panel{padding:28px 18px 60px}.toolbar{padding:10px 12px}.breakdown{grid-template-columns:1fr}.modal-foot .btn,.modal-foot .split-btn{flex:1 1 auto}.modal-foot .foot-left{flex-basis:100%}.cash-chip .hide-sm{display:none}.btn,.form-control,.field-inline input,.field-inline select{min-height:40px}.btn-sm{min-height:34px}.pagination{justify-content:center}.panel{right:8px;left:8px;width:auto}.hide-desktop{display:revert}.toast-stack{inset:auto 12px 14px;width:auto}.data-table:not(.no-cards) thead{display:none}.data-table:not(.no-cards),.data-table:not(.no-cards) tbody,.data-table:not(.no-cards) tfoot{display:block}.data-table:not(.no-cards) tbody tr,.data-table:not(.no-cards) tfoot tr{display:block;margin:10px 10px 0;border:1px solid var(--line);border-radius:12px;background:#fff;padding:6px 0;box-shadow:var(--shadow-xs)}.data-table:not(.no-cards) tbody tr:last-child{margin-bottom:10px}.data-table:not(.no-cards) tfoot tr{background:var(--surface-2);margin-bottom:10px}.data-table:not(.no-cards) td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 14px;border:0!important;text-align:right;min-height:32px;background:none!important}.data-table:not(.no-cards) td:before{content:attr(data-label);font-size:11px;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;text-align:left;flex-shrink:0;max-width:45%}.data-table:not(.no-cards) td:not([data-label]):before,.data-table:not(.no-cards) td[data-label=""]:before{display:none}.data-table:not(.no-cards) td:not([data-label]),.data-table:not(.no-cards) td[data-label=""]{justify-content:flex-end}.data-table:not(.no-cards) td:first-child{justify-content:flex-start;text-align:left;font-size:13.5px;padding-top:8px}.data-table:not(.no-cards) td:first-child:before{display:none}.data-table:not(.no-cards) td>div,.data-table:not(.no-cards) td>.form-control,.data-table:not(.no-cards) td>select{max-width:62%}.data-table:not(.no-cards) td:first-child>div{max-width:none}.data-table:not(.no-cards) td .row-actions{width:100%;justify-content:flex-end}.data-table:not(.no-cards) td[colspan]{justify-content:center;text-align:center}.data-table:not(.no-cards) td[colspan]:before{display:none}.table-wrap{overflow-x:visible}.card>.table-wrap,.card .table-wrap{background:var(--surface-2)}}@media(max-width:360px){.kpi-grid,.kpi-grid.six,.kpi-grid.three,.product-grid{grid-template-columns:1fr}}@media print{.sidebar,.topbar,.no-print,.toast-stack{display:none!important}.app-shell{display:block}.content{padding:0;max-width:none}.card,.kpi-card{box-shadow:none;break-inside:avoid}body{background:#fff}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
