:root{
  --bg:#0b0c0e; --flaeche:#17191d; --flaeche2:#22252a; --linie:#30343a;
  --text:#eef0f2; --muted:#9aa1a9; --akzent:#0090bb; --akzent-hell:#2bb3dd;
  --rot:#e5534b; --gruen:#3fb27f;
  --oben:env(safe-area-inset-top,0px); --unten:env(safe-area-inset-bottom,0px);
  --links:env(safe-area-inset-left,0px); --rechts:env(safe-area-inset-right,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);
  font:16px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  -webkit-user-select:none;user-select:none;overscroll-behavior:none;touch-action:manipulation}
input,select,textarea{-webkit-user-select:text;user-select:text}
button,input,select{font:inherit;color:inherit}
svg{width:24px;height:24px;display:block}
[hidden]{display:none!important}

.screen{position:fixed;inset:0;display:none;flex-direction:column}
.screen.aktiv{display:flex}

/* ---------- Knöpfe ---------- */
.btn{appearance:none;border:1px solid var(--linie);background:var(--flaeche2);border-radius:12px;
  padding:13px 16px;font-weight:600;cursor:pointer;text-align:center;text-decoration:none;color:var(--text)}
.btn:active{transform:scale(.98)}
.btn.primaer{background:var(--akzent);border-color:var(--akzent);color:#fff}
.btn.klein{padding:9px 12px;font-size:14px;border-radius:10px}
.btn.gross{padding:15px}
.btn:disabled{opacity:.45}
.text-btn{appearance:none;background:none;border:0;color:var(--akzent-hell);font-weight:600;padding:8px 4px;cursor:pointer}
.text-btn.klein{font-size:13px;padding:4px 6px}
.rund{appearance:none;width:44px;height:44px;border-radius:50%;border:0;background:rgba(20,22,26,.6);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:grid;place-items:center;color:#fff;cursor:pointer;text-decoration:none}
.rund.gross{width:54px;height:54px}
.rund.klein{width:40px;height:40px;background:var(--flaeche2)}
.rund:disabled{opacity:.35}
.chip{background:rgba(20,22,26,.6);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-radius:20px;padding:7px 12px;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw}
.chip.bereit{color:var(--gruen)}
.chip.fehler{color:var(--rot)}
.fehler{color:var(--rot);font-size:14px;min-height:1em;margin:0}

/* ---------- Anmelden ---------- */
#s-login{align-items:center;justify-content:center;padding:24px}
.login-box{width:100%;max-width:340px;display:flex;flex-direction:column;gap:12px;text-align:center}
.login-box h1{margin:4px 0 0;font-size:26px}
.login-box p{margin:0;color:var(--muted)}
.login-box input{padding:14px;border-radius:12px;border:1px solid var(--linie);background:var(--flaeche);font-size:17px}
.logo{width:64px;height:64px;margin:0 auto;border-radius:16px;background:var(--flaeche2);display:grid;place-items:center}
.logo span{width:40px;height:27px;border:3px solid var(--akzent);border-radius:3px;position:relative}
.logo span::after{content:"";position:absolute;right:2px;bottom:2px;width:8px;height:6px;background:var(--akzent)}

/* ---------- Kamera ---------- */
#s-kamera{background:#000}
#video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
#sucher{position:absolute;box-shadow:0 0 0 200vmax rgba(0,0,0,.55);pointer-events:none;border-radius:2px}
#sucher .ecke{position:absolute;width:22px;height:22px;border:3px solid #fff}
#sucher .tl{left:-3px;top:-3px;border-right:0;border-bottom:0}
#sucher .tr{right:-3px;top:-3px;border-left:0;border-bottom:0}
#sucher .bl{left:-3px;bottom:-3px;border-right:0;border-top:0}
#sucher .br{right:-3px;bottom:-3px;border-left:0;border-top:0}
#sucher .mass{position:absolute;left:50%;bottom:-30px;transform:translateX(-50%);font-size:12px;color:rgba(255,255,255,.75);letter-spacing:.5px}
.kamera-hinweis{position:absolute;left:24px;right:24px;top:38%;text-align:center;color:#fff}
.kamera-hinweis .klein{color:var(--muted);font-size:14px}
.oben-leiste{position:absolute;left:0;right:0;top:0;padding:calc(var(--oben) + 10px) calc(var(--rechts) + 14px) 10px calc(var(--links) + 14px);
  display:flex;align-items:center;justify-content:space-between;gap:10px}
.unten-leiste{position:absolute;left:0;right:0;bottom:0;padding:18px 28px calc(var(--unten) + 22px);
  display:flex;align-items:center;justify-content:space-between}
.ausloeser{appearance:none;width:78px;height:78px;border-radius:50%;border:4px solid #fff;background:transparent;padding:4px;cursor:pointer}
.ausloeser span{display:block;width:100%;height:100%;border-radius:50%;background:#fff;transition:transform .1s}
.ausloeser:active span{transform:scale(.9)}
.ausloeser:disabled{opacity:.4}
.blitz{position:absolute;inset:0;background:#fff;opacity:.8;animation:blitz .25s forwards;pointer-events:none}
@keyframes blitz{to{opacity:0}}

/* ---------- Bearbeiten ---------- */
#s-bearbeiten{background:var(--bg)}
.kopf{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:calc(var(--oben) + 6px) calc(var(--rechts) + 10px) 8px calc(var(--links) + 10px);border-bottom:1px solid var(--linie);background:var(--flaeche)}
.kopf h2{margin:0;font-size:17px}
.segment{display:flex;background:var(--flaeche2);border-radius:10px;padding:2px}
.segment button{appearance:none;border:0;background:none;padding:7px 12px;border-radius:8px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer}
.segment button.aktiv{background:#3a3f46;color:var(--text)}
.segment.klein button{padding:7px 10px;font-size:13px}
#m-weg.aktiv{background:var(--rot);color:#fff}
#m-hin.aktiv{background:var(--gruen);color:#fff}
.buehne{position:relative;flex:1 1 auto;min-height:200px;overflow:hidden;background:#000}
#leinwand{position:absolute;inset:0;width:100%;height:100%;touch-action:none;display:block}
.arbeitet{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:rgba(0,0,0,.55);color:#fff}
.arbeitet p{margin:0;font-size:15px}
.spinner{width:38px;height:38px;border-radius:50%;border:3px solid rgba(255,255,255,.25);border-top-color:#fff;animation:dreh 0.9s linear infinite}
@keyframes dreh{to{transform:rotate(360deg)}}
.werkzeuge{display:flex;align-items:center;gap:12px;padding:10px calc(var(--rechts) + 12px) 10px calc(var(--links) + 12px);border-top:1px solid var(--linie);background:var(--flaeche)}
.werkzeuge input[type=range]{flex:1;min-width:60px}
input[type=range]{accent-color:var(--akzent);height:28px}
.formular{padding:10px calc(var(--rechts) + 14px) 4px calc(var(--links) + 14px);background:var(--flaeche);display:flex;flex-direction:column;gap:8px}
.feld{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);min-width:0}
.feld b{color:var(--text);font-weight:600}
.feld input[type=text],.feld input[type=number],.feld input[type=password],.feld select{
  padding:11px 12px;border-radius:10px;border:1px solid var(--linie);background:var(--bg);font-size:16px;color:var(--text);width:100%}
.zeile{display:flex;gap:10px}
.halb{flex:1 1 0}
.hell{display:flex;align-items:center;gap:6px}
.hell input{flex:1;min-width:0}
.dateiname{margin:0;font-size:12.5px;color:var(--muted);word-break:break-all;min-height:1.2em}
.dateiname b{color:var(--text)}
.fuss{display:flex;gap:10px;padding:10px calc(var(--rechts) + 14px) calc(var(--unten) + 12px) calc(var(--links) + 14px);background:var(--flaeche)}
.fuss .btn{flex:1}
.fuss .btn.primaer{flex:1.3}

/* ---------- Einstellungen ---------- */
.blatt{background:var(--bg);z-index:5}
.blatt-inhalt{overflow:auto;padding:6px calc(var(--rechts) + 16px) calc(var(--unten) + 30px) calc(var(--links) + 16px);-webkit-overflow-scrolling:touch}
.blatt h3{margin:22px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}
.hilfe{font-size:13.5px;color:var(--muted);margin:4px 0 10px}
.liste{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:8px}
.liste li{display:flex;align-items:center;gap:10px;background:var(--flaeche);border:1px solid var(--linie);border-radius:12px;padding:8px}
.liste img{width:90px;aspect-ratio:1000/666;object-fit:contain;background:repeating-conic-gradient(#ddd 0 25%,#fff 0 50%) 0 0/12px 12px;border-radius:4px;flex:none}
.liste .marke{flex:1;font-weight:600;word-break:break-all}
.liste .leer{color:var(--muted);background:none;border:0;padding:0}
.rahmen-neu{display:flex;gap:8px;flex-wrap:wrap}
.rahmen-neu input[type=text]{flex:1 1 160px;padding:10px 12px;border-radius:10px;border:1px solid var(--linie);background:var(--flaeche);font-size:16px}
.datei-btn.gewaehlt{border-color:var(--gruen);color:var(--gruen)}
.raster2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.knopfreihe{display:flex;gap:10px;flex-wrap:wrap}

/* ---------- Toast ---------- */
.toast{position:fixed;left:50%;bottom:calc(var(--unten) + 120px);transform:translate(-50%,20px);opacity:0;
  background:#2a2e34;color:#fff;padding:11px 16px;border-radius:12px;font-size:14.5px;max-width:88vw;text-align:center;
  box-shadow:0 8px 30px rgba(0,0,0,.4);transition:opacity .2s,transform .2s;pointer-events:none;z-index:20}
.toast.zeigen{opacity:1;transform:translate(-50%,0)}
.toast.ok{background:#1f5f43}
.toast.fehler{background:#7a2a26}

@media (min-width:900px){
  #s-bearbeiten{display:none}
  #s-bearbeiten.aktiv{display:grid;grid-template-columns:1fr 380px;grid-template-rows:auto 1fr auto auto auto}
  #s-bearbeiten .kopf{grid-column:1/-1}
  #s-bearbeiten .buehne{grid-row:2/6}
  #s-bearbeiten .werkzeuge,#s-bearbeiten .formular,#s-bearbeiten .fuss{grid-column:2}
  #s-bearbeiten .werkzeuge{border-top:0}
}
.schalter{display:flex;align-items:center;gap:10px;font-size:14.5px;margin:12px 0 4px}
.schalter input{width:22px;height:22px;accent-color:var(--akzent)}
.zoom-leiste{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(var(--unten) + 128px);
  display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:24px;background:rgba(20,22,26,.6);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:min(92vw,420px)}
.zoom-leiste input{flex:1;min-width:0}
.zoom-wert{font-size:13px;font-variant-numeric:tabular-nums;min-width:38px;text-align:right;color:#fff}
.chip-btn{appearance:none;border:1px solid rgba(255,255,255,.25);background:none;color:#fff;border-radius:16px;padding:5px 10px;font-size:13px;white-space:nowrap;cursor:pointer}
#s-kamera{touch-action:none}
@media (orientation:landscape){
  .oben-leiste{flex-direction:column;align-items:flex-start;bottom:0;right:auto;justify-content:flex-start}
  .unten-leiste{flex-direction:column-reverse;top:0;bottom:0;left:auto;right:0;width:calc(var(--rechts) + 104px);padding:16px var(--rechts) 16px 0;justify-content:space-around;align-items:center}
  .zoom-leiste{bottom:calc(var(--unten) + 12px);width:min(60vw,420px)}
}
