/* =========================================================================
   Verwaltung (redesign 11/2026): Ausrüstung, Inventur, Etiketten, Gerät
   (a.php), Fallen-Anmeldungen, Benutzer, Anmelden. Builds on app.css
   (pg-*, ui-*, dt, st); only what those do not cover lives here.
   ========================================================================= */

.vw-mono { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:13px; letter-spacing:.02em; }
.vw-code { font-weight:600; letter-spacing:.02em; color:var(--ink); }
a.vw-code:hover { color:var(--earth); }
.vw-muted { color:var(--muted); }
.vw-small { font-size:12px; color:var(--muted); }
.vw-note { font-weight:400; color:var(--muted); }
.vw-sec-lead { margin:0; font-size:13px; color:var(--muted); max-width:680px; line-height:1.6; }
.vw-contents { display:contents; }

/* ---- Filters (Ausrüstung) --------------------------------------------- */
.vw-filters { gap:12px 20px; margin-bottom:20px; }
.vw-filters .ui-input[type=search] { width:280px; }
.vw-filters label.vw-sel { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--muted); margin:0; }
.vw-check { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:14px; margin:0; cursor:pointer; }
.vw-check input { width:18px; height:18px; accent-color:var(--ink); margin:0; }
table.dt tr.vw-retired td { color:var(--muted); }
table.dt td.vw-place { min-width:160px; }

/* ---- Lagerorte: one row per place ------------------------------------- */
.vw-rows { max-width:720px; }
.vw-row-f { display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:12px 16px; border-bottom:1px solid var(--line-soft); margin:0; }
.vw-row-f:last-child { border-bottom:0; }
.vw-row-f .ui-input { flex:1 1 200px; }
.vw-row-f.vw-new { background:var(--wash); }

/* ---- Inventur ----------------------------------------------------------- */
.vw-summary { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:28px; }
.vw-summary-t { font-size:15px; font-weight:600; margin-right:8px; }
.vw-pill { display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border:1px solid var(--hairline); border-radius:4px;
           font-size:13px; font-variant-numeric:tabular-nums; }
.vw-ln { display:grid; grid-template-columns:96px minmax(0,1fr) auto; gap:4px 12px; align-items:baseline; padding:10px 20px;
         border-bottom:1px solid var(--line-soft); font-size:14px; }
.vw-ln:last-child { border-bottom:0; }
.vw-ln .vw-meta { font-size:12px; color:var(--muted); text-align:right; white-space:nowrap; }
.vw-ln .vw-meta.v-alert, .vw-ln .vw-meta.v-warn { font-weight:600; }
.vw-ln-empty { padding:12px 20px; font-size:14px; color:var(--muted); }
.ui-card-h .vw-h-alert { color:var(--crit-text); }
.ui-card-h .vw-h-warn { color:var(--warn-text); }
.ui-card-h .vw-h-meta { font-size:12px; font-weight:500; color:var(--muted); }
.ui-card-h a.vw-h-link { font-size:15px; text-decoration:none; color:var(--ink); }
.ui-card-h a.vw-h-link:hover { color:var(--earth); }
.ui-card-h h2.vw-card-t { margin:0; font:600 15px var(--sans); color:var(--ink); letter-spacing:0; }
.ui-card-h { flex-wrap:wrap; }
.vw-threshold { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:500; color:var(--muted); margin:0; }
.vw-threshold input { width:64px; min-height:36px; padding:0 6px; border:1px solid var(--hairline); border-radius:4px; font:400 13px var(--sans); }
.vw-threshold .ui-btn { min-height:36px; padding:0 10px; font-size:12px; }
.vw-more { padding:10px 20px; font-size:13px; }
.vw-more summary { cursor:pointer; font-weight:600; min-height:28px; list-style-position:inside; }
.vw-more[open] summary { margin-bottom:4px; }
.vw-more .vw-ln { padding-left:0; padding-right:0; }
@media (max-width:520px) {
  .vw-ln { grid-template-columns:minmax(0,1fr) auto; }
  .vw-ln > :nth-child(2) { grid-column:1 / -1; grid-row:2; }
}

