:root{--bg:#f4f5fa;--surface:#fff;--surface-2:#f8f9fc;--border:#e5e7ef;--border-2:#d6d9e4;--text:#0f172a;--text-2:#334155;--muted:#64748b;--primary:#7456f1;--primary-600:#5e3fde;--primary-50:#f3f0fe;--primary-100:#e6e0fd;--magenta:#920aca;--navy:#102136;--navy-2:#293164;--teal:#0d9488;--teal-50:#e6f6f4;--amber:#d97706;--amber-50:#fef5e7;--rose:#e11d48;--rose-50:#fdecef;--violet:#7c3aed;--violet-50:#f3edfe;--good:#15803d;--danger:#dc2626;--series-1:#7456f1;--radius:14px;--radius-sm:9px;--shadow:0 1px 2px #1018280a, 0 1px 3px #1018280f;--shadow-lg:0 12px 32px -8px #1018282e, 0 4px 10px #1018280f;--sidebar:252px;--display:Montserrat, Inter, ui-sans-serif, system-ui, sans-serif;font-feature-settings:"cv11", "ss01";color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-size:14px;line-height:1.45}input,select,button,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3{letter-spacing:-.01em;font-family:var(--display);margin:0}kbd{color:var(--text-2);background:var(--surface);border:1px solid var(--border-2);border-bottom-width:2px;border-radius:5px;padding:0 5px;font-family:inherit;font-size:11px;font-weight:600;line-height:17px;display:inline-block}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12.5px}.r{text-align:right}.err{color:var(--danger);margin:10px 0 0;font-weight:500}.spacer{flex:1}.row-gap{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.up{color:var(--good);align-items:center;gap:3px;font-weight:600;display:inline-flex}.down{color:var(--danger);align-items:center;gap:3px;font-weight:600;display:inline-flex}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar);background:linear-gradient(180deg, var(--navy) 0%, #161a3d 100%);color:#cbd5e1;flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;padding:20px 18px 18px;display:flex}.brand-logo{background:linear-gradient(135deg, var(--primary), var(--magenta));color:#fff;border-radius:11px;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:12px;font-weight:800;display:grid}.brand-svg{border-radius:13px;flex-shrink:0;display:block}.brand-img{object-fit:contain;background:#fff;border-radius:12px;flex-shrink:0;padding:3px;display:block}.brand strong{font-family:var(--display);letter-spacing:.01em;color:#fff;font-size:15px;display:block}.brand span{color:#94a3b8;font-size:12px}.brand .icon-btn{color:#cbd5e1;margin-left:auto}.nav{flex:1;padding:4px 12px;overflow-y:auto}.nav-group{margin-bottom:14px}.nav-label{text-transform:uppercase;letter-spacing:.08em;color:#64748b;padding:6px 10px;font-size:11px;font-weight:600;display:block}.nav-item{color:#cbd5e1;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;padding:9px 12px;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.on{color:#fff;background:#7456f138;box-shadow:inset 3px 0 #a996f8}.nav-item.on svg{color:#c4b8fb}.nav-kbd{color:#64748b;background:0 0;border-color:#334155;margin-left:auto}.side-foot{border-top:1px solid #ffffff14;align-items:center;gap:10px;padding:14px 16px;display:flex}.side-foot strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;max-width:170px;font-size:12px;display:block;overflow:hidden}.side-foot span:not(.avatar){color:#94a3b8;font-size:11px}.brand .only-drawer{display:none}.content{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:40;background:#ffffffd9;align-items:center;gap:10px;height:58px;padding:0 16px;display:none;position:sticky;top:0}.topbar-title{font-size:16px;font-weight:700}.topbar-company{color:var(--muted);font-size:12px;font-weight:500}.main{flex:1;min-width:0}.tabbar{display:none}.page{width:100%;max-width:1680px;margin:0 auto;padding:26px 30px 40px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head h1{font-size:24px;font-weight:750}.page-head p{margin:4px 0 0}.page-actions{flex-wrap:wrap;gap:8px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.card-title{align-items:center;gap:10px;display:flex}.card-title h2{font-size:15.5px;font-weight:650}.card-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);white-space:nowrap;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-size:12px;font-weight:500;display:inline-flex}.chip-sm{border-radius:99px;padding:1px 7px;font-size:11.5px;font-weight:600}.chip-sm.good{color:var(--good);background:#e8f6ee}.chip-sm.warn{background:var(--amber-50);color:#b45309}.badge{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);border-radius:6px;padding:1px 8px;font-size:11.5px;font-weight:600;display:inline-block}.badge.teal{background:var(--teal-50);color:#0f766e;border-color:#b9e6e0}.badge.violet{background:var(--violet-50);color:#6d28d9;border-color:#ddd0fb}.count{background:var(--primary);color:#fff;border-radius:99px;padding:0 7px;font-size:11px;font-weight:700;line-height:18px}.foot-note{margin:14px 4px 0}.btn{white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:7px;height:38px;padding:0 15px;font-size:13.5px;font-weight:600;transition:background .15s,box-shadow .15s,transform 50ms,border-color .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:focus-visible,.icon-btn:focus-visible,.nav-item:focus-visible{outline:3px solid var(--primary-100);outline-offset:1px}.btn:disabled{opacity:.5;pointer-events:none}.btn.primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px #5e3fde4d,inset 0 1px #ffffff26}.btn.primary:hover{background:var(--primary-600)}.btn.primary.dim{background:#a999f5}.btn.ghost{background:var(--surface);border-color:var(--border-2);color:var(--text-2)}.btn.ghost:hover{background:var(--surface-2);border-color:#c4c8d6}.btn.soft{background:var(--primary-50);color:var(--primary)}.btn.soft:hover{background:var(--primary-100)}.btn.danger{background:var(--danger);color:#fff}.btn.danger-ghost{background:var(--surface);color:var(--danger);border-color:#f5c2c2}.btn.danger-ghost:hover{background:#fef2f2}.btn.link{color:var(--primary);background:0 0;height:auto;padding:0 4px}.btn.link:hover{text-decoration:underline}.btn.lg{border-radius:12px;height:48px;font-size:15px}.btn.block{width:100%}.kbd-inv{color:#fff;background:#ffffff2e;border-color:#ffffff40;margin-left:4px}.icon-btn{width:32px;height:32px;color:var(--muted);background:0 0;border:0;border-radius:8px;flex-shrink:0;place-items:center;transition:background .15s,color .15s;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn.danger:hover{color:var(--danger);background:#fef2f2}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:7px;align-items:center;gap:5px;padding:5px 12px;font-size:13px;font-weight:500;display:inline-flex}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-weight:600}.seg.full{width:100%;display:flex}.seg.full button{flex:1;justify-content:center;height:32px}.avatar{background:linear-gradient(135deg, var(--primary-100), #d8cffc);width:36px;height:36px;color:var(--primary-600);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:inline-grid}.avatar.sm{width:30px;height:30px;font-size:11.5px}.avatar.sq{background:linear-gradient(135deg, var(--teal-50), #c4ece6);color:#0f766e;border-radius:8px}.avatar.blank{background:var(--surface-2);color:var(--muted)}.avatar.new{background:var(--primary);color:#fff}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label{color:var(--text-2);font-size:12.5px;font-weight:600}.field label em{color:var(--danger);font-style:normal}.field input,.field select,.select{border:1px solid var(--border-2);background:var(--surface);border-radius:10px;outline:none;width:100%;min-width:0;height:40px;padding:0 12px;transition:border-color .15s,box-shadow .15s}.select{width:auto;height:38px}.field input:focus,.field select:focus,.select:focus,.combo-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-50)}.field.invalid input,.field.invalid .combo-input{border-color:var(--danger);box-shadow:0 0 0 4px #fde8e8}.field .hint{color:var(--muted);min-height:16px;font-size:12px}.span-2{grid-column:span 2}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.search{border:1px solid var(--border-2);background:var(--surface);min-width:220px;max-width:420px;height:38px;color:var(--muted);border-radius:10px;flex:1;align-items:center;gap:8px;padding:0 6px 0 12px;display:flex}.search:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-50)}.search input{min-width:0;height:100%;color:var(--text);background:0 0;border:0;outline:none;flex:1}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.combo{position:relative}.combo-input{border:1px solid var(--border-2);background:var(--surface);border-radius:12px;align-items:center;gap:10px;height:46px;padding:0 12px 0 6px;transition:border-color .15s,box-shadow .15s;display:flex}.combo-input input{background:0 0;border:0;outline:none;flex:1;min-width:0;height:100%;padding:0;font-size:15px;font-weight:600;box-shadow:none!important}.dropdown{z-index:60;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:12px;max-height:320px;padding:6px;animation:.12s ease-out pop;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.dropdown.fixed{width:340px;position:fixed;right:auto}.dd-row{cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:8px 10px;display:flex}.dd-row strong{font-size:13.5px;display:block}.dd-row span:not(.avatar){color:var(--muted);font-size:12px;display:block}.dd-row.hi{background:var(--primary-50)}.dd-row.hi strong{color:var(--primary-600)}@keyframes pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.pop-wrap{position:relative}.popover{background:var(--surface);border:1px solid var(--border);width:340px;box-shadow:var(--shadow-lg);z-index:50;border-radius:12px;padding:8px;animation:.12s ease-out pop;position:absolute;top:calc(100% + 6px);right:0}.popover-title{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:4px 8px 8px;font-size:12px;font-weight:600}.popover-empty{color:var(--muted);padding:10px 8px 12px;font-size:13px}.draft-row{border-radius:9px;align-items:center;gap:4px;display:flex}.draft-row:hover{background:var(--surface-2)}.draft-main{text-align:left;background:0 0;border:0;flex-direction:column;flex:1;padding:8px;display:flex}.draft-main span{font-size:12px}.pe-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;display:grid}.pe-main{flex-direction:column;gap:18px;min-width:0;display:flex}.pe-head{grid-template-columns:2fr 1fr 1fr 1fr 1.1fr;align-items:start;gap:16px;display:grid}.pe-head .span-2{grid-column:span 1}.pe-items.invalid{border-color:#f5b5b5;box-shadow:0 0 0 4px #fdecec}.grid-scroll{border:1px solid var(--border);border-radius:12px;min-height:220px;max-height:calc(100vh - 380px);overflow:auto}table.grid{border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13.5px}.grid th{z-index:2;background:var(--surface-2);color:var(--muted);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;padding:10px 8px;font-size:12px;font-weight:600;position:sticky;top:0;overflow:hidden}.grid th.r{text-align:right}.grid td{white-space:nowrap;text-overflow:ellipsis;height:42px;color:var(--text-2);font-variant-numeric:tabular-nums;border-bottom:1px solid #eef0f5;padding:0 8px;overflow:hidden}.grid td.ro{color:var(--muted)}.grid tr.cur td{background:#fafbff}.grid td.ed{padding:0 3px}.grid td input,.grid td select{width:100%;height:32px;color:var(--text);font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:7px;outline:none;padding:0 6px;transition:background .12s,border-color .12s}.grid td input::placeholder{color:#a7afc0}.grid td:hover input,.grid td:hover select{border-color:var(--border);background:var(--surface)}.grid td.r input{text-align:right}.grid td.act input,.grid td.act select{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px var(--primary-50)}.grid td.sno{text-align:center;color:var(--muted);font-size:12px;font-weight:600}.grid td.del{text-align:center;padding:0}.grid tr.blank td.ro,.grid tr.blank td.del{background:0 0}.grid tr:not(.blank) td:first-child{box-shadow:inset 3px 0 #0000}.grid tr.cur td:first-child{box-shadow:inset 3px 0 0 var(--primary)}.thumb{vertical-align:middle;border-radius:4px;height:28px}.grid-foot{color:var(--muted);flex-wrap:wrap;gap:16px;padding:12px 2px 0;font-size:12px;display:flex}.grid-foot span{align-items:center;gap:4px;display:inline-flex}.pe-summary{padding:0;position:sticky;top:20px;overflow:hidden}.sum-hero{background:linear-gradient(135deg, var(--navy-2), var(--primary) 62%, var(--magenta));color:#fff;flex-direction:column;gap:2px;padding:20px 20px 16px;display:flex}.sum-hero .muted{color:#e2dcfd;font-size:12.5px;font-weight:500}.sum-amount{font-size:32px;font-weight:800;font-family:var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.sum-words{color:#ece7fe;font-size:11.5px;line-height:1.35}.sum-stats{border-bottom:1px solid var(--border);grid-template-columns:repeat(3,1fr);display:grid}.sum-stats div{text-align:center;flex-direction:column;padding:12px 8px;display:flex}.sum-stats div+div{border-left:1px solid var(--border)}.sum-stats span{color:var(--muted);font-size:11.5px}.sum-stats b{font-variant-numeric:tabular-nums;font-size:16px}.sum-lines{flex-direction:column;margin:0;padding:12px 20px;display:flex}.sum-lines>div{border-bottom:1px dashed #eceef4;justify-content:space-between;align-items:center;gap:12px;padding:7px 0;display:flex}.sum-lines>div:last-child{border-bottom:0}.sum-lines dt{color:var(--muted);font-size:13px}.sum-lines dd{font-variant-numeric:tabular-nums;gap:6px;margin:0;font-weight:600;display:flex}.affix{border:1px solid var(--border-2);background:var(--surface);border-radius:8px;align-items:center;height:32px;display:inline-flex;overflow:hidden}.affix:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-50)}.affix i{color:var(--muted);background:var(--surface-2);place-items:center;height:100%;padding:0 7px;font-size:12px;font-style:normal;display:grid}.affix input{text-align:right;background:0 0;border:0;outline:none;width:54px;height:100%;padding:0 7px;font-weight:600}.affix.wide input{width:100px}.sum-actions{flex-direction:column;gap:10px;padding:4px 20px 20px;display:flex}.sum-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.sum-actions .btn.link{justify-content:center;font-size:12.5px;font-weight:500}.saved-box{text-align:center;flex-direction:column;align-items:center;gap:4px;padding:6px 0;display:flex}.saved-amt{color:var(--text);font-size:30px;font-weight:800}.shortcuts{gap:8px;display:grid}.sc-row{grid-template-columns:190px 1fr;align-items:center;gap:10px;display:grid}.sc-row kbd{justify-self:start}.formula{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);border-radius:10px;flex-direction:column;gap:4px;margin-top:16px;padding:12px 14px;font-size:12.5px;display:flex}.m-items{flex-direction:column;gap:10px;display:flex}.m-item{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:12px;display:flex}.m-item:active{background:var(--surface-2)}.m-item-main{flex-direction:column;flex:1;min-width:0;display:flex}.m-item-main strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.m-item-amt{flex-direction:column;align-items:flex-end;display:flex}.m-empty{color:var(--muted);border:1.5px dashed var(--border-2);border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:22px;display:flex}.sheet-calc{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px;display:grid}.sheet-calc div{background:var(--surface-2);border-radius:10px;flex-direction:column;padding:8px 10px;display:flex}.sheet-calc span{color:var(--muted);font-size:11px}.sheet-calc .hl{background:var(--primary-50);color:var(--primary-600)}.m-savebar{display:none}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:14px;min-width:0;padding:16px 18px;display:flex}.kpi-ico{border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.kpi-ico.sm{border-radius:10px;width:34px;height:34px}.kpi-ico.indigo{background:var(--primary-50);color:var(--primary)}.kpi-ico.teal{background:var(--teal-50);color:var(--teal)}.kpi-ico.amber{background:var(--amber-50);color:var(--amber)}.kpi-ico.rose{background:var(--rose-50);color:var(--rose)}.kpi-text{flex-direction:column;min-width:0;display:flex}.kpi-label{color:var(--muted);font-size:12.5px;font-weight:500}.kpi-value{font-size:23px;font-weight:750;font-family:var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}.kpi-hint{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.dash-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.dash-grid .span-2{grid-column:span 2}.viz{width:100%;min-width:0;position:relative;overflow:hidden}.dash-grid>*,.kpis>*,.pe-layout>*{min-width:0}.viz svg{display:block;overflow:visible}.viz-grid{stroke:#eceef4;stroke-width:1px}.viz-axis{stroke:#cfd4df;stroke-width:1px}.viz-tick{fill:var(--muted);font-size:11px}.viz-bar{fill:var(--series-1);transition:opacity .12s}.viz-bar.on{fill:#5e3fde}.viz rect:focus{outline:none}.viz-tip{pointer-events:none;color:#fff;width:150px;box-shadow:var(--shadow-lg);background:#0f172a;border-radius:9px;flex-direction:column;padding:7px 10px;font-size:11.5px;display:flex;position:absolute}.viz-tip strong{font-size:14px}.viz-tip span{color:#cbd5e1}.mini-table{max-height:220px;overflow:auto}.rank{flex-direction:column;gap:14px;display:flex}.rank-top{justify-content:space-between;gap:10px;margin-bottom:5px;font-size:13px;display:flex}.rank-label{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.rank-val{font-variant-numeric:tabular-nums;font-weight:650}.rank-track{background:#eef0f6;border-radius:99px;height:8px;overflow:hidden}.rank-bar{background:var(--series-1);border-radius:99px;height:100%}.rank-sub{color:var(--muted);font-size:11.5px}.recent{flex-direction:column;display:flex}.recent-row{text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;padding:10px 8px;display:flex}.recent-row:hover{background:var(--surface-2)}.recent-main{flex-direction:column;flex:1;min-width:0;display:flex}.recent-main strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.recent-main span{font-size:12px}.recent-amt{font-variant-numeric:tabular-nums;text-align:right;min-width:96px}.quick{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.quick-btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);border-radius:11px;align-items:center;gap:8px;padding:12px;font-weight:600;display:flex}.quick-btn:hover{border-color:var(--primary-100);background:var(--primary-50);color:var(--primary-600)}.table-wrap{margin:0 -18px -18px;overflow-x:auto}table.table{border-collapse:collapse;width:100%;font-size:13.5px}.table th{text-align:left;color:var(--muted);background:var(--surface-2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-size:12px;font-weight:600}.table th:first-child,.table td:first-child{padding-left:18px}.table th:last-child,.table td:last-child{padding-right:18px}.table th.r{text-align:right}.table td{font-variant-numeric:tabular-nums;white-space:nowrap;border-bottom:1px solid #f0f1f6;padding:11px 14px}.table.compact td,.table.compact th{padding:7px 10px}.table tbody tr{transition:background .12s}.table tr.clickable{cursor:pointer}.table tbody tr:hover{background:#fafbff}.table tfoot td{background:var(--surface-2);border-bottom:0;font-weight:700}.table .actions{white-space:nowrap}.table .actions .icon-btn{width:30px;height:30px}.cell-party{align-items:center;gap:10px;display:flex}.empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;display:flex}.empty-ico{background:var(--primary-50);width:60px;height:60px;color:var(--primary);border-radius:18px;place-items:center;margin-bottom:6px;display:grid}.empty h3{font-size:17px}.empty p{max-width:420px;margin:0 0 10px}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:18px;display:grid}.settings-grid p{margin:0 0 14px}.stat-row{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;display:grid}.stat-row div{background:var(--surface-2);border-radius:10px;flex-direction:column;align-items:center;padding:10px;display:flex}.stat-row b{font-size:20px}.stat-row span{color:var(--muted);font-size:12px}.modal-back{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#0f172a73;justify-content:center;align-items:center;padding:20px;animation:.15s fade;display:flex;position:fixed;inset:0}.modal{background:var(--surface);box-shadow:var(--shadow-lg);border-radius:18px;flex-direction:column;max-width:100%;max-height:calc(100vh - 40px);animation:.18s ease-out rise;display:flex}.modal-head{align-items:center;gap:10px;padding:16px 18px 6px;display:flex}.modal-head h3{flex:1;font-size:16.5px}.modal-ico{background:var(--primary-50);width:34px;height:34px;color:var(--primary);border-radius:10px;place-items:center;display:grid}.modal-ico.danger{color:var(--danger);background:#fdecec}.modal-ico.ok{color:var(--good);background:#e8f6ee}.modal-body{padding:12px 18px 18px;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 18px 18px;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:14px 18px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(10px)scale(.98)}}@keyframes slide{0%{transform:translate(100%)}}@keyframes slide-l{0%{transform:translate(-100%)}}@keyframes up{0%{transform:translateY(100%)}}.drawer-back{z-index:90;background:#0f172a66;animation:.15s fade;position:fixed;inset:0}.drawer{background:var(--surface);width:460px;max-width:100%;box-shadow:var(--shadow-lg);flex-direction:column;animation:.2s ease-out slide;display:flex;position:absolute;top:0;bottom:0;right:0}.drawer-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:18px;display:flex}.drawer-head h3{font-size:16px}.drawer-body{flex-direction:column;flex:1;gap:16px;padding:18px;display:flex;overflow-y:auto}.drawer-total{background:var(--surface-2);border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;display:flex}.drawer-total strong{font-size:26px;font-weight:800}.drawer-foot{border-top:1px solid var(--border);gap:8px;padding:14px 18px;display:flex}.drawer .sum-lines{padding:0}.items-list{flex-direction:column;gap:8px;display:flex}.item-card{border:1px solid var(--border);border-radius:11px;justify-content:space-between;gap:12px;padding:10px 12px;display:flex}.item-card>div{flex-direction:column;gap:1px;display:flex}.item-card>div.r{align-items:flex-end}.toaster{z-index:200;pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed;top:18px;right:18px}.toast{color:#fff;box-shadow:var(--shadow-lg);pointer-events:auto;background:#0f172a;border-radius:12px;align-items:center;gap:10px;max-width:420px;padding:11px 16px;font-weight:500;animation:.2s ease-out rise;display:flex}.toast.ok svg{color:#4ade80}.toast.err{background:#7f1d1d}.toast.err svg{color:#fca5a5}.toast.info svg{color:#93c5fd}.print-area{color:#000;font-size:12.5px}.pb-head{border-bottom:2px solid #111;justify-content:space-between;gap:20px;padding-bottom:12px;display:flex}.pb-head h2{font-size:20px}.pb-meta{color:#444;gap:14px;margin-top:4px;display:flex}.pb-title{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.pb-title strong{letter-spacing:.08em;color:#fff;background:#111;border-radius:4px;margin-bottom:4px;padding:3px 10px;font-size:14px}.pb-party{border-bottom:1px solid #ccc;flex-direction:column;padding:10px 0;display:flex}.pb-party strong{font-size:15px}.pb-table,.pb-tax,.pb-totals{border-collapse:collapse;width:100%}.pb-table{margin-top:10px}.pb-table th,.pb-tax th{text-align:left;background:#f1f1f4;border-bottom:1px solid #999;padding:6px;font-size:11.5px}.pb-table th.r,.pb-tax th.r{text-align:right}.pb-table td{vertical-align:top;font-variant-numeric:tabular-nums;border-bottom:1px solid #e3e3e3;padding:6px}.pb-sub{color:#555;font-size:11px}.pb-bottom{grid-template-columns:1fr 280px;gap:24px;margin-top:14px;display:grid}.pb-tax td{border-bottom:1px solid #eee;padding:4px 6px}.pb-words{margin:12px 0 0;font-weight:600}.pb-totals td{padding:4px 0}.pb-grand td{border-top:2px solid #111;padding-top:8px;font-size:16px;font-weight:800}.pb-sign{color:#444;justify-content:space-between;margin-top:56px;display:flex}.pb-sign span{text-align:center;border-top:1px solid #999;min-width:160px;padding-top:4px}@media print{@page{margin:12mm}body *{visibility:hidden!important}.print-area,.print-area *{visibility:visible!important}.print-area{width:100%;position:absolute;top:0;left:0}.modal-back{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;position:static}.modal{box-shadow:none;max-height:none}}@media (width<=1640px){.pe-layout{grid-template-columns:minmax(0,1fr) 320px}.pe-head{grid-template-columns:repeat(3,minmax(0,1fr))}.pe-head .span-2{grid-column:span 2}}@media (width<=1100px){.sidebar{display:none}.sidebar.open{z-index:95;box-shadow:var(--shadow-lg);animation:.2s ease-out slide-l;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar.open .only-drawer{display:grid}.topbar{display:flex}.page{padding:20px 20px 32px}.page-head h1{font-size:21px}.pe-layout{grid-template-columns:1fr}.pe-summary{grid-template-columns:1fr 1fr;display:grid;position:static}.pe-summary .sum-hero,.pe-summary .sum-stats{grid-column:span 2}.pe-summary .sum-actions{padding-top:12px}.grid-scroll{max-height:60vh}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-grid{grid-template-columns:1fr 1fr}.dash-grid .span-2{grid-column:span 2}}@media (width>=1101px){.nav-drawer-back{display:none}}@media (width<=760px){body{font-size:14.5px}.topbar{height:54px;padding:0 10px}.topbar-company{display:none}.page{padding:16px 14px 150px}.page-head{align-items:flex-start;margin-bottom:14px}.page-head h1{font-size:20px}.page-head p{font-size:13px}.page-actions{width:100%}.page-actions .btn{flex:1}.purchase-page .page-actions .btn:nth-child(2),.purchase-page .page-actions .btn:nth-child(3){display:none}.card{border-radius:12px;padding:14px}.table-wrap{margin:0 -14px -14px}.table th:first-child,.table td:first-child{padding-left:14px}.pe-head{grid-template-columns:1fr 1fr;gap:12px}.pe-head .span-2,.pe-head .field:last-child{grid-column:span 2}.pe-summary{padding:0;display:block}.pe-summary .sum-actions{display:none}.sum-amount{font-size:28px}.m-savebar{left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom));z-index:45;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);background:#fffffff5;align-items:center;gap:8px;padding:10px 14px;display:flex;position:fixed;box-shadow:0 -6px 20px #10182814}.m-savebar>div{flex-direction:column;flex:1;display:flex}.m-savebar strong{font-size:19px;font-weight:800}.m-savebar .btn{height:44px}.kpis{gap:10px}.kpi{flex-direction:column;align-items:flex-start;gap:10px;padding:12px}.kpi-ico{border-radius:10px;width:36px;height:36px}.kpi-value{font-size:19px}.dash-grid{grid-template-columns:1fr;gap:14px}.dash-grid .span-2{grid-column:span 1}.toolbar .search{min-width:100%;max-width:none}.toolbar .seg{max-width:100%;overflow-x:auto}.toolbar .select{flex:1}.form-grid{grid-template-columns:1fr 1fr;gap:12px}.sheet-calc{grid-template-columns:1fr 1fr}.recent-row .chip{display:none}.recent-amt{min-width:0}.drawer{width:100%}.toaster{align-items:stretch;inset:auto 14px 140px}.toast{max-width:none}.modal-back{align-items:flex-end;padding:0}.modal{border-radius:20px 20px 0 0;max-height:92vh;animation:.22s ease-out up;width:100%!important}.modal-foot{padding-bottom:calc(14px + env(safe-area-inset-bottom));border-radius:0}.modal-foot .btn{flex:1}.sc-row{grid-template-columns:150px 1fr}.pb-bottom{grid-template-columns:1fr}.pb-head{flex-direction:column}.pb-title{align-items:flex-start}.print-area{overflow-x:auto}.tabbar{z-index:50;height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);background:#fffffff7;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:var(--muted);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex}.tabbar button.on{color:var(--primary)}.tabbar button.fab svg{background:var(--primary);color:#fff;border-radius:12px;width:40px;height:32px;padding:6px 10px;box-shadow:0 4px 12px #7456f166}}.table th.sortable{padding:0}.table th.sortable button{all:unset;box-sizing:border-box;cursor:pointer;width:100%;font:inherit;color:inherit;align-items:center;gap:5px;padding:10px 14px;display:flex}.table th.sortable:first-child button{padding-left:18px}.table th.sortable.r button{justify-content:flex-end}.table th.sortable button:hover{color:var(--text);background:#eff0f6}.table th.sortable button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.table th.sortable.sorted{color:var(--primary-600)}.table th.sortable svg{flex-shrink:0}.table th.sortable svg.idle{opacity:.35}.table th.sortable button:hover svg.idle{opacity:.7}.pager{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;align-items:center;gap:16px;margin-top:18px;padding:14px 0 0;font-size:13px;display:flex}.pager b{color:var(--text);font-weight:600}.pager-size{align-items:center;gap:8px;display:flex}.pager-size select{border:1px solid var(--border-2);background:var(--surface);border-radius:8px;height:32px;padding:0 8px}.pager-nav{align-items:center;gap:4px;margin-left:auto;display:flex}.pg{border:1px solid var(--border);background:var(--surface);min-width:32px;height:32px;color:var(--text-2);border-radius:8px;place-items:center;padding:0 6px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s,color .12s;display:inline-grid}.pg:hover:not(:disabled){border-color:var(--primary-100);background:var(--primary-50);color:var(--primary-600)}.pg:disabled{opacity:.4;cursor:default}.pg.on{background:var(--primary);border-color:var(--primary);color:#fff}.pg-gap{padding:0 4px}@media (width<=760px){.pager{gap:10px}.pager-nav{justify-content:center;width:100%;margin-left:0}.pager-nav .pg.num:not(.on){display:none}.pager-info{flex:1}}.lg{background-color:#f7f3ee;background-image:repeating-linear-gradient(0deg,#10213609 0 1px,#0000 1px 4px),repeating-linear-gradient(90deg,#10213608 0 1px,#0000 1px 4px);grid-template-columns:minmax(0,1.15fr) minmax(420px,1fr);min-height:100vh;display:grid;position:relative;overflow:hidden}.lg-left{flex-direction:column;min-height:100vh;padding:34px 0 0 48px;display:flex;position:relative}.lg-brand{align-items:center;gap:12px;display:flex}.lg-brand strong{font-family:var(--display);color:var(--navy);letter-spacing:.02em;text-transform:uppercase;font-size:18px;display:block}.lg-brand span{color:#6b6577;font-size:12.5px}.lg-copy{max-width:520px;margin-top:7vh;padding-right:32px}.lg-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--magenta);border-bottom:2px solid;padding-bottom:2px;font-size:12px;font-weight:700;display:inline-block}.lg-copy h1{font-family:var(--display);color:var(--navy);letter-spacing:-.03em;margin-top:18px;font-size:clamp(32px,3.6vw,50px);font-weight:800;line-height:1.05}.lg-copy h1 em{color:var(--primary);background:linear-gradient(#0000 62%,#920aca29 62%);font-style:normal}.lg-copy p{color:#5c5868;max-width:440px;margin:18px 0 0;font-size:15.5px;line-height:1.6}.bolts{flex-direction:column;margin-top:auto;padding-bottom:0;display:flex;transform:translate(-48px)}.bolt{--h:64px;height:var(--h);width:calc(76% + var(--i) * 3%);background-color:var(--c);border-radius:0 calc(var(--h) / 2) calc(var(--h) / 2) 0;max-width:720px;animation:.7s cubic-bezier(.2,.8,.2,1) both bolt-in;animation-delay:calc(var(--i) * 90ms + .1s);margin-top:-6px;transition:transform .25s;position:relative;box-shadow:inset 0 -10px 14px -8px #00000047,inset 0 8px 10px -8px #ffffff8c,0 6px 10px -6px #10213659}.bolt:hover{transform:translate(14px)}.bolt:after{content:"";width:calc(var(--h) / 2);background:linear-gradient(90deg,#0000,#00000024 60%,#ffffff2e);border-radius:0 999px 999px 0;position:absolute;top:0;bottom:0;right:0}.bolt:last-child{--h:76px}.w-jersey{background-image:repeating-linear-gradient(90deg,#785a321f 0 1px,#0000 1px 4px)}.w-rib{background-image:repeating-linear-gradient(90deg,#00000021 0 3px,#0000 3px 8px)}.w-terry{background-image:radial-gradient(circle at 3px 3px,#ffffff38 1.4px,#0000 1.6px);background-size:6px 6px}.w-mesh{background-image:radial-gradient(circle,#78143c47 1.3px,#0000 1.6px);background-size:7px 7px}.w-melange{background-image:radial-gradient(#ffffff8c .8px,#0000 1.2px),radial-gradient(#3c374659 .8px,#0000 1.2px);background-position:0 0,2px 3px;background-size:5px 5px,7px 7px}.bolt-label{right:calc(var(--h) / 2 + 14px);border-left:3px solid var(--magenta);background:#ffffffeb;border-radius:4px;flex-direction:column;align-items:flex-end;padding:4px 10px 5px;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 6px #1021362e}.bolt-label b{font-family:var(--display);color:var(--navy);letter-spacing:.02em;font-size:12.5px}.bolt-label i{color:#77707f;font-size:10.5px;font-style:normal}@keyframes bolt-in{0%{transform:translate(-110%)}to{transform:none}}.lg-right{justify-content:center;align-items:flex-start;padding:0 32px 40px;display:flex;position:relative}.tag-wrap{transform-origin:50% 0;width:100%;max-width:410px;padding-top:118px;animation:1.4s ease-out both swing;position:relative}.tag-string{width:40px;height:140px;margin-left:-20px;position:absolute;top:0;left:50%;overflow:visible}.tag-string path{fill:none;stroke:#8a7d6b;stroke-width:2px;stroke-dasharray:4 3}.tag{clip-path:polygon(22% 0,78% 0,100% 12%,100% 100%,0 100%,0 12%);background:#fffdf9;border-radius:8px 8px 22px 22px;padding:12px;position:relative}.tag-wrap{filter:drop-shadow(0 22px 26px #10213629)drop-shadow(0 2px 3px #10213614)}.tag-hole{z-index:2;background:#f7f3ee;border-radius:50%;width:22px;height:22px;margin-left:-11px;position:absolute;top:22px;left:50%;box-shadow:inset 0 2px 3px #00000040,0 0 0 4px #e9dfcf}.tag-stitch{border:2px dashed #7456f161;border-radius:6px 6px 16px 16px;flex-direction:column;gap:16px;margin-top:40px;padding:54px 26px 20px;display:flex}.tag-head{text-align:center;flex-direction:column;align-items:center;gap:4px;margin-bottom:4px;display:flex}.tag-head .brand-img,.tag-head .brand-svg{margin-bottom:6px;box-shadow:0 4px 12px #1021361f}.tag-kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--magenta);font-size:11px;font-weight:700}.tag-head h2{color:var(--navy);font-size:28px;font-weight:800}.tf{flex-direction:column;gap:4px;display:flex}.tf>span{letter-spacing:.08em;text-transform:uppercase;color:#6b6577;font-size:11.5px;font-weight:700}.tf input{height:42px;color:var(--navy);background:0 0;border:0;border-bottom:2px solid #ddd5c8;outline:none;width:100%;padding:0 2px;font-size:16px;transition:border-color .15s}.tf input::placeholder{color:#b6ad9f}.tf input:focus{border-bottom-color:var(--primary)}.tf.bad input{border-bottom-color:var(--danger)}.tf-row{align-items:center;display:flex}.tf-row .icon-btn{margin-left:-34px}.tag-btn{color:#fff;background:linear-gradient(180deg, var(--navy-2) 0%, var(--primary) 100%);border-radius:12px;height:50px;margin-top:4px;font-size:15.5px;box-shadow:0 8px 18px -8px #5e3fdeb3}.tag-btn:hover{filter:brightness(1.08)}.tag-care{letter-spacing:.16em;color:#9a917f;border-top:1px dashed #e4dccd;justify-content:center;gap:8px;padding-top:12px;font-size:10px;font-weight:600;display:flex}.login-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;font-size:13.5px;font-weight:500;animation:.3s shake;display:flex}.check{color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13.5px;display:flex}.check input{width:17px;height:17px;accent-color:var(--primary)}.spin{animation:.8s linear infinite spin}.side-foot .logout{color:#94a3b8;margin-left:auto}.side-foot .logout:hover{color:#fff;background:#ffffff14}.side-foot span:not(.avatar){text-overflow:ellipsis;white-space:nowrap;max-width:150px;display:block;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes swing{0%{transform:rotate(-5deg)}35%{transform:rotate(3deg)}65%{transform:rotate(-1.2deg)}to{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.bolt,.tag-wrap{animation:none}}@media (width<=1000px){.lg{grid-template-columns:1fr}.lg-left{min-height:0;padding:22px 22px 0}.lg-copy{display:none}.bolts{margin-top:18px;margin-left:-22px;transform:none}.bolt{--h:26px;width:calc(78% + var(--i) * 4%);margin-top:-3px}.bolt:last-child{--h:30px}.bolt-label{display:none}.lg-right{padding:0 18px 32px}.tag-wrap{margin-top:-8px;padding-top:58px}.tag-string{height:70px}}@media (width<=420px){.tag-stitch{padding:50px 18px 18px}}
