:root {
    --bg: #F2EEE6;
    --panel: #FBF9F4;
    --panel-2: #F5F1E9;
    --line: rgba(70, 91, 75, 0.22);
    --gold: #202320;
    --gold-soft: #687662;
    --gold-bright: #29403A;
    --accent: #465B4B;
    --accent-2: #29403A;
    --text: #202320;
    --muted: #716D65;
    --green: #465B4B;
    --red: #8C4943;
    --shadow: 0 12px 30px rgba(32, 35, 32, 0.05);
    --sidebar-w: 190px;
}

html { min-height: 100%; }

body.keeper-dashboard,
body.keeper-login {
    min-height: 100vh;
    margin: 0;
    color: var(--text);
    background: var(--bg);
    background-image: repeating-linear-gradient(0deg, transparent, transparent 31px, rgba(32, 35, 32, 0.025) 31px, rgba(32, 35, 32, 0.025) 32px);
    font-family: 'Poppins', 'Segoe UI', system-ui, sans-serif;
    font-weight: 400;
    line-height: 1.55;
    letter-spacing: 0;
}

button,
input,
select,
textarea { font: inherit; letter-spacing: 0; }

.keeper-dashboard .wrap { max-width: 1180px; margin: 0 auto; padding: 0 24px 64px; }

.keeper-dashboard .topbar {
    min-height: 76px;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
    background: rgba(242, 238, 230, 0.96);
}