/* ---- Etiketten ------------------------------------------------------------ */
.vw-label-wrap { display:flex; flex-wrap:wrap; gap:32px; align-items:flex-start; margin-bottom:8px; }
.vw-label-form { flex:1 1 380px; max-width:460px; display:flex; flex-direction:column; gap:18px; }
.vw-label-form .ui-input { width:100%; }
.vw-label-form .ui-btn { align-self:flex-start; white-space:normal; text-align:center; padding-top:10px; padding-bottom:10px; line-height:1.3; }
.vw-two { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.vw-sheet-fig { flex:1 1 360px; margin:0; display:flex; flex-direction:column; gap:8px; }
.vw-sheet { border:1px solid var(--hairline); padding:14px; background:var(--paper); display:grid;
            grid-template-columns:repeat(5, minmax(0,1fr)); gap:3px; max-width:420px; }
.vw-cell { aspect-ratio:38.1 / 21.2; border:1px dashed #D6D1C8; display:flex; align-items:center; gap:4px; padding:3px; box-sizing:border-box; }
.vw-cell.used { background:var(--line-soft); border-style:solid; }
.vw-cell .vw-qr { width:14px; height:14px; background:var(--ink); flex:0 0 auto; }
.vw-cell .vw-ct { font-size:7px; font-weight:600; white-space:nowrap; overflow:hidden; }
.vw-cell.used .vw-qr, .vw-cell.used .vw-ct { visibility:hidden; }
.vw-sheet-fig figcaption { font-size:12px; color:var(--muted); }
.vw-narrow { max-width:760px; }
.vw-mid { max-width:900px; }

/* ---- Gerät (a.php, angemeldet) ------------------------------------------- */
.vw-dev-line { font-size:14px; color:var(--muted); display:flex; flex-wrap:wrap; gap:4px 6px; align-items:baseline; }
.vw-dev-line strong { color:var(--ink); font-weight:600; letter-spacing:.02em; }
.vw-dev-line a { color:var(--ink); }
.ui-card-h.vw-h-btn { padding-top:8px; padding-bottom:8px; min-height:60px; box-sizing:border-box; }
.vw-edit { padding:16px 20px 20px; border-bottom:1px solid var(--hairline); background:var(--wash); }
.vw-edit .ui-form-grid { gap:14px 16px; }
.vw-edit .ui-input, .vw-reg .ui-input { width:100%; }
.vw-notes { white-space:pre-line; }
.vw-sub { display:block; font-size:12px; font-weight:400; color:var(--muted); margin-top:2px; }
.vw-empty { margin:0; font-size:14px; color:var(--muted); }
.vw-form-foot { margin-top:20px; }
.vw-act { display:flex; flex-direction:column; gap:8px; padding:16px 20px; border-bottom:1px solid var(--line-soft); margin:0; }
.vw-act:last-child { border-bottom:0; }
.vw-act-l { font-size:13px; font-weight:600; }
.vw-act-row { display:flex; gap:8px; }
.vw-act-row .ui-input { flex:1 1 auto; min-width:0; }
.vw-act .ui-input { width:100%; }
.vw-act-row .ui-input { width:auto; }
.vw-act .ui-btn.self { align-self:flex-start; }
table.vw-hist { width:100%; border-collapse:collapse; font-size:14px; }
table.vw-hist td { padding:11px 20px; border-bottom:1px solid var(--line-soft); vertical-align:top; }
table.vw-hist tr:last-child td { border-bottom:0; }
table.vw-hist td.vw-when { white-space:nowrap; color:var(--muted); font-variant-numeric:tabular-nums; width:1%; }
table.vw-hist td.vw-who { color:var(--muted); text-align:right; white-space:nowrap; }
.vw-photos { display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:12px; padding:16px 20px; }
.vw-photo { margin:0; display:flex; flex-direction:column; gap:6px; }
.vw-photo img { width:100%; aspect-ratio:3 / 2; object-fit:cover; display:block; border:1px solid var(--hairline); background:var(--placeholder); }
.vw-photo figcaption { display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:12px; color:var(--muted); }
.vw-photo form { margin:0; }
.vw-photo .ui-link { min-height:32px; }
.vw-upload { margin:0; }
.vw-upload label.ui-btn:focus-within { outline:2px solid var(--ink); outline-offset:2px; }
@media (max-width:520px) {
  table.vw-hist td { padding:10px 14px; }
  table.vw-hist td.vw-who { display:none; }
}

/* ---- Gerät öffentlich (a.php ohne Anmeldung) ------------------------------ */
.vw-pub { max-width:520px; min-height:100vh; margin:0 auto; display:flex; flex-direction:column; background:var(--paper); color:var(--ink); }
.vw-pub-band { background:var(--forest); color:#fff; padding:40px 24px 28px; display:flex; flex-direction:column; gap:8px; }
.vw-pub-eyebrow { font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:#D9CBB6; }
.vw-pub-band h1 { margin:0; font-family:var(--serif); font-weight:500; font-size:30px; line-height:1.2; color:#fff; }
.vw-pub-body { flex:1 1 auto; padding:28px 24px 32px; display:flex; flex-direction:column; gap:20px; }
.vw-pub-body p { margin:0; font-size:16px; line-height:1.6; }
.vw-pub-body p.vw-pub-small { font-size:14px; }
.vw-pub-body a { color:var(--ink); }
.vw-pub-code { border:1px solid var(--hairline); padding:16px; display:flex; flex-direction:column; gap:4px; }
.vw-pub-code-k { font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.vw-pub-code-v { font-size:22px; font-weight:700; letter-spacing:.04em; }
a.vw-pub-login { margin-top:auto; display:flex; align-items:center; justify-content:center; min-height:48px; border:1px solid var(--hairline);
                 font-size:14px; font-weight:600; text-decoration:none; color:var(--ink); }
a.vw-pub-login:hover { border-color:var(--ink); color:var(--ink); }
@media (min-width:600px) { .vw-pub { border-left:1px solid var(--hairline); border-right:1px solid var(--hairline); } }

/* ---- Fallen-Anmeldungen --------------------------------------------------- */
table.dt td.vw-top { vertical-align:top; }
.vw-replace { display:block; font-size:12px; font-weight:600; color:var(--warn-text); margin-top:3px; }
.vw-actions { text-align:right; white-space:nowrap; }
.vw-actions form { display:inline-flex; gap:8px; margin:0; }

/* ---- Benutzer ------------------------------------------------------------- */
.vw-cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(340px,100%), 1fr)); gap:24px; align-items:start; }
.vw-urow { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 20px; border-bottom:1px solid var(--line-soft); font-size:14px; min-height:44px; }
.vw-urow:last-child { border-bottom:0; }
.vw-urow form { margin:0; }
.vw-form { padding:20px; display:flex; flex-direction:column; gap:16px; margin:0; }
.vw-form .ui-input { width:100%; }
.vw-form .ui-btn { align-self:flex-start; }
.vw-form .ui-note { margin:0; }
.vw-warn-text { margin:0; font-size:13px; color:var(--warn-text); line-height:1.5; }
#passwort { scroll-margin-top:96px; }

/* ---- Anmelden (login.php, ohne Kopfzeile) --------------------------------- */
.vw-login { min-height:100vh; display:flex; flex-wrap:wrap; background:var(--paper); color:var(--ink); }
.vw-login-band { flex:1 1 480px; min-height:280px; background:var(--forest); color:#fff; display:flex; flex-direction:column;
                 justify-content:flex-end; padding:48px; box-sizing:border-box; gap:12px; }
.vw-login-eyebrow { font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:#D9CBB6; }
.vw-login-title { font-family:var(--serif); font-size:44px; line-height:1.15; font-weight:500; }
.vw-login-sub { font-size:14px; color:#D9D6CE; }
.vw-login-main { flex:1 1 480px; display:flex; align-items:center; justify-content:center; padding:48px 24px; box-sizing:border-box; }
.vw-login-form { width:100%; max-width:360px; display:flex; flex-direction:column; gap:18px; margin:0; }
.vw-login-form h1 { margin:0; font-family:var(--serif); font-weight:500; font-size:32px; }
.vw-login-form .ui-input { width:100%; min-height:48px; font-size:15px; }
.vw-login-form .ui-btn { min-height:48px; width:100%; font-size:15px; }
.vw-login-err { padding:12px 14px; border:1px solid var(--crit); background:#FBF1EF; font-size:14px; color:#8E2E24; }
.vw-login-hint { margin:0; font-size:12px; color:var(--muted); line-height:1.5; }
@media (max-width:720px) {
  .vw-login-band { min-height:200px; padding:32px 24px; flex-basis:100%; }
  .vw-login-title { font-size:34px; }
  .vw-login-main { padding:32px 16px 48px; align-items:flex-start; flex-basis:100%; }
}
