@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-ext-400-normal-5tcqmc2S.woff2) format("woff2"),url(/assets/outfit-latin-ext-400-normal-DHm7mdGe.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-400-normal-BGsTXAXT.woff2) format("woff2"),url(/assets/outfit-latin-400-normal-DMwTpYkH.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-ext-500-normal-zeox_O30.woff2) format("woff2"),url(/assets/outfit-latin-ext-500-normal-DrCvqoFD.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-500-normal-DKnIMDSk.woff2) format("woff2"),url(/assets/outfit-latin-500-normal-ClnHRwRh.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-ext-600-normal-B85nYjL1.woff2) format("woff2"),url(/assets/outfit-latin-ext-600-normal-CWJcPgd7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-600-normal-B7SfZ07L.woff2) format("woff2"),url(/assets/outfit-latin-600-normal-BEfTtDA7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-ext-600-normal-D_E8FDgP.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-ext-600-normal-h2VnbV3V.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-600-normal-BDP5YDHD.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-600-normal-CHh5eQWW.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-greek-600-normal-DdRkKr-1.woff2) format("woff2"),url(/assets/source-serif-4-greek-600-normal-OkzgCkGB.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-vietnamese-600-normal-B33FcZBi.woff2) format("woff2"),url(/assets/source-serif-4-vietnamese-600-normal-CKUOBVO_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-ext-600-normal-pa-C5Dkf.woff2) format("woff2"),url(/assets/source-serif-4-latin-ext-600-normal-B2fExS53.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-600-normal-DouSKlru.woff2) format("woff2"),url(/assets/source-serif-4-latin-600-normal-DeJomR3S.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--ink: #1c1915;--paper: #f4efe6;--paper-2: #fffaf3;--line: #1c1915;--muted: #5e574e;--good: #1f7a4d;--wait: #8a6208;--bad: #a33b32;--shadow: 3px 3px 0 var(--ink);font-family:Outfit,sans-serif;font-size:16px;line-height:1.45}*{box-sizing:border-box}html,body,#app{height:100%}html,body{margin:0;background:var(--paper);color:var(--ink);overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:#1d4e89}img{max-width:100%}.app,.login{min-height:100%;height:100dvh;display:flex;flex-direction:column}.skip{position:absolute;left:8px;top:-40px;background:var(--paper-2);padding:8px;z-index:9}.skip:focus{top:8px}.topbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;background:var(--ink);color:var(--paper);border-bottom:4px solid transparent;border-image:linear-gradient(90deg,#2f6fed,#d64545,#e07a2f,#2f9e6b) 1}.brand{display:flex;gap:10px;align-items:center;min-width:0}.brand h1,.login h1{font-family:"Source Serif 4",serif;font-size:22px;margin:0;font-weight:600}.eyebrow{margin:0;letter-spacing:.14em;text-transform:uppercase;font-size:11px;opacity:.7}.brand-mark{width:28px;height:28px;display:inline-block;flex:none;background:linear-gradient(#2f6fed,#2f6fed) 0 0 / 12px 12px no-repeat,linear-gradient(#d64545,#d64545) 16px 0 / 12px 12px no-repeat,linear-gradient(#e07a2f,#e07a2f) 0 16px / 12px 12px no-repeat,linear-gradient(#2f9e6b,#2f9e6b) 16px 16px / 12px 12px no-repeat,#f4efe6;border:2px solid #f4efe6}.views{display:flex;border:1px solid #f4efe6}.views button,.tabs button{background:transparent;color:inherit;border:0;min-height:40px;padding:0 12px;font-size:15px}.views button.on{background:var(--paper);color:var(--ink)}.topbar .btn-secondary{background:transparent;color:var(--paper);border-color:#f4efe6}.banner{background:#f3d48a;color:#3d2a04;padding:8px 12px;font-size:14px;border-bottom:1px solid var(--ink)}.toast,.saving{position:fixed;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));background:var(--ink);color:var(--paper);padding:10px 12px;z-index:8;max-width:min(360px,90vw)}.error-banner{background:#f8d6d2;color:#6d241e;margin:8px 12px;padding:8px 10px;border:1px solid var(--bad)}.main{flex:1;min-height:0;display:flex;flex-direction:column}.office-main{overflow:hidden}.dashboard{overflow:auto;padding:12px 12px calc(16px + env(safe-area-inset-bottom))}.workspace{flex:1;min-height:0;display:flex}.stage-wrap{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;position:relative;overflow:hidden;z-index:0}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px;background:var(--paper-2);border-bottom:1px solid var(--ink)}.toolbar-spacer{flex:1}.chip{border:1px solid var(--ink);background:var(--paper-2);min-height:36px;padding:4px 10px;font-size:14px;box-shadow:inset 4px 0 0 var(--chip, var(--ink))}.stage-frame{position:relative;flex:1;min-height:0;display:flex;overflow:hidden}.stage{position:relative;flex:1;min-height:180px;touch-action:none;outline:none;background:#d9d0c2;overflow:hidden}.stage canvas{position:absolute;inset:0;width:100%!important;height:100%!important}.stage:focus-visible{outline:3px solid #2f6fed;outline-offset:-3px}.stage canvas{image-rendering:pixelated;image-rendering:crisp-edges}.labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.map-label{position:absolute;left:0;top:0;background:var(--paper-2);border:2px solid var(--ink);padding:2px 6px;font-size:14px;white-space:nowrap;line-height:1.2}.side{width:min(380px,100%);background:var(--paper-2);border-left:1px solid var(--ink);overflow:auto;padding-bottom:env(safe-area-inset-bottom);position:relative;z-index:2}.side-head,.detail-head,.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.side-head,.detail-head{justify-content:space-between;padding:8px 12px}.side h2,.detail h2,.dashboard h3{font-family:"Source Serif 4",serif;margin:8px 0}.roster{list-style:none;margin:0;padding:0 8px 8px}.roster-btn,.task-row{width:100%;text-align:left;display:flex;gap:8px;align-items:center;background:transparent;border:1px solid transparent;padding:8px;min-height:44px}.roster-btn.selected,.roster-btn:hover,.task-row:hover{border-color:var(--ink);background:#fff}.roster-btn strong,.task-title{display:block}.swatch{width:12px;height:12px;border:1px solid var(--ink);flex:none}.muted{color:var(--muted);font-size:14px}.role{margin:0 12px 8px;font-size:14px}.detail{padding:0 12px 16px}.facts{display:grid;gap:8px;margin:0}.facts div{display:grid;gap:2px}.facts dt{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.facts dd{margin:0}.history,.plain,.timeline,.approval-list,.task-list,.dept-stats{padding-left:18px}.task-list{list-style:none;padding:0}.task-row{display:grid;grid-template-columns:1.4fr 1fr auto auto auto auto;gap:8px;align-items:center}.timeline{display:grid;gap:8px;list-style:none;padding:0}.timeline li,.approval{border:1px solid var(--ink);background:#fff;padding:8px;display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.dept-tag{font-size:14px}.task-link{text-decoration:underline}.btn,.btn-secondary,.btn-danger{min-height:40px;padding:6px 12px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);box-shadow:var(--shadow)}.btn-secondary{background:var(--paper-2);color:var(--ink)}.btn-danger{background:var(--bad);color:#fff}.btn:disabled{opacity:.45}.tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px}.tabs button{border:1px solid var(--ink);background:transparent}.tabs button.on{background:var(--ink);color:var(--paper)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.card{border:1px solid var(--ink);background:#fff;padding:10px;box-shadow:var(--shadow);display:grid;gap:4px}.card span{font-size:14px;color:var(--muted)}.card strong{font-family:"Source Serif 4",serif;font-size:28px}.dept-stats{list-style:none;padding:0;display:grid;gap:6px}.dept-stats li{display:flex;gap:8px;align-items:center}.dept-stats strong{margin-left:auto}.filters,.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:8px 0 12px}.form-grid label,.filters label,.stack label,.login label{display:grid;gap:4px;font-size:14px}.wide{grid-column:1 / -1}.check{grid-template-columns:auto 1fr;align-items:center}input,select,textarea{min-height:40px;border:1px solid var(--ink);background:#fff;padding:6px 8px;width:100%}textarea{min-height:96px}.tracked{border-left:4px solid #8a6208;padding:6px 8px;background:#fff6df}.badge,.status{display:inline-block;border:1px solid var(--ink);padding:0 6px;font-size:12px;letter-spacing:.04em;background:#fff;line-height:1.6}.badge-live,.status-working,.status-completed,.status-approved{background:#d9f3e4}.badge-manual{background:#d9e6f8}.badge-demo,.status-needs_approval,.status-in_review,.status-waiting{background:#f8e7b6}.badge-stale,.status-unknown,.status-idle{background:#eeeae4}.badge-unknown,.status-error,.status-failed,.status-rejected{background:#f8d6d2}.stack{display:grid;gap:8px}.token{display:grid;gap:6px;background:#fff6df;padding:8px;border:1px solid var(--ink)}.token code{overflow-wrap:anywhere}.empty{color:var(--muted)}.login{place-items:center;display:grid;padding:24px;overflow:auto}.login-card{width:min(440px,100%);display:grid;gap:12px;background:var(--paper-2);border:1px solid var(--ink);padding:20px;box-shadow:var(--shadow)}.modal{position:fixed;inset:0;background:#1c191573;display:grid;place-items:center;z-index:10;padding:16px}.modal-card{background:var(--paper-2);border:1px solid var(--ink);padding:16px;width:min(520px,100%);box-shadow:var(--shadow)}:focus-visible{outline:2px solid #1d4e89;outline-offset:2px}@media(max-width:900px){.workspace{position:relative;display:block}.stage-wrap{position:absolute;inset:0}.side{position:absolute;left:0;right:0;bottom:0;width:auto;border-left:0;border-top:1px solid var(--ink);max-height:calc(100% - 168px);box-shadow:0 -3px 0 var(--ink)}.toolbar{position:relative;z-index:3}.side.collapsed{max-height:52px;overflow:hidden}.task-row{grid-template-columns:1fr}.topbar{gap:8px}.brand h1{font-size:18px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
