/* Orbit: presentation only. Functional grids, forms and chart data stay owned by their modules. */
:root { --orbit-bg:#eef3fc; --surface:#fff; --ink:#192944; --muted:#566780; --soft-line:#d8e2f2; --orbit-panel:linear-gradient(145deg,#fff,#edf3ff); --orbit-shadow:0 16px 48px #24437710; --orbit-accent:#386fe4; }
html[data-theme="dark"] { color-scheme:dark; --orbit-bg:#060b18; --surface:#101b2e; --ink:#edf3ff; --muted:#a8b6d0; --soft-line:#293b59; --orbit-panel:linear-gradient(135deg,#142138,#0c1425); --orbit-shadow:0 16px 48px #0003; --orbit-accent:#94baff; }
html, html[data-theme="dark"] { background:var(--orbit-bg)!important; scroll-behavior:smooth; }
body, html[data-theme="dark"] body { background:radial-gradient(ellipse at 12% 0%,#467aff16,transparent 55%),radial-gradient(ellipse at 95% 35%,#8558ff0c,transparent 45%),var(--orbit-bg)!important; color:var(--ink); min-height:100vh; }
.main-header, html[data-theme="dark"] .main-header { background:var(--orbit-panel)!important; border-bottom:1px solid var(--soft-line); box-shadow:0 8px 40px #0000000a; padding:24px max(24px,calc((100vw - 1160px)/2)); }
.main-header h1 { color:var(--ink); font-size:clamp(20px,2.3vw,29px); letter-spacing:-.045em; }
.main-header p, .login-subtitle, .login-footer { color:var(--muted)!important; }
.dashboard { max-width:1200px; }
.card, .login-card, html[data-theme="dark"] .card, html[data-theme="dark"] .login-card { background:var(--orbit-panel)!important; border:1px solid var(--soft-line); color:var(--ink); box-shadow:var(--orbit-shadow); border-radius:22px; }
h1,h2,h3,h4 { color:var(--ink); }
a { color:var(--orbit-accent); }
button, .button, .logout-button, .back-button, .login-button { border-radius:12px; transition:background .2s,box-shadow .2s,transform .2s; }
.button, .logout-button, .back-button, .login-button, html[data-theme="dark"] .button, html[data-theme="dark"] .logout-button, html[data-theme="dark"] .back-button, html[data-theme="dark"] .login-button { background:linear-gradient(120deg,#3569db,#6651cb); border:1px solid #87aaff55; color:#fff; box-shadow:0 5px 18px #436cde20; }
.button:hover,.logout-button:hover,.back-button:hover,.login-button:hover { filter:brightness(1.12); }
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),select,textarea,html[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),html[data-theme="dark"] select,html[data-theme="dark"] textarea { background:var(--orbit-bg); border:1px solid var(--soft-line); color:var(--ink); border-radius:10px; }
input::placeholder,textarea::placeholder { color:var(--muted); opacity:.85; }
:focus-visible { outline:3px solid #78a9ff!important; outline-offset:4px; }
th,html[data-theme="dark"] th { background:var(--surface); color:var(--muted); }
td,th { border-color:var(--soft-line); }
.orbit-hero { display:grid; grid-template-columns:1.05fr 1fr; min-height:365px; align-items:center; margin:0 0 36px; border:1px solid var(--soft-line); border-radius:28px; background:radial-gradient(ellipse at 80% 85%,#397ff32b,transparent 55%),var(--orbit-panel); position:relative; overflow:hidden; }
.orbit-copy { padding:38px 0 38px 40px; position:relative; z-index:1; }
.orbit-eyebrow { font-size:10px!important; font-weight:800; letter-spacing:.22em; color:var(--orbit-accent)!important; margin:0 0 18px; }
.orbit-copy h2 { font-size:clamp(32px,4.5vw,55px); line-height:1.07; letter-spacing:-.055em; margin:0 0 20px; }
.orbit-copy h2 span,.login-universe h2 span { background:linear-gradient(100deg,#649cfa,#ad8ef4); -webkit-background-clip:text; background-clip:text; color:transparent; }
.orbit-copy > p:not(.orbit-eyebrow) { font-size:16px; line-height:1.65; color:var(--muted); }
.orbit-shortcut { display:inline-flex; align-items:center; gap:28px; margin-top:12px; text-decoration:none; color:var(--ink); font-size:14px; font-weight:700; }
.orbit-shortcut span { display:grid; place-items:center; height:32px; width:32px; border-radius:50%; background:#5689ee22; border:1px solid #6c98e744; }
.orbit-art { position:relative; align-self:stretch; display:grid; place-items:center; }
.orbit-art img { width:112%; max-width:none; height:auto; animation:orbit-float 9s ease-in-out infinite; }
.orbit-caption { position:absolute; bottom:24px; font-size:9px; letter-spacing:.3em; color:var(--muted); }
.layout-toolbar h2 { letter-spacing:-.035em; }
#dashboard-tiles { gap:18px; scroll-margin-top:24px; }
#dashboard-tiles .dashboard-tile .menu-card,#dashboard-tiles > .menu-card { background:var(--orbit-panel)!important; border:1px solid var(--soft-line); color:var(--ink); position:relative; box-shadow:var(--orbit-shadow); transition:transform .25s,border-color .25s,box-shadow .25s; }
#dashboard-tiles .menu-card:hover { border-color:#648ce1; box-shadow:0 14px 40px #3a6ad822; transform:translateY(-4px); }
#dashboard-tiles .menu-card h2 { margin:15px 0 8px; color:var(--ink); }
#dashboard-tiles .menu-card p { margin:0; color:var(--muted); }
.feature-symbol { width:46px; height:46px; display:grid; place-items:center; background:linear-gradient(145deg,#234a77,#172a4e); border:1px solid #668dd05c; border-radius:14px; box-shadow:inset 0 1px 0 #ffffff20,0 4px 15px #00000015; }
[data-tile-id="garten"] .feature-symbol,[data-tile-id="sport"] .feature-symbol { background:linear-gradient(145deg,#246267,#18394b); }
[data-tile-id="reisen"] .feature-symbol,[data-tile-id="planung"] .feature-symbol { background:linear-gradient(145deg,#65518d,#292c57); }
.theme-switch { background:var(--surface)!important; border:1px solid var(--soft-line)!important; color:var(--muted)!important; box-shadow:var(--orbit-shadow); }
html[data-theme="dark"] .chat-container,html[data-theme="dark"] .chat-members,html[data-theme="dark"] .chat-messages,html[data-theme="dark"] .chat-form { background:var(--surface); border-color:var(--soft-line); }
html[data-theme="dark"] .chat-message { background:#1d2c45; color:var(--ink); }
html[data-theme="dark"] .eigene-nachricht { background:#263f6a; }
/* Existing chart palettes remain readable against a deliberately light plotting surface. */
.garden-chart,.chart-card canvas,.sensor-system-chart-card canvas { background:#f4f7fc; border-radius:14px; }
.login-page { display:flex; align-items:center; justify-content:center; gap:7vw; padding:48px 28px; }
.login-universe { width:min(48vw,530px); }
.login-universe h2 { font-size:clamp(34px,4vw,54px); line-height:1.12; letter-spacing:-.055em; margin:0; }
.login-universe img { width:100%; height:auto; margin:-20px 0 -45px; animation:orbit-float 9s ease-in-out infinite; }
.login-universe > p:last-child { color:var(--muted); font-size:15px; }
.login-page .login-container { width:410px; max-width:100%; margin:0; }
.login-page .login-card { padding:36px; }
.login-logo { font-size:0; width:52px; height:52px; margin:0 auto 18px; border-radius:16px; background:#152c51 url('/static/pwa/icon-globe-192.png') center/cover; }
.login-card h1 { font-size:26px; }
.orbit-enter { animation:orbit-enter .65s ease both; }
@keyframes orbit-float { 0%,100% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-10px) rotate(2deg); } }
@keyframes orbit-enter { from { opacity:.4; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
html.orbit-paused * { animation-play-state:paused!important; }
@media(max-width:760px) { .login-universe { display:none; } .login-page { padding:24px 16px; } .orbit-copy { padding-left:25px; } }
@media(max-width:600px) {
 .main-header { padding:20px 16px; gap:12px; } .main-header h1 { font-size:20px; } .main-header p { font-size:13px; }
 .dashboard { margin:22px auto; padding:0 14px; } .orbit-hero { min-height:0; margin-bottom:24px; border-radius:22px; grid-template-columns:1fr; }
 .orbit-copy { padding:25px 20px; } .orbit-copy h2 { font-size:34px; margin-bottom:12px; } .orbit-eyebrow { font-size:9px!important; margin-bottom:14px; }
 .orbit-copy > p:not(.orbit-eyebrow) { font-size:13px; max-width:235px; } .orbit-art { position:absolute; width:155px; right:-49px; top:46px; opacity:.5; pointer-events:none; } .orbit-art img { animation:none; } .orbit-caption { display:none; }
 .orbit-shortcut { font-size:12px; margin-top:4px; gap:16px; } #dashboard-tiles { gap:10px; }
 .feature-symbol { width:33px; height:33px; border-radius:10px; margin-bottom:10px; } .feature-symbol img { width:22px; height:22px; }
 #dashboard-tiles .menu-card h2 { margin:0 0 6px; font-size:17px; } #dashboard-tiles .menu-card p { font-size:13px; }
 .login-page .login-card { padding:28px 22px; } .login-card h1 { font-size:24px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }
/* Secondary surfaces share the same palette; status and event colours stay distinct. */
body::after,.login-page::after { content:none; }
html[data-theme="dark"] .notes-layout,html[data-theme="dark"] .note-card,html[data-theme="dark"] .sport-ranking,html[data-theme="dark"] .cloud-status,html[data-theme="dark"] .planning-day,html[data-theme="dark"] .countdown-card,html[data-theme="dark"] details { background:var(--orbit-panel); border-color:var(--soft-line); }
html[data-theme="dark"] td { background:var(--surface); }
.button.delete-button,.button.shutdown-button,html[data-theme="dark"] .button.delete-button,html[data-theme="dark"] .button.shutdown-button { background:linear-gradient(120deg,#8d303f,#692e4a); color:#fff; border-color:#da7687; }
/* Feature typography: calm headings, generous reading rhythm, aligned numeric values. */
body:not(.login-page):has(.dashboard:not(.home-dashboard)) { line-height:1.6; letter-spacing:0; }
.dashboard:not(.home-dashboard) :is(h2,h3,h4,.note-title,.user-name) { font-family:"Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-weight:700; letter-spacing:-.025em; line-height:1.3; }
.dashboard:not(.home-dashboard) :is(label,th,summary) { font-family:"Nunito Sans",sans-serif; font-weight:600; }
.dashboard:not(.home-dashboard) :is(input,select,textarea,button) { font-family:"Nunito Sans",sans-serif; }
.dashboard:not(.home-dashboard) :is(.status-detail,caption,.note-date) { color:var(--muted); }
#uebersicht { scroll-margin-top:24px; }
.garden-title { display:flex; align-items:center; gap:12px; }
.garden-title .feature-symbol { flex-shrink:0; margin:0; }
.garden-live-values .card { min-width:0; }
.garden-live-values :is(#temperatur,#luftfeuchtigkeit,#tuer) { font-family:"Nunito Sans",sans-serif; font-size:clamp(25.2px,2.79vw,37.8px); font-weight:700; letter-spacing:-.035em; line-height:1.2; font-variant-numeric:tabular-nums; margin:20px 0 12px; overflow-wrap:anywhere; color:var(--ink); }
.garden-live-values #tuer { font-size:clamp(23.4px,2.43vw,31.5px); }
#door-calendar .door-calendar-day[data-opened="true"] { background:linear-gradient(135deg,#dceaff,#c9dbff); color:#183e85; border-color:#4b83f5; }
html[data-theme="dark"] #door-calendar .door-calendar-day[data-opened="true"] { background:linear-gradient(135deg,#254881,#1b335c); color:#e5efff; border-color:#568bf1; }
#door-calendar .door-calendar-day[aria-pressed="true"] { outline-color:#7ca7ff; }
@media(max-width:600px) { .garden-live-values :is(#temperatur,#luftfeuchtigkeit) { font-size:34.2px; } .garden-live-values #tuer { font-size:27.9px; } .garden-title { gap:10px; } }

/* Compact sensor status at the bottom of the garden page. */
.garden-connection { font-size:76%; }
.garden-connection p, .garden-connection strong { font-size:inherit; }

html[data-theme="dark"] .garden-chart, html[data-theme="dark"] .chart-card canvas, html[data-theme="dark"] .sensor-system-chart-card canvas { background:#0b1424; }
