:root {
    --fg: #1a1a1a;
    --fg2: #555;
    --fg3: #999;
    --bg: #fff;
    --bg2: #f6f6f6;
    --bg3: #eee;
    --line: #e0e0e0;
    --good: #2a7;
    --bad: #d44;
    --em: #37f;
    color-scheme: light dark;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --fg: #ddd;
        --fg2: #aaa;
        --fg3: #666;
        --bg: #141414;
        --bg2: #1c1c1c;
        --bg3: #252525;
        --line: #2a2a2a;
        --good: #3b8;
        --bad: #e66;
        --em: #6af;
    }
}

[data-theme="dark"] {
    --fg: #ddd;
    --fg2: #aaa;
    --fg3: #666;
    --bg: #141414;
    --bg2: #1c1c1c;
    --bg3: #252525;
    --line: #2a2a2a;
    --good: #3b8;
    --bad: #e66;
    --em: #6af;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font: 14px/1.6 -apple-system, "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;
    color: var(--fg);
    background: var(--bg);
}

nav {
    position: sticky;
    top: 0;
    z-index: 10;
    background: var(--bg);
    border-bottom: 1px solid var(--line);
}

.nav-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.brand {
    font-weight: 700;
    font-size: 16px;
    letter-spacing: -0.5px;
}

.nav-right {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--fg3);
}

.sep { user-select: none; }

.refresh-hint { font-variant-numeric: tabular-nums; }

.ver {
    font-family: "SF Mono", Menlo, Consolas, monospace;
    font-size: 12px;
}

.link-btn {
    background: none;
    border: none;
    color: var(--fg2);
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    padding: 2px 0;
    border-bottom: 1px dashed var(--fg3);
}

.link-btn:hover { color: var(--fg); border-color: var(--fg); }

.theme-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    padding: 0 2px;
    color: var(--fg2);
}
.theme-btn:hover { color: var(--fg); }
.link-btn:disabled { opacity: .4; cursor: default; }
.link-btn.danger { color: var(--bad); border-color: var(--bad); }
.link-btn.danger:hover { opacity: .8; }

main {
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.panel {
    background: var(--bg2);
    border: 1px solid var(--line);
    min-width: 0;
    border-radius: 6px;
    padding: 20px;
}

.panel.wide { grid-column: 1 / -1; }

.panel-head {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 16px;
}

.panel-head h3 { margin-bottom: 0; }

h3 {
    font-size: 13px;
    font-weight: 600;
    color: var(--fg2);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 16px;
}

.dim { font-size: 12px; color: var(--fg3); }

.kv {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
}

.kv > div {
    padding: 10px 12px;
    background: var(--bg);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.kv > div:first-child { border-radius: 4px 0 0 0; }
.kv > div:nth-child(3) { border-radius: 0 4px 0 0; }
.kv > div:nth-last-child(3) { border-radius: 0 0 0 4px; }
.kv > div:last-child { border-radius: 0 0 4px 0; }

.kv dt {
    font-size: 11px;
    color: var(--fg3);
    font-weight: 500;
}

.kv dd {
    font-family: "SF Mono", Menlo, Consolas, monospace;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}

.kv .em dd { color: var(--em); }
.kv .good dd { color: var(--good); }
.kv .bad dd { color: var(--bad); }

.tbl-wrap { overflow-x: auto; }

table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

th {
    text-align: left;
    font-weight: 600;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--fg3);
    padding: 8px 12px;
    border-bottom: 2px solid var(--line);
}

td {
    padding: 7px 12px;
    border-bottom: 1px solid var(--line);
    font-variant-numeric: tabular-nums;
}

tbody tr:last-child td { border-bottom: none; }

.w-rank { width: 36px; text-align: center; }
.rank-cell { text-align: center; font-weight: 700; }

.rank-1 .rank-cell { color: #e8a320; }
.rank-2 .rank-cell { color: #8a9; }
.rank-3 .rank-cell { color: #b87; }

.domain-cell {
    white-space: nowrap;
}

.error-high { color: var(--bad); font-weight: 600; }
.empty { text-align: center; color: var(--fg3); padding: 24px 12px; }

footer {
    text-align: center;
    padding: 32px 24px;
    font-size: 12px;
    color: var(--fg3);
}

@media (max-width: 640px) {
    .row { grid-template-columns: 1fr; }
    .kv { grid-template-columns: 1fr 1fr; }
    main { padding: 16px; gap: 16px; }
    .panel { padding: 16px; }
    .kv dd { font-size: 15px; }
    .nav-inner { padding: 0 16px; }
    .hide-sm { display: none; }
}
