/* Shared look for login, settings and chat. Tokens copied from fahrplan.html. */
:root{
  --ground:#F6F4F0; --surface:#FFFFFF; --surface-2:#EFECE6; --ink:#2F353B; --muted:#7A8189; --line:#E4DFD7;
  --muss:#E0645A; --muss-fill:#FBE1DD; --soll:#D99A2B; --soll-fill:#FCEFD3; --kann:#6FB08F; --termin:#8F7BD3; --termin-fill:#ECE6FA;
  --blue:#35659A; --blue-fill:#DCEAF9;
  --shadow:0 1px 2px rgba(47,53,59,.05), 0 10px 30px rgba(47,53,59,.08);
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{margin:0; background:var(--ground);}
body{color:var(--ink); font-family:Nunito,"Segoe UI",system-ui,sans-serif; font-size:15px; line-height:1.5; font-variant-numeric:tabular-nums;}
button,input,textarea{font:inherit; color:inherit;}
button{cursor:pointer;}
a{color:var(--blue);}
button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--blue); outline-offset:2px;}

.bar{display:flex; align-items:center; gap:8px; padding:10px 14px; flex-wrap:wrap; background:rgba(246,244,240,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5;}
.bar h1{font-size:17px; font-weight:800; margin:0 8px 0 0; letter-spacing:-.01em;}
.nav{display:flex; gap:4px; flex-wrap:wrap;}
.nav a{color:var(--muted); text-decoration:none; font-weight:700; font-size:14px; padding:5px 10px; border-radius:999px;}
.nav a[aria-current]{background:var(--surface); color:var(--ink); box-shadow:0 0 0 1px var(--line);}
.nav a:hover{color:var(--ink);}
.bar .spacer{flex:1;}

.btn{border:1px solid var(--line); background:var(--surface); border-radius:10px; padding:8px 14px; font-weight:700; color:var(--ink);}
.btn:hover{background:var(--surface-2);}
.btn.primary{background:var(--ink); border-color:var(--ink); color:#fff;}
.btn.primary:hover{background:#1f2428;}
.btn.ghost{background:transparent; border-color:transparent; color:var(--muted);}
.btn.danger{color:#B4433A; border-color:var(--muss-fill);}
.btn.small{padding:5px 10px; font-size:13px; border-radius:8px;}
.btn:disabled{opacity:.5; cursor:default;}

.card{background:var(--surface); border-radius:16px; box-shadow:var(--shadow); padding:22px;}
.muted{color:var(--muted);}
.err{background:var(--muss-fill); color:#8A2E26; border-radius:10px; padding:10px 12px; font-weight:600;}
.ok{background:#DDF2E4; color:#2C7551; border-radius:10px; padding:10px 12px; font-weight:600;}
input[type=text],textarea{width:100%; border:1px solid var(--line); background:var(--surface); border-radius:10px; padding:9px 11px;}
@media (prefers-reduced-motion:reduce){*{transition:none!important; animation:none!important;}}
