:root{--plane:#eceef1;--surface:#fff;--raised:#f6f8fa;--sunken:#e4e7eb;--ink:#11151b;--ink2:#4e5764;--muted:#8892a0;--line:#dce0e6;--line-strong:#c3cad3;--navy:#20406e;--navy-soft:#e8edf6;--bright:#2f6fd0;--good:#0ca30c;--good-ink:#006300;--good-wash:#e8f6e8;--warn:#fab219;--warn-ink:#8a5c00;--warn-wash:#fdf3de;--serious:#ec835a;--serious-ink:#9c4418;--serious-wash:#fcefe8;--crit:#d03b3b;--crit-ink:#a32020;--crit-wash:#fbeaea;--shadow:0 1px 2px #11151b0f,0 8px 24px -16px #11151b47;--r:10px}*{box-sizing:border-box}body{background:var(--plane);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.6}h1,h2,h3{text-wrap:balance;letter-spacing:-.015em;margin:0;font-family:Archivo,system-ui,sans-serif}a{color:var(--bright);text-decoration:none}a:hover{text-decoration:underline}.mono{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,ui-monospace,monospace}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:11px}.wrap{flex-direction:column;gap:26px;max-width:1560px;margin:0 auto;padding:0 24px 80px;display:flex}.muted{color:var(--muted)}.small{font-size:13px}.strike{color:var(--muted);text-decoration:line-through}.err{color:var(--crit-ink);margin:8px 0;font-size:14px}.note-ok{color:var(--good-ink);margin:8px 0;font-size:14px}.spacer{flex:1}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mast{border-bottom:1px solid var(--line);background:var(--surface);margin-bottom:22px}.mast-in{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;max-width:1560px;margin:0 auto;padding:18px 24px;display:flex}.route{letter-spacing:.06em;color:var(--ink2);text-transform:uppercase;align-items:center;gap:9px;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex}.route b{color:var(--ink);font-weight:600}.route .arrow{color:var(--muted)}.mast h1{margin-top:7px;font-size:clamp(21px,3.2vw,29px);font-weight:700}.mast .sub{color:var(--ink2);margin-top:3px;font-size:13px}.mast .right{align-items:center;gap:12px;display:flex}.brand{align-items:center;gap:14px;display:flex}.brandmark{object-fit:contain;flex:none;width:46px;height:46px}@media (width<=560px){.brandmark{width:36px;height:36px}}.btn.navlink{color:var(--ink);text-decoration:none}.btn.navlink:hover{text-decoration:none}.whoami{border-left:1px solid var(--line);border-right:1px solid var(--line);flex-direction:column;align-items:flex-end;padding:0 14px;line-height:1.3;display:flex}.who-name{font-size:14.5px;font-weight:600}.who-role{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:1px;font-family:IBM Plex Mono,monospace;font-size:9.5px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.panel-hd{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:14px;padding:16px 20px;display:flex}.panel-hd h2{font-size:18px;font-weight:600}.panel-hd .note{color:var(--muted);font-size:13px}.panel-bd{padding:20px}.panel-ft{border-top:1px solid var(--line);color:var(--muted);padding:12px 20px;font-size:13px}.stats{background:var(--line);border:1px solid var(--line);border-radius:var(--r);grid-template-columns:repeat(auto-fit,minmax(146px,1fr));gap:1px;display:grid;overflow:hidden}.stat{background:var(--surface);padding:16px 18px}.stat .k{letter-spacing:.11em;text-transform:uppercase;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:11px}.stat .v{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:6px;font-family:Archivo,sans-serif;font-size:32px;font-weight:600}.stat .m{color:var(--ink2);margin-top:2px;font-size:13.5px}.stat .m.bad{color:var(--crit-ink);font-weight:500}.mx-scroll{overflow-x:auto}table.mx{border-collapse:collapse;width:100%;min-width:760px}table.mx th,table.mx td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:13px 14px}table.mx thead th{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--raised);white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500}table.mx tbody tr:last-child td{border-bottom:0}table.mx tbody tr:hover{background:var(--raised)}.due{white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:13.5px}.due small{color:var(--muted);letter-spacing:.04em;font-size:10.5px;display:block}.chip{white-space:nowrap;border:1px solid #0000;border-radius:100px;align-items:center;gap:7px;padding:5px 12px;font-size:13px;font-weight:600;display:inline-flex}.chip.approved{background:var(--good-wash);color:var(--good-ink);border-color:color-mix(in srgb,var(--good) 32%,transparent)}.chip.submitted{background:var(--navy-soft);color:var(--navy);border-color:color-mix(in srgb,var(--bright) 32%,transparent)}.chip.in_transit{background:var(--serious-wash);color:var(--serious-ink);border-color:color-mix(in srgb,var(--serious) 38%,transparent)}.chip.overdue,.chip.rejected{background:var(--crit-wash);color:var(--crit-ink);border-color:color-mix(in srgb,var(--crit) 34%,transparent)}.chip.due_soon{background:var(--warn-wash);color:var(--warn-ink);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.chip.scheduled,.chip.not_started{background:var(--raised);color:var(--ink2);border-color:var(--line)}.btn{font:inherit;cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:7px;padding:8px 15px;font-size:14px;font-weight:600}.btn:hover:not(:disabled){border-color:var(--ink2)}.btn:focus-visible{outline:2px solid var(--bright);outline-offset:1px}.btn:disabled{opacity:.5;cursor:default}.btn.pri{background:var(--navy);border-color:var(--navy);color:#fff}.btn.ok{background:var(--good-wash);border-color:color-mix(in srgb,var(--good) 40%,transparent);color:var(--good-ink)}.btn.no{background:var(--crit-wash);border-color:color-mix(in srgb,var(--crit) 40%,transparent);color:var(--crit-ink)}.btn.ghost{color:var(--ink2);background:0 0;border-style:dashed}.btn.link{color:var(--bright);background:0 0;border:0;padding:0;font-size:14px}.act{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}td.act{text-align:right;white-space:nowrap;display:table-cell}td.act>.btn+.btn{margin-left:12px}label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;font-family:IBM Plex Mono,monospace;font-size:11px;display:block}input,select,textarea{font:inherit;border:1px solid var(--line-strong);background:var(--surface);width:100%;color:var(--ink);border-radius:7px;padding:9px 12px}input[type=file]{background:var(--raised);padding:6px;font-size:12px}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--bright) 35%,transparent);outline-offset:0;border-color:var(--bright)}.field{margin-bottom:13px}.fields{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0 14px;display:grid}.stycell{align-items:center;gap:11px;min-width:0;display:flex}.stycell img,.stycell .ph{object-fit:cover;border:1px solid var(--line);background:var(--raised);border-radius:6px;flex:none;width:48px;height:48px}.stycell .ph{color:var(--muted);border-style:dashed;place-items:center;font-family:IBM Plex Mono,monospace;font-size:9px;display:grid}.stycell .c{font-family:IBM Plex Mono,monospace;font-size:15px;font-weight:600}.stycell .d{color:var(--ink2);margin-top:2px;font-size:13.5px}.bar{background:var(--sunken);border-radius:3px;min-width:90px;height:5px;overflow:hidden}.bar i{background:var(--good);border-radius:3px;height:100%;transition:width .35s;display:block}dialog{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);width:min(520px,94vw);box-shadow:var(--shadow);padding:0}dialog::backdrop{background:#080b0f8c}dialog .panel-hd{border-radius:var(--r) var(--r) 0 0}dialog section{border-top:1px solid var(--line);padding:16px}dialog section:first-of-type{border-top:0}dialog h3{margin-bottom:4px;font-size:14px;font-weight:600}dialog .hint{color:var(--muted);margin:0 0 12px;font-size:12.5px}.auth{max-width:400px;margin:11vh auto}.exc{margin:0;padding:0;list-style:none}.exc li{border-bottom:1px solid var(--line);grid-template-columns:24px 1fr auto;align-items:start;gap:13px;padding:14px 20px;display:grid}.exc li:last-child{border-bottom:0}.exc .ico{color:#fff;border-radius:5px;place-items:center;width:21px;height:21px;margin-top:1px;font-size:11px;font-weight:700;display:grid}.exc .t{font-size:15.5px;font-weight:600;display:block}.exc .d{color:var(--ink2);margin-top:2px;font-size:14px;display:block}.exc .src{color:var(--muted);white-space:nowrap;padding-top:3px;font-family:IBM Plex Mono,monospace;font-size:11px}.sev-crit .ico{background:var(--crit)}.sev-warn .ico{background:var(--warn);color:#3a2a00}.sev-ser .ico{background:var(--serious);color:#3a1a08}.tl-scroll{padding:0 0 6px;overflow-x:auto}.tl{--gut:210px;min-width:800px;padding:20px 20px 10px;position:relative}.tl-ruler{height:24px;margin-left:var(--gut);border-bottom:1px solid var(--line-strong);position:relative}.tl-ruler span{color:var(--muted);letter-spacing:.06em;border-left:1px solid var(--line);text-transform:uppercase;height:24px;padding-left:5px;font-family:IBM Plex Mono,monospace;font-size:11px;position:absolute;top:0;transform:translate(-1px)}.tl-row{grid-template-columns:var(--gut) 1fr;border-bottom:1px solid var(--line);align-items:center;height:52px;transition:background .12s;display:grid;position:relative}.tl-row:hover{background:color-mix(in srgb,var(--raised) 65%,transparent)}.tl-row:last-child{border-bottom:0}.tl-name{flex-direction:column;gap:1px;padding-right:14px;font-size:15px;font-weight:500;display:flex}.tl-name small{color:var(--muted);letter-spacing:.05em;white-space:nowrap;text-overflow:ellipsis;font-family:IBM Plex Mono,monospace;font-size:10.5px;overflow:hidden}.tl-track{height:100%;position:relative}.tl-track .gridline{background:var(--line);width:1px;position:absolute;top:0;bottom:0}.node{border:2px solid var(--surface);cursor:pointer;border-radius:4px;width:17px;height:17px;margin-left:-8px;padding:0;transition:box-shadow .15s,transform .12s;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.node:hover,.node:focus-visible{z-index:5;outline:none;transform:translateY(-50%)rotate(45deg)scale(1.18);box-shadow:0 0 0 5px color-mix(in srgb,var(--bright) 30%,transparent)!important}.node[data-s=approved]{background:var(--good)}.node[data-s=submitted]{background:var(--bright)}.node[data-s=in_transit]{background:var(--serious)}.node[data-s=overdue],.node[data-s=rejected]{background:var(--crit)}.node[data-s=due_soon]{background:var(--warn)}.node[data-s=scheduled],.node[data-s=not_started]{background:var(--surface);border-color:var(--line-strong)}.nodate{letter-spacing:.05em;text-transform:uppercase;color:var(--good-ink);background:var(--good-wash);border:1px dashed color-mix(in srgb,var(--good) 45%,transparent);border-radius:100px;padding:3px 10px;font-family:IBM Plex Mono,monospace;font-size:10px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.tl-overlay{top:20px;bottom:10px;left:calc(20px + var(--gut));pointer-events:none;position:absolute;right:20px}.monthband{background:color-mix(in srgb,var(--sunken) 40%,transparent);position:absolute;top:24px;bottom:0}.today{background:var(--bright);pointer-events:auto;cursor:help;width:2px;position:absolute;top:0;bottom:0}.today:hover{box-shadow:0 0 8px color-mix(in srgb,var(--bright) 60%,transparent);width:3px}.today:after{content:"TODAY";letter-spacing:.1em;color:var(--bright);font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:600;position:absolute;top:-14px;left:5px}.legend{border-top:1px solid var(--line);color:var(--ink2);flex-wrap:wrap;gap:14px;padding:11px 16px;font-size:12.5px;display:flex}.legend i{vertical-align:-1px;border-radius:2px;width:9px;height:9px;margin-right:7px;display:inline-block;transform:rotate(45deg)}.chip .g{font-size:10px;line-height:1}.grid4{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;padding:20px;display:grid}.scard{border:1px solid var(--line);background:var(--raised);border-radius:9px;flex-direction:column;display:flex;overflow:hidden}.scard .ph{border-bottom:1px solid var(--line);background:#fff;place-items:center;min-height:120px;padding:8px;display:grid;position:relative}.scard .ph .noimg{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-family:IBM Plex Mono,monospace;font-size:10px}.scard img{border-radius:4px;width:100%;display:block}.scard .bd{flex-direction:column;gap:7px;padding:11px 12px;display:flex}.scard .code{font-family:IBM Plex Mono,monospace;font-size:15px;font-weight:600}.scard .meta{color:var(--ink2);font-size:13.5px;line-height:1.45}.scard .pct{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:12px}.log{max-height:min(60vh,560px);overflow-y:auto}.log ul{margin:0;padding:0;list-style:none}.log li{border-bottom:1px solid var(--line);grid-template-columns:58px 1fr;gap:14px;padding:11px 22px;font-size:14.5px;display:grid}.log li:last-child{border-bottom:0}.logday{border-bottom:1px solid var(--line)}.logday:last-child{border-bottom:0}.logday-hd{z-index:2;background:var(--raised);border-bottom:1px solid var(--line);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:7px 22px;font-family:IBM Plex Mono,monospace;font-size:10.5px;position:sticky;top:0}.log .ts{color:var(--muted);white-space:nowrap;padding-top:2px;font-family:IBM Plex Mono,monospace;font-size:11px}.log b{font-weight:600}table.sm{border-collapse:collapse;width:100%;font-size:15px}table.sm th,table.sm td{border-bottom:1px solid var(--line);text-align:left;padding:11px 20px}table.sm th{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:500}table.sm td.n{text-align:right;font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace}table.sm tr.tot td{background:var(--raised);border-bottom:0;font-weight:700}.terms{color:var(--ink2);flex-direction:column;gap:10px;padding:16px 20px;font-size:14px;display:flex}.terms div{grid-template-columns:20px 1fr;gap:8px;display:grid}.terms span.n{color:var(--muted);padding-top:1px;font-family:IBM Plex Mono,monospace;font-size:11px}.cols{grid-template-columns:1.25fr .95fr;align-items:start;gap:22px;display:grid}.cols>div{flex-direction:column;gap:22px;display:flex}@media (width<=860px){.cols{grid-template-columns:1fr}}.swatch{border:1px solid var(--line-strong);vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:5px;display:inline-block}.stycell>span{flex-direction:column;min-width:0;display:flex}table.mx td .cellact{margin-top:6px}.tip{z-index:60;background:var(--ink);color:var(--plane);pointer-events:none;opacity:0;border-radius:7px;max-width:260px;padding:9px 11px;font-size:12px;line-height:1.45;transition:opacity .12s;position:fixed;box-shadow:0 8px 24px #0000004d}.tip.on{opacity:1}.tip b{margin-bottom:2px;font-size:12.5px;display:block}.tip .dim{opacity:.75}.log li>span:last-child{flex-direction:column;gap:2px;min-width:0;display:flex}.logline{font-weight:500}.logverb{font-weight:600}.logverb.good{color:var(--good-ink)}.logverb.bad{color:var(--crit-ink)}.logverb.warn{color:var(--warn-ink)}.logverb.wait{color:var(--navy)}.logsub{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:13px}.log .ts{text-align:right;line-height:1.4}.picklist{flex-direction:column;gap:6px;display:flex}.pick{border:1px solid var(--line);cursor:pointer;text-transform:none;letter-spacing:0;color:var(--ink);border-radius:7px;align-items:center;gap:10px;padding:8px 10px;font-family:IBM Plex Sans,sans-serif;font-size:14.5px;display:flex}.pick:hover{border-color:var(--line-strong);background:var(--raised)}.pick input{width:auto;accent-color:var(--bright)}.filelist{flex-direction:column;gap:6px;margin-top:2px;display:flex}.filerow{border:1px solid var(--line);color:var(--ink);border-radius:7px;align-items:center;gap:10px;padding:8px 10px;font-size:14px;display:flex}.filerow:hover{border-color:var(--bright);background:var(--raised);text-decoration:none}.fico{letter-spacing:.06em;background:var(--navy-soft);color:var(--navy);border-radius:5px;flex:none;padding:3px 6px;font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:600}.fname{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.excfiles{flex-wrap:wrap;gap:6px;margin-top:7px;display:flex}.filebtn{border:1px solid var(--line-strong);color:var(--ink2);background:var(--raised);border-radius:100px;align-items:center;gap:5px;padding:3px 9px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;display:inline-flex}.filebtn:hover{border-color:var(--bright);color:var(--bright);text-decoration:none}.colorchip{color:var(--ink2);background:var(--sunken);border-radius:100px;align-items:center;gap:6px;padding:3px 10px 3px 5px;font-size:12.5px;font-weight:600;display:inline-flex}.colorchip .swatch{width:13px;height:13px;margin:0}.spec{grid-template-columns:auto 1fr;gap:3px 12px;margin:4px 0 2px;font-size:13px;display:grid}.spec dt{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding-top:2px;font-family:IBM Plex Mono,monospace;font-size:10px}.spec dd{color:var(--ink2);min-width:0;margin:0}.phbtn{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.phbtn img{transition:opacity .12s}.phbtn:hover img{opacity:.88}.lightbox{z-index:80;cursor:zoom-out;background:#080b0fd1;place-items:center;padding:32px;display:grid;position:fixed;inset:0}.lightbox img{cursor:default;background:#fff;border-radius:10px;max-width:min(92vw,1100px);max-height:82vh;padding:12px;box-shadow:0 24px 64px #00000080}.lightbox-cap{color:#e9ecf1;opacity:.85;font-size:12px;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.chipbtn{cursor:pointer;font-family:inherit}.chipbtn:hover{filter:brightness(.96);box-shadow:0 0 0 2px var(--navy-soft)}.draftbar{border-color:var(--line-strong);background:var(--raised)}.draftbar .btn.pri{flex:none}.rounds{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.rounds li{border-left:2px solid var(--line-strong);padding:2px 0 2px 14px}.round-hd{align-items:center;gap:9px;margin-bottom:3px;font-size:13.5px;font-weight:600;display:flex}.round-line{color:var(--ink2);font-size:13.5px;line-height:1.5}.round-line.small{font-size:12.5px}.panel.danger{border-color:color-mix(in srgb,var(--crit) 35%,var(--line))}.panel.danger .panel-hd{border-bottom-color:color-mix(in srgb,var(--crit) 25%,var(--line))}.panel.danger .panel-hd h2{color:var(--crit-ink)}.compstack{cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:4px;padding:0;display:flex}.compstack:hover .chip{box-shadow:0 0 0 2px var(--navy-soft)}.chip.mini{letter-spacing:.03em;gap:5px;padding:2.5px 9px;font-family:IBM Plex Mono,monospace;font-size:11px}
