.mx{border-collapse:separate;border-spacing:0;font-size:var(--fs);width:max-content;min-width:100%}.mx th,.mx td{height:28px;padding:0 8px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.mx thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);font-size:var(--fs-xs);font-weight:600;color:var(--text-2);letter-spacing:.02em}.mx th.mx-row,.mx td.mx-row{position:sticky;left:0;z-index:1;text-align:left;background:var(--surface);border-right:1px solid var(--border);min-width:160px;max-width:260px;overflow:hidden;text-overflow:ellipsis}.mx thead th.mx-row{z-index:3;background:var(--surface-2)}.mx tbody tr:hover td{background:var(--surface-2)}.mx td.is-zero{color:var(--text-3);opacity:.55}.mx td.is-alert{color:var(--brand);font-weight:600}.mx td.is-success{color:var(--success)}.mx td.is-click{cursor:pointer}.mx td.is-click:hover{text-decoration:underline}.mx .mx-total{font-weight:600;background:var(--surface-2)}.mx tfoot td{position:sticky;bottom:0;z-index:1;font-weight:600;background:var(--surface-2);border-top:1px solid var(--border-strong)}.mx tfoot td.mx-row{z-index:2}.mx td.mx-total,.mx th.mx-total{border-left:1px solid var(--border)}.mx .mx-sub{display:block;font-size:var(--fs-xs);color:var(--text-3);line-height:1.2}.mx-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.qcell{width:56px;height:24px;padding:0 4px;border:1px solid var(--border-strong);border-radius:4px;text-align:right;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;background:var(--surface)}.qcell:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px #d0373024}.qcell[aria-invalid=true]{border-color:var(--danger);background:var(--danger-bg)}.qcell.is-filled{border-color:#9fd3c9;background:var(--teal-bg);font-weight:600}.qcell:disabled{background:var(--surface-3);color:var(--text-3);border-color:var(--border)}.qmax{display:block;font-size:11.5px;color:var(--text-3);line-height:1.1;margin-top:1px}.mx td.q{padding:2px 4px;height:38px}.qty{display:inline-flex;align-items:stretch;border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden;background:var(--surface);height:var(--h)}.qty button{width:26px;border:0;background:var(--surface-2);color:var(--text-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.qty button:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.qty button:disabled{opacity:.4;cursor:not-allowed}.qty button svg{width:13px;height:13px}.qty input{width:56px;border:0;text-align:center;font-variant-numeric:tabular-nums;font-weight:600;background:transparent;outline:none}.qty.is-lg{height:36px}.qty.is-lg button{width:36px}.qty.is-lg input{width:72px;font-size:var(--fs-lg)}.barlist{display:flex;flex-direction:column;gap:2px}.barlist-row{display:grid;grid-template-columns:minmax(90px,var(--bl-label, 38%)) minmax(0,1fr) auto;align-items:center;gap:8px;height:24px;padding:0 4px;border-radius:4px;font-size:var(--fs-sm)}.barlist-row.is-click{cursor:pointer}.barlist-row.is-click:hover{background:var(--surface-2)}.barlist-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.barlist-track{height:8px;border-radius:4px;background:var(--surface-3);display:flex;overflow:hidden}.barlist-track>span{height:100%}.barlist-value{font-variant-numeric:tabular-nums;text-align:right;min-width:44px;color:var(--text);font-weight:500}.barlist-value .subtle{font-weight:400;margin-left:4px}.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:var(--fs-xs);color:var(--text-2)}.legend span{display:inline-flex;align-items:center;gap:4px}.legend i{width:8px;height:8px;border-radius:2px;display:inline-block}.stages{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:0}.stage-card{position:relative;padding:8px 10px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:3px;min-width:0;background:var(--surface)}.stage-card.is-click{cursor:pointer}.stage-card.is-click:hover{background:var(--surface-2)}.stage-card.is-active{background:var(--brand-50);box-shadow:inset 0 -2px 0 var(--brand)}.stage-card .stage-name{font-size:var(--fs-xs);font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:4px}.stage-card .stage-seq{font-family:var(--mono);font-size:11.5px;color:var(--text-3)}.stage-card .stage-main{font-size:var(--fs-lg);font-weight:650;font-variant-numeric:tabular-nums;line-height:1.2}.stage-card .stage-meta{display:flex;gap:8px;font-size:var(--fs-xs);color:var(--text-3);font-variant-numeric:tabular-nums;flex-wrap:wrap}.stage-card .stage-meta b{color:var(--text-2);font-weight:600}.stage-card .stage-alert{color:var(--danger);font-weight:600}.kanban-card.is-dragging{opacity:.45}.kanban-card.is-pending{opacity:.7}.kanban-col .kanban-sub{font-size:var(--fs-xs);color:var(--text-3);font-weight:500;font-variant-numeric:tabular-nums}.kanban-col .kanban-bar{height:3px;border-radius:2px 2px 0 0}.kanban-empty{font-size:var(--fs-xs);color:var(--text-3);text-align:center;padding:14px 6px;border:1px dashed var(--border-strong);border-radius:var(--radius)}.chart-tip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:6px 8px;font-size:var(--fs-xs);min-width:120px}.chart-tip .t{font-weight:600;margin-bottom:2px;color:var(--text)}.chart-tip .r{display:flex;align-items:center;gap:6px;color:var(--text-2)}.chart-tip .r b{margin-left:auto;color:var(--text);font-variant-numeric:tabular-nums}.stat{display:flex;align-items:baseline;gap:6px}.stat-num{font-size:var(--fs-2xl);font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.stat-label{font-size:var(--fs-sm);color:var(--text-2)}.due-chip{display:inline-flex;align-items:center;gap:3px;height:18px;padding:0 6px;border-radius:9px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--neutral-bg);color:var(--text-2)}.due-chip svg{width:11px;height:11px}.due-chip.is-overdue{background:var(--danger-bg);color:var(--danger)}.due-chip.is-today{background:var(--warning-bg);color:var(--warning)}.due-chip.is-soon{background:var(--info-bg);color:var(--info)}.inline-stats{display:flex;gap:12px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-2);font-variant-numeric:tabular-nums}.inline-stats b{color:var(--text);font-weight:600}.split-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--surface-3)}.split-bar>span{height:100%}.kanban-count{font-size:var(--fs-xs);background:var(--surface);color:var(--text-2);padding:0 6px;border-radius:8px;line-height:16px;font-weight:600}.stage-action{margin-top:6px;display:block}.stage-action .btn{width:100%}.p-app{--h: 38px;--h-sm: 34px;--h-xs: 28px;--fs: 14px;--fs-sm: 13px;--p-max: 440px;--p-bar-h: 48px;min-height:100%;background:var(--bg);font-size:var(--fs);color:var(--text)}.p-app .field-label{text-transform:none;letter-spacing:0;font-size:var(--fs-sm);color:var(--text-2)}.p-app .field-hint,.p-app .field-error{font-size:13px}.p-app .btn{border-radius:var(--radius-lg)}.p-app .btn-block{width:100%}.p-app .input{font-size:16px}.p-app .textarea{font-size:15px}.p-app .check{align-items:flex-start;font-size:var(--fs-sm);line-height:1.45}.p-app .check input{width:18px;height:18px;margin-top:1px;flex-shrink:0}.p-app .badge{height:22px;font-size:12.5px}.p-app .size-chip{min-width:36px;padding:0 6px;height:36px;font-size:var(--fs-sm);border-radius:var(--radius)}.p-app .size-chips{gap:5px}.p-app .timeline li{padding-bottom:10px}.p-bar{position:sticky;top:0;z-index:20;height:var(--p-bar-h);background:var(--surface);border-bottom:1px solid var(--border)}.p-bar:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brand-gradient);opacity:.85}.p-bar-in{max-width:var(--p-max);margin:0 auto;height:100%;padding:0 12px;display:flex;align-items:center;gap:8px}.p-logo{height:18px;width:auto;display:block}.p-bar-school{font-size:var(--fs-sm);color:var(--text-2);border-left:1px solid var(--border);padding-left:8px;max-width:180px;display:flex;align-items:center;gap:6px;min-width:0}.p-bar-school-logo{width:24px;height:24px;object-fit:contain;border-radius:4px;flex-shrink:0}.p-bar-actions{margin-left:auto;display:flex;align-items:center;gap:2px}.p-bar-actions .btn{height:36px}.p-main{max-width:var(--p-max);margin:0 auto;padding:14px 12px calc(24px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:12px}.p-main.has-dock{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.p-title{font-size:var(--fs-lg);font-weight:650;letter-spacing:-.01em}.p-sub{font-size:var(--fs-sm);color:var(--text-2)}.p-back{display:inline-flex;align-items:center;gap:4px;height:32px;color:var(--text-2);font-size:var(--fs-sm);background:none;border:0;padding:0;cursor:pointer;align-self:flex-start}.p-back svg{width:16px;height:16px}.p-back:hover{color:var(--text)}.p-head{display:flex;flex-direction:column;gap:2px}.p-head:focus,.p-head:focus-visible{outline:none;box-shadow:none}.p-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:14px;display:flex;flex-direction:column;gap:12px}.p-card.is-tight{padding:12px;gap:8px}.p-card-title{font-size:var(--fs-md);font-weight:600;display:flex;align-items:center;gap:8px}.p-card-title svg{width:16px;height:16px;color:var(--text-3)}.p-sep{height:1px;background:var(--border);margin:0 -14px}.p-school{display:flex;align-items:center;gap:12px}.p-school-mark{width:44px;height:44px;border-radius:var(--radius-lg);background:var(--brand-50);display:grid;place-items:center;flex-shrink:0;overflow:hidden}.p-school-mark img{width:30px;height:30px}.p-school-mark.has-logo{background:var(--surface);border:1px solid var(--border)}.p-school-mark.has-logo img{width:100%;height:100%;object-fit:contain}.p-school-name{font-size:var(--fs-lg);font-weight:650;line-height:1.25}.p-child{display:flex;align-items:center;gap:10px}.p-child-av{width:38px;height:38px;border-radius:50%;background:var(--violet-bg);color:var(--violet);display:grid;place-items:center;font-weight:700;font-size:14px;flex-shrink:0}.p-child-av.is-girl{background:var(--brand-50);color:var(--brand)}.p-child-name{font-weight:600;font-size:var(--fs-md)}.p-child-meta{font-size:var(--fs-sm);color:var(--text-2)}.p-otp{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.p-otp input{height:46px;width:100%;text-align:center;font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);padding:0;transition:border-color .12s,box-shadow .12s}.p-otp input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #d0373024}.p-otp input[aria-invalid=true]{border-color:var(--danger)}.p-otp-meta{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-sm);color:var(--text-2);min-height:32px}.p-link{background:none;border:0;padding:0 2px;min-height:32px;color:var(--brand);font-weight:600;font-size:var(--fs-sm);cursor:pointer}.p-link:disabled{color:var(--text-3);font-weight:500;cursor:default}.p-link.is-muted{color:var(--text-2);font-weight:500}.p-msg{font-size:var(--fs-sm);min-height:18px}.p-msg.is-error{color:var(--danger)}.p-msg.is-ok{color:var(--success)}.p-consent{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px;font-size:13.5px;color:var(--text-2);line-height:1.5;max-height:120px;overflow:auto}.p-chips{display:flex;flex-wrap:wrap;gap:6px}.p-chip{height:34px;padding:0 12px;border-radius:17px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);font-size:var(--fs-sm);cursor:pointer}.p-chip[aria-pressed=true],.p-chip[aria-checked=true]{border-color:var(--brand);background:var(--brand-50);color:var(--brand);font-weight:600}.p-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -12px;padding:0 12px}.p-tabs::-webkit-scrollbar{display:none}.p-tab{height:36px;padding:0 12px;border-radius:18px;border:1px solid var(--border-strong);background:var(--surface);font-size:var(--fs-sm);color:var(--text-2);white-space:nowrap;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.p-tab[aria-selected=true]{background:var(--text);border-color:var(--text);color:var(--surface);font-weight:600}.p-tab .p-count{min-width:18px;height:18px;border-radius:9px;background:var(--brand);color:#fff;font-size:12px;font-weight:700;display:inline-grid;place-items:center;padding:0 5px}.p-group-title{font-size:var(--fs-sm);font-weight:600;color:var(--text-2);display:flex;align-items:center;gap:6px;margin-top:4px}.p-prod{display:flex;flex-direction:column;gap:10px}.p-prod+.p-prod{border-top:1px solid var(--border);padding-top:12px}.p-prod-head{display:flex;gap:10px;align-items:flex-start}.p-prod-img{width:44px;height:44px;border-radius:var(--radius);background:var(--surface-3);flex-shrink:0;display:grid;place-items:center;color:var(--text-3);overflow:hidden}.p-prod-img img{width:100%;height:100%;object-fit:cover}.p-prod-img svg{width:20px;height:20px}.p-prod-name{font-weight:600;line-height:1.3}.p-prod-meta{font-size:13px;color:var(--text-3)}.p-price{font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.p-price small{font-weight:500;color:var(--text-3);font-size:12.5px;margin-left:2px}.p-rec{font-size:13px;color:#2c8b7b;display:inline-flex;align-items:center;gap:4px}.p-rec svg{width:13px;height:13px}.p-prod-foot{display:flex;align-items:center;gap:8px}.p-qty{align-self:flex-start;display:inline-flex;align-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-lg);height:38px;background:var(--surface)}.p-qty button{width:38px;height:36px;border:0;background:none;display:grid;place-items:center;color:var(--text);cursor:pointer}.p-qty button:disabled{color:var(--text-3);cursor:not-allowed}.p-qty button svg{width:16px;height:16px}.p-qty output{min-width:26px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}.p-dock{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -4px 16px #221c1f0f;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))}.p-dock-in{max-width:var(--p-max);margin:0 auto;display:flex;align-items:center;gap:12px}.p-dock-total{display:flex;flex-direction:column;line-height:1.25}.p-dock-total strong{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}.p-dock-total span{font-size:13px;color:var(--text-2)}.p-dock .btn{margin-left:auto;min-width:150px}.p-rows{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm)}.p-r{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.p-r>span:first-child{color:var(--text-2);min-width:0}.p-r>span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}.p-r.is-total{font-size:var(--fs-md);font-weight:650;padding-top:8px;border-top:1px dashed var(--border-strong)}.p-r.is-total>span:first-child{color:var(--text)}.p-line{display:flex;justify-content:space-between;gap:10px;font-size:var(--fs-sm)}.p-line-name{min-width:0}.p-line-name b{font-weight:500}.p-line-name span{color:var(--text-3)}.p-line-amt{font-variant-numeric:tabular-nums;white-space:nowrap}.p-opts{display:flex;flex-direction:column;gap:8px}.p-opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:10px 12px;cursor:pointer;background:var(--surface)}.p-opt input{margin:2px 0 0;width:18px;height:18px;accent-color:var(--brand);flex-shrink:0}.p-opt:has(input:checked){border-color:var(--brand);background:var(--brand-50)}.p-opt-title{font-weight:600;font-size:var(--fs-sm)}.p-opt-sub{font-size:13px;color:var(--text-2)}.p-opt-amt{margin-left:auto;font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.p-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.p-form .span-all{grid-column:1 / -1}.p-order{display:flex;flex-direction:column;gap:8px;text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer}.p-order:hover{border-color:var(--border-strong)}.p-order-no{font-family:var(--mono);font-size:14px;font-weight:500}.p-order-top{display:flex;align-items:center;gap:8px}.p-order-top .badge{margin-left:auto}.p-order-kids{font-size:var(--fs-sm);color:var(--text-2)}.p-order-foot{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm)}.p-order-foot strong{font-variant-numeric:tabular-nums}.p-track{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.p-track li{position:relative;padding:0 0 14px 26px;min-height:30px}.p-track li:last-child{padding-bottom:0}.p-track li:before{content:"";position:absolute;left:7px;top:18px;bottom:0;width:2px;background:var(--border)}.p-track li:last-child:before{display:none}.p-track li.is-done:before{background:var(--success)}.p-track-dot{position:absolute;left:0;top:2px;width:16px;height:16px;border-radius:50%;border:2px solid var(--border-strong);background:var(--surface);display:grid;place-items:center}.p-track-dot svg{width:10px;height:10px;color:#fff}.p-track li.is-done .p-track-dot{background:var(--success);border-color:var(--success)}.p-track li.is-current .p-track-dot{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-100)}.p-track-title{font-weight:600;font-size:var(--fs-sm);line-height:1.4}.p-track li:not(.is-done):not(.is-current) .p-track-title{color:var(--text-3);font-weight:500}.p-track-sub{font-size:13px;color:var(--text-2)}.p-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:6px 0}.p-hero-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--success-bg);color:var(--success)}.p-hero-icon svg{width:26px;height:26px}.p-hero-icon.is-warn{background:var(--warning-bg);color:var(--warning)}.p-hero-icon.is-brand{background:var(--brand-50);color:var(--brand)}.p-hero-icon.is-danger{background:var(--danger-bg);color:var(--danger)}.p-amount{font-size:var(--fs-2xl);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.p-test{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:600;color:var(--warning);background:var(--warning-bg);border-radius:10px;padding:2px 8px}.p-actions{display:flex;flex-direction:column;gap:8px}.p-actions-row{display:flex;gap:8px}.p-actions-row>*{flex:1}.p-wa{color:var(--success)}.p-center{min-height:50vh;display:grid;place-items:center}.p-foot{text-align:center;font-size:12.5px;color:var(--text-3);padding-top:8px}.p-sheet-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;min-height:0;background:transparent;display:flex;align-items:flex-end;justify-content:center}.p-sheet-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay)}.p-sheet{position:relative;width:100%;max-width:var(--p-max);max-height:88vh;overflow:auto;background:var(--surface);border-radius:14px 14px 0 0;box-shadow:var(--shadow-lg);padding:8px 14px calc(14px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:12px;animation:p-up .18s var(--ease)}.p-sheet-grip{width:36px;height:4px;border-radius:2px;background:var(--border-strong);margin:0 auto 2px}.p-sheet-head{display:flex;align-items:center;gap:8px}.p-sheet-head .p-title{flex:1}@keyframes p-up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.p-pick{display:flex;gap:10px;align-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:8px 12px;min-height:44px;cursor:pointer;background:var(--surface);text-align:left;font:inherit;color:inherit;width:100%}.p-pick[aria-checked=true]{border-color:var(--brand);background:var(--brand-50)}.p-pick:disabled{opacity:.55;cursor:not-allowed}.p-skel{display:flex;flex-direction:column;gap:10px}:root{--brand: #d03730;--brand-600: #b82e28;--brand-700: #9c2620;--brand-50: #fdf1f0;--brand-100: #fadcda;--berry: #a1325a;--plum: #832e67;--teal: #4eab9b;--cyan: #62d0e1;--brand-gradient: linear-gradient(90deg, #4eab9b 0%, #62d0e1 22%, #832e67 55%, #a1325a 75%, #d03730 100%);--bg: #f6f5f4;--surface: #ffffff;--surface-2: #faf9f8;--surface-3: #f1efed;--border: #e6e2df;--border-strong: #d4cfcb;--text: #221c1f;--text-2: #4d4650;--text-3: #736c76;--text-inverse: #ffffff;--overlay: rgba(25, 18, 22, .42);--success: #1f8f6e;--success-bg: #e5f5ef;--warning: #b86e00;--warning-bg: #fdf3e1;--danger: #c62f29;--danger-bg: #fcebea;--info: #2b7fa8;--info-bg: #e5f3f9;--neutral-bg: #efedeb;--violet: #832e67;--violet-bg: #f5e9f1;--teal-bg: #e4f4f1;--chart-1: #d03730;--chart-2: #4eab9b;--chart-3: #832e67;--chart-4: #e39a2d;--chart-5: #2b7fa8;--chart-6: #a1325a;--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-xs: 12px;--fs-sm: 13px;--fs: 14px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 20px;--fs-2xl: 24px;--lh: 1.4;--h-xs: 24px;--h-sm: 28px;--h: 32px;--h-md: 36px;--row-h: 36px;--row-h-compact: 30px;--sidebar-w: 236px;--sidebar-w-collapsed: 52px;--topbar-h: 48px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--radius-sm: 4px;--radius: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 2px rgba(34, 28, 31, .06);--shadow: 0 2px 8px rgba(34, 28, 31, .08), 0 1px 2px rgba(34, 28, 31, .06);--shadow-lg: 0 12px 32px rgba(34, 28, 31, .16), 0 2px 6px rgba(34, 28, 31, .08);--focus: 0 0 0 2px var(--surface), 0 0 0 4px rgba(208, 55, 48, .45);--ease: cubic-bezier(.2, 0, 0, 1)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #151113;--surface: #1d181b;--surface-2: #221c20;--surface-3: #2a2328;--border: #342c31;--border-strong: #463c42;--text: #f1edef;--text-2: #c2b9be;--text-3: #8f868b;--brand-50: #2c1716;--brand-100: #401d1b;--success-bg: #12291f;--warning-bg: #2d2210;--danger-bg: #2f1514;--info-bg: #10232d;--neutral-bg: #2a2328;--violet-bg: #2b1626;--teal-bg: #12261f;--success: #4cc79c;--warning: #eaa53f;--danger: #f06a63;--info: #5ab3dd;--violet: #d47fb7;--overlay: rgba(0, 0, 0, .6)}}:root[data-theme=dark]{--bg: #151113;--surface: #1d181b;--surface-2: #221c20;--surface-3: #2a2328;--border: #342c31;--border-strong: #463c42;--text: #f1edef;--text-2: #c2b9be;--text-3: #8f868b;--brand-50: #2c1716;--brand-100: #401d1b;--success-bg: #12291f;--warning-bg: #2d2210;--danger-bg: #2f1514;--info-bg: #10232d;--neutral-bg: #2a2328;--violet-bg: #2b1626;--teal-bg: #12261f;--success: #4cc79c;--warning: #eaa53f;--danger: #f06a63;--info: #5ab3dd;--violet: #d47fb7;--overlay: rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:var(--fs);line-height:var(--lh);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01","tnum"}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}p{margin:0}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--focus)}::selection{background:var(--brand-100)}.mono{font-family:var(--mono);font-size:.92em;letter-spacing:-.01em}.num{font-variant-numeric:tabular-nums;text-align:right}.muted{color:var(--text-2)}.subtle{color:var(--text-3)}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.row{display:flex;align-items:center;gap:var(--s2)}.row-1{display:flex;align-items:center;gap:var(--s1)}.col{display:flex;flex-direction:column;gap:var(--s2)}.grow{flex:1;min-width:0}.spacer{flex:1}.wrap{flex-wrap:wrap}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--h);padding:0 10px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:var(--fs);font-weight:500;white-space:nowrap;cursor:pointer;transition:background .12s var(--ease),border-color .12s var(--ease),color .12s}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:14px;height:14px;flex-shrink:0}.btn-sm{height:var(--h-sm);padding:0 8px;font-size:var(--fs-sm);gap:4px}.btn-sm svg{width:13px;height:13px}.btn-xs{height:var(--h-xs);padding:0 6px;font-size:var(--fs-xs);gap:3px;border-radius:var(--radius-sm)}.btn-xs svg{width:12px;height:12px}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-600);border-color:var(--brand-600)}.btn-danger{color:var(--danger);border-color:var(--border-strong)}.btn-danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger)}.btn-ghost{border-color:transparent;background:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.btn-icon{width:var(--h);padding:0}.btn-icon.btn-sm{width:var(--h-sm)}.btn-icon.btn-xs{width:var(--h-xs)}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0;margin-left:-1px}.btn-group .btn:first-child{border-radius:var(--radius) 0 0 var(--radius);margin-left:0}.btn-group .btn:last-child{border-radius:0 var(--radius) var(--radius) 0}.btn-group .btn.is-active{background:var(--brand-50);color:var(--brand);border-color:var(--brand-100);z-index:1}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field{display:flex;flex-direction:column;gap:3px;min-width:0}.field-label{font-size:var(--fs-xs);font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.field-label .req{color:var(--brand);margin-left:2px}.field-hint{font-size:var(--fs-xs);color:var(--text-3)}.field-error{font-size:var(--fs-xs);color:var(--danger)}.input,.select,.textarea{height:var(--h);width:100%;padding:0 8px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);font-size:var(--fs);transition:border-color .12s,box-shadow .12s}.textarea{height:auto;min-height:60px;padding:6px 8px;resize:vertical}.input:hover,.select:hover,.textarea:hover{border-color:var(--text-3)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #d0373024}.input[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--danger)}.input:disabled,.select:disabled{background:var(--surface-3);color:var(--text-3)}.input-sm{height:var(--h-sm);font-size:var(--fs-sm)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:24px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%238a838c' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.input-affix{position:relative;display:flex;align-items:center}.input-affix>svg{position:absolute;left:8px;width:14px;height:14px;color:var(--text-3);pointer-events:none}.input-affix>.input{padding-left:28px}.input-affix .kbd{position:absolute;right:6px}.check{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:var(--fs);-webkit-user-select:none;user-select:none}.check input{width:14px;height:14px;accent-color:var(--brand);margin:0;cursor:pointer}.switch{position:relative;width:28px;height:16px;border-radius:8px;background:var(--border-strong);border:0;cursor:pointer;transition:background .15s;flex-shrink:0;padding:0}.switch:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .15s var(--ease);box-shadow:var(--shadow-sm)}.switch[aria-checked=true]{background:var(--brand)}.switch[aria-checked=true]:after{transform:translate(12px)}.form-grid{display:grid;grid-template-columns:repeat(var(--cols, 2),minmax(0,1fr));gap:10px 12px}.form-grid .span-2{grid-column:span 2}.form-grid .span-all{grid-column:1 / -1}.form-section{padding:12px 0;border-top:1px solid var(--border)}.form-section:first-child{border-top:0;padding-top:0}.form-section-title{font-size:var(--fs-sm);font-weight:600;margin-bottom:8px;color:var(--text)}.kbd{display:inline-flex;align-items:center;height:20px;padding:0 5px;border-radius:4px;border:1px solid var(--border);background:var(--surface-2);font-size:12px;font-family:var(--mono);color:var(--text-3)}.badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:11px;font-size:var(--fs-xs);font-weight:600;white-space:nowrap;letter-spacing:.01em}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}.badge.no-dot:before{display:none}.tone-neutral{background:var(--neutral-bg);color:var(--text-2)}.tone-success{background:var(--success-bg);color:var(--success)}.tone-warning{background:var(--warning-bg);color:var(--warning)}.tone-danger{background:var(--danger-bg);color:var(--danger)}.tone-info{background:var(--info-bg);color:var(--info)}.tone-brand{background:var(--brand-50);color:var(--brand)}.tone-violet{background:var(--violet-bg);color:var(--violet)}.tone-teal{background:var(--teal-bg);color:#2c8b7b}.chip{display:inline-flex;align-items:center;gap:4px;height:var(--h-sm);padding:0 8px;border:1px solid var(--border-strong);border-radius:13px;background:var(--surface);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;color:var(--text-2)}.chip:hover{border-color:var(--text-3);color:var(--text)}.chip.is-active{border-color:var(--brand);background:var(--brand-50);color:var(--brand)}.chip .chip-value{color:var(--text);font-weight:600;max-width:160px;overflow:hidden;text-overflow:ellipsis}.chip svg{width:12px;height:12px}.chip .chip-x{display:inline-flex;margin-right:-4px;border-radius:50%;padding:1px}.chip .chip-x:hover{background:var(--brand-100)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.avatar{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--violet-bg);color:var(--violet);font-size:12px;font-weight:700;flex-shrink:0}.avatar-sm{width:22px;height:22px;font-size:11px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-width:0}.card-header{display:flex;align-items:center;gap:var(--s2);padding:10px 14px;border-bottom:1px solid var(--border);min-height:44px}.card-title{font-size:var(--fs-md);font-weight:600}.card-body{padding:14px}.card-body.flush{padding:0}.card-footer{padding:8px 12px;border-top:1px solid var(--border);display:flex;gap:var(--s2);align-items:center}.grid{display:grid;gap:12px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-main-side{grid-template-columns:minmax(0,1fr) 320px}@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-main-side{grid-template-columns:1fr}}@media(max-width:720px){.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}}.kpi{padding:10px 12px;display:flex;flex-direction:column;gap:2px;position:relative;overflow:hidden}.kpi-label{font-size:var(--fs-xs);color:var(--text-2);font-weight:600;text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:6px}.kpi-value{font-size:var(--fs-2xl);font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.2}.kpi-sub{font-size:var(--fs-xs);color:var(--text-3)}.kpi-accent{position:absolute;left:0;top:0;bottom:0;width:3px}.kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0}.kpi-strip>.kpi{border-right:1px solid var(--border)}.kpi-strip>.kpi:last-child{border-right:0}.dl{display:grid;grid-template-columns:repeat(var(--cols, 2),minmax(0,1fr));gap:8px 16px;margin:0}.dl>div{min-width:0}.dl dt{font-size:var(--fs-xs);color:var(--text-3);margin-bottom:1px}.dl dd{margin:0;font-size:var(--fs);overflow-wrap:anywhere}.progress{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden;display:flex}.progress>span{height:100%;background:var(--brand);transition:width .3s var(--ease)}.progress.is-success>span{background:var(--success)}.table-wrap{overflow:auto;position:relative}.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs)}.tbl th{position:sticky;top:0;z-index:2;height:34px;padding:0 8px;text-align:left;font-size:var(--fs-xs);font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;user-select:none}.tbl th.sortable{cursor:pointer}.tbl th.sortable:hover{color:var(--text)}.tbl th .th-inner{display:inline-flex;align-items:center;gap:3px}.tbl th svg{width:12px;height:12px}.tbl td{height:var(--row-h);padding:0 8px;border-bottom:1px solid var(--border);white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis}.tbl.is-compact td{height:var(--row-h-compact)}.tbl tbody tr{background:var(--surface)}.tbl tbody tr:hover{background:var(--surface-2)}.tbl tbody tr.is-selected{background:var(--brand-50)}.tbl tbody tr.is-clickable{cursor:pointer}.tbl tbody tr.is-alert td:first-child{box-shadow:inset 3px 0 0 var(--brand)}.tbl .col-check{width:32px;padding:0 0 0 10px}.tbl .col-actions{width:1%;text-align:right}.tbl td.num,.tbl th.num{text-align:right}.tbl tfoot td{font-weight:600;background:var(--surface-2);border-top:1px solid var(--border-strong);position:sticky;bottom:0}.tbl .cell-primary{font-weight:500;color:var(--text)}.tbl .cell-sub{display:block;font-size:var(--fs-xs);color:var(--text-3);line-height:1.2}.tbl td.has-sub{padding-top:3px;padding-bottom:3px;line-height:1.25}.tbl-pager{display:flex;align-items:center;gap:var(--s2);padding:6px 10px;border-top:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-2);background:var(--surface)}.bulkbar{display:flex;align-items:center;gap:var(--s2);padding:4px 10px;background:var(--brand-50);border-bottom:1px solid var(--brand-100);font-size:var(--fs-sm);color:var(--brand-700);min-height:34px}.matrix td,.matrix th{text-align:right}.matrix td:first-child,.matrix th:first-child{text-align:left;position:sticky;left:0;background:inherit;z-index:1}.matrix td.zero{color:var(--text-3)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);padding:0 12px;overflow-x:auto}.tab{height:38px;padding:0 10px;border:0;background:transparent;color:var(--text-2);font-weight:500;font-size:var(--fs);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.tab:hover{color:var(--text)}.tab.is-active{color:var(--brand);border-bottom-color:var(--brand)}.tab .count{font-size:var(--fs-xs);background:var(--surface-3);color:var(--text-2);padding:0 5px;border-radius:8px;line-height:16px}.seg{display:inline-flex;padding:2px;background:var(--surface-3);border-radius:var(--radius);gap:2px}.seg button{height:26px;padding:0 8px;border:0;border-radius:4px;background:transparent;font-size:var(--fs-sm);color:var(--text-2);cursor:pointer;font-weight:500}.seg button.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:50;animation:fade .12s var(--ease)}@keyframes fade{0%{opacity:0}}@keyframes slide-in{0%{transform:translate(16px);opacity:0}}@keyframes pop{0%{transform:translateY(4px) scale(.98);opacity:0}}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);background:var(--surface);z-index:51;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slide-in .16s var(--ease)}.drawer.is-wide{width:min(880px,100vw)}.drawer-header,.modal-header{display:flex;align-items:center;gap:var(--s2);padding:10px 14px;border-bottom:1px solid var(--border)}.drawer-title,.modal-title{font-size:var(--fs-lg);font-weight:600}.drawer-body{flex:1;overflow:auto;padding:14px}.drawer-footer,.modal-footer{display:flex;justify-content:flex-end;gap:var(--s2);padding:10px 14px;border-top:1px solid var(--border);background:var(--surface-2)}.modal{position:fixed;top:12vh;left:50%;transform:translate(-50%);width:min(480px,calc(100vw - 32px));max-height:76vh;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:51;display:flex;flex-direction:column;animation:pop .14s var(--ease)}.modal.is-wide{width:min(760px,calc(100vw - 32px))}.modal-body{padding:14px;overflow:auto}.popover{position:absolute;z-index:40;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:4px;animation:pop .1s var(--ease)}.menu-item{display:flex;align-items:center;gap:8px;width:100%;height:32px;padding:0 8px;border:0;border-radius:4px;background:transparent;font-size:var(--fs);text-align:left;cursor:pointer;color:var(--text)}.menu-item:hover,.menu-item.is-active{background:var(--surface-3)}.menu-item svg{width:14px;height:14px;color:var(--text-3)}.menu-item.is-danger{color:var(--danger)}.menu-sep{height:1px;background:var(--border);margin:4px 0}.menu-label{padding:6px 8px 2px;font-size:var(--fs-xs);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}.tooltip{position:fixed;z-index:70;background:#221c1f;color:#fff;padding:4px 7px;border-radius:4px;font-size:var(--fs-xs);pointer-events:none;max-width:260px}.toasts{position:fixed;bottom:16px;right:16px;z-index:80;display:flex;flex-direction:column;gap:8px}.toast{display:flex;align-items:flex-start;gap:8px;min-width:280px;max-width:400px;padding:9px 12px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--info);border-radius:var(--radius);box-shadow:var(--shadow-lg);animation:slide-in .16s var(--ease);font-size:var(--fs)}.toast.is-success{border-left-color:var(--success)}.toast.is-error{border-left-color:var(--danger)}.toast-title{font-weight:600}.toast-msg{color:var(--text-2);font-size:var(--fs-sm)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:36px 16px;text-align:center;color:var(--text-2)}.empty svg{width:28px;height:28px;color:var(--text-3)}.empty-title{font-weight:600;color:var(--text)}.skeleton{background:linear-gradient(90deg,var(--surface-3) 25%,var(--surface-2) 50%,var(--surface-3) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:4px}@keyframes shimmer{to{background-position:-200% 0}}.alert{display:flex;gap:8px;padding:8px 10px;border-radius:var(--radius);font-size:var(--fs);align-items:flex-start}.alert svg{width:15px;height:15px;flex-shrink:0;margin-top:1px}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;padding:0 0 12px 18px}.timeline li:before{content:"";position:absolute;left:4px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--border-strong)}.timeline li:after{content:"";position:absolute;left:7px;top:15px;bottom:0;width:1px;background:var(--border)}.timeline li:last-child:after{display:none}.timeline li.is-brand:before{background:var(--brand)}.timeline li.is-success:before{background:var(--success)}.timeline-time{font-size:var(--fs-xs);color:var(--text-3)}.steps{display:flex;align-items:center;gap:0;overflow-x:auto}.step{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-3);white-space:nowrap}.step .step-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center;background:var(--surface)}.step.is-done{color:var(--text-2)}.step.is-done .step-dot{background:var(--brand);border-color:var(--brand);color:#fff}.step.is-current{color:var(--text);font-weight:600}.step.is-current .step-dot{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-100)}.step-line{width:24px;height:2px;background:var(--border);margin:0 6px;flex-shrink:0}.step-line.is-done{background:var(--brand)}.kanban{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;align-items:flex-start}.kanban-col{flex:0 0 248px;background:var(--surface-3);border-radius:var(--radius-lg);display:flex;flex-direction:column;max-height:calc(100vh - 190px)}.kanban-col.is-over{box-shadow:inset 0 0 0 2px var(--brand)}.kanban-head{display:flex;align-items:center;gap:6px;padding:8px 10px;font-weight:600;font-size:var(--fs)}.kanban-body{padding:0 6px 6px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:8px;cursor:grab;box-shadow:var(--shadow-sm)}.kanban-card:hover{border-color:var(--border-strong)}.page{padding:12px 16px 24px;display:flex;flex-direction:column;gap:12px;min-width:0}.page-header{display:flex;align-items:center;gap:var(--s2);min-height:32px;flex-wrap:wrap}.page-title{font-size:var(--fs-xl);font-weight:650;letter-spacing:-.015em}.page-sub{font-size:var(--fs-sm);color:var(--text-2)}.crumbs{display:flex;align-items:center;gap:4px;font-size:var(--fs-sm);color:var(--text-3)}.crumbs a{color:var(--text-2)}.crumbs svg{width:12px;height:12px}.toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;border-bottom:1px solid var(--border)}.section-title{font-size:var(--fs-sm);font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);height:100vh}.shell.is-collapsed{grid-template-columns:var(--sidebar-w-collapsed) minmax(0,1fr)}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;position:relative}.sidebar:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--brand-gradient)}.sidebar-brand{height:var(--topbar-h);display:flex;align-items:center;padding:3px 12px 0;gap:8px}.sidebar-brand img.logo,.sidebar-brand img.mark{height:24px}.sidebar-nav{flex:1;overflow-y:auto;padding:4px 8px 12px}.nav-group{margin-top:10px}.nav-group-title{padding:0 8px 3px;font-size:12px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em}.nav-item{display:flex;align-items:center;gap:10px;height:32px;padding:0 8px;border-radius:var(--radius);color:var(--text-2);font-size:var(--fs);font-weight:500;text-decoration:none;position:relative}.nav-item:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.nav-item.active{background:var(--brand-50);color:var(--brand)}.nav-item.active:before{content:"";position:absolute;left:-8px;top:6px;bottom:6px;width:3px;border-radius:0 2px 2px 0;background:var(--brand)}.nav-item svg{width:16px;height:16px;flex-shrink:0}.nav-item .nav-badge{margin-left:auto;font-size:12px;font-weight:700;color:var(--brand);background:var(--brand-50);border-radius:8px;padding:0 5px;line-height:16px}.shell.is-collapsed .nav-group-title,.shell.is-collapsed .nav-label,.shell.is-collapsed .nav-badge,.shell.is-collapsed .logo{display:none}.shell.is-collapsed .nav-item{justify-content:center;padding:0}.shell:not(.is-collapsed) .mark{display:none}.sidebar-foot{border-top:1px solid var(--border);padding:6px 8px;display:flex;align-items:center;gap:6px}.main{display:flex;flex-direction:column;min-width:0;min-height:0}.topbar{height:var(--topbar-h);display:flex;align-items:center;gap:8px;padding:0 12px 0 10px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.topbar-search{width:min(460px,40vw);height:34px;display:flex;align-items:center;gap:8px;padding:0 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text-3);cursor:text;font-size:var(--fs)}.topbar-search:hover{border-color:var(--border-strong)}.topbar-search svg{width:14px;height:14px}.content{flex:1;overflow:auto;min-height:0}.user-chip{display:flex;align-items:center;gap:6px;height:30px;padding:0 6px 0 3px;border-radius:15px;border:1px solid transparent;background:transparent;cursor:pointer}.user-chip:hover{background:var(--surface-3)}.notif-dot{position:absolute;top:4px;right:4px;width:7px;height:7px;background:var(--brand);border-radius:50%;border:1.5px solid var(--surface)}.cmdk{position:fixed;top:10vh;left:50%;transform:translate(-50%);width:min(620px,calc(100vw - 24px));background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:60;overflow:hidden;animation:pop .12s var(--ease)}.cmdk-input{display:flex;align-items:center;gap:8px;padding:0 12px;border-bottom:1px solid var(--border)}.cmdk-input input{flex:1;height:44px;border:0;background:transparent;font-size:var(--fs-md);outline:none}.cmdk-list{max-height:56vh;overflow-y:auto;padding:4px}.cmdk-group{padding:8px 8px 3px;font-size:12px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em}.cmdk-item{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--radius);cursor:pointer}.cmdk-item.is-active{background:var(--brand-50)}.cmdk-item .t{font-weight:500}.cmdk-item .s{font-size:var(--fs-xs);color:var(--text-3)}.cmdk-item svg{width:15px;height:15px;color:var(--text-3);flex-shrink:0}.cmdk-foot{display:flex;gap:12px;padding:6px 12px;border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-3);background:var(--surface-2)}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:55;top:0;bottom:0;left:0;width:var(--sidebar-w);transform:translate(-100%);transition:transform .18s var(--ease)}.shell.is-mobile-open .sidebar{transform:none;box-shadow:var(--shadow-lg)}.topbar-search{width:auto;flex:1}}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-art{background:#1c1418;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:40px;color:#fff}.auth-art:before{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(circle at 20% 30%,rgba(78,171,155,.45),transparent 40%),radial-gradient(circle at 70% 40%,rgba(131,46,103,.55),transparent 45%),radial-gradient(circle at 60% 80%,rgba(208,55,48,.5),transparent 45%);filter:blur(20px)}.auth-art>*{position:relative}.auth-form{display:flex;align-items:center;justify-content:center;padding:24px;background:var(--surface)}.auth-card{width:min(360px,100%);display:flex;flex-direction:column;gap:14px}@media(max-width:860px){.auth{grid-template-columns:1fr}.auth-art{display:none}}.combobox{position:relative;display:flex;align-items:center;min-width:0}.combobox>.input{cursor:text;text-overflow:ellipsis}.combobox>.input::placeholder{color:var(--text-3)}.combobox .combobox-caret{position:absolute;right:8px;width:12px;height:12px;color:var(--text-3);pointer-events:none}.combobox .combobox-clear{position:absolute;right:22px}.combobox.is-disabled{opacity:.7}.meter{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}.meter .progress{height:4px}.meter-label{color:var(--text-3);min-width:0}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.tile{border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;background:var(--surface);text-align:left;cursor:default;font:inherit;color:inherit}button.tile{cursor:pointer}button.tile:hover{border-color:var(--border-strong)}.tile.is-active{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.tile-label{font-size:var(--fs-xs);color:var(--text-2);font-weight:600;text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:5px}.tile-value{font-size:var(--fs-xl);font-weight:650;font-variant-numeric:tabular-nums;line-height:1.25}.wizard-steps{display:flex;align-items:center;gap:0;padding:8px 12px;border-bottom:1px solid var(--border);overflow-x:auto}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);padding:18px 12px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;color:var(--text-2);background:var(--surface-2);cursor:pointer;transition:border-color .12s,background .12s}.dropzone:hover,.dropzone.is-over{border-color:var(--brand);background:var(--brand-50)}.dropzone svg{width:22px;height:22px;color:var(--text-3)}.diff{font-family:var(--mono);font-size:12.5px;line-height:1.5;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.diff-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(0,1fr) minmax(0,1fr);border-bottom:1px solid var(--border)}.diff-row:last-child{border-bottom:0}.diff-row>div{padding:3px 8px;overflow-wrap:anywhere;white-space:pre-wrap;min-width:0}.diff-row>div+div{border-left:1px solid var(--border)}.diff-head{background:var(--surface-2);font-family:var(--font);font-size:var(--fs-xs);font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.diff-key{color:var(--text-2)}.diff-del{background:var(--danger-bg);color:var(--danger)}.diff-add{background:var(--success-bg);color:var(--success)}.diff-same{color:var(--text-3)}.cell-input{width:100%;height:24px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;padding:0 6px;font:inherit;font-variant-numeric:tabular-nums;text-align:right;color:var(--text)}.cell-input:hover{border-color:var(--border-strong);background:var(--surface)}.cell-input:focus{outline:none;border-color:var(--brand);background:var(--surface);box-shadow:0 0 0 2px #d037301f}.cell-input.is-dirty{background:var(--warning-bg)}.cell-input[aria-invalid=true]{border-color:var(--danger)}.cell-input::placeholder{color:var(--text-3)}.size-chips{display:flex;flex-wrap:wrap;gap:4px}.size-chip{min-width:34px;height:var(--h-sm);padding:0 7px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--fs-sm);font-weight:600;cursor:pointer;color:var(--text-2);font-variant-numeric:tabular-nums}.size-chip:hover:not(:disabled){border-color:var(--text-3);color:var(--text)}.size-chip.is-active{border-color:var(--brand);background:var(--brand-50);color:var(--brand)}.size-chip.is-suggested:not(.is-active){border-style:dashed;border-color:var(--teal);color:#2c8b7b}.size-chip:disabled{opacity:.45;cursor:not-allowed;text-decoration:line-through}.perm-matrix th.rot{height:auto;padding:6px 4px;text-align:center}.perm-matrix td.c{text-align:center;padding:0 4px}.perm-matrix td.na{background:var(--surface-2)}.split{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:12px;align-items:start}@media(max-width:1000px){.split{grid-template-columns:1fr}}.list-pane{max-height:calc(100vh - 170px);overflow-y:auto}.list-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--border);cursor:pointer;min-height:36px}.list-item:hover{background:var(--surface-2)}.list-item.is-active{background:var(--brand-50);box-shadow:inset 3px 0 0 var(--brand)}.list-item:last-child{border-bottom:0}.kv{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:var(--fs-sm)}.kv>span{color:var(--text-3)}.kv b{color:var(--text);font-weight:500;margin-left:4px}.pre{font-family:var(--mono);font-size:13px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.var-token{font-family:var(--mono);font-size:12px;background:var(--violet-bg);color:var(--violet);border-radius:3px;padding:0 3px}.cmdk-input input:focus-visible{box-shadow:none}.popover{z-index:60}:root{--grad-ribbon: linear-gradient(90deg, #4eab9b 0%, #62d0e1 20%, #832e67 52%, #a1325a 74%, #d03730 100%);--grad-warm: linear-gradient(135deg, #a1325a 0%, #d03730 100%);--grad-warm-hover: linear-gradient(135deg, #b23a66 0%, #e0413a 100%);--grad-cool: linear-gradient(135deg, #4eab9b 0%, #62d0e1 100%);--grad-plum: linear-gradient(135deg, #832e67 0%, #a1325a 100%);--ink: #2a1724;--ink-2: #3a2032;--tint-plum: #f8f1f6;--tint-warm: #fdf4f2;--tint-teal: #eef8f6;--shadow-brand: 0 2px 6px rgba(161, 50, 90, .28);--nav-active-bg: linear-gradient(90deg, rgba(208, 55, 48, .1) 0%, rgba(161, 50, 90, .06) 60%, rgba(131, 46, 103, 0) 100%)}:root[data-theme=dark]{--tint-plum: #2a1a25;--tint-warm: #2c1918;--tint-teal: #14241f;--nav-active-bg: linear-gradient(90deg, rgba(208, 55, 48, .22) 0%, rgba(161, 50, 90, .12) 60%, rgba(131, 46, 103, 0) 100%)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--tint-plum: #2a1a25;--tint-warm: #2c1918;--tint-teal: #14241f;--nav-active-bg: linear-gradient(90deg, rgba(208, 55, 48, .22) 0%, rgba(161, 50, 90, .12) 60%, rgba(131, 46, 103, 0) 100%)}}body{background:radial-gradient(900px 420px at 100% -10%,rgba(98,208,225,.07),transparent 60%),radial-gradient(800px 480px at -10% 110%,rgba(131,46,103,.06),transparent 60%),var(--bg);background-attachment:fixed}.content{background:transparent}.sidebar{background:linear-gradient(180deg,var(--surface) 0%,var(--surface) 55%,var(--tint-plum) 100%)}.sidebar:before{height:3px;background:var(--grad-ribbon)}.nav-group-title{color:var(--plum);opacity:.7;display:flex;align-items:center;gap:6px}.nav-group-title:before{content:"";width:4px;height:4px;border-radius:50%;background:var(--grad-warm)}.shell.is-collapsed .nav-group-title{display:none}.nav-item{transition:background .15s var(--ease),color .15s var(--ease)}.nav-item:hover{background:var(--tint-plum);color:var(--ink-2)}.nav-item:hover svg{color:var(--berry)}.nav-item.active{background:var(--nav-active-bg);color:var(--brand);font-weight:600}.nav-item.active:before{background:var(--grad-ribbon);background-size:100% 300%;width:3px;top:5px;bottom:5px;background-image:linear-gradient(180deg,#4eab9b,#832e67 50%,#d03730)}.nav-item.active svg{color:var(--brand)}.sidebar-foot{background:transparent}.topbar{background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent;border-image:linear-gradient(90deg,#4eab9b59,#832e6759 50%,#d0373059) 1}.topbar-search{background:var(--surface)}.topbar-search:hover{border-color:#a1325a59}.user-chip .avatar{background:var(--grad-warm);color:#fff}.btn-primary{background:var(--grad-warm);border-color:transparent;box-shadow:var(--shadow-brand)}.btn-primary:hover:not(:disabled){background:var(--grad-warm-hover);border-color:transparent;box-shadow:0 3px 10px #a1325a57}.btn-primary:active:not(:disabled){transform:translateY(.5px)}.btn:not(.btn-primary):not(.btn-ghost):hover:not(:disabled){border-color:#a1325a59;background:var(--tint-warm)}.btn-group .btn.is-active{background:var(--tint-warm)}.page-title{color:var(--ink)}:root[data-theme=dark] .page-title{color:var(--text)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .page-title{color:var(--text)}}.crumbs a:hover{color:var(--brand)}.section-title,.kpi-label,.field-label{color:color-mix(in srgb,var(--plum) 55%,var(--text-2))}.card{border-color:color-mix(in srgb,var(--border) 80%,var(--berry) 6%);box-shadow:0 1px 2px #2a17240d,0 1px #fff9 inset}.card-header{background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.card-title{color:var(--ink)}:root[data-theme=dark] .card-title{color:var(--text)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .card-title{color:var(--text)}}.kpi-strip{position:relative;overflow:hidden}.kpi-strip:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--grad-ribbon);z-index:1}.kpi{transition:background .15s var(--ease)}.kpi[role=button]:hover{background:var(--tint-warm)}.kpi-accent{width:3px;opacity:.9}.kpi-value{color:var(--ink)}:root[data-theme=dark] .kpi-value{color:var(--text)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .kpi-value{color:var(--text)}}.kpi.is-alert .kpi-value{color:var(--brand)}.tbl th{background:linear-gradient(180deg,var(--tint-plum) 0%,color-mix(in srgb,var(--tint-plum) 60%,var(--surface)) 100%);color:color-mix(in srgb,var(--plum) 60%,var(--text-2));border-bottom-color:color-mix(in srgb,var(--border) 70%,var(--berry) 18%)}.tbl th.sortable:hover{color:var(--brand)}.tbl tbody tr:nth-child(2n){background:color-mix(in srgb,var(--surface) 97%,var(--plum) 3%)}.tbl tbody tr:hover{background:var(--tint-warm)}.tbl tbody tr.is-selected{background:color-mix(in srgb,var(--brand-50) 80%,var(--surface))}.tbl tfoot td{background:var(--tint-plum)}.tbl .cell-primary{color:var(--ink-2)}:root[data-theme=dark] .tbl .cell-primary{color:var(--text)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .tbl .cell-primary{color:var(--text)}}a.cell-primary:hover{color:var(--brand)}.toolbar{background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.bulkbar{background:var(--tint-warm)}.tbl-pager{background:var(--surface-2)}.tab{position:relative;border-bottom-color:transparent!important}.tab.is-active{color:var(--brand)}.tab.is-active:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;border-radius:2px;background:var(--grad-warm)}.tab:hover:not(.is-active){color:var(--berry)}.tab.is-active .count{background:var(--brand-50);color:var(--brand)}.seg{background:color-mix(in srgb,var(--surface-3) 70%,var(--plum) 8%)}.seg button.is-active{color:var(--brand);box-shadow:0 1px 3px #832e672e}.chip.is-active{background:var(--tint-warm);border-color:#d037308c}.chip:hover{border-color:#a1325a66}.progress>span{background:var(--grad-warm)}.progress.is-success>span{background:var(--grad-cool)}.step.is-done .step-dot{background:var(--grad-warm);border-color:transparent}.step-line.is-done{background:var(--grad-warm)}.timeline li.is-brand:before{background:var(--grad-warm)}.timeline li.is-success:before{background:var(--grad-cool)}.input:focus,.select:focus,.textarea:focus{border-color:var(--berry);box-shadow:0 0 0 3px #a1325a24}.check input,.switch{accent-color:var(--brand)}.switch[aria-checked=true]{background:var(--grad-warm)}.drawer-header,.modal-header{position:relative}.drawer-header:before,.modal-header:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad-ribbon)}.modal{overflow:hidden}.popover{border-color:color-mix(in srgb,var(--border) 70%,var(--berry) 15%)}.menu-item:hover,.menu-item.is-active{background:var(--tint-warm)}.cmdk{overflow:hidden}.cmdk:before{content:"";display:block;height:3px;background:var(--grad-ribbon)}.cmdk-item.is-active{background:var(--tint-warm)}.toast{border-left-width:4px}.kanban-col{background:color-mix(in srgb,var(--surface-3) 80%,var(--plum) 6%)}.kanban-card:hover{border-color:#a1325a59;box-shadow:0 3px 10px #832e671f}*{scrollbar-color:color-mix(in srgb,var(--border-strong) 70%,var(--plum) 20%) transparent}.hero{position:relative;overflow:hidden;border-radius:var(--radius-lg);padding:16px 18px;background:linear-gradient(120deg,#24131f,#3a1830 45%,#4a1a26);color:#fff;display:flex;align-items:center;gap:12px;flex-wrap:wrap;box-shadow:0 6px 20px #2a17242e}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(260px 120px at 0% 0%,rgba(78,171,155,.75),transparent 70%),radial-gradient(240px 110px at 18% 100%,rgba(98,208,225,.45),transparent 70%),radial-gradient(360px 140px at 58% 0%,rgba(131,46,103,.9),transparent 70%),radial-gradient(300px 140px at 100% 100%,rgba(208,55,48,.8),transparent 70%);pointer-events:none}.hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--grad-ribbon)}.hero>*{position:relative}.hero-title{font-size:var(--fs-xl);font-weight:700;letter-spacing:-.015em}.hero-sub{font-size:var(--fs-sm);color:#ffffffb8;margin-top:2px}.hero .seg{background:#ffffff1f}.hero .seg button{color:#ffffffc7}.hero .seg button.is-active{background:#fff;color:var(--brand)}.hero .btn-ghost{color:#ffffffd9}.hero .btn-ghost:hover:not(:disabled){background:#ffffff24;color:#fff}.hero-stat{display:flex;flex-direction:column;padding:0 14px;border-left:1px solid rgba(255,255,255,.18)}.hero-stat b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}.hero-stat span{font-size:var(--fs-xs);color:#ffffffb3;text-transform:uppercase;letter-spacing:.05em}.barlist-track>span{border-radius:4px}.barlist-track>span+span{border-radius:0 4px 4px 0}
