
:root {
    --brand: #002A54;
    --brand2: #8AA8FF;
    --accent: #8AA8FF;
    --cta: #FF9800;
    --bg: #FBFFFF;
    --card: #FBFFFF;
    --text: #00000F;
    --muted: #42546b;
    --line: #cfdced;
    --pass: #0b7a3b;
    --warn: #FF9800;
    --fail: #c12619;
    --info: #002A54;
}

* { box-sizing: border-box; }
body { margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; color:var(--text); background:var(--bg); line-height:1.45; }
a { color: var(--brand); text-decoration: none; }
.pth-header { background: linear-gradient(135deg, var(--brand), #0d6fc5); color:#fff; padding:28px 20px; }
.pth-wrap { max-width:1180px; margin:0 auto; padding:0 18px; }
.pth-header h1 { margin:0 0 6px; font-size:30px; }
.pth-header p { margin:0; opacity:.94; }
.pth-main { padding:24px 0 50px; }
.pth-card { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:18px; margin-bottom:18px; box-shadow:0 8px 24px rgba(20,37,63,.06); }
.pth-search { display:grid; grid-template-columns:1fr 180px 150px; gap:10px; align-items:end; }
label { display:block; font-weight:700; font-size:14px; margin-bottom:6px; }
input, select, textarea { width:100%; border:1px solid var(--line); border-radius:10px; padding:11px 12px; font:inherit; background:#fff; }
button, .button { display:inline-flex; justify-content:center; align-items:center; border:0; border-radius:10px; padding:11px 15px; background:var(--brand); color:#fff; font-weight:700; cursor:pointer; }
.button-secondary { background:#e8eef7; color:#203247; }
.button-danger { background:#b42318; }
.grid { display:grid; gap:16px; }
.grid-4 { grid-template-columns:repeat(4,1fr); }
.grid-2 { grid-template-columns:repeat(2,1fr); }
.score { font-size:52px; font-weight:800; letter-spacing:-2px; }
.muted { color:var(--muted); }
.badge { display:inline-block; border-radius:999px; padding:4px 9px; font-size:12px; font-weight:800; }
.badge-pass { color:#fff; background:var(--pass); }
.badge-warn { color:#fff; background:var(--warn); }
.badge-fail { color:#fff; background:var(--fail); }
.badge-info, .badge-na { color:#fff; background:var(--info); }
.check { border-top:1px solid var(--line); padding:13px 0; }
.check:first-child { border-top:0; }
.check-title { display:flex; gap:10px; align-items:center; justify-content:space-between; }
.check-title h3 { margin:0; font-size:17px; }
.details { margin:8px 0 0; padding-left:20px; color:var(--muted); }
.fix { margin-top:8px; background:#fff7e6; border:1px solid #f6d38b; color:#5f3b00; padding:10px; border-radius:10px; }
.tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px; }
.tabs a { padding:9px 12px; border-radius:10px; background:#e8eef7; color:#203247; font-weight:700; }
.tabs a.active { background:var(--brand); color:#fff; }
table { width:100%; border-collapse:collapse; }
th, td { text-align:left; border-bottom:1px solid var(--line); padding:9px; vertical-align:top; }
th { font-size:13px; color:var(--muted); }
.notice { padding:12px; border-radius:12px; background:#e8f4ff; border:1px solid #b9ddff; margin-bottom:16px; }
.notice-error { background:#fff0ed; border-color:#ffc1b8; }
.ad-box { border:1px dashed #a9b8cc; color:var(--muted); padding:14px; border-radius:12px; text-align:center; margin:14px 0; background:#fbfcff; }
.footer { color:var(--muted); font-size:13px; padding:20px 0; }
@media (max-width: 800px) { .pth-search, .grid-4, .grid-2 { grid-template-columns:1fr; } .score { font-size:42px; } }
.filters { display:grid; grid-template-columns: minmax(180px,1fr) minmax(140px,180px) minmax(120px,160px) minmax(120px,160px) auto auto; gap:10px; align-items:end; margin-bottom:14px; }
.inline-actions { display:flex; gap:10px; align-items:end; margin-top:14px; flex-wrap:wrap; }
.inline-actions input { max-width:180px; }
code { white-space:pre-wrap; word-break:break-word; }
@media (max-width: 900px) { .filters { grid-template-columns:1fr; } }

/* Installer and admin setup polish */
.installer-page { background: linear-gradient(180deg, #eaf4ff 0%, var(--bg) 260px); }
.install-hero { background: linear-gradient(135deg, #0f6fc5, var(--brand)); color:#fff; padding:34px 0; box-shadow:0 10px 30px rgba(21, 88, 150, .22); }
.install-hero-inner { display:flex; justify-content:space-between; gap:24px; align-items:flex-start; }
.install-hero h1 { margin:6px 0 8px; font-size:34px; letter-spacing:-.5px; }
.install-hero p { max-width:760px; margin:0; opacity:.96; font-size:16px; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; opacity:.92; }
.install-version { background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.28); border-radius:999px; padding:8px 12px; font-weight:800; white-space:nowrap; }
.install-layout { max-width:1040px; }
.install-card { padding:22px; }
.section-heading { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; margin-bottom:18px; border-bottom:1px solid var(--line); padding-bottom:14px; }
.section-heading h2 { margin:0 0 5px; font-size:21px; }
.section-heading p { margin:0; color:var(--muted); max-width:760px; }
.form-grid { display:grid; gap:16px; }
.form-grid.two { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.field small { display:block; margin-top:6px; color:var(--muted); font-size:12px; }
.check-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; }
.check-pill { display:flex; justify-content:space-between; align-items:center; gap:10px; border:1px solid var(--line); border-radius:12px; padding:12px 14px; background:#fbfdff; }
.check-pill strong { border-radius:999px; padding:3px 9px; color:#fff; font-size:12px; }
.check-pill.ok strong { background:var(--pass); }
.check-pill.no strong { background:var(--warn); }
.toggle-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; margin-top:16px; }
.toggle { display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:12px; background:#fbfdff; padding:12px 14px; font-weight:700; margin:0; }
.toggle input { width:auto; margin:0; }
.toggle span { display:block; }
.install-actions { display:flex; justify-content:space-between; align-items:center; gap:18px; background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px 20px; box-shadow:0 8px 24px rgba(20,37,63,.06); margin-bottom:22px; }
.install-actions p { margin:4px 0 0; }
.install-actions button { min-width:230px; min-height:46px; }
.install-locked { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:22px; }
.install-locked h2 { margin:0 0 8px; }
.install-locked p { margin:0 0 6px; }
@media (max-width: 760px) {
    .install-hero-inner, .install-actions, .install-locked { flex-direction:column; align-items:stretch; }
    .install-hero h1 { font-size:28px; }
    .form-grid.two, .check-grid, .toggle-grid { grid-template-columns:1fr; }
    .install-actions button { width:100%; }
}

/* v0.2 SaaS report UX */
body { font-family: var(--font-main, -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif); }
.pth-card { border-radius: var(--radius-card, 16px); }
.pth-header { background: linear-gradient(135deg, var(--brand), var(--brand2, #0d6fc5)); }
.public-nav { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.top-links { display:flex; gap:10px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.top-links a, .plan-chip { color:#fff; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.28); padding:8px 10px; border-radius:999px; font-weight:800; font-size:13px; }
.top-links .admin-nav { opacity:.78; }
.narrow { max-width:720px; }
.pth-search { grid-template-columns: minmax(260px, 1fr) 150px; }
.search-card .upgrade-strip, .upgrade-strip { margin-top:12px; padding:12px; border:1px solid #cfe4fa; background:#f5fbff; border-radius:12px; }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-span-2 { grid-column: 1 / -1; }
.badge-excellent { color:#fff; background:#0b7a3b; }
.badge-good, .badge-pass { color:#fff; background:var(--pass); }
.badge-sufficient { color:#183b56; background:#d8ecff; }
.badge-needs_improvement { color:#fff; background:#936400; }
.badge-warning, .badge-warn { color:#fff; background:var(--warn); }
.badge-fail { color:#fff; background:var(--fail); }
.badge-info, .badge-na { color:#fff; background:var(--info); }
.badge-locked { color:#fff; background:#6d5bd0; }
.notice-good { background:#eefaf2; border-color:#a8ddb9; }
.report-summary { scroll-margin-top: 16px; }
.report-hero { display:flex; justify-content:space-between; gap:18px; align-items:center; }
.report-hero h2 { margin:0; font-size:28px; }
.score-box { text-align:center; min-width:130px; border:1px solid var(--line); border-radius:16px; padding:12px; background:#fbfdff; }
.status-counts { display:flex; gap:10px; flex-wrap:wrap; margin:16px 0; }
.status-counts span { display:inline-flex; align-items:center; gap:5px; background:#f7f9fc; border:1px solid var(--line); border-radius:999px; padding:5px 8px; }
.priority-list, .strength-list, .pro-lock-card { border:1px solid var(--line); border-radius:14px; padding:14px; margin-top:14px; background:#fbfdff; }
.priority-list h3, .strength-list h3, .pro-lock-card h3 { margin:0 0 10px; }
.priority-list ol, .strength-list ul, .pro-lock-card ul { margin:0; padding-left:22px; }
.priority-list li { margin-bottom:9px; }
.priority-list li span { display:block; color:var(--muted); margin-top:3px; }
.issue-jump { display:inline-flex; align-items:center; gap:7px; font-weight:800; }
.jumpbar { position:sticky; top:0; z-index:10; display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:16px; padding:10px; background:rgba(255,255,255,.94); border:1px solid var(--line); border-radius:14px; backdrop-filter: blur(8px); }
.jumpbar span { color:var(--muted); font-weight:800; }
.jumpbar a { background:#e8eef7; color:#203247; border-radius:999px; padding:6px 10px; font-weight:800; font-size:13px; }
.section-title { display:flex; justify-content:space-between; gap:12px; align-items:center; border-bottom:1px solid var(--line); padding-bottom:10px; margin-bottom:10px; }
.section-title h2 { margin:0; }
.report-section { scroll-margin-top: 70px; }
.check-card { border:1px solid var(--line); border-radius:14px; margin:10px 0; overflow:hidden; scroll-margin-top:80px; background:#fff; }
.check-card summary { list-style:none; cursor:pointer; display:grid; grid-template-columns:130px minmax(160px, 260px) 1fr; gap:10px; align-items:center; padding:12px 14px; }
.check-card summary::-webkit-details-marker { display:none; }
.check-card summary strong { font-size:15px; }
.check-card summary em { font-style:normal; color:var(--muted); }
.check-body { border-top:1px solid var(--line); padding:14px; background:#fbfdff; }
.check-card:target { outline:3px solid rgba(34,150,243,.35); box-shadow:0 0 0 8px rgba(34,150,243,.08); }
.check-fail { border-left:5px solid var(--fail); }
.check-warning { border-left:5px solid var(--warn); }
.check-needs_improvement { border-left:5px solid #936400; }
.check-excellent { border-left:5px solid #0b7a3b; }
.check-good { border-left:5px solid var(--pass); }
.check-sufficient { border-left:5px solid #8abde9; }
.detail-table th { width:220px; }
.detail-table td, .details-list li { overflow-wrap:anywhere; word-break:break-word; }
.details-list { margin:0; padding-left:20px; }
.backlink { display:inline-block; margin-top:10px; font-size:13px; font-weight:800; }
.pro-lock-card { background:#f7f5ff; border-color:#d6ccff; }
.mini-form { display:inline-flex; margin:2px; }
.mini-form button { padding:7px 9px; font-size:12px; }
textarea { resize:vertical; }
select[name="timezone"] { max-height:260px; }
@media (max-width: 900px) {
    .public-nav, .report-hero { flex-direction:column; align-items:stretch; }
    .top-links { justify-content:flex-start; }
    .grid-3, .grid-4, .grid-2, .pth-search { grid-template-columns:1fr; }
    .check-card summary { grid-template-columns:1fr; }
    .jumpbar { position:static; overflow-x:auto; flex-wrap:nowrap; }
}
.focus-pulse { animation: focusPulse 1.6s ease-out; }
@keyframes focusPulse { 0% { box-shadow:0 0 0 8px rgba(34,150,243,.22); } 100% { box-shadow:0 0 0 0 rgba(34,150,243,0); } }
/* v0.2.3 route, language and MariaDB migration polish */
.language-switch { display:flex; gap:6px; align-items:center; flex-wrap:wrap; color:#fff; font-size:12px; margin-left:4px; }
.language-switch span { opacity:.9; font-weight:700; margin-right:2px; }
.language-switch a { padding:5px 7px; border-radius:999px; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.20); color:#fff; font-weight:700; }
.language-switch a.active { background:#fff; color:var(--brand); }
.top-links { max-width:560px; }
@media (max-width: 800px) { .public-nav { flex-direction:column; } .top-links { justify-content:flex-start; } .language-switch { width:100%; } }
.detail-kv{display:grid;grid-template-columns:minmax(120px,220px) 1fr;gap:6px 12px;margin:4px 0}.detail-kv dt{font-weight:700;color:#52637a}.detail-kv dd{margin:0;min-width:0}.mini-list{margin:4px 0 4px 18px;padding:0}.dns-value{overflow-wrap:anywhere;word-break:break-word}.detail-table td{min-width:0;overflow-wrap:anywhere}.details-list li{overflow-wrap:anywhere}

/* v0.2.6 SaaS navigation and admin readability fixes */
.top-links a, .top-links a:visited, .plan-chip {
    background:#ffffff;
    color:#12334f;
    border:1px solid rgba(255,255,255,.85);
    box-shadow:0 2px 8px rgba(12,45,77,.12);
}
.top-links a:hover { background:#f0f7ff; color:#0b5fa8; }
.plan-chip { background:#173d63; color:#fff; }
.plan-admin { background:#5a3bb1; color:#fff; }
.language-switch { background:rgba(0,0,0,.08); border-radius:16px; padding:6px; }
.language-switch span { color:#fff; }
.language-switch a, .language-switch a:visited {
    background:#ffffff;
    color:#12334f;
    border-color:rgba(255,255,255,.75);
}
.language-switch a.active { background:#173d63; color:#fff; }
.admin-topbar { display:flex; justify-content:space-between; align-items:center; gap:18px; }
.admin-topbar h1 { margin:0 0 4px; font-size:26px; }
.admin-topbar p { margin:0; }
.admin-top-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.tabs { background:#edf3fa; border:1px solid var(--line); border-radius:16px; padding:8px; }
.tabs a, .tabs a:visited { background:#fff; color:#203247; border:1px solid #d8e3ef; }
.tabs a.active { background:var(--brand); color:#fff; border-color:var(--brand); }
.admin-filters { grid-template-columns: repeat(4, minmax(150px, 1fr)) auto auto; align-items:end; }
.admin-card-list { display:grid; gap:12px; }
.admin-record {
    display:flex;
    justify-content:space-between;
    gap:16px;
    border:1px solid var(--line);
    background:#fbfdff;
    border-radius:14px;
    padding:14px;
}
.admin-record h3 { margin:0 0 6px; font-size:17px; color:var(--text); overflow-wrap:anywhere; }
.admin-record p { margin:0 0 8px; }
.admin-record-main { min-width:0; flex:1; }
.admin-record-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.admin-meta { display:flex; gap:7px; flex-wrap:wrap; align-items:center; }
.admin-chip {
    display:inline-flex;
    align-items:center;
    max-width:100%;
    padding:5px 9px;
    border-radius:999px;
    background:#e8eef7;
    color:#203247;
    font-size:12px;
    font-weight:800;
    overflow-wrap:anywhere;
}
.admin-chip.ok { background:#e9f8ef; color:#0d5b2b; }
.admin-chip.muted { background:#f1f3f6; color:#596779; }
.admin-chip.pro { background:#f0ebff; color:#4f2aa8; }
.admin-chip.free { background:#eef7ff; color:#0d5f98; }
.admin-chip.info { background:#eaf2ff; color:#275286; }
.admin-chip.warning { background:#fff4dd; color:#6b4300; }
.admin-chip.error { background:#fff0ed; color:#8d1d12; }
.log-record { border-left:5px solid #9eb2c8; }
.log-warning { border-left-color:var(--warn); }
.log-error { border-left-color:var(--fail); }
.log-info { border-left-color:var(--info); }
.admin-details { margin-top:10px; }
.admin-details summary { cursor:pointer; font-weight:800; color:#244766; }
.context-box {
    max-height:260px;
    overflow:auto;
    white-space:pre-wrap;
    word-break:break-word;
    background:#102033;
    color:#f5f7fb;
    border-radius:12px;
    padding:12px;
    margin:8px 0 0;
    font-size:12px;
}
.mini-form button { min-height:34px; }
button, .button, .button:visited { color:#fff; }
.button-secondary, .button-secondary:visited { color:#203247; }
.button-danger, .button-danger:visited { color:#fff; }
input, select, textarea { color:#152436; }
.section-heading p { color:var(--muted); }
@media (max-width: 900px) {
    .admin-topbar, .admin-record { flex-direction:column; align-items:stretch; }
    .admin-top-actions, .admin-record-actions { justify-content:flex-start; }
    .admin-filters { grid-template-columns:1fr; }
}

/* v0.2.7 active account and usage status panel */
.access-panel { border-left:5px solid var(--brand); }
.access-head { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; margin-bottom:14px; }
.access-head h2 { margin:4px 0 6px; font-size:24px; }
.access-head p { margin:0 0 4px; }
.access-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.usage-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; }
.usage-grid > div { background:#f7fafe; border:1px solid var(--line); border-radius:14px; padding:14px; }
.usage-grid strong { display:block; font-size:24px; color:#143a5a; line-height:1.05; }
.usage-grid span { display:block; font-weight:800; margin-top:4px; }
.usage-grid small { display:block; color:var(--muted); margin-top:3px; }
.access-pro { border-left-color:#0b7a3b; }
.access-free { border-left-color:#3765a3; }
.access-guest { border-left-color:#936400; }
@media (max-width: 760px) {
    .access-head { flex-direction:column; }
    .access-actions { justify-content:flex-start; }
    .usage-grid { grid-template-columns:1fr; }
}


/* v0.2.8 UI, palette, grouped settings and readability pass */
body { background: var(--bg); color: var(--text); }
.pth-wrap { max-width: var(--wrap-width, 1180px); }
.pth-card { padding: var(--card-space, 18px); background: var(--card); }
.pth-header { background: linear-gradient(135deg, #002A54, #123f77); color:#FBFFFF; }
a { color:#004fb3; font-weight:650; }
button, .button { background:#002A54; color:#FBFFFF; border:1px solid #002A54; }
button:hover, .button:hover { filter:brightness(1.05); }
.button-secondary { background:#eaf0ff; color:#002A54; border:1px solid #c7d5ff; }
.button-danger { background:#c12619; border-color:#c12619; color:#fff; }
.top-links a, .top-links a:visited { color:#002A54; background:#FBFFFF; border:1px solid rgba(251,255,255,.9); }
.top-links .owner-link { background:#eaf0ff; color:#002A54; border-color:#8AA8FF; }
.plan-chip { background:#002A54; color:#FBFFFF; }
.language-switch { background:rgba(0,0,15,.18); }
.language-switch a, .language-switch a:visited { color:#002A54; background:#FBFFFF; }
.language-switch a.active { color:#FBFFFF; background:#002A54; }
input, select, textarea { border-color:#bfd0e6; background:#fff; color:#00000F; }
input:focus, select:focus, textarea:focus { outline:3px solid rgba(138,168,255,.35); border-color:#8AA8FF; }
.badge { color:#fff; background:#002A54; border:0; letter-spacing:.01em; }
.badge-excellent { background:#055f2e; color:#fff; }
.badge-good, .badge-pass { background:#0b7a3b; color:#fff; }
.badge-sufficient { background:#002A54; color:#FBFFFF; }
.badge-needs_improvement { background:#FF9800; color:#00000F; }
.badge-warning, .badge-warn { background:#FF9800; color:#00000F; }
.badge-fail { background:#c12619; color:#fff; }
.badge-info, .badge-na { background:#4c6280; color:#fff; }
.badge-locked { background:#002A54; color:#FBFFFF; }
.status-counts { gap:12px; }
.status-counts span { background:#FBFFFF; border:1px solid #bfd0e6; color:#00000F; padding:7px 10px; box-shadow:0 3px 10px rgba(0,42,84,.06); }
.status-counts .badge { min-width:92px; text-align:center; }
.priority-list, .strength-list, .pro-lock-card { background:#FBFFFF; border-color:#bfd0e6; }
.priority-list li, .strength-list li { margin-bottom:10px; }
.issue-jump { color:#002A54; text-decoration:none; }
.issue-jump:hover { text-decoration:underline; }
.score-box { border-color:#bfd0e6; background:#FBFFFF; }
.score { color:#00000F; }
.jumpbar { border-color:#bfd0e6; background:rgba(251,255,255,.96); }
.jumpbar a { background:#eaf0ff; color:#002A54; border:1px solid #d4defa; }
.check-card { border-color:#bfd0e6; }
.check-card summary { grid-template-columns:150px minmax(170px, 280px) 1fr; }
.check-body { background:#FBFFFF; }
.fix { background:#fff4dd; border-color:#FF9800; color:#00000F; }
.tabs { background:#eaf0ff; border-color:#bfd0e6; }
.tabs a, .tabs a:visited { color:#002A54; background:#FBFFFF; border-color:#bfd0e6; }
.tabs a.active { background:#002A54; color:#FBFFFF; border-color:#002A54; }
.admin-topbar { border-left:5px solid #002A54; }
.admin-record { background:#FBFFFF; border-color:#bfd0e6; }
.admin-chip { background:#eaf0ff; color:#002A54; }
.admin-chip.ok { background:#e6f7ed; color:#055f2e; }
.admin-chip.warning { background:#fff4dd; color:#00000F; }
.admin-chip.error { background:#fff0ed; color:#8d1d12; }
.access-panel { border-left:6px solid #002A54; }
.access-panel h2 { color:#00000F; }
.usage-grid > div { background:#FBFFFF; border:1px solid #bfd0e6; }
.usage-grid strong { color:#002A54; }
.search-card { border-top:4px solid #8AA8FF; }
.ad-box { background:#FBFFFF; border:1px dashed #8AA8FF; color:#42546b; }
.ad-slot strong { display:block; font-size:16px; margin-bottom:4px; color:#00000F; }
.ad-slot p { margin:6px 0; }
.ad-image img { max-width:100%; height:auto; border-radius:10px; }
.settings-form { display:block; }
.settings-section { margin-bottom:18px; }
.settings-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; align-items:start; }
.settings-grid.three { grid-template-columns:repeat(3, minmax(0,1fr)); }
.settings-grid .grid-span-2 { grid-column:1 / -1; }
.settings-note { border:1px solid #bfd0e6; background:#f6f9ff; border-radius:12px; padding:12px; color:#42546b; }
.colour-control { display:grid; grid-template-columns:70px 1fr; gap:8px; align-items:center; }
.colour-control input[type="color"] { height:44px; padding:3px; }
.colour-control input[type="text"] { font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; text-transform:uppercase; }
.palette-row { display:grid; grid-template-columns:repeat(5, 1fr); gap:0; overflow:hidden; border-radius:16px; border:1px solid #bfd0e6; margin-bottom:18px; }
.palette-row span { display:flex; align-items:end; min-height:76px; color:#FBFFFF; padding:10px; font-weight:800; font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.ad-settings { border:1px solid #bfd0e6; background:#FBFFFF; border-radius:16px; padding:0; margin:0 0 14px; overflow:hidden; }
.ad-settings summary { cursor:pointer; padding:14px 16px; font-weight:900; color:#002A54; background:#eaf0ff; }
.ad-settings .settings-grid { padding:16px; }
.settings-save { position:sticky; bottom:12px; z-index:20; display:flex; justify-content:flex-end; background:rgba(251,255,255,.94); border:1px solid #bfd0e6; border-radius:16px; padding:12px; box-shadow:0 8px 24px rgba(0,42,84,.12); }
.settings-save button { min-width:180px; }
.toggle { color:#00000F; border-color:#bfd0e6; background:#FBFFFF; }
.toggle input { accent-color:#002A54; }
.context-box { background:#00000F; color:#FBFFFF; }
.notice { background:#eaf0ff; border-color:#8AA8FF; color:#00000F; }
.notice-error { background:#fff0ed; border-color:#c12619; }
@media (max-width: 900px) { .settings-grid, .settings-grid.three { grid-template-columns:1fr; } .palette-row { grid-template-columns:1fr; } .check-card summary { grid-template-columns:1fr; } }

/* v0.2.9 data-first SaaS clean-up */
.pth-header { background: linear-gradient(135deg, #002A54, #00000F); }
.report-summary { border-top: 5px solid var(--brand); }
.report-hero { align-items:flex-start; }
.report-hero:after { content:""; display:block; clear:both; }
.priority-list, .strength-list { background:#fff; }
.priority-list li, .strength-list li { line-height:1.35; }
.priority-list a, .strength-list a { color:#002A54; }
.status-counts span { opacity:1; }
.status-counts .badge { opacity:1; }
.badge { white-space:nowrap; }
.access-admin { border-left-color:#00000F; }
.access-admin .usage-grid strong { color:#00000F; }
.admin-diagnostics { border-left:5px solid #00000F; }
.technical-panel { border:1px solid #bfd0e6; border-radius:14px; padding:12px 14px; margin:12px 0; background:#fff; }
.technical-panel summary { cursor:pointer; font-weight:900; color:#002A54; }
.settings-intro { border-left:5px solid #002A54; }
.settings-section { border-left:4px solid #dbe7ff; }
.settings-section .section-heading h2 { color:#002A54; }
.settings-grid > div, .settings-note { min-width:0; }
.colour-control input[type="color"] { cursor:pointer; border-radius:10px; }
.detail-table, .detail-kv, .mini-list { max-width:100%; overflow-wrap:anywhere; }
.dns-value { font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size:12px; }
.check-card summary em { color:#263c55; }
.conversation-card { border:1px solid #bfd0e6; background:#FBFFFF; border-radius:14px; padding:14px; margin-top:14px; }
.conversation-card h3 { margin:0 0 8px; }
.conversation-card p { margin:0; color:#263c55; }
@media (max-width: 900px) { .status-counts span { width:100%; justify-content:space-between; } }

/* v0.2.10 admin entry links */
.admin-entry-links {
    margin-top: var(--card-space);
}
.entry-link-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    margin-top: 12px;
}
.entry-link-grid a {
    display: block;
    padding: 12px 14px;
    border: 1px solid rgba(0, 42, 84, 0.18);
    border-radius: 12px;
    background: #FBFFFF;
    color: #002A54;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 4px 10px rgba(0, 0, 15, 0.04);
}
.entry-link-grid a:hover,
.entry-link-grid a:focus {
    border-color: #8AA8FF;
    outline: 3px solid rgba(138, 168, 255, 0.25);
}

/* v0.2.10 2FA and admin entry improvements */
.recovery-code-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin:14px 0; }
.recovery-code-grid code { display:block; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:#f8fbff; color:var(--text); font-weight:800; text-align:center; }
.setup-2fa textarea[readonly], .setup-2fa input[readonly] { background:#f8fbff; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:13px; }
.notice-warning { background:#fff7e6; border-color:#f6d38b; color:#3b2700; }
.admin-chip.warning { background:#fff7e6; color:#5f3b00; border-color:#f6d38b; }

/* v0.2.12 focused admin settings and local 2FA QR */
.settings-subtabs { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.settings-subtabs button { border:1px solid rgba(0,42,84,.22); background:#FBFFFF; color:#002A54; border-radius:999px; padding:9px 13px; font-weight:800; cursor:pointer; }
.settings-subtabs button.active, .settings-subtabs button:hover, .settings-subtabs button:focus { background:#002A54; color:#FBFFFF; outline:3px solid rgba(138,168,255,.32); }
.settings-section[hidden] { display:none !important; }
.qr-setup-grid { display:grid; grid-template-columns:minmax(220px, 280px) minmax(0,1fr); gap:18px; align-items:start; }
.qr-code-box { display:inline-flex; align-items:center; justify-content:center; padding:14px; background:#fff; border:1px solid var(--line); border-radius:16px; min-width:220px; min-height:220px; box-shadow:0 8px 24px rgba(0,42,84,.10); }
.qr-code-box svg { width:220px; height:220px; display:block; }
.account-upgrade { border-left:5px solid var(--cta); }
.admin-record-actions { min-width:220px; }
.admin-record-actions .mini-form { margin:0 0 8px; }
@media (max-width: 800px) { .qr-setup-grid { grid-template-columns:1fr; } .qr-code-box { width:100%; } }

/* v0.2.12 scoring and navigation cleanup */
.score-impact-card { border:1px solid #bfd0e6; background:#FBFFFF; border-radius:14px; padding:14px; margin-top:14px; }
.score-impact-card h3 { margin:0 0 6px; color:#002A54; }
.score-impact-card ul { list-style:none; padding:0; margin:12px 0 0; display:grid; gap:8px; }
.score-impact-card li { display:grid; grid-template-columns:auto minmax(130px, 1fr) auto; gap:10px; align-items:center; padding:10px 12px; border:1px solid rgba(0,42,84,.14); border-radius:12px; background:#fff; }
.score-impact-card li small { grid-column:2 / -1; color:#263c55; line-height:1.45; }
.score-delta { font-weight:900; color:#9b2500; background:#fff3d6; border:1px solid #ffcc73; border-radius:999px; padding:4px 9px; }
@media (max-width: 700px) { .score-impact-card li { grid-template-columns:1fr; } .score-impact-card li small { grid-column:auto; } }