.keeper-dashboard .brand { align-items: center; gap: 12px; }
.covenant-mark { display: block; width: 34px; height: 42px; color: #29403A; flex: none; }
.keeper-dashboard .brand h1 {
    margin: 0;
    color: #202320;
    font-family: 'Source Serif 4', Georgia, serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0;
}
.keeper-dashboard .brand h1 b { color: #465B4B; }
.keeper-dashboard .brand .sub {
    display: block;
    margin-top: 2px;
    color: #9C9589;
    font-family: 'IBM Plex Mono', Consolas, monospace;
    font-size: 10px;
    letter-spacing: 0;
    text-transform: uppercase;
}

.keeper-dashboard .userbox .uname { color: #465B4B; font-weight: 600; }
.keeper-dashboard .userbox img { border-color: var(--line); }
.keeper-dashboard .btn-ghost {
    min-height: 38px;
    padding: 8px 14px;
    border: 1px solid #465B4B;
    border-radius: 3px;
    color: #465B4B;
    background: transparent;
    font-weight: 600;
    letter-spacing: 0;
}
.keeper-dashboard .btn-ghost:hover { color: #FBF9F4; border-color: #29403A; background: #29403A; }

.keeper-dashboard .layout { grid-template-columns: var(--sidebar-w) minmax(0, 1fr); gap: 34px; margin-top: 32px; }
.keeper-dashboard .sidebar {
    top: 24px;
    padding: 0 20px 0 0;
    border: 0;
    border-right: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.keeper-dashboard .nav-item {
    min-height: 42px;
    padding: 9px 10px;
    border-radius: 3px;
    color: #716D65;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0;
}
.keeper-dashboard .nav-item:hover { color: #29403A; background: rgba(70, 91, 75, 0.07); }
.keeper-dashboard .nav-item.active { color: #FBF9F4; background: #465B4B; border-color: #465B4B; }
.keeper-dashboard .sidebar .nav-note { color: #9C9589; border-color: var(--line); line-height: 1.45; }

.keeper-dashboard .page-title,
.keeper-dashboard h2 {
    color: #202320;
    font-family: 'Source Serif 4', Georgia, serif;
    font-weight: 600;
    letter-spacing: 0;
}
.keeper-dashboard .page-title { margin: 0 0 18px; font-size: 30px; }
.keeper-dashboard h2 { font-size: 20px; }
.keeper-dashboard h3 {
    color: #687662;
    font-family: 'IBM Plex Mono', Consolas, monospace;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0;
}
.keeper-dashboard .section-sub,
.keeper-dashboard .hint { color: #716D65; }

.keeper-dashboard .stats-grid { gap: 10px; }
.keeper-dashboard .stat-card,
.keeper-dashboard .panel {
    border: 1px solid var(--line);
    border-radius: 4px;
    color: #202320;
    background: #FBF9F4;
    box-shadow: var(--shadow);
}
.keeper-dashboard .stat-card { padding: 18px; }
.keeper-dashboard .stat-card label,
.keeper-dashboard label,
.keeper-dashboard th { color: #687662; letter-spacing: 0; }
.keeper-dashboard .stat-val { color: #29403A; font-family: 'Source Serif 4', Georgia, serif; }
.keeper-dashboard .panel { padding: 24px; }

.keeper-dashboard .subtabs { gap: 0; margin-bottom: 22px; }
.keeper-dashboard .subtab-btn {
    padding: 10px 13px;
    border-radius: 0;
    color: #716D65;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0;
}
.keeper-dashboard .subtab-btn:hover { color: #29403A; }
.keeper-dashboard .subtab-btn.active { color: #29403A; background: transparent; border: 0; border-bottom: 2px solid #465B4B; }

.keeper-dashboard input,
.keeper-dashboard textarea,
.keeper-dashboard select {
    border: 1px solid rgba(32, 35, 32, 0.20);
    border-radius: 3px;
    color: #202320;
    background: #FFFFFF;
}
.keeper-dashboard input:focus,
.keeper-dashboard textarea:focus,
.keeper-dashboard select:focus { outline: 2px solid rgba(70, 91, 75, 0.18); border-color: #465B4B; }
.keeper-dashboard input[readonly] { color: #716D65; background: #F5F1E9; }
.keeper-dashboard table { min-width: 620px; }
.keeper-dashboard .panel { overflow-x: auto; }
.keeper-dashboard td,
.keeper-dashboard th { border-color: rgba(32, 35, 32, 0.10); }
.keeper-dashboard code { color: #29403A; border-color: var(--line); background: #F5F1E9; }

.keeper-dashboard .btn-save {
    min-height: 40px;
    min-width: 0;
    padding: 9px 16px;
    border: 1px solid #465B4B;
    border-radius: 3px;
    color: #FBF9F4;
    background: #465B4B;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0;
}
.keeper-dashboard .btn-save:hover { background: #29403A; border-color: #29403A; filter: none; }
.keeper-dashboard .notice { color: #29403A; border-color: rgba(70, 91, 75, 0.35); border-radius: 3px; background: #E8EEE8; }
.keeper-dashboard .pill,
.keeper-dashboard .flag { color: #465B4B; border-color: var(--line); background: #F5F1E9; }
.keeper-dashboard .dot.on { background: #465B4B; box-shadow: none; }

body.keeper-login {
    display: grid;
    min-height: 100vh;
    height: auto;
    place-items: center;
    padding: 28px;
}
.keeper-login .login-card {
    width: min(100%, 520px);
    max-width: none;
    padding: 42px 44px;
    border: 1px solid rgba(70, 91, 75, 0.24);
    border-radius: 4px;
    color: #202320;
    background: #FBF9F4;
    box-shadow: 0 16px 45px rgba(32, 35, 32, 0.07);
    text-align: left;
}
.keeper-login .covenant-mark { width: 42px; height: 52px; margin-bottom: 28px; }
.keeper-login .kicker {
    margin: 0 0 10px;
    color: #687662;
    font-family: 'IBM Plex Mono', Consolas, monospace;
    font-size: 10px;
    letter-spacing: 0;
}
.keeper-login h1 {
    margin: 0;
    color: #202320;
    font-family: 'Source Serif 4', Georgia, serif;
    font-size: 36px;
    font-weight: 600;
    line-height: 1.12;
    letter-spacing: 0;
}
.keeper-login .login-copy { max-width: 420px; margin: 16px 0 28px; color: #716D65; font-size: 14px; }
.keeper-login .btn {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    padding: 9px 18px;
    border: 1px solid #465B4B;
    border-radius: 3px;
    color: #FBF9F4;
    background: #465B4B;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0;
}
.keeper-login .btn:hover { color: #FBF9F4; background: #29403A; transform: none; }

@media (max-width: 860px) {
    .keeper-dashboard .wrap { padding: 0 16px 48px; }
    .keeper-dashboard .topbar { align-items: flex-start; }
    .keeper-dashboard .userbox { flex-wrap: wrap; justify-content: flex-end; }
    .keeper-dashboard .layout { grid-template-columns: 1fr; gap: 22px; margin-top: 22px; }
    .keeper-dashboard .sidebar {
        position: static;
        flex-direction: row;
        padding: 0 0 10px;
        border-right: 0;
        border-bottom: 1px solid var(--line);
        overflow-x: auto;
    }
    .keeper-dashboard .nav-item { width: auto; flex: 0 0 auto; }
}

@media (max-width: 560px) {
    .keeper-dashboard .topbar { display: block; }
    .keeper-dashboard .userbox { margin-top: 14px; justify-content: flex-start; }
    .keeper-dashboard .panel { padding: 18px 15px; }
    .keeper-dashboard .page-title { font-size: 26px; }
    body.keeper-login { padding: 16px; }
    .keeper-login .login-card { padding: 32px 24px; }
    .keeper-login h1 { font-size: 31px; }
}
