:root{color-scheme:light;--color-primary:#0F766E;--color-primary-600:#0B5C56;--color-primary-100:#D6EFEA;--color-primary-soft:#EFF8F6;--color-accent:#C08B4E;--color-accent-soft:#F5E9D8;--color-success:#16A34A;--color-success-100:#DCF4E4;--color-warning:#D97706;--color-warning-100:#FBEBD5;--color-danger:#DC2626;--color-danger-100:#FBE4E4;--color-locked:#98A29D;--color-locked-100:#EEEDE8;--bg:#F6F4EF;--sidebar:#12211F;--sidebar-hover:#1E312D;--card:#FFFFFF;--text:#1B2321;--text-muted:#6C7A75;--text-subtle:#9BA6A1;--border:#E6E1D8;--border-strong:#D6D0C4;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-full:999px;--shadow-sm:0 1px 2px rgba(27,35,33,.05);--shadow-md:0 6px 20px -6px rgba(27,35,33,.12);--shadow-lg:0 20px 48px -12px rgba(27,35,33,.22);--shadow-focus:0 0 0 3px rgba(15,118,110,.18);--shadow-primary:0 6px 16px -6px rgba(15,118,110,.45);--sidebar-w:264px;--sidebar-w-collapsed:76px;--topbar-h:68px;--font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"SF Mono",SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;--ease:cubic-bezier(.4,0,.2,1)}[data-theme=dark]{color-scheme:dark;--color-primary:#2DD4BF;--color-primary-600:#14B8A6;--color-primary-100:#123933;--color-primary-soft:#0F2A26;--color-accent:#D9A567;--color-accent-soft:#33261A;--color-success:#4ADE80;--color-success-100:#12301F;--color-warning:#FBBF24;--color-warning-100:#33280C;--color-danger:#F87171;--color-danger-100:#391B1B;--color-locked:#8A968F;--color-locked-100:#1E2926;--bg:#0B1211;--card:#141D1B;--text:#E9EFEC;--text-muted:#95A39D;--text-subtle:#647069;--border:#26332F;--border-strong:#33433D;--sidebar:#080F0E;--sidebar-hover:#16231F;--shadow-sm:0 1px 2px rgba(0,0,0,.35);--shadow-md:0 6px 24px -6px rgba(0,0,0,.5);--shadow-lg:0 20px 48px -12px rgba(0,0,0,.6);--shadow-focus:0 0 0 3px rgba(45,212,191,.22);--shadow-primary:0 6px 16px -6px rgba(45,212,191,.35)}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-ui);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background .25s var(--ease),color .25s var(--ease)}h1,h2,h3,h4,p,ul,ol{margin:0}h1,h2,h3{letter-spacing:-.012em}ul{padding:0;list-style:none}button{font-family:inherit;cursor:pointer}input,select,textarea,button{font-family:inherit;font-size:inherit;color:inherit}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}svg{display:block}::selection{background:var(--color-primary-100);color:var(--color-primary-600)}.data-table td,.kpi-card .value,.totals-row,.line-items .amt,.invoice td{font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-subtle);background-clip:content-box}::-webkit-scrollbar-track{background:transparent}.login-screen{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:var(--bg)}@media(max-width:900px){.login-screen{grid-template-columns:1fr}}.login-visual{position:relative;background:radial-gradient(circle at 78% 8%,rgba(192,139,78,.22) 0%,transparent 42%),radial-gradient(circle at 12% 88%,rgba(15,118,110,.35) 0%,transparent 50%),linear-gradient(150deg,#123b37,#12211f 52%,#0a100f);overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:56px;color:#fff}@media(max-width:900px){.login-visual{display:none}}.login-visual .grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(circle at 50% 40%,#000 0%,transparent 78%);mask-image:radial-gradient(circle at 50% 40%,#000 0%,transparent 78%);animation:driftGrid 34s linear infinite}@keyframes driftGrid{0%{background-position:0 0}to{background-position:440px 440px}}.login-visual .orb{position:absolute;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(45,212,191,.3),rgba(192,139,78,.1) 45%,transparent 72%);top:-140px;right:-130px;filter:blur(4px);animation:floatOrb 9s ease-in-out infinite}@keyframes floatOrb{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(30px) scale(1.04)}}.login-brand{position:relative;z-index:2;display:flex;align-items:center;gap:13px}.login-brand .mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(140deg,var(--color-accent),#0F766E 55%,#0B5C56);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 22px -8px #0009}.login-brand span{font-size:18px;font-weight:700;letter-spacing:.01em}.login-quote{position:relative;z-index:2;max-width:440px}.login-quote .step-track{display:flex;flex-direction:column;gap:18px;margin-top:30px}.login-quote .step-track div{display:flex;align-items:center;gap:13px;font-size:13px;color:#ffffffc7}.login-quote .step-track div .dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--color-accent);box-shadow:0 0 0 4px #c08b4e29}.login-quote h2{font-size:29px;font-weight:600;line-height:1.32;margin-bottom:10px;letter-spacing:-.018em;background:linear-gradient(100deg,#fff 30%,#bfe7e0);-webkit-background-clip:text;background-clip:text;color:transparent}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:40px}.login-card{width:100%;max-width:390px}.login-card h1{font-size:26px;font-weight:700;margin-bottom:6px}.login-card .sub{color:var(--text-muted);font-size:13.5px;margin-bottom:32px}.login-error{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;color:var(--color-danger);background:var(--color-danger-100);border:1px solid color-mix(in srgb,var(--color-danger) 22%,transparent);border-radius:var(--radius-sm);padding:10px 13px;margin-bottom:18px}.field{margin-bottom:18px}.field label{display:block;font-size:11px;font-weight:700;color:var(--text-muted);margin-bottom:7px;letter-spacing:.07em;text-transform:uppercase}.field input,.field select,.field textarea{width:100%;padding:11px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);color:var(--text);transition:border-color .15s var(--ease),box-shadow .15s var(--ease),background .15s var(--ease)}.field input::placeholder,.field textarea::placeholder{color:var(--text-subtle)}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--border-strong)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.field-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin:-6px 0 22px}.field-row label{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-weight:500;text-transform:none;letter-spacing:0}.field .err{display:block;margin-top:6px;font-size:11.5px;font-weight:600;color:var(--color-danger)}.role-select-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:22px}.role-chip{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-sm);padding:11px 6px;text-align:center;font-size:11px;font-weight:700;color:var(--text-muted);letter-spacing:.04em;transition:all .16s var(--ease)}.role-chip:hover{border-color:var(--border-strong);color:var(--text);transform:translateY(-1px)}.role-chip.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff;box-shadow:var(--shadow-primary);transform:translateY(-1px)}.pay-method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:6px}.pay-method{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;border:1.5px solid var(--border);background:var(--card);border-radius:var(--radius-sm);padding:15px 8px 12px;text-align:center;font-size:12px;font-weight:600;color:var(--text-muted);transition:all .16s var(--ease)}.pay-method:hover{border-color:var(--border-strong);color:var(--text);transform:translateY(-1px)}.pay-method svg{color:var(--text-subtle);transition:color .16s var(--ease)}.pay-method.selected{border-color:var(--color-primary);background:var(--color-primary-100);color:var(--color-primary);box-shadow:var(--shadow-focus)}.pay-method.selected svg{color:var(--color-primary)}.pay-method input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}@media(max-width:520px){.pay-method-grid{grid-template-columns:repeat(2,1fr)}}.app-shell{min-height:100vh}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:var(--sidebar);color:#c6d2ce;z-index:40;display:flex;flex-direction:column;transition:width .22s var(--ease);border-right:1px solid rgba(255,255,255,.05)}.sidebar.collapsed{width:var(--sidebar-w-collapsed)}.sidebar-head{height:var(--topbar-h);display:flex;align-items:center;gap:12px;padding:0 20px;border-bottom:1px solid rgba(255,255,255,.06);flex:none}.sidebar-head .mark{width:36px;height:36px;border-radius:10px;flex:none;background:linear-gradient(140deg,var(--color-accent),#0F766E 60%);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px -6px #0f766eb3}.sidebar-head .brand-text{font-weight:700;font-size:15px;color:#fff;white-space:nowrap;overflow:hidden;letter-spacing:-.005em}.sidebar.collapsed .brand-text,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-section-title{display:none}.nav-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#5a6d67;font-weight:700;padding:20px 22px 8px}.nav-scroll{flex:1;overflow-y:auto;padding-bottom:12px}.nav-item{position:relative;display:flex;align-items:center;gap:12px;padding:10px 18px;margin:2px 10px;border-radius:var(--radius-sm);color:#93a29d;font-size:13.5px;font-weight:500;white-space:nowrap;overflow:hidden;transition:background .16s var(--ease),color .16s var(--ease)}.nav-item svg{flex:none;width:18px;height:18px}.nav-item:hover{background:var(--sidebar-hover);color:#fff}.nav-item.active{background:linear-gradient(90deg,#2dd4bf29,#2dd4bf08);color:#fff;font-weight:600}.nav-item.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,#2dd4bf,#0f766e)}.nav-item.active svg{color:#2dd4bf}.sidebar-foot{padding:14px 22px;border-top:1px solid rgba(255,255,255,.06);flex:none}.collapse-btn{display:flex;align-items:center;gap:10px;color:#6b7c77;font-size:12.5px;font-weight:600;width:100%;background:none;border:none;padding:6px 0;transition:color .15s var(--ease)}.collapse-btn:hover{color:#fff}.collapse-btn svg{transition:transform .2s var(--ease)}.sidebar.collapsed .collapse-btn svg{transform:rotate(180deg)}.main{margin-left:var(--sidebar-w);transition:margin-left .22s var(--ease);min-height:100vh;display:flex;flex-direction:column}.sidebar.collapsed~.main{margin-left:var(--sidebar-w-collapsed)}.topbar{height:var(--topbar-h);position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--card) 82%,transparent);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:20px}.topbar-left{display:flex;align-items:center;gap:18px;min-width:0}.breadcrumb{font-size:13px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breadcrumb b{color:var(--text);font-weight:600}.search-box{display:flex;align-items:center;gap:9px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-full);padding:8px 16px;min-width:260px;color:var(--text-subtle);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.search-box:focus-within{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.search-box input{background:none;border:none;width:100%;color:var(--text)}.search-box input:focus{outline:none}.topbar-right{display:flex;align-items:center;gap:12px;flex:none}.icon-btn{width:38px;height:38px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);display:flex;align-items:center;justify-content:center;color:var(--text-muted);position:relative;transition:all .16s var(--ease)}.icon-btn:hover{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary-100)}.icon-btn .dot{position:absolute;top:7px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--color-danger);border:2px solid var(--card)}.role-switcher{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--radius-full);padding:6px 14px 6px 6px;background:var(--card);color:var(--text-muted);transition:border-color .15s var(--ease)}.role-switcher:hover{border-color:var(--border-strong)}.role-switcher select{background:none;border:none;font-weight:600;font-size:12.5px;color:var(--text);cursor:pointer}.role-switcher select:focus{outline:none}.role-switcher select option,.field select option,.line-items select option{background:var(--card);color:var(--text)}.avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(140deg,var(--color-primary),var(--color-primary-600));color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.03em;display:flex;align-items:center;justify-content:center;flex:none}.profile-chip{display:flex;align-items:center;gap:10px;padding:5px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--card)}.profile-chip .name{font-size:12.5px;font-weight:600}.profile-chip .role{font-size:11px;color:var(--text-muted)}.view-root{padding:30px;flex:1;max-width:1560px;width:100%}.page{display:flex;flex-direction:column;min-width:0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap}.page-head h1{font-size:24px;font-weight:700}.page-head .desc{color:var(--text-muted);font-size:13px;margin-top:5px;max-width:70ch}.page-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:600;font-size:13px;letter-spacing:-.002em;transition:all .16s var(--ease);position:relative;overflow:hidden}.btn svg{width:16px;height:16px;flex:none}.btn{white-space:nowrap}.btn-primary{background:linear-gradient(140deg,var(--color-primary),var(--color-primary-600));color:#fff;box-shadow:var(--shadow-primary)}.btn-primary:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 10px 22px -8px #0f766e8c}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--card);border-color:var(--border);color:var(--text);box-shadow:var(--shadow-sm)}.btn-secondary:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}.btn-success{background:var(--color-success);color:#fff;box-shadow:0 6px 16px -6px #16a34a73}.btn-success:hover{filter:brightness(1.06);transform:translateY(-1px)}.btn-danger{background:var(--card);border-color:var(--color-danger);color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger-100)}.btn-ghost{background:none;border:none;color:var(--text-muted)}.btn-ghost:hover{color:var(--color-primary);background:var(--color-primary-soft)}.btn-sm{padding:7px 12px;font-size:12px}.btn:disabled{opacity:.42;cursor:not-allowed;box-shadow:none;transform:none;filter:none}.fab{position:fixed;bottom:30px;right:34px;width:56px;height:56px;border-radius:50%;background:linear-gradient(140deg,var(--color-primary),var(--color-primary-600));color:#fff;display:flex;align-items:center;justify-content:center;border:none;box-shadow:0 16px 32px -10px #0f766e99;z-index:35;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}.fab:hover{transform:scale(1.06) rotate(90deg);box-shadow:0 20px 40px -10px #0f766eb3}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.grid-2{display:grid;grid-template-columns:2fr 1fr;gap:18px}.grid-2.even{grid-template-columns:1fr 1fr;align-items:end}@media(max-width:1200px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-sm);transition:box-shadow .22s var(--ease),transform .22s var(--ease),border-color .22s var(--ease)}.card.hoverable:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);border-color:var(--color-primary-100)}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:12px;flex-wrap:wrap}.card-head h3{font-size:14.5px;font-weight:700;letter-spacing:-.008em}.card-head .muted-link{font-size:12px;color:var(--color-primary);font-weight:600;transition:opacity .15s var(--ease);cursor:pointer}.card-head .muted-link:hover{opacity:.72}.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-bar .search-box{min-width:220px}.filter-select,.filter-input{appearance:none;-webkit-appearance:none;height:38px;padding:0 34px 0 14px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg);color:var(--text);font-size:13px;font-weight:500;line-height:38px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease);background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 18px) 51%,calc(100% - 13px) 51%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;cursor:pointer}.filter-input{padding:0 14px;background-image:none;cursor:text}.filter-select:hover,.filter-input:hover{border-color:var(--border-strong)}.filter-select:focus,.filter-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.filter-select option{background:var(--card);color:var(--text)}.pager{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.pager__count{font-size:12px;color:var(--text-muted)}.pager__count b{color:var(--text);font-weight:600}.pager__pages{display:flex;align-items:center;gap:4px}.pager__btn{min-width:32px;height:32px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--card);color:var(--text-muted);border-radius:var(--radius-sm);font-size:12.5px;font-weight:600;transition:border-color .15s var(--ease),color .15s var(--ease),background .15s var(--ease);cursor:pointer}.pager__btn:hover:not(:disabled){border-color:var(--border-strong);color:var(--text)}.pager__btn:disabled{opacity:.42;cursor:not-allowed}.pager__btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pager__gap{padding:0 2px;color:var(--text-subtle);font-size:12.5px;-webkit-user-select:none;user-select:none}.pager__size{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}.pager__size select{height:32px;padding:0 26px 0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--text);font-size:12.5px;font-weight:600;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 14px) 52%,calc(100% - 10px) 52%;background-size:4px 4px,4px 4px;background-repeat:no-repeat}.kpi-card{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm)}.kpi-card:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--color-primary),transparent);opacity:0;transition:opacity .22s var(--ease)}.kpi-card .top{display:flex;justify-content:space-between;align-items:flex-start}.kpi-card .icon-wrap{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center}.kpi-card .label{color:var(--text-muted);font-size:11.5px;font-weight:600;margin-top:16px;letter-spacing:.01em}.kpi-card .value{font-size:25px;font-weight:700;margin-top:5px;letter-spacing:-.02em}.kpi-card .trend{font-size:11px;font-weight:700;margin-top:8px;display:flex;align-items:center;gap:4px}.trend.up{color:var(--color-success)}.trend.down{color:var(--color-danger)}.module-tile{display:flex;align-items:center;gap:12px;padding:16px}.module-tile .icon-wrap{width:38px;height:38px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center}.module-tile .text{min-width:0}.module-tile .count{font-size:17px;font-weight:700;line-height:1.3;letter-spacing:-.015em}.module-tile .name{font-size:13px;font-weight:600;line-height:1.35}.module-tile .sub{font-size:11.5px;color:var(--text-muted);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--radius-full);font-size:11px;font-weight:700;letter-spacing:.01em;white-space:nowrap;border:1px solid transparent}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 2.5px color-mix(in srgb,currentColor 18%,transparent)}.status-locked{background:var(--color-locked-100);color:var(--color-locked);border-color:color-mix(in srgb,var(--color-locked) 22%,transparent)}.status-progress{background:var(--color-primary-100);color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 22%,transparent)}.status-warning{background:var(--color-warning-100);color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 22%,transparent)}.status-success{background:var(--color-success-100);color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 22%,transparent)}.status-danger{background:var(--color-danger-100);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 22%,transparent)}.progress-track{width:100%;height:8px;border-radius:99px;background:var(--color-locked-100);overflow:hidden}.progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--color-primary),color-mix(in srgb,var(--color-primary) 62%,#5EEAD4));transition:width .7s var(--ease)}.progress-fill.success{background:linear-gradient(90deg,var(--color-success),#4ADE80)}.progress-fill.warning{background:linear-gradient(90deg,var(--color-warning),#FBBF24)}table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:700;padding:12px 14px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 55%,transparent)}.data-table th:first-child{border-top-left-radius:var(--radius-sm)}.data-table th:last-child{border-top-right-radius:var(--radius-sm)}.data-table td{padding:14px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background .15s var(--ease)}.data-table tbody tr:hover{background:var(--color-primary-soft)}.cell-primary{font-weight:600;color:var(--text)}.cell-muted{color:var(--text-muted)}.table-scroll{overflow:auto;max-height:min(62vh,720px)}.table-scroll thead th{position:sticky;top:0;z-index:1;background:var(--card)}.cell-actions{width:1%;white-space:nowrap;text-align:right}.row-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}.cell-nowrap{white-space:nowrap}.cell-stack{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.cell-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px}.tab-btn{padding:11px 4px;margin-right:24px;font-size:13px;font-weight:600;color:var(--text-muted);border-bottom:2px solid transparent;position:relative;top:1px;transition:color .15s var(--ease),border-color .15s var(--ease);background:none;border-left:none;border-right:none;border-top:none}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:start}@media(max-width:1100px){.kanban{grid-template-columns:repeat(2,1fr)}}.kanban-col{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px}.kanban-col-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:12.5px;font-weight:700}.kanban-col-head .count{background:var(--card);border:1px solid var(--border);border-radius:99px;padding:1px 8px;font-size:11px;color:var(--text-muted)}.kanban-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:13px;margin-bottom:10px;box-shadow:var(--shadow-sm)}.kanban-card:hover{box-shadow:var(--shadow-md)}.kanban-card .title{font-weight:600;font-size:13px;margin-bottom:6px}.kanban-card .meta{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--text-muted);margin-top:8px}.priority-dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:7px;box-shadow:0 0 0 2.5px color-mix(in srgb,currentColor 10%,transparent)}.timeline{position:relative;padding-left:26px}.timeline:before{content:"";position:absolute;left:6px;top:5px;bottom:5px;width:2px;background:var(--border)}.timeline-item{position:relative;padding-bottom:22px}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";position:absolute;left:-26px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--card);border:2.5px solid var(--color-primary)}.timeline-item.done:before{background:var(--color-success);border-color:var(--color-success);box-shadow:0 0 0 3px var(--color-success-100)}.timeline-item.pending:before{background:var(--card);border-color:var(--color-locked)}.timeline-item .t-title{font-weight:600;font-size:13px}.timeline-item .t-meta{font-size:12px;color:var(--text-muted);margin-top:3px}.stepper{display:flex;align-items:center;overflow-x:auto;padding:8px 2px 14px;gap:0}.step{display:flex;flex-direction:column;align-items:center;gap:9px;min-width:104px;flex:none;position:relative}.step .circle{width:32px;height:32px;border-radius:50%;background:var(--color-locked-100);color:var(--text-subtle);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;border:2px solid transparent;z-index:2;transition:all .2s var(--ease)}.step.done .circle{background:var(--color-success);color:#fff}.step.active .circle{background:linear-gradient(140deg,var(--color-primary),var(--color-primary-600));color:#fff;box-shadow:0 0 0 5px var(--color-primary-100),var(--shadow-primary)}.step.rejected .circle{background:var(--color-danger);color:#fff}.step .label{font-size:10.5px;font-weight:600;color:var(--text-muted);text-align:center;max-width:100px}.step.active .label,.step.done .label{color:var(--text)}.step-line{position:absolute;top:16px;left:calc(-50% + 16px);right:calc(50% + 16px);height:2px;background:var(--border);z-index:1}.step.done .step-line{background:var(--color-success)}.lock-note{display:flex;align-items:center;gap:9px;font-size:11.5px;color:var(--text-subtle);background:var(--color-locked-100);border-radius:var(--radius-sm);padding:9px 13px;margin-top:10px;border:1px solid color-mix(in srgb,var(--color-locked) 16%,transparent)}.modal-overlay{position:fixed;inset:0;background:#0a100f99;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:560px;width:100%;max-height:88vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:modalIn .24s var(--ease)}.modal.wide{max-width:860px}@keyframes modalIn{0%{opacity:0;transform:translateY(16px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--card);z-index:2}.modal-head h3{font-size:16px;font-weight:700}.modal-body{padding:24px}.modal-foot{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;background:color-mix(in srgb,var(--bg) 45%,transparent)}.line-items{width:100%;border-collapse:collapse;margin-bottom:12px}.line-items th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:700;padding:0 8px 9px 0}.line-items td{padding:0 8px 10px 0;vertical-align:middle}.line-items input,.line-items select{width:100%;padding:9px 11px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);color:var(--text);font-size:13px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.line-items input:focus,.line-items select:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.line-items .num{text-align:right}.line-items .amt{text-align:right;font-weight:700;font-size:13px;white-space:nowrap}.totals{margin-left:auto;max-width:330px;background:var(--color-primary-soft);border:1px solid var(--color-primary-100);border-radius:var(--radius-md);padding:14px 16px}.totals-row{display:flex;justify-content:space-between;padding:7px 0;font-size:13px}.totals-row.grand{border-top:1px solid color-mix(in srgb,var(--color-primary) 22%,transparent);margin-top:6px;padding-top:12px;font-size:17px;font-weight:700;letter-spacing:-.015em}.totals-row.grand span:last-child{color:var(--color-primary)}.totals-row .muted{color:var(--text-muted)}.invoice{border:1px solid var(--border);border-radius:var(--radius-md);padding:28px;background:var(--card)}.invoice-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:22px;padding-bottom:20px;border-bottom:2px solid var(--color-primary)}.invoice-head .co-name{font-size:18px;font-weight:700;letter-spacing:-.015em;color:var(--color-primary)}.invoice-head .meta{text-align:right;font-size:12px;color:var(--text-muted)}.invoice-head .meta b{color:var(--text);font-size:13px;display:block;margin-bottom:3px;letter-spacing:.1em}.invoice-parties{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:22px}.invoice-parties .label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-weight:700;margin-bottom:6px}.invoice table{width:100%;border-collapse:collapse}.invoice thead th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:700;padding:10px;border-bottom:1px solid var(--border);background:var(--bg)}.invoice tbody td{padding:12px 10px;border-bottom:1px solid var(--border);font-size:13px}.invoice .r{text-align:right}.toast-wrap{position:fixed;top:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:10px}.toast{background:var(--sidebar);color:#fff;padding:14px 18px;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:13px;font-weight:500;display:flex;align-items:center;gap:11px;min-width:290px;animation:toastIn .28s var(--ease);border:1px solid rgba(255,255,255,.08);transition:opacity .3s var(--ease)}@keyframes toastIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.toast.success{border-left:3px solid var(--color-success)}.toast.warning{border-left:3px solid var(--color-warning)}.toast.danger{border-left:3px solid var(--color-danger)}.toast.info{border-left:3px solid #2DD4BF}.toast.leaving{opacity:0}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state svg{margin:0 auto 14px;opacity:.45}.empty-state h4{font-size:14.5px;color:var(--text);margin-bottom:5px}.skeleton{background:linear-gradient(90deg,var(--border) 25%,var(--bg) 50%,var(--border) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ring-wrap{position:relative;display:flex;align-items:center;justify-content:center}.ring-wrap .ring-label{position:absolute;text-align:center}.ring-wrap .ring-label b{font-size:22px;display:block;letter-spacing:-.02em}.ring-wrap .ring-label span{font-size:10.5px;color:var(--text-muted)}.slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;background:var(--border);outline:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--color-primary);border:3px solid var(--card);box-shadow:0 0 0 1px var(--color-primary),var(--shadow-primary);cursor:pointer;transition:transform .15s var(--ease)}.slider::-webkit-slider-thumb:hover{transform:scale(1.14)}.slider:disabled{opacity:.4}.slider:disabled::-webkit-slider-thumb{background:var(--color-locked);box-shadow:none;cursor:not-allowed}.weight-bar{display:flex;height:10px;border-radius:99px;overflow:hidden;background:var(--border);gap:2px}.weight-seg{height:100%;transition:opacity .15s var(--ease)}.weight-seg:hover{opacity:.82}.list-inline{display:flex;flex-wrap:wrap;gap:8px}.badge{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 10px;font-size:11px;font-weight:600;color:var(--text-muted)}.team-chip{display:inline-flex;align-items:center;gap:6px;background:var(--color-primary-100);color:var(--color-primary);border-radius:99px;padding:4px 12px;font-size:11px;font-weight:700;letter-spacing:.01em;border:1px solid color-mix(in srgb,var(--color-primary) 20%,transparent)}hr.div{border:none;border-top:1px solid var(--border);margin:18px 0}.flex{display:flex}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.flex-wrap{flex-wrap:wrap}.flex-col{flex-direction:column}.flex-1{flex:1}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.text-muted{color:var(--text-muted)}.text-sm{font-size:12.5px}.text-xs{font-size:11px}.text-right{text-align:right}.text-center{text-align:center}.font-semibold{font-weight:600}.font-bold{font-weight:700}.w-full{width:100%}.hidden{display:none!important}.pointer{cursor:pointer}.view-fade{animation:viewFade .3s var(--ease)}@keyframes viewFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media(max-width:900px){.sidebar{transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0)}.main{margin-left:0!important}.search-box{display:none}.view-root{padding:20px}}.side__overlay{position:fixed;inset:0;background:#0a100f80;z-index:39;display:none}.side__overlay.show{display:block}@media(min-width:901px){.side__overlay{display:none!important}}.app-shell:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(680px 480px at 84% -6%,color-mix(in srgb,var(--color-primary) 12%,transparent),transparent 70%),radial-gradient(560px 520px at -8% 108%,color-mix(in srgb,var(--color-accent) 12%,transparent),transparent 70%);opacity:.9;transition:opacity .4s var(--ease)}.app-shell:after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}[data-theme=dark] .app-shell:after{opacity:.05}.main{position:relative;z-index:1}.page-head h1{background:linear-gradient(120deg,var(--text) 30%,var(--color-primary));-webkit-background-clip:text;background-clip:text;color:transparent;width:fit-content}.page-head h1:after{content:"";display:block;height:3px;width:38px;margin-top:9px;border-radius:99px;background:linear-gradient(90deg,var(--color-primary),var(--color-accent))}.kpi-card{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s var(--ease)}.kpi-card:after{height:3px;opacity:.55;background:linear-gradient(90deg,var(--color-primary),var(--color-accent),transparent)}.kpi-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--color-primary-100)}.kpi-card:hover:after{opacity:1}.kpi-card:before{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;pointer-events:none;background:linear-gradient(100deg,transparent,color-mix(in srgb,var(--color-primary) 10%,transparent),transparent);transform:skew(-18deg);transition:left .7s var(--ease);z-index:1}.kpi-card:hover:before{left:130%}.kpi-card .icon-wrap{transition:transform .28s var(--ease),box-shadow .28s var(--ease)}.kpi-card:hover .icon-wrap{transform:scale(1.06) rotate(-3deg);box-shadow:0 8px 20px -8px color-mix(in srgb,var(--color-primary) 55%,transparent)}.kpi-card .value{background:linear-gradient(120deg,var(--text),color-mix(in srgb,var(--text) 55%,var(--color-primary)));-webkit-background-clip:text;background-clip:text;color:transparent}.card{transition:box-shadow .26s var(--ease),transform .26s var(--ease),border-color .26s var(--ease)}.card.hoverable:hover{box-shadow:var(--shadow-lg)}.btn-primary:after,.btn-success:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transform:translate(-120%);transition:transform .6s var(--ease)}.btn-primary:hover:after,.btn-success:hover:after{transform:translate(120%)}.sidebar-head .mark{position:relative}.sidebar-head .mark:after{content:"";position:absolute;inset:-4px;border-radius:14px;z-index:-1;background:radial-gradient(circle,color-mix(in srgb,var(--color-primary) 60%,transparent),transparent 70%);opacity:.5;filter:blur(6px);animation:markPulse 4.5s var(--ease) infinite}@keyframes markPulse{0%,to{opacity:.35;transform:scale(1)}50%{opacity:.7;transform:scale(1.08)}}.nav-item{transition:background .16s var(--ease),color .16s var(--ease),padding-left .16s var(--ease)}.nav-item:hover{padding-left:22px}.nav-item.active svg{filter:drop-shadow(0 0 6px color-mix(in srgb,#2DD4BF 70%,transparent))}.search-box:focus-within{box-shadow:var(--shadow-focus),0 8px 24px -12px color-mix(in srgb,var(--color-primary) 60%,transparent)}.avatar{box-shadow:0 0 0 2px var(--card),0 0 0 3.5px color-mix(in srgb,var(--color-primary) 40%,transparent)}.status-pill{transition:transform .15s var(--ease),box-shadow .15s var(--ease)}.status-pill:hover{transform:translateY(-1px);box-shadow:0 4px 10px -6px color-mix(in srgb,currentColor 60%,transparent)}.fab:before{content:"";position:absolute;inset:0;border-radius:50%;z-index:-1;box-shadow:0 0 color-mix(in srgb,var(--color-primary) 45%,transparent);animation:fabHalo 2.6s var(--ease) infinite}@keyframes fabHalo{0%{box-shadow:0 0 color-mix(in srgb,var(--color-primary) 45%,transparent)}70%{box-shadow:0 0 0 16px transparent}to{box-shadow:0 0 0 0 transparent}}.data-table tbody tr,.data-table tbody tr td:first-child{position:relative}.data-table tbody tr td:first-child:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,var(--color-primary),var(--color-accent));transform:scaleY(0);transform-origin:center;transition:transform .18s var(--ease)}.data-table tbody tr:hover td:first-child:before{transform:scaleY(1)}.progress-fill{position:relative;overflow:hidden}.progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:translate(-100%);animation:progGlow 2.4s var(--ease) infinite}@keyframes progGlow{to{transform:translate(100%)}}.login-card{background:color-mix(in srgb,var(--card) 70%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--radius-lg);padding:34px 32px;box-shadow:var(--shadow-lg)}@media(max-width:900px){.login-card{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--card)}}.modal-overlay{background:radial-gradient(circle at 50% 30%,#0f3c3780,#0a100fb8)}.builder-head{display:flex;gap:8px;margin-bottom:7px;padding:0 2px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:700}.builder-row{display:flex;gap:8px;align-items:center;margin-bottom:10px}.builder-row input,.builder-row select{padding:9px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);color:var(--text);font-size:13px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.builder-row input::placeholder{color:var(--text-subtle)}.builder-row input:hover,.builder-row select:hover{border-color:var(--border-strong)}.builder-row input:focus,.builder-row select:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.builder-row .num{text-align:center}.field input[type=file]{width:100%;padding:9px 12px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-muted);font-size:12.5px;cursor:pointer}.field input[type=file]::file-selector-button{margin-right:12px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--text);font-weight:600;font-size:12px;cursor:pointer}.field input[readonly]{background:var(--bg);cursor:text}.portal-screen{min-height:100vh;background:var(--bg);padding:32px 20px}.portal-wrap{max-width:760px;margin:0 auto}.portal-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.portal-head{display:flex;align-items:center;gap:14px;padding:22px 26px;border-bottom:1px solid var(--border);background:var(--sidebar);color:#fff}.portal-head .mark{width:40px;height:40px;border-radius:11px;background:#ffffff1f;display:flex;align-items:center;justify-content:center;color:#fff;flex:none}.portal-head .text-xs{color:#fff9!important}.portal-co{font-size:16px;font-weight:700}.portal-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px;border-bottom:1px solid var(--border);flex-wrap:wrap}.portal-order{font-size:30px;font-weight:800;letter-spacing:-.02em;color:var(--color-primary)}.portal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media(max-width:640px){.portal-grid{grid-template-columns:repeat(2,1fr)}}.portal-stat{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px}.portal-section{padding:22px 26px;border-bottom:1px solid var(--border)}.portal-section h3{font-size:14px;font-weight:700;margin-bottom:14px}.portal-card>.portal-grid{padding:22px 26px;border-bottom:1px solid var(--border)}.portal-foot{padding:18px 26px;text-align:center;font-size:12px;color:var(--text-muted)}@media(prefers-reduced-motion:reduce){.app-shell:before,.sidebar-head .mark:after,.fab:before,.progress-fill:after{animation:none}}
