/* ServerDeck — Websites dashboard + detail. Layers on tokens/app/screens + detail.css */

/* ============================================================
   DASHBOARD
   ============================================================ */
.page-head { display: flex; align-items: flex-end; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
.page-head .pt { font-size: 24px; font-weight: 800; letter-spacing: -.03em; }
.page-head .ps { font-size: 12.5px; color: var(--text-2); margin-top: 3px; }

/* ---- issues triage banner ---- */
.issues { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); box-shadow: var(--shadow-sm); margin-bottom: 16px; overflow: hidden; }
.issues-head { display: flex; align-items: center; gap: 10px; padding: 13px 16px; border-bottom: 1px solid var(--line); }
.issues-head .ih-t { font-size: 13.5px; font-weight: 700; }
.issues-head .ih-count { font-family: var(--font-mono); font-weight: 700; }
.issues-rail { display: flex; gap: 10px; padding: 12px 16px; overflow-x: auto; }
.issue-card {
  flex: 0 0 auto; width: 254px; background: var(--surface-2); border: 1px solid var(--line);
  border-left: 3px solid var(--line-strong); border-radius: var(--r-sm); padding: 11px 13px; cursor: pointer;
  transition: border-color .14s, transform .14s var(--ease), box-shadow .14s;
}
.issue-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: var(--line-strong); }
.issue-card.bad { border-left-color: var(--danger); }
.issue-card.warn { border-left-color: var(--warning); }
.issue-card .ic-top { display: flex; align-items: center; gap: 7px; }
.issue-card .ic-dom { font-family: var(--font-mono); font-weight: 700; font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.issue-card .ic-lbl { font-size: 11.5px; color: var(--text); margin-top: 6px; font-weight: 600; }
.issue-card .ic-sub { font-size: 10.5px; color: var(--text-3); margin-top: 2px; font-family: var(--font-mono); }
.issue-card .ic-fix { margin-top: 9px; display: flex; gap: 6px; }
.issues-empty { padding: 14px 16px; display: flex; align-items: center; gap: 9px; color: var(--success); font-size: 13px; font-weight: 600; }

/* ---- toolbar / filters ---- */
.wtoolbar { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-bottom: 12px; }
.fchip {
  display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px; border-radius: 9px;
  background: var(--surface); border: 1px solid var(--line); font-size: 12px; font-weight: 600; color: var(--text-2);
  cursor: pointer; transition: border-color .14s, color .14s;
}
.fchip .ic { width: 14px; height: 14px; }
.fchip:hover { border-color: var(--line-strong); color: var(--text); }
.fchip.active { background: var(--accent-soft); color: var(--accent); border-color: transparent; }
.fchip .cnt { font-family: var(--font-mono); font-size: 10.5px; opacity: .7; }

/* ---- dense health table ---- */
.wt-wrap { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--shadow-sm); overflow: hidden; }
table.wt { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12.5px; }
table.wt thead th {
  text-align: left; font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
  color: var(--text-3); padding: 11px 12px; border-bottom: 1px solid var(--line); background: var(--surface-2); white-space: nowrap;
}
table.wt th:first-child, table.wt td:first-child { padding-left: 16px; }
table.wt th:last-child, table.wt td:last-child { padding-right: 16px; }
table.wt td { padding: 8px 12px; border-bottom: 1px solid var(--line); height: 50px; vertical-align: middle; }
table.wt tbody tr { cursor: pointer; transition: background .12s; }
table.wt tbody tr:hover { background: var(--accent-soft); }
table.wt tbody tr:last-child td { border-bottom: none; }
.wt-dom { display: flex; align-items: center; gap: 9px; }
.sev-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.sev-dot.ok { background: var(--success); }
.sev-dot.notice { background: var(--neutral); }
.sev-dot.warn { background: var(--warning); box-shadow: 0 0 0 3px var(--warning-soft); }
.sev-dot.bad { background: var(--danger); box-shadow: 0 0 0 3px var(--danger-soft); animation: blink 1.3s ease-in-out infinite; }
.wt-domname { font-family: var(--font-mono); font-weight: 600; }
.wt-badges { display: flex; gap: 5px; flex-wrap: wrap; }
.hbadge { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 5px; white-space: nowrap; }
.hbadge.bad { color: var(--danger); background: var(--danger-soft); }
.hbadge.warn { color: var(--warning); background: var(--warning-soft); }
.hbadge.ok { color: var(--success); background: var(--success-soft); }
.err-num { font-family: var(--font-mono); font-weight: 700; }
.err-num.bad { color: var(--danger); } .err-num.warn { color: var(--warning); } .err-num.ok { color: var(--text-3); }
.mini-spark { width: 84px; height: 26px; display: block; }
.wt-actions { display: flex; gap: 6px; justify-content: flex-end; opacity: 0; transition: opacity .12s; }
table.wt tbody tr:hover .wt-actions { opacity: 1; }

/* quick-fix popover */
.qfix { position: relative; }
.qfix-menu {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; width: 220px;
  background: var(--surface); border: 1px solid var(--line-strong); border-radius: var(--r-md);
  box-shadow: var(--shadow-pop); padding: 5px; display: none;
}
.qfix-menu.open { display: block; }
.qfix-item { display: flex; align-items: center; gap: 9px; padding: 8px 10px; border-radius: var(--r-xs); font-size: 12.5px; font-weight: 600; color: var(--text); width: 100%; text-align: left; }
.qfix-item .ic { width: 15px; height: 15px; color: var(--text-2); }
.qfix-item:hover { background: var(--surface-2); }
.qfix-item.danger { color: var(--danger); } .qfix-item.danger .ic { color: var(--danger); }
.qfix-sep { height: 1px; background: var(--line); margin: 4px 0; }

