:root,[data-theme=nord-light]{--bg-0:#e8e9e5;--bg-1:#fff;--bg-2:#edeee9;--bg-3:#dde0da;--bg-inset:#f4f3ec;--line:#d7d9d1;--line-soft:#e7e8e1;--line-strong:#c5c8bd;--tx-0:#2e3440;--tx-1:#3b4252;--tx-2:#586073;--tx-3:#8993a5;--accent:#5e81ac;--accent-ink:#456395;--forge:#3d556f;--bronze:#8a6a2f;--amber:#b5851f;--amber-dim:#d8c188;--mustard:#a1841c;--labor-override:#c8a800;--cyan:#2c7a88;--green:#4f7034;--red:#9d3b41;--violet:#8a5a82;--blue:#4c6f9a;--labor:#b0692a;--sel:#e4ebf4;--hover:#eef3f9;--zebra:#f5f7fb;--band:#e9eef6;--cat:#edf1f7;--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "Cascadia Code", "JetBrains Mono", Consolas, monospace;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", P052, Constantia, Georgia, serif;--r:3px;--row-h:32px;--gutter:24px}[data-theme=nord-dark]{--bg-0:#2e3440;--bg-1:#3b4252;--bg-2:#434c5e;--bg-3:#4c566a;--bg-inset:#272b33;--line:#4c566a;--line-soft:#3b4252;--line-strong:#5c667b;--tx-0:#eceff4;--tx-1:#d8dee9;--tx-2:#9aa4b5;--tx-3:#79849a;--accent:#5e81ac;--accent-ink:#81a1c1;--forge:#e5e9f0;--bronze:#c9a66b;--amber:#ebcb8b;--amber-dim:#a88a4e;--mustard:#ebcb8b;--labor-override:#eaff3a;--cyan:#88c0d0;--green:#a3be8c;--red:#bf616a;--violet:#b48ead;--blue:#81a1c1;--labor:#d08770;--sel:#81a1c12e;--hover:#eceff40d;--zebra:#eceff406;--band:#363d4d;--cat:#3a4252}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-0);color:var(--tx-0);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:13px;line-height:1.45}::selection{background:#5e81ac38}*{scrollbar-width:thin;scrollbar-color:#c4cddb transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-thumb{border:2px solid var(--bg-0);background:#c4cddb;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#b0bbcd}a{color:var(--blue);text-decoration:none}.app{grid-template:"topbar"48px"main"1fr"status"26px/1fr;height:100vh;display:grid;overflow:hidden}.navtab.close-job{color:var(--accent-ink);font-weight:600}.navtab.close-job svg{color:var(--green)}.navtab.close-job:hover{background:var(--sel)}.owner-badge{border:1px solid var(--bronze);background:var(--bg-1);height:28px;color:var(--forge);letter-spacing:.01em;white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:default;border-radius:999px;flex:none;align-items:center;gap:8px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex;box-shadow:0 1px 2px #2e344014,inset 0 1px #ffffff73}.owner-badge svg{width:15px;height:15px;color:var(--bronze);flex:none}.owner-badge .ob-role{text-transform:uppercase;letter-spacing:.07em;font-size:11px}.owner-badge .ob-email{color:var(--tx-2);text-overflow:ellipsis;border-left:1px solid var(--line-strong);max-width:190px;margin-left:1px;padding-left:8px;font-size:11.5px;font-weight:500;overflow:hidden}@media (width<=980px){.owner-badge .ob-email{display:none}}.section-scrim{z-index:60;position:fixed;inset:0}.section-menu{z-index:61;background:var(--bg-1);border:1px solid var(--line-strong);border-radius:8px;flex-direction:column;gap:1px;min-width:210px;padding:5px;display:flex;position:absolute;top:calc(100% + 5px);left:0;box-shadow:0 14px 36px #2e344042}.section-item{text-align:left;width:100%;color:var(--tx-1);cursor:pointer;border-radius:var(--r);background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.section-item svg{width:16px;height:16px;color:var(--tx-2);flex:none}.section-item:hover{background:var(--bg-2);color:var(--tx-0)}.section-item.on{background:var(--sel);color:var(--accent-ink);font-weight:600}.section-item.on svg{color:var(--accent)}.section-item .badge{margin-left:auto}.topbar-sheet{align-items:center;gap:8px;min-width:0;max-width:50%;display:flex;position:absolute;left:50%;transform:translate(-50%)}.topbar-sheet .t-no{flex:none;font-weight:700}.topbar-sheet .t-title{color:var(--tx-2);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12.5px;overflow:hidden}.global-menu{flex:none;align-items:center;display:flex;position:relative}.global-menu .menu-btn{padding:0 9px}.global-menu .menu-btn svg{color:var(--tx-1)}.global-menu .menu-btn:hover svg,.global-menu .menu-btn.open svg{color:var(--tx-0)}.section-menu.right{left:auto;right:0}.job-nav{z-index:30;background:var(--bg-1);border-bottom:1px solid var(--line);flex:none;align-items:stretch;gap:2px;height:36px;padding:0 10px;display:flex;position:sticky;top:0}.job-nav .jn-tab{cursor:pointer;white-space:nowrap;color:var(--tx-1);letter-spacing:.07em;text-transform:uppercase;background:0 0;border:2px solid #0000;border-left:none;border-right:none;align-items:center;gap:6px;padding:0 13px;font-size:11.5px;font-weight:700;display:inline-flex}.job-nav .jn-tab:hover{background:var(--bg-2);color:var(--tx-0)}.job-nav .jn-tab.on{color:var(--accent-ink);border-bottom-color:var(--accent)}.job-nav .jn-tab svg{opacity:.7}.job-nav .jn-more{align-items:stretch;display:flex;position:relative}.job-nav~.takeoff{height:calc(100vh - 110px)}.dev-bar{z-index:30;background:var(--bg-1);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:12px;height:44px;padding:0 12px;display:flex;position:sticky;top:0;box-shadow:inset 0 2px #b5893f8c}.dev-tag{letter-spacing:.07em;text-transform:uppercase;color:#b5893f;background:#b5893f1a;border:1px solid #b5893f66;border-radius:6px;flex:none;align-items:center;gap:6px;padding:3px 9px;font-size:10.5px;font-weight:800;display:inline-flex}.dev-tabs{align-items:center;gap:3px;min-width:0;display:flex;overflow-x:auto}.dev-tab{white-space:nowrap;cursor:pointer;height:30px;color:var(--tx-1);background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:7px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.dev-tab svg{width:15px;height:15px;color:var(--tx-2);flex:none}.dev-tab:hover{background:var(--bg-2);color:var(--tx-0)}.dev-tab.on{background:var(--bg-2);color:var(--accent);border-color:var(--line-strong)}.dev-tab.on svg{color:var(--accent)}.navtab.dev-enter,.navtab.dev-enter svg{color:#b5893f}.topbar{background:var(--bg-1);border-bottom:1px solid var(--line);z-index:45;grid-area:topbar;align-items:center;gap:12px;padding:0 12px;display:flex;position:relative}.brand-inline{flex:none;align-items:center;gap:9px;padding-right:6px;display:flex}.brand-inline .mark{background:linear-gradient(165deg, #6b8cb6 0%, var(--accent) 45%, var(--forge) 100%);color:#fff;border-radius:2px;place-items:center;width:24px;height:24px;display:grid;box-shadow:inset 0 1px #ffffff47,inset 0 -1px #2d34404d,0 1px 1px #2d34402e}.brand-inline .mark svg{filter:drop-shadow(0 1px #2d344059);width:15px;height:15px}.brand-inline .name{font-family:var(--font-display);letter-spacing:.13em;color:var(--tx-1);text-shadow:0 1px #fff9;font-size:22px;font-weight:600}.brand-inline .name b{color:var(--forge);font-weight:700}.navtab{border-radius:var(--r);height:32px;color:var(--tx-1);font-size:13px;font-family:var(--font-ui);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:none;align-items:center;gap:7px;padding:0 12px;display:flex}.navtab:hover{background:var(--bg-2);color:var(--tx-0)}.navtab.on{background:var(--sel);color:var(--accent-ink);font-weight:600}.navtab svg{width:15px;height:15px;color:var(--tx-2)}.navtab.on svg{color:var(--accent)}.navtab .badge{font-family:var(--font-mono);color:var(--tx-1);background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:0 6px;font-size:10px}.topbar .spacer{flex:1}kbd{font-family:var(--font-mono);color:var(--tx-1);background:var(--bg-2);border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:3px;padding:1px 5px;font-size:10px}.main{background:var(--bg-0);grid-area:main;min-width:0;min-height:0;overflow:auto}.page{padding:18px var(--gutter) 40px;max-width:1640px}.page.jobs-page{margin-left:auto;margin-right:auto}.page.lib-page{max-width:none}.statusbar{background:var(--bg-1);border-top:1px solid var(--line);font-family:var(--font-mono);color:var(--tx-2);grid-area:status;align-items:center;gap:16px;padding:0 12px;font-size:11px;display:flex}.statusbar .seg{align-items:center;gap:6px;display:flex}.statusbar .seg.job{color:var(--tx-0);font-weight:600}.statusbar .spacer{flex:1}.dot{background:var(--tx-3);border-radius:50%;width:7px;height:7px}.dot.ok{background:var(--green)}.dot.warn{background:var(--amber)}.dot.err{background:var(--red)}.rail-resize{cursor:col-resize;background:0 0;flex:none;width:5px;transition:background .1s}.rail-resize:hover,.rail-resize.dragging{background:var(--accent);opacity:.5}.page-head{border-bottom:1px solid var(--line);align-items:flex-end;gap:16px;margin-bottom:18px;padding-bottom:13px;display:flex;position:relative}.page-head:after{content:"";background:var(--bronze);opacity:.85;width:46px;height:2px;position:absolute;bottom:-1px;left:0}.page-head .titles h1{font-family:var(--font-display);letter-spacing:.005em;color:var(--forge);text-shadow:0 1px #ffffffb3;margin:0;font-size:22px;font-weight:600}.page-head .titles p{color:var(--tx-2);margin:5px 0 0;font-size:12.5px}.page-head .actions{gap:8px;margin-left:auto;display:flex}.btn{background:var(--bg-1);border:1px solid var(--line-strong);height:30px;color:var(--tx-0);border-radius:var(--r);cursor:pointer;align-items:center;gap:7px;padding:0 13px;font-size:12.5px;font-weight:500;display:inline-flex}.btn:hover{background:var(--bg-2);border-color:#b0bbcd}.btn svg{width:14px;height:14px}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.btn.primary:hover{background:#54739c}.btn.ghost{color:var(--tx-1);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--bg-2);color:var(--tx-0)}.btn:disabled{opacity:.5;cursor:not-allowed}.toolbar{align-items:center;gap:8px;margin-bottom:12px;display:flex}.seg-group{border:1px solid var(--line-strong);border-radius:var(--r);display:flex;overflow:hidden}.seg-group button{background:var(--bg-1);height:30px;color:var(--tx-1);cursor:pointer;border:none;border-right:1px solid var(--line-strong);padding:0 13px;font-size:12.5px}.seg-group button:last-child{border-right:none}.seg-group button.on{background:var(--accent);color:#fff;font-weight:600}.grow{flex:1}.input{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--r);height:30px;color:var(--tx-0);font-size:12.5px;font-family:var(--font-ui);padding:0 11px}.input::placeholder{color:var(--tx-3)}.input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5e81ac26}.panel{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r)}.panel>.panel-head{border-bottom:1px solid var(--line);background:var(--bg-2);align-items:center;gap:10px;height:38px;padding:0 13px;display:flex}.panel>.panel-head h3{letter-spacing:.02em;margin:0;font-size:12.5px;font-weight:600}.panel>.panel-head .sub{color:var(--tx-2);font-size:11px;font-family:var(--font-mono)}.panel>.panel-head .right{align-items:center;gap:8px;margin-left:auto;display:flex}.panel-body{padding:13px}.ledger{background:var(--bg-inset);border-top:2px solid var(--bronze);border-bottom:1px solid var(--line-strong);align-items:stretch;margin-bottom:14px;display:flex;box-shadow:inset 0 1px #fff9}.led-stat{text-align:left;border:none;border-right:1px solid var(--line);cursor:pointer;min-width:0;font-family:var(--font-ui);background:0 0;flex-direction:column;flex:1;gap:4px;padding:12px 18px;transition:background .1s;display:flex;position:relative}.led-stat:last-child{border-right:none}.led-stat:hover{background:#ffffff8c}.led-stat.on{background:var(--bg-1)}.led-stat.on:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:-1px;left:0;right:0}.led-val{font-family:var(--font-mono);letter-spacing:-.01em;color:var(--tx-0);font-size:26px;font-weight:700;line-height:1}.led-lbl{letter-spacing:.12em;text-transform:uppercase;color:var(--tx-2);margin-top:4px;font-size:10px}.led-ctx{font-family:var(--font-mono);color:var(--tx-3);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.led-stat.green .led-val{color:var(--green)}.led-stat.amber .led-val{color:var(--amber)}.led-stat.red .led-val{color:var(--red)}.led-stat.red .led-ctx{color:var(--red);font-weight:700}.led-stat.accent .led-val{color:var(--accent-ink)}.led-stat.cyan .led-val{color:var(--cyan)}@media (width<=900px){.ledger{flex-wrap:wrap}.led-stat{flex:50%}.led-stat:nth-child(2){border-right:none}}.dash-main{grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);gap:12px;margin-bottom:12px;display:grid}.dash-row{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;display:grid}@media (width<=1180px){.dash-main,.dash-row{grid-template-columns:1fr}}.view-switch{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.dash-split{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) 320px;align-items:stretch;gap:12px;min-height:calc(100vh - 360px);margin-bottom:16px;display:grid}.dash-split>.panel{flex-direction:column;min-height:0;display:flex}.dash-split>.panel>.panel-head{flex:none}.dash-side{flex-direction:column;gap:12px;min-width:0;min-height:0;display:flex}.dash-side>.panel{min-height:0}.dash-side>.panel:first-child{flex:none}.dash-side>.panel:last-child{flex-direction:column;flex:auto;display:flex;overflow:hidden}.dash-side>.panel:last-child>.panel-head{flex:none}.dash-side>.panel:last-child>.feed{flex:auto;min-height:0;overflow-y:auto}@media (width<=1180px){.dash-split{grid-template-rows:none;grid-template-columns:1fr;align-items:start;min-height:0}.dash-side,.dash-side>.panel:last-child{min-height:auto;overflow:visible}.dash-side>.panel:last-child>.feed{overflow-y:visible}.cal-grid{grid-auto-rows:minmax(80px,auto);overflow:visible}}.panel-soon{letter-spacing:.08em;text-transform:uppercase;color:var(--tx-3);border:1px solid var(--line);background:var(--bg-1);cursor:default;border-radius:8px;padding:2px 9px;font-size:10px;font-weight:700}.seg-group.sm button{height:25px;padding:0 12px;font-size:12px}.cal{flex-direction:column;flex:auto;min-height:0;padding:0;display:flex}.cal-nav-group{align-items:center;gap:6px;display:flex}.cal-title{font-family:var(--font-display);color:var(--forge);text-align:center;white-space:nowrap;min-width:118px;font-size:13.5px;font-weight:600}.cal-nav{border:1px solid var(--line-strong);background:var(--bg-1);border-radius:var(--r);cursor:pointer;width:22px;height:22px;color:var(--tx-1);flex:none;place-items:center;display:grid}.cal-nav:hover{background:var(--bg-2)}.cal-nav svg{width:13px;height:13px}.cal-grid{background:var(--line-soft);border:none;border-radius:0;flex:auto;grid-template-rows:auto;grid-template-columns:repeat(5,1fr);grid-auto-rows:1fr;gap:1px;min-height:0;display:grid;overflow:auto}.cal-dow{background:var(--bg-2);text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--tx-2);padding:5px 0;font-size:10px;font-weight:600}.cal-cell{background:var(--bg-1);flex-direction:column;gap:2px;min-height:56px;padding:4px 5px;display:flex;overflow:hidden}.cal-cell.out{background:var(--bg-inset)}.cal-cell.out .cal-num{color:var(--tx-3)}.cal-cell.today{box-shadow:inset 0 0 0 2px var(--accent)}.cal-num{font-family:var(--font-mono);color:var(--tx-2);align-self:flex-end;font-size:11px}.cal-cell.today .cal-num{color:var(--accent-ink);font-weight:700}.cal-bid{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:3px;align-items:center;gap:5px;width:100%;padding:1px 4px;display:flex}.cal-bid:hover{background:var(--bg-2)}.cdot{background:var(--tx-3);border-radius:50%;flex:none;width:6px;height:6px}.cal-bid .cnm{color:var(--tx-1);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.cal-more{color:var(--tx-3);font-size:10px;font-family:var(--font-mono);padding-left:4px}.cal-weekend{border-top:1px dashed var(--line-strong);flex-wrap:wrap;flex:none;align-items:center;gap:6px;padding:8px 12px;display:flex}.cal-weekend .cw-lbl{letter-spacing:.06em;text-transform:uppercase;color:var(--tx-2);font-size:10px;font-weight:600}.cal-weekend .cal-bid{border:1px solid var(--line);gap:6px;width:auto;padding:2px 6px}.cal-weekend .cw-date{font-family:var(--font-mono);color:var(--tx-3);font-size:10px}.cdot.green{background:var(--green)}.cdot.amber{background:var(--amber)}.cdot.cyan{background:var(--cyan)}.cdot.red{background:var(--red)}.cdot.violet{background:var(--violet)}.cdot.blue{background:var(--blue)}.agenda-empty{color:var(--tx-2);justify-content:center;align-items:center;gap:9px;padding:26px 14px;font-size:12.5px;display:flex}.agenda-empty svg{width:16px;height:16px;color:var(--tx-3)}.funnel{flex-direction:column;gap:8px;padding:12px 13px;display:flex}.fn-row{cursor:pointer;font-family:var(--font-ui);background:0 0;border:none;grid-template-columns:78px 1fr auto;align-items:center;gap:10px;padding:0;display:grid}.fn-name{color:var(--tx-1);text-align:left;font-size:12px}.fn-row:hover .fn-name{color:var(--accent-ink)}.fn-track{background:var(--bg-2);border:1px solid var(--line);border-radius:3px;height:16px;overflow:hidden}.fn-fill{background:var(--tx-3);opacity:.85;border-radius:2px;height:100%;display:block}.fn-fill.green{background:var(--green)}.fn-fill.amber{background:var(--amber)}.fn-fill.cyan{background:var(--cyan)}.fn-fill.red{background:var(--red)}.fn-fill.blue{background:var(--blue)}.fn-fill.violet{background:var(--violet)}.fn-fill.slate{background:var(--tx-2)}.fn-meta{font-family:var(--font-mono);color:var(--tx-2);white-space:nowrap;font-size:11px}.fn-meta b{color:var(--tx-0)}.feed{flex-direction:column;padding:4px 12px;display:flex}.fd-row{text-align:left;border:none;border-bottom:1px solid var(--line-soft);cursor:pointer;width:100%;font-family:var(--font-ui);background:0 0;align-items:center;gap:9px;padding:7px 0;display:flex}.fd-row:last-child{border-bottom:none}.fd-row:hover .fd-txt{color:var(--tx-0)}.fd-dot{background:var(--accent);border-radius:50%;flex:none;width:6px;height:6px}.fd-txt{min-width:0;color:var(--tx-1);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.fd-txt b{color:var(--tx-0);font-weight:600}.fd-when{font-family:var(--font-mono);color:var(--tx-3);flex:none;font-size:10.5px}.pending{font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--tx-3);font-size:10px;font-weight:600}.home-welcome{text-align:center;place-items:center;padding:56px 40px;display:grid}.home-welcome .hw-mark{background:var(--bg-2);width:54px;height:54px;color:var(--accent);border-radius:12px;place-items:center;margin-bottom:16px;display:grid}.home-welcome .hw-mark svg{width:27px;height:27px}.home-welcome h2{font-family:var(--font-display);color:var(--forge);margin:0 0 8px;font-size:20px;font-weight:600}.home-welcome p{color:var(--tx-2);max-width:420px;margin:0 0 18px;line-height:1.6}.stats{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:11px;margin-bottom:18px;display:grid}.stat{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r);padding:13px 15px}.stat .k{letter-spacing:.12em;text-transform:uppercase;color:var(--tx-2);font-size:10px}.stat .v{font-family:var(--font-mono);color:var(--tx-0);margin-top:6px;font-size:23px;font-weight:700}.stat .v small{color:var(--tx-2);font-size:12px;font-weight:400}.stat.accent .v{color:var(--amber)}.stat.cyan .v{color:var(--cyan)}.stat.green .v{color:var(--green)}.stat .delta{color:var(--tx-2);font-size:11px;font-family:var(--font-mono);margin-top:4px}.tbl-wrap{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-1);overflow:auto}table.tbl{border-collapse:collapse;width:100%;font-size:13px}table.tbl thead th{z-index:1;background:var(--bg-2);text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-2);border-bottom:2px solid var(--line-strong);white-space:nowrap;padding:9px 12px;font-size:10.5px;font-weight:600;position:sticky;top:0}table.tbl thead th.num{text-align:right}table.tbl tbody td{height:var(--row-h);border-bottom:1px solid var(--line-soft);color:var(--tx-0);white-space:nowrap;vertical-align:middle;padding:0 12px}table.tbl tbody tr.grp-header td{background:var(--cat);border-top:2px solid var(--line-strong);box-shadow:inset 3px 0 0 var(--accent);cursor:pointer;-webkit-user-select:none;user-select:none}table.tbl tbody tr.grp-header:hover td{background:var(--sel)}table.tbl tbody tr:hover td{background:var(--hover)}table.tbl.zebra tbody tr:nth-child(2n) td{background:var(--zebra)}table.tbl.zebra tbody tr:hover td{background:var(--hover)}table.tbl.compact tbody td{height:26px;padding:0 8px;font-size:12.5px}table.tbl.compact thead th{padding:4px 8px}table.tbl.compact tbody td .btn{height:21px;padding:0 8px;font-size:11.5px}table.tbl th.sep,table.tbl td.sep{border-left:1px solid var(--line)}table.tbl.grid thead th,table.tbl.grid tbody td,table.tbl.grid tfoot td{border-right:1px solid var(--line)}table.tbl.grid thead th:last-child,table.tbl.grid tbody td:last-child,table.tbl.grid tfoot td:last-child{border-right:none}table.tbl.grid th.sep,table.tbl.grid td.sep{border-left:2px solid var(--line-strong)}.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.num.qty{color:var(--cyan)}.num.money{color:var(--green)}.num.money.total{font-weight:700}.num.labor{color:var(--labor)}.num.labor.total{font-weight:700}.basis{text-align:center;min-width:20px;font-family:var(--font-mono);color:var(--tx-2);background:var(--bg-3);border:1px solid var(--line);border-radius:3px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}table.tbl td.edit{padding:0 4px}.ce{width:100%;height:26px;color:inherit;font:inherit;cursor:text;background:0 0;border:1px solid #0000;border-radius:3px;padding:0 7px;font-size:13px}.ce.num{text-align:right;font-family:var(--font-mono)}.ce.name{font-weight:600}.ce.money{color:var(--green)}.ce.labor{color:var(--labor)}.ce:hover{background:var(--bg-2);border-color:var(--line)}.ce:focus{border-color:var(--accent);cursor:text;background:#fff;outline:none;box-shadow:0 0 0 2px #5e81ac2e}select.ce{cursor:pointer;font-family:var(--font-mono);text-align:center;padding:0 2px;font-size:11px}.editable-hint{color:var(--accent-ink)}.unit{color:var(--tx-2);text-transform:none;font-size:11.5px}td.id,.cell-id{font-family:var(--font-mono);color:var(--tx-2);font-size:11px}.cell-name{color:var(--tx-0);font-weight:600}.mono{font-family:var(--font-mono)}.muted{color:var(--tx-2)}table.tbl tfoot td{background:var(--bg-2);border-top:2px solid var(--line-strong);font-family:var(--font-mono);padding:11px 12px;font-weight:700;position:sticky;bottom:0}tr.grp-row td{background:var(--band);border-bottom:1px solid var(--line-strong);border-top:1px solid var(--line-strong);height:30px}tr.grp-row:hover td{background:var(--band)}tr.cat-head td{background:var(--cat);border-top:2px solid var(--line-strong);border-bottom:1px solid var(--line);height:38px}tr.cat-head:first-child td{border-top:none}tr.cat-head:hover td{background:var(--cat)}tr.cat-head td.lead{border-left:3px solid var(--accent);padding-left:13px}.cat-name{color:var(--tx-0);align-items:center;gap:9px;font-size:13px;font-weight:700;display:inline-flex}.cat-name .swatch{border-radius:2px;flex:none;width:9px;height:9px}.cat-count{color:var(--tx-2);font-family:var(--font-mono);margin-left:13px;font-size:11px}.cat-share{vertical-align:middle;align-items:center;gap:8px;margin-left:16px;display:inline-flex}.cat-share .track{background:var(--bg-3);border-radius:3px;width:130px;height:6px;overflow:hidden}.cat-share .fill{opacity:.85;border-radius:3px;height:100%}.cat-share .pct{font-family:var(--font-mono);color:var(--tx-2);font-size:11px}.share{justify-content:flex-end;align-items:center;gap:8px;display:flex}.share .track{background:var(--bg-3);border-radius:3px;width:70px;height:6px;overflow:hidden}.share .fill{background:var(--green);opacity:.55;border-radius:3px;height:100%}.share .pct{font-family:var(--font-mono);color:var(--tx-2);text-align:right;width:38px;font-size:11px}.tag{letter-spacing:.04em;border:1px solid var(--line-strong);height:19px;color:var(--tx-1);background:var(--bg-2);text-transform:uppercase;border-radius:3px;align-items:center;gap:5px;padding:0 8px;font-size:10px;font-weight:700;display:inline-flex}.tag svg{width:11px;height:11px}.tag.amber{color:#8a6516;background:#f7efdb;border-color:#e0c98f}.tag.cyan{color:var(--cyan);background:#e2f1f3;border-color:#a9d2d9}.tag.green{color:var(--green);background:#e8f0df;border-color:#b6cda0}.tag.violet{color:var(--violet);background:#f3e7f0;border-color:#d4b9cf}.tag.blue{color:var(--blue);background:#e6edf6;border-color:#b3c4dc}.tag.red{color:var(--red);background:#f6e3e4;border-color:#e0adb1}.tag.slate{color:var(--tx-2);border-color:color-mix(in srgb, var(--tx-2) 35%, transparent);background:color-mix(in srgb, var(--tx-2) 12%, transparent)}.status-select{letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--line-strong);max-width:100%;height:19px;color:var(--tx-1);background:var(--bg-2);cursor:pointer;appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:right 7px center,right 4px center;background-repeat:no-repeat;background-size:3px 3px,3px 3px;border-radius:3px;padding:0 18px 0 8px;font-size:10px;font-weight:700}.status-select:hover:not(:disabled){border-color:var(--accent)}.status-select:disabled{opacity:.55;cursor:default}.status-select option{text-transform:none;color:var(--tx-0);background:var(--bg-1)}.status-select.amber{color:#8a6516;background-color:#f7efdb;border-color:#e0c98f}.status-select.cyan{color:var(--cyan);background-color:#e2f1f3;border-color:#a9d2d9}.status-select.green{color:var(--green);background-color:#e8f0df;border-color:#b6cda0}.status-select.violet{color:var(--violet);background-color:#f3e7f0;border-color:#d4b9cf}.status-select.blue{color:var(--blue);background-color:#e6edf6;border-color:#b3c4dc}.status-select.red{color:var(--red);background-color:#f6e3e4;border-color:#e0adb1}.status-select.slate{color:var(--tx-2);border-color:color-mix(in srgb, var(--tx-2) 35%, transparent);background-color:color-mix(in srgb, var(--tx-2) 12%, transparent)}.tabs{border-bottom:1px solid var(--line);gap:2px;margin-bottom:16px;display:flex}.tabs button{height:36px;color:var(--tx-2);cursor:pointer;background:0 0;border:none;padding:0 15px;font-size:12.5px;position:relative}.tabs button:hover{color:var(--tx-0)}.tabs button.on{color:var(--accent-ink);font-weight:600}.tabs button.on:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:-1px;left:8px;right:8px}.banner{border-radius:var(--r);color:var(--tx-1);background:#faf4e4;border:1px solid #e0c98f;align-items:center;gap:10px;margin-bottom:16px;padding:10px 13px;font-size:12.5px;display:flex}.banner svg{width:16px;height:16px;color:var(--amber);flex:none}.banner.info{background:#eaf1f8;border-color:#b3c4dc}.banner.info svg{color:var(--blue)}.banner b{color:var(--tx-0)}.empty{text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r);background:var(--bg-1);place-items:center;min-height:300px;padding:40px;display:grid}.empty .ico{width:42px;height:42px;color:var(--tx-3);margin-bottom:14px}.empty h3{font-family:var(--font-display);color:var(--forge);margin:0 0 6px;font-size:17px;font-weight:600}.empty p{color:var(--tx-2);max-width:470px;margin:0;line-height:1.6}.empty .phase{margin-top:16px}.split{gap:14px;display:grid}.split.c2{grid-template-columns:320px 1fr}.split.c3{grid-template-columns:250px 1fr 310px}.canvas-layout{grid-template-columns:260px 1fr 300px;gap:14px;height:calc(100vh - 110px);display:grid}.tree{font-size:12.5px}.tree .node{border-radius:var(--r);cursor:pointer;height:30px;color:var(--tx-1);white-space:nowrap;align-items:center;gap:8px;padding:0 8px;display:flex;position:relative;overflow:hidden}.tree .node>span:not(.meta):not(.sheetno){text-overflow:ellipsis;overflow:hidden}.tree .node:hover{background:var(--bg-2);color:var(--tx-0)}.tree .node.on{background:var(--sel);color:var(--accent-ink);font-weight:600}.tree .node .ic{width:15px;height:15px;color:var(--tx-2);flex:none}.tree .node.on .ic{color:var(--accent)}.tree .node .meta{font-family:var(--font-mono);color:var(--tx-3);margin-left:auto;font-size:10px}.tree .child{padding-left:32px}.tree .node .nm{cursor:pointer}.tree .node .twirl{width:14px;height:14px;color:var(--tx-3);cursor:pointer;border-radius:3px;flex:none;place-items:center;display:grid}.tree .node .twirl:hover{background:var(--bg-3);color:var(--tx-1)}.tree .node .twirl svg{width:11px;height:11px;transition:transform .12s;transform:rotate(-90deg)}.tree .node .twirl.open svg{transform:rotate(0)}.tree .node .nm{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.tree .node .ncount{font-family:var(--font-mono);color:var(--tx-1);background:var(--bg-2);border:1px solid var(--line);border-radius:8px;flex:none;margin-left:2px;padding:0 6px;font-size:10px}.tree .node:hover .ncount{background:var(--bg-3)}.tree .obj-row{height:24px;color:var(--tx-2);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:var(--r);align-items:center;gap:8px;padding:0 8px 0 36px;font-size:12px;display:flex;position:relative}.tree .obj-row.deep{padding-left:54px}.tree .obj-row.deep.has-anc{background-image:linear-gradient(var(--line), var(--line));background-position:20px 0;background-repeat:no-repeat;background-size:1px 100%}.tree .obj-row:hover{background-color:var(--bg-2)}.tree .obj-row:active{cursor:grabbing}.tree .obj-row.sel{background-color:var(--sel);color:var(--accent-ink);box-shadow:inset 2px 0 0 var(--accent)}.tree .obj-row.sel .obj-qty{color:var(--accent-ink)}.tree .obj-row .obj-key{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tree .obj-row .obj-qty{font-family:var(--font-mono);color:var(--accent-ink);flex:none;font-size:11px;font-weight:600}.nodes-tree .node .nm{color:var(--blue);font-weight:600}.nodes-tree .node.child .nm{color:var(--cyan)}.nodes-tree:not(.folder-rows) .node{background:var(--bg-2);border-bottom:1px solid var(--line)}.nodes-tree:not(.folder-rows) .node:hover{background:var(--bg-3)}.nodes-tree .obj-row .obj-key{color:var(--tx-1)}.nodes-tree .obj-row.sel .obj-key{color:var(--accent-ink)}.nodes-tree .obj-row{padding-left:44px}.nodes-tree .obj-row.deep{padding-left:62px}.nodes-tree .obj-row:after{width:19px}.tree .obj-row .obj-act{width:18px;height:18px;color:var(--mustard);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:none}.tree .obj-row:hover .obj-act{display:inline-flex}.tree .obj-row .obj-act:hover{background:var(--bg-3);color:color-mix(in srgb, var(--mustard) 75%, #fff)}.tree .obj-row:before,.tree .node.child:before{content:"";border-left:1px solid var(--line);position:absolute;top:0;bottom:0;left:20px}.tree .obj-row.deep:before{left:38px}.tree .obj-row:after,.tree .node.child:after{content:"";border-top:1px solid var(--line);width:11px;position:absolute;top:50%;left:20px}.tree .obj-row.deep:after{left:38px}.tree .obj-row.last:before{height:12px;bottom:auto}.tree .node.child.last-node:before{height:15px;bottom:auto}.nodes-tree .obj-row:before,.nodes-tree .node.child:before,.nodes-tree .obj-row:after,.nodes-tree .node.child:after{left:var(--rail,20px)}.tree .node .node-actions{flex:none;align-items:center;gap:4px;margin-left:6px;display:none;overflow:visible}.tree .node:hover .node-actions{display:flex}.tree:not(.nodes-tree) .node.child .node-actions{opacity:.5;display:flex}.tree:not(.nodes-tree) .node.child:hover .node-actions{opacity:1}.tree .node .node-actions button{white-space:nowrap;min-width:20px;height:20px;color:var(--tx-2);cursor:pointer;background:0 0;border:none;border-radius:3px;flex:none;place-items:center;padding:0 3px;display:grid}.tree .node .node-actions button:hover{background:var(--bg-3);color:var(--accent-ink)}.tree .node .node-actions button.danger:hover{color:var(--red);background:#bf616a24}.tree .node .node-actions svg{width:13px;height:13px}.nodes-tree .node .node-actions button{color:var(--accent-ink)}.nodes-tree .node .node-actions button:hover{background:var(--bg-3);color:var(--accent-ink)}.nodes-tree .node .node-actions button.danger{color:var(--red)}.nodes-tree .node .node-actions button.danger:hover{color:var(--red);background:#bf616a29}.tree .node[draggable=true]{cursor:grab}.tree .node.drop-target{background:var(--sel);outline:2px solid var(--accent);outline-offset:-2px}.tree .node.drop-before{box-shadow:inset 0 3px 0 -1px var(--accent)}.tree .node.drop-after{box-shadow:inset 0 -3px 0 -1px var(--accent)}.tree .node.viewing{background:var(--sel);color:var(--accent-ink);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.tree .node.viewing .ic,.tree .node.viewing .sheetno{color:var(--accent)}.tree .node.child.sel{background:var(--sel);box-shadow:inset 2px 0 0 var(--accent)}.tree .node.child.sel .sheetno{color:var(--accent-ink)}.tree .rev{cursor:pointer;height:26px;color:var(--tx-1);border-radius:var(--r);align-items:center;gap:8px;padding:0 8px 0 38px;display:flex}.tree .rev:hover{background:var(--bg-2)}.tree .rev.on{background:var(--sel);color:var(--accent-ink)}.tree .rev .rdot{border-radius:50%;flex:none;width:7px;height:7px}.tree .rev .lbl{font-size:12px}.tree .rev .cur{margin-left:auto}.tree .node .sheetno{width:calc(var(--sheetno-w,56px) + 2px);white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-mono);color:var(--accent-ink);flex:none;font-size:11px;font-weight:600;overflow:hidden}.tree .node .sheettitle{min-width:0;color:var(--tx-1);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.canvas{background:linear-gradient(var(--line-soft) 1px, transparent 1px) 0 0 / 100% 30px, linear-gradient(90deg, var(--line-soft) 1px, transparent 1px) 0 0 / 30px 100%, var(--bg-inset);border:1px solid var(--line);border-radius:var(--r);position:relative;overflow:hidden}.canvas .stamp{border:2px solid var(--accent);cursor:pointer;background:#5e81ac40;border-radius:2px;width:12px;height:12px;position:absolute;transform:translate(-50%,-50%)}.canvas .center-hint{color:var(--tx-3);pointer-events:none;text-align:center;place-items:center;font-size:12px;display:grid;position:absolute;inset:0}.props{font-size:12.5px}.prop{border-bottom:1px solid var(--line-soft);justify-content:space-between;gap:10px;padding:8px 0;display:flex}.prop .k{color:var(--tx-2)}.prop .v{color:var(--tx-0);font-family:var(--font-mono);text-align:right}.kv{grid-template-columns:160px 1fr;font-size:12.5px;display:grid}.kv .k{color:var(--tx-2);border-bottom:1px solid var(--line-soft);padding:9px 0}.kv .v{border-bottom:1px solid var(--line-soft);color:var(--tx-0);padding:9px 0}.field{margin-bottom:13px}.field label{color:var(--tx-2);letter-spacing:.03em;margin-bottom:5px;font-size:11px;display:block}.field input,.field select{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--r);width:100%;height:32px;color:var(--tx-0);padding:0 11px;font-size:12.5px}.field input:focus,.field select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5e81ac26}.loading{color:var(--tx-2);align-items:center;gap:10px;padding:24px;font-size:12.5px;display:flex}.spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:15px;height:15px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.tool-rail{flex-direction:column;gap:4px;display:flex}.tool-rail .tool{border-radius:var(--r);height:32px;color:var(--tx-1);cursor:pointer;align-items:center;gap:10px;padding:0 8px;font-size:12.5px;display:flex}.tool-rail .tool:hover{background:var(--bg-2);color:var(--tx-0)}.tool-rail .tool.on{background:var(--sel);color:var(--accent-ink);font-weight:600}.tool-rail .tool svg{width:16px;height:16px}.tool-rail .tool.on svg{color:var(--accent)}.tool-rail .tool kbd{margin-left:auto}.modal.ledger-modal{width:88vw;min-width:820px;max-width:1180px}.modal.ledger-modal .modal-head{height:50px}.modal.ledger-modal .modal-body.ledger-body{gap:16px;height:72vh;max-height:760px;padding:18px;display:flex;overflow:hidden}.ledger-col{flex-direction:column;flex:3 1 0;gap:12px;min-width:0;display:flex}.assign-browser{flex:3 1 0;min-width:0}.assign-tabs{flex:none;gap:4px;margin-bottom:8px;display:flex}.assign-tabs .atab{border:1px solid var(--line);background:var(--bg-1);letter-spacing:.04em;text-transform:uppercase;height:28px;color:var(--tx-2);cursor:pointer;border-radius:6px;flex:1;font-size:11px;font-weight:700}.assign-tabs .atab:hover{background:var(--bg-2)}.assign-tabs .atab.on{background:var(--accent);border-color:var(--accent);color:#fff}.ledger-wrap.drop-active{outline:2px dashed var(--accent);outline-offset:-2px}.ledger-left{background:var(--bg-inset);border:1px solid var(--line);border-radius:6px;flex-direction:column;flex:none;gap:12px;min-width:0;padding:16px;display:flex}.modal.ledger-modal .ledger-left .field{grid-template-columns:84px 1fr;align-items:center;gap:6px 10px;margin:0;display:grid}.modal.ledger-modal .ledger-left .field>span{letter-spacing:.05em;text-transform:uppercase;color:var(--tx-2);text-align:left;white-space:nowrap;font-size:10px;font-weight:700}.modal.ledger-modal .ledger-left .field input,.modal.ledger-modal .ledger-left .field select{width:100%;height:34px}.modal.ledger-modal .ledger-left .field.field-notes{flex:none;align-items:stretch}.modal.ledger-modal .ledger-left .field.field-notes>span{align-self:start;padding-top:9px}.modal.ledger-modal .ledger-left .field.field-notes textarea{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--r);width:100%;height:80px;min-height:80px;color:var(--tx-0);font:inherit;resize:none;padding:9px 11px;font-size:12.5px;line-height:1.55}.modal.ledger-modal .ledger-left .field input:focus,.modal.ledger-modal .ledger-left .field select:focus,.modal.ledger-modal .ledger-left .field textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5e81ac26}.linear-info-card{z-index:44;background:var(--bg-1);border:1px solid var(--line-strong);border-radius:10px;flex-direction:column;width:360px;display:flex;position:fixed;overflow:hidden;box-shadow:0 18px 48px #2e344052}.linear-info-card .lic-head{background:var(--accent);color:#fff;cursor:grab;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;font-size:13px;font-weight:700;display:flex}.linear-info-card .lic-head:active{cursor:grabbing}.linear-info-card .lic-head .x{cursor:pointer;opacity:.9;display:flex}.linear-info-card .lic-head .x:hover{opacity:1}.linear-info-card .lic-head .x svg{width:15px;height:15px}.linear-info-card .lic-body{flex-direction:column;gap:12px;padding:12px 14px;display:flex}.linear-info-card .field{grid-template-columns:84px 1fr;align-items:center;gap:6px 10px;margin:0;display:grid}.linear-info-card .field>span{letter-spacing:.05em;text-transform:uppercase;color:var(--tx-2);text-align:left;white-space:nowrap;font-size:10px;font-weight:700}.linear-info-card .field input,.linear-info-card .field select{width:100%;height:32px}.linear-info-card .field.field-notes{align-items:stretch}.linear-info-card .field.field-notes>span{align-self:start;padding-top:8px}.linear-info-card .field.field-notes textarea{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--r);width:100%;height:56px;min-height:56px;color:var(--tx-0);font:inherit;resize:none;padding:8px 11px;font-size:12.5px;line-height:1.5}.linear-info-card .field textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5e81ac26}.linear-info-card .lic-actions{border-top:1px solid var(--line);background:var(--bg-inset);gap:8px;padding:10px 14px;display:flex}.ledger-right{flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex}.ledger-wrap{border:1px solid var(--line);background:var(--bg-1);border-radius:6px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.ledger-head{background:var(--bg-2);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:10px;height:48px;padding:0 14px;display:flex}.ledger-head>span:first-child{font-family:var(--font-display);color:var(--forge);font-size:14.5px;font-weight:600}.ledger-head .btn{height:30px;font-weight:600}.ledger-head .btn.ledger-add-mat{color:var(--cyan);border-color:#a9d2d9}.ledger-head .btn.ledger-add-mat:hover{background:#e2f1f3}.ledger-head .btn.ledger-add-asm{color:var(--violet);border-color:#d4b9cf}.ledger-head .btn.ledger-add-asm:hover{background:#f3e7f0}.ledger-wrap .tbl-wrap{background:var(--bg-1);border:none;border-radius:0;flex:1;min-height:0}table.ledger-tbl{table-layout:fixed;font-size:12.5px}table.ledger-tbl thead th{background:var(--bg-2);border-bottom:1px solid var(--line-strong);text-align:left;padding:6px 10px}table.ledger-tbl thead th.num{text-align:right}table.ledger-tbl tbody td{border-bottom:1px solid var(--line);height:27px;color:var(--tx-0);padding:0 10px}.ledger-tbl td.li-name{text-align:left;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ledger-tbl tbody tr:hover td{background:var(--hover)}.ledger-tbl tr.blank td{height:27px}.ledger-tbl tr.blank:hover td{background:0 0}.ledger-tbl .num.qty{color:var(--cyan);font-family:var(--font-mono);font-weight:700}.ledger-tbl td.edit{padding:0 3px}.ledger-tbl input.ce.num{text-align:right;border:1px solid var(--line);background:var(--bg-1);border-radius:2px;width:100%;height:23px;padding:0 6px;font-size:12px}.ledger-tbl input.ce.num:hover{border-color:var(--line-strong)}.ledger-tbl input.ce.num:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 2px #5e81ac2e}.ledger-tbl input[type=number]{appearance:textfield}.ledger-tbl input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ledger-tbl input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ledger-tbl tr.asm-head td{background:#faf5f8;font-weight:600}.ledger-tbl tr.asm-comp td{background:var(--bg-inset);color:var(--tx-2);height:24px;font-size:11.5px}.ledger-tbl td.li-name.comp{padding-left:26px}.ledger-tbl tr.asm-comp:hover td{background:var(--bg-inset)}.ledger-tbl .twirl{cursor:pointer;width:15px;color:var(--tx-2);-webkit-user-select:none;user-select:none;font-size:9px;display:inline-block}.ledger-tbl thead th:last-child,.ledger-tbl tbody td:last-child{text-align:center;padding:0}.ledger-tbl .ar-del{width:26px;height:22px;color:var(--tx-3);cursor:pointer;background:0 0;border:none;border-radius:3px;place-items:center;display:inline-grid}.ledger-tbl .ar-del svg{width:15px;height:15px}.ledger-tbl .ar-del:hover{color:var(--red);background:#f6e3e4}.tbl .ar-del{width:26px;height:22px;color:var(--tx-3);cursor:pointer;background:0 0;border:none;border-radius:3px;place-items:center;display:inline-grid}.tbl .ar-del svg{width:15px;height:15px}.tbl .ar-del:hover{color:var(--red);background:#f6e3e4}.tbl .ar-del:disabled{opacity:.4;cursor:not-allowed}.modal.dbpick-modal{flex-direction:column;width:56vw;min-width:520px;max-width:880px;height:72vh;display:flex}.modal.dbpick-modal .modal-body{flex:1;min-height:0}.dbpick-crumbbar{border-bottom:1px solid var(--line);background:var(--bg-1);flex-wrap:wrap;align-items:center;padding:7px 10px;display:flex}.dbpick-crumbbar .bc{align-items:center;display:inline-flex}.dbpick-crumbbar .sep{color:var(--tx-3);margin:0 1px}.dbpick-crumbbar .crumb{color:var(--accent-ink);cursor:pointer;background:0 0;border:none;border-radius:3px;align-items:center;gap:5px;padding:3px 6px;font-size:12px;display:inline-flex}.dbpick-crumbbar .crumb:hover{background:var(--bg-2)}.dbpick-crumbbar .crumb.cur{color:var(--tx-0);cursor:default;font-weight:600}.dbpick-crumbbar .crumb.cur:hover{background:0 0}.dbpick-crumbbar .crumb svg{width:13px;height:13px;color:var(--bronze)}.dbpick-folder{text-align:left;border:none;border-bottom:1px solid var(--line-soft);cursor:pointer;background:0 0;align-items:center;gap:9px;width:100%;padding:9px 12px;display:flex}.dbpick-folder:hover{background:var(--bg-2)}.dbpick-folder>svg{width:16px;height:16px;color:var(--bronze);flex:none}.dbpick-folder .df-name{min-width:0;color:var(--tx-0);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12.5px;font-weight:600;overflow:hidden}.dbpick-folder svg.df-go{width:13px;height:13px;color:var(--tx-3);transform:rotate(-90deg)}.dbpick-tbl{width:100%}.dbpick-tbl th.chk,.dbpick-tbl td.chk{text-align:center;width:30px;padding-left:0;padding-right:0}.dbpick-tbl th.bcell,.dbpick-tbl td.bcell{text-align:center;font-family:var(--font-mono);color:var(--tx-2);font-size:11px}.dbpick-tbl td.dp-cat{text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-size:11px;overflow:hidden}.dbpick-tbl tbody tr:not(.folder-row):hover td{background:var(--hover)}.modal.sched-flow{width:500px;max-width:92vw}.sched-flow .sf-back{cursor:pointer;vertical-align:middle;display:inline-flex}.sched-flow .sf-back svg{width:15px;height:15px;color:var(--tx-2);transform:rotate(90deg)}.sched-flow .sf-back:hover svg{color:var(--accent)}.sched-cards{gap:10px;display:grid}.sched-card{text-align:left;border:1px solid var(--line-strong);background:var(--bg-1);cursor:pointer;border-radius:8px;grid-template-rows:auto auto;grid-template-columns:40px 1fr;align-items:center;column-gap:13px;padding:14px 16px;transition:border-color .12s,background .12s;display:grid}.sched-card:hover{border-color:var(--accent);background:var(--bg-inset)}.sched-card .sc-icon{background:var(--bg-2);width:40px;height:40px;color:var(--accent);border-radius:8px;grid-row:1/span 2;place-items:center;display:grid}.sched-card .sc-icon svg{width:21px;height:21px}.sched-card .sc-title{color:var(--tx-0);font-size:14px;font-weight:700}.sched-card .sc-blurb{color:var(--tx-2);font-size:12px}.sched-methods{gap:9px;display:grid}.sched-method{text-align:left;border:1px solid var(--line-strong);background:var(--bg-1);cursor:pointer;border-radius:8px;gap:2px;padding:12px 14px;transition:border-color .12s,background .12s;display:grid}.sched-method:hover:not(:disabled){border-color:var(--accent);background:var(--bg-inset)}.sched-method:disabled{opacity:.5;cursor:not-allowed}.sched-method b{color:var(--tx-0);font-size:13px}.sched-method span{color:var(--tx-2);font-size:12px}.sched-method.alt{border-style:dashed}.sched-cat{gap:10px;display:grid}.sched-cat-head{border-bottom:1px solid var(--line);align-items:center;gap:9px;padding-bottom:4px;display:flex}.sched-tbl{border-collapse:collapse;font-size:12px}.sched-tbl th,.sched-tbl td{border:1px solid var(--line-strong);padding:1px 2px}.sched-tbl thead th{background:var(--bg-2);color:var(--tx-1);vertical-align:middle}.sched-tbl td{border-color:var(--line)}.sched-tbl th.rownum,.sched-tbl td.rownum{text-align:center;background:var(--bg-2);width:28px;color:var(--tx-3);font-size:10px}.sched-tbl td.rowdel{text-align:center;width:24px}.sched-tbl th.addcol{background:0 0;border:none;padding:0 4px}.dbpick-list{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.dbpick-row{text-align:left;border:none;border-bottom:1px solid var(--line-soft);cursor:pointer;background:0 0;align-items:center;gap:10px;width:100%;padding:8px 12px;display:flex}.dbpick-row:hover{background:var(--bg-2)}.dbpick-row.on{background:var(--sel)}.dbpick-row .cb{border:1px solid var(--line-strong);width:16px;height:16px;color:var(--accent);background:var(--bg-1);border-radius:3px;flex:none;place-items:center;font-size:11px;display:grid}.dbpick-row.on .cb{background:var(--accent);color:#fff;border-color:var(--accent)}.dbpick-row .dp-name{min-width:0;color:var(--tx-0);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12.5px;font-weight:500;overflow:hidden}.dbpick-row .dp-sub{max-width:30%;color:var(--violet);font-size:10.5px;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;flex:none;overflow:hidden}.sel-move-row:hover:not(:disabled){background:var(--hover)}.dbpick-row .dp-meta{font-size:11px;font-family:var(--font-mono);color:var(--tx-2);flex:none}.palette-scrim{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#2e344059;place-items:start center;padding-top:12vh;display:grid;position:fixed;inset:0}.palette{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:7px;width:580px;max-width:92vw;overflow:hidden;box-shadow:0 24px 70px #2e344040}.palette input{border:none;border-bottom:1px solid var(--line);width:100%;height:48px;color:var(--tx-0);background:0 0;padding:0 16px;font-size:14px}.palette input:focus{outline:none}.palette .results{max-height:340px;padding:6px;overflow:auto}.palette .res{border-radius:var(--r);cursor:pointer;height:38px;color:var(--tx-1);align-items:center;gap:10px;padding:0 10px;display:flex}.palette .res.on,.palette .res:hover{background:var(--sel);color:var(--accent-ink)}.palette .res svg{width:16px;height:16px;color:var(--tx-2)}.palette .res.on svg{color:var(--accent)}.palette .res .grp{color:var(--tx-3);text-transform:uppercase;letter-spacing:.1em;margin-left:auto;font-size:10px}.bar-meter{background:var(--bg-3);border:1px solid var(--line);border-radius:3px;height:6px;overflow:hidden}.bar-meter>span{background:var(--accent);height:100%;display:block}.takeoff{background:var(--bg-1);flex-direction:column;height:calc(100vh - 74px);display:flex;overflow:hidden}.to-shell{flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.to-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.to-workspace{flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.to-workspace>*{min-height:0}.to-toolrail{background:var(--bg-2);border-right:1px solid var(--line);z-index:20;flex-direction:column;flex:none;align-items:center;gap:2px;width:54px;padding:7px 0;display:flex;position:relative}.to-toolrail .trail-btn{width:42px;height:38px;color:var(--tx-1);border-radius:var(--r);cursor:pointer;background:0 0;border:none;flex:none;place-items:center;display:grid;position:relative}.to-toolrail .trail-label{white-space:nowrap;background:var(--tx-0);color:var(--bg-1);border-radius:var(--r);opacity:0;pointer-events:none;z-index:60;align-items:center;gap:8px;padding:6px 10px;font-size:12.5px;font-weight:600;transition:opacity 90ms,transform 90ms;display:flex;position:absolute;top:50%;left:calc(100% + 9px);transform:translateY(-50%)translate(-4px);box-shadow:0 8px 22px #2e34404d}.to-toolrail .trail-label:before{content:"";border:5px solid #0000;border-right-color:var(--tx-0);position:absolute;top:50%;right:100%;transform:translateY(-50%)}.to-toolrail .trail-btn:hover .trail-label{opacity:1;transform:translateY(-50%)translate(0)}.to-toolrail .trail-label kbd{color:var(--bg-1);font-size:10px;font-family:var(--font-mono);background:#ffffff2e;border:none;border-radius:3px;padding:1px 6px}.to-toolrail .trail-label .lblsub{color:#ffffff8c;font-size:11px;font-weight:500}.to-toolrail .trail-btn:hover{background:var(--bg-3);color:var(--tx-0)}.to-toolrail .trail-btn.on{background:var(--accent);color:#fff}.to-toolrail .trail-btn svg{width:18px;height:18px;color:var(--tx-2)}.to-toolrail .trail-btn:hover svg{color:var(--tx-0)}.to-toolrail .trail-btn.on svg{color:#fff}.to-toolrail .trail-sep{background:var(--line);flex:none;width:26px;height:1px;margin:5px 0}.to-toolrail .trail-spacer{flex:1}.to-toolrail .trail-btn.circuits,.to-toolrail .trail-btn.circuits svg{color:var(--accent)}.to-toolrail .trail-btn.circuits.on,.to-toolrail .trail-btn.circuits.on svg{color:#fff}.to-topbar{background:var(--bg-1);border-bottom:1px solid var(--line);z-index:30;flex:none;align-items:center;gap:10px;height:42px;padding:0 10px 0 8px;display:flex;position:relative}.to-topbar .to-topbar-div{background:var(--line);flex:none;width:1px;height:22px}.to-topbar .to-toolbar-h{border-left:none;flex:none;margin-left:0;padding-left:0}.to-toolbar-h{align-items:center;gap:3px;height:100%;display:flex}.to-toolbar-h .t{border-radius:var(--r);height:30px;color:var(--tx-1);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:0 11px;font-size:12.5px;display:flex}.to-toolbar-h .t:hover{background:var(--bg-2);color:var(--tx-0)}.to-toolbar-h .t.on{background:var(--accent);color:#fff}.to-toolbar-h .t svg{width:16px;height:16px;color:var(--tx-2)}.to-toolbar-h .t.on svg{color:#fff}.to-toolbar-h .t kbd{margin-left:2px}.to-toolbar-h .tsep{background:var(--line);flex:none;width:1px;height:22px;margin:0 7px}.to-rail{background:var(--bg-1);border-right:1px solid var(--line);flex-direction:column;flex:none;width:258px;display:flex}.to-rail-pane{flex-direction:column;min-height:0;display:flex;overflow:hidden}.to-rail-head{border-bottom:1px solid var(--line);background:var(--bg-2);letter-spacing:.1em;text-transform:uppercase;height:30px;color:var(--tx-2);flex:none;align-items:center;gap:8px;padding:0 12px;font-size:11px;display:flex}.to-rail-tab{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--tx-1);background:var(--bg-2);box-shadow:inset 3px 0 0 var(--line-strong);font-weight:600;transition:background .1s,color .1s}.to-rail-tab:hover{background:var(--bg-3);color:var(--tx-0)}.to-rail-tab.on{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--bg-2));box-shadow:inset 3px 0 0 var(--accent)}.to-rail-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.to-rail-content>.acc-body{flex:1}.acc-stack{flex-direction:column;flex:1;min-height:0;display:flex}.acc{border-bottom:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.acc.open{flex:1}.acc.closed{flex:none}.acc-head{cursor:pointer;letter-spacing:.08em;text-transform:uppercase;height:32px;color:var(--tx-2);-webkit-user-select:none;user-select:none;flex:none;align-items:center;gap:8px;padding:0 10px;font-size:11px;display:flex}.acc-head:hover{background:var(--bg-2);color:var(--tx-0)}.acc-head .chev{width:12px;height:12px;transition:transform .12s}.acc.closed .acc-head .chev{transform:rotate(-90deg)}.acc-head .count{font-family:var(--font-mono);color:var(--tx-3);margin-left:auto;font-size:10px}.acc-body{flex:1;min-height:0;padding:4px 6px 8px;overflow:auto}.tree-toolbar{z-index:5;background:var(--bg-1);position:sticky;top:0}.to-tools{border-right:1px solid var(--line);background:var(--bg-2);flex-direction:column;flex:none;align-items:center;gap:4px;width:48px;padding:8px 0;display:flex}.to-tools .t{border-radius:var(--r);width:36px;height:36px;color:var(--tx-2);cursor:pointer;place-items:center;display:grid;position:relative}.to-tools .t:hover{background:var(--bg-3);color:var(--tx-0)}.to-tools .t.on{background:var(--accent);color:#fff}.to-tools .t svg{width:17px;height:17px}.to-tools .t .hot{font-size:8px;font-family:var(--font-mono);opacity:.65;position:absolute;bottom:1px;right:3px}.to-tools .tsep{background:var(--line-strong);width:22px;height:1px;margin:5px 0}.to-canvas{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.to-canvas-bar{border-bottom:1px solid var(--line);background:var(--bg-1);flex:none;align-items:center;gap:12px;height:38px;padding:0 12px;display:flex}.to-canvas-bar.bottom{border-bottom:none;border-top:1px solid var(--line)}.to-canvas-bar .title{white-space:nowrap;flex:none;font-weight:600}.to-canvas-bar .sub{color:var(--tx-2);font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:40ch;font-size:11px;overflow:hidden}.to-canvas-bar .node-picker{border:1px solid var(--line-strong);border-radius:var(--r);background:var(--bg-1);max-width:22ch;height:26px;color:var(--tx-0);cursor:pointer;flex:none;padding:0 6px;font-size:12px}.to-canvas-bar .node-picker:hover{background:var(--bg-2);border-color:#b0bbcd}.to-canvas-bar .spacer{flex:1}.to-canvas-bar .zoom{align-items:center;gap:2px;display:flex}.to-canvas-bar .zoom .zb{border:1px solid var(--line-strong);background:var(--bg-1);width:28px;height:26px;color:var(--tx-1);cursor:pointer;place-items:center;display:grid}.to-canvas-bar .zoom .zb:first-child{border-radius:var(--r) 0 0 var(--r)}.to-canvas-bar .zoom .zb:last-child{border-radius:0 var(--r) var(--r) 0;border-left:none}.to-canvas-bar .zoom .zb:hover{background:var(--bg-2)}.to-canvas-bar .zoom .zlvl{font-family:var(--font-mono);color:var(--tx-1);padding:0 10px;font-size:11px}.to-canvas-body{flex:1;min-width:0;min-height:0;padding:0;position:relative;overflow:hidden}.pdf-stage{background:var(--bg-inset);cursor:grab;-webkit-user-select:none;user-select:none;padding:18px;display:grid;position:absolute;inset:0;overflow:auto}.pdf-stage.panning{cursor:grabbing}.pdf-stage canvas{background:#fff;border-radius:2px}.pdf-stage>div{margin:auto}.pdf-hint{color:var(--tx-3);text-align:center;max-width:360px;margin:auto;font-size:13px;line-height:1.6}:root{--sheet-ink:#2e3440;--sheet-labor:#b0692a;--sheet-violet:#8a5a82}.measure-svg{overflow:visible}.measure-svg .m-shape polyline,.measure-svg .m-shape polygon{stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.measure-svg .m-shape.area polygon,.measure-svg .m-shape.draft.area polygon{fill:#5e81ac24}.measure-svg .m-shape circle{fill:#fff;stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.measure-svg .m-shape.draft polyline,.measure-svg .m-shape.draft polygon,.measure-svg .m-shape.draft circle{stroke:var(--labor)}.measure-svg .m-shape.feeder polyline{stroke:var(--violet);stroke-width:2.5px}.measure-svg .m-shape.feeder circle{stroke:var(--violet)}.measure-svg .m-shape.feeder .m-label{fill:var(--sheet-violet);font-weight:600}.measure-svg .m-label{font-family:var(--font-mono);fill:var(--sheet-ink);paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-size:12px}.measure-svg .m-label.live{fill:var(--sheet-labor);font-weight:700}.measure-svg .m-shape.committed.hot polyline,.measure-svg .m-shape.committed.hot polygon{stroke-width:3.5px}.measure-svg .m-shape.committed.hot .m-label,.measure-svg .m-shape.committed.hot text{font-weight:700}.modal-scrim{z-index:50;background:#2e344057;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:8px;width:420px;max-width:92vw;overflow:hidden;box-shadow:0 18px 50px #2e34404d}.modal-head{border-bottom:1px solid var(--line);height:44px;font-family:var(--font-display);letter-spacing:.01em;color:var(--forge);align-items:center;padding:0 14px;font-size:15px;font-weight:600;display:flex}.modal-head .x{cursor:pointer;color:var(--tx-2);border-radius:4px;margin-left:auto;padding:4px 6px}.modal-head .x:hover{background:var(--bg-2);color:var(--tx-0)}.modal-body{padding:14px}.assign-list{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-inset);max-height:280px;overflow:auto}.assign-item{cursor:pointer;border-bottom:1px solid var(--line-soft);align-items:baseline;gap:8px;padding:6px 10px;display:flex}.assign-item:last-child{border-bottom:none}.assign-item:hover{background:var(--bg-2)}.assign-item.on{background:var(--sel);box-shadow:inset 2px 0 0 var(--accent)}.assign-item .ai-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--tx-0);flex:1;font-size:12.5px;overflow:hidden}.assign-item.on .ai-name{color:var(--accent-ink);font-weight:600}.assign-item .ai-sub{font-family:var(--font-mono);color:var(--tx-3);flex:none;font-size:10.5px}.auth-splash{height:100vh;color:var(--tx-3);place-items:center;font-size:14px;display:grid}.auth-screen{background:var(--bg-1);place-items:center;height:100vh;display:grid}.auth-card{background:var(--bg-inset);border:1px solid var(--line-strong);border-radius:10px;flex-direction:column;gap:12px;width:320px;padding:28px;display:flex;box-shadow:0 18px 50px #2e34402e}.auth-brand{font-family:var(--font-display);letter-spacing:.04em;color:var(--forge);font-size:22px}.auth-sub{color:var(--tx-3);margin-bottom:6px;font-size:13px}.auth-card label{color:var(--tx-2);flex-direction:column;gap:4px;font-size:12px;display:flex}.auth-card input{background:var(--bg-1);border:1px solid var(--line-strong);height:34px;color:var(--tx-0);border-radius:6px;padding:0 10px;font-size:13px}.auth-card input:focus{border-color:var(--accent);outline:none}.auth-pw{display:flex;position:relative}.auth-pw input{flex:1;padding-right:34px}.auth-pw-toggle{cursor:pointer;width:34px;height:34px;color:var(--tx-3);background:0 0;border:none;place-items:center;padding:0;display:grid;position:absolute;top:0;right:0}.auth-pw-toggle:hover{color:var(--tx-1)}.auth-pw-toggle svg{width:17px;height:17px}.app-error{background:var(--bg-1);place-items:center;min-height:100vh;padding:24px;display:grid}.app-error-card{background:var(--bg-inset);border:1px solid var(--line-strong);border-radius:10px;width:100%;max-width:480px;padding:28px;box-shadow:0 18px 50px #2e34402e}.app-error-title{color:var(--tx-0);margin-bottom:8px;font-size:18px;font-weight:600}.app-error-msg{color:var(--tx-2);margin-bottom:14px;font-size:13px}.app-error-detail{font-family:var(--font-mono);color:#bf616a;background:var(--bg-1);border:1px solid var(--line-strong);white-space:pre-wrap;word-break:break-word;border-radius:6px;margin-bottom:16px;padding:10px;font-size:12px;overflow-x:auto}.app-error-actions{gap:10px;display:flex}.auth-err{color:#bf616a;font-size:12px}.auth-card .btn.primary{justify-content:center;height:36px;margin-top:6px}.assign-split{grid-template-columns:1fr 1fr;height:56vh;min-height:340px;display:grid}.assign-pane{flex-direction:column;min-width:0;min-height:0;display:flex}.assign-pane.right{border-left:1px solid var(--line)}.assign-pane-h{border-bottom:1px solid var(--line);background:var(--bg-2);letter-spacing:.06em;text-transform:uppercase;height:38px;color:var(--tx-2);flex:none;align-items:center;gap:8px;padding:0 12px;font-size:11px;font-weight:600;display:flex}.assign-pane-body{flex:1;min-height:0;padding:6px;overflow:auto}.assigned-row{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-1);margin-bottom:6px;padding:7px 9px}.assigned-row .ar-top{align-items:center;gap:7px;display:flex}.assigned-row .ar-kind{font-family:var(--font-mono);letter-spacing:.06em;color:#fff;border-radius:3px;flex:none;padding:1px 5px;font-size:9px;font-weight:700}.assigned-row .ar-kind.material{background:var(--cyan)}.assigned-row .ar-kind.assembly{background:var(--violet)}.assigned-row .ar-kind.custom{background:var(--labor)}.assigned-row .ar-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--tx-0);flex:1;font-size:12.5px;font-weight:500;overflow:hidden}.assigned-row .ar-del{width:22px;height:22px;color:var(--tx-3);cursor:pointer;background:0 0;border:none;border-radius:3px;flex:none;place-items:center;display:grid}.assigned-row .ar-del:hover{color:var(--red);background:#f3e3e4}.assigned-row .ar-del svg{width:14px;height:14px}.assigned-row .ar-edit{align-items:center;gap:8px;margin-top:7px;display:flex}.assigned-row .ar-edit label{color:var(--tx-2);align-items:center;gap:4px;font-size:10.5px;display:flex}.assigned-row .ar-edit input{border:1px solid var(--line-strong);border-radius:var(--r);background:var(--bg-1);width:54px;height:26px;color:var(--tx-0);padding:0 6px;font-size:12px}.assigned-row .ar-eff{font-family:var(--font-mono);color:var(--green);white-space:nowrap;margin-left:auto;font-size:11.5px;font-weight:600}.assigned-row .ar-apply{border:1px solid var(--line-strong);border-radius:var(--r);background:var(--bg-1);height:26px;color:var(--tx-3);cursor:not-allowed;flex:none;align-items:center;gap:4px;padding:0 8px;font-size:11px;display:inline-flex}.assigned-row .ar-apply.on{color:#fff;background:var(--accent);border-color:var(--accent);cursor:pointer}.assigned-row .ar-apply svg{width:12px;height:12px}.assigned-row .ar-note{color:var(--amber);margin-top:5px;font-size:10.5px}.lib-item{border-bottom:1px solid var(--line-soft);align-items:center;gap:8px;padding:6px 8px;display:flex}.lib-item:hover{background:var(--bg-2)}.lib-item .li-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--tx-0);flex:1;font-size:12.5px;overflow:hidden}.lib-item .li-sub{font-family:var(--font-mono);color:var(--tx-3);flex:none;font-size:10px}.lib-item .li-add{border:1px solid var(--line-strong);border-radius:var(--r);background:var(--bg-1);width:24px;height:24px;color:var(--accent-ink);cursor:pointer;flex:none;place-items:center;display:grid}.lib-item .li-add:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.lib-item .li-add svg{width:14px;height:14px}.seg-tabs{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;gap:4px;margin:6px 0 12px;padding:3px;display:flex}.seg-tabs button{height:28px;color:var(--tx-1);font-size:12.5px;font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1}.seg-tabs button.on{background:var(--bg-1);color:var(--accent-ink);font-weight:600;box-shadow:0 1px 2px #2e34401a}.modal-method .field{align-items:center;gap:10px;margin:10px 0;display:flex}.modal-method .field>span{width:56px;color:var(--tx-2);font-size:12px}.modal-method .field select,.modal-method .field input{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--r);height:32px;color:var(--tx-0);font-size:13px;font-family:var(--font-ui);flex:1;padding:0 10px}.modal-method .field input:focus,.modal-method .field select:focus{border-color:var(--accent);outline:none}.modal-method .muted{font-size:12.5px;line-height:1.5}.scale-readout{font-family:var(--font-mono);color:var(--green);background:var(--bg-inset);border:1px solid var(--line);border-radius:var(--r);margin:8px 0 4px;padding:8px 10px;font-size:13px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.modal-body .field{align-items:center;gap:10px;margin:10px 0;display:flex}.modal-body .field>span{width:70px;color:var(--tx-2);flex:none;font-size:12px}.modal-body .field select,.modal-body .field input{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--r);height:32px;color:var(--tx-0);font-size:13px;font-family:var(--font-ui);flex:1;padding:0 10px}.modal-body .field select:focus,.modal-body .field input:focus,.modal-body .field textarea:focus{border-color:var(--accent);outline:none}.modal.count-modal .modal-body .field{margin:0 0 4px;display:block}.modal.count-modal .modal-body .field>span{width:auto;color:var(--tx-2);letter-spacing:.03em;flex:none;margin-bottom:5px;font-size:11px;display:block}.modal.count-modal .modal-body .field input,.modal.count-modal .modal-body .field select{height:32px;font-size:12.5px}.modal.count-modal .modal-body .field>input{width:100%}.modal.job-modal{width:720px;max-width:95vw}.modal.job-modal .modal-body{max-height:74vh;overflow:auto}.modal.job-modal .modal-head .x{align-items:center;display:inline-flex}.modal.job-modal .modal-head .x svg{width:16px;height:16px}.job-form{grid-template-columns:1fr 1fr 1fr;gap:12px 14px;display:grid}.modal-body .job-form .field{margin:0;display:block}.modal-body .job-form .field.col-2{grid-column:span 2}.modal-body .job-form .field>label{width:auto;color:var(--tx-2);letter-spacing:.03em;flex:none;margin-bottom:5px;font-size:11px;display:block}.modal-body .job-form .field input,.modal-body .job-form .field select,.modal-body .job-form .field textarea{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--r);width:100%;height:32px;color:var(--tx-0);font-size:12.5px;font-family:var(--font-ui);padding:0 11px}.modal-body .job-form .field textarea{resize:vertical;height:auto;min-height:56px;padding:8px 11px;line-height:1.45}.modal-body .job-form .field input:focus,.modal-body .job-form .field select:focus,.modal-body .job-form .field textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5e81ac26}.job-form .section-label{letter-spacing:.12em;text-transform:uppercase;color:var(--tx-2);border-top:1px solid var(--line-soft);grid-column:1/-1;margin-top:6px;padding-top:11px;font-size:10px;font-weight:700}.job-form .section-label:first-child{border-top:none;margin-top:0;padding-top:0}.modal-body .feeder-grid{grid-template-columns:1fr 1fr;gap:10px 12px;display:grid}.modal-body .feeder-grid .field{margin:0;display:block}.modal-body .feeder-grid .field>label{width:auto;color:var(--tx-2);flex:none;margin-bottom:5px;font-size:11px;display:block}.modal-body .feeder-grid .field input,.modal-body .feeder-grid .field select{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--r);width:100%;height:32px;color:var(--tx-0);font-size:12.5px;font-family:var(--font-ui);padding:0 11px}.empty-card{border:1px dashed var(--line-strong);background:var(--bg-1);border-radius:8px;padding:22px 24px}.empty-card b{font-size:14px}.empty-card p{margin:6px 0 0;line-height:1.55}.req-group{margin-top:18px}.req-cat{text-transform:uppercase;letter-spacing:.08em;color:var(--tx-2);margin:0 0 8px;font-size:12px;font-weight:700}.req-rows{flex-direction:column;gap:6px;display:flex}.req-row{background:var(--bg-1);border:1px solid var(--line);border-radius:6px;align-items:flex-start;gap:12px;padding:11px 14px;display:flex}.req-row.candidate{border-left:3px solid var(--amber)}.req-main{flex:1;min-width:0}.req-title{align-items:center;gap:8px;font-weight:600;display:flex}.req-flag{text-transform:uppercase;letter-spacing:.06em;color:var(--amber);border:1px solid var(--amber-dim);border-radius:8px;padding:0 6px;font-size:10px;font-weight:700}.req-detail{color:var(--tx-1);margin-top:3px;font-size:12.5px;line-height:1.5}.req-meta{color:var(--tx-3);font-size:11px;font-family:var(--font-mono);gap:8px;margin-top:4px;display:flex}.req-spec{margin-top:5px}.req-spec-toggle{color:var(--accent-ink);cursor:pointer;font-size:11.5px;font-family:var(--font-ui);background:0 0;border:none;padding:0}.req-spec-toggle:hover{text-decoration:underline}.req-evidence{border-left:3px solid var(--line-strong);background:var(--bg-inset);border-radius:0 var(--r) var(--r) 0;color:var(--tx-1);margin:6px 0 2px;padding:8px 12px;font-size:12.5px;font-style:italic;line-height:1.55}.req-evidence-src{color:var(--tx-3);font-size:11px;font-style:normal;font-family:var(--font-mono);margin-top:5px}.req-actions{flex:none;align-items:center;gap:6px;display:flex}.checks{flex-direction:column;gap:8px;display:flex}.check{border:1px solid var(--line);background:var(--bg-1);border-left-width:3px;border-radius:6px;align-items:flex-start;gap:11px;padding:10px 12px;display:flex}.check.ok{border-left-color:var(--green)}.check.warn{border-left-color:var(--amber);background:#fdfaf2}.check.fail{border-left-color:var(--red);background:#fcf3f3}.check-ic{flex:none;margin-top:1px;display:flex}.check.ok .check-ic{color:var(--green)}.check.warn .check-ic{color:var(--amber)}.check.fail .check-ic{color:var(--red)}.check-ic svg{width:16px;height:16px}.check-body{flex:1;min-width:0}.check-head{align-items:center;gap:8px;display:flex}.check-head .grow{flex:1}.to-section{border-bottom:1px solid var(--line);padding:12px}.to-section h4{letter-spacing:.12em;text-transform:uppercase;color:var(--tx-2);margin:0 0 10px;font-size:10px;font-weight:600}.to-bind{background:var(--bg-inset);border:1px solid var(--line);border-radius:var(--r);align-items:center;gap:9px;padding:9px 11px;display:flex}.to-bind svg{width:15px;height:15px;color:var(--violet)}.drawer-scrim{z-index:60;background:#2e344057;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--bg-1);border-left:1px solid var(--line-strong);flex-direction:column;width:640px;max-width:96vw;height:100%;animation:.16s ease-out drawer-in;display:flex;box-shadow:-18px 0 50px #2e344038}@keyframes drawer-in{0%{opacity:.5;transform:translate(26px)}to{opacity:1;transform:none}}.drawer .modal-head{flex:none}.drawer .modal-head .x{margin-left:auto}.drawer .modal-body{flex:1;padding:14px 16px;overflow:auto}.drawer-foot{border-top:1px solid var(--line);background:var(--bg-2);flex:none;align-items:center;gap:8px;padding:12px 14px;display:flex}.drawer-foot .grow{flex:1}.drawer .modal-body .job-form .field textarea{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--r);width:100%;min-height:64px;color:var(--tx-0);font-size:12.5px;font-family:var(--font-mono);resize:vertical;padding:8px 11px;line-height:1.5}.drawer .modal-body .job-form .field textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5e81ac26}.cat-cols{grid-template-columns:1fr 1fr;align-items:start;gap:14px;display:grid}@media (width<=1100px){.cat-cols{grid-template-columns:1fr}}.cat-tree{font-size:12.5px}.cat-root-drop{border-bottom:1px dashed var(--line);border-radius:var(--r);align-items:center;gap:10px;margin-bottom:6px;padding:4px 0 8px;display:flex}.cat-root-drop.hot{background:var(--sel);outline:2px dashed var(--accent);outline-offset:-2px}.cat-tree .node-actions button{color:var(--tx-2);font-size:10px;line-height:1}.cat-tree .node-actions button:disabled{opacity:.3;cursor:default}.cat-add{padding:3px 0}.cat-add input,.cat-rename{border:1px solid var(--accent);border-radius:var(--r);height:26px;color:var(--tx-0);font-size:12.5px;font-family:var(--font-ui);background:#fff;outline:none;padding:0 8px;box-shadow:0 0 0 2px #5e81ac2e}.cat-add input{width:220px}.cat-rename{flex:1;min-width:0}.x-inline{cursor:pointer;vertical-align:middle;color:var(--tx-2);margin-left:8px;display:inline-flex}.x-inline svg{width:13px;height:13px}.lib-split{grid-template-columns:248px 1fr;align-items:start;gap:14px;display:grid}@media (width<=1000px){.lib-split{grid-template-columns:1fr}}.lib-cats{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-1);max-height:calc(100vh - 210px);padding:8px;position:sticky;top:0;overflow:auto}.lib-cats-head{letter-spacing:.1em;text-transform:uppercase;color:var(--tx-2);align-items:center;gap:8px;padding:2px 4px 8px;font-size:10px;font-weight:700;display:flex}.lib-cats-head .btn{height:22px;margin-left:auto;padding:0 7px;font-size:10px}.lib-cat-all{text-align:left;border-radius:var(--r);width:100%;height:28px;color:var(--tx-1);cursor:pointer;background:0 0;border:none;margin-bottom:4px;padding:0 8px;font-size:12.5px;display:block}.lib-cat-all:hover{background:var(--bg-2);color:var(--tx-0)}.lib-cat-all.on{background:var(--sel);color:var(--accent-ink);font-weight:600}.lib-main{min-width:0}.lib-breadcrumb{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;font-size:12.5px;display:flex}.lib-breadcrumb .bc-seg{color:var(--accent-ink);cursor:pointer;font-size:12.5px;font-family:var(--font-ui);background:0 0;border:none;padding:0}.lib-breadcrumb .bc-seg:hover{text-decoration:underline}.lib-breadcrumb .bc-sep{color:var(--tx-3);margin:0 4px}.lib-breadcrumb .bc-cur{color:var(--tx-0);font-weight:600}.labor-cols{grid-template-columns:1fr;gap:16px;display:grid}.labor-cols .panel table.tbl{border-radius:0 0 var(--r) var(--r)}.bulk-bar{background:var(--sel);border-radius:var(--r);border:1px solid #b3c4dc;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;display:flex}.bulk-bar .bb-count{color:var(--accent-ink);font-size:12.5px;font-weight:700}.bulk-bar .bb-sep{background:var(--line-strong);width:1px;height:22px;margin:0 2px}.bulk-bar .input,.bulk-bar .btn{height:28px}table.tbl tbody tr.row-sel td{background:#dde7f4!important}.explorer-bar{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r);align-items:center;gap:2px;margin-bottom:12px;padding:7px 12px;display:flex}.explorer-bar .bc{align-items:center;display:inline-flex}.explorer-bar .bc-sep{color:var(--tx-3);margin:0 3px}.explorer-bar .bc-seg{color:var(--accent-ink);cursor:pointer;font-size:13px;font-family:var(--font-ui);border-radius:var(--r);background:0 0;border:none;padding:2px 6px}.explorer-bar .bc-seg:hover:not(:disabled){background:var(--bg-2)}.explorer-bar .bc-seg.cur{color:var(--tx-0);cursor:default;font-weight:700}.explorer-bar .grow{flex:1}tr.folder-row{cursor:pointer}tr.folder-row td{border-bottom:1px solid var(--line);background:#f3f6fb;height:34px}tr.folder-row:hover td{background:#e9f0fa}.fldr{cursor:pointer;color:var(--tx-0);font-size:13px;font-weight:600;font-family:var(--font-ui);background:0 0;border:none;align-items:center;gap:9px;padding:0;display:inline-flex}.fldr svg{width:16px;height:16px;color:var(--accent);flex:none}.fldr .fldr-go{width:14px;height:14px;color:var(--tx-3);opacity:0;transform:rotate(-90deg)}tr.folder-row:hover .fldr .fldr-go{opacity:1}tr.folder-row.drop-target td{box-shadow:inset 0 2px 0 var(--accent), inset 0 -2px 0 var(--accent);background:#d7e6fb}tr.folder-row.drop-into td{box-shadow:inset 0 0 0 2px var(--accent);background:#d7e6fb}tr.folder-row.drop-before td{box-shadow:inset 0 3px 0 var(--accent)}tr.folder-row.drop-after td{box-shadow:inset 0 -3px 0 var(--accent)}.explorer-bar .bc-seg.drop-target{box-shadow:inset 0 0 0 2px var(--accent);background:#d7e6fb}table.tbl tbody tr[draggable=true] td.id{cursor:grab}table.tbl tbody tr.reorder-target td{box-shadow:inset 0 2px 0 var(--accent)}table.tbl.resizable{table-layout:fixed}table.tbl.resizable th,table.tbl.resizable td{overflow:hidden}table.tbl.resizable th{position:relative}table.tbl.resizable .col-resize{cursor:col-resize;-webkit-user-select:none;user-select:none;z-index:2;width:7px;height:100%;position:absolute;top:0;right:0}table.tbl.resizable .col-resize:hover{background:var(--accent);opacity:.45}.ce-ro{height:26px;color:inherit;white-space:nowrap;text-overflow:ellipsis;padding:0 7px;font-size:13px;line-height:26px;display:block;overflow:hidden}.ce-ro.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.ce-ro.money{color:var(--green)}.ce-ro.labor{color:var(--labor)}.ce-ro.name{color:var(--tx-0);font-weight:600}.ce-ro.mono{font-family:var(--font-mono)}.btn.lock-toggle.editing{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}.btn.lock-toggle.editing:hover{background:#456a2d}.db-mode{letter-spacing:.04em;text-transform:uppercase;color:var(--tx-2);white-space:nowrap;align-items:center;gap:5px;font-size:11px;font-weight:700;display:inline-flex}.db-mode .db-mode-dot{background:var(--tx-3);border-radius:50%;width:7px;height:7px}.db-mode.on{color:var(--green)}.db-mode.on .db-mode-dot{background:var(--green);box-shadow:0 0 0 3px #6a99552e}.ctx-backdrop{z-index:200;position:fixed;inset:0}.ctx-menu{z-index:201;background:var(--bg-1);border:1px solid var(--line-strong);border-radius:6px;min-width:190px;padding:5px;position:fixed;box-shadow:0 12px 34px #2e34403d}.ctx-menu .ctx-head{letter-spacing:.08em;text-transform:uppercase;color:var(--tx-3);padding:4px 10px 6px;font-size:10px;font-weight:700}.ctx-menu button{border-radius:var(--r);width:100%;height:30px;color:var(--tx-1);cursor:pointer;text-align:left;font-size:12.5px;font-family:var(--font-ui);background:0 0;border:none;align-items:center;gap:9px;padding:0 10px;display:flex}.ctx-menu button:hover{background:var(--sel);color:var(--accent-ink)}.ctx-menu button svg{width:14px;height:14px;color:var(--tx-2)}.ctx-menu button:hover svg{color:var(--accent)}.ctx-menu button.danger:hover{color:var(--red);background:#f6e3e4}.ctx-menu button.danger:hover svg{color:var(--red)}.ctx-menu .ctx-sep{background:var(--line);height:1px;margin:4px 0}.modal.asm-modal{flex-direction:column;width:1280px;max-width:96vw;height:90vh;display:flex}.modal.asm-modal .modal-head{flex:none}.modal.asm-modal .modal-actions{border-top:1px solid var(--line);background:var(--bg-2);flex:none;align-items:center;gap:8px;margin:0;padding:12px 14px;display:flex}.modal.asm-modal .modal-body.asm-body{flex-direction:column;flex:1;min-height:0;padding:14px;display:flex;overflow:hidden}.asm-head-row{flex:none;grid-template-columns:2fr 1fr 1.6fr;gap:12px;margin-bottom:14px;display:grid}.asm-head-row .field{margin:0}.asm-head-row .field label{color:var(--tx-2);margin-bottom:5px;font-size:11px;display:block}.asm-head-row .field input{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--r);width:100%;height:32px;color:var(--tx-0);padding:0 11px;font-size:12.5px}.asm-head-row .field input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5e81ac26}.asm-split{flex:1;grid-template-columns:1fr 460px;gap:14px;min-height:0;display:grid}@media (width<=900px){.asm-split{grid-template-columns:1fr}}.asm-lines{border-radius:var(--r);flex-direction:column;min-height:0;display:flex}.asm-lines.drop-active{outline:2px dashed var(--accent);outline-offset:-3px;background:#5e81ac0f}.asm-lines .asm-lines-wrap{flex:1;min-height:0;overflow:auto}.asm-picker .lib-item{cursor:grab}.asm-picker .lib-item:active{cursor:grabbing}.asm-lines .asm-mat-name{color:var(--tx-0);font-size:12.5px;font-weight:500}.asm-lines td.asm-grip{cursor:grab;white-space:nowrap;-webkit-user-select:none;user-select:none}.asm-lines td.asm-grip:active{cursor:grabbing}.asm-lines .asm-grip-dots{opacity:0;margin-right:3px;transition:opacity .1s}.asm-lines tr.asm-line:hover .asm-grip-dots{opacity:.55}.asm-lines tr.asm-line.drop-before td{box-shadow:inset 0 2px 0 var(--accent)}.asm-lines tr.asm-line.drop-after td{box-shadow:inset 0 -2px 0 var(--accent)}.asm-lines td.edit .ce{height:24px}.asm-lines .btn.ghost{padding:0 5px;font-size:10px}.audit-totals{gap:40px;padding:2px 2px 14px;display:flex}.audit-total{flex-direction:column;gap:2px;display:flex}.audit-total-k{letter-spacing:.06em;text-transform:uppercase;color:var(--tx-2);font-size:10.5px;font-weight:600}.audit-total-v{font-size:22px;font-weight:700;font-family:var(--font-mono)}.audit-total-v small{color:var(--tx-2);font-size:12px;font-weight:500}.page.audit-page{max-width:none}.review-objects-layout{align-items:flex-start;gap:14px;display:flex}.review-dbpanel{flex-direction:column;flex:none;gap:8px;width:520px;height:74vh;display:flex;position:sticky;top:12px}.review-dbpanel-head{letter-spacing:.1em;text-transform:uppercase;color:var(--tx-2);flex:none;align-items:center;gap:8px;font-size:10px;font-weight:700;display:flex}.review-dbpanel .asm-picker{flex:1;min-height:0}.review-dbpanel .pick-children>.pick-mat:nth-child(2n),.review-dbpanel .pick-flat>div:nth-child(2n) .pick-item{background:0 0!important}.review-dbpanel .pick-tree-body .pick-item,.review-dbpanel .pick-tree-body .lib-item{border-bottom:1px solid var(--line-soft);background:0 0;border-radius:0}.review-dbpanel .pick-tree-body .pick-item:hover,.review-dbpanel .pick-tree-body .lib-item:hover{box-shadow:inset 2px 0 0 var(--accent);background:#dbe6f4!important}.audit-toolbar{border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:9px 12px;display:flex}.audit-toolbar .btn.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.audit-toolbar .btn.on:hover{background:#54739c;border-color:#54739c}.audit-tree{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-1);grid-template-columns:minmax(240px,2fr) minmax(78px,max-content) minmax(52px,88px) minmax(52px,88px) minmax(62px,max-content) minmax(72px,max-content) minmax(34px,max-content) minmax(94px,max-content) minmax(62px,max-content) minmax(34px,max-content) minmax(94px,max-content) minmax(44px,max-content);align-content:start;font-size:12.5px;display:grid;overflow-x:auto}.audit-tree>.audit-tree-head,.audit-tree>.obj-row{grid-column:1/-1;grid-template-columns:subgrid;align-items:stretch;display:grid}.audit-tree>.node,.audit-tree>.obj-row.item.empty{grid-column:1/-1}.audit-tree>.obj-row.item.empty{display:flex}.audit-tree-head{border-bottom:1px solid var(--line);letter-spacing:.05em;text-transform:uppercase;height:28px;color:var(--mustard);background:color-mix(in srgb, var(--mustard) 9%, transparent);font-size:12.5px;font-weight:600}.audit-tree-head .obj-key{align-items:center;min-width:0;padding-left:12px;display:flex}.audit-tree-head>span:not(.obj-key){justify-content:center}.audit-tree .node{border-bottom:1px solid var(--line)}.audit-tree .obj-row{cursor:pointer;border-bottom:1px solid var(--line);gap:0;height:auto;min-height:26px;padding:0}.audit-tree .obj-row.last:before{height:auto;bottom:50%}.audit-tree .obj-row.drop-target{background:var(--sel);box-shadow:inset 0 0 0 1px var(--accent)}.audit-tree .obj-row>.twirl{left:calc(44px + var(--ind,0px));width:14px;height:14px;color:var(--tx-3);place-items:center;margin:0;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.audit-tree .obj-row>.twirl svg{width:11px;height:11px;transition:transform .12s;transform:rotate(-90deg)}.audit-tree .obj-row>.twirl.open svg{transform:rotate(0)}.audit-tree .obj-row .obj-key{min-width:0;padding-left:calc(66px + var(--ind,0px));flex-direction:column;justify-content:center;gap:1px;padding-right:8px;display:flex}.audit-tree .obj-row .obj-nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.audit-tree .obj-row .obj-note{color:var(--tx-2);white-space:pre-line;font-size:11px}.audit-tree .obj-row:not(.item) .obj-nm{color:var(--tx-0);font-weight:600}.audit-tree .obj-sub{color:var(--tx-3);font-size:10.5px}.audit-tree .col-kind,.audit-tree .col-mult,.audit-tree .col-div,.audit-tree .col-qty,.audit-tree .col-price,.audit-tree .col-per,.audit-tree .col-extprice,.audit-tree .col-labor,.audit-tree .col-per2,.audit-tree .col-extlabor,.audit-tree .col-act{white-space:nowrap;border-left:1px solid var(--line);justify-content:flex-end;align-items:center;padding:0 8px;display:flex}.audit-tree .col-kind{justify-content:center;padding:0 6px}.audit-tree .kind-plain{text-transform:uppercase;letter-spacing:.05em;color:var(--tx-2);font-size:10px}.audit-tree .col-mult,.audit-tree .col-div{padding:0 5px}.audit-tree .col-per,.audit-tree .col-per2{justify-content:center;padding:0 4px}.audit-tree .col-act{justify-content:center;padding:0 6px}.audit-tree .col-mult .ce,.audit-tree .col-div .ce{text-align:right;border:1px solid var(--line);background:var(--bg-1);width:100%;height:22px;color:var(--tx-0);font-family:var(--font-mono);border-radius:4px;padding:0 5px;font-size:11.5px}.audit-tree .col-mult .ce:focus,.audit-tree .col-div .ce:focus{border-color:var(--accent);outline:none}.audit-tree .ce[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.audit-tree .ce[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.audit-tree .ce[type=number]{appearance:textfield}.audit-tree .obj-row.item{--rail:52px;cursor:default}.audit-tree .obj-row.item .obj-key{padding-left:calc(76px + var(--ind,0px));flex-direction:row;justify-content:flex-start;align-items:center;gap:6px}.audit-tree .obj-row.item .obj-nm{color:var(--tx-1);font-weight:400}.audit-tree .obj-row.item.empty .obj-key{gap:10px}.audit-tree .obj-row.item.has-anc{background-image:linear-gradient(var(--line), var(--line));background-repeat:no-repeat;background-size:1px 100%;background-position:calc(20px + var(--ind,0px)) 0}.audit-tree .obj-row.item .size-cell{border-right:1px solid var(--line);min-width:46px;font-family:var(--font-mono);color:var(--tx-1);text-align:right;flex:none;padding-right:6px;font-size:11.5px}.audit-tree .obj-row.item.pending{animation:1.1s ease-in-out infinite audit-pending}.audit-tree .obj-row.item.pending .obj-sub{font-size:11px}@keyframes audit-pending{0%,to{opacity:.55}50%{opacity:.9}}.review-objects-layout .ar-del{width:24px;height:22px;color:var(--tx-3);cursor:pointer;background:0 0;border:none;border-radius:3px;place-items:center;display:inline-grid}.review-objects-layout .ar-del svg{width:14px;height:14px}.review-objects-layout .ar-del:hover{color:var(--red);background:#f6e3e4}.review-objects-layout .ar-del:disabled{opacity:.4;cursor:not-allowed}.review-objects-layout .ar-edit{width:24px;height:22px;color:var(--tx-3);cursor:pointer;background:0 0;border:none;border-radius:3px;place-items:center;display:inline-grid}.review-objects-layout .ar-edit svg{width:14px;height:14px}.review-objects-layout .ar-edit:hover{background:var(--sel);color:var(--accent-ink)}.review-items-tbl input.ce.num[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.review-items-tbl input.ce.num[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.review-items-tbl input.ce.num[type=number]{appearance:textfield}table.tbl.review-items-tbl thead th,table.tbl.review-items-tbl thead th.num{text-align:center}table.tbl.review-items-tbl thead th:first-child{text-align:left}@media (width<=1100px){.review-objects-layout{flex-direction:column}.review-dbpanel{width:100%;height:420px;position:static}}.asm-picker{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-inset);flex-direction:column;min-height:0;padding:10px;display:flex}.asm-picker-head{letter-spacing:.1em;text-transform:uppercase;color:var(--tx-2);flex:none;align-items:center;gap:8px;margin-bottom:8px;font-size:10px;font-weight:700;display:flex}.asm-clear-cat{text-transform:none;letter-spacing:0;color:var(--accent-ink);white-space:nowrap;max-width:62%;margin-left:auto;font-size:10px;overflow:hidden}.asm-clear-cat svg{width:12px;height:12px}.asm-pick-folders{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-1);flex:0 0 230px;margin-bottom:8px;padding:6px 4px;overflow:auto}.asm-pick-folders .cat-tree{font-size:12px}.asm-pick-search{background:var(--bg-1);flex:none;align-items:center;gap:8px;margin-bottom:8px;padding:0 10px;display:flex}.asm-picker-list{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-1);flex:1;min-height:0;overflow:auto}.pick-tree{flex-direction:column;flex:1;min-height:0;display:flex}.pick-tree .asm-pick-search{flex:none}.pick-tree-body{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-1);flex:1;min-height:0;padding:3px 0;overflow:auto}.pick-tree-root{padding:0 6px 0 8px}.pick-flat{padding:0 2px}.pick-folder{cursor:pointer;-webkit-user-select:none;user-select:none;height:28px;color:var(--tx-0);border-radius:4px;align-items:center;gap:4px;padding:0 8px 0 4px;font-size:12.5px;display:flex}.pick-folder:hover{background:var(--bg-2)}.pick-folder.sel{box-shadow:inset 2px 0 0 var(--accent);background:#5e81ac29}.pick-folder.sel .nm,.pick-folder.sel .ic{color:var(--accent-ink)}.pick-folder .twirl{width:14px;color:var(--tx-3);flex:none;transition:transform .12s;display:inline-flex}.pick-folder .twirl.open{transform:rotate(90deg)}.pick-folder .twirl svg{width:12px;height:12px}.pick-folder .ic{width:14px;height:14px;color:var(--accent);flex:none}.pick-folder .nm{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.pick-tree-body .pick-item{border:none;border-radius:4px;min-height:28px;padding:2px 8px}.pick-item .pi-size{text-align:left;width:46px;font-family:var(--font-mono);color:var(--tx-2);white-space:nowrap;flex:none;font-size:11px}.pick-children>.pick-mat:nth-child(2n){background:var(--zebra);border-radius:4px}.pick-flat>div:nth-child(2n) .pick-item{background:var(--zebra)}.pick-tree-body .pick-item:hover{background:var(--hover)}.pick-tree-body .pick-item .li-add{width:20px;height:20px}.pick-empty{padding:3px 8px;font-size:11px;font-style:italic}.pick-children{padding-left:16px}.pick-children>.pick-node{position:relative}.pick-children>.pick-node:before{content:"";border-left:1px solid var(--line-strong);position:absolute;top:0;bottom:0;left:-9px}.pick-children>.pick-node:last-child:before{height:14px;bottom:auto}.pick-children>.pick-node:after{content:"";border-top:1px solid var(--line-strong);width:9px;position:absolute;top:14px;left:-9px}.asm-versions{border-top:1px solid var(--line);flex:none;margin-top:14px;padding-top:12px}.model-page{max-width:1720px}.model-page .panel{margin-bottom:14px}.model-page .panel:last-child{margin-bottom:0}.model-page .err{border-radius:var(--r);color:var(--red);background:#f6e3e4;border:1px solid #e0adb1;gap:8px;padding:9px 12px;font-size:12.5px;display:flex}.model-page .preset-bar{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.model-page .preset-lead{letter-spacing:.1em;text-transform:uppercase;color:var(--tx-2);margin-right:4px;font-size:11px;font-weight:700}.model-page .preset-chip{border:1px solid var(--line-strong);background:var(--bg-1);height:28px;color:var(--tx-1);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:0 13px;font-size:12.5px;transition:background .1s,border-color .1s,color .1s;display:inline-flex}.model-page .preset-chip:hover{background:var(--bg-2);color:var(--tx-0)}.model-page .preset-chip.on{background:var(--sel);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.model-page .preset-chip.new{color:var(--tx-2);border-style:dashed}.model-page .preset-chip.new:hover{color:var(--accent-ink);border-color:var(--accent)}.model-page .preset-chip .dot{background:var(--amber);border-radius:50%;flex:none;width:6px;height:6px}.model-page .preset-active{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:9px;margin-top:12px;padding-top:12px;display:flex}.model-page .preset-active .pa-name{font-family:var(--font-display);color:var(--forge);font-size:15px;font-weight:600}.model-page .preset-active .pa-dirty{color:var(--amber);align-items:center;gap:6px;font-size:11.5px;display:inline-flex}.model-page .preset-active .pa-dirty .dot{background:var(--amber);border-radius:50%;width:6px;height:6px}.model-page .preset-active .grow{flex:1}.model-page .name-edit{align-items:center;gap:6px;display:inline-flex}.model-page .name-edit input{width:190px;height:28px}.model-page .build-sec{border-top:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;display:flex}.model-page .build-sec:first-child{border-top:none;padding-top:0}.model-page .build-sec .lbl{color:var(--tx-0);font-size:13px;font-weight:600}.model-page .build-sec .hint{color:var(--tx-2);max-width:62ch;margin-top:3px;font-size:12px}.model-page .build-sec .hint b{color:var(--tx-0);font-weight:700}.model-page .metrics{border:1px solid var(--line);border-top:2px solid var(--bronze);border-radius:var(--r);background:var(--bg-inset);flex-wrap:wrap;display:flex;overflow:hidden}.model-page .metric{border-right:1px solid var(--line);flex:1;min-width:100px;padding:10px 16px}.model-page .metric:last-child{border-right:none}.model-page .metric .mv{font-family:var(--font-mono);color:var(--tx-0);letter-spacing:-.01em;font-size:20px;font-weight:700;line-height:1}.model-page .metric .mk{letter-spacing:.1em;text-transform:uppercase;color:var(--tx-2);margin-top:6px;font-size:10px}.model-page .metric.accent .mv{color:var(--accent-ink)}.model-page .metric.cyan .mv{color:var(--cyan)}.model-page .metric.green .mv{color:var(--green)}.model-page .build-controls{border-top:1px solid var(--line);flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:2px;padding-top:14px;display:flex}.model-page .fld{flex-direction:column;gap:5px;display:flex}.model-page .fld>span{letter-spacing:.03em;color:var(--tx-2);font-size:11px}.model-page .fld input{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--r);height:32px;color:var(--tx-0);padding:0 11px;font-size:12.5px}.model-page .fld input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5e81ac26}.model-page .fld input[readonly]{background:var(--bg-2);color:var(--tx-2)}.model-page .prog-head{color:var(--tx-2);justify-content:space-between;margin-bottom:5px;font-size:12px;display:flex}.model-page .prog-head b{color:var(--tx-0)}.model-page .prog{background:var(--bg-2);border-radius:999px;height:8px;overflow:hidden}.model-page .prog>i{background:var(--accent);border-radius:999px;height:100%;transition:width .3s;display:block}.model-page .jobcard{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.model-page .jobcard+.jobcard{margin-top:6px}.model-page .jobcard-head{align-items:center;gap:9px;padding:8px 11px;display:flex}.model-page .jobcard-head.sel{background:var(--sel)}.model-page .jobcard-head .jc-btn{cursor:pointer;text-align:left;min-width:0;color:var(--tx-0);background:0 0;border:none;flex:1;align-items:center;gap:8px;padding:0;font-weight:600;display:flex}.model-page .jobcard-head .jc-btn .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.model-page .jobcard-head .tw{color:var(--tx-3);flex:none;font-size:10px;transition:transform .1s}.model-page .jobcard-head .tw.open{transform:rotate(90deg)}.model-page .jobcard-head .jc-meta{font-family:var(--font-mono);color:var(--tx-3);flex:none;margin-left:auto;font-size:11px;font-weight:400}.model-page .catcard{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.model-page .catcard+.catcard{margin-top:6px}.model-page .catcard-head{align-items:center;gap:9px;padding:8px 11px;display:flex}.model-page .catcard-head.on{background:var(--bg-2)}.model-page .catcard-head .cc-btn{cursor:pointer;text-align:left;color:var(--tx-0);background:0 0;border:none;flex:1;align-items:center;gap:8px;padding:0;font-weight:600;display:flex}.model-page .catcard-head .tw{color:var(--tx-3);font-size:10px;transition:transform .1s}.model-page .catcard-head .tw.open{transform:rotate(90deg)}.model-page .catcard-head .cc-meta{font-family:var(--font-mono);color:var(--tx-3);margin-left:auto;font-size:11px;font-weight:400}.model-page .train-cmd{align-items:stretch;gap:8px;display:flex}.model-page .train-cmd input{flex:1}.model-page .thumb{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:4px;width:36px;height:36px;display:block}.model-page .previews{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.model-page .previews img{border:1px solid var(--line);border-radius:6px;width:100%}.model-page .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.model-page h4{font-family:var(--font-display);color:var(--forge);margin:16px 0 7px;font-size:14px;font-weight:600}.model-page .mm-kpi{margin-bottom:14px}.mm-layout{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:14px;display:grid}@media (width<=1180px){.mm-layout{grid-template-columns:1fr}}.mm-rail{position:sticky;top:14px}.mm-rail .panel-body{max-height:calc(100vh - 230px);padding:10px;overflow:auto}@media (width<=1180px){.mm-rail{position:static}.mm-rail .panel-body{max-height:none}}.mm-rail-search{width:100%;margin-bottom:9px}.mm-list{flex-direction:column;gap:6px;display:flex}.mm-model{text-align:left;border:1px solid var(--line);border-radius:var(--r);background:var(--bg-1);cursor:pointer;flex-direction:column;gap:7px;width:100%;padding:10px 11px;transition:background .1s,border-color .1s;display:flex}.mm-model:hover{background:var(--bg-2)}.mm-model.on{border-color:var(--accent);background:var(--sel);box-shadow:inset 3px 0 0 var(--accent)}.mm-model.custom{border-style:dashed}.mm-model .mm-top{align-items:center;gap:8px;min-width:0;display:flex}.mm-model .mm-nm{color:var(--tx-0);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.mm-model.on .mm-nm{color:var(--accent-ink)}.mm-model .mm-status{letter-spacing:.06em;text-transform:uppercase;color:var(--tx-2);flex:none;align-items:center;gap:5px;margin-left:auto;font-size:9.5px;font-weight:700;display:inline-flex}.mm-model .mm-status .dot{background:var(--tx-3);border-radius:50%;width:7px;height:7px}.mm-model .mm-status.built .dot{background:var(--green)}.mm-model .mm-status.dirty .dot{background:var(--amber)}.mm-model .mm-status.dirty{color:var(--amber)}.mm-model .mm-figs{font-family:var(--font-mono);color:var(--tx-3);gap:13px;font-size:11px;display:flex}.mm-model .mm-figs b{color:var(--tx-1)}.mm-rail-empty{text-align:center;color:var(--tx-3);padding:20px 8px;font-size:12px}.mm-work-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mm-work-head .wh-name{font-family:var(--font-display);color:var(--forge);font-size:19px;font-weight:600}.mm-work-head .grow{flex:1}.mm-work-head .pa-dirty{color:var(--amber);align-items:center;gap:6px;font-size:11.5px;display:inline-flex}.mm-work-head .pa-dirty .dot{background:var(--amber);border-radius:50%;width:6px;height:6px}.mm-recipe{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.mm-card{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-inset);flex-direction:column;gap:7px;min-height:118px;padding:12px 14px;display:flex}.mm-card .mc-k{letter-spacing:.1em;text-transform:uppercase;color:var(--tx-2);font-size:10px;font-weight:700}.mm-card .mc-v{font-family:var(--font-mono);color:var(--tx-0);font-size:20px;font-weight:700;line-height:1.1}.mm-card .mc-v small{font-family:var(--font-ui);color:var(--tx-2);font-size:12px;font-weight:400}.mm-card .mc-v.slug{word-break:break-all;color:var(--accent-ink);font-size:13px}.mm-card .mc-sub{color:var(--tx-2);font-size:11.5px}.mm-card .mc-actions{margin-top:auto}.mm-card input.mc-num{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--r);width:88px;height:30px;color:var(--tx-0);font-family:var(--font-mono);padding:0 10px;font-size:14px}.mm-card input.mc-num:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5e81ac26}.mm-bal{flex-direction:column;display:flex}.mm-bal-row{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(120px,1.4fr) 90px minmax(120px,3fr) 70px 74px;align-items:center;gap:12px;padding:6px 0;display:grid}.mm-bal-row:last-child{border-bottom:none}.mm-bal .bc-code{color:var(--tx-0);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.mm-bal .bc-sys{color:var(--tx-3);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.mm-bal .bc-track{background:var(--bg-2);border:1px solid var(--line);border-radius:4px;height:9px;overflow:hidden}.mm-bal .bc-fill{background:var(--cyan);opacity:.85;border-radius:3px;height:100%}.mm-bal .bc-fill.low{background:var(--amber)}.mm-bal .bc-fill.dropped,.mm-bal .bc-fill.off{background:var(--tx-3);opacity:.5}.mm-bal .bc-qty{font-family:var(--font-mono);text-align:right;color:var(--tx-1);font-size:12px}.mm-nobuild{border:1px dashed var(--line-strong);border-radius:var(--r);background:var(--bg-inset);color:var(--tx-2);align-items:center;gap:12px;padding:18px;font-size:13px;display:flex}.mm-trained{flex-wrap:wrap;gap:7px;display:flex}.mm-trained .tm-chip{border:1px solid var(--line-strong);background:var(--bg-1);height:26px;font-family:var(--font-mono);color:var(--tx-1);border-radius:999px;align-items:center;gap:6px;padding:0 11px;font-size:12px;display:inline-flex}.mm-trained .tm-chip .dot{background:var(--green);border-radius:50%;width:6px;height:6px}.mm-tax-sys{font-family:var(--font-display);color:var(--forge);align-items:center;gap:8px;margin:14px 0 6px;font-size:13px;font-weight:600;display:flex}.mm-tax-sys .n{font-family:var(--font-mono);color:var(--tx-3);font-size:11px;font-weight:400}.mm-seed{flex-direction:column;gap:8px;margin-top:4px;display:flex}.mm-seed label{border:1px solid var(--line);border-radius:var(--r);cursor:pointer;background:var(--bg-1);align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.mm-seed label:hover{background:var(--bg-2)}.mm-seed label.on{border-color:var(--accent);background:var(--sel)}.mm-seed .s-body{flex-direction:column;gap:2px;display:flex}.mm-seed .s-t{color:var(--tx-0);font-size:13px;font-weight:600}.mm-seed .s-d{color:var(--tx-2);font-size:11.5px}.model-page .mm-modal-foot{background:var(--bg-1);border-top:1px solid var(--line);align-items:center;gap:8px;margin:14px -14px -14px;padding:11px 14px;display:flex;position:sticky;bottom:0}.model-page .cadm-scroll{flex-direction:column;gap:8px;display:flex}.model-page .cadm-cat{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.model-page .cadm-cat-head{background:var(--bg-2);align-items:center;gap:8px;padding:8px 11px;display:flex}.model-page .cadm-cat-head .tw{color:var(--tx-3);font-size:10px;transition:transform .1s}.model-page .cadm-cat-head .tw.open{transform:rotate(90deg)}.model-page .cadm-cat-head .nm{font-family:var(--font-display);color:var(--forge);font-size:14px;font-weight:600}.model-page .cadm-cat-head .n{font-family:var(--font-mono);color:var(--tx-3);font-size:11px}.model-page .cadm-cat-head .acts{gap:4px;margin-left:auto;display:flex}.model-page .cadm-in{background:var(--bg-1);border:1px solid var(--line-strong);width:100%;height:26px;color:var(--tx-0);font-size:12px;font-family:var(--font-ui);border-radius:3px;padding:0 8px}.model-page .cadm-in:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #5e81ac2e}.model-page select.cadm-in{cursor:pointer}.model-page .cadm-thumb{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:3px;width:28px;height:28px;display:block}.model-page .cadm-del{cursor:pointer;color:var(--tx-3);background:0 0;border:none;border-radius:3px;padding:2px 7px;font-size:13px;line-height:1}.model-page .cadm-del:hover{color:var(--red);background:#bf616a24}.model-page .cadm-create{flex-wrap:wrap}[data-theme=nordix-dark]{--bg-0:#141414;--bg-1:#232323;--bg-2:#2e2e2e;--bg-3:#3a3a3a;--bg-inset:#0c0c0c;--line:#ffffff1a;--line-soft:#ffffff0f;--line-strong:#ffffff2e;--tx-0:#f0f0f0;--tx-1:#ababab;--tx-2:#969696;--tx-3:#7a7a7a;--accent:#00c8e0;--accent-rgb:0 200 224;--accent-ink:#00c8e0;--forge:#f0f0f0;--bronze:#fb923c;--amber:#fb923c;--amber-dim:#a16207;--mustard:#d4a72c;--cyan:#00c8e0;--green:#2ecc71;--red:#e74c3c;--violet:#a78bfa;--blue:#89e;--labor:#f97316;--tree-l0:#eeeeec;--tree-l1:#c8c8c4;--sel:#00c8e01a;--hover:#ffffff0a;--zebra:#ffffff05;--band:#2a2a2a;--cat:#2e2e2e;--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"Inter", system-ui, sans-serif;--font-display:"Inter", system-ui, sans-serif;--r:4px}[data-theme=nordix-light]{--bg-0:#d4d7db;--bg-1:#e8eaed;--bg-2:#bec2c9;--bg-3:#c7cacf;--bg-inset:#c5c8cc;--line:#00000024;--line-soft:#00000014;--line-strong:#0000003d;--tx-0:#0d1117;--tx-1:#2d3748;--tx-2:#4a5568;--tx-3:#718096;--accent:#0891b2;--accent-rgb:8 145 178;--accent-ink:#0891b2;--forge:#0d1117;--bronze:#c2410c;--amber:#c2410c;--amber-dim:#d9a662;--mustard:#a16207;--cyan:#0891b2;--green:#059669;--red:#dc2626;--violet:#8b5cf6;--blue:#2563eb;--labor:#ea580c;--tree-l0:#14181c;--tree-l1:#3b4148;--sel:#0891b21a;--hover:#0000000b;--zebra:#00000006;--band:#dbdde0;--cat:#dfe1e4;--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"Inter", system-ui, sans-serif;--font-display:"Inter", system-ui, sans-serif;--r:4px}[data-theme^=nordix] body{font-variant-numeric:tabular-nums;font-size:13.5px}[data-theme^=nordix] *{scrollbar-color:var(--line-strong) transparent}[data-theme^=nordix] ::-webkit-scrollbar{width:8px;height:8px}[data-theme^=nordix] ::-webkit-scrollbar-track{background:var(--bg-1)}[data-theme^=nordix] ::-webkit-scrollbar-thumb{background:var(--line-strong);border:none;border-radius:4px}[data-theme^=nordix] ::-webkit-scrollbar-thumb:hover{background:rgb(var(--accent-rgb) / .25)}[data-theme^=nordix] ::selection{background:rgb(var(--accent-rgb) / .22)}[data-theme^=nordix] input:focus,[data-theme^=nordix] select:focus,[data-theme^=nordix] textarea:focus{border-color:var(--accent)!important;box-shadow:none!important}[data-theme^=nordix] .ce:focus,[data-theme^=nordix] .ledger-tbl input.ce.num:focus,[data-theme^=nordix] .cat-add input,[data-theme^=nordix] .cat-rename{background:var(--bg-1);box-shadow:none}[data-theme^=nordix] .btn:hover{border-color:var(--line-strong)}[data-theme^=nordix] .btn.primary{color:var(--accent);border-color:rgb(var(--accent-rgb) / .4);background:0 0}[data-theme^=nordix] .btn.primary:hover{background:rgb(var(--accent-rgb) / .1);border-color:var(--accent)}[data-theme^=nordix] .btn.lock-toggle.editing{color:var(--green);border-color:color-mix(in srgb, var(--green) 40%, transparent);background:0 0}[data-theme^=nordix] .btn.lock-toggle.editing:hover{background:color-mix(in srgb, var(--green) 10%, transparent)}[data-theme^=nordix] .seg-group button.on,[data-theme^=nordix] .assign-tabs .atab.on,[data-theme^=nordix] .to-toolrail .trail-btn.on,[data-theme^=nordix] .to-toolbar-h .t.on,[data-theme^=nordix] .to-tools .t.on,[data-theme^=nordix] .assigned-row .ar-apply.on,[data-theme^=nordix] .dbpick-row.on .cb{background:rgb(var(--accent-rgb) / .12);color:var(--accent);border-color:rgb(var(--accent-rgb) / .4)}[data-theme^=nordix] .to-toolrail .trail-btn.on svg,[data-theme^=nordix] .to-toolbar-h .t.on svg,[data-theme^=nordix] .to-toolrail .trail-btn.circuits.on,[data-theme^=nordix] .to-toolrail .trail-btn.circuits.on svg{color:var(--accent)}[data-theme^=nordix] .lib-item .li-add:hover{background:rgb(var(--accent-rgb) / .12);color:var(--accent);border-color:var(--accent)}[data-theme^=nordix] .assigned-row .ar-kind{color:var(--cyan);background:color-mix(in srgb, var(--cyan) 14%, transparent);border:1px solid color-mix(in srgb, var(--cyan) 40%, transparent)}[data-theme^=nordix] .assigned-row .ar-kind.material{color:var(--cyan);background:color-mix(in srgb, var(--cyan) 14%, transparent);border-color:color-mix(in srgb, var(--cyan) 40%, transparent)}[data-theme^=nordix] .assigned-row .ar-kind.assembly{color:var(--violet);background:color-mix(in srgb, var(--violet) 14%, transparent);border-color:color-mix(in srgb, var(--violet) 40%, transparent)}[data-theme^=nordix] .assigned-row .ar-kind.custom{color:var(--labor);background:color-mix(in srgb, var(--labor) 14%, transparent);border-color:color-mix(in srgb, var(--labor) 40%, transparent)}[data-theme^=nordix] .tag{background:var(--bg-2);border-color:var(--line-strong);color:var(--tx-1)}[data-theme^=nordix] .tag.amber{color:var(--amber);border-color:color-mix(in srgb, var(--amber) 40%, transparent);background:color-mix(in srgb, var(--amber) 12%, transparent)}[data-theme^=nordix] .tag.cyan{color:var(--cyan);border-color:color-mix(in srgb, var(--cyan) 40%, transparent);background:color-mix(in srgb, var(--cyan) 12%, transparent)}[data-theme^=nordix] .tag.green{color:var(--green);border-color:color-mix(in srgb, var(--green) 40%, transparent);background:color-mix(in srgb, var(--green) 12%, transparent)}[data-theme^=nordix] .tag.violet{color:var(--violet);border-color:color-mix(in srgb, var(--violet) 40%, transparent);background:color-mix(in srgb, var(--violet) 12%, transparent)}[data-theme^=nordix] .tag.blue{color:var(--blue);border-color:color-mix(in srgb, var(--blue) 40%, transparent);background:color-mix(in srgb, var(--blue) 12%, transparent)}[data-theme^=nordix] .tag.red{color:var(--red);border-color:color-mix(in srgb, var(--red) 40%, transparent);background:color-mix(in srgb, var(--red) 12%, transparent)}[data-theme^=nordix] .status-select{background-color:var(--bg-2);border-color:var(--line-strong);color:var(--tx-1)}[data-theme^=nordix] .status-select option{background:var(--bg-1);color:var(--tx-0)}[data-theme^=nordix] .status-select.amber{color:var(--amber);border-color:color-mix(in srgb, var(--amber) 40%, transparent);background-color:color-mix(in srgb, var(--amber) 12%, transparent)}[data-theme^=nordix] .status-select.cyan{color:var(--cyan);border-color:color-mix(in srgb, var(--cyan) 40%, transparent);background-color:color-mix(in srgb, var(--cyan) 12%, transparent)}[data-theme^=nordix] .status-select.green{color:var(--green);border-color:color-mix(in srgb, var(--green) 40%, transparent);background-color:color-mix(in srgb, var(--green) 12%, transparent)}[data-theme^=nordix] .status-select.violet{color:var(--violet);border-color:color-mix(in srgb, var(--violet) 40%, transparent);background-color:color-mix(in srgb, var(--violet) 12%, transparent)}[data-theme^=nordix] .status-select.blue{color:var(--blue);border-color:color-mix(in srgb, var(--blue) 40%, transparent);background-color:color-mix(in srgb, var(--blue) 12%, transparent)}[data-theme^=nordix] .status-select.red{color:var(--red);border-color:color-mix(in srgb, var(--red) 40%, transparent);background-color:color-mix(in srgb, var(--red) 12%, transparent)}[data-theme^=nordix] .banner{border-color:color-mix(in srgb, var(--amber) 35%, transparent);background:color-mix(in srgb, var(--amber) 8%, transparent)}[data-theme^=nordix] .banner.info{border-color:color-mix(in srgb, var(--blue) 35%, transparent);background:color-mix(in srgb, var(--blue) 8%, transparent)}[data-theme^=nordix] .check.warn{background:color-mix(in srgb, var(--amber) 7%, transparent)}[data-theme^=nordix] .check.fail{background:color-mix(in srgb, var(--red) 7%, transparent)}[data-theme^=nordix] .model-page .err{border-color:color-mix(in srgb, var(--red) 35%, transparent);background:color-mix(in srgb, var(--red) 10%, transparent)}[data-theme^=nordix] .app-error-detail,[data-theme^=nordix] .auth-err{color:var(--red)}[data-theme^=nordix] .ledger-tbl .ar-del:hover,[data-theme^=nordix] .assigned-row .ar-del:hover,[data-theme^=nordix] .review-objects-layout .ar-del:hover,[data-theme^=nordix] .tbl .ar-del:hover,[data-theme^=nordix] .ctx-menu button.danger:hover{background:color-mix(in srgb, var(--red) 12%, transparent);color:var(--red)}[data-theme^=nordix] .ledger-head .btn.ledger-add-mat{border-color:color-mix(in srgb, var(--cyan) 40%, transparent)}[data-theme^=nordix] .ledger-head .btn.ledger-add-mat:hover{background:color-mix(in srgb, var(--cyan) 10%, transparent)}[data-theme^=nordix] .ledger-head .btn.ledger-add-asm{border-color:color-mix(in srgb, var(--violet) 40%, transparent)}[data-theme^=nordix] .ledger-head .btn.ledger-add-asm:hover{background:color-mix(in srgb, var(--violet) 10%, transparent)}[data-theme^=nordix] tr.folder-row td{background:var(--bg-2)}[data-theme^=nordix] tr.folder-row:hover td{background:var(--bg-3)}[data-theme^=nordix] tr.folder-row.drop-target td,[data-theme^=nordix] tr.folder-row.drop-into td,[data-theme^=nordix] .explorer-bar .bc-seg.drop-target{background:rgb(var(--accent-rgb) / .15)}[data-theme^=nordix] table.tbl tbody tr.row-sel td{background:var(--sel)!important}[data-theme^=nordix] .bulk-bar{border-color:rgb(var(--accent-rgb) / .35)}[data-theme^=nordix] .review-dbpanel .pick-tree-body .pick-item:hover,[data-theme^=nordix] .review-dbpanel .pick-tree-body .lib-item:hover{background:var(--sel)!important}[data-theme^=nordix] .ledger-tbl tr.asm-head td{background:color-mix(in srgb, var(--violet) 7%, transparent)}[data-theme^=nordix] table.tbl thead th{border:1px solid var(--line);border-bottom:1px solid var(--line-strong)}[data-theme^=nordix] .brand-inline .name,[data-theme^=nordix] .page-head .titles h1{text-shadow:none}[data-theme^=nordix] .brand-inline .name{font-weight:600}[data-theme^=nordix] .brand-inline .name b{color:var(--accent);font-weight:700}[data-theme^=nordix] .brand-inline .mark{background:rgb(var(--accent-rgb) / .12);color:var(--accent);border:1px solid rgb(var(--accent-rgb) / .4);box-shadow:none}[data-theme^=nordix] .brand-inline .mark svg{filter:none}[data-theme^=nordix] .owner-badge{box-shadow:none}[data-theme^=nordix] .ledger{box-shadow:none;border-top-color:var(--accent)}[data-theme^=nordix] .led-stat:hover{background:var(--hover)}[data-theme^=nordix] .page-head:after{background:var(--accent);opacity:1}[data-theme^=nordix] .model-page .metrics{border-top-color:var(--accent)}[data-theme^=nordix] .seg-tabs button.on{box-shadow:none;border:1px solid var(--line-strong)}[data-theme^=nordix] .dev-bar{box-shadow:inset 0 2px 0 rgb(var(--accent-rgb) / .55)}[data-theme^=nordix] .dev-tag{color:var(--amber);background:color-mix(in srgb, var(--amber) 10%, transparent);border-color:color-mix(in srgb, var(--amber) 40%, transparent)}[data-theme^=nordix] .navtab.dev-enter,[data-theme^=nordix] .navtab.dev-enter svg{color:var(--amber)}[data-theme^=nordix] .linear-info-card .lic-head{background:var(--bg-2);color:var(--accent);border-bottom:1px solid var(--line)}[data-theme^=nordix] .section-menu,[data-theme^=nordix] .modal,[data-theme^=nordix] .palette,[data-theme^=nordix] .ctx-menu,[data-theme^=nordix] .linear-info-card,[data-theme^=nordix] .auth-card,[data-theme^=nordix] .app-error-card,[data-theme^=nordix] .sched-card,[data-theme^=nordix] .sched-method,[data-theme^=nordix] .sched-card .sc-icon,[data-theme^=nordix] .seg-tabs,[data-theme^=nordix] .assign-tabs .atab,[data-theme^=nordix] .ledger-left,[data-theme^=nordix] .ledger-wrap,[data-theme^=nordix] .req-row,[data-theme^=nordix] .check,[data-theme^=nordix] .empty-card,[data-theme^=nordix] .home-welcome .hw-mark,[data-theme^=nordix] .dev-tag,[data-theme^=nordix] .dev-tab,[data-theme^=nordix] .model-page .previews img,[data-theme^=nordix] .auth-card input,[data-theme^=nordix] .app-error-detail,[data-theme^=nordix] .owner-badge,[data-theme^=nordix] .model-page .preset-chip,[data-theme^=nordix] .mm-trained .tm-chip,[data-theme^=nordix] .panel-soon,[data-theme^=nordix] .navtab .badge,[data-theme^=nordix] .tree .node .ncount,[data-theme^=nordix] .req-flag,[data-theme^=nordix] .model-page .prog,[data-theme^=nordix] .model-page .prog>i{border-radius:4px}[data-theme^=nordix] .nodes-tree .node .nm{color:var(--tree-l0)}[data-theme^=nordix] .nodes-tree .node.child .nm{color:var(--tree-l1);font-weight:500}[data-theme^=nordix] .nodes-tree .obj-row .obj-key{color:var(--tx-1)}[data-theme^=nordix] .nodes-tree .obj-row.sel .obj-key{color:var(--accent-ink)}[data-theme=nordix-dark]{--sheet-dim:.78}[data-theme=nord-dark]{--sheet-dim:.85}[data-theme=nordix-dark] .pdf-stage .sheet-base,[data-theme=nord-dark] .pdf-stage .sheet-base{filter:brightness(var(--sheet-dim))}.labor-col-pick{align-items:center;gap:7px;display:flex}.labor-col-pick select{height:30px;padding:0 8px;font-size:12.5px}.labor-col-note{padding:2px 2px 8px;font-size:12px}.tbl td.labor-override{box-shadow:inset 0 0 0 2px var(--labor-override);border-radius:3px;position:relative}.tbl td.labor-override .override-clear{cursor:pointer;width:17px;height:17px;color:var(--tx-2);opacity:0;background:0 0;border:none;padding:0;font-size:12px;line-height:1;transition:opacity .12s;position:absolute;top:50%;right:3px;transform:translateY(-50%)}.tbl tr:hover td.labor-override .override-clear{opacity:1}.tbl td.labor-override .override-clear:hover{color:var(--tx-0)}.page.bom-page{max-width:none;padding-left:10px;padding-right:10px}.bom-page table.tbl{width:max-content;min-width:100%}.bom-page td.cell-name,.bom-page td.edit.name{min-width:320px}.bom-page td.edit.name .ce.name{width:auto;min-width:100%}
