/* ── Strippi „Nacht“ ─────────────────────────────────────────────
   Dark design with a lime accent, glass cards and flowing light ribbons.
   Active while <html> has the class "night" (theme-boot.js); "Hell" under Darstellung switches back. */
html.night{color-scheme:dark;background:#070a07}
html.night body{
 --n-bg:#070a07;--n-panel:rgba(15,20,15,.82);--n-panel-solid:#0f140f;--n-raise:rgba(26,34,24,.9);
 --n-line:rgba(214,255,140,.09);--n-line-strong:rgba(214,255,140,.2);--n-text:#e9eee3;--n-muted:#a2ab98;
 --n-lime:#c6f25a;--n-lime-hi:#e0ff97;--n-lime-soft:rgba(198,242,90,.11);--n-danger:#ff9a8c;--n-income:#a6ec82;
 --accent:var(--n-lime);--accent-deep:var(--n-lime-hi);--accent-soft:var(--n-lime-soft);--forest:var(--n-lime);
 --ink:var(--n-text);--muted:var(--n-muted);--line:var(--n-line);--light:#121812;--cream:var(--n-panel-solid);--green:var(--n-lime-soft);
 background:radial-gradient(1200px 700px at 85% -10%,rgba(120,190,70,.13),transparent 60%),radial-gradient(900px 600px at -10% 110%,rgba(40,110,80,.12),transparent 60%),var(--n-bg)!important;
 color:var(--n-text)}
html.night #light-ribbons{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}
html:not(.night) #light-ribbons{display:none}
html.night #gravity-background,html.night .mercury-cursor{display:none!important}
html.night .shell,html.night main{background:transparent}

/* Typography: calm sans with an italic serif accent word in the page title. */
html.night h1,html.night h2,html.night h3{color:var(--n-text)}
html.night h1{font-size:34px;letter-spacing:-1.2px;font-weight:600}
html.night h1 em{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:400;color:var(--n-lime);letter-spacing:-.5px}
html.night .eyebrow{color:var(--n-lime);opacity:.85}
html.night p,html.night small,html.night .muted,html.night .footnote,html.night .explain,html.night .card p{color:var(--n-muted)}
html.night strong,html.night b{color:var(--n-text)}
html.night .income{color:var(--n-income)!important}
html.night a{color:var(--n-lime-hi)}

/* Sidebar and header */
html.night body>aside{background:rgba(8,11,8,.88);border-right:1px solid var(--n-line);backdrop-filter:blur(14px)}
html.night .mercury-mark{background:var(--n-lime);color:#0b0f0b}
html.night .mercury-wordmark{color:var(--n-text)}
html.night .brand>small{background:var(--n-lime-soft);color:var(--n-lime-hi)}
html.night body>aside nav{background:linear-gradient(160deg,rgba(198,242,90,.06),rgba(255,255,255,.015));border-color:var(--n-line);box-shadow:none}
html.night body>aside nav button{color:#b9c2ae}
html.night body>aside nav button.active{background:linear-gradient(90deg,rgba(198,242,90,.16),rgba(198,242,90,.04));color:var(--n-lime-hi);box-shadow:inset 3px 0 0 var(--n-lime),0 0 24px rgba(198,242,90,.08)}
html.night body>aside nav button:not(.active):hover{background:rgba(255,255,255,.05);box-shadow:none}
html.night .aside-note{color:var(--n-muted)}
html.night .mercury-account>button{background:rgba(255,255,255,.03);color:var(--n-text);border-color:var(--n-line)}
html.night .mercury-account>#lock-now{color:var(--n-lime-hi);border-color:var(--n-line-strong)}
html.night .shell>header{background:rgba(7,10,7,.7);border-bottom:1px solid var(--n-line);backdrop-filter:blur(14px)}
html.night .shell>header .pill{background:var(--n-lime-soft);color:var(--n-lime-hi)}
html.night #mercury-search{color:var(--n-muted)}
html.night footer{border-color:var(--n-line);color:var(--n-muted)}

/* Controls */
html.night button,html.night .more-actions>summary{background:rgba(255,255,255,.035);border:1px solid var(--n-line);color:var(--n-text);border-radius:999px}
html.night button:hover{background:rgba(198,242,90,.08);border-color:var(--n-line-strong)}
html.night button.primary,html.night .primary,html.night #mercury-new{background:var(--n-lime);border-color:var(--n-lime);color:#0b100a;font-weight:600;box-shadow:0 0 0 1px rgba(198,242,90,.3),0 6px 24px rgba(198,242,90,.22)}
html.night button.primary:hover,html.night #mercury-new:hover{background:var(--n-lime-hi);border-color:var(--n-lime-hi)}
html.night button:disabled{opacity:.45}
html.night .quiet,html.night button.quiet{color:var(--n-lime-hi);background:transparent;border-color:transparent}
html.night button.danger-quiet{color:var(--n-danger)}
html.night input,html.night select,html.night textarea{background:rgba(0,0,0,.35);color:var(--n-text);border:1px solid var(--n-line);border-radius:10px}
html.night input:focus,html.night select:focus,html.night textarea:focus{border-color:var(--n-lime);outline:none;box-shadow:0 0 0 3px rgba(198,242,90,.15)}
html.night :focus-visible{outline-color:var(--n-lime)!important}
html.night option{background:#101510;color:var(--n-text)}
html.night .segmented{background:rgba(0,0,0,.35);border-color:var(--n-line);border-radius:999px}
html.night .segmented button{border:0;background:transparent;color:var(--n-muted)}
html.night .segmented [aria-pressed=true]{background:var(--n-lime-soft);color:var(--n-lime-hi);box-shadow:inset 0 0 0 1px var(--n-line-strong)}
html.night .month-step{border-radius:50%}
html.night details>summary{color:var(--n-text)}
html.night .help-details>summary{color:var(--n-muted)}

/* Glass cards with a glow that follows the pointer */
html.night .card,html.night .kpi,html.night .featured{background:var(--n-panel);border:1px solid var(--n-line);color:var(--n-text);border-radius:18px;box-shadow:0 1px 0 rgba(255,255,255,.03) inset,0 20px 50px rgba(0,0,0,.35);position:relative;isolation:isolate}
html.night .card::before,html.night .kpi::before{content:'';position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(198,242,90,.1),transparent 45%)}
html.night .card:hover::before,html.night .kpi:hover::before{opacity:1}
html.night .card:hover,html.night .kpi:hover{border-color:var(--n-line-strong)}
html.night .kpi label,html.night .kpi small{color:var(--n-muted)}
html.night .kpi .number,html.night .number{color:var(--n-text)}
html.night .kpi.focus-free{background:linear-gradient(150deg,rgba(198,242,90,.14),rgba(15,20,15,.86) 55%);border-color:var(--n-line-strong)}
html.night .kpi.focus-free .number{color:var(--n-lime-hi);text-shadow:0 0 28px rgba(198,242,90,.35)}
html.night .available-card,html.night .focus-week{background:linear-gradient(150deg,rgba(198,242,90,.12),rgba(15,20,15,.86) 55%)!important;color:var(--n-text)}
html.night .row,html.night .booking-card,html.night .bank-tile{border-color:var(--n-line)}
html.night .bank-tile{background:transparent}
html.night .note,html.night .badge,html.night .coach-notice{background:rgba(255,196,90,.08);border:1px solid rgba(255,196,90,.22);color:#f3d79c}
html.night .status-chip{background:rgba(255,255,255,.06);color:var(--n-text)}
html.night .status-chip.is-paid,html.night .cost-row .is-paid{background:rgba(166,236,130,.12);color:var(--n-income)}
html.night .status-chip.is-open,html.night .cost-row .is-open{background:rgba(255,196,90,.1);color:#f3d79c}
html.night .status-chip.needs-review{background:rgba(255,154,140,.12);color:var(--n-danger)}
html.night .todo-done{color:var(--n-income)!important}
html.night .category-chips>button{border-radius:999px}

/* Tables and booking lists */
html.night table{color:var(--n-text)}
html.night th{background:transparent;color:var(--n-muted);border-color:var(--n-line)}
html.night td{border-color:var(--n-line)}
html.night tbody tr:hover{background:rgba(198,242,90,.04)}
html.night button.bank-assignment{background:transparent;border:0;color:var(--n-text)}
html.night button.bank-assignment.is-unknown{color:var(--n-muted)}
html.night .sort-heading{background:transparent;border:0;color:var(--n-muted)}
html.night .delete-transaction{background:rgba(255,154,140,.08);border-color:rgba(255,154,140,.25);color:var(--n-danger)}
html.night .more-actions>div{background:#111711;border-color:var(--n-line-strong);box-shadow:0 20px 50px rgba(0,0,0,.6)}
html.night .more-actions>div>button{background:transparent;border:0;border-radius:8px}

/* Charts: glowing ring, 3D columns, light tracks */
html.night .donut>div,html.night .donut-center{background:transparent!important}
html.night .ring-segment{filter:drop-shadow(0 0 6px rgba(198,242,90,.25))}
html.night .category-link{background:transparent;border:0;color:var(--n-text);border-radius:8px}
html.night .category-link:hover{background:var(--n-lime-soft)}
html.night .mercury-chart{background:repeating-linear-gradient(to top,transparent 0,transparent calc(25% - 1px),rgba(214,255,140,.06) calc(25% - 1px),rgba(214,255,140,.06) 25%)}
html.night .mercury-month.current{background:linear-gradient(to top,rgba(198,242,90,.08),transparent)}
html.night .mercury-bars{perspective:600px}
html.night .mercury-bars>span{position:relative;border-radius:2px 2px 0 0;background:linear-gradient(to top,rgba(198,242,90,.35),var(--n-lime));box-shadow:0 0 18px rgba(198,242,90,.25)}
html.night .mercury-bars>span::before{content:'';position:absolute;top:0;right:-7px;width:7px;height:100%;background:linear-gradient(to top,rgba(120,170,60,.2),rgba(150,200,70,.75));transform:skewY(-40deg);transform-origin:left top}
html.night .mercury-bars>span::after{content:'';position:absolute;top:-6px;left:0;width:100%;height:6px;background:var(--n-lime-hi);transform:skewX(-50deg);transform-origin:left bottom;box-shadow:0 0 10px rgba(224,255,151,.7)}
html.night .mercury-bars>span+span{background:linear-gradient(to top,rgba(255,255,255,.06),rgba(255,255,255,.28));box-shadow:none}
html.night .mercury-bars>span+span::before{background:linear-gradient(to top,rgba(255,255,255,.03),rgba(255,255,255,.14))}
html.night .mercury-bars>span+span::after{background:rgba(255,255,255,.38);box-shadow:none}
html.night .legend i,html.night .bar,html.night .track span,html.night .coach-meter>span{background:linear-gradient(90deg,#7fbf3f,var(--n-lime));box-shadow:0 0 12px rgba(198,242,90,.35)}
html.night .legend i.dark,html.night .bar.spent{background:rgba(255,255,255,.3);box-shadow:none}
html.night .track,html.night .coach-meter{background:rgba(255,255,255,.06)}
html.night .ring-tooltip{background:#111711;color:var(--n-text);border:1px solid var(--n-line-strong)}

/* Budget plan (Strippi) */
html.night .coach-card{background:linear-gradient(150deg,rgba(198,242,90,.08),rgba(15,20,15,.9) 45%);border-color:var(--n-line);box-shadow:0 30px 80px rgba(0,0,0,.4)}
html.night .coach-kpis>div,html.night .coach-pot{background:rgba(0,0,0,.28);border:1px solid var(--n-line);color:var(--n-text)}
html.night .coach-kpis strong{color:var(--n-lime-hi)}
html.night .coach-pot.over{border-color:rgba(255,154,140,.35)}

/* Dialogs, companion, toast, lock screen */
html.night dialog,html.night .gate-card{background:#0e130e;color:var(--n-text);border:1px solid var(--n-line-strong);box-shadow:0 40px 120px rgba(0,0,0,.7),0 0 0 1px rgba(198,242,90,.05)}
html.night dialog::backdrop{background:rgba(0,0,0,.6);backdrop-filter:blur(6px)}
html.night #vault-gate{background:radial-gradient(900px 500px at 80% 0%,rgba(198,242,90,.12),transparent 60%),#070a07!important}
html.night .coach-dialog.companion-panel{background:#0e130e;border-color:var(--n-line-strong)}
html.night .companion-header{background:linear-gradient(90deg,rgba(198,242,90,.12),transparent);border-color:var(--n-line)}
html.night .companion-answer{background:rgba(198,242,90,.07);color:var(--n-text)}
html.night .companion-question{background:var(--n-lime);color:#0b100a}
html.night .companion-suggestions button,html.night .companion-panel .companion-composer{background:rgba(255,255,255,.03);border-color:var(--n-line);color:var(--n-text)}
html.night #strippi-companion>span{background:var(--n-lime);color:#0b100a}
html.night #toast{background:var(--n-lime);color:#0b100a}
html.night #deletion-notice{background:#111711;color:var(--n-text);border:1px solid var(--n-line-strong)}

/* Display options */
.theme-switch{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted);padding:6px 0}
.theme-switch>span{margin-right:auto}
.theme-switch>button{min-height:30px;padding:4px 12px;border-radius:999px;font-size:12px}
.theme-switch>button[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
html.night .mercury-palette{display:none}

/* Arrival: content rises softly when a page opens */
@keyframes night-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
html.night #content.arrive>*,html.night #content.arrive>.kpis>*,html.night #content.arrive>.mercury-analysis>*{animation:night-rise .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0)*60ms)}
html.night #content.arrive>.kpis,html.night #content.arrive>.mercury-analysis{animation:none}
@media(prefers-reduced-motion:reduce){html.night #content.arrive *{animation:none!important}html.night .card::before{display:none}}

@media(max-width:760px){
 html.night h1{font-size:28px}
 html.night body>aside{background:#090c09}
 html.night body.mercury-menu-open .shell::after{background:rgba(0,0,0,.55)}
 html.night .card,html.night .kpi{border-radius:16px}
}
html.night body>aside nav button{border:0;border-radius:12px;background:transparent}
html.night .focus-appearance summary,html.night .mercury-tools>button{border:0;background:transparent;border-radius:8px}
html.night .focus-balances .balance-total{color:var(--n-lime-hi);text-shadow:0 0 22px rgba(198,242,90,.3)}
html.night .focus-balances .row strong.negative{color:var(--n-danger)}