/* bulk bar */
.bulkbar {
  position: sticky; bottom: 16px; margin: 14px auto 0; width: max-content; display: none;
  align-items: center; gap: 12px; padding: 9px 12px 9px 16px; border-radius: 999px;
  background: var(--text); color: var(--surface); box-shadow: var(--shadow-lg); z-index: 30;
}
.bulkbar.show { display: flex; }
.bulkbar .bb-n { font-weight: 700; font-size: 13px; }
.bulkbar .btn { background: rgba(255,255,255,.14); color: #fff; border-color: transparent; }
.bulkbar .btn:hover { background: rgba(255,255,255,.26); }
.wt-check { width: 15px; height: 15px; accent-color: var(--accent); cursor: pointer; }

/* ============================================================
   WEBSITE DETAIL — header SSL/visit, stat strip reused from detail.css
   ============================================================ */
.site-fav { width: 34px; height: 34px; border-radius: 9px; flex: none; display: grid; place-items: center;
  background: var(--accent-soft); color: var(--accent); font-weight: 800; font-family: var(--font-mono); font-size: 15px; }

/* ---- LOGS & ERRORS ---- */
.log-toolbar { display: flex; align-items: center; gap: 9px; padding: 12px 16px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.log-list { font-family: var(--font-mono); font-size: 12px; }
.log-row { display: grid; grid-template-columns: 64px 78px 96px 1fr; gap: 10px; padding: 7px 16px; border-bottom: 1px solid var(--line); cursor: pointer; align-items: start; }
.log-row:hover { background: var(--surface-2); }
.log-row .lr-time { color: var(--text-3); white-space: nowrap; }
.log-row .lr-level { font-weight: 700; font-size: 10px; text-transform: uppercase; letter-spacing: .04em; padding-top: 1px; }
.lr-level.error { color: var(--danger); } .lr-level.warning { color: var(--warning); } .lr-level.info { color: var(--text-3); } .lr-level.notice { color: var(--accent-2); }
.log-row .lr-src { color: var(--text-2); }
.log-row .lr-msg { color: var(--text); line-height: 1.55; min-width: 0; }
.log-row .lr-text { white-space: pre-wrap; word-break: break-word; }
.log-row.error { background: color-mix(in srgb, var(--danger) 4%, transparent); }
.log-row .lr-msg .lr-fix { display: none; margin-top: 8px; gap: 7px; }
.log-row.exp .lr-msg .lr-fix { display: flex; flex-wrap: wrap; }
.log-row .lr-meta { display: none; margin-top: 6px; color: var(--text-3); font-size: 11px; }
.log-row.exp .lr-meta { display: block; }
.log-live { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; color: var(--success); }
.log-live .pulse { width: 7px; height: 7px; border-radius: 50%; background: var(--success); position: relative; }
.log-live .pulse::after { content: ""; position: absolute; inset: -3px; border-radius: 50%; border: 1.5px solid var(--success); opacity: .5; animation: pulse 1.8s var(--ease) infinite; }

/* ---- VS Code-style FILE EDITOR ---- */
.editor { display: grid; grid-template-columns: 232px 1fr; height: 560px; min-height: 0; border-radius: 0 0 var(--r-md) var(--r-md); overflow: hidden; }
@media (max-width: 820px) { .editor { grid-template-columns: 1fr; } }
.ed-side { background: var(--surface-2); border-right: 1px solid var(--line); display: flex; flex-direction: column; min-height: 0; }
.ed-side-h { padding: 9px 12px; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--text-3); display: flex; align-items: center; gap: 7px; }
.ed-side-h .grow { flex: 1; }
.ftree { flex: 1; overflow-y: auto; padding: 2px 0 8px; }
.ftree-item { display: flex; align-items: center; gap: 6px; padding: 3px 10px; font-size: 12.5px; color: var(--text); cursor: pointer; white-space: nowrap; position: relative; }
.ftree-item:hover { background: var(--surface-3); }
.ftree-item.active { background: var(--accent-soft); color: var(--accent); }
.ftree-item .ic { width: 14px; height: 14px; flex: none; }
.ftree-item .fi-folder { color: var(--accent-2); } .ftree-item .fi-file { color: var(--text-3); }
.ftree-item .fdot { width: 6px; height: 6px; border-radius: 50%; background: var(--warning); margin-left: auto; flex: none; }
.ftree-item .fprob { width: 6px; height: 6px; border-radius: 50%; background: var(--danger); margin-left: auto; flex: none; }
.ed-main { display: flex; flex-direction: column; min-width: 0; background: var(--surface); }
.etabs { display: flex; background: var(--surface-2); border-bottom: 1px solid var(--line); overflow-x: auto; flex: none; }
.etab { display: flex; align-items: center; gap: 8px; padding: 8px 12px; font-size: 12px; color: var(--text-2); border-right: 1px solid var(--line); white-space: nowrap; cursor: pointer; }
.etab.active { background: var(--surface); color: var(--text); border-top: 2px solid var(--accent); margin-top: -1px; }
.etab .et-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--text-3); }
.etab.dirty .et-dot { background: var(--warning); }
.etab .et-x { width: 15px; height: 15px; display: grid; place-items: center; border-radius: 4px; color: var(--text-3); }
.etab .et-x:hover { background: var(--surface-3); }
.ed-bread { padding: 5px 14px; font-family: var(--font-mono); font-size: 11px; color: var(--text-3); border-bottom: 1px solid var(--line); flex: none; }
.code-wrap { flex: 1; overflow: auto; display: flex; min-height: 0; background: var(--surface); }
.gutter { flex: none; text-align: right; padding: 10px 10px 10px 14px; color: var(--text-3); font-family: var(--font-mono); font-size: 12.5px; line-height: 1.55; user-select: none; background: var(--surface); }
.code { flex: 1; margin: 0; padding: 10px 16px; font-family: var(--font-mono); font-size: 12.5px; line-height: 1.55; white-space: pre; tab-size: 4; outline: none; color: var(--text); min-width: 0; }
.code .ln-problem { background: color-mix(in srgb, var(--danger) 8%, transparent); display: inline-block; width: 100%; }
.estatus { display: flex; align-items: center; gap: 14px; padding: 5px 14px; background: var(--accent); color: var(--accent-on); font-size: 11px; font-weight: 600; flex: none; }
.estatus .grow { flex: 1; }
.estatus .es-seg { display: inline-flex; align-items: center; gap: 5px; }
/* syntax tokens (VS Code Light+) */
.tk-com { color: #008000; font-style: italic; }
.tk-str { color: #a31515; }
.tk-kw  { color: #0000ff; }
.tk-num { color: #098658; }
.tk-fn  { color: #795e26; }
.tk-var { color: #001080; }
.tk-type{ color: #267f99; }
.tk-tag { color: #800000; }
.tk-attr{ color: #e50000; }
[data-theme="dark"] .tk-com { color: #6a9955; } [data-theme="dark"] .tk-str { color: #ce9178; }
[data-theme="dark"] .tk-kw { color: #569cd6; } [data-theme="dark"] .tk-num { color: #b5cea8; }
[data-theme="dark"] .tk-fn { color: #dcdcaa; } [data-theme="dark"] .tk-var { color: #9cdcfe; }
[data-theme="dark"] .tk-type { color: #4ec9b0; } [data-theme="dark"] .tk-tag { color: #569cd6; }
[data-theme="dark"] .code-wrap, [data-theme="dark"] .code, [data-theme="dark"] .gutter, [data-theme="dark"] .ed-main { background: #1e1e1e; }
[data-theme="dark"] .code { color: #d4d4d4; }

/* ---- DB EDITOR (TablePlus / phpMyAdmin feel) ---- */
.db { display: grid; grid-template-columns: 230px 1fr; height: 580px; min-height: 0; overflow: hidden; border-radius: 0 0 var(--r-md) var(--r-md); }
@media (max-width: 820px) { .db { grid-template-columns: 1fr; } }
.db-side { background: var(--surface-2); border-right: 1px solid var(--line); display: flex; flex-direction: column; min-height: 0; }
.db-side-h { padding: 10px 12px; border-bottom: 1px solid var(--line); }
.db-conn { font-size: 12px; font-weight: 700; display: flex; align-items: center; gap: 7px; }
.db-conn .ic { width: 14px; height: 14px; color: var(--accent); }
.db-conn-sub { font-family: var(--font-mono); font-size: 10.5px; color: var(--text-3); margin-top: 3px; }
.db-tables { flex: 1; overflow-y: auto; padding: 4px 0; }
.db-table-item { display: flex; align-items: center; gap: 8px; padding: 7px 12px; font-size: 12.5px; cursor: pointer; }
.db-table-item:hover { background: var(--surface-3); }
.db-table-item.active { background: var(--accent-soft); color: var(--accent); }
.db-table-item .ic { width: 13px; height: 13px; color: var(--text-3); flex: none; }
.db-table-item.active .ic { color: var(--accent); }
.db-table-item .dt-name { flex: 1; font-family: var(--font-mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.db-table-item .dt-rows { font-family: var(--font-mono); font-size: 10.5px; color: var(--text-3); }
.db-main { display: flex; flex-direction: column; min-width: 0; background: var(--surface); }
.db-tabs { display: flex; gap: 2px; padding: 8px 12px 0; border-bottom: 1px solid var(--line); background: var(--surface-2); flex: none; }
.db-tab { padding: 8px 14px; font-size: 12px; font-weight: 600; color: var(--text-2); border-bottom: 2px solid transparent; margin-bottom: -1px; cursor: pointer; }
.db-tab.active { color: var(--accent); border-color: var(--accent); }
.db-toolbar { display: flex; align-items: center; gap: 9px; padding: 9px 14px; border-bottom: 1px solid var(--line); flex: none; flex-wrap: wrap; }
.db-body { flex: 1; overflow: auto; min-height: 0; }
/* data grid */
table.dg { width: 100%; border-collapse: separate; border-spacing: 0; font-family: var(--font-mono); font-size: 12px; }
table.dg th { position: sticky; top: 0; z-index: 1; text-align: left; padding: 8px 12px; background: var(--surface-2); border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); font-weight: 700; color: var(--text-2); white-space: nowrap; }
table.dg th .pk { color: var(--accent); font-size: 9px; margin-left: 5px; }
table.dg td { padding: 0; border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); white-space: nowrap; }
table.dg td .cell { padding: 7px 12px; min-width: 60px; outline: none; }
table.dg td .cell:focus { background: var(--accent-soft); box-shadow: inset 0 0 0 2px var(--accent); }
table.dg td.dirty .cell { background: var(--warning-soft); }
table.dg tbody tr:hover td { background: color-mix(in srgb, var(--surface-2) 50%, transparent); }
.dg-status { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 20px; display: inline-block; }
.dg-status.paid, .dg-status.publish, .dg-status.active { color: var(--success); background: var(--success-soft); }
.dg-status.pending, .dg-status.draft { color: var(--warning); background: var(--warning-soft); }
.dg-status.failed, .dg-status.refunded { color: var(--danger); background: var(--danger-soft); }
.dg-null { color: var(--text-3); font-style: italic; }
/* sql console */
.sqlc { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.sql-editor { font-family: var(--font-mono); font-size: 13px; line-height: 1.6; padding: 12px 14px; border: none; outline: none; resize: none; background: var(--surface); color: var(--text); min-height: 96px; width: 100%; }
.sql-actionbar { display: flex; align-items: center; gap: 9px; padding: 8px 14px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface-2); flex: none; }
.sql-results { flex: 1; overflow: auto; min-height: 0; }
.sql-result-meta { padding: 8px 14px; font-family: var(--font-mono); font-size: 11.5px; color: var(--text-2); border-bottom: 1px solid var(--line); }
.sql-result-meta b { color: var(--success); }
.sql-side { padding: 10px 12px; }
.sql-q { display: block; width: 100%; text-align: left; font-family: var(--font-mono); font-size: 11px; color: var(--text-2); padding: 7px 9px; border-radius: var(--r-xs); cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sql-q:hover { background: var(--surface-3); color: var(--text); }

/* ---- deployments ---- */
.dep-row { display: flex; align-items: center; gap: 13px; padding: 13px 16px; border-bottom: 1px solid var(--line); }
.dep-row:last-child { border-bottom: none; }
.dep-ic { width: 32px; height: 32px; border-radius: 8px; flex: none; display: grid; place-items: center; }
.dep-ic.success { background: var(--success-soft); color: var(--success); }
.dep-ic.failed { background: var(--danger-soft); color: var(--danger); }
.dep-ic.building { background: var(--accent-soft); color: var(--accent); }
.dep-hash { font-family: var(--font-mono); font-weight: 700; font-size: 12.5px; }
.dep-msg { font-size: 12.5px; } .dep-sub { font-size: 11px; color: var(--text-3); font-family: var(--font-mono); margin-top: 1px; }

/* ---- settings / domain ---- */
.set-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 16px; }
@media (max-width: 860px) { .set-grid { grid-template-columns: 1fr; } }
.toggle-row { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.toggle-row:last-child { border-bottom: none; }
.toggle-row .tr-body { flex: 1; } .toggle-row .tr-t { font-size: 12.5px; font-weight: 600; } .toggle-row .tr-d { font-size: 11px; color: var(--text-3); }
.switch { width: 38px; height: 22px; border-radius: 20px; background: var(--line-strong); position: relative; flex: none; cursor: pointer; transition: background .18s; }
.switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: var(--shadow-sm); transition: transform .18s var(--ease); }
.switch.on { background: var(--accent); } .switch.on::after { transform: translateX(16px); }
.dns-tbl { width: 100%; border-collapse: collapse; font-family: var(--font-mono); font-size: 12px; }
.dns-tbl th { text-align: left; font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--text-3); padding: 8px 12px; border-bottom: 1px solid var(--line); }
.dns-tbl td { padding: 8px 12px; border-bottom: 1px solid var(--line); }
.dns-tbl .dtype { font-weight: 700; color: var(--accent-2); }

/* overview kv keys shouldn't wrap */
.status-col .kv .k { white-space: nowrap; padding-right: 14px; }
.status-col .kv .v { text-align: right; word-break: break-all; }

/* ═══════════════════════════════════════════════════════════════
   Cron job manager
   ═══════════════════════════════════════════════════════════════ */

/* ── Job list ────────────────────────────────────────────────── */
#cronList { display: flex; flex-direction: column; }

.cron-row {
  border-bottom: 1px solid var(--line);
  transition: background .1s;
}
.cron-row:last-child { border-bottom: none; }
.cron-row.disabled .cron-label,
.cron-row.disabled .cron-schedule,
.cron-row.disabled .cron-cmd { opacity: .45; }

.cron-row-main {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 13px 16px;
}
.cron-row.expanded .cron-row-main { padding-bottom: 8px; }

/* Status dot */
.cron-dot {
  width: 8px; height: 8px; border-radius: 50%; flex: none; margin-top: 5px;
}
.cron-dot.ok   { background: var(--success); box-shadow: 0 0 0 3px var(--success-soft); }
.cron-dot.fail { background: var(--danger);  box-shadow: 0 0 0 3px var(--danger-soft);  }
.cron-dot.none { background: var(--text-3);  box-shadow: 0 0 0 3px var(--surface-3);    }

/* Job body — label, schedule, command */
.cron-body { flex: 1; min-width: 0; cursor: pointer; }
.cron-label {
  font-size: 13px; font-weight: 700; color: var(--text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cron-schedule {
  display: flex; align-items: center; gap: 6px;
  font-size: 11.5px; color: var(--text-2); margin-top: 3px;
}
.cron-schedule .ic { width: 12px; height: 12px; flex: none; }
.cron-expr {
  font-family: var(--font-mono); font-size: 10.5px;
  color: var(--text-3); background: var(--surface-2);
  padding: 1px 5px; border-radius: 4px; margin-left: 4px;
}
.cron-cmd {
  font-family: var(--font-mono); font-size: 11px; color: var(--text-3);
  margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cron-lastrun {
  font-size: 11px; color: var(--text-3); margin-top: 3px;
  display: flex; gap: 4px; align-items: center;
}
.cron-exit.ok   { color: var(--success); font-weight: 600; }
.cron-exit.fail { color: var(--danger);  font-weight: 600; }

/* Action buttons */
.cron-actions {
  display: flex; gap: 6px; align-items: center; flex: none; flex-wrap: wrap;
}
.cron-run-btn.running { opacity: .7; }

/* Spinner in run button */
.cron-spin {
  display: inline-block; width: 10px; height: 10px;
  border-radius: 50%; border: 2px solid currentColor;
  border-right-color: transparent;
  animation: cron-sp .7s linear infinite; vertical-align: middle;
}
@keyframes cron-sp { to { transform: rotate(360deg); } }

/* ── Expanded detail section ─────────────────────────────────── */
.cron-expanded-body {
  background: var(--surface-2);
  border-top: 1px solid var(--line);
  padding: 12px 16px 14px;
  display: flex; flex-direction: column; gap: 0;
}
.cron-exp-row {
  display: flex; gap: 14px; padding: 6px 0;
  border-bottom: 1px solid var(--line); font-size: 12.5px;
}
.cron-exp-row:last-of-type { border-bottom: none; }
.cron-exp-k {
  width: 80px; flex: none; color: var(--text-3);
  font-size: 11px; font-weight: 600; text-transform: uppercase;
  letter-spacing: .06em; padding-top: 1px;
}
.cron-exp-v { flex: 1; color: var(--text); display: flex; gap: 10px; flex-wrap: wrap; align-items: baseline; }
.cron-exp-v .mono { font-family: var(--font-mono); font-size: 12px; }

.cron-exp-actions {
  display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap;
}

/* Last-run output window */
.cron-log {
  margin-top: 10px;
  font-family: var(--font-mono); font-size: 11.5px; line-height: 1.6;
  background: #09090b; color: #d4d4d8;
  padding: 10px 12px; border-radius: var(--r-sm);
  max-height: 240px; overflow-y: auto;
  white-space: pre-wrap; word-break: break-all;
}
[data-theme="dark"] .cron-log { background: #000; }

/* ── Add job form ─────────────────────────────────────────────── */
.cron-add-form {
  border-top: 2px solid var(--accent);
  background: var(--surface);
  padding: 18px 20px;
  display: flex; flex-direction: column; gap: 14px;
}
.cron-add-title {
  font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 8px;
}
.cron-add-row {
  display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap;
}
.cron-add-label {
  width: 90px; flex: none; font-size: 12.5px; font-weight: 600;
  color: var(--text-2); padding-top: 9px;
}
.cron-add-field {
  flex: 1; display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
}
.cron-add-footer {
  display: flex; gap: 8px; margin-top: 4px;
}

/* ── Quick-add presets ───────────────────────────────────────── */
.cron-presets {
  border-top: 1px solid var(--line);
  padding: 14px 16px;
  background: var(--surface-2);
}
.cron-presets-label {
  font-size: 11px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--text-3);
  display: flex; align-items: center; gap: 6px; margin-bottom: 10px;
}
.cron-presets-label .ic { width: 13px; height: 13px; }
.cron-presets-row {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.cron-preset-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: 99px;
  border: 1px solid var(--line-strong);
  background: var(--surface); color: var(--text);
  font-size: 12px; font-weight: 600; cursor: pointer;
  transition: border-color .13s, background .13s;
}
.cron-preset-btn:hover {
  border-color: var(--accent); background: var(--accent-soft); color: var(--accent);
}
.cron-preset-btn .ic { width: 13px; height: 13px; }

/* Badge on cron tab showing number of failed jobs */
.tab .nav-badge { background: var(--danger); color: #fff; }

/* ============================================================
   SITE DETAIL — v2.0 additions
   ============================================================ */

/* Overview quick-action grid */
.ov-quick { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }

/* Credentials reveal row */
.kv-r { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }

/* ── Terminal / exec panel ─────────────────────────────────── */
.exec-panel { display:flex; flex-direction:column; height:100%; min-height:520px; }
.exec-head { display:flex; align-items:center; gap:10px; padding:12px 16px; border-bottom:1px solid var(--line); flex:none; }
.exec-user { font-family:var(--font-mono); font-size:11.5px; color:var(--text-2); }
.exec-presets { display:flex; gap:6px; flex-wrap:wrap; padding:8px 14px; border-bottom:1px solid var(--line); flex:none; background:var(--surface-2); }
.exec-output {
  flex:1; overflow-y:auto; padding:12px 16px; font-family:var(--font-mono); font-size:12.5px;
  line-height:1.6; background:var(--surface); min-height:320px;
}
.term-cmd { color:var(--accent); font-weight:700; padding:4px 0; display:flex; align-items:center; gap:8px; }
.term-cmd .ic { width:13px; height:13px; flex:none; }
.term-out { white-space:pre-wrap; word-break:break-all; color:var(--text); margin:0 0 4px; padding:0; font-family:var(--font-mono); font-size:12px; }
.term-err { white-space:pre-wrap; word-break:break-all; color:var(--danger); margin:2px 0; font-size:12px; }
.term-sys { color:var(--text-3); font-style:italic; font-size:11.5px; padding:2px 0; }
.exec-input-row { display:flex; align-items:center; gap:8px; padding:10px 14px; border-top:1px solid var(--line); flex:none; background:var(--surface-2); }
.exec-prompt { font-family:var(--font-mono); font-weight:700; color:var(--accent); font-size:15px; }
.exec-input { flex:1; font-family:var(--font-mono); font-size:13px; padding:8px 10px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--surface); color:var(--text); outline:none; }
.exec-input:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.exec-note { color:var(--text-3); }
.exec-note code { font-family:var(--font-mono); font-size:10.5px; background:var(--surface-2); padding:1px 4px; border-radius:3px; }

/* ── DB tab improvements ────────────────────────────────────── */
.db-tabs { display:flex; align-items:center; border-bottom:1px solid var(--line); flex:none; padding:0 12px; }
.db-tab { padding:9px 13px; font-size:12.5px; font-weight:600; color:var(--text-2); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; }
.db-tab:hover { color:var(--text); }
.db-tab.active { color:var(--accent); border-bottom-color:var(--accent); }
.db-tab-r { margin-left:auto; display:flex; gap:6px; align-items:center; padding:4px 0; }
.pk { display:inline-block; font-size:9px; font-weight:700; padding:1px 4px; border-radius:3px; background:var(--warning-soft); color:var(--warning); letter-spacing:.04em; margin-left:3px; text-transform:uppercase; }
.dg-null { color:var(--text-3); font-style:italic; }
.dg-status { display:inline-flex; align-items:center; padding:2px 7px; border-radius:5px; font-size:10.5px; font-weight:700; }
.sqlc { display:flex; flex-direction:column; height:100%; }
.sql-editor { flex:1; width:100%; min-height:100px; max-height:180px; resize:vertical; font-family:var(--font-mono); font-size:12.5px; padding:10px 12px; border:none; border-bottom:1px solid var(--line); background:var(--surface); color:var(--text); outline:none; }
.sql-actionbar { display:flex; align-items:center; gap:8px; padding:8px 12px; border-bottom:1px solid var(--line); background:var(--surface-2); flex:none; }
.sql-actionbar kbd { background:var(--surface-3); border:1px solid var(--line); border-radius:4px; padding:1px 5px; font-size:10px; font-family:var(--font-mono); }
.sql-results { flex:1; overflow:auto; min-height:120px; }
.sql-result-meta { padding:8px 12px; font-size:12.5px; font-weight:600; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:7px; }

/* ── File browser actions ───────────────────────────────────── */
.file-actions { display:none; gap:3px; margin-left:auto; align-items:center; }
.ftree-item:hover .file-actions { display:flex; }
.icon-mini { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:4px; border:none; background:transparent; color:var(--text-3); cursor:pointer; }
.icon-mini:hover { background:var(--surface-3); color:var(--text); }
.icon-mini .ic { width:13px; height:13px; }
.icon-mini.danger-hover:hover { color:var(--danger); background:var(--danger-soft); }

/* ── Settings grid ──────────────────────────────────────────── */
.set-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:14px; }
@media (max-width:860px) { .set-grid { grid-template-columns:1fr; } }
.inp { padding:7px 10px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--surface); color:var(--text); font-size:13px; outline:none; }
.inp:focus { border-color:var(--accent); box-shadow:0 0 0 2px var(--accent-soft); }
.inp.sm { font-size:12.5px; padding:5px 8px; }
.dns-tbl { width:100%; border-collapse:collapse; font-size:12.5px; margin-top:10px; }
.dns-tbl thead th { text-align:left; font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--text-3); padding:5px 10px; border-bottom:1px solid var(--line); }
.dns-tbl td { padding:7px 10px; border-bottom:1px solid var(--line); font-family:var(--font-mono); font-size:11.5px; }
.dns-tbl tr:last-child td { border-bottom:none; }
.dtype { color:var(--accent); font-weight:700; }

/* ── Tab body no-pad variant (for full-bleed views) ────────── */
.sd-tabbody.no-pad { padding:0; overflow:hidden; }
.sd-tabbody.no-pad .editor,
.sd-tabbody.no-pad .db,
.sd-tabbody.no-pad .exec-panel { height:calc(100vh - 320px); min-height:480px; }

/* ── Status columns layout ──────────────────────────────────── */
.status-cols { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:14px; }
@media (max-width:800px) { .status-cols { grid-template-columns:1fr; } }
.status-col { display:flex; flex-direction:column; gap:0; }

/* ── Section heading inside card ────────────────────────────── */
.sec-h { display:flex; align-items:center; gap:8px; margin-bottom:12px; font-size:13.5px; }
.sec-h .ic { width:16px; height:16px; color:var(--text-3); flex:none; }
.sec-h b { font-weight:700; }

/* ============================================================
   FILE EXPLORER v2 — Monaco, context menu, drop zone, search
   ============================================================ */

/* Monaco editor container */
#monacoMount { width:100%; height:100%; min-height:480px; }
.ed-body { flex:1; overflow:hidden; display:flex; flex-direction:column; position:relative; }
.ed-empty { display:flex; flex-direction:column; align-items:center; justify-content:center;
  height:100%; gap:12px; color:var(--text-3); }
.ed-empty .ic { width:40px; height:40px; }
.ed-empty-title { font-size:15px; font-weight:600; color:var(--text-2); }
.ed-empty-sub { font-size:12.5px; }

/* Image preview */
.img-preview-wrap { flex:1; display:flex; align-items:center; justify-content:center;
  padding:24px; background:var(--surface-2); overflow:auto; }

/* File tree icons */
.ftree-arrow { width:11px; height:11px; flex:none; transition:transform .15s; color:var(--text-3); }
.ftree-file-ic { display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; font-size:9px; }
.ftree-name { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12.5px; }
.ftree-sz { font-size:10px; color:var(--text-3); font-family:var(--font-mono); flex:none; margin-right:4px; }
.ftree-acts { display:none; gap:2px; align-items:center; flex:none; }
.ftree-item:hover .ftree-acts { display:flex; }
.ftree-item.selected { background:var(--accent-soft); border-radius:4px; }
.ftree-item { gap:5px; }
.ftree-item.dir-item { cursor:pointer; }
.ftree-item.file-item { cursor:default; }

/* Breadcrumb */
.fb-breadcrumb { display:flex; align-items:center; gap:3px; padding:5px 12px;
  border-bottom:1px solid var(--line); font-size:11.5px; font-family:var(--font-mono);
  color:var(--text-3); flex:none; background:var(--surface-2); }
.fb-bc-seg { color:var(--text-2); }
.fb-bc-div { color:var(--text-3); }
.fb-bc-cur { color:var(--text); font-weight:600; }
.fb-lang-badge { font-size:10px; font-weight:700; color:var(--text-3); background:var(--surface-3);
  padding:2px 7px; border-radius:4px; text-transform:uppercase; letter-spacing:.06em; }

/* Search bar */
.fb-search-bar { display:flex; align-items:center; gap:4px; padding:6px 8px;
  border-bottom:1px solid var(--line); background:var(--surface-2); flex:none; }
.fb-search-inp { flex:1; font-size:12px; padding:5px 8px;
  border:1px solid var(--line); border-radius:var(--r-sm);
  background:var(--surface); color:var(--text); outline:none; }
.fb-search-inp:focus { border-color:var(--accent); }

/* Upload drop zone */
.fb-drop-zone { display:flex; align-items:center; gap:7px; padding:8px 10px;
  border:1.5px dashed var(--line); border-radius:6px; margin:6px 8px;
  font-size:11.5px; color:var(--text-3); cursor:pointer; transition:all .15s; flex:none; }
.fb-drop-zone:hover, .fb-drop-zone.drop-hover { border-color:var(--accent); color:var(--accent);
  background:var(--accent-soft); }
.fb-drop-zone .ic { width:14px; height:14px; flex:none; }

/* Selection bar */
.fb-sel-bar { display:flex; align-items:center; gap:7px; padding:5px 8px;
  background:var(--accent-soft); border-bottom:1px solid var(--accent);
  font-size:12px; color:var(--accent); font-weight:600; flex:none; }
.fb-sel-bar span { flex:1; }

/* Context menu */
.ctx-menu { background:var(--surface); border:1px solid var(--line); border-radius:8px;
  box-shadow:var(--shadow-lg); padding:4px; min-width:190px; font-size:12.5px; }
.ctx-item { display:flex; align-items:center; gap:8px; padding:6px 10px;
  border-radius:5px; cursor:pointer; color:var(--text); }
.ctx-item:hover { background:var(--surface-2); }
.ctx-item.danger { color:var(--danger); }
.ctx-item .ic { width:14px; height:14px; flex:none; color:var(--text-3); }
.ctx-item.danger .ic { color:var(--danger); }
.ctx-sep { height:1px; background:var(--line); margin:3px 0; }

/* ============================================================
   SITE DETAIL v2.1 — .env tab, DB users, Workers, PHP switch,
                       OPcache, Deploy log stream, SSL expanded
   ============================================================ */

/* ── .env tab ───────────────────────────────────────────────── */
.env-tab-wrap { display:grid; grid-template-columns:320px 1fr; height:100%; min-height:520px; overflow:hidden; }
@media (max-width:860px) { .env-tab-wrap { grid-template-columns:1fr; } }
.env-keys-panel { background:var(--surface-2); border-right:1px solid var(--line); overflow-y:auto; display:flex; flex-direction:column; }
.env-keys-header { padding:10px 14px; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--text-3); border-bottom:1px solid var(--line); flex:none; display:flex; align-items:center; gap:8px; }
.env-key-row { display:flex; align-items:center; gap:0; padding:6px 12px; border-bottom:1px solid var(--line); font-size:12px; }
.env-key-row:hover { background:var(--surface-3); }
.env-key-name { font-family:var(--font-mono); font-weight:700; color:var(--text); flex:none; width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.env-key-val { font-family:var(--font-mono); font-size:11px; color:var(--text-3); flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-left:8px; }
.env-key-reveal { font-size:10px; padding:2px 6px; border-radius:4px; border:1px solid var(--line); background:var(--surface); cursor:pointer; color:var(--text-2); flex:none; margin-left:6px; }
.env-key-reveal:hover { border-color:var(--accent); color:var(--accent); }
.env-editor-panel { display:flex; flex-direction:column; min-height:0; }
.env-editor-bar { display:flex; align-items:center; gap:8px; padding:8px 14px; border-bottom:1px solid var(--line); background:var(--surface-2); flex:none; }
.env-editor-status { font-size:11.5px; color:var(--text-3); }
.env-textarea { flex:1; width:100%; font-family:var(--font-mono); font-size:12.5px; line-height:1.7; padding:14px 16px; border:none; background:var(--surface); color:var(--text); outline:none; resize:none; }
.env-validation { padding:6px 14px; font-size:12px; background:var(--danger-soft); color:var(--danger); border-top:1px solid var(--line); display:none; }
.env-validation.visible { display:block; }

/* ── DB Users sub-tab ────────────────────────────────────────── */
.dbu-table { width:100%; border-collapse:collapse; font-size:12.5px; }
.dbu-table th { text-align:left; padding:7px 12px; font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--text-3); border-bottom:1px solid var(--line); }
.dbu-table td { padding:8px 12px; border-bottom:1px solid var(--line); font-family:var(--font-mono); font-size:12px; vertical-align:middle; }
.dbu-table tr:last-child td { border-bottom:none; }
.dbu-table tr:hover td { background:var(--surface-2); }
.dbu-priv { display:inline-flex; align-items:center; }
.dbu-priv select { font-size:11px; padding:2px 6px; border:1px solid var(--line); border-radius:4px; background:var(--surface); color:var(--text); cursor:pointer; }
.dbu-add-form { background:var(--surface-2); border-top:1px solid var(--line); padding:14px 16px; }
.dbu-add-row { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; }
.dbu-field { display:flex; flex-direction:column; gap:4px; }
.dbu-field label { font-size:11px; font-weight:700; color:var(--text-3); text-transform:uppercase; letter-spacing:.06em; }
.dbu-field input, .dbu-field select { font-size:12.5px; padding:6px 9px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--surface); color:var(--text); outline:none; }
.dbu-field input:focus, .dbu-field select:focus { border-color:var(--accent); box-shadow:0 0 0 2px var(--accent-soft); }
.badge-ro { display:inline-block; padding:1px 7px; border-radius:4px; font-size:10px; font-weight:700; background:var(--surface-3); color:var(--text-3); }
.badge-rw { display:inline-block; padding:1px 7px; border-radius:4px; font-size:10px; font-weight:700; background:var(--success-soft); color:var(--success); }

/* ── Workers tab ────────────────────────────────────────────── */
.worker-tab { padding:16px; display:flex; flex-direction:column; gap:16px; }
.worker-card { background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-md); padding:16px; }
.worker-none { text-align:center; padding:32px; color:var(--text-3); }
.worker-none .ic { width:36px; height:36px; margin-bottom:8px; }
.wk-field { display:grid; grid-template-columns:160px 1fr; gap:8px; align-items:center; margin-bottom:10px; font-size:13px; }
.wk-field label { font-weight:600; color:var(--text-2); }
.wk-field select, .wk-field input { padding:6px 9px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--surface); color:var(--text); font-size:12.5px; outline:none; }
.wk-field select:focus, .wk-field input:focus { border-color:var(--accent); }
.wk-status-dot { width:9px; height:9px; border-radius:50%; flex:none; }
.wk-status-dot.active { background:var(--success); }
.wk-status-dot.inactive { background:var(--text-3); }

/* ── PHP version switcher ───────────────────────────────────── */
.php-switch-wrap { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.php-ver-pill { display:inline-flex; align-items:center; gap:6px; background:var(--surface-2); border:1px solid var(--line); border-radius:99px; padding:4px 10px 4px 10px; font-size:12px; font-weight:700; font-family:var(--font-mono); color:var(--text); cursor:pointer; transition:border-color .13s, background .13s; }
.php-ver-pill:hover { border-color:var(--accent); background:var(--accent-soft); color:var(--accent); }
.php-ver-pill.active { border-color:var(--accent); background:var(--accent-soft); color:var(--accent); }
.php-ver-pill.switching { opacity:.5; pointer-events:none; }
.php-switch-note { font-size:11.5px; color:var(--text-3); }

/* ── OPcache stats card ─────────────────────────────────────── */
.opc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:14px; }
@media (max-width:640px) { .opc-grid { grid-template-columns:1fr 1fr; } }
.opc-tile { background:var(--surface-2); border-radius:var(--r-sm); padding:10px 13px; }
.opc-lbl { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--text-3); margin-bottom:4px; }
.opc-val { font-size:22px; font-weight:700; color:var(--text); font-family:var(--font-mono); }
.opc-val small { font-size:12px; font-weight:400; color:var(--text-3); margin-left:2px; }
.opc-sub { font-size:11px; color:var(--text-3); margin-top:2px; }
.opc-bar-wrap { background:var(--surface-2); border-radius:4px; height:6px; margin:8px 0 4px; overflow:hidden; }
.opc-bar { height:100%; border-radius:4px; background:var(--accent); transition:width .4s var(--ease); }
.opc-bar.danger { background:var(--danger); }
.opc-bar.warn { background:var(--warning); }

/* ── Deploy log live streaming ──────────────────────────────── */
.deploy-log-panel { margin-top:10px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-sm); font-family:var(--font-mono); font-size:12px; line-height:1.6; overflow-y:auto; max-height:280px; }
.deploy-log-line { padding:2px 12px; white-space:pre-wrap; word-break:break-all; color:var(--text-2); }
.deploy-log-line.err { color:var(--danger); }
.deploy-log-line.ok  { color:var(--success); }
.deploy-log-line.sys { color:var(--text-3); font-style:italic; }
.deploy-log-live { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; color:var(--success); }
.deploy-log-live .pulse { width:6px; height:6px; border-radius:50%; background:var(--success); }
.deploy-log-live .pulse::after { content:''; position:absolute; inset:-3px; border-radius:50%; border:1.5px solid var(--success); opacity:.5; animation:pulse 1.8s var(--ease) infinite; }

/* ── DB import history ──────────────────────────────────────── */
.import-job-row { display:flex; align-items:center; gap:12px; padding:9px 14px; border-bottom:1px solid var(--line); font-size:12.5px; }
.import-job-row:last-child { border-bottom:none; }
.import-job-row .ij-file { font-family:var(--font-mono); color:var(--text); flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.import-job-row .ij-when { color:var(--text-3); font-size:11.5px; flex:none; }
.import-status { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:4px; font-size:10.5px; font-weight:700; }
.import-status.done { background:var(--success-soft); color:var(--success); }
.import-status.importing { background:var(--accent-soft); color:var(--accent); }
.import-status.failed { background:var(--danger-soft); color:var(--danger); }
.import-status.uploading { background:var(--surface-3); color:var(--text-2); }

/* ── SSL expanded card ──────────────────────────────────────── */
.ssl-dns-grid { display:grid; grid-template-columns:72px 1fr 1fr 60px; gap:6px; font-size:12px; margin-top:10px; }
.ssl-dns-grid .head { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--text-3); padding:4px 0; }
.ssl-dns-grid .val { font-family:var(--font-mono); padding:3px 0; word-break:break-all; }
.ssl-record-ok { color:var(--success); font-weight:700; font-size:11px; }
.ssl-record-bad { color:var(--danger); font-weight:700; font-size:11px; }

/* ── Log filter chips ───────────────────────────────────────── */
.log-filter-row { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.lfchip { padding:3px 10px; border-radius:99px; border:1px solid var(--line); background:var(--surface); font-size:11.5px; font-weight:600; cursor:pointer; color:var(--text-2); }
.lfchip:hover { border-color:var(--accent); color:var(--accent); }
.lfchip.active { border-color:var(--accent); background:var(--accent-soft); color:var(--accent); }

/* ── Subdomains panel ───────────────────────────────────────── */
.subdomain-row { display:flex; align-items:center; gap:12px; padding:9px 14px; border-bottom:1px solid var(--line); font-size:12.5px; }
.subdomain-row:last-child { border-bottom:none; }
.subdomain-row .sd-dom { font-family:var(--font-mono); font-weight:600; color:var(--text); flex:1; }
.subdomain-row .sd-meta { color:var(--text-3); font-size:11.5px; }

/* ── Vhost editor (Settings tab) ────────────────────────────── */
#vhostTextarea { transition: border-color .13s; }
#vhostTextarea:focus { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft); }

/* ── Move site section ──────────────────────────────────────── */
#moveNote { font-family: var(--font-mono); }

/* ── Subdomains tab ─────────────────────────────────────────── */
.subdomain-row { display:flex; align-items:center; gap:12px; padding:11px 16px; border-bottom:1px solid var(--line); }
.subdomain-row:last-child { border-bottom:none; }
.subdomain-row:hover { background:var(--surface-2); }
.sd-dom { font-family:var(--font-mono); font-weight:700; font-size:13px; color:var(--text); }
.sd-meta { font-size:11.5px; color:var(--text-3); margin-top:2px; }
