:root{--bg:#f3f4f6;--panel:#ffffff;--fg:#1b2330;--muted:#64708a;--line:#d9dee7;--line2:#eceff4;--sb:#1f2a3c;--sb-fg:#c9d2e2;--sb-on:#111a29;--accent:#1f5fbf;--accent-fg:#ffffff;--accent-soft:#e8f0fc;--new:#c27a00;--new-soft:#fff6e3;--ok:#1f8a4c;--warn:#b45309;--bad:#c0392b;--info:#2563eb;--src-j:#1f5fbf;--src-d:#c27a00;--src-s:#1f8a4c;--src-u:#7c3aed;--src-c:#0f766e;--src-x:#6b7280;--brand:#d94f0a;--purple:#7c3aed;--shadow:0 8px 24px rgba(15,23,42,.14);--font:"IBM Plex Sans",system-ui,Segoe UI,Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Consolas,monospace}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg:#121821;--panel:#1a2230;--fg:#e6ebf3;--muted:#97a3b8;--line:#2d3747;--line2:#232d3b;--sb:#0d131c;--sb-fg:#aab6c8;--sb-on:#1a2432;--accent:#6fa3f5;--accent-fg:#0b1220;--accent-soft:#1c2a40;--new:#f0a93b;--new-soft:#2d2410;--ok:#4ade80;--warn:#f5b041;--bad:#f87171;--info:#60a5fa;--src-j:#6fa3f5;--src-d:#f0a93b;--src-s:#4ade80;--src-u:#b793fb;--src-c:#5eead4;--src-x:#9aa5b5;--brand:#fb7a3c;--purple:#b793fb;--shadow:0 8px 24px rgba(0,0,0,.45);color-scheme:dark}}:root[data-theme=dark]{--bg:#121821;--panel:#1a2230;--fg:#e6ebf3;--muted:#97a3b8;--line:#2d3747;--line2:#232d3b;--sb:#0d131c;--sb-fg:#aab6c8;--sb-on:#1a2432;--accent:#6fa3f5;--accent-fg:#0b1220;--accent-soft:#1c2a40;--new:#f0a93b;--new-soft:#2d2410;--ok:#4ade80;--warn:#f5b041;--bad:#f87171;--info:#60a5fa;--src-j:#6fa3f5;--src-d:#f0a93b;--src-s:#4ade80;--src-u:#b793fb;--src-c:#5eead4;--src-x:#9aa5b5;--brand:#fb7a3c;--purple:#b793fb;--shadow:0 8px 24px rgba(0,0,0,.45);color-scheme:dark}:root{--text: var(--fg);--panel-2: var(--line2);--green: var(--ok);--amber: var(--warn);--red: var(--bad);--orange: var(--brand);--panel2: var(--line2);--ink: var(--fg);--bg2: var(--line2);--row-alt: var(--line2);--amber-bg: var(--new-soft);--green-bg: color-mix(in srgb, var(--ok) 12%, var(--panel))}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px}a{color:inherit;text-decoration:none}.page-title{font-size:22px;font-weight:700;margin:0 0 4px}.page-sub{color:var(--muted);margin:0 0 22px}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 18px}.stat .n{font-size:28px;font-weight:700}button.stat{color:var(--text);font-weight:400}.stat .l{color:var(--muted);font-size:12px;margin-top:2px;text-transform:uppercase;letter-spacing:.4px}.rowlabel{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:4px 0 8px}.bignum{font-size:34px;font-weight:700;line-height:1}.board{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px}.col{background:var(--panel);border:1px solid var(--line);border-radius:10px;min-width:210px;flex-shrink:0}.col h4{margin:0;padding:12px 14px;font-size:12px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.col .pill{background:var(--panel-2);border-radius:10px;padding:0 8px;color:var(--muted)}.col-body{padding:10px;display:flex;flex-direction:column;gap:8px;min-height:40px}.jobcard{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:10px;cursor:pointer}.jobcard:hover{border-color:var(--accent)}.jobcard .jn{font-weight:700}.jobcard .sub{color:var(--muted);font-size:12px;margin-top:3px}table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.4px}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.sortable:hover,th.sortable.sorted{color:var(--text)}th.sortable .sort-arrow{display:inline-block;min-width:12px;margin-left:3px;font-size:9px}tr:last-child td{border-bottom:none}tbody tr{cursor:pointer}tbody tr:hover{background:var(--panel-2)}.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600}.badge.green{background:#22c55e26;color:var(--green)}.badge.amber{background:#f59e0b26;color:var(--amber)}.badge.blue{background:#3b82f626;color:var(--accent)}.badge.purple{background:#a855f726;color:var(--purple)}.badge.gray{background:#8b97a626;color:var(--muted)}.badge.orange{background:#f2672229;color:var(--orange)}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.detail-grid>*{min-width:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:18px}.panel h3{margin:0 0 14px;font-size:14px}.kv{display:grid;grid-template-columns:140px 1fr;gap:8px 12px}.kv .k{color:var(--muted)}.timeline{list-style:none;margin:0;padding:0}.timeline li{padding:8px 0 8px 18px;border-left:2px solid var(--line);position:relative}.timeline li:before{content:"";position:absolute;left:-6px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--accent)}.timeline .t{color:var(--muted);font-size:12px}button,select,input,textarea{font-family:inherit;font-size:14px;border-radius:7px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);padding:8px 10px}button{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600;cursor:pointer}button.ghost{background:transparent;border-color:var(--line);color:var(--text)}button:hover{opacity:.92}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}label{display:block;color:var(--muted);font-size:12px;margin:10px 0 4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.muted{color:var(--muted)}.right{margin-left:auto}.back{color:var(--muted);margin-bottom:12px;display:inline-block}.stub{border:1px dashed var(--line);border-radius:8px;padding:10px 12px;color:var(--muted);font-size:12px}.section{margin-bottom:16px}.section-head{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.5px;padding:8px 12px;border-radius:8px 8px 0 0;background:var(--panel-2);border:1px solid var(--line);border-bottom:none}.section-head.purple{border-left:3px solid var(--purple)}.section-head.blue{border-left:3px solid var(--accent)}.section-head.amber{border-left:3px solid var(--amber)}.buckets{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:10px;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:0 0 8px 8px;overflow-x:auto}.bucket{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;min-width:180px}.bucket-head{font-size:11px;font-weight:600;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:6px}.bucket-body{padding:8px;display:flex;flex-direction:column;gap:7px;min-height:30px}.bucket .jobcard{background:var(--panel);padding:8px}.bucket .jobcard .jn{font-size:13px}.bucket .jobcard .sub{font-size:11px}.datechip{margin-top:5px;font-size:10px;color:var(--accent);background:#3b82f61f;display:inline-block;padding:1px 6px;border-radius:10px}.empty{color:var(--line);text-align:center;font-size:12px;padding:6px 0}.combo{position:relative}.combo-control{display:flex;align-items:center;gap:6px;background:var(--panel-2);border:1px solid var(--line);border-radius:7px;padding:2px 8px;min-height:38px;cursor:text}.combo-control input{border:none;background:transparent;padding:8px 0;flex:1;outline:none}.combo-clear{background:transparent;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:0 4px}.combo-menu{position:absolute;z-index:30;top:42px;left:0;right:auto;min-width:100%;width:max-content;max-width:min(460px,90vw);max-height:320px;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #0006}.combo-item{padding:9px 12px;cursor:pointer;font-size:13px;white-space:normal;overflow-wrap:anywhere}.combo-item:hover{background:var(--panel-2)}.combo-add{padding:9px 12px;cursor:pointer;color:var(--accent);font-weight:600;font-size:13px;border-bottom:1px solid var(--line)}.combo-add:hover{background:var(--panel-2)}.combo-addform{padding:12px;border-bottom:1px solid var(--line)}.combo-addform label{margin-top:8px}.combo-addform input,.combo-addform select{width:100%}.ticket{background:#fff;color:#111;border-radius:8px;padding:32px;max-width:760px;margin:0 auto;position:relative;overflow:hidden}.watermark{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%) rotate(-28deg);font-size:40px;font-weight:800;letter-spacing:3px;color:#c0392b38;border:5px solid rgba(192,57,43,.22);padding:10px 26px;border-radius:8px;white-space:nowrap;pointer-events:none;z-index:5;text-align:center}@media print{.watermark{color:#c0392b4d;border-color:#c0392b4d;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.ticket-top{display:flex;justify-content:space-between;border-bottom:2px solid #111;padding-bottom:12px}.ticket-title{font-size:20px;font-weight:800}.ticket-co{font-weight:700;margin:2px 0 6px}.muted2{color:#555;font-size:12px;line-height:1.5}.ticket-meta{border-collapse:collapse;height:fit-content}.ticket-meta td{border:1px solid #999;padding:3px 10px;font-size:12px}.ticket-meta td:first-child{background:#f0f0f0;font-weight:700}.ticket-attn{margin:14px 0;font-size:13px}.ticket-info{width:100%;border-collapse:collapse;margin:10px 0}.ticket-info th,.ticket-info td{border:1px solid #999;padding:6px 8px;font-size:12px;text-align:left;color:#111}.ticket-info th{background:#f0f0f0}.ticket-lines{width:100%;border-collapse:collapse;margin-top:8px}.ticket-lines th,.ticket-lines td{border:1px solid #999;padding:6px 8px;font-size:12px;color:#111}.ticket-lines th{background:#f0f0f0;text-align:left}.ticket-lines .num{text-align:right}.ticket-lines tfoot td{background:#fafafa}.ticket-terms{margin-top:16px;font-size:11px;color:#333}.sign-row{display:flex;gap:24px;margin-top:22px;font-size:13px;color:#111}.sign-line{display:inline-block;border-bottom:1px solid #111;width:220px;margin-left:6px}.sign-line.short{width:120px}@media print{.sb,.tabs,.shell-banner,.no-print{display:none!important}.app{display:block!important}.content{padding:0!important;max-width:none!important}body{background:#fff}.ticket{box-shadow:none}}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px;width:min(380px,100%)}.login-wrap{padding:16px}.login-card input{width:100%}.demo-users{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.demo-chip{display:inline-block;background:var(--panel-2);border:1px solid var(--line);border-radius:14px;padding:3px 10px;margin:0 6px 6px 0;font-size:12px;cursor:pointer}.demo-chip:hover{border-color:var(--accent);color:var(--accent)}.userbox{padding:16px 20px;margin-top:18px;border-top:1px solid var(--line)}.userbox .uname{font-weight:600}.userbox .urole{color:var(--muted);font-size:12px;margin-bottom:10px}.userbox button{width:100%}button.danger{background:transparent;border-color:var(--red);color:var(--red)}button.danger:hover{background:#ef44441f}.badge.red{background:#ef444426;color:var(--red)}.filebtn{display:inline-block;background:var(--accent);color:var(--accent-fg);border-radius:7px;padding:8px 12px;font-weight:600;font-size:14px;cursor:pointer}.filebtn:hover{opacity:.92}.ticket table{background:#fff}.ticket-info th,.ticket-info td,.ticket-lines th,.ticket-lines td{background:#fff;color:#111}.ticket-info th,.ticket-lines th{background:#f0f0f0}.ticket-lines tfoot td{background:#fafafa;color:#111}.cardmeta{font-size:11px;color:var(--muted);margin-top:4px;display:flex;flex-wrap:wrap;gap:4px}.ticketcard{border-left:3px solid var(--amber)}.jobcard.cancelled{opacity:.55;border-left:3px dashed var(--muted);background:var(--panel-2)}.jobcard.cancelled .jn{text-decoration:line-through}.ticket-row{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:10px;background:var(--panel-2)}.ticket-row .right{margin-left:auto;font-size:12px}.board-controls{display:flex;align-items:center;gap:8px;margin:4px 0 14px;flex-wrap:wrap}.board-controls select{padding:5px 8px}.section-head.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.section-head.clickable:hover{filter:brightness(1.08)}.bucket-body.scroll{overflow-y:auto}.bucket-body.scroll::-webkit-scrollbar{width:8px}.bucket-body.scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.bucket-head{align-items:center;gap:6px}.bucket-sort{font-size:10px;padding:1px 4px;background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:5px;max-width:90px}.diffbox{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0 4px;padding:12px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2)}.diffbox .n{font-size:18px;font-weight:700;margin-top:2px}.diffbox .n.hot{color:var(--amber)}.diffbox .n.cool{color:var(--green)}.diffbox.over{border-left:3px solid var(--amber)}.diffbox.under{border-left:3px solid var(--green)}.field-error{outline:2px solid var(--red)!important;outline-offset:2px;border-radius:8px;background:#ef444414!important;transition:background .3s ease}.dr-page{padding-bottom:8px}.dr-err{color:var(--red);font-size:13px;margin:6px 0 0}.dr-sec{padding:14px 16px}.dr-sec.has-needs{border-left:3px solid var(--red)}.dr-sec-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;cursor:pointer;-webkit-user-select:none;user-select:none}.dr-sec-head h3{margin:0;font-size:14px}.dr-sec-meta{font-size:12px;margin-left:auto}.dr-sec-body{margin-top:12px}.dr-subhead{margin:16px 0 6px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.dr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 14px}.dr-grid-wide{grid-template-columns:1fr}.dr-grid input,.dr-grid select,.dr-grid textarea{width:100%}.dr-field.wide{grid-column:1 / -1}.dr-field label{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:18px}.dr-field textarea{width:100%;resize:vertical}.dr-field.needs label{color:var(--red)}.dr-needs,input.dr-needs,select.dr-needs,textarea.dr-needs{border-color:var(--red)!important;background:#ef444412}.dr-unit{color:var(--muted);font-weight:400}.dr-req{color:var(--red)}.dr-check{display:flex!important;align-items:center;gap:6px;color:var(--text)!important;font-size:13px!important;margin:8px 0 0!important;cursor:pointer}.dr-check input{width:auto!important}input:disabled,select:disabled,textarea:disabled{opacity:.78;cursor:not-allowed}.fs-tag{display:inline-block;font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px;letter-spacing:.2px;white-space:nowrap}.fs-tag.filled{background:#3b82f626;color:var(--accent)}.fs-tag.carried{background:#a855f726;color:var(--purple)}.fs-tag.entered{background:#22c55e26;color:var(--green)}.fs-tag.needs{background:var(--red);color:#fff}.fs-tag.optional{background:#8b97a626;color:var(--muted);font-weight:500}.fs-tag.derived{background:var(--panel-2);color:var(--muted);border:1px solid var(--line)}.dr-banner{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;border-radius:8px;margin:0 0 14px;border:1px solid var(--line);border-left-width:3px;background:var(--panel);font-size:13px}.dr-banner.info{border-left-color:var(--purple)}.dr-banner.ok{border-left-color:var(--green)}.dr-banner.warn{border-left-color:var(--amber)}.dr-banner.err{border-left-color:var(--red);color:var(--text)}.dr-banner button{padding:4px 10px}.dr-tablewrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.dr-table{min-width:560px}.dr-table th,.dr-table td{padding:8px 10px;vertical-align:top}.dr-table .num,.dr-table th.num{text-align:right;white-space:nowrap}.dr-table.dr-rows td{padding:4px}.dr-table.dr-rows input{padding:6px}.dr-actions{white-space:nowrap}.dr-actions button{padding:4px 9px;margin-right:4px;font-size:12px}.dr-next td{background:#3b82f60f}.dr-row-bad td{background:#ef444414}.dr-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px 16px}.dr-kv>div{display:flex;flex-direction:column;gap:2px}.dr-kv .muted{font-size:11px;text-transform:uppercase;letter-spacing:.3px}.dr-photos{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.dr-photo{font-weight:500;font-size:13px;text-align:left}.dr-chip{padding:2px 8px;margin:2px 4px 2px 0;font-size:12px;font-weight:500}.dr-validation.bad{border-color:var(--red)}.dr-validation.good{border-color:var(--green)}.dr-vlist{list-style:none;margin:8px 0 0;padding:0}.dr-vlist li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:5px 0 5px 10px;border-left:3px solid var(--line);margin-bottom:4px;font-size:13px}.dr-vlist li.err{border-left-color:var(--red)}.dr-vlist li.warn{border-left-color:var(--amber)}.dr-vlist li button{padding:2px 8px;font-size:12px;font-weight:500}.dr-gate.gate-held{border-color:var(--red)}.dr-gate.gate-waiting{border-color:var(--amber)}.dr-gate.gate-passed{border-color:var(--green)}.dr-savebar{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;flex-wrap:wrap;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-top:8px;box-shadow:0 -6px 18px #0000002e}.dr-savebar-btns{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px}.dr-savestate{font-size:13px}.dr-savestate.ok{color:var(--green)}.dr-savestate.warn{color:var(--amber);font-weight:600}.dr-savestate.err{color:var(--red);font-weight:600}.dr-savestate.muted{color:var(--muted)}.jt-modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:80;padding:12px}.jt-modal{width:520px;max-width:100%;max-height:calc(100vh - 24px);overflow:auto;margin:0}.jt-modal.wide{width:900px}.jt-modal-foot{justify-content:flex-end;margin-top:16px;gap:8px}.dr-pdf{width:100%;height:70vh;border:1px solid var(--line);border-radius:8px;background:#fff}.dr-seclist{margin:4px 0 10px;padding-left:22px}.dr-seclist li{margin-bottom:4px}.dr-seclist li>*{vertical-align:middle}.dr-seclist-name{display:inline-block;min-width:90px}.dr-seclist input{width:min(260px,50vw);margin:0 6px;padding:5px 8px}.dr-seclist-btns button{padding:3px 9px;margin-right:3px}@media (max-width: 900px){.detail-grid{grid-template-columns:1fr}.stat-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 700px){.form-grid{grid-template-columns:1fr!important}.dr-sec-meta{margin-left:0;width:100%}.dr-savebar-btns{margin-left:0}.dr-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.qchips{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}.qchips-l{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:700;margin-right:2px}button.chip{background:transparent;border:1px solid var(--line);color:var(--text);font-size:12px;font-weight:500;padding:3px 10px;border-radius:999px}button.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.adv{margin-top:10px}.adv-body{margin-top:6px}.status-legend{font-size:12px;color:var(--muted)}tr.amend-row td{background:var(--panel-2);font-size:12.5px}.app{display:grid;grid-template-columns:208px minmax(0,1fr);min-height:100vh}.sb{background:var(--sb);color:var(--sb-fg);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding-block:14px 10px;z-index:30}.sb .brand{padding:0 16px 12px;border-bottom:1px solid rgba(255,255,255,.08);color:#fff;font-weight:700;font-size:15px;letter-spacing:.2px}.sb .brand small{display:block;font-weight:400;font-size:10.5px;color:#8c98ad;margin-top:2px}.sb .nav{padding:8px 0;flex:1;overflow-y:auto}.sb .nav a{display:flex;align-items:center;gap:8px;padding:9px 16px;color:var(--sb-fg);border-left:3px solid transparent;font-size:13.5px}.sb .nav a:hover{color:#fff;background:#ffffff0a}.sb .nav a.on{background:var(--sb-on);color:#fff;border-left-color:var(--accent);font-weight:600}.sb .nav a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sb .nav .pinned{padding:2px 0 6px 28px}.sb .nav .pinned a{padding:4px 12px;font-size:12px;color:#8c98ad;border-left:0}.sb .acct{padding:10px 14px 0;border-top:1px solid rgba(255,255,255,.08);font-size:11.5px;line-height:1.6}.sb .acct .who{color:#fff;font-weight:600;font-size:12.5px}.sb .acct .roles{color:#8c98ad}.sb .acct .roles b{color:#fff;font-weight:600}.sb .acct .chiprow{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.sb .acct button.sbtn,.sb .acct a.sbtn{display:inline-flex;align-items:center;gap:5px;background:#ffffff0f;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:6px;padding:3px 9px;font-size:11.5px;font-weight:500;cursor:pointer}.sb .acct button.sbtn:hover,.sb .acct a.sbtn:hover{background:#ffffff1f;opacity:1}.sb .acct button.sbtn.out{color:#fca5a5;border-color:#fca5a58c}.sb .acct select{width:100%;background:#ffffff0f;color:#fff;border-color:#ffffff38;padding:3px 6px;font-size:11.5px;margin-top:4px}.sb .acct select option{color:#111}.sb .acct .bell{margin-top:6px}.sb .acct .bell>button{width:100%;text-align:left}.sb .acct .bell .list{max-height:220px;overflow:auto;margin-top:4px;background:#0000002e;border-radius:6px}.sb .acct .bell .list a{color:#9cc2ff}.sb .acct .muted{color:#8c98ad}.sb .ver{padding:8px 16px 0;font-size:10px;color:#6b7891}.main{min-width:0;display:flex;flex-direction:column}.tabs{background:var(--panel);border-bottom:1px solid var(--line);padding:0 16px 0 20px;display:flex;gap:2px;align-items:flex-end;min-height:46px;position:sticky;top:0;z-index:20}.tabs .row-tabs{display:flex;gap:2px;align-items:flex-end;overflow-x:auto;min-width:0;flex:1;scrollbar-width:thin}.tabs .row-tabs a{padding:13px 13px 10px;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap;font-size:14px}.tabs .row-tabs a:hover{color:var(--fg)}.tabs .row-tabs a.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.tabs .row-tabs .sec-title{padding:13px 12px 10px 0;font-weight:600;color:var(--fg);white-space:nowrap}.tabs .tools{display:flex;align-items:center;gap:10px;padding:7px 0 7px 12px;flex-shrink:0}.tabs .crumb{font-size:12px;color:var(--muted);white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}.tabs .crumb a{color:var(--muted)}.tabs .crumb b{color:var(--fg);font-weight:600}.content{padding:22px 26px 40px;max-width:1280px;width:100%}.gfind{position:relative;width:300px}.gfind input{width:100%;padding:6px 30px 6px 10px;border-radius:7px;border:1px solid var(--line);background:var(--bg);color:var(--fg);font-size:13px}.gfind input:focus{outline:2px solid var(--accent);outline-offset:0;background:var(--panel)}.gfind kbd{position:absolute;right:7px;top:50%;transform:translateY(-50%);font:11px var(--mono);color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 5px;background:var(--panel)}.gfind .dd{position:absolute;right:0;top:calc(100% + 6px);width:min(460px,92vw);background:var(--panel);border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);padding:4px 0;z-index:40;max-height:70vh;overflow:auto}.gfind .hit{display:grid;grid-template-columns:74px 1fr;gap:2px 10px;padding:7px 12px;cursor:pointer;align-items:baseline}.gfind .hit:hover,.gfind .hit.sel{background:var(--accent-soft)}.gfind .hit .t{grid-row:span 2;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);border:1px solid currentColor;border-radius:9px;padding:1px 6px;justify-self:start}.gfind .hit .t.bid{color:var(--src-u)}.gfind .hit .t.ticket{color:var(--src-d)}.gfind .hit .t.customer,.gfind .hit .t.contact,.gfind .hit .t.prospect{color:var(--src-c)}.gfind .hit .t.unit,.gfind .hit .t.well{color:var(--src-x)}.gfind .hit .l{font-weight:600;font-size:13px;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gfind .hit .s{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gfind .foot{border-top:1px solid var(--line2);padding:7px 12px;font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:10px}.gfind .foot a{color:var(--accent);cursor:pointer}.gfind .empty{padding:10px 12px;font-size:12.5px;color:var(--muted)}.shell-banner{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:9px 20px;font-size:13px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bad) 8%,var(--panel));color:var(--fg)}.shell-banner.warn{background:var(--new-soft)}.shell-banner b{font-weight:600}.shell-banner .btn-sm{padding:3px 10px;font-size:12px}.expired{position:fixed;top:0;left:0;right:0;z-index:90;background:var(--bad);color:#fff;padding:10px 16px;display:flex;align-items:center;gap:12px;font-size:14px}.expired button{margin-left:auto;background:#fff;color:var(--bad);border:none;border-radius:6px;padding:4px 12px;font-weight:700}.phead{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin:0 0 16px}.phead h1{font-size:20px;margin:0}.phead .sub{color:var(--muted);font-size:13px}.subtabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:0 0 16px;overflow-x:auto}.subtabs button{background:none;border:0;border-bottom:3px solid transparent;border-radius:0;padding:9px 11px 8px;color:var(--muted);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}.subtabs button.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.subtabs button .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--bad);margin-left:5px;vertical-align:middle}.two-col{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.two-col>*{min-width:0}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px 14px}.f label{display:block;font-size:11px;color:var(--muted);margin:0 0 3px;letter-spacing:.02em}.f label b{color:var(--bad)}.f input:not([type=checkbox]):not([type=radio]),.f select,.f textarea{width:100%;padding:6px 9px;font-size:13.5px;border-radius:6px;border:1px solid var(--line);background:var(--panel)}.f .ro{border:1px solid var(--line2);background:var(--line2);border-radius:6px;padding:6px 9px;min-height:32px;font-size:13.5px}.f .why{font-size:11px;color:var(--muted);margin-top:3px}.f .err{font-size:11.5px;color:var(--bad);margin-top:3px}.f.need input{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 7%,var(--panel))}.state{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;margin-left:6px}.state.need{color:var(--bad)}.state.ok{color:var(--ok)}.radios{display:flex;gap:8px;flex-wrap:wrap}.radios label{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:6px;padding:6px 10px;cursor:pointer;font-size:13px;color:var(--fg);margin:0}.radios label.on{border-color:var(--accent);background:var(--accent-soft)}.radios input,.f input[type=checkbox]{margin:0;padding:0;width:auto}.okbox{font-size:12.5px;color:var(--ok);border:1px solid var(--ok);border-radius:6px;padding:7px 10px}.warnbox{font-size:12.5px;color:var(--warn);background:var(--new-soft);border:1px solid var(--new);border-radius:6px;padding:7px 10px}.errbox{font-size:12.5px;color:var(--bad);border:1px solid var(--bad);border-radius:6px;padding:7px 10px;background:color-mix(in srgb,var(--bad) 6%,var(--panel))}.lockline{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin:-4px 0 10px}fieldset.locked{border:0;padding:0;margin:0;min-width:0}fieldset.locked input,fieldset.locked select,fieldset.locked textarea,fieldset.locked button{cursor:not-allowed}fieldset.locked button:disabled{opacity:.5}.pbar{height:6px;border-radius:3px;background:var(--line2);overflow:hidden}.pbar i{display:block;height:100%;background:var(--ok)}.mini{font-size:11.5px;color:var(--muted)}.scope{font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:9px;color:#fff;background:var(--src-x);white-space:nowrap}.scope.private{background:var(--src-j)}.scope.role{background:var(--src-s)}.scope.system{background:var(--src-u)}.scope.last{background:var(--accent-soft);color:var(--accent)}.avatar{width:46px;height:46px;border-radius:50%;background:var(--accent);color:var(--accent-fg);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0}.pm-wrap{overflow:auto;max-height:72vh;border:1px solid var(--line);border-radius:8px}.pm{border:0;border-radius:0;font-size:12.5px}.pm th,.pm td{padding:5px 8px;border-bottom:1px solid var(--line2);white-space:nowrap}.pm thead th{position:sticky;top:0;background:var(--panel);z-index:2;text-align:center;text-transform:none;font-size:11.5px;color:var(--fg)}.pm thead th:first-child{text-align:left;left:0;z-index:3}.pm td:first-child{position:sticky;left:0;background:var(--panel);z-index:1;min-width:300px;max-width:420px;overflow:hidden;text-overflow:ellipsis}.pm tr.grp td{background:var(--line2);font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.pm tr.grp td:first-child{background:var(--line2)}.pm tr.sec td:first-child{font-weight:700}.pm tbody tr{cursor:default}.pm tbody tr:hover td{background:var(--accent-soft)}.pm td.c{text-align:center}.pm .lv{display:inline-block;min-width:40px;font-size:11.5px;padding:1px 6px;border-radius:5px}.pm .lv.edit{color:var(--ok);font-weight:700}.pm .lv.view{color:var(--info);font-weight:600}.pm .lv.none{color:var(--muted)}.pm .lv.inh{opacity:.55;font-weight:400}.pm .lv.stored{outline:1.5px solid var(--new)}.pm select{padding:1px 4px;font-size:11.5px;border-radius:5px;background:var(--panel)}.pm select.stored{border-color:var(--new);background:var(--new-soft)}.pm input[type=checkbox]{margin:0}.pm input[type=checkbox].stored{outline:2px solid var(--new);outline-offset:1px}.pm .path{font:11px var(--mono);color:var(--muted);margin-left:6px}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:11.5px;color:var(--muted);margin-top:8px}.gate-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:16px}.gate-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:26px;width:min(420px,100%)}@media (max-width: 1100px){.two-col{grid-template-columns:minmax(0,1fr)}.gfind{width:220px}}@media (max-width: 760px){.app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.sb{position:static;height:auto;display:grid;grid-template-columns:auto 1fr;align-items:center;padding:6px 4px 0}.sb .brand{grid-row:1;grid-column:1;border:0;padding:4px 10px;font-size:14px}.sb .brand small{display:none}.sb .acct{grid-row:1;grid-column:2;justify-self:end;border:0;padding:0 6px;display:flex;gap:6px;align-items:center}.sb .acct .who,.sb .acct .roles,.sb .acct .actas,.sb .acct button.hide-sm{display:none}.sb .acct .bell{margin:0;position:relative}.sb .acct .bell .list{position:absolute;right:0;top:30px;width:min(320px,90vw);z-index:50;background:var(--sb)}.sb .acct .chiprow{margin:0;flex-wrap:nowrap}.sb .nav{grid-row:2;grid-column:1 / -1;display:flex;padding:0;overflow-x:auto}.sb .nav>div{flex-shrink:0}.sb .nav a{padding:9px 12px;border-left:0;border-bottom:3px solid transparent;white-space:nowrap;font-size:13px}.sb .nav a.on{border-bottom-color:var(--accent)}.sb .nav .pinned,.sb .ver{display:none}.tabs{position:static;padding:0 10px;flex-wrap:wrap}.tabs .tools{width:100%;padding:6px 0 8px}.tabs .crumb{display:none}.gfind{width:100%}.content{padding:14px 12px 32px}.stat-row{grid-template-columns:repeat(2,1fr)}.detail-grid,.form-grid{grid-template-columns:minmax(0,1fr)}.phead h1{font-size:18px}}.rail-status>.panel{border:0;box-shadow:none;padding:0;margin:0;background:none}.rail-status>.panel>h3{display:none}.rail-table{width:100%;table-layout:fixed}.rail-table th,.rail-table td{padding:5px 4px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-table th:first-child,.rail-table td:first-child{width:34%}nav.subtabs[aria-label="Job sections"] button{padding:9px 9px 8px}
