:root{--canvas:#f3f4f1;--surface:#ffffff;--surface-muted:#f8f8f5;--ink:#172019;--ink-muted:#687168;--line:#dce2da;--accent:#317f55;--accent-strong:#216440;--accent-soft:#e1efe4;--amber:#b5751d;--amber-soft:#fff0d5;--danger:#b44539;--danger-soft:#f9e1dd;--shadow:0 16px 35px rgb(30 42 30/7%)}*{box-sizing:border-box}html{background:var(--canvas)}body{margin:0;color:var(--ink);background:radial-gradient(circle at 82% -10%,#dbe9d8 0,transparent 34rem),var(--canvas);font-family:Arial,Helvetica,sans-serif}.login-shell{display:grid;min-height:100vh;place-items:center;padding:24px}.login-card{width:min(100%,420px);padding:32px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.login-card h1{margin-bottom:28px;font-size:2.2rem}button,input,select,textarea{font:inherit}button{cursor:pointer}.workspace-shell{width:min(1480px,calc(100% - 48px));margin:0 auto;padding:40px 0 56px}.admin-actions,.admin-nav,.connection-status,.panel-heading--row,.row-actions,.topbar,.topbar-actions,.worker-actions,.worker-head{display:flex;align-items:center}.admin-actions,.admin-nav,.topbar-actions,.worker-actions{gap:10px}.admin-nav a,.text-button{border:0;color:var(--accent-strong);background:transparent;font-size:.82rem;font-weight:700;text-decoration:none}.text-button:disabled{cursor:not-allowed;opacity:.55}.topbar{justify-content:space-between;gap:24px;margin-bottom:28px}.eyebrow,.section-kicker{margin:0 0 7px;color:var(--accent);font-size:.69rem;font-weight:700;letter-spacing:.12em}h1,h2,p{margin-top:0}h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,3vw,3.2rem);font-weight:500;letter-spacing:-.05em}h1,h2{margin-bottom:0}h2{font-size:1.1rem}.connection-status{gap:8px;color:var(--ink-muted);font-size:.82rem}.status-dot,.worker-indicator{display:block;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.status-dot--error{background:var(--danger);box-shadow:0 0 0 4px var(--danger-soft)}.notice{display:flex;justify-content:space-between;gap:16px;margin-bottom:20px;padding:12px 16px;border:1px solid var(--danger);border-radius:10px}.notice--error{color:#7a251d;background:var(--danger-soft)}.notice button,.row-actions button{border:0;color:inherit;background:transparent;text-decoration:underline}.access-panel p:not(.section-kicker){margin:14px 0 0;color:var(--ink-muted);line-height:1.5}.users-table input{display:block;width:100%;min-width:160px;margin:0 0 6px;padding:7px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-muted)}.users-table select{min-width:110px}.admin-actions{min-width:230px;flex-wrap:wrap}.admin-actions input{min-width:150px;margin:0}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.detail-panel,.jobs-panel,.metric-card,.new-job-panel,.worker-strip{border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow)}.metric-card{min-height:142px;padding:18px 20px;border-radius:12px}.metric-card small,.metric-card span{display:block;color:var(--ink-muted);font-size:.79rem}.metric-card strong{display:block;margin:12px 0 5px;font-size:2.15rem;letter-spacing:-.08em}.metric-card--accent{border-color:#9cc4a5;background:#edf6ed}.metric-card--warning{border-color:#f1d59f;background:#fff9ea}.worker-strip{display:flex;justify-content:space-between;gap:28px;margin:14px 0;padding:15px 20px;border-radius:12px}.worker-actions{margin-left:auto;white-space:nowrap}.worker-head{gap:12px;min-width:170px}.worker-head strong{display:block;font-size:.88rem}.worker-head .section-kicker{margin-bottom:3px}.worker-indicator--offline,.worker-indicator--paused{background:var(--amber);box-shadow:0 0 0 4px var(--amber-soft)}.worker-indicator--auth_required{background:var(--danger);box-shadow:0 0 0 4px var(--danger-soft)}.job-facts,.worker-strip dl{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));grid-gap:28px;gap:28px;margin:0}.detail-label,dt{color:var(--ink-muted);font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}dd{margin:5px 0 0;font-size:.85rem}.content-grid{display:grid;grid-template-columns:minmax(278px,.78fr) minmax(0,2.2fr);grid-gap:14px;gap:14px}.detail-panel,.jobs-panel,.new-job-panel{border-radius:14px}.new-job-panel{padding:23px}.panel-heading{margin-bottom:20px}.panel-heading--row{justify-content:space-between;gap:16px}.job-count{color:var(--ink-muted);font-size:.78rem}form{grid-gap:14px;gap:14px}form,label{display:grid}label{grid-gap:6px;gap:6px;color:var(--ink);font-size:.78rem;font-weight:700}label span{color:var(--ink-muted);font-size:.68rem;font-weight:400}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;outline:none;color:var(--ink);background:var(--surface-muted);padding:9px 10px;font-size:.84rem;font-weight:400}textarea{min-height:128px;resize:vertical;line-height:1.45}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.primary-button{min-height:42px;border:0;border-radius:8px;color:white;background:var(--accent);font-weight:700}.primary-button:hover:not(:disabled){background:var(--accent-strong)}.primary-button:disabled,.row-actions button:disabled{cursor:not-allowed;opacity:.55}.jobs-panel{overflow:hidden;padding:23px 0 0}.jobs-panel .panel-heading{padding:0 23px}.table-wrap{overflow-x:auto}table{width:100%;min-width:720px;border-collapse:collapse;text-align:left}th{padding:12px 13px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink-muted);background:var(--surface-muted);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}td{padding:13px;border-bottom:1px solid #ebeee9;color:#4c554e;font-size:.77rem;vertical-align:middle}tbody tr{cursor:pointer;transition:background .15s ease}tbody tr.is-selected,tbody tr:hover{background:#f2f8f2}td strong{color:var(--ink);font-size:.81rem}.job-prompt,td strong{display:block;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-prompt{margin-top:3px;color:var(--ink-muted)}.job-status{display:inline-block;border-radius:999px;background:#ecf0eb;color:#506253;padding:4px 7px;font-size:.67rem;font-weight:700;white-space:nowrap}.job-status--downloading,.job-status--generating,.job-status--queued,.job-status--starting,.job-status--storing,.job-status--submitting,.job-status--uploading{background:var(--accent-soft);color:#23633f}.job-status--done{background:#dcefe1;color:#216840}.job-status--auth_required,.job-status--failed,.job-status--needs_review{background:var(--danger-soft);color:#96382e}.job-status--rate_limited,.job-status--retry_wait{background:var(--amber-soft);color:#8d5714}.row-actions{justify-content:flex-end;min-height:25px}.empty-state{padding:44px 16px;color:var(--ink-muted);text-align:center}.detail-panel{margin-top:14px;padding:23px}.detail-grid{display:grid;grid-template-columns:1.2fr .85fr 1fr;grid-gap:32px;gap:32px;border-top:1px solid var(--line);padding-top:20px}.detail-prompt{margin:8px 0 0;line-height:1.55}.job-error{margin:15px 0 0;border-left:3px solid var(--danger);color:#8e2e24;background:var(--danger-soft);padding:9px 11px;font-size:.8rem}.job-facts{display:grid;grid-template-columns:1fr;grid-gap:17px;gap:17px}.event-log ol{display:grid;grid-gap:8px;gap:8px;margin:9px 0 0;padding:0;list-style:none}.event-log li{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;grid-gap:5px;gap:5px;color:var(--ink-muted);font-size:.73rem}.event-log time{min-width:72px}.event-log strong{color:var(--ink)}.event-log small{grid-column:2/-1}.detail-empty{margin:0;border-top:1px solid var(--line);color:var(--ink-muted);padding-top:22px}@media (max-width:980px){.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}.worker-strip{align-items:flex-start;flex-direction:column}}@media (max-width:640px){.workspace-shell{width:min(100% - 28px,1480px);padding-top:25px}.topbar{align-items:flex-start;flex-direction:column;gap:14px}.metrics-grid{grid-template-columns:1fr 1fr}.metric-card{min-height:119px;padding:14px}.detail-grid,.worker-strip dl{grid-template-columns:1fr;gap:16px}.detail-panel,.new-job-panel{padding:18px}}