/* ============================================================
   Justizportal – Desktop-Oberfläche
   ============================================================ */
/* Wichtig: NUR html.desktop-html/body.desktop-body sperren – nicht "html" allgemein,
   sonst lässt sich in den Fenstern (eigenes iframe-Dokument, lädt dieselbe CSS-Datei)
   nicht mehr scrollen. */
html.desktop-html,body.desktop-body{height:100%;overflow:hidden}
body.desktop-body{
  /* Fallback, falls kein Hintergrund per Inline-Style gesetzt wird (siehe hintergrund_css() in app/core.php) */
  background:linear-gradient(120deg,#1b3a63 0%,#0f2647 45%,#0a1a30 100%);
}

.desktop{position:relative;height:100vh;width:100vw;overflow:hidden;user-select:none}

/* Sehr dezentes Wappen als Hintergrundmarke – kaum sichtbar, wie ein echtes Wallpaper-Detail */
.hintergrund-wappen{
  position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;
  font-size:min(30vw,340px);color:rgba(255,255,255,.02);line-height:1;
}

.wasserzeichen{
  position:absolute;right:14px;bottom:52px;color:rgba(255,255,255,.22);font-size:11.5px;
  text-shadow:0 1px 2px rgba(0,0,0,.5);pointer-events:none;text-align:right;
}

/* ---------- Programm-Symbole ---------- */
.symbole{
  position:absolute;top:14px;bottom:54px;
  display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;
  gap:4px 2px;
}
.symbole-links{left:14px}
/* Rechts verankert, weitere Spalten wachsen nach LINKS in die freie Fläche:
   wrap-reverse dreht die Spaltenrichtung um – die erste Spalte steht am
   rechten Rand, jede weitere links daneben. Die Box selbst ist nur eine
   Spalte breit; was nicht hineinpasst, läuft sichtbar nach links über statt
   rechts aus dem Bildschirm. */
.symbole-rechts{right:14px;width:76px;flex-wrap:wrap-reverse;align-content:flex-start}
.symbole-rechts .symbol{align-items:center}
.symbole-titel{
  width:76px;font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:rgba(255,255,255,.4);
  padding:4px 6px 8px;text-shadow:1px 1px 2px rgba(0,0,0,.9);text-align:center;
  overflow-wrap:break-word;word-break:break-word;line-height:1.35;
}
.symbol{
  appearance:none;background:transparent;border:1px solid transparent;color:var(--txt);
  width:76px;padding:6px 4px;border-radius:3px;
  display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;text-align:center;
}
.symbol:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.12)}
.symbol:focus-visible{outline:1px solid #fff}
.symbol.ausgewaehlt{background:rgba(0,120,215,.4);border-color:rgba(0,120,215,.85)}
/* Kein Kachel-Hintergrund mehr – wie echte Windows-Desktopsymbole: nur das Glyphen-Icon */
.symbol-ico{
  position:relative;width:40px;height:40px;display:grid;place-items:center;font-size:32px;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.75));
}
.symbol-ico--blau,.symbol-ico--gruen,.symbol-ico--gold,.symbol-ico--lila,.symbol-ico--grau,.symbol-ico--admin{
  background:none;
}
.symbol-abzeichen{
  position:absolute;top:-3px;right:-5px;background:var(--rot);color:#fff;font-size:9px;font-weight:700;
  min-width:15px;height:15px;border-radius:99px;display:grid;place-items:center;padding:0 3px;
  box-shadow:0 0 0 2px #0f2647;
}
.symbol-label{
  font-size:11.5px;line-height:1.25;color:#fff;text-shadow:1px 1px 2px rgba(0,0,0,.9),0 0 3px rgba(0,0,0,.9);
  max-width:74px;overflow-wrap:break-word;
}

/* ---------- Sperrbildschirm (Login) ---------- */
/* Login/Sperrbildschirm nutzt dieselbe html.desktop-html-Sperre (siehe oben) – hier
   wieder freigeben, sonst lässt sich auf kleinen/kurzen Bildschirmen nicht scrollen. */
