:root,:root[data-theme=light]{--canvas:#f2f3f5;--paper:#fff;--paper-2:#f4f4f5;--paper-3:#ececee;--ink:#191c1f;--ink-2:#1f2226;--ink-3:#505a63;--ink-4:#8d969e;--ink-5:#c9c9cd;--rule:#e6e7ea;--rule-2:#d8dade;--rule-dash:#cfd2d7;--accent:#1746d1;--accent-2:#494fdf;--ink-link:#1746d1;--ink-link-soft:#1746d11a;--ink-flag:#e23b4a;--ink-pos:#00a87e;--shadow-sm:0 1px 2px #00000008;--shadow-pop:0 16px 40px #191c1f24, 0 2px 8px #191c1f0f;--hover:#191c1f0d;--grad-promo:linear-gradient(135deg, #6e4ce5, #81b2f1);--font-body:"Inter", system-ui, sans-serif;--font-display:"Space Grotesk", "Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--r-card:16px;--r-input:12px;--r-pill:999px;--ease:cubic-bezier(.2, .8, .2, 1)}:root[data-theme=dark]{--canvas:#000;--paper:#16181a;--paper-2:#1d2023;--paper-3:#0a0a0a;--ink:#fff;--ink-2:#ffffffd9;--ink-3:#fff9;--ink-4:#ffffff6b;--ink-5:#ffffff38;--rule:#ffffff1a;--rule-2:#ffffff2e;--rule-dash:#ffffff29;--accent:#4f55f1;--accent-2:#494fdf;--ink-link:#7a9bff;--ink-link-soft:#7a9bff29;--ink-flag:#f47582;--ink-pos:#2bc79d;--shadow-sm:none;--shadow-pop:0 16px 48px #0009;--hover:#ffffff0f;--grad-promo:linear-gradient(135deg, #4a35a8, #2d5fa8)}*,:before,:after{box-sizing:border-box}@media (min-width:1880px){html{zoom:1.1}}html,body{height:100%;margin:0}body{background:var(--canvas);color:var(--ink-2);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .18s var(--ease), color .18s var(--ease);font-size:13px;line-height:1.45;overflow:hidden}button{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}button:focus-visible{outline:1.5px solid var(--accent);outline-offset:2px}a{color:inherit;text-decoration:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none;outline:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--rule-2);background-clip:padding-box;border:2px solid #0000;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--ink-5);background-clip:padding-box}.app{grid-template:"topbar topbar"56px"sidebar main"1fr/224px 1fr;width:100%;height:100%;display:grid}.topbar{border-bottom:1px solid var(--rule);background:var(--canvas);z-index:10;grid-area:topbar;align-items:center;gap:12px;padding:0 16px;display:flex}.sidebar{background:var(--canvas);border-right:none;grid-area:sidebar;padding:12px 10px;overflow-y:auto}.main{background:var(--canvas);grid-area:main;position:relative;overflow:auto}.icon-btn{border-radius:var(--r-pill);width:34px;height:34px;color:var(--ink-3);background:var(--paper-2);transition:background-color .15s var(--ease), color .15s var(--ease), transform .15s var(--ease);place-items:center;display:grid}.icon-btn:hover{background:var(--paper-3);color:var(--ink)}.icon-btn:active{transform:scale(.95)}.brand{letter-spacing:-.2px;font-weight:600;font-family:var(--font-display);color:var(--ink);align-items:center;gap:9px;margin-right:4px;padding-right:14px;font-size:14.5px;display:flex}.brand .brand-mark{background:var(--ink);width:26px;height:26px;color:var(--canvas);font-size:10px;font-weight:700;font-family:var(--font-display);letter-spacing:0;border-radius:50%;place-items:center;display:grid}.nav-section{color:var(--ink-4);text-transform:uppercase;letter-spacing:1.2px;padding:14px 12px 5px;font-size:10px;font-weight:600}.nav-item{width:100%;color:var(--ink-3);text-align:left;cursor:pointer;transition:background-color .15s var(--ease), color .15s var(--ease);border-radius:10px;align-items:center;gap:10px;padding:7px 12px;font-size:13px;font-weight:500;display:flex}.nav-item:hover{background:var(--hover);color:var(--ink)}.nav-item.active{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-sm);font-weight:600}.nav-item .ni-icon{width:14px;height:14px;color:var(--ink-4);flex-shrink:0;place-items:center;display:grid}.nav-item:hover .ni-icon,.nav-item.active .ni-icon{color:var(--ink)}.nav-item .ni-badge{border-radius:var(--r-pill);background:var(--paper-2);color:var(--ink-3);font-variant-numeric:tabular-nums;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:600}.nav-item.active .ni-badge{background:var(--paper-2)}.nav-item .ni-badge.flag{color:var(--ink-flag);background:#e23b4a1f}.panel{background:var(--paper);border-radius:var(--r-card);box-shadow:var(--shadow-sm);transition:background-color .18s var(--ease);border:none;overflow:hidden}.panel-hd{border-bottom:1px solid var(--rule);background:0 0;align-items:center;gap:10px;padding:13px 16px 10px;display:flex}.panel-hd h3{color:var(--ink);letter-spacing:-.1px;text-transform:none;font-size:14px;font-weight:600;font-family:var(--font-display);margin:0}.panel-hd .hd-meta{color:var(--ink-4);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11.5px}.panel-bd{padding:16px}.panel-bd.flush{padding:0}.panel-bd.flush>.empty{margin:14px}.tbl{border-collapse:collapse;width:100%}.tbl th,.tbl td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:middle;padding:10px 14px;font-size:12.5px}.tbl th{color:var(--ink-4);text-transform:uppercase;letter-spacing:.8px;background:var(--paper);z-index:1;font-size:10.5px;font-weight:600;position:sticky;top:0}.tbl tbody tr{cursor:default}.tbl tbody tr:hover{background:var(--hover)}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr.clickable{cursor:pointer}.tbl tbody tr.row-link{cursor:pointer;position:relative}.tbl tbody tr.row-link a.row-link-target:after{content:"";position:absolute;inset:0}.tbl tbody tr.row-link a:not(.row-link-target),.tbl tbody tr.row-link button{z-index:1;position:relative}.tbl td.num{font-variant-numeric:tabular-nums lining-nums;text-align:right;color:var(--ink);font-weight:500}.tbl th.num{text-align:right}.btn{border-radius:var(--r-pill);letter-spacing:.1px;white-space:nowrap;transition:background-color .15s var(--ease), color .15s var(--ease), opacity .15s var(--ease), transform .15s var(--ease);border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:12.5px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--ink);color:var(--canvas);border-color:#0000}.btn-primary:hover{opacity:.85}.btn-ghost{background:var(--paper-2);color:var(--ink);border-color:#0000}.btn-ghost:hover{background:var(--paper-3)}.btn-link{color:var(--ink-link);background:0 0;border-color:#0000;padding:8px 6px;font-weight:600;text-decoration:none}.btn-link:hover{text-underline-offset:3px;text-decoration:underline}.btn-danger{color:var(--ink-flag);background:#e23b4a1a;border-color:#0000}.btn-danger:hover{background:#e23b4a29}.btn-sm{padding:4px 11px;font-size:11.5px}.btn-lg{padding:12px 22px;font-size:14px}.pill{border-radius:var(--r-pill);text-transform:uppercase;letter-spacing:.5px;background:var(--paper-2);color:var(--ink-3);border:none;align-items:center;gap:5px;padding:2px 10px;font-size:10.5px;font-weight:600;line-height:1.6;display:inline-flex}.pill .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.pill-strong{background:var(--ink);color:var(--canvas)}.pill-flag{color:var(--ink-flag);background:#e23b4a1f}.cstd{letter-spacing:.3px;color:var(--ink-2);align-items:center;gap:6px;font-size:11px;font-weight:600;display:inline-flex}.cstd .glyph{border:1.5px solid var(--ink-2);border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block}.cstd-owned .glyph{background:var(--ink-2)}.cstd-consign .glyph{background:var(--paper);border-style:dashed}.cstd-transit .glyph{background:var(--paper);border-radius:50%}.cstd-reserved .glyph{background:var(--ink-2);border-radius:50%}.cstd-sold .glyph{border-color:var(--ink-4);background:0 0}.cstd-grading .glyph{background:var(--paper);transform:rotate(45deg)}.input{background:var(--paper-2);border-radius:var(--r-input);width:100%;color:var(--ink);transition:border-color .15s var(--ease), background-color .15s var(--ease);border:1.5px solid #0000;padding:9px 13px;font-size:13px}.input:focus{border-color:var(--accent);background:var(--paper);box-shadow:none}.input::placeholder{color:var(--ink-4);font-style:normal}.input.lg{padding:12px 15px;font-size:14px}.tabs{border-bottom:1px solid var(--rule);background:0 0;align-items:center;gap:6px;padding:0 12px;display:flex}.tab{color:var(--ink-3);border-radius:var(--r-pill);cursor:pointer;transition:background-color .15s var(--ease), color .15s var(--ease);border-bottom:none;margin:9px 0;padding:5px 13px;font-size:12.5px;font-weight:500}.tab:hover{background:var(--hover);color:var(--ink)}.tab.active{color:var(--canvas);background:var(--ink);font-weight:600}.page-hd,.page-bd{width:100%;max-width:1440px;margin-left:auto;margin-right:auto}.page-hd{background:var(--canvas);border-bottom:none;align-items:center;gap:16px;padding:22px 24px 16px;display:flex}.page-hd .crumb{color:var(--ink-4);letter-spacing:.8px;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:600}.page-hd h1{letter-spacing:-.5px;color:var(--ink);font-size:24px;font-weight:500;font-family:var(--font-display);margin:0}.page-hd .sub{color:var(--ink-3);margin-top:3px;font-size:12.5px}.page-hd .actions{gap:8px;margin-left:auto;display:flex}.page-bd{padding:6px 24px 24px}.stat{background:var(--paper);border-radius:var(--r-card);box-shadow:var(--shadow-sm);border:none;padding:16px 18px}.stat-label{color:var(--ink-3);text-transform:none;letter-spacing:.1px;margin-bottom:7px;font-size:11px;font-weight:500}.stat-val{color:var(--ink);font-size:26px;font-weight:500;font-family:var(--font-display);font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.5px;line-height:1.1}.stat-delta{color:var(--ink-3);font-variant-numeric:tabular-nums;margin-top:5px;font-size:11.5px;font-weight:500}.stat-delta.flag{color:var(--ink-flag)}.empty{color:var(--ink-3);text-align:center;border:1px dashed var(--rule-dash);background:var(--paper-2);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:18px 20px;display:flex}.placeholder{border:1px dashed var(--rule-dash);background:var(--paper-2);color:var(--ink-3);text-align:center;border-radius:10px;padding:16px;font-size:11px;font-style:italic}.stub{background:repeating-linear-gradient(135deg, var(--paper-2) 0 6px, var(--paper-3) 6px 12px);color:var(--ink-3);letter-spacing:.3px;text-transform:uppercase;border:none;border-radius:10px;place-items:center;font-size:11px;font-weight:600;display:grid}.stub-card{background:var(--paper-3);color:var(--ink-3);font-variant-numeric:tabular-nums;text-transform:uppercase;letter-spacing:.4px;border:none;border-radius:8px;place-items:center;font-size:9.5px;display:grid}.scrim{z-index:50;background:#00000073;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cmdbox{background:var(--paper);border:1.5px solid var(--rule);border-radius:var(--r-pill);max-width:520px;transition:border-color .15s var(--ease), background-color .15s var(--ease);flex:1;align-items:center;gap:10px;padding:8px 14px;display:flex}.cmdbox input{color:var(--ink)}.cmdbox:focus-within{border-color:var(--accent);background:var(--paper)}.cmdbox input{flex:1}.cmdbox input::placeholder{color:var(--ink-3)}.gsearch{flex:0 560px;min-width:200px;position:relative}@media (min-width:1360px){.topbar{position:relative}.gsearch{flex:none;width:min(560px,100% - 1040px);position:absolute;left:50%;transform:translate(-50%)}}.gsearch .cmdbox{border-radius:var(--r-pill);width:100%;max-width:none}.gs-pop{z-index:60;background:var(--paper);border:1px solid var(--rule);box-shadow:var(--shadow-pop);border-radius:20px;max-height:min(72vh,560px);padding:8px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto}.gs-sec{letter-spacing:.8px;text-transform:uppercase;color:var(--ink-4);padding:8px 10px 3px;font-size:10px;font-weight:600}.gs-row{cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:7px 10px;display:flex}.gs-row.active{background:var(--hover)}.gs-row .gs-main{flex:1;min-width:0}.gs-row .gs-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.gs-row .gs-sub{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.gs-row .gs-meta{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:12px}.gs-ic{background:var(--paper-2);width:32px;height:32px;color:var(--ink-3);border-radius:50%;flex:none;place-items:center;display:grid}.gs-empty{color:var(--ink-3);text-align:center;padding:16px 12px;font-size:12.5px}.gs-foot{border-top:1px solid var(--rule);color:var(--ink-3);justify-content:space-between;align-items:center;gap:12px;margin-top:4px;padding:10px 10px 4px;font-size:11px;display:flex}.gs-foot .kbd{margin:0 1px}.split-3-1{grid-template-columns:minmax(0,3fr) 360px;gap:16px;display:grid}.split-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.split-1-1{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.fin-bar-cell .fin-bar-val{z-index:2;white-space:nowrap;color:var(--canvas);background:var(--ink);border-radius:var(--r-pill);box-shadow:none;pointer-events:none;opacity:0;transition:opacity .12s var(--ease);border:none;padding:2px 7px;font-size:10px;position:absolute;left:50%;transform:translate(-50%,-5px)}.fin-bar-cell:hover .fin-bar-val{opacity:1}@media (max-width:1180px){.app{grid-template-columns:200px 1fr}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.split-3-1,.split-2-1{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}}@media (max-width:940px){.app{grid-template-columns:180px 1fr}.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.split-3-1,.split-2-1,.split-1-1{grid-template-columns:1fr}.page-bd{padding-left:16px;padding-right:16px}}@media (max-width:620px){.grid-4,.grid-3{grid-template-columns:1fr}}.cardthumb{background:var(--paper-3);width:34px;height:48px;color:var(--ink-3);letter-spacing:.3px;border:none;border-radius:4px;flex-shrink:0;place-items:center;font-size:8.5px;display:grid;overflow:hidden}.cardthumb img{object-fit:cover;width:100%;height:100%}.cardthumb.lg{border-radius:6px;width:56px;height:78px;font-size:9.5px}.cardthumb.xl{border-radius:8px;width:96px;height:134px;font-size:11px}.row{align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:4px;display:flex}.muted{color:var(--ink-3)}.ink{color:var(--ink)}.flag{color:var(--ink-flag)}.link{color:var(--ink-link);cursor:pointer;font-weight:500;text-decoration:none}.link:hover{text-underline-offset:3px;text-decoration:underline}.num-mono{font-variant-numeric:tabular-nums lining-nums}.hr{background:var(--rule);height:1px}.kbd{font-family:var(--font-mono);background:var(--paper-2);color:var(--ink-3);border:none;border-radius:6px;padding:1px 6px;font-size:10px}.annot{color:var(--ink-3);letter-spacing:.2px;font-size:10.5px;font-style:italic}.login-wrap{background:var(--canvas);place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow:auto}.login-card{background:var(--paper);width:100%;max-width:380px;box-shadow:var(--shadow-pop);border:none;border-radius:24px;padding:32px}.login-card h1{letter-spacing:-.4px;color:var(--ink);font-size:22px;font-weight:500;font-family:var(--font-display);margin:0 0 4px}.login-card .sub{color:var(--ink-3);margin-bottom:20px;font-size:13px}.login-card label{color:var(--ink-3);text-transform:none;letter-spacing:.1px;margin:14px 0 6px;font-size:11.5px;font-weight:500;display:block}.login-card .err{color:var(--ink-flag);background:#e23b4a1a;border:none;border-radius:12px;margin-top:14px;padding:10px 13px;font-size:12px}.login-card .btn-primary{justify-content:center;width:100%;margin-top:20px}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}@media (max-width:1180px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.kpi-grid{grid-template-columns:1fr}}@keyframes skel-pulse{0%,to{opacity:.5}50%{opacity:.85}}.skel{background:var(--paper-3);border-radius:10px;animation:1.1s ease-in-out infinite skel-pulse}.skel-line{background:var(--paper-3);border-radius:6px;height:11px;animation:1.1s ease-in-out infinite skel-pulse}.src-sum{list-style:none}.src-sum::-webkit-details-marker{display:none}.src-chev{transition:transform .15s var(--ease);display:inline-block}details[open]>.src-sum .src-chev{transform:rotate(90deg)}.cardx{align-items:flex-start;gap:16px;display:flex}.cardx-art{flex-direction:column;flex-shrink:0;gap:14px;width:clamp(260px,22vw,340px);display:flex}.cardx-grid{flex:1;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"t1 t2""ct ct""ph rs";align-items:start;gap:14px;min-width:0;display:grid}@media (max-width:1024px){.cardx{flex-direction:column}.cardx-art{width:100%}.cardx-grid{grid-template-columns:1fr;grid-template-areas:"t1""t2""ct""ph""rs"}}.board{grid-template-columns:repeat(4,minmax(230px,1fr));align-items:start;gap:14px;display:grid}@media (max-width:1100px){.board{grid-template-columns:repeat(2,minmax(230px,1fr))}}@media (max-width:620px){.board{grid-template-columns:1fr}}.board-col{background:var(--paper-3);border-radius:var(--r-card);transition:background-color .15s var(--ease);padding:8px}.board-col.drop-target{background:var(--ink-link-soft)}.board-col-hd{justify-content:space-between;align-items:center;padding:6px 8px 8px;display:flex}.board-col-title{color:var(--ink);font-size:12.5px;font-weight:600;font-family:var(--font-display)}.board-col-bd{flex-direction:column;gap:8px;min-height:40px;display:flex}.bcard{background:var(--paper);box-shadow:var(--shadow-sm);cursor:grab;transition:box-shadow .15s var(--ease), opacity .15s var(--ease);border-radius:12px;padding:10px 12px}.bcard:hover{box-shadow:var(--shadow-pop)}.bcard.dragging{opacity:.4}.bcard.drop-before{box-shadow:0 -6px 0 -4px var(--accent)}.bcard-title{color:var(--ink);font-size:13px;font-weight:600;line-height:1.35}.bcard-desc{color:var(--ink-3);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:3px;font-size:11.5px;display:-webkit-box;overflow:hidden}.bcard-meta{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.bcard-due{border-radius:var(--r-pill);background:var(--paper-2);color:var(--ink-3);font-variant-numeric:tabular-nums;padding:2px 8px;font-size:10.5px;font-weight:600}.bcard-due.overdue{color:var(--ink-flag);background:#e23b4a1f}.bcard-avatar{background:var(--ink);width:24px;height:24px;color:var(--canvas);letter-spacing:.3px;border-radius:50%;flex-shrink:0;place-items:center;margin-left:auto;font-size:9.5px;font-weight:700;display:grid}.board-add{color:var(--ink-3);transition:background-color .15s var(--ease), color .15s var(--ease);border-radius:10px;align-items:center;gap:6px;padding:8px 10px;font-size:12px;font-weight:500;display:flex}.board-add:hover{background:var(--hover);color:var(--ink)}.board-dialog{background:var(--paper);width:min(440px,100vw - 32px);box-shadow:var(--shadow-pop);border-radius:20px;padding:20px}.board-label{color:var(--ink-3);margin:12px 0 5px;font-size:11px;font-weight:500;display:block}.related-track{scrollbar-width:none;scroll-snap-type:x proximity}.related-track::-webkit-scrollbar{display:none}.carousel-arrow{z-index:2;border-radius:var(--r-pill);background:var(--paper);border:1px solid var(--rule);width:32px;height:32px;box-shadow:var(--shadow-pop);color:var(--ink-2);cursor:pointer;place-items:center;display:grid;position:absolute;top:67px;transform:translateY(-50%)}.carousel-arrow:hover{background:var(--paper-2)}
