:root {
  color-scheme: dark;
  --bg: #0b1020;
  --panel: #141b2d;
  --line: #29334d;
  --text: #e7ecf5;
  --muted: #9aa6bd;
  --blue: #66a3ff;
  --red: #ff6b7a;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); font: 14px/1.5 system-ui, sans-serif; }
main { max-width: 1180px; margin: auto; padding: 28px 20px; }
/* Use available desktop real estate on wide monitors while preserving the
   compact 1180px baseline for laptops. Mobile pages override this via
   .mobile-main in mb_style.css. */
@media (min-width: 1500px) {
  main { max-width: 1800px; padding-left: 32px; padding-right: 32px; }
  .jobs-table { min-width: 0; }
  .cards { grid-template-columns: repeat(6, minmax(150px, 1fr)); }
  .filter-toolbar { grid-template-columns: minmax(260px, 1.8fr) repeat(5, minmax(130px, 1fr)) auto auto; }
}
a { color: var(--blue); text-decoration: none; }
nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.station-identity { display:flex; flex-direction:column; min-width:max-content; gap:3px; }
.station-title-row { display:flex; align-items:center; gap:12px; min-height:25px; }
.station-home { display:inline-flex; align-items:center; line-height:1.25; }
.utc-clock { display:inline-flex; align-items:center; gap:7px; min-height:24px; padding:4px 10px; border:1px solid #33415f; border-radius:999px; background:#111a2d; color:#cbd8ec; font:600 11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.02em; white-space:nowrap; box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 2px 8px rgba(0,0,0,.16); }
.utc-clock-label { color:var(--blue); font:700 9px/1 system-ui,sans-serif; letter-spacing:.09em; }
.utc-clock-value { font-variant-numeric:tabular-nums; }
.utc-clock-dot { width:6px; height:6px; border-radius:50%; background:#63d89b; box-shadow:0 0 0 3px rgba(99,216,155,.12); }
.nav-actions, .page-heading { display: flex; align-items: center; gap: 14px; }
.nav-icon { display:inline-block; width:1.15em; margin-right:5px; color:var(--muted); font-size:.92em; text-align:center; }
.nav-actions > a:hover .nav-icon, .nav-menu summary:hover .nav-icon { color:var(--blue); }
.nav-menu { position: relative; }
.nav-menu summary { list-style: none; cursor: pointer; color: var(--blue); font-size: inherit; font-weight: 400; letter-spacing: normal; text-transform: none; padding: 5px 8px; border-left: 1px solid var(--line); }
.nav-menu summary::-webkit-details-marker { display: none; }
.nav-menu summary::after { content: " ▾"; color: var(--muted); }
.nav-menu-panel { position: absolute; z-index: 20; top: calc(100% + 8px); right: 0; min-width: 145px; display: grid; gap: 4px; padding: 8px; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 10px 24px rgba(0,0,0,.35); }
.nav-menu-panel a { display: block; padding: 6px 8px; white-space: nowrap; }
.nav-menu-panel a:hover { background: #1c263d; border-radius: 5px; }
.site-footer { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; align-items:center; margin-top:32px; padding:16px 0 8px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.site-footer > span:nth-child(2) { text-align:center; }
.site-footer .footer-ref { text-align:right; }
.site-footer code { color:var(--blue); }
.footer-links { white-space:nowrap; }
.info-page { max-width: 860px; line-height: 1.7; }
.info-page h2 { margin-top: 0; }
.info-page li + li { margin-top: 6px; }
.terminal-panel { width: 100%; max-width: none; min-height: 180px; box-sizing: border-box; }
.terminal-output { min-height:260px; max-height:55vh; overflow:auto; background:#090d18; border:1px solid var(--line); padding:12px; white-space:pre-wrap; }
#terminal-open-form { display:grid; grid-template-columns:1fr 1.5fr 1fr auto; gap:12px; align-items:end; }
#terminal-open-form label { margin:0; }
#terminal-open-form input { display:block; width:100%; margin-top:5px; }
#terminal-input-form { display:flex; gap:8px; margin-top:10px; }
#terminal-input-form[hidden] { display:none; }
#terminal-input-form input { flex:1; }
@media (max-width:700px) { #terminal-open-form { grid-template-columns:1fr; } }
.maintenance-warning { border-color: #8a6330; background: #2a2112; color: #f5d38c; }
.json-database-panel { margin-top:14px; border-color:#3b4f73; }
.json-database-panel h2 { margin-top:0; }
.json-database-grid { display:grid; grid-template-columns:1fr 1.25fr; gap:28px; margin-top:18px; }
.json-database-grid > div, .json-database-grid > form { padding:16px; border:1px solid var(--line); border-radius:9px; background:#10182a; }
.json-database-grid h3 { margin-top:0; }
.json-database-grid form { display:grid; gap:12px; }
.json-database-grid form label { display:block; margin:0; }
.json-database-grid input[type=file] { display:block; width:100%; margin-top:6px; }
.json-database-grid .json-import-confirm { display:flex; align-items:flex-start; gap:8px; line-height:1.4; }
.json-database-grid .json-import-confirm input { flex:none; margin-top:4px; }
@media (max-width:760px) { .json-database-grid { grid-template-columns:1fr; } }
.backup-meta { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.api-token-form { display:grid; grid-template-columns:minmax(220px,1fr) minmax(280px,1.25fr) auto; gap:16px; align-items:end; }
.api-token-form > div { min-width:0; }
.api-token-form label { margin-top:0; }
.api-token-form input { display:block; width:100%; margin-top:6px; }
.api-token-form small { display:block; margin-top:5px; }
.api-token-form button { white-space:nowrap; align-self:start; margin-top:28px; }
.api-token-form + .table-scroll td form { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0; }
@media (max-width:700px) { .api-token-form { grid-template-columns:1fr; } .api-token-form button { justify-self:start; margin-top:0; } }
/* Maintenance forms: keep controls aligned while remaining usable on mobile. */
form[action="/config"]:has(input[name="maintenance_stop_command"]) { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:12px 16px; align-items:end; }
form[action="/config"]:has(input[name="maintenance_stop_command"]) label { margin:0; min-width:0; }
form[action="/config"]:has(input[name="maintenance_stop_command"]) input { display:block; width:100%; margin-top:6px; }
form[action="/config"]:has(input[name="maintenance_stop_command"]) button { white-space:nowrap; }
form[action="/maintenance/restore"] { display:grid; gap:12px; max-width:760px; }
form[action="/maintenance/restore"] label { margin:0; }
form[action="/maintenance/restore"] input[type="file"] { display:block; width:100%; margin-top:6px; }
form[action="/maintenance/restore"] label:has(input[type="checkbox"]) { display:flex; align-items:flex-start; gap:8px; line-height:1.4; }
form[action="/maintenance/restore"] input[type="checkbox"] { flex:none; margin-top:4px; }
@media (max-width:700px) {
  form[action="/config"]:has(input[name="maintenance_stop_command"]) { grid-template-columns:1fr; }
  form[action="/config"]:has(input[name="maintenance_stop_command"]) button { justify-self:start; }
}
.export-actions { margin-left: 6px; }
.import-project-panel { width:100%; max-width:none; }
.import-project-form { display:grid; gap:16px; width:100%; max-width:none; }
.import-project-form label { display:block; margin:0; color:var(--muted); }
.import-project-form label input { display:block; width:100%; margin-top:7px; }
.import-project-form input[type=file] { padding:10px; }
.import-project-actions { display:flex; justify-content:flex-end; align-items:center; gap:10px; padding-top:4px; }
@media (max-width:700px) { .import-project-actions { justify-content:flex-start; flex-wrap:wrap; } }
.export-form { display:flex; align-items:flex-end; gap:14px; flex-wrap:wrap; }
.export-form label { min-width:260px; margin:0; }
.export-form select { width:100%; margin-top:5px; }
.template-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 18px; }
.template-form label { margin:0; }
.template-form label input, .template-form label select { display:block; width:100%; margin-top:6px; }
.template-form .template-content { grid-column:1 / -1; }
.template-form textarea { min-height:260px; margin-top:6px; }
.template-actions { grid-column:1 / -1; display:flex; gap:10px; align-items:center; }
.template-row-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.template-actions form { margin:0; display:inline-flex; }
.config-panel form { width:100%; max-width:none; display:grid; gap:12px; }
.config-panel form.openvscode-launch { display:inline-block; margin:10px 0 0 10px; vertical-align:bottom; }
.config-panel label { display:block; margin:0; }
.config-panel label input, .config-panel label select { display:block; width:100%; margin-top:5px; }
.config-panel label:has(input[type="checkbox"]) { display:flex; align-items:center; gap:8px; }
.config-panel label input[type="checkbox"] { display:inline-block; width:auto; margin:0; }
.config-panel form button { justify-self:start; }
.config-panel .config-toggle { display:flex; align-items:center; gap:8px; color:var(--text); }
.config-panel .config-toggle input { width:auto; margin:0; }
.rule-summary { max-width:480px; white-space:pre-wrap; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:8; line-clamp:8; }
.rules-heading-actions { display:flex; gap:10px; align-items:center; }
.rule-category-tabs { display:flex; gap:7px; overflow-x:auto; margin:16px 0 12px; padding-bottom:3px; }
.rule-category-tab { display:inline-flex; align-items:center; gap:7px; padding:7px 11px; border:1px solid var(--line); border-radius:999px; color:var(--muted); white-space:nowrap; }
.rule-category-tab span { min-width:20px; padding:1px 5px; border-radius:999px; background:#202b42; color:var(--text); font-size:11px; text-align:center; }
.rule-category-tab.active { border-color:var(--blue); background:#182844; color:var(--text); }
.rules-filter-toolbar { display:grid; grid-template-columns:minmax(260px,2fr) repeat(3,minmax(140px,1fr)) auto auto auto; gap:9px; align-items:center; }
.rules-filter-toolbar input, .rules-filter-toolbar select { width:100%; min-width:0; }
.rules-management { margin:14px 0; }
.rules-management summary { cursor:pointer; color:var(--blue); font-weight:600; }
.rules-management-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:22px; margin-top:16px; }
.rules-management-grid form label { display:block; margin:0 0 10px; }
.rules-management-grid input, .rules-management-grid textarea { display:block; width:100%; margin-top:5px; }
.rules-management-grid textarea { min-height:150px; }
.rule-category-create { display:grid; grid-template-columns:1fr 1.5fr auto; gap:8px; align-items:end; }
.rule-category-create label { margin:0 !important; }
.rule-category-management { display:grid; gap:7px; margin-top:12px; }
.rule-category-editor { display:grid; grid-template-columns:1fr auto; gap:7px; align-items:center; }
.rule-category-editor form:first-child { display:grid; grid-template-columns:minmax(120px,.8fr) minmax(180px,1.4fr) auto auto; gap:7px; align-items:center; }
.rule-category-editor form { margin:0; }
.rule-category-editor input { margin:0; }
.rules-table { min-width:1150px; }
.rules-table th:nth-child(1) { width:20%; }.rules-table th:nth-child(2) { width:12%; }.rules-table th:nth-child(3) { width:14%; }.rules-table th:nth-child(4) { width:34%; }
.rule-description { display:block; margin-top:5px; color:var(--muted); font-weight:400; line-height:1.35; }
.rule-default-badge, .rule-category-badge { display:inline-block; margin-left:7px; padding:2px 7px; border-radius:999px; background:#173b29; color:#9ef0ba; font-size:10px; vertical-align:middle; }
.rule-category-badge { margin-left:0; background:#213a61; color:#cfe2ff; font-size:11px; }
.rule-tags { display:flex; flex-wrap:wrap; gap:5px; }
.rule-tags a { padding:2px 7px; border:1px solid #3a4968; border-radius:999px; font-size:11px; color:#bcd3f7; }
.rule-form-heading { margin-bottom:16px; }.rule-form-heading h1, .rule-form-heading p { margin-bottom:0; }
.rule-form { width:100%; max-width:none; padding:0; overflow:hidden; }
.rule-form-section { padding:20px 22px; }.rule-form-section + .rule-form-section { border-top:1px solid var(--line); }
.rule-form-section h2 { margin:0 0 14px; font-size:1.05rem; }
.rule-form-section > label, .rule-form-grid label { display:block; margin:0 0 14px; }
.rule-form-section input, .rule-form-section select { display:block; width:100%; margin-top:6px; }
.rule-form-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(220px,1fr); gap:16px; }
.rule-content-section { padding-bottom:18px; }.rule-section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }.rule-section-heading p { margin:0 0 12px; }
.rule-form-footer { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:15px 22px; border-top:1px solid var(--line); background:#10182a; }
.rule-default-toggle { display:flex; align-items:flex-start; gap:9px; margin:0; color:var(--text); }.rule-default-toggle input { flex:none; margin-top:4px; }.rule-default-toggle span, .rule-default-toggle small { display:block; }.rule-default-toggle small { margin-top:2px; color:var(--muted); font-weight:400; }
.rule-form-actions { display:flex; align-items:center; gap:10px; }
.rule-category-create-panel h2 { margin-top:0; }.rule-category-page-form { display:grid; grid-template-columns:minmax(220px,1fr) minmax(320px,2fr) auto; gap:14px; align-items:end; }.rule-category-page-form label { margin:0; }.rule-category-page-form input { display:block; width:100%; margin-top:6px; }
.rule-categories-table { min-width:850px; }.rule-categories-table input { width:100%; min-width:180px; }
@media (max-width:1000px) { .rules-filter-toolbar { grid-template-columns:1fr 1fr; } .rules-management-grid { grid-template-columns:1fr; } }
@media (max-width:650px) { .rules-heading-actions { flex-wrap:wrap; } .rules-filter-toolbar { grid-template-columns:1fr; } .rule-category-create, .rule-category-editor form:first-child, .rule-form-grid, .rule-category-page-form { grid-template-columns:1fr; } .rule-form-footer { align-items:stretch; flex-direction:column; } .rule-form-actions { justify-content:flex-end; width:100%; } }
.config-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 18px; }
.auth-shell { min-height:calc(100vh - 230px); display:grid; place-items:center; padding:32px 16px; box-sizing:border-box; }
.auth-panel { width:min(100%,560px); margin:0; padding:30px 32px 32px; box-sizing:border-box; }
.auth-heading { margin-bottom:24px; }
.auth-heading h1 { margin:0 0 8px; }
.auth-note { margin:0; line-height:1.5; }
.auth-form { display:grid; gap:18px; }
.auth-form label { display:grid; gap:7px; width:100%; font-weight:600; }
.auth-form label span { color:var(--muted); font-size:.92rem; }
.auth-form input:not([type='hidden']) { width:100%; min-height:42px; box-sizing:border-box; margin:0; }
.auth-actions { display:flex; justify-content:flex-end; padding-top:4px; }
.auth-actions button { min-width:180px; min-height:42px; }
@media (max-width:600px) { .auth-shell { padding:18px 0; place-items:start stretch; } .auth-panel { padding:24px 20px; } .auth-actions button { width:100%; } }
.role-page-heading { align-items:flex-start; margin-bottom:18px; }
.role-page-heading h1 { margin-bottom:6px; }
.role-page-heading p { margin:0; }
.role-editor-panel, .role-list-panel { padding:24px; }
.role-editor-panel + .role-list-panel { margin-top:18px; }
.role-editor-heading, .role-list-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:20px; }
.role-editor-heading h2, .role-list-heading h2 { margin:0 0 5px; }
.role-editor-heading p, .role-list-heading p { margin:0; }
.role-editor-form { display:grid; gap:24px; }
.role-identity-grid { display:grid; grid-template-columns:minmax(190px,.7fr) minmax(240px,1fr) minmax(300px,1.4fr); gap:16px; align-items:start; }
.role-identity-grid label { display:grid; gap:7px; margin:0; min-width:0; }
.role-identity-grid label > span { font-weight:600; color:var(--text); }
.role-identity-grid input { width:100%; min-height:40px; margin:0; box-sizing:border-box; }
.role-identity-grid small { color:var(--muted); line-height:1.35; }
.permission-picker { border-top:1px solid var(--border); padding-top:20px; }
.permission-picker-heading { display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:14px; }
.permission-picker-heading h3 { margin:0; }
.permission-group { margin:0 0 14px; padding:14px; border:1px solid var(--border); border-radius:10px; background:rgba(8,12,23,.22); }
.permission-group legend { padding:0 8px; font-weight:700; color:var(--text); }
.permission-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.permission-choice { display:flex; align-items:flex-start; gap:10px; min-width:0; margin:0; padding:12px; border:1px solid var(--border); border-radius:9px; background:var(--panel); cursor:pointer; transition:border-color .15s ease,background .15s ease,transform .15s ease; }
.permission-choice:hover { border-color:var(--blue); background:#17233a; transform:translateY(-1px); }
.permission-choice:has(input:checked) { border-color:var(--blue); background:#172944; box-shadow:inset 3px 0 0 var(--blue); }
.permission-choice input { width:auto; flex:0 0 auto; margin:3px 0 0; }
.permission-choice > span { display:grid; gap:4px; min-width:0; }
.permission-choice strong { color:var(--text); font-size:.92rem; }
.permission-choice small { color:var(--muted); line-height:1.35; }
.permission-choice code { width:max-content; max-width:100%; color:#82b7ff; font-size:.72rem; overflow:hidden; text-overflow:ellipsis; }
.role-editor-actions { display:flex; justify-content:flex-end; align-items:center; gap:14px; padding-top:2px; }
.role-editor-actions button { min-width:140px; }
.roles-table { table-layout:fixed; }
.roles-table th:nth-child(1) { width:17%; }.roles-table th:nth-child(2) { width:22%; }.roles-table th:nth-child(3) { width:auto; }.roles-table th:nth-child(4) { width:145px; }
.roles-table td { vertical-align:top; }
.role-name-cell { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.role-name-cell strong { flex-basis:100%; }
.role-name-cell code { color:var(--muted); }
.role-type-badge { display:inline-flex; padding:2px 7px; border-radius:999px; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.role-type-badge.builtin { background:#25324a; color:#b8c6df; }.role-type-badge.custom { background:#173c31; color:#8ce2bd; }
.permission-badges { display:flex; flex-wrap:wrap; gap:6px; }
.permission-badge { display:inline-flex; padding:4px 8px; border:1px solid #365074; border-radius:999px; background:#17243a; color:#b9d4f7; font-size:.74rem; line-height:1.2; }
.role-actions { display:flex; align-items:center; gap:7px; }.role-actions form { margin:0; }
@media (max-width:1050px) { .role-identity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.role-description-field { grid-column:1/-1; }.permission-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .role-editor-panel,.role-list-panel { padding:18px; }.role-identity-grid,.permission-grid { grid-template-columns:1fr; }.role-description-field { grid-column:auto; }.permission-picker-heading { align-items:flex-start; flex-direction:column; }.roles-table { min-width:820px; }.role-editor-actions { align-items:stretch; flex-direction:column-reverse; }.role-editor-actions button,.role-editor-actions a { width:100%; box-sizing:border-box; text-align:center; } }
.account-page-heading { align-items:flex-start; margin-bottom:18px; }
.account-page-heading h1 { margin-bottom:6px; }.account-page-heading p { margin:0; }
.account-editor-panel,.account-list-panel { padding:24px; }.account-editor-panel + .account-list-panel { margin-top:18px; }
.account-section-heading { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:20px; }
.account-section-heading h2 { margin:0 0 5px; }.account-section-heading p { margin:0; }
.account-editor-form { display:grid; gap:22px; }
.account-identity-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:start; }
.account-identity-grid label { display:grid; gap:7px; min-width:0; margin:0; }
.account-identity-grid label > span { color:var(--text); font-weight:600; }
.account-identity-grid input { width:100%; min-height:40px; box-sizing:border-box; margin:0; }
.account-identity-grid small { color:var(--muted); line-height:1.35; }
.account-roles-fieldset { margin:0; padding:16px; border:1px solid var(--border); border-radius:10px; }
.account-roles-fieldset legend { padding:0 8px; color:var(--text); font-weight:700; }
.account-roles-fieldset > p { margin:0 0 13px; }
.account-role-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.account-role-choice { display:flex; align-items:flex-start; gap:10px; min-width:0; margin:0; padding:12px; border:1px solid var(--border); border-radius:9px; background:rgba(8,12,23,.22); cursor:pointer; transition:border-color .15s ease,background .15s ease,transform .15s ease; }
.account-role-choice:hover { border-color:var(--blue); background:#17233a; transform:translateY(-1px); }
.account-role-choice:has(input:checked) { border-color:var(--blue); background:#172944; box-shadow:inset 3px 0 0 var(--blue); }
.account-role-choice input { width:auto; flex:0 0 auto; margin:3px 0 0; }
.account-role-choice > span { display:grid; gap:4px; min-width:0; }
.account-role-choice strong { color:var(--text); }.account-role-choice small { color:var(--muted); line-height:1.35; }.account-role-choice code { width:max-content; color:#82b7ff; font-size:.72rem; }
.account-editor-actions { display:flex; justify-content:flex-end; align-items:center; gap:14px; }.account-editor-actions button { min-width:150px; }
.account-active-switch { display:flex; align-items:flex-start; gap:11px; width:max-content; max-width:100%; margin:0; padding:12px 14px; border:1px solid var(--border); border-radius:9px; background:rgba(8,12,23,.22); }
.account-active-switch input { width:auto; margin:3px 0 0; }.account-active-switch > span { display:grid; gap:3px; }.account-active-switch small { color:var(--muted); }
.accounts-table { table-layout:fixed; }.accounts-table th:nth-child(1){width:25%}.accounts-table th:nth-child(2){width:25%}.accounts-table th:nth-child(3){width:12%}.accounts-table th:nth-child(4){width:auto}.accounts-table th:nth-child(5){width:100px}
.accounts-table td { vertical-align:middle; }
.account-identity { display:flex; align-items:center; gap:11px; min-width:0; }.account-identity > span:last-child { display:grid; gap:3px; min-width:0; }.account-identity strong,.account-identity small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.account-identity small { color:var(--muted); }
.account-avatar { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; border:1px solid #43658f; border-radius:10px; background:linear-gradient(145deg,#1d3556,#17243a); color:#cce2ff; font-weight:800; }
.role-assignment-badges { display:flex; flex-wrap:wrap; gap:6px; }.role-assignment-badge { padding:4px 8px; border:1px solid #365074; border-radius:999px; background:#17243a; color:#b9d4f7; font-size:.75rem; }
.account-status { display:inline-flex; align-items:center; gap:7px; font-size:.8rem; font-weight:700; }.account-status > span { width:8px; height:8px; border-radius:50%; }.account-status.active { color:#8ce2bd; }.account-status.active > span { background:#35c98b; box-shadow:0 0 0 3px rgba(53,201,139,.13); }.account-status.disabled { color:#ffabb3; }.account-status.disabled > span { background:#ef6674; }
.account-last-login { color:var(--muted); white-space:nowrap; font-size:.85rem; }
@media (max-width:1000px) { .account-identity-grid,.account-role-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .account-editor-panel,.account-list-panel { padding:18px; }.account-page-heading { gap:12px; }.account-identity-grid,.account-role-grid { grid-template-columns:1fr; }.accounts-table { min-width:820px; }.account-editor-actions { align-items:stretch; flex-direction:column-reverse; }.account-editor-actions button,.account-editor-actions a { width:100%; box-sizing:border-box; text-align:center; } }
.regional-page-heading { align-items:flex-start; margin-bottom:18px; }.regional-page-heading h1 { margin-bottom:6px; }.regional-page-heading p { max-width:900px; margin:0; line-height:1.5; }
.regional-settings-panel { max-width:1180px; margin-left:auto; margin-right:auto; padding:26px; }
.regional-settings-form { display:grid; gap:22px; }
.regional-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:start; }
.regional-fields label { display:grid; grid-template-rows:auto 42px auto; gap:7px; min-width:0; margin:0; }
.regional-fields label > span { color:var(--text); font-weight:700; }
.regional-fields select,.regional-fields input { width:100%; height:42px; margin:0; box-sizing:border-box; }
.regional-fields small { color:var(--muted); line-height:1.4; }
.regional-preview { padding:18px; border:1px solid #365074; border-radius:12px; background:linear-gradient(145deg,rgba(23,36,58,.9),rgba(13,21,36,.9)); }
.regional-preview-heading { display:flex; align-items:center; gap:11px; margin-bottom:16px; }.regional-preview-heading > div { display:grid; gap:2px; }.regional-preview-heading small { color:var(--muted); }
.regional-preview-icon { display:grid; place-items:center; width:36px; height:36px; border:1px solid #4c72a0; border-radius:10px; background:#1d3556; color:#b9d8ff; font-size:1.25rem; }
.regional-preview dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin:0; overflow:hidden; border:1px solid var(--border); border-radius:9px; background:var(--border); }
.regional-preview dl > div { min-width:0; padding:12px 14px; background:var(--panel); }.regional-preview dt { margin-bottom:5px; color:var(--muted); font-size:.78rem; }.regional-preview dd { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin:0; color:var(--text); font-weight:600; }.regional-preview dd code { color:#82b7ff; font-size:.72rem; }
.regional-preview dl .regional-preview-time { grid-column:1/-1; }.regional-preview-time dd { font-size:1.05rem; }
.regional-scheduler-note { display:flex; align-items:flex-start; gap:10px; padding:12px 14px; border:1px solid #66572c; border-radius:9px; background:rgba(72,57,19,.22); color:#e4d399; }.regional-scheduler-note > span { margin-top:1px; }.regional-scheduler-note p { margin:0; line-height:1.45; }
.regional-form-actions { display:flex; justify-content:flex-end; }.regional-form-actions button { min-width:160px; min-height:42px; }
@media (max-width:900px) { .regional-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }.regional-fields label:last-child { grid-column:1/-1; }.regional-preview dl { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) { .regional-settings-panel { padding:18px; }.regional-fields { grid-template-columns:1fr; }.regional-fields label:last-child { grid-column:auto; }.regional-preview dl { grid-template-columns:1fr; }.regional-preview dl .regional-preview-time { grid-column:auto; }.regional-form-actions button { width:100%; } }
.two-factor-policy { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:18px; padding:20px 24px; }.two-factor-policy h2 { margin:0 0 5px; }.two-factor-policy p { margin:0; }.two-factor-policy form { display:flex; align-items:center; gap:14px; margin:0; }
.two-factor-management-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.two-factor-card { padding:22px; }.two-factor-card > header { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:18px; }.two-factor-card h2 { margin:0 0 6px; }.two-factor-card header p { margin:0; line-height:1.45; }.two-factor-card form { display:grid; gap:10px; }.two-factor-card form label { display:grid; gap:6px; }.two-factor-card form input { width:100%; box-sizing:border-box; }.recovery-card { grid-column:1/-1; }
.webauthn-credential-list { display:grid; gap:9px; margin:0 0 16px; padding:0; list-style:none; }.webauthn-credential-list li { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 12px; border:1px solid var(--border); border-radius:9px; }.webauthn-credential-list li > span { display:grid; gap:3px; }.webauthn-credential-list small { color:var(--muted); }.webauthn-credential-list form { display:flex; align-items:center; gap:8px; margin:0; }.webauthn-credential-list form input { max-width:180px; }
.webauthn-register-controls { display:grid; grid-template-columns:minmax(180px,1fr) auto; align-items:end; gap:12px; }.webauthn-register-controls label { display:grid; gap:6px; }.totp-qr { width:max-content; padding:10px; margin:12px 0; border-radius:12px; background:#fff; }.totp-qr img { display:block; }
.two-factor-login-methods { display:grid; gap:14px; }.two-factor-method-form { display:grid; gap:12px; }.two-factor-method-form label { display:grid; gap:7px; }.two-factor-method-form input { width:100%; box-sizing:border-box; font-size:1.2rem; letter-spacing:.18em; text-align:center; }.two-factor-recovery { padding-top:12px; border-top:1px solid var(--border); }.two-factor-recovery summary { cursor:pointer; color:var(--blue); }.two-factor-recovery form { display:grid; gap:10px; margin-top:12px; }
.totp-enrollment { max-width:780px; margin-left:auto; margin-right:auto; padding:24px; }.totp-enrollment ol { display:grid; gap:20px; padding-left:24px; }.totp-enrollment li { padding-left:6px; line-height:1.5; }.totp-secret { width:max-content; max-width:100%; margin:12px 0; padding:12px 16px; border:1px dashed #5781b4; border-radius:9px; background:#101a2d; font-size:1.15rem; letter-spacing:.12em; overflow-wrap:anywhere; }.totp-enrollment textarea { width:100%; min-height:80px; box-sizing:border-box; }.totp-enrollment form { display:grid; gap:10px; max-width:360px; }.totp-enrollment form label { display:grid; gap:6px; }
.recovery-codes-result { max-width:700px; margin-left:auto; margin-right:auto; padding:24px; }.recovery-codes-result > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:18px 0; }.recovery-codes-result code { padding:10px 12px; border:1px solid var(--border); border-radius:7px; background:#101a2d; text-align:center; font-size:1rem; letter-spacing:.08em; }
@media (max-width:760px) { .two-factor-policy { align-items:stretch; flex-direction:column; }.two-factor-policy form { justify-content:space-between; }.two-factor-management-grid { grid-template-columns:1fr; }.recovery-card { grid-column:auto; }.recovery-codes-result > div { grid-template-columns:1fr; } }
.automation-panel { max-width: none; }
.automation-form label { display:block; margin:12px 0; }
.automation-form label input:not([type='checkbox']), .automation-form label select, .automation-form label textarea { display:block; width:100%; box-sizing:border-box; margin-top:6px; }
.automation-form textarea { min-height:140px; resize:vertical; }
.automation-section { border:1px solid var(--border); border-radius:10px; padding:18px 20px; margin:16px 0; }
.automation-section h2 { margin:0 0 12px; font-size:1.15rem; }
.schedule-extra-controls { display:flex; gap:8px; margin-top:6px; }
.schedule-extra-controls input, .schedule-extra-controls select { min-width:0; }
.schedule-extra-controls input[type='number'] { width:7rem; }
.automation-rule { display:flex !important; align-items:flex-start; gap:10px; padding:10px 12px; border:1px solid var(--border); border-radius:8px; margin:8px 0 !important; }
.automation-rule input { margin-top:3px; }
.automation-rule span { display:flex; flex-direction:column; gap:3px; }
.automation-rule small { color:var(--muted); }
.automation-rules { max-height:280px; overflow:auto; }
.automation-attachments { border:1px dashed var(--border); border-radius:8px; padding:14px; margin-top:12px; }
.automation-attachments label { display:block; }
.automation-attachments input[type=file] { display:block; margin-top:6px; }
.automation-attachments .image-preview img { width:84px; height:64px; object-fit:cover; border-radius:6px; margin:8px 8px 0 0; }
.automation-form.drop-active { outline:2px solid var(--accent); outline-offset:4px; }
.automation-actions { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.automation-actions form { margin:0; }
.status-pill { display:inline-block; padding:2px 8px; border-radius:999px; font-size:11px; font-weight:700; }
.status-pill.enabled { color:#9ef0ba; background:#173b29; }
.status-pill.disabled { color:var(--muted); background:#252d3e; }
.calendar-heading { flex-wrap:wrap; margin-bottom:14px; }
.calendar-heading h1, .calendar-heading p { margin-bottom:0; }
.calendar-nav { display:flex; align-items:center; gap:12px; }
.calendar-nav strong { min-width:130px; text-align:center; }
.calendar-weekdays, .calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-scroll { overflow-x:auto; }
.calendar-weekdays { color:var(--muted); text-align:center; padding:8px 0; }
.calendar-grid { border-top:1px solid var(--line); border-left:1px solid var(--line); }
.calendar-day { min-height:132px; padding:8px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--panel); overflow:hidden; }
.calendar-day.outside { background:transparent; }
.calendar-day.today { box-shadow:inset 0 0 0 2px var(--blue); }
.calendar-date { display:block; margin-bottom:7px; font-weight:700; }
.calendar-event { display:block; margin:4px 0; padding:5px 7px; border-radius:5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; background:#213a61; color:#dceaff; }
.calendar-event.run { background:#21452f; color:#d9f5e2; }
.calendar-event time { font-size:11px; font-weight:700; }
.calendar-event small { display:block; opacity:.7; font-size:9px; }
.calendar-empty { color:var(--muted); opacity:.35; font-size:11px; }
.calendar-legend { display:flex; gap:16px; align-items:center; }
.legend-scheduled::before, .legend-run::before { content:''; display:inline-block; width:10px; height:10px; margin-right:6px; border-radius:3px; background:#213a61; }
.legend-run::before { background:#21452f; }
@media (max-width:700px) { .calendar-weekdays, .calendar-grid { min-width:760px; } .calendar-day { min-height:110px; } }
@media (max-width:700px) { .config-grid { grid-template-columns:1fr; } }
.tools-panel .config-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 28px; width:100%; align-items:end; }
.tools-panel .config-grid label { display:block; width:100%; min-width:0; }
.tools-panel .config-grid label input:not([type='checkbox']) { display:block; width:100%; box-sizing:border-box; margin-top:6px; }
.tools-panel .config-grid .config-toggle { align-self:center; }
.tools-panel form > button { margin-top:16px; }
@media (max-width:700px) { .tools-panel .config-grid { grid-template-columns:1fr; gap:12px; } }
@media (max-width:700px) { .template-form { grid-template-columns:1fr; } .template-form .template-content, .template-actions { grid-column:auto; } }
.page-heading { justify-content: space-between; }
.cards { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.project-cards { margin: 18px 0; }
.api-docs { margin: 18px 0; }
.api-docs h2 { margin-top: 0; }
.api-docs pre { margin: 12px 0; }
.api-docs code { color: #c8dcff; }
.api-docs table { margin-top: 10px; }
.api-docs li + li { margin-top: 6px; }
.card, .panel { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.card b { display: block; font-size: 24px; }
.muted { color: var(--muted); }
table { width: 100%; border-collapse: collapse; margin-top: 16px; }
th, td { text-align: left; padding: 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { color: var(--muted); }
.table-scroll { width: 100%; min-width: 0; overflow-x: auto; }
.jobs-table { min-width: 1040px; table-layout: fixed; }
.jobs-table .col-star { width: 58px; }
.jobs-table .col-id { width: 86px; }
.jobs-table .col-status { width: 102px; }
.jobs-table .col-priority { width: 72px; }
.jobs-table .col-attempt { width: 78px; }
.jobs-table .col-prompt { width: auto; }
.jobs-table .col-project-cwd { width: 25%; }
.jobs-table .col-source { width: 92px; }
.jobs-table .col-profile { width: 180px; }
.jobs-table .col-prompt { width: 42%; }
.jobs-table .col-count { width: 54px; }
.jobs-table .col-created { width: 90px; }
.jobs-table .col-actions { width: 76px; }
.jobs-table th:nth-child(4), .jobs-table td:nth-child(4),
.jobs-table th:nth-child(5), .jobs-table td:nth-child(5),
.jobs-table th:nth-child(8), .jobs-table td:nth-child(8),
.jobs-table th:nth-child(9), .jobs-table td:nth-child(9) { text-align:center; }
.jobs-table th, .jobs-table td { min-width: 0; overflow: hidden; }
.jobs-table .profile-model-cell { max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
.jobs-table .profile-model-cell strong, .jobs-table .profile-model-cell span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jobs-table .project-cwd-cell { max-width: 280px; overflow: hidden; text-overflow: ellipsis; }
.jobs-table .project-cwd-cell strong, .jobs-table .project-cwd-cell span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.page-heading-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.page-heading-row h1 { margin:0; }
.refresh-control { display:flex; align-items:center; justify-content:flex-end; gap:1rem; flex-wrap:nowrap; }
.refresh-interval { display:inline-flex; align-items:center; gap:.4rem; color:var(--muted,#9fb3d9); white-space:nowrap; }
.refresh-interval input { width:4.5rem; box-sizing:border-box; }
.profile-form-panel textarea { min-height: 700px; height: 700px; width:100%; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; resize: vertical; }
.rule-content { min-height:420px; height:clamp(420px,52vh,620px); resize:vertical; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; line-height:1.55; }
.profile-form-panel label { display:block; margin:.8rem 0; }
.profile-form-panel input:not([type=file]) { width:100%; }
.environment-panel form label { display:block; margin:.8rem 0; }
.environment-panel form input:not([type=hidden]) { display:block; width:100%; margin-top:.35rem; }
.environment-panel .form-actions { display:flex; justify-content:flex-end; margin-top:1rem; }
.environment-parameter-form { display:grid; grid-template-columns:minmax(180px,1fr) minmax(280px,2fr) minmax(240px,1.4fr) auto; gap:14px; align-items:end; }
.environment-parameter-form label { margin:0 !important; }
.environment-parameter-form .parameter-secret-toggle { align-self:center; display:flex; margin:0 !important; }
.environment-parameter-form .form-actions { grid-column:1 / -1; margin-top:2px; }
.environment-parameters-table input { width:100%; min-width:190px; }
.environment-parameters-table td:last-child { white-space:nowrap; }
@media (max-width:900px) { .environment-parameter-form { grid-template-columns:1fr 1fr; } .environment-parameter-form .form-actions { grid-column:1 / -1; } }
@media (max-width:600px) { .environment-parameter-form { grid-template-columns:1fr; } .environment-parameter-form .form-actions { grid-column:auto; } }
.switch-control { display:inline-flex; align-items:center; gap:.65rem; color:var(--muted,#9fb3d9); font-size:.9rem; cursor:pointer; user-select:none; }
.switch-control input { position:absolute; opacity:0; pointer-events:none; }
.switch-slider { width:42px; height:22px; border-radius:999px; background:#26334d; border:1px solid #405273; position:relative; transition:.2s ease; }
.switch-slider::after { content:""; width:16px; height:16px; position:absolute; top:2px; left:3px; border-radius:50%; background:#91a4c8; transition:.2s ease; }
.switch-control input:checked + .switch-slider { background:#2563eb; border-color:#5b93ff; }
.switch-control input:checked + .switch-slider::after { transform:translateX(19px); background:#fff; }
@media (max-width:559px) { .refresh-control { gap:.55rem; } .refresh-interval input { width:3.5rem; } }
.badge { padding: 3px 7px; border-radius: 20px; background: #26314b; font-size: 12px; }
.prompt { overflow: hidden; }
.prompt-preview { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; white-space: normal; word-break: break-word; line-height: 1.35; max-height: 2.7em; }
.cwd-cell { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.created-cell { white-space: nowrap; }
.toolbar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 18px 0; }
.filter-toolbar, .sort-toolbar { margin: 10px 0; }
.filter-toolbar { display:grid; grid-template-columns:minmax(240px,1.5fr) repeat(4,minmax(130px,1fr)) auto auto; align-items:center; }
.filter-toolbar input, .filter-toolbar select, .sort-toolbar select { min-width:0; width:100%; }
.sort-toolbar { display:grid; grid-template-columns:auto minmax(220px,1fr) minmax(180px,.8fr) auto; align-items:center; padding-top:14px; border-top:1px solid var(--line); }
.sort-toolbar .sort-label { white-space:nowrap; }
.sort-label { margin: 0 2px 0 0; color: var(--muted); font-size: .9rem; }
button, .button, input, textarea, select { background: #1c263d; color: var(--text); border: 1px solid #3b4968; border-radius: 7px; padding: 9px 11px; }
button, .button { cursor: pointer; }
.button.compact { display: inline-block; padding: 5px 8px; white-space: nowrap; }
button.danger { border-color: var(--red); color: #ffabb3; }
label { display: block; margin: 12px 0 5px; color: var(--muted); }
textarea { width: 100%; min-height: 140px; }
input, select { max-width: 100%; }
.full-width { width: 100%; }
.extra-args { min-height: 80px; }
.extra-prompt { min-height: 110px; }
.rules-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; }
.job-rule-category-tabs { display:flex; gap:7px; margin:7px 0 10px; padding-bottom:3px; overflow-x:auto; }
.job-rule-category-tab { display:inline-flex; align-items:center; gap:6px; flex:none; padding:6px 10px; border:1px solid var(--line); border-radius:999px; background:#141d30; color:var(--muted); white-space:nowrap; }
.job-rule-category-tab span { min-width:19px; padding:1px 5px; border-radius:999px; background:#26334d; color:var(--text); font-size:10px; text-align:center; }
.job-rule-category-tab.active { border-color:var(--blue); background:#1a3155; color:#dceaff; }
.job-rule-category-tab:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.rule-choice { display: flex; gap: 9px; margin: 0; padding: 10px; border: 1px solid var(--line); border-radius: 7px; cursor: pointer; }
.rule-choice:has(input:checked) { border-color: var(--blue); background: #18233a; }
.rule-choice input { flex: none; }
.rule-choice span, .rule-choice small { display: block; min-width: 0; }
.rule-choice small { margin-top: 3px; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.field-help { margin-top: 6px; }
.rule-summary { max-width: 600px; white-space: pre-wrap; }
.rule-snapshot + .rule-snapshot { margin-top: 18px; }
.rule-snapshot h3 { margin-bottom: 5px; }
.compact-toolbar { margin: 0; flex-wrap: nowrap; }
.inline-form { display:inline; margin:0; }
.mobile-nav { display:flex; gap:10px; flex-wrap:wrap; }
.mobile-body { background:var(--bg); }
.mobile-main { max-width:760px; margin:auto; padding:14px; }
.mobile-header { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; position:relative; margin-bottom:20px; }
.mobile-header a:first-child { display:flex; flex-direction:column; gap:3px; }
.mobile-menu-toggle { display:none; }
.mobile-nav a { min-height:44px; display:flex; align-items:center; padding:9px 10px; }
.mobile-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:14px 0; }
.mobile-heading h1 { margin:0; }
.mobile-filter, .mobile-form { display:grid; gap:10px; margin:12px 0 18px; }
.mobile-filter { grid-template-columns:1fr 1fr; }
.mobile-filter select, .mobile-filter button { width:100%; }
.mobile-job-list { display:grid; gap:10px; }
.mobile-manage-list { display:grid; gap:10px; }
.mobile-manage-card { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:14px; overflow-wrap:anywhere; }
.mobile-manage-card h3 { margin:0 0 8px; }
.mobile-manage-card p { margin:6px 0; white-space:pre-wrap; }
.mobile-job-card, .mobile-detail { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:14px; overflow-wrap:anywhere; }
.mobile-job-top { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.mobile-job-card p { margin:10px 0; white-space:pre-wrap; }
.mobile-job-card dl, .mobile-detail dl { display:grid; grid-template-columns:110px 1fr; gap:6px 10px; margin:10px 0 14px; }
.mobile-job-card dt, .mobile-detail dt { color:var(--muted); }
.mobile-job-card dd, .mobile-detail dd { margin:0; }
.mobile-detail ul { margin:0; padding-left:18px; }
.mobile-log { margin-top:10px; border-top:1px solid var(--line); padding-top:8px; }
.mobile-log summary { cursor:pointer; color:var(--blue); min-height:32px; }
.mobile-log pre { max-height:260px; margin:8px 0 0; font-size:.82rem; }
.mobile-actions { display:flex; gap:10px; flex-wrap:wrap; }
.mobile-footer { display:grid; gap:6px; border-top:1px solid var(--line); margin-top:24px; padding:14px 0; color:var(--muted); font-size:.9rem; }
@media (max-width:700px) { .mobile-menu-toggle { display:block; min-width:44px; min-height:44px; } .mobile-nav { display:none; position:absolute; z-index:30; top:52px; right:0; left:0; flex-direction:column; padding:8px; background:var(--panel); border:1px solid var(--line); border-radius:8px; } .mobile-header.open .mobile-nav { display:flex; } .mobile-filter { grid-template-columns:1fr; } .mobile-main { padding:12px; } }
.compact-toolbar form { margin: 0; }
.status-retry { display:block; margin-top:6px; }
.status-retry button { min-height:28px; padding:4px 9px; }
.bulk-jobs-toolbar { align-items:center; justify-content:flex-end; gap:12px; }
.bulk-jobs-toolbar label { display:flex; align-items:center; gap:7px; margin:0; }
.bulk-select-switch { cursor:pointer; }
.bulk-select-switch input { position:absolute; opacity:0; pointer-events:none; }
.bulk-select-switch .switch-slider { position:relative; display:inline-block; width:38px; height:20px; border-radius:999px; background:#33415f; border:1px solid #526383; transition:background .15s; }
.bulk-select-switch .switch-slider::after { content:""; position:absolute; width:14px; height:14px; left:2px; top:2px; border-radius:50%; background:#9fb3d8; transition:transform .15s; }
.bulk-select-switch input:checked + .switch-slider { background:#2d73e6; }
.bulk-select-switch input:checked + .switch-slider::after { transform:translateX(18px); background:#fff; }
.jobs-table .star-cell { display:table-cell; white-space:nowrap; vertical-align:middle; }
.jobs-table .star-cell .job-select { display:inline-block; vertical-align:middle; width:16px !important; }
.jobs-table .star-cell .star-form { display:inline-block; vertical-align:middle; margin:0; }
.job-select { width:auto !important; margin:0 8px 0 0 !important; vertical-align:middle; }
.trash-preview { max-height:80px; margin:0; padding:6px; }
.cwd-filter { max-width: min(520px, 100%); }
.form-note { margin-top: 10px; }
.remote-sync-panel { margin-top: 18px; }
.remote-sync-panel h2 { margin-top: 0; }
.remote-sync-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.remote-sync-group { margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: rgba(8,12,23,.2); }
.remote-sync-group legend { padding: 0 7px; color: var(--text); font-weight: 600; }
.remote-sync-group label { margin-top: 8px; }
.remote-sync-group input, .remote-sync-group select { width: 100%; margin-top: 5px; }
.remote-sync-toggle { display: flex; align-items: center; gap: 9px; margin: 0 0 4px; color: var(--text); font-weight: 600; }
.remote-sync-toggle input { width: auto; margin: 0; }
.remote-sync-actions { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-top: 16px; }
/* The remote-sync form is intentionally grouped by a two-column rhythm even
   though its fields remain a single semantic form for backwards compatibility. */
/* Configuration cards use one predictable vertical rhythm: full-width fields,
   checkbox on its own line, and the action aligned to the right below fields. */
.config-panel form[action='/config'] { display:grid; grid-template-columns:1fr; gap:12px; align-items:stretch; }
.config-panel form[action='/config'] > label { width:100%; }
.config-panel form[action='/config'] label { margin:0; min-width:0; }
.config-panel form[action='/config'] label input:not([type='checkbox']),
.config-panel form[action='/config'] label select,
.config-panel form[action='/config'] label textarea { display:block; width:100%; margin-top:5px; }
.config-panel form[action='/config'] label:has(input[type='checkbox']) { display:flex; align-items:center; gap:8px; }
.config-panel form[action='/config'] label input[type='checkbox'] { width:auto; margin:0; }
.config-panel form[action='/config'] > input[type='hidden'] { display:none; }
.config-panel form[action='/config'] button { justify-self:end; margin-right:0; }
@media (max-width: 760px) { .remote-sync-grid { grid-template-columns: 1fr; } }
.paste-zone { margin-top: 10px; padding: 18px; border: 1px dashed #526383; border-radius: 8px; color: var(--muted); text-align: center; cursor: text; transition: border-color .15s, background .15s; }
.paste-zone:focus, .paste-zone.paste-success { outline: none; border-color: var(--blue); background: #18233a; color: var(--text); }
.paste-zone kbd { padding: 2px 5px; border: 1px solid #526383; border-radius: 4px; background: #080c17; }
.image-status { min-height: 21px; margin: 5px 0; }
.image-preview, .image-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin: 12px 0; }
.image-preview img, .image-gallery img { width: 100%; height: 150px; object-fit: contain; background: #080c17; border: 1px solid var(--line); border-radius: 8px; }
.image-preview-card { position: relative; }
.image-remove { position: absolute; right: 6px; bottom: 6px; padding: 4px 7px; background: rgba(8, 12, 23, .88); }
.pagination { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:16px; margin-top:16px; }
.pagination-nav { display:flex; gap:8px; align-items:center; }
.pagination-left { justify-content:flex-start; }
.pagination-right { justify-content:flex-end; }
.pagination-center { display:flex; flex-direction:column; align-items:center; gap:6px; }
.pagination-form { display:flex; align-items:center; gap:8px; margin:0; }
.pagination-form input { width:64px; }
.pagination-form select { min-width:72px; }
.rules-picker { max-height: 260px; overflow-y: auto; padding-right: 6px; border: 1px solid var(--border); border-radius: 8px; }
.rule-choice[hidden] { display: none; }
@media (max-width: 700px) {
  .pagination { grid-template-columns:1fr; justify-items:center; }
  .pagination-left, .pagination-right { justify-content:center; }
}
.field-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
pre { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 430px; overflow: auto; background: #080c17; padding: 14px; border-radius: 8px; }
.error { color: #ffabb3; }
.notice { margin: 14px 0; padding: 11px 14px; border: 1px solid #3f8f68; border-radius: 8px; background: #122b24; color: #a9ebc9; }
.tabs { display: flex; gap: 4px; margin-top: 18px; overflow-x: auto; }
.tab-button { border-bottom-right-radius: 0; border-bottom-left-radius: 0; color: var(--muted); }
.tab-button.active { background: var(--panel); border-color: var(--blue); color: var(--text); }
.tab-container { border-top-left-radius: 0; min-height: 300px; }
.tab-panel[hidden] { display: none; }
.tab-panel h2 { margin-top: 0; }
.tab-panel table { margin-top: 0; }
.log-output { height: min(62vh, 600px); max-height: none; margin-bottom: 0; }

@media (max-width: 760px) {
  .filter-toolbar, .sort-toolbar { grid-template-columns:1fr; align-items:stretch; }
  .sort-toolbar .sort-label { margin-bottom:2px; }
  .cards, .field-grid { grid-template-columns: 1fr; }
  .table-scroll { overflow: auto; }
  nav { align-items: flex-start; gap: 12px; }
  .nav-actions { flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
  .station-title-row { align-items:flex-start; flex-direction:column; gap:5px; }
  .nav-menu-panel { right: auto; left: 0; }
  .site-footer { grid-template-columns:1fr; text-align:center; gap:6px; }
  .site-footer > span:nth-child(2), .site-footer .footer-ref { text-align:center; }
}
.server-description { display:block; margin:0; color:var(--muted); font-size:.75rem; font-weight:400; line-height:1.25; }
.star-form{display:inline;margin-right:5px}.star-button{border:0;background:transparent;color:#64748b;font-size:1.2rem;padding:0 2px;cursor:pointer}.star-button.starred{color:#facc15}
.star-detail{margin-left:auto}
.job-form-actions{position:sticky;bottom:0;z-index:5;background:var(--panel);border-top:1px solid var(--border);padding:12px 0;margin-bottom:-1px;justify-content:flex-end}
.token-count{color:var(--muted);font-size:.78rem;margin-left:8px;white-space:nowrap}
.job-context-grid { display:grid; grid-template-columns:1fr 2fr; gap:14px; margin-bottom:16px; padding:12px 14px; border:1px solid var(--line); border-radius:8px; background:#10182a; }
.job-context-summary { display:grid; grid-template-columns:minmax(160px, .8fr) minmax(260px, 2fr); gap:14px; margin:10px 0 0; padding:12px 14px; border:1px solid var(--line); border-radius:8px; background:#10182a; }
.job-context-summary div { display:flex; flex-direction:column; gap:5px; min-width:0; }
.context-value { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.job-context-summary code { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text); }
.project-parameter-form { display:grid; grid-template-columns:minmax(220px,1fr) minmax(320px,2fr) minmax(220px,1fr); gap:14px; align-items:end; }
.project-parameter-form label { display:block; margin:0; }
.project-parameter-form input { display:block; width:100%; margin-top:6px; }
.project-parameter-form button { white-space:nowrap; }
.project-parameter-form .parameter-secret-toggle { display:flex; align-items:center; gap:7px; margin:0; }
.project-parameter-form .parameter-secret-toggle input { width:auto; margin:0; }
.project-parameter-form > button { grid-column:3; justify-self:end; }
.project-parameters-table input { width:100%; min-width:180px; }
.project-parameters-table td:last-child { white-space:nowrap; }
.parameter-actions { display:flex; align-items:center; gap:8px; }
.parameter-actions form { margin:0; }
.parameter-actions button { white-space:nowrap; }
.parameter-secret-toggle { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.parameter-secret-toggle input { width:auto !important; min-width:0 !important; }
.inline-form { display:inline-block; margin-left:8px; }
.config-panel + .config-panel { margin-top: 14px; }
.maintenance-page > .panel + .panel,
.page-maintenance > .panel + .panel,
main > h1 + .panel ~ .panel,
.tools-panel > .panel + .panel { margin-top: 14px; }
@media (max-width:760px) { .project-parameter-form { grid-template-columns:1fr; align-items:stretch; } .project-parameter-form > button { grid-column:auto; justify-self:end; } }
@media (max-width:760px) { .job-context-grid, .job-context-summary { grid-template-columns:1fr; } }
