.app{display:grid;grid-template-columns:auto 1fr;grid-template-rows:minmax(0,1fr);height:100vh;height:100svh}.app,.sidebar{overflow:hidden}.sidebar{background:var(--bg-subtle);color:var(--text-primary);border-right:1px solid var(--border-subtle);width:232px;transition:width var(--dur-base) var(--ease)}.sidebar.collapsed{width:56px}.brand{display:flex;align-items:center;gap:var(--space-2);flex:0 0 48px;padding:0 var(--space-4);font-weight:var(--fw-semibold);font-size:var(--text-md);white-space:nowrap}.brand .logo{width:24px;height:24px;border-radius:var(--radius-sm);background:var(--accent);color:var(--text-onAccent);display:grid;place-items:center;flex:0 0 auto;font-weight:700}.nav{padding:var(--space-2);display:flex;flex-direction:column;gap:2px;min-height:0}.nav-section{font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary);padding:var(--space-3) var(--space-3) var(--space-1);white-space:nowrap}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:7px var(--space-3);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;white-space:nowrap;font-weight:var(--fw-medium);border-left:2px solid transparent}.nav-item:hover{background:var(--bg-muted);color:var(--text-primary)}.nav-item.active{background:var(--p-bg,var(--accent-subtle));color:var(--p-ink,var(--accent-text));border-left-color:var(--p-ink,var(--accent))}.nav-item svg{flex:0 0 auto}.main{flex-direction:column;min-width:0}.content,.main{display:flex;min-height:0}.content{flex:1 1 auto;flex-direction:column;overflow-y:auto}.topbar{height:48px;flex:0 0 auto;border-bottom:1px solid var(--border-subtle);gap:var(--space-3);padding:0 var(--space-4)}.crumbs,.topbar{display:flex;align-items:center}.crumbs{color:var(--text-secondary);font-size:var(--text-sm);min-width:0;overflow:hidden}.bc-brand,.crumbs b{color:var(--text-primary);font-weight:var(--fw-semibold)}.bc-list{display:flex;gap:var(--space-1);list-style:none;margin:0;padding:0}.bc-li,.bc-list{align-items:center;min-width:0}.bc-li{display:inline-flex}.bc-item{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-sm);padding:2px var(--space-1)}.bc-link{color:var(--text-secondary);text-decoration:none}.bc-link:hover{color:var(--text-primary);background:var(--bg-muted)}.bc-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.bc-current{color:var(--text-primary);font-weight:var(--fw-semibold)}.bc-sep{color:var(--text-tertiary);flex:0 0 auto;display:inline-flex;align-items:center}[dir=rtl] .bc-sep svg{transform:scaleX(-1)}.bc-ellipsis{border:0;background:transparent;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:var(--text-sm);line-height:1;letter-spacing:1px}.bc-ellipsis:hover{color:var(--text-primary);background:var(--bg-muted)}.bc-ellipsis:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.bc-skel{display:inline-block;width:96px;height:12px;border-radius:var(--radius-sm);background:var(--bg-muted);animation:bc-pulse 1.2s ease-in-out infinite}@keyframes bc-pulse{0%,to{opacity:1}50%{opacity:.5}}@media (prefers-reduced-motion:reduce){.bc-skel{animation:none}}.spacer{flex:1}.iconbtn{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-md);border:1px solid transparent;background:transparent;color:var(--text-secondary);cursor:pointer}.iconbtn:hover{background:var(--bg-muted);color:var(--text-primary)}.iconbtn:disabled,.iconbtn[aria-disabled=true]{cursor:not-allowed;opacity:.45}.iconbtn:disabled:hover,.iconbtn[aria-disabled=true]:hover{background:transparent;color:var(--text-secondary)}.su-bell{position:relative;text-decoration:none}.su-bell-badge{position:absolute;top:-3px;inset-inline-end:-3px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-full);background:var(--status-red-solid);color:#fff;border:2px solid var(--bg-app);display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;line-height:1}.notif{position:relative;display:inline-flex}.notif-panel{position:absolute;top:calc(100% + var(--space-2));inset-inline-end:0;z-index:50;width:340px;max-width:min(92vw,340px);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.notif-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle)}.notif-title{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-primary)}.notif-markall{border:0;background:transparent;color:var(--accent);cursor:pointer;font-size:var(--text-xs);font-weight:var(--fw-medium);font-family:inherit;padding:0}.notif-markall:hover{text-decoration:underline}.notif-body{max-height:60vh;overflow-y:auto}.notif-state{padding:var(--space-5);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.notif-retry{display:block;width:100%;border:0;background:transparent;cursor:pointer;font-family:inherit}.notif-retry:hover{color:var(--text-secondary)}.notif-empty{padding:var(--space-6) var(--space-5);text-align:center;color:var(--text-tertiary);display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.notif-empty-title{font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--text-secondary)}.notif-empty-hint{font-size:var(--text-xs)}.notif-list{list-style:none;margin:0;padding:0}.notif-item{display:flex;align-items:flex-start;gap:var(--space-2);width:100%;text-align:start;padding:var(--space-3) var(--space-4);border:0;background:transparent;cursor:pointer;border-bottom:1px solid var(--border-subtle);font-family:inherit}.notif-item:hover{background:var(--bg-muted)}.notif-item--unread{background:var(--bg-inset)}.notif-dot{flex:none;width:8px;height:8px;margin-top:5px;border-radius:var(--radius-full);background:var(--accent)}.notif-item-main{display:flex;flex-direction:column;gap:2px;min-width:0}.notif-item-title{font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--text-primary)}.notif-item-body{font-size:var(--text-xs);color:var(--text-secondary)}.notif-item-time{font-size:11px}.kbd,.notif-item-time{color:var(--text-tertiary)}.kbd{display:inline-flex;align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-inset);font-size:var(--text-sm);cursor:pointer}.kbd kbd{font-family:var(--font-mono);font-size:11px;background:var(--bg-muted);border-radius:4px;padding:1px 5px;color:var(--text-secondary)}.page-head{padding:var(--space-5) var(--space-6) var(--space-3);display:flex;align-items:center;gap:var(--space-4)}.page-head h1{margin:0;font-size:var(--text-2xl);line-height:var(--lh-2xl);font-weight:var(--fw-semibold)}.page-head .sub{color:var(--text-tertiary);font-size:var(--text-sm)}.toolbar{padding:0 var(--space-6) var(--space-3);flex-wrap:wrap}.search,.toolbar{display:flex;align-items:center;gap:var(--space-2)}.search{height:32px;padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-inset);min-width:240px;color:var(--text-tertiary)}.search input{border:0;outline:0;background:transparent;width:100%}.btn,.search input{color:var(--text-primary);font-size:var(--text-sm);font-family:inherit}.btn{display:inline-flex;align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-card);font-weight:var(--fw-medium);cursor:pointer}.btn:hover{background:var(--bg-muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--text-onAccent)}.btn.primary:hover{background:var(--accent-hover)}.btn.ghost{border-color:transparent;background:transparent;color:var(--text-secondary)}.btn.danger{border-color:var(--status-red-subtle);color:var(--status-red-text)}.btn.danger:hover{background:var(--status-red-subtle)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:hover{background:var(--surface-card)}.btn.ghost:hover{background:var(--bg-muted);color:var(--text-primary)}.seg{display:inline-flex;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}.seg button{height:30px;padding:0 var(--space-3);border:0;background:var(--surface-card);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--fw-medium);cursor:pointer;font-family:inherit}.seg button.on{background:var(--accent-subtle);color:var(--accent-text)}.seg button+button{border-left:1px solid var(--border-default)}.seg button:disabled,.seg button[aria-disabled=true]{cursor:not-allowed}.seg button:disabled:not(.on),.seg button[aria-disabled=true]:not(.on){color:var(--text-disabled)}select.mini{height:30px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-primary);font-size:var(--text-sm);padding:0 var(--space-2);font-family:inherit}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);padding:0 var(--space-6) var(--space-4)}.kpi{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-xs)}.kpi .label{color:var(--text-tertiary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.kpi .value{font-size:var(--text-2xl);line-height:var(--lh-2xl);font-weight:var(--fw-bold);margin-top:var(--space-1);font-variant-numeric:tabular-nums}.kpi .delta{font-size:var(--text-sm);font-weight:var(--fw-medium);margin-top:2px}.kpi .delta.up{color:var(--status-green-text)}.kpi .delta.down{color:var(--status-red-text)}.table-wrap{flex:1;margin:0 var(--space-6) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-card);display:flex;flex-direction:column;min-height:0}.thead{height:36px;flex:0 0 auto;border-bottom:1px solid var(--border-default);background:var(--bg-subtle);position:sticky;top:0;z-index:1}.th,.thead{display:flex}.th{align-items:center;gap:var(--space-1);padding:0 var(--cell-px);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);font-weight:var(--fw-semibold);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.th:hover{color:var(--text-secondary)}.th.th-static{cursor:default}.th.th-static:hover{color:var(--text-tertiary)}.th{position:relative}.th-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-resizer{position:absolute;inset-inline-end:-3px;top:0;bottom:0;width:8px;cursor:col-resize;z-index:2;touch-action:none}.col-resizer:after{content:"";position:absolute;inset-inline-end:3px;top:6px;bottom:6px;width:1px;background:var(--border-default);opacity:0;transition:opacity .12s ease}.col-resizer:hover:after,.th:hover .col-resizer:after{opacity:1;background:var(--accent)}body.col-resizing{cursor:col-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none}body.col-resizing *{cursor:col-resize!important}.th.num{justify-content:flex-end}.tbody{flex:1;overflow:auto;position:relative}.tr{display:flex;align-items:center;position:absolute;left:0;right:0;height:var(--row-h);border-bottom:1px solid var(--border-subtle)}.tr:hover{background:var(--bg-muted)}.tr.click{cursor:pointer}.tr.selected{background:var(--accent-subtle)}.td{padding:0 var(--cell-px);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td.num{text-align:right;justify-content:flex-end;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.td.strong{color:var(--text-primary);font-weight:var(--fw-medium)}.td .muted{color:var(--text-tertiary)}.chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--fw-medium)}.chip .dot{width:6px;height:6px;border-radius:50%}.statusbar{height:32px;flex:0 0 auto;border-top:1px solid var(--border-subtle);display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-6);color:var(--text-tertiary);font-size:var(--text-xs)}.statusbar b{color:var(--text-secondary);font-variant-numeric:tabular-nums}.dot-live{width:7px;height:7px;border-radius:50%;background:var(--status-green-solid)}.center-state{display:grid;place-items:center;height:100%;color:var(--text-tertiary);font-size:var(--text-sm);gap:var(--space-3);text-align:center}.modal-overlay{position:fixed;inset:0;background:var(--overlay-scrim);z-index:var(--z-modal);display:grid;place-items:center;padding:var(--space-4)}.modal{width:480px;max-width:100%;max-height:90vh;display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.modal-head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.modal-head h2{flex:1;font-size:var(--text-lg);font-weight:var(--fw-semibold)}.modal-body{overflow:auto;flex-direction:column;gap:var(--space-3)}.modal-body,.modal-foot{padding:var(--space-4) var(--space-5);display:flex}.modal-foot{justify-content:flex-end;gap:var(--space-2);border-top:1px solid var(--border-subtle)}@keyframes modal-nudge{0%,to{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}.modal-nudge>:not(.modal-confirm-layer){animation:modal-nudge .32s ease-in-out}@media (prefers-reduced-motion:reduce){.modal-nudge>:not(.modal-confirm-layer){animation:none}}.modal-confirm-layer{position:fixed;inset:0;z-index:999;display:grid;place-items:center;padding:var(--space-4);background:rgba(0,0,0,.32)}.modal-confirm{width:400px}.modal-confirm .modal-body{color:var(--text-secondary)}.form-field{display:flex;flex-direction:column;gap:4px}.form-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em}.form-field input,.form-field select,.form-field textarea{width:100%;height:34px;padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-inset);color:var(--text-primary);font-size:var(--text-sm);font-family:inherit}.form-field textarea{height:auto;padding:var(--space-2) var(--space-3);resize:vertical}.inline-note{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm)}.inline-note.success{color:var(--status-green-text)}.inline-note.error{color:var(--status-red-text)}.inline-note.info{color:var(--text-secondary)}.datefield{position:relative;display:block}.datefield .datefield-text{width:100%;padding-inline-end:26px}.datefield-icon{position:absolute;inset-inline-end:8px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.datefield .datefield-native{position:absolute;inset-inline-end:0;top:0;width:28px;height:100%;min-width:0;padding:0;border:0;background:transparent;opacity:0;cursor:pointer}.datefield .datefield-native:disabled{cursor:default}.monthfield{display:flex;gap:var(--space-2)}.monthfield select:first-child{flex:1}.monthfield select:last-child{flex:0 0 96px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.form-error{color:var(--status-red-text)}.form-error,.form-warn{font-size:var(--text-xs)}.form-warn{color:var(--status-orange-text)}.form-hint{font-size:var(--text-xs);color:var(--text-tertiary)}.viewswitch{display:inline-flex;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}.viewswitch button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 var(--space-3);border:0;background:var(--surface-card);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--fw-medium);cursor:pointer;font-family:inherit}.viewswitch button+button{border-left:1px solid var(--border-default)}.viewswitch button.on{background:var(--accent-subtle);color:var(--accent-text)}.drawer-overlay{position:fixed;inset:0;background:rgba(15,15,15,.18);z-index:40}.drawer{position:fixed;top:0;right:0;height:100vh;width:520px;max-width:94vw;z-index:41;background:var(--surface-card);border-left:1px solid var(--border-default);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slideIn var(--dur-slow) var(--ease)}@keyframes slideIn{0%{transform:translateX(24px);opacity:.4}to{transform:none;opacity:1}}.drawer-head{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);display:flex;align-items:flex-start;gap:var(--space-3)}.drawer-head h2{margin:0;font-size:var(--text-xl);line-height:var(--lh-xl);font-weight:var(--fw-semibold)}.drawer-head .sub{color:var(--text-tertiary);font-size:var(--text-sm);margin-top:2px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.copyable{display:inline-flex;align-items:center;gap:var(--space-1);min-width:0;max-width:100%}.copybtn{flex:0 0 auto;width:22px;height:22px;padding:0;display:grid;place-items:center;border:0;border-radius:var(--radius-sm);cursor:pointer;background:transparent;color:var(--text-tertiary);opacity:0;transition:opacity var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.copyable:focus-within .copybtn,.copyable:hover .copybtn,.copybtn:focus-visible{opacity:1}.copybtn:hover{background:var(--bg-muted);color:var(--text-primary)}.copybtn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.copybtn--ok{opacity:1;color:var(--status-green-text)}.copybtn--err{opacity:1;color:var(--status-red-text)}@media (hover:none){.copybtn{opacity:1}}@media (prefers-reduced-motion:reduce){.copybtn{transition:none}}.client-logo{width:44px;height:44px;flex:0 0 auto;border-radius:var(--radius-md);background:var(--accent-subtle);color:var(--accent-text);display:grid;place-items:center;overflow:hidden;font-size:var(--text-sm);font-weight:var(--fw-semibold)}.client-logo-img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;display:block;background:var(--surface-card)}.client-logo--btn{position:relative;padding:0;border:0;cursor:pointer;overflow:visible}.client-logo--btn .client-logo-img{border-radius:var(--radius-md)}.client-logo-cam{position:absolute;inset-block-end:-3px;inset-inline-end:-3px;width:19px;height:19px;border-radius:var(--radius-full);background:var(--accent);color:var(--text-onAccent);display:grid;place-items:center;border:2px solid var(--surface-card)}.drawer-tabs{display:flex;gap:var(--space-1);padding:0 var(--space-5);border-bottom:1px solid var(--border-subtle)}.drawer-tab{padding:var(--space-3) var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;border:none;border-bottom:2px solid transparent;font-weight:var(--fw-medium);background:none;font-family:inherit}.drawer-tab.on,.drawer-tab:hover{color:var(--text-primary)}.drawer-tab.on{border-bottom-color:var(--accent)}.drawer-body{flex:1;overflow:auto;padding:var(--space-5)}.field{display:grid;grid-template-columns:140px 1fr;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle);align-items:center}.field .k{color:var(--text-tertiary);font-size:var(--text-sm)}.field .v{font-size:var(--text-md)}.field .v input{width:100%;border:1px solid transparent;background:transparent;border-radius:var(--radius-sm);padding:5px var(--space-2);font:inherit;color:var(--text-primary);margin:-5px 0}.field .v input:hover{background:var(--bg-muted)}.field .v input:focus{background:var(--bg-inset);border-color:var(--accent-border);outline:none}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;padding:0 0 var(--space-4) var(--space-5);border-left:2px solid var(--border-subtle)}.timeline li:before{content:"";position:absolute;left:-5px;top:3px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.timeline .when{color:var(--text-tertiary);font-size:var(--text-xs)}.timeline .what{font-size:var(--text-sm);margin-top:2px}.drawer-foot{border-top:1px solid var(--border-subtle);padding:var(--space-3) var(--space-5);display:flex;gap:var(--space-2)}.pd-preview{position:sticky;top:var(--space-2);align-self:start;height:min(78vh,900px);display:flex;flex-direction:column;min-width:0;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.pd-preview-head{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-subtle);font-weight:var(--fw-semibold);font-size:var(--text-sm);color:var(--text-secondary);display:flex;align-items:center;gap:var(--space-2)}.pd-preview-body{flex:1;position:relative;overflow:hidden;padding:var(--space-4);background:var(--bg-subtle)}.pd-preview-frame{width:100%;height:100%;border:0;border-radius:var(--radius-md);background:var(--surface-card);box-shadow:var(--shadow-sm)}.pd-preview-skeleton{position:absolute;inset:var(--space-4);border-radius:var(--radius-md);background:var(--bg-muted);animation:pdPulse 1.4s var(--ease) infinite}@keyframes pdPulse{0%,to{opacity:.55}50%{opacity:.9}}.pd-preview-updating{position:absolute;top:var(--space-5);inset-inline-end:var(--space-5);display:inline-flex;align-items:center;gap:var(--space-2);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);color:var(--text-secondary);box-shadow:var(--shadow-sm)}.pd-preview-updating--error{color:var(--status-red-text);border-color:var(--status-red-text)}.pd-spin{animation:pdSpin 1s linear infinite}@keyframes pdSpin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.pd-preview,.pd-preview-skeleton,.pd-spin{animation:none}}.inv-split{display:grid;grid-template-columns:minmax(360px,460px) minmax(0,1fr);gap:var(--space-4);align-items:start}.inv-editor{min-width:0}@media (max-width:1024px){.inv-split{grid-template-columns:minmax(0,1fr)}.pd-preview{position:static;height:60vh}}@media (max-width:640px){.pd-preview{display:none}}.board{flex:1;gap:var(--space-3);padding:0 var(--space-6) var(--space-4);overflow-x:auto}.board,.board-col{display:flex;min-height:0}.board-col{width:280px;flex:0 0 auto;background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);flex-direction:column}.board-col.drop{outline:2px dashed var(--accent-border);outline-offset:-2px}.board-col-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-weight:var(--fw-semibold);font-size:var(--text-sm)}.board-col-head .cnt{margin-inline-start:auto;color:var(--text-tertiary);font-size:var(--text-xs);background:var(--bg-muted);border-radius:var(--radius-full);padding:1px 8px}.board-list{flex:1;overflow-y:auto;padding:0 var(--space-2) var(--space-2);display:flex;flex-direction:column;gap:var(--space-2)}.card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3);box-shadow:var(--shadow-xs);cursor:grab}.card:hover{border-color:var(--border-default);box-shadow:var(--shadow-sm)}.card .num{font-size:var(--text-xs);color:var(--text-tertiary);font-family:var(--font-mono)}.card .cust{font-weight:var(--fw-medium);font-size:var(--text-sm);margin:2px 0 var(--space-2)}.card .meta{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-xs);color:var(--text-tertiary)}.card .amt{font-family:var(--font-mono);color:var(--text-secondary);font-variant-numeric:tabular-nums}.dash{flex:1;overflow:auto;padding:0 var(--space-6) var(--space-6)}.dash-grid{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-4)}.panel{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-xs)}.panel h3{margin:0 0 var(--space-3);font-size:var(--text-md);font-weight:var(--fw-semibold)}.nav-item{text-decoration:none}.nav-item.disabled{opacity:.5;cursor:default;pointer-events:none}.nav-soon{margin-inline-start:auto;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:0 5px}.sidebar{display:flex;flex-direction:column}.nav{flex:1 1 auto;overflow-y:auto}.sidebar-user{margin-top:auto;border-top:1px solid var(--border-subtle);padding:var(--space-3);flex-direction:column}.sidebar-user,.su-row{display:flex;gap:var(--space-2)}.su-row{align-items:center}.su-avatar{position:relative;width:30px;height:30px;flex:0 0 auto;background:var(--accent-subtle);color:var(--accent-text);display:grid;place-items:center;font-size:var(--text-xs);font-weight:var(--fw-semibold)}.su-avatar,.su-avatar img{border-radius:var(--radius-full)}.su-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.su-dot{position:absolute;inset-inline-end:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;background:var(--status-green-solid);border:2px solid var(--bg-subtle)}.su-info{min-width:0}.su-name{font-size:var(--text-sm);font-weight:var(--fw-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.su-role{font-size:var(--text-xs);color:var(--text-tertiary)}.su-admin{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);text-decoration:none;font-size:var(--text-sm)}.su-admin:hover{border-color:var(--accent-border);color:var(--accent-text)}.lang-switch{display:inline-flex;align-items:center;gap:2px;height:30px;padding:2px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card)}.lang-seg{min-width:30px;height:24px;padding:0 6px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-weight:var(--fw-semibold);font-size:var(--text-xs);cursor:pointer}.lang-seg--on,.lang-seg:hover{color:var(--accent-text)}.lang-seg--on{background:var(--accent-subtle)}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-3);padding:0 var(--space-6) var(--space-6)}.admin-card{position:relative;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-card);color:var(--text-primary);text-decoration:none;font-weight:var(--fw-medium)}.admin-card:hover{border-color:var(--accent-border);box-shadow:var(--shadow-sm)}.admin-card.disabled{opacity:.6}.admin-card-badge{position:absolute;top:calc(-1 * var(--space-2));inset-inline-end:calc(-1 * var(--space-2));min-width:var(--space-5);height:var(--space-5);padding:0 var(--space-1);border-radius:var(--radius-full);background:var(--status-red-solid);color:var(--text-onAccent);border:2px solid var(--bg-app);display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;line-height:1}.settings-list{padding:0 var(--space-6) var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);max-width:680px}.settings-list .panel h3{margin:0 0 var(--space-2)}.set-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-top:1px solid var(--border-subtle)}.set-row:first-of-type{border-top:0}.set-row-stack{flex-direction:column;align-items:stretch}.set-label{font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--text-primary)}.set-hint{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px;max-width:420px}.set-input{height:30px;width:220px;padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-primary);font:inherit}.set-input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}[data-density=comfortable] .nav-item{min-height:40px}[data-density=compact] .nav-item{min-height:32px}.cmd-overlay{position:fixed;inset:0;background:rgba(15,15,15,.32);display:grid;place-items:start center;padding-top:14vh;z-index:60}.cmd{width:560px;max-width:92vw;background:var(--surface-overlay);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.cmd input{width:100%;border:0;outline:0;padding:var(--space-4);font-size:var(--text-lg);background:transparent;color:var(--text-primary);font-family:inherit;border-bottom:1px solid var(--border-subtle)}.cmd-list{max-height:320px;overflow:auto;padding:var(--space-2)}.cmd-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:var(--text-sm)}.cmd-item.sel,.cmd-item:hover{background:var(--accent-subtle);color:var(--accent-text)}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1fr;background:var(--bg-subtle)}@media (min-width:880px){.login-wrap{grid-template-columns:1.05fr 1fr}}.login-aside{display:none;position:relative;overflow:hidden;padding:var(--space-6);color:var(--text-onAccent);background:radial-gradient(115% 115% at 12% 8%,color-mix(in srgb,var(--accent) 92%,var(--text-onAccent)),transparent 58%),linear-gradient(150deg,var(--accent-active),var(--accent))}@media (min-width:880px){.login-aside{display:flex;align-items:flex-end}}.login-aside:before{inset:0;opacity:.18;background-image:linear-gradient(color-mix(in srgb,var(--text-onAccent) 85%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--text-onAccent) 85%,transparent) 1px,transparent 1px);background-size:30px 30px;-webkit-mask-image:radial-gradient(130% 100% at 18% 22%,var(--text-onAccent) 38%,transparent 82%);mask-image:radial-gradient(130% 100% at 18% 22%,var(--text-onAccent) 38%,transparent 82%)}.login-aside:after,.login-aside:before{content:"";position:absolute;pointer-events:none}.login-aside:after{width:460px;height:460px;border-radius:var(--radius-full);inset-block-end:-160px;inset-inline-end:-130px;background:radial-gradient(circle,color-mix(in srgb,var(--text-onAccent) 40%,transparent),transparent 70%)}.login-aside-inner{position:relative;z-index:1;display:flex;flex-direction:column;max-width:30ch}.login-badge{align-self:flex-start;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:color-mix(in srgb,var(--text-onAccent) 16%,transparent);border:1px solid color-mix(in srgb,var(--text-onAccent) 32%,transparent);font-weight:800;font-size:var(--text-lg);letter-spacing:.08em;margin-bottom:var(--space-5)}.login-aside-title{font-size:var(--text-2xl);line-height:var(--lh-2xl);font-weight:var(--fw-semibold);letter-spacing:-.01em}.login-aside-sub{margin-top:var(--space-3);font-size:var(--text-md);line-height:1.55;color:color-mix(in srgb,var(--text-onAccent) 82%,transparent)}.login-formside{display:grid;place-items:center;padding:var(--space-6)}.login-card{width:380px;max-width:100%;display:flex;flex-direction:column;gap:var(--space-3);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6)}.login-brand{display:flex;align-items:center;gap:var(--space-2);font-weight:var(--fw-semibold);font-size:var(--text-md);color:var(--text-secondary);margin-bottom:var(--space-1)}.login-brand .logo{min-width:26px;height:22px;padding-inline:var(--space-2);border-radius:var(--radius-sm);background:var(--accent);color:var(--text-onAccent);display:inline-grid;place-items:center;font-weight:700;font-size:var(--text-xs);letter-spacing:.06em}.login-card h1{margin:0;font-size:var(--text-2xl);font-weight:var(--fw-semibold);letter-spacing:-.02em}.login-hint{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.5}.login-note{display:flex}.login-input{height:42px;padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-inset);color:var(--text-primary);font-size:var(--text-md);font-family:inherit;width:100%}.login-input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.login-card .btn{height:42px;justify-content:center;font-size:var(--text-md)}.wt-badge{display:inline-flex;align-items:center;gap:var(--space-2);height:28px;padding:0 var(--space-2) 0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-card);flex:0 0 auto}.wt-badge.is-on{border-color:var(--accent-border);background:var(--accent-subtle)}.wt-dot{inline-size:7px;block-size:7px;border-radius:var(--radius-full);background:var(--text-tertiary);flex:0 0 auto}.wt-badge.is-on .wt-dot{background:var(--accent);animation:wt-pulse 1.6s ease-in-out infinite}.wt-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-sm);color:var(--text-primary);text-decoration:none;min-inline-size:5ch}.wt-time:hover{color:var(--accent-text)}.wt-time:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.wt-btn{display:inline-flex;align-items:center;justify-content:center;inline-size:20px;block-size:20px;border:0;border-radius:var(--radius-full);background:transparent;color:var(--text-secondary);cursor:pointer}.wt-btn:hover{background:var(--bg-muted);color:var(--text-primary)}.wt-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}@keyframes wt-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}@media (prefers-reduced-motion:reduce){.wt-badge.is-on .wt-dot{animation:none}}.admin-groups{display:flex;flex-direction:column;gap:var(--space-5)}.admin-groups h2{margin:0 0 var(--space-3);padding-inline:var(--space-6);color:var(--text-tertiary);font-size:var(--text-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em}.nav-backdrop{position:fixed;inset:0;z-index:calc(var(--z-drawer) - 1);border:none;background:rgba(15,15,15,.32);cursor:pointer;display:none}@media (max-width:1023px){.app{grid-template-columns:1fr}.nav-backdrop{display:block}.sidebar{position:fixed;inset-block:0;inset-inline-start:0;z-index:var(--z-drawer);width:min(280px,84vw);transform:translateX(-102%);box-shadow:var(--shadow-lg)}.sidebar.mobile-open{transform:translateX(0)}:root[dir=rtl] .sidebar{transform:translateX(102%)}:root[dir=rtl] .sidebar.mobile-open{transform:translateX(0)}.page-head{padding:var(--space-4) var(--space-4) var(--space-3)}}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}@media (max-width:640px){.topbar{gap:var(--space-1);padding:0 var(--space-2)}.topbar .iconbtn{min-width:40px;min-height:40px}.topbar .kbd{display:none}.page-head{padding:var(--space-3) var(--space-3) var(--space-2);gap:var(--space-2)}.page-head h1{font-size:var(--text-xl);line-height:var(--lh-xl)}}