:root{--bg:#f5f6f3;--surface:#fff;--surface-2:#f9faf7;--line:#d9ded6;--text:#1f2a24;--muted:#667269;--green:#276749;--green-2:#dcebdd;--blue:#315f7c;--red:#9b3d3d;--amber:#9a6b19;--shadow:0 12px 34px #1f2a2414}*{box-sizing:border-box}body{min-width:320px;color:var(--text);background:var(--bg);letter-spacing:0;margin:0;font-family:Inter,Segoe UI,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}.auth-page{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-panel{background:var(--surface);border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow);border-radius:8px;justify-items:start;gap:16px;padding:28px;display:grid}.auth-panel p{color:var(--muted);margin:0}.app{grid-template-columns:248px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s;display:grid}.app.sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.sidebar{color:#f7fbf6;background:#223129;flex-direction:column;gap:24px;min-width:0;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid #ffffff29;align-items:center;gap:12px;padding:8px 6px 14px;display:flex}.brand-mark{color:#213326;background:#e3efdf;border-radius:8px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.brand strong,.brand span{display:block}.brand-copy{min-width:0}.brand span{color:#ffffffad;margin-top:2px}.sidebar-toggle{color:#ffffffc7;background:#ffffff14;border:1px solid #ffffff2e;border-radius:8px;flex:none;place-items:center;width:32px;height:32px;margin-left:auto;display:inline-grid}.sidebar-toggle:hover{color:#fff;border-color:#ffffff5c}.sidebar-collapsed .sidebar{padding-inline:12px}.sidebar-collapsed .brand{flex-direction:column;justify-content:center;gap:10px;padding-inline:0}.sidebar-collapsed .brand-copy,.sidebar-collapsed .nav-item span,.sidebar-collapsed .side-status span:not(.dot){display:none}.sidebar-collapsed .sidebar-toggle{margin-left:0}.sidebar-collapsed .nav-item{justify-content:center;padding-inline:0}.sidebar-collapsed .side-status{justify-content:center}.nav{gap:6px;display:grid}.nav-item{color:#ffffffc2;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;min-height:42px;padding:10px 12px;display:flex}.nav-item.active{color:#fff;background:#ffffff1f;border-color:#fff3}.side-status{color:#ffffffb3;align-items:center;gap:8px;margin-top:auto;font-size:14px;display:flex}.dot{background:var(--muted);border-radius:50%;width:8px;height:8px}.dot.ok{background:#83c57b}.dot.bad{background:#d76d6d}.workspace{min-width:0;padding:20px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.eyebrow{color:var(--muted);text-transform:uppercase;margin:0 0 4px;font-size:13px}h1,h2{margin:0;line-height:1.15}h1{font-size:28px}h2{font-size:20px}.top-actions,.action-row,.inline-checks{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.primary,.secondary,.icon-button{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:9px 14px;display:inline-flex}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary.danger{background:var(--red);border-color:var(--red)}.primary.ghost{background:var(--surface);color:var(--green)}.secondary:hover,.icon-button:hover,.tab:hover,.segmented button:hover{border-color:#a9b7ad}.icon-button{width:38px;padding:0}.toast{color:#244d2e;background:#edf6ed;border:1px solid #c8dfc7;border-radius:8px;margin:0 0 14px;padding:12px 14px}.status-pill,.status-badge{border:1px solid var(--line);background:var(--surface-2);min-height:26px;color:var(--muted);white-space:nowrap;border-radius:8px;align-items:center;padding:4px 8px;font-size:13px;display:inline-flex}.status-pill.ok,.status-badge.ok,.status-badge.succeeded,.status-badge.open{color:#245232;background:#edf6ed;border-color:#c8dfc7}.status-pill.bad,.status-badge.failed,.status-badge.cancelled{color:var(--red);background:#faeded;border-color:#e6c5c5}.status-pill.warn,.status-badge.needs_review,.status-badge.queued,.status-badge.running,.status-badge.pending{color:var(--amber);background:#fbf2da;border-color:#ecd28f}.screen-grid{gap:18px;display:grid}.request-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start}.stack{gap:18px;display:grid}.compact-stack{gap:14px}.band{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:18px}.section-head{justify-content:space-between;align-items:start;gap:16px;margin-bottom:18px;display:flex}.section-head.compact{align-items:center}.form-grid,.filter-grid{grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;display:grid}.salary-form{grid-template-columns:repeat(3,minmax(210px,1fr))}.job-retry-grid{grid-template-columns:repeat(2,minmax(180px,260px));margin-top:14px}.review-filter-grid{margin-bottom:12px}.review-pager{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.extension-layout{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);align-items:start;gap:18px;display:grid}.setting-list{gap:12px;display:grid}.setting-value{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.setting-value span,.setting-value small{color:var(--muted);display:block}.setting-value strong{overflow-wrap:anywhere;margin:5px 0;display:block}.extension-request{margin-top:14px}.field{color:var(--muted);gap:7px;font-size:14px;display:grid}.field input,.field select,.field textarea,.filter-grid input,.filter-grid select{border:1px solid var(--line);background:var(--surface-2);width:100%;color:var(--text);border-radius:8px;padding:8px 10px}.field input,.field select,.filter-grid input,.filter-grid select{min-height:40px}.field textarea{resize:vertical;min-height:86px}.split{grid-template-columns:1fr 1fr;gap:8px;display:grid}.segmented{border:1px solid var(--line);background:#e9ede8;border-radius:8px;grid-auto-flow:column;gap:2px;padding:3px;display:inline-grid;overflow:auto}.segmented button,.tab{color:var(--muted);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;padding:7px 10px}.segmented button.selected,.tab.active{background:var(--surface);color:var(--text);border-color:var(--line)}.source-picker,.tabs{flex-wrap:wrap;gap:8px;display:flex}.alias-form{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(180px,1fr) minmax(180px,1fr) auto auto;align-items:end;gap:12px;padding-bottom:14px;display:grid}.alias-form-actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.pill-check,.check{color:var(--text);align-items:center;gap:7px;display:inline-flex}.pill-check{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;min-height:40px;padding:7px 10px}.summary-panel{position:sticky;top:24px}pre{color:#eaf4ea;background:#1f2a24;border-radius:8px;margin:0;padding:14px;font-size:13px;overflow:auto}.notice{color:#5f4a19;background:#fbf2da;border:1px solid #ecd28f;border-radius:8px;margin-top:14px;padding:12px;line-height:1.45}.notice.neutral{color:var(--muted);border-color:var(--line);background:#f1f4ef}.notice.error{color:var(--red);background:#faeded;border-color:#e6c5c5}.notice.success{color:#244d2e;background:#edf6ed;border-color:#c8dfc7}.conflict-panel{gap:10px;display:grid}.conflict-list{gap:8px;display:grid}.conflict-item{grid-template-columns:minmax(120px,220px) minmax(180px,1fr) minmax(160px,1fr);align-items:start;gap:10px;display:grid}.conflict-item small,.conflict-cell span,.muted{color:var(--muted)}.nowrap{white-space:nowrap;overflow-wrap:normal}.wide{grid-column:1/-1}.empty{color:var(--muted);border:1px dashed var(--line);background:var(--surface-2);border-radius:8px;padding:16px}.row-actions{flex-wrap:wrap;gap:6px;display:inline-flex}.tiny{border:1px solid var(--line);background:var(--surface-2);min-height:28px;color:var(--text);border-radius:6px;padding:4px 8px;font-size:13px}.tiny.danger{color:var(--red)}.icon-link{border:1px solid var(--line);background:var(--surface-2);width:32px;height:32px;color:var(--green);vertical-align:top;border-radius:8px;place-items:center;text-decoration:none;display:inline-grid}.icon-link:hover{background:#edf6ed;border-color:#a9b7ad}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:16px}.kpi span,.kpi small,.metric span,.hour-summary span{color:var(--muted);display:block}.kpi strong{margin:6px 0;font-size:26px;display:block}.table-band{min-width:0}.helper-text{color:var(--muted);max-width:980px;margin:0 0 14px;line-height:1.45}.section-head .helper-text{margin-bottom:0}.table-wrap{border:1px solid var(--line);border-radius:8px;max-width:100%;margin-bottom:14px;overflow:auto}table{border-collapse:collapse;background:var(--surface);width:100%;min-width:100%;font-size:14px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere;padding:9px 10px;line-height:1.35}th{color:var(--muted);background:var(--surface-2);white-space:nowrap;font-size:13px}tbody tr:hover{background:#f6faf3}.cell-stack{white-space:normal;gap:4px;min-width:180px;max-width:520px;display:grid}.cell-stack strong{font-weight:700}.cell-stack span{color:var(--muted);font-size:13px}.payload-details{min-width:180px;max-width:360px}.payload-details summary{cursor:pointer;color:var(--green);white-space:nowrap}.payload-details pre{max-height:260px;margin-top:8px;font-size:12px}.modal-backdrop{z-index:50;background:#1f2a2461;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:16px;width:min(560px,100%);padding:18px;display:grid;box-shadow:0 22px 70px #1f2a2438}.log-modal{width:min(980px,100%);max-height:min(820px,92vh);overflow:auto}.review-context{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;gap:5px;padding:12px;display:grid}.review-context span,.review-context small{color:var(--muted)}.review-context strong{overflow-wrap:anywhere}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.log-viewer{white-space:pre-wrap;max-height:430px;overflow:auto}.analytics-grid{grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:18px;display:grid}.metric-grid{grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px;margin-top:14px;display:grid}.metric{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:14px}.metric strong{margin-top:5px;font-size:21px;display:block}.hour-summary{gap:10px;margin-top:14px;display:grid}.hour-summary strong{color:var(--blue);font-size:24px}.workflow{gap:14px;display:grid}code{background:#0000000f;border-radius:5px;padding:2px 4px}@media (width<=1100px){.app{grid-template-columns:82px minmax(0,1fr)}.brand div:not(.brand-mark),.nav-item span,.side-status span{display:none}.request-layout,.analytics-grid,.extension-layout{grid-template-columns:1fr}.summary-panel{position:static}}@media (width<=760px){.app{display:block}.sidebar{height:auto;padding:12px;position:static}.brand{display:none}.nav{grid-auto-columns:minmax(52px,1fr);grid-auto-flow:column;overflow:auto}.workspace{padding:14px}.topbar,.section-head{display:grid}.form-grid,.filter-grid,.alias-form,.salary-form,.kpis,.metric-grid,.split,.setting-value{grid-template-columns:1fr}}
