/* Admin keeps its own theme foundation so it also works with older report CSS. */
:root{color-scheme:dark;--bg:#0b0e14;--white:#111620;--surface-soft:#1b2330;--ink:#f3f6fb;--muted:#a3afc2;--line:#2b3443;--blue:#74a0ff;--green:#43d5aa;--orange:#ffb65d;--warning-bg:#302516;--warning-ink:#ffd18d;--teal:var(--blue)}
:root[data-theme=light],:root[data-theme=system]{color-scheme:light;--bg:#f8fafc;--white:#fff;--surface-soft:#edf2f8;--ink:#101a2b;--muted:#58677b;--line:#dce3ec;--blue:#255ee8;--green:#008563;--orange:#b86300;--teal:var(--blue);--warning-bg:#fff3df;--warning-ink:#855000}
@media(prefers-color-scheme:dark){:root[data-theme=system]{color-scheme:dark;--bg:#0b0e14;--white:#111620;--surface-soft:#1b2330;--ink:#f3f6fb;--muted:#a3afc2;--line:#2b3443;--blue:#74a0ff;--green:#43d5aa;--orange:#ffb65d;--warning-bg:#302516;--warning-ink:#ffd18d;--teal:var(--blue)}}
.admin-shell input,.admin-shell select,.admin-shell .secondary{background:var(--white);color:var(--ink);border-color:var(--line)}.admin-shell .secondary:hover:not(:disabled){background:var(--surface-soft)}.admin-shell .primary{background:#255ee8;border-color:#255ee8;color:#fff}.admin-shell .primary:hover:not(:disabled){background:#194bc3}.admin-shell .brand-icon{background:var(--ink);color:var(--bg)}.admin-shell .badge{background:var(--surface-soft);color:var(--green)}
.admin-shell{max-width:1200px}.admin-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.admin-heading nav{display:flex;align-items:center;gap:16px;flex-shrink:0;padding-top:20px;flex-wrap:wrap}.report-link{font-size:12px;color:var(--teal);text-decoration:none;font-weight:650}.report-link:hover{text-decoration:underline}.admin-panel{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:24px}.admin-panel>p{font-size:12px}.admin-columns{display:grid;grid-template-columns:1.1fr 1fr;gap:22px}.login-panel{max-width:420px;margin:16px auto 48px}.login-panel h2{font-size:24px}.login-panel label{margin:16px 0}.login-panel .primary{width:100%;margin-top:6px}.admin-panel fieldset{border:0;padding:0;margin:0;min-width:0}.repo-add{display:flex;align-items:flex-end;gap:10px}.repo-add label{flex:1;min-width:0}.admin-panel .small{font-size:11px}.repo-list{list-style:none;padding:0;margin:22px 0;max-height:400px;overflow:auto}.repo-list li{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--line)}.repo-list li:first-child{border-top:1px solid var(--line)}.repo-list .repo-name{font-size:13px;overflow-wrap:anywhere;color:var(--ink);font-weight:600;margin:0}.repo-list .empty{display:block;text-align:left;font-size:12px;padding:18px 0}.remove-repo{color:var(--orange);flex-shrink:0}.remove-repo:hover:not(:disabled){background:var(--warning-bg)}.admin-panel .notice,.notice{font-size:12px;border-radius:7px;overflow-wrap:anywhere}.notice:not(:empty){padding:12px 14px;background:var(--surface-soft);margin:14px 0}.notice.error{background:var(--warning-bg);color:var(--warning-ink)}.notice:empty{display:none}.backfill-section{border-top:1px solid var(--line);margin-top:23px;padding-top:18px}.backfill-section h3{font-size:13px;font-weight:650;margin:0 0 15px}.backfill-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.snapshot-caution{font-size:11px;color:var(--warning-ink);background:var(--warning-bg);border:1px solid var(--line);border-radius:6px;padding:12px;line-height:1.6}.jobs-panel{margin-top:24px}.jobs-panel .section-head{margin-bottom:10px}.jobs-list{display:grid;gap:12px}.job-card{border:1px solid var(--line);border-radius:8px;padding:17px}.job-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.job-heading h3{font-size:14px;margin:0;font-weight:650}.job-heading .badge{white-space:nowrap}.badge.status-running,.badge.status-retrying{background:var(--warning-bg);color:var(--warning-ink)}.badge.status-failed,.badge.status-interrupted{background:var(--warning-bg);color:var(--warning-ink)}.badge.status-queued{background:var(--surface-soft);color:var(--muted)}.job-meta{font-size:11px;color:var(--muted);margin:6px 0;overflow-wrap:anywhere}.job-progress{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:11px;color:var(--muted)}.job-progress progress{width:160px;max-width:45%;height:8px;accent-color:var(--teal)}.job-error{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;padding:10px 12px;border-radius:6px;background:var(--warning-bg);color:var(--warning-ink);margin:12px 0 0}.jobs-list>.empty{padding:24px}.admin-panel[aria-busy=true] .repo-list{opacity:.65}#retry-session{margin-bottom:18px}@media(max-width:1050px){.admin-panel .primary{width:auto}.login-panel .primary{width:100%}}@media(max-width:780px){.admin-columns{grid-template-columns:1fr}.admin-heading{display:block}.admin-heading nav{padding:0 0 24px}.admin-heading .subtitle{margin-bottom:15px}.admin-panel{padding:20px}.jobs-panel{margin-top:22px}}@media(max-width:420px){.repo-add{flex-direction:column;align-items:stretch}.repo-add label{width:100%}.repo-add .primary{width:100%}.admin-panel{padding:17px}.job-progress{align-items:flex-start;flex-direction:column;gap:7px}.job-progress progress{max-width:100%;width:100%}.job-heading{flex-wrap:wrap}.backfill-dates{gap:8px}.backfill-dates input{font-size:11px;padding:8px 5px}}

.admin-shell .private{margin-left:auto}.admin-heading nav .compact select{width:85px}

.admin-shell .remove-repo{color:var(--orange)}.admin-shell .badge.status-running,.admin-shell .badge.status-retrying,.admin-shell .badge.status-failed,.admin-shell .badge.status-interrupted{background:var(--warning-bg);color:var(--warning-ink)}.admin-shell .badge.status-queued{background:var(--surface-soft);color:var(--muted)}

/* Bulk repository review and deliberately opt-in cached selection. */
.bulk-repos{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.bulk-repos h3{font-size:14px;margin:0 0 14px}.admin-shell textarea{display:block;width:100%;box-sizing:border-box;resize:vertical;min-height:110px;max-height:450px;padding:10px 12px;margin-top:7px;font:inherit;font-size:12px;line-height:1.6;border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--ink)}.admin-shell textarea:focus-visible,.candidate-choice input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.bulk-repos p{line-height:1.6}.bulk-repos #bulk-preview{margin-top:12px}.candidate-list,.bulk-preview-list{max-height:260px;overflow:auto;margin:12px 0;padding:0;scrollbar-gutter:stable}.candidate-list{list-style:none}.candidate-list li{border-bottom:1px solid var(--line)}.candidate-choice{display:flex;align-items:flex-start;gap:10px;margin:0;padding:11px 2px;cursor:pointer}.admin-shell .candidate-choice input{width:16px;height:16px;min-width:16px;margin:2px 0 0;padding:0;accent-color:var(--blue)}.candidate-details{display:flex;flex:1;min-width:0;align-items:center;flex-wrap:wrap;gap:6px 10px}.candidate-name{font-size:12px;overflow-wrap:anywhere;flex-basis:100%;color:var(--ink)}.candidate-visibility{font-size:10px;color:var(--muted)}.candidate-visibility.unverified{color:var(--warning-ink)}.candidate-managed{font-size:10px;color:var(--muted)}.candidate-list .empty{font-size:12px;text-align:left;padding:12px 0}.bulk-preview-panel{margin-top:16px;padding:15px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.bulk-preview-panel h4{font-size:13px;margin:0 0 10px}.bulk-preview-list{padding-left:25px;font-size:12px;color:var(--ink)}.bulk-preview-list li{padding:5px 0;overflow-wrap:anywhere}.bulk-actions{display:flex;flex-wrap:wrap;gap:9px}.admin-shell .bulk-actions .primary{white-space:normal}.bulk-repos button:disabled,.bulk-repos textarea:disabled{cursor:not-allowed}.bulk-preview-panel[hidden],#candidates-panel[hidden]{display:none}@media(max-width:420px){.bulk-preview-panel{padding:12px}.bulk-actions{flex-direction:column}.admin-shell .bulk-actions button{width:100%}}
.repo-rules{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.repo-rules h3{font-size:14px;margin:0 0 12px}.repo-rules p{line-height:1.6}.rules-list{max-height:220px;margin:14px 0 20px}.rules-list .repo-name{font-size:12px}.rule-description{display:block;color:var(--muted);font-size:10px;font-weight:400;margin-top:4px}.rules-list button{flex-shrink:0}

/* Schedule edits stay separate from the server's currently saved state. */
.schedule-section{border-top:1px solid var(--line);margin-top:23px;padding-top:18px}.schedule-section .section-head{margin-bottom:12px}.schedule-section h3{font-size:14px;margin:0;font-weight:650}.schedule-section p{line-height:1.6}.schedule-section .schedule-toggle{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink);margin:16px 0}.admin-shell .schedule-toggle input{width:17px;height:17px;min-width:17px;margin:0;padding:0;accent-color:var(--blue)}.schedule-interval{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:340px}.schedule-interval input,.schedule-interval select{width:100%;box-sizing:border-box}.schedule-next{color:var(--ink);overflow-wrap:anywhere}.schedule-section fieldset:disabled{opacity:.65}.schedule-section input:focus-visible,.schedule-section select:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.schedule-section button:disabled{cursor:not-allowed}@media(max-width:420px){.schedule-interval{gap:8px}}

/* One compact workspace at a time; native details keep advanced forms nearby. */
.admin-shell .brand{margin-bottom:26px}.admin-heading h1{font-size:clamp(27px,3vw,36px);letter-spacing:-1.1px}.admin-heading .subtitle{font-size:13px;margin-bottom:24px}.admin-heading nav{padding-top:12px}.admin-heading .dashboard-link{font-size:13px;border:1px solid var(--line);border-radius:7px;padding:8px 12px;background:var(--white);color:var(--ink)}.dashboard-link:hover{background:var(--surface-soft);text-decoration:none}.admin-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:10px}.admin-tab{border:1px solid transparent;background:transparent;color:var(--muted);font-weight:650;font-size:13px;padding:10px 20px;min-height:42px}.admin-tab:hover{background:var(--surface-soft);color:var(--ink)}.admin-tab[aria-selected=true]{background:var(--surface-soft);border-color:var(--line);color:var(--ink)}.admin-shell [hidden]{display:none!important}.admin-tab:focus-visible,.admin-tab-panel:focus-visible,.admin-shell summary:focus-visible,.admin-shell button:focus-visible,.admin-shell a:focus-visible,.show-cleared input:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.admin-tab-panel{outline:none}.collection-actions{display:flex;align-items:center;justify-content:space-between;gap:20px}.collection-actions p{font-size:12px;margin:8px 0 0}.collection-actions form{flex-shrink:0}.collection-panel .backfill-section{margin-top:18px;padding-top:15px}.admin-shell details>summary{font-size:13px;font-weight:650;cursor:pointer;color:var(--ink);width:fit-content}.admin-shell details[open]>summary{margin-bottom:16px}.admin-shell details>summary::marker{color:var(--muted)}.backfill-section form{max-width:540px}.backfill-section .snapshot-caution{max-width:700px}.jobs-panel{margin-top:18px}.jobs-actions{display:flex;flex-wrap:wrap;gap:8px}.jobs-panel>.section-head{align-items:flex-start;flex-wrap:wrap}.archive-feedback{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.archive-feedback .notice{flex:1 1 300px;margin:6px 0}.archive-feedback button{flex-shrink:0}.archive-feedback:not(:has(.notice:not(:empty))):not(:has(button:not([hidden]))){display:none}.cleared-jobs-tools{margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.show-cleared{display:flex;flex-direction:row;align-items:center;gap:9px;width:fit-content;font-size:12px;cursor:pointer}.admin-shell .show-cleared input{width:16px;height:16px;margin:0;padding:0;accent-color:var(--blue)}.cleared-jobs-panel{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.cleared-jobs-panel h3{font-size:15px;margin:0}.cleared-jobs-panel .job-card{background:var(--surface-soft)}.restore-job{margin-top:8px}.settings-panel{max-width:800px}.settings-panel .schedule-section{margin-top:18px;padding-top:18px}.appearance-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.appearance-section h3{font-size:14px;margin:0 0 14px}.appearance-section label{max-width:200px}.bulk-repos,.repo-rules{margin-top:18px;padding-top:15px}.admin-panel .repo-list{max-height:330px}.job-card{padding:15px}.job-meta{line-height:1.6}.jobs-list>.empty{padding:15px 0;margin:0;font-size:12px}
@media(max-width:780px){.admin-heading nav{padding:0 0 20px}.admin-heading .subtitle{margin-bottom:15px}.admin-tabs{margin-bottom:16px}.collection-actions{align-items:flex-start;flex-direction:column;gap:16px}.jobs-panel{margin-top:16px}}
@media(max-width:420px){.admin-tabs{gap:2px}.admin-tab{padding:10px 12px;font-size:12px;flex:1}.admin-shell .private{font-size:8px;letter-spacing:.8px}.admin-shell .brand{gap:8px}.admin-heading h1{font-size:27px}.admin-heading nav{gap:10px}.jobs-actions{width:100%}.jobs-actions button{flex:1}.collection-actions form,.collection-actions .primary{width:100%}.archive-feedback .notice{flex-basis:100%}.cleared-jobs-panel .section-head{flex-wrap:wrap}.admin-panel .repo-list li{gap:8px}.admin-panel .repo-list .repo-name{font-size:12px}}
