:root, :root[data-theme="dark"] {
    color-scheme: dark;
    --bg:#101216;
    --surface:#191c22;
    --surface-soft:#20242c;
    --text:#eceef3;
    --muted:#a0a8b7;
    --line:#303640;
    --primary:#93b1ff;
    --primary-dark:#3f67dc;
    --navy:#14171c;
    --shadow:0 16px 48px rgba(0,0,0,.16);
}
:root[data-theme="light"] {
    color-scheme:light;
    --bg:#f6f7f9;
    --surface:#ffffff;
    --surface-soft:#edf0f5;
    --text:#202733;
    --muted:#606b7b;
    --line:#d9dee7;
    --primary:#2a52c5;
    --primary-dark:#2449af;
    --navy:#edf0f5;
    --shadow:0 16px 48px rgba(20,30,50,.05);
}
body, .app-page, .login-page { background:var(--bg); color:var(--text); }
.card { background:var(--surface); border:1px solid var(--line); }
input { background:var(--bg); border-color:var(--line); color:var(--text); }
input::placeholder { color:var(--muted); opacity:1; }
.btn-primary, .logo-mark { background:#365ed2; color:#fff; }
.btn-primary:hover { background:#2c50bd; }
.helper-text, .card-heading p { color:var(--muted); }
.login-brand-panel { background:var(--navy); color:var(--text); }
.login-brand-panel .eyebrow { color:var(--primary); }
.login-card-wrap { position:relative; padding-top:85px; }
.login-brand-panel p { color:var(--muted); }
.theme-toggle, .plain-button { font:inherit; font-size:14px; border:1px solid var(--line); border-radius:8px; padding:9px 13px; min-height:40px; background:var(--surface); color:var(--text); cursor:pointer; }
.theme-toggle { display:inline-flex; gap:9px; align-items:center; white-space:nowrap; }
.theme-toggle:hover, .plain-button:hover { background:var(--surface-soft); }
[data-theme-icon] { font-size:19px; line-height:1; width:20px; text-align:center; }
.theme-toggle[hidden] { display:none; }
.auth-theme { position:absolute; right:28px; top:24px; }
.center-page > .auth-theme { position:fixed; }
:focus-visible { outline:2px solid var(--primary); outline-offset:4px; }
.home-shell { display:grid; grid-template-columns:240px minmax(0,1fr); min-height:100vh; }
.home-sidebar { display:flex; flex-direction:column; position:sticky; top:0; height:100vh; padding:28px 18px 20px; background:var(--surface); border-right:1px solid var(--line); }
.home-sidebar .home-brand { padding:0 8px; }
.home-sidebar .home-nav { margin-top:34px; border:0; }
.home-sidebar .home-nav a { display:flex; gap:12px; align-items:center; width:100%; margin:0; padding:12px 14px; border:0; border-radius:8px; background:var(--surface-soft); color:var(--text); box-shadow:inset 3px 0 var(--primary); }
.home-sidebar .home-nav span { font-size:20px; color:var(--primary); }
.home-sidebar .sidebar-actions { margin-top:auto; padding-top:24px; flex-direction:column; align-items:stretch; }
.sidebar-actions .theme-toggle, .sidebar-actions .plain-button { width:100%; justify-content:flex-start; text-align:left; }
.home-brand { display:flex; align-items:center; gap:12px; color:var(--text); text-decoration:none; }
.home-brand:hover { text-decoration:none; }
.home-brand strong { font-weight:600; font-size:16px; }
.home-brand .logo-mark { width:34px; height:34px; border-radius:9px; }
.home-actions { display:flex; gap:10px; align-items:center; }
.home-actions form { margin:0; }
.plain-button { background:transparent; color:var(--muted); border-color:transparent; }
.home-nav { border-bottom:1px solid var(--line); display:flex; }
.home-nav a { padding:14px 0; margin-right:26px; font-size:14px; color:var(--text); border-bottom:2px solid var(--primary); text-decoration:none; }
.home-main { min-width:0; width:100%; max-width:1320px; padding:46px clamp(22px,4vw,56px) 60px; }
.home-main .eyebrow { font-size:12px; letter-spacing:.1em; color:var(--muted); font-weight:600; }
.home-main h1 { font-size:clamp(25px,3vw,34px); font-weight:600; letter-spacing:-.035em; margin:8px 0 10px; }
.home-intro { color:var(--muted); font-size:16px; margin-bottom:30px; }
.home-empty { padding:65px 24px; border:1px solid var(--line); border-radius:12px; background:var(--surface); text-align:center; }
.home-empty-icon { display:inline-grid; place-items:center; width:48px; height:48px; border:1px solid var(--line); border-radius:12px; color:var(--muted); font-size:26px; margin-bottom:20px; }
.home-empty h2 { font-size:18px; font-weight:500; margin-bottom:10px; }
.home-empty p { font-size:14px; color:var(--muted); margin:0; }
:root[data-theme="dark"] .alert-error { background:#372027; color:#ffb6c1; border-color:#643240; }
:root[data-theme="dark"] .alert-success { background:#19332b; color:#a1e3c5; border-color:#2b5747; }
@media(max-width:820px) { .login-brand-panel { background:var(--navy); } }
@media(max-width:700px) { .home-shell { grid-template-columns:180px minmax(0,1fr); } .home-sidebar { padding:22px 12px; } .home-brand { flex-wrap:wrap; } .home-main { padding:30px 18px; } }
@media(max-width:480px) { .home-shell { grid-template-columns:1fr; } .home-sidebar { position:static; height:auto; border-right:0; border-bottom:1px solid var(--line); padding:18px; } .home-brand { flex-wrap:nowrap; } .home-sidebar .home-nav { margin-top:18px; } .home-sidebar .sidebar-actions { flex-direction:row; padding-top:16px; gap:12px; } .sidebar-actions .theme-toggle { width:auto; } .home-empty { padding:35px 16px; } .auth-theme { right:18px; top:18px; } .center-page { padding-top:90px; } }

/* Einnahmen dürfen auf Desktop die verfügbare Breite neben der Sidebar ausnutzen. */
.home-main.income-main {
    max-width: none;
    padding-left: clamp(24px, 3vw, 48px);
    padding-right: clamp(24px, 3vw, 48px);
}

@media (max-width: 700px) {
    .home-main.income-main {
        padding-left: 18px;
        padding-right: 18px;
    }
}
