/* yavi Portal. Farben, Schrift und Bausteine stammen aus der Homepage von yavi solutions
   (sec42west/yavi-website, src/styles.css, „Kupfer-Werkbank 0.9“): hell und dunkel, Ubuntu, Linien statt Schatten.
   Der obere Teil ist von dort übernommen, der Teil „Portal“ unten ist neu und nutzt nur diese Farben.
   Ändert sich das Erscheinungsbild der Homepage, hier nachziehen. */

/* ---------- Schriften (selbst gehostet, Ubuntu Font Licence, siehe schrift/UFL.txt) ---------- */
@font-face{font-family:'Ubuntu';font-style:normal;font-weight:300;font-display:swap;src:url(schrift/ubuntu-300-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Ubuntu';font-style:normal;font-weight:300;font-display:swap;src:url(schrift/ubuntu-300-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Ubuntu';font-style:normal;font-weight:400;font-display:swap;src:url(schrift/ubuntu-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Ubuntu';font-style:normal;font-weight:400;font-display:swap;src:url(schrift/ubuntu-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Ubuntu';font-style:normal;font-weight:500;font-display:swap;src:url(schrift/ubuntu-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Ubuntu';font-style:normal;font-weight:500;font-display:swap;src:url(schrift/ubuntu-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Ubuntu Mono';font-style:normal;font-weight:400;font-display:swap;src:url(schrift/ubuntu-mono-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Ubuntu Mono';font-style:normal;font-weight:400;font-display:swap;src:url(schrift/ubuntu-mono-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* ---------- Farbschemata ---------- */
:root{
  --ok:#2f9e5a;
  --down:#d9463f;
  --bg:#E8DFD2;--bgA:rgba(232,223,210,.9);--surface:#DED3C4;
  --ink:#241F1B;--body:#544A42;--quiet:#605650;--line:rgba(36,31,27,.18);
  --orange:#D97A00;--accent:#D97A00;--magenta:#AF1280;--tick:rgba(217,122,0,.6);
  --btn-ink:#1E1712;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ok:#4fd07f;
    --down:#ff6b63;
    --bg:#2A2522;--bgA:rgba(42,37,34,.9);--surface:#342E2A;
    --ink:#F3EBE0;--body:#C9BDB0;--quiet:#A3958A;--line:rgba(243,235,224,.18);
    --orange:#F39200;--accent:#F39200;--magenta:#D0339E;--tick:rgba(243,146,0,.55);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --ok:#4fd07f;
  --down:#ff6b63;
  --bg:#2A2522;--bgA:rgba(42,37,34,.9);--surface:#342E2A;
  --ink:#F3EBE0;--body:#C9BDB0;--quiet:#A3958A;--line:rgba(243,235,224,.18);
  --orange:#F39200;--accent:#F39200;--magenta:#D0339E;--tick:rgba(243,146,0,.55);
  color-scheme:dark;
}

/* ---------- Grundlagen ---------- */
*{box-sizing:border-box}
html{background:var(--bg)}
body{
  margin:0;min-height:100vh;
  font-family:Ubuntu,system-ui,sans-serif;-webkit-font-smoothing:antialiased;
  background:var(--bg);color:var(--ink);
  transition:background-color .5s,color .5s;
}
a{color:inherit;text-decoration:none}
a:hover{color:var(--accent)}
input,textarea,button{font:inherit}
/* Fokus (Tastatur): sichtbarer Ring in Orange, nur bei :focus-visible */
:focus{outline:none}
:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.field:focus-visible{outline-offset:-1px;border-color:var(--orange)}
input[type="checkbox"]:focus-visible{outline-offset:1px}
.btn:focus-visible{outline-color:var(--ink);outline-offset:3px}
img,svg{display:block}img{max-width:100%;height:auto}
h1,h2,h3,p,blockquote{margin:0}
.mono{font-family:'Ubuntu Mono',monospace}

/* ---------- Raster ---------- */
.wrap{max-width:1360px;margin:0 auto;padding-left:clamp(20px,4vw,48px);padding-right:clamp(20px,4vw,48px)}
.sec{padding-bottom:clamp(56px,9vh,112px)}
.sec--top{padding-top:clamp(56px,9vh,112px)}
.g{display:grid}
.g-sec{grid-template-columns:200px minmax(0,1fr);gap:24px clamp(24px,4vw,64px)}
.g-sec--rule{padding-top:24px;border-top:1px solid var(--ink)}

/* ---------- Typografie ---------- */
.kicker{font-family:'Ubuntu Mono',monospace;font-size:13px;letter-spacing:.06em;color:var(--quiet)}
.h1{font-size:clamp(32px,3.6vw,56px);line-height:1.1;letter-spacing:-.025em;font-weight:300}
.h1 .o{color:var(--accent)}
.lead{font-size:17px;line-height:1.55;color:var(--body);text-wrap:pretty}
.body{font-size:16px;line-height:1.6;color:var(--body)}
.max-640{max-width:640px}.max-920{max-width:920px}

/* ---------- Kopf ---------- */
.header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);background:var(--bgA);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.header__in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:18px;padding-bottom:18px}
.header__logo{display:flex;align-items:center}
.header__logo img{height:56px;width:auto}
.header__tools{display:flex;align-items:center;gap:16px}
.theme{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;background:transparent;color:var(--quiet);cursor:pointer}
.theme:hover{color:var(--ink)}
.theme__sun{display:none}
:root[data-theme="dark"] .theme__sun{display:block}
:root[data-theme="dark"] .theme__moon{display:none}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .theme__sun{display:block}
  :root:not([data-theme="light"]) .theme__moon{display:none}
}
.cta{padding:11px 20px;border:1px solid var(--ink);font-size:14px;font-weight:500;transition:background .2s,color .2s}
.cta:hover{background:var(--ink);color:var(--bg)}

/* ---------- Knopf ---------- */
.btn{display:inline-flex;align-items:center;gap:12px;padding:14px 24px;border:0;background:var(--orange);color:var(--btn-ink);font-size:15px;font-weight:500;cursor:pointer;transition:opacity .2s}
.btn:hover{opacity:.85;color:var(--btn-ink)}

/* ---------- Fuß ---------- */
.footer{padding-top:32px;padding-bottom:36px}
.footer__top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;align-items:flex-start}
.footer__brand{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.footer__brand img{height:24px;width:auto}
.footer__claim{font-size:14px;font-weight:500}
.footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:28px;font-family:'Ubuntu Mono',monospace;font-size:12px;color:var(--quiet)}

/* ====================================================================== */
/* ---------- Portal ---------- */

/* Rand am Handy: auch neben Kerbe und Systemleiste frei */
.wrap{padding-left:max(clamp(20px,4vw,48px),env(safe-area-inset-left,0px));padding-right:max(clamp(20px,4vw,48px),env(safe-area-inset-right,0px))}
.header{top:0;padding-top:env(safe-area-inset-top,0px)}
.footer{padding-bottom:max(36px,env(safe-area-inset-bottom,0px))}
[hidden]{display:none!important}
button.cta{background:transparent;color:var(--ink);cursor:pointer}
.cta:focus-visible{outline-offset:3px}

/* Wer angemeldet ist */
.wer{display:flex;flex-direction:column;align-items:flex-end;font-size:14px;line-height:1.3;min-width:0}
.wer b{font-weight:500;max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wer span{font-family:'Ubuntu Mono',monospace;font-size:12px;letter-spacing:.04em;color:var(--quiet)}
.header__tools form{margin:0}

/* Ampel: Punkt und Wort, nie nur Farbe */
.ampel{display:inline-flex;align-items:center;gap:8px;font-family:'Ubuntu Mono',monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--quiet)}
.ampel__punkt{width:10px;height:10px;border-radius:50%;background:var(--quiet);flex:none}
.ampel--laeuft .ampel__punkt{background:var(--ok)}
.ampel--laeuft{color:var(--ok)}
.ampel--gestoert .ampel__punkt{background:var(--down)}
.ampel--gestoert{color:var(--down)}
.ampel--unbekannt .ampel__punkt,.ampel--geplant .ampel__punkt{background:transparent;border:1.5px solid var(--quiet)}

/* Lage über allen Kacheln */
.lage{display:flex;align-items:center;gap:12px;margin-top:28px;font-size:17px;color:var(--body)}

/* Umschalter der Verwaltung: Vorschau je Rolle */
.ansichten{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 20px;margin-top:28px;padding-top:16px;border-top:1px solid var(--line);font-size:14px}
.ansichten a{padding:4px 0;color:var(--body);border-bottom:1px solid transparent}
.ansichten a:hover{color:var(--ink)}
.ansichten a[aria-current="page"]{color:var(--ink);font-weight:500;border-bottom-color:var(--accent)}
.hinweis{margin-top:12px;font-size:14px;line-height:1.5;color:var(--quiet);max-width:640px}

/* Kacheln: Linien wie die Karten der Homepage, Fläche erst beim Überfahren */
.kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.kachel{display:flex;flex-direction:column;border:1px solid var(--line);min-width:0}
.kachel__haupt{display:flex;flex-direction:column;gap:8px;padding:18px 20px 20px;flex:1;transition:background .3s}
a.kachel__haupt:hover{color:inherit;background:var(--surface)}
a.kachel__haupt:focus-visible{outline-offset:-2px}
.kachel__kopf{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:20px;margin-bottom:10px}
.kachel__pfeil{color:var(--accent);margin-left:auto}
.kachel__name{font-size:21px;font-weight:500;letter-spacing:-.01em;overflow-wrap:anywhere}
.kachel__zweck{font-size:15px;line-height:1.5;color:var(--body)}
.kachel__stand{font-size:14px;line-height:1.45;color:var(--ink)}
.kachel--geplant{border-style:dashed}
.kachel--geplant .kachel__name{color:var(--quiet)}
.kachel__mehr{display:flex;flex-wrap:wrap;gap:6px 18px;padding:12px 20px 14px;border-top:1px solid var(--line);font-family:'Ubuntu Mono',monospace;font-size:12px;letter-spacing:.04em}
.kachel__mehr a{color:var(--accent)}
.kachel__mehr a:hover{text-decoration:underline;text-underline-offset:3px}

/* Anmeldung und Meldungen */
.knoepfe{display:flex;flex-wrap:wrap;gap:12px;margin:32px 0 16px}
.lead{margin-top:28px}
.meldung{margin-top:28px;padding:16px 20px;border-left:3px solid var(--down);background:var(--surface);font-size:17px;line-height:1.5;max-width:640px}
.footer__hilfe{font-size:13px;line-height:1.5;color:var(--quiet);max-width:420px}
.footer{border-top:1px solid var(--line)}

/* ---------- Umbruch ---------- */
@media (max-width:900px){
  .g{grid-template-columns:minmax(0,1fr)!important}
  h1,.h1{font-size:clamp(34px,8.6vw,54px)!important;text-wrap:pretty!important}
  .header__in{gap:12px;padding-top:12px;padding-bottom:12px}
  .header__logo img{height:44px}
  .header__tools{gap:8px}
  .cta{padding:9px 14px}
}
@media (max-width:520px){
  .wer span{display:none}
  .wer b{max-width:14ch}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}