html.sperr-html{height:auto;min-height:100%;overflow:auto}
body.sperr-body{
  height:auto;min-height:100vh;overflow:auto;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  padding:8vh 20px 40px;position:relative;
}
.sperr-uhr{text-align:center;color:#fff;margin-bottom:6vh;user-select:none}
.sperr-uhr .zeit{font-size:clamp(56px,10vw,104px);font-weight:200;line-height:1;letter-spacing:-1px;
  text-shadow:0 4px 20px rgba(0,0,0,.5)}
.sperr-uhr .datum{font-size:18px;font-weight:400;color:rgba(255,255,255,.8);margin-top:8px;
  text-shadow:0 2px 10px rgba(0,0,0,.5)}
body.sperr-body .login-wrap{min-height:auto;padding:0;background:none;display:flex;justify-content:center;width:100%}
body.sperr-body .login-card{box-shadow:0 24px 70px rgba(0,0,0,.6);backdrop-filter:blur(6px);
  background:rgba(21,29,42,.92)}
body.sperr-body .wasserzeichen{position:fixed}

/* ---------- Rechtsklick-Kontextmenü ---------- */
.desktop-menue{
  position:absolute;min-width:210px;background:#2b2b2b;border:1px solid #3a3a3a;
  border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.5);padding:4px;z-index:6000;
}
.desktop-menue button{
  appearance:none;border:0;width:100%;background:transparent;color:#d0d0d0;text-align:left;
  padding:7px 10px;border-radius:4px;font-size:13px;cursor:pointer;
}
.desktop-menue button:hover{background:rgba(255,255,255,.08);color:#fff}
.desktop-menue-trenner{border-top:1px solid #3a3a3a;margin:4px 2px}

/* ---------- Fenster ---------- */
.fenster-schicht{position:absolute;inset:0;pointer-events:none}
@keyframes fenster-oeffnen{
  from{opacity:0;transform:scale(.96) translateY(6px)}
  to{opacity:1;transform:scale(1) translateY(0)}
}
.fenster{
  position:absolute;min-width:320px;min-height:220px;
  background:#202020;border:1px solid #3a3a3a;border-radius:8px;
  box-shadow:0 8px 24px rgba(0,0,0,.4);
  display:flex;flex-direction:column;overflow:hidden;pointer-events:auto;
  animation:fenster-oeffnen .12s ease-out;
}
.fenster.aktiv{border-color:#4a4a4a;box-shadow:0 12px 32px rgba(0,0,0,.5)}
.fenster.minimiert{display:none}
.fenster.maximiert{border-radius:0}

.fenster-kopf{
  display:flex;align-items:center;gap:8px;padding:0 0 0 12px;height:32px;flex:0 0 32px;
  background:#2b2b2b;border-bottom:1px solid #3a3a3a;
  cursor:grab;
}
.fenster.aktiv .fenster-kopf{background:#2f2f2f}
.fenster-kopf:active{cursor:grabbing}
.fenster-kopf .ico{font-size:13px;opacity:.85}
.fenster-kopf .titel{
  flex:1;min-width:0;font-size:12px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:#a0a0a0;
}
.fenster.aktiv .fenster-kopf .titel{color:#e8e8e8}
.fenster-knopf{
  appearance:none;border:0;background:transparent;color:#c0c0c0;width:44px;height:32px;border-radius:0;
  font-size:12px;display:grid;place-items:center;cursor:pointer;line-height:1;
}
.fenster-knopf:hover{background:rgba(255,255,255,.08);color:#fff}
.fenster-knopf.schliessen:hover{background:#c42b1c;color:#fff}

.fenster-koerper{flex:1;min-height:0;position:relative;background:var(--bg)}
.fenster-koerper iframe{width:100%;height:100%;border:0;display:block;background:var(--bg)}
.fenster-ziehgriff{
  position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:se-resize;
  background:linear-gradient(135deg,transparent 50%,var(--line) 50%,var(--line) 60%,transparent 60%);
}

/* ---------- Startmenü (zentriertes Kachel-Menü, Windows-11-Stil) ---------- */
.startmenue{
  position:absolute;left:50%;bottom:56px;transform:translateX(-50%);width:420px;max-width:calc(100vw - 24px);
  max-height:72vh;overflow:auto;
  background:#242424;backdrop-filter:blur(20px);border:1px solid #3a3a3a;border-radius:8px;
  box-shadow:0 8px 28px rgba(0,0,0,.5);z-index:5000;padding:20px;
}
.startmenue-suche{
  width:100%;background:#2f2f2f;border:1px solid #3a3a3a;border-radius:4px;color:var(--txt);
  padding:9px 12px;font-size:13px;margin-bottom:16px;
}
.startmenue-abschnitt{font-size:12px;font-weight:600;color:var(--txt-2);margin-bottom:8px}
.startmenue-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}
.startmenue-kachel{
  appearance:none;border:1px solid transparent;background:transparent;color:var(--txt-2);
  display:flex;flex-direction:column;align-items:center;gap:7px;padding:10px 4px;border-radius:8px;
  font-size:11.5px;cursor:pointer;text-align:center;
}
.startmenue-kachel:hover{background:rgba(255,255,255,.06);color:var(--txt)}
.startmenue-kachel .symbol-ico{width:38px;height:38px;font-size:19px;border-radius:10px}
.startmenue-kachel .lbl{max-width:82px;overflow-wrap:break-word;line-height:1.2}
.startmenue-leer{color:var(--txt-3);font-size:13px;text-align:center;padding:20px 0}

.startmenue-fuss{display:flex;align-items:center;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.startmenue-konto{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.startmenue-konto .wer{min-width:0}
.startmenue-konto .wer b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.startmenue-konto .wer span{font-size:11.5px;color:var(--txt-3)}
.startmenue-raus{
  display:grid;place-items:center;width:36px;height:36px;border-radius:8px;color:var(--txt-2);font-size:16px;
  flex:0 0 36px;
}
.startmenue-raus:hover{background:rgba(239,68,68,.15);color:var(--rot);text-decoration:none}
.startmenue-behoerde{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.startmenue-behoerde label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--txt-3);margin-bottom:5px}
.startmenue-behoerde select{width:100%}

/* ---------- Taskleiste (zentriert, Windows-11-Stil) ---------- */
.taskleiste{
  position:absolute;left:0;right:0;bottom:0;height:48px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:0 10px;background:rgba(32,32,32,.92);backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.06);
  z-index:4000;
}
.taskleiste-links{justify-self:start}
.tl-suche{
  appearance:none;border:0;background:rgba(255,255,255,.06);color:#c0c0c0;
  display:flex;align-items:center;gap:8px;height:32px;padding:0 14px;border-radius:99px;font-size:12.5px;cursor:pointer;
  max-width:280px;width:38vw;
}
.tl-suche:hover{background:rgba(255,255,255,.1);color:#fff}

.taskleiste-mitte{justify-self:center;display:flex;align-items:center;gap:4px;max-width:60vw}
.start-knopf{
  appearance:none;border:0;background:transparent;color:var(--txt);
  display:grid;place-items:center;width:44px;height:40px;border-radius:4px;cursor:pointer;flex:0 0 auto;
}
/* Vier-Felder-Logo, wie der Windows-Startknopf – bewusst generisch, kein Markenlogo */
.start-knopf .wappen{
  width:18px;height:18px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;
}
.start-knopf .wappen i{display:block;background:#8fc1ff;border-radius:1px}
.start-knopf:hover,.start-knopf.aktiv{background:rgba(255,255,255,.09)}

.taskleiste-fenster{display:flex;gap:2px;overflow-x:auto;height:38px;align-items:center}
.taskleiste-eintrag{
  appearance:none;border:0;background:transparent;color:var(--txt-2);
  position:relative;display:grid;place-items:center;width:42px;height:38px;border-radius:8px;font-size:16px;
  cursor:pointer;flex:0 0 auto;
}
.taskleiste-eintrag:hover{background:rgba(255,255,255,.08);color:var(--txt)}
.taskleiste-eintrag::after{
  content:'';position:absolute;left:50%;bottom:3px;transform:translateX(-50%);width:4px;height:4px;
  border-radius:99px;background:transparent;
}
.taskleiste-eintrag.aktiv{color:var(--txt)}
.taskleiste-eintrag.aktiv::after{background:var(--akzent);width:14px}

.systray{justify-self:end;display:flex;align-items:center;gap:12px;color:var(--txt-2);font-size:12.5px;padding-right:2px}
.tray-ico{font-size:14px;opacity:.85}
.uhrblock{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;padding:0 6px;border-radius:6px}
.uhrblock:hover{background:rgba(255,255,255,.06)}
.uhrblock .uhr{font-size:12.5px}
.uhrblock .datum-klein{font-size:10.5px;color:var(--txt-3)}

/* ---------- Fenster-Inhalt (in einem Fenster geladene Seiten) ---------- */
body.im-fenster{background:var(--bg)}
.fenster-inhalt{padding:18px 20px 30px}

/* ---------- Nutzeranliegen: Software Support & Wünsche (Taskleiste) ---------- */
.anliegen-knoepfe{display:flex;align-items:center;gap:4px}
.anliegen-knopf{
  appearance:none;border:0;background:transparent;color:var(--txt-2);
  display:flex;align-items:center;gap:6px;height:40px;padding:0 12px;border-radius:4px;
  font-size:12.5px;cursor:pointer;
}
.anliegen-knopf:hover{background:rgba(255,255,255,.09);color:var(--txt)}
.anliegen-knopf .ico{font-size:15px}

.anliegen-overlay[hidden]{display:none}
.anliegen-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9000;
  display:grid;place-items:center;padding:20px;
}
.anliegen-dialog{
  width:100%;max-width:420px;background:#232323;border:1px solid #3a3a3a;border-radius:10px;
  padding:20px;box-shadow:0 24px 60px rgba(0,0,0,.5);
}
.anliegen-dialog h3{margin:0 0 4px}
.anliegen-dialog .feld{margin-top:14px;display:flex;flex-direction:column;gap:5px}
.anliegen-dialog input,.anliegen-dialog textarea{
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#e8e8e8;
  border-radius:6px;padding:8px 10px;font:inherit;resize:vertical;
}
.anliegen-dialog-fuss{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}

.desktop-meldungen{
  position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:8000;
  display:flex;flex-direction:column;gap:8px;width:92%;max-width:440px;
}

/* ---------- Mobil: Fenster füllen den Bildschirm ---------- */
@media (max-width:760px){
  .symbole{inset:10px 10px 54px 10px;gap:2px 0}
  .symbol{width:78px}
  /* .symbole-rechts hat außerhalb dieser Media Query eine feste Breite
     (width:160px) fürs Desktop-Layout mit 2 Spalten. Mit left+right+width
     gleichzeitig gesetzt gewinnt "left" und die Box würde auf der linken
     Seite landen – genau über den normalen Symbolen. Deshalb hier "left"
     zurücksetzen und die Box auf eine schmale, rechts verankerte Spalte
     schrumpfen. */
  .symbole-rechts{left:auto;right:10px;width:78px}
  .fenster{
    left:0 !important;top:0 !important;right:0;bottom:48px;
    width:100% !important;height:calc(100vh - 48px) !important;border-radius:0;
  }
  .fenster-ziehgriff{display:none}
  .tl-suche span{display:none}
  .tl-suche{padding:0;width:34px;height:34px;border-radius:99px;justify-content:center}
  .startmenue{left:6px;right:6px;transform:none;width:auto;bottom:56px}
  .startmenue-grid{grid-template-columns:repeat(3,1fr)}
  .anliegen-knopf .txt{display:none}
  .anliegen-knopf{width:34px;height:34px;padding:0;justify-content:center;border-radius:99px}
}

/* ---------- Eigene Programm-Symbole (public/assets/Icons/svg, siehe app_icon()) ---------- */
.symbol-ico .app-icon{width:100%;height:100%;display:block}
.fenster-kopf .ico .app-icon{width:16px;height:16px;display:block}
.taskleiste-eintrag .ico .app-icon{width:24px;height:24px;display:block}

/* ============================================================
   Design-Anpassung an die Programm-Symbole (siehe gleichnamigen Block in
   app.css): Fenster, Startmenü und Taskleiste im Schiefer-Verlauf der
   Symbole statt in neutralem Grau. Aufbau und Bedienung bleiben wie gehabt.
   ============================================================ */
@media screen{
  .symbol{border-radius:10px}
  .symbol-ico{width:46px;height:46px;filter:drop-shadow(0 3px 5px rgba(0,0,0,.45))}
  .symbol.ausgewaehlt{background:rgba(59,130,246,.3);border-color:rgba(147,197,253,.55)}
  .symbol-abzeichen{box-shadow:0 0 0 2px rgba(15,23,42,.9)}

  .fenster{background:#131c2e;border-color:#334155;border-radius:12px;box-shadow:0 18px 44px rgba(2,6,23,.55)}
  .fenster.aktiv{border-color:#475569;box-shadow:0 24px 60px rgba(2,6,23,.65)}
  .fenster-kopf{background:linear-gradient(180deg,#334155,#1e293b);border-bottom-color:#0f172a}
  .fenster.aktiv .fenster-kopf{background:linear-gradient(180deg,#475569,#1e293b)}
  .fenster-kopf .ico{opacity:1}
  .fenster-kopf .ico .app-icon{width:18px;height:18px}
  .fenster-kopf .titel{font-weight:600;color:#94a3b8}
  .fenster.aktiv .fenster-kopf .titel{color:#f1f5f9}
  .fenster-knopf{color:#cbd5e1}
  .fenster-knopf.schliessen:hover{background:linear-gradient(180deg,#f87171,#c81e1e)}

  .startmenue{background:rgba(24,35,58,.94);border-color:#334155;border-radius:16px;box-shadow:0 24px 60px rgba(2,6,23,.6)}
  .startmenue-suche{background:#0f1829;border-color:#2c3a52;border-radius:10px}
  .startmenue-kachel{border-radius:12px}
  .desktop-menue{background:#18233a;border-color:#334155;border-radius:10px}
  .anliegen-dialog{background:#18233a;border-color:#334155;border-radius:14px}

  .taskleiste{background:linear-gradient(180deg,rgba(51,65,85,.84),rgba(15,23,42,.94));border-top-color:rgba(255,255,255,.1)}
  .tl-suche{background:rgba(15,23,42,.5);border:1px solid rgba(255,255,255,.08);color:#cbd5e1}
  .start-knopf,.anliegen-knopf,.taskleiste-eintrag{border-radius:10px}
  .start-knopf .wappen i{background:linear-gradient(180deg,#93c5fd,#3b82f6);border-radius:2px}
  .taskleiste-eintrag.aktiv{background:rgba(255,255,255,.07)}
  /* Gold wie die Akzente in den Symbolen */
  .taskleiste-eintrag.aktiv::after{background:#fbbf24}
}

/* ---------- Symbole frei im Raster (desktop.js schaltet .raster ab 761px Breite ein) ----------
   Die Symbole hängen dann direkt am Desktop statt in den beiden Spalten-Boxen;
   ihre Position (left/top) setzt das Skript. */
.desktop.raster .symbole{position:static;display:block}
.desktop.raster .symbole-titel{display:none}
.desktop.raster .symbol{position:absolute;transition:left .12s ease-out,top .12s ease-out;touch-action:none}
.desktop.raster .symbol.zieht{transition:none;z-index:9000;opacity:.85;cursor:grabbing}
.symbol .app-icon{pointer-events:none;-webkit-user-drag:none}

/* ---------- Ordner auf dem Desktop (desktop.js) ---------- */
/* Programme, die in einem Ordner liegen, verschwinden vom Desktop. */
.symbol.im-ordner{display:none}
.symbol-ordner .symbol-ico svg{width:100%;height:100%;display:block;pointer-events:none}
.symbol-notiz .symbol-ico svg{width:100%;height:100%;display:block;pointer-events:none}
.ordner-fenster{
  position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:400px;max-width:calc(100vw - 24px);
  max-height:70vh;overflow:auto;z-index:3500;padding:14px;
  background:rgba(24,35,58,.96);border:1px solid #334155;border-radius:16px;box-shadow:0 24px 60px rgba(2,6,23,.6);
}
.ordner-kopf{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.ordner-name{
  flex:1;min-width:0;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--txt);
  font-size:14px;font-weight:600;padding:6px 8px;
}
.ordner-name:hover,.ordner-name:focus{background:#0f1829;border-color:#2c3a52;outline:none}
.ordner-knopf{
  appearance:none;border:1px solid #2c3a52;background:#1f2c45;color:var(--txt-2);border-radius:8px;
  padding:6px 10px;font-size:12px;cursor:pointer;white-space:nowrap;
}
.ordner-knopf:hover{background:#2a3a57;color:var(--txt)}
.ordner-gitter{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.ordner-kachel{position:relative}
.ordner-app{
  appearance:none;width:100%;border:1px solid transparent;background:transparent;color:var(--txt-2);
  display:flex;flex-direction:column;align-items:center;gap:7px;padding:10px 4px;border-radius:12px;
  font-size:11.5px;cursor:pointer;text-align:center;
}
.ordner-app:hover{background:rgba(255,255,255,.06);color:var(--txt)}
.ordner-app .symbol-ico{width:40px;height:40px;font-size:26px}
.ordner-app .lbl{max-width:82px;overflow-wrap:break-word;line-height:1.2}
.ordner-raus{
  appearance:none;position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:99px;border:0;
  background:rgba(15,23,42,.85);color:var(--txt-2);font-size:11px;line-height:1;cursor:pointer;display:none;
}
.ordner-kachel:hover .ordner-raus{display:block}
.ordner-raus:hover{background:var(--akzent);color:#fff}
.ordner-leer{color:var(--txt-3);font-size:13px;text-align:center;padding:22px 10px}
