/* Gemeinsames Fenster (Dialog über der Seite) — Kunden, Reinigung, Rechnung … Farben über theme.css.
   Aufbau: .sn-fenster[hidden] > .sn-fenster-box > (.sn-fenster-zu, .sn-fenster-kopf, .sn-fenster-inhalt, .sn-fenster-fuss)
   Öffnen/Schließen: staynestor/js/fenster.js. */
.sn-fenster { position: fixed; inset: 0; z-index: 3000; background: rgba(0, 0, 0, 0.45);
    display: flex; align-items: flex-start; justify-content: center; padding: 5vh 12px 12px; overflow: auto; }
.sn-fenster[hidden] { display: none; }
.sn-fenster-box { position: relative; width: 620px; max-width: 100%; max-height: 90vh; display: flex; flex-direction: column;
    background: var(--surface); color: var(--text-primary); border-radius: 14px; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(var(--fg-rgb), 0.1); }
.sn-fenster-box.sn-breit { width: 980px; }
.sn-fenster-box.sn-mittel { width: 860px; }
.sn-fenster-zu { position: absolute; top: .5rem; right: .8rem; border: none; background: none; font-size: 1.6rem; line-height: 1;
    color: rgba(var(--fg-rgb), 0.5); cursor: pointer; }
.sn-fenster-zu:hover { color: var(--text-primary); }
.sn-fenster-kopf { padding: 1rem 1.2rem .6rem; border-bottom: 1px solid rgba(var(--fg-rgb), 0.08); }
.sn-fenster-kopf h3 { margin: 0; font-size: 1.05rem; font-weight: 700; padding-right: 2rem; display: flex; gap: .5rem; align-items: center; }
.sn-fenster-inhalt { overflow-y: auto; padding: .8rem 1.2rem 1rem; }
.sn-fenster-fuss { display: flex; gap: .6rem; justify-content: flex-end; padding: .8rem 1.2rem; border-top: 1px solid rgba(var(--fg-rgb), 0.08); }
.sn-fenster-meldung { font-size: .86rem; }
.sn-fenster-meldung:empty { display: none; }

/* Größe und Lage veränderbar (staynestor/js/fenster_masse.js): gilt für .sn-fenster-box und .kal-detail-box.
   Frei liegend = fest zum Bildschirm; bei fester Höhe scrollt der Inhalt, die Fußleiste bleibt unten. */
.sn-fenster-masse > .sn-fenster-kopf, .sn-fenster-masse > .kal-detail-kopf { cursor: move; }
.sn-fenster-masse.sn-frei { position: fixed; margin: 0; }
.sn-fenster-masse > .sn-fenster-inhalt, .sn-fenster-masse > .kal-detail-inhalt { flex: 1 1 auto; min-height: 0; }
.sn-fenster-griff { position: absolute; right: 3px; bottom: 3px; width: 16px; height: 16px; z-index: 2; cursor: nwse-resize;
    background: linear-gradient(135deg, transparent 0 50%, rgba(var(--fg-rgb), 0.4) 50% 58%, transparent 58% 70%,
        rgba(var(--fg-rgb), 0.4) 70% 78%, transparent 78%); border-bottom-right-radius: 10px; }
.sn-fenster-griff:hover { background-color: rgba(var(--accent-rgb), 0.12); }

/* Seitenleiste großer Tabellen (staynestor/js/tabellen_seiten.js) */
.sn-seiten { display: flex; align-items: center; justify-content: space-between; gap: .8rem; flex-wrap: wrap; margin-top: .8rem; }
.sn-seiten-knoepfe { display: inline-flex; gap: .3rem; align-items: center; flex-wrap: wrap; }
.sn-seiten .sn-btn { padding: .2rem .55rem; font-size: .82rem; min-width: 2rem; }
