/* Copyright (c) 2026 by spl · software programming laue */
/* Einstellungen: Benutzer, Rollen und Seiten, Protokoll. Nur Tokens aus design/tokens.css; Schriftgrößen über --lb-fs. */

.lb-admin-section{padding-top:48px}
.lb-admin{max-width:1080px;min-height:60vh;margin:0 auto;color:var(--lb-fg)}
.lb-admin .lb-note{margin:0 0 16px}

/* ---------- Reiter ---------- */
.lb-admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px;border-bottom:1px solid var(--lb-line-03)}
.lb-admin-tab{height:44px;padding:0 18px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;color:var(--lb-muted);font:600 calc(14px * var(--lb-fs)) var(--lb-font-text);cursor:pointer}
.lb-admin-tab:hover,.lb-admin-tab:focus-visible{color:var(--lb-cyan)}
.lb-admin-tab.on{color:var(--lb-cyan);border-bottom-color:var(--lb-cyan)}
.lb-admin-tab:focus-visible{outline:2px solid var(--lb-cyan);outline-offset:-2px}

/* ---------- Werkzeugleiste ---------- */
.lb-admin-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:12px}
.lb-admin-search{flex:1 1 260px;min-width:0;height:42px;padding:0 16px;border:1px solid var(--lb-line-19);border-radius:999px;background:transparent;color:var(--lb-fg);font:inherit;font-size:calc(14px * var(--lb-fs))}
.lb-admin-search:focus{outline:2px solid var(--lb-cyan);outline-offset:2px}
.lb-admin-count{color:var(--lb-muted);font-size:calc(13px * var(--lb-fs));white-space:nowrap}
.lb-admin-hint{margin:0 0 24px}

/* ---------- Gruppen und Karten ---------- */
.lb-admin-group{margin:0 0 28px}
.lb-admin-group-label{margin:0 0 12px;font:700 calc(12px * var(--lb-fs)) var(--lb-font-label);letter-spacing:.14em;text-transform:uppercase;color:var(--lb-accent-75)}
.lb-admin-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:start;margin:0 0 10px;padding:16px 18px;border:1px solid var(--lb-panel-line);border-radius:8px;background:var(--lb-panel)}
.lb-admin-card.is-locked{opacity:.78}
.lb-admin-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid var(--lb-panel-line);background:rgb(var(--lb-accent-50-rgb) / .12);color:var(--lb-cyan);font:700 calc(15px * var(--lb-fs)) var(--lb-font-label)}
.lb-admin-main{display:grid;gap:10px;min-width:0}
.lb-admin-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.lb-admin-name{font:700 calc(16px * var(--lb-fs)) var(--lb-font-label);color:var(--lb-fg)}
.lb-admin-mail{color:var(--lb-muted);font-size:calc(13px * var(--lb-fs));overflow-wrap:anywhere}
.lb-admin-badge{display:inline-flex;align-items:center;height:22px;padding:0 10px;border:1px solid var(--lb-line-19);border-radius:999px;color:var(--lb-text-39);font:600 calc(11px * var(--lb-fs)) var(--lb-font-text);letter-spacing:.04em}
.lb-admin-badge.role-superuser,.lb-admin-badge.role-administrator,.lb-admin-badge.role-publisher{border-color:var(--lb-cyan);color:var(--lb-cyan)}
.lb-admin-badge.locked{border-color:rgb(var(--lb-warm-05-rgb) / .5);background:rgb(var(--lb-warm-05-rgb) / .1);color:var(--lb-warm-12)}
.lb-admin-muted{color:var(--lb-muted);font-size:calc(13px * var(--lb-fs))}

/* ---------- Chips der Seitenrollen ---------- */
.lb-admin-pageroles{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.lb-admin-chip{display:inline-flex;align-items:center;gap:8px;min-height:30px;padding:0 12px;border:1px solid var(--lb-panel-line);border-radius:999px;background:transparent;color:var(--lb-text-39);font:500 calc(13px * var(--lb-fs)) var(--lb-font-text)}
.lb-admin-chip-add{cursor:pointer;border-style:dashed;color:var(--lb-cyan)}
.lb-admin-chip-add:hover,.lb-admin-chip-add:focus-visible{border-style:solid;border-color:var(--lb-cyan)}
.lb-admin-flex{flex:1 1 auto;margin:0}
.lb-admin-peoplelist{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.lb-admin-peoplelist li{padding:10px 14px;border:1px solid var(--lb-panel-line);border-radius:8px;overflow-wrap:anywhere}
.lb-admin-roleactions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.lb-admin-add{min-height:30px;padding:0 12px;border:1px dashed var(--lb-panel-line);border-radius:999px;background:transparent;color:var(--lb-cyan);font:500 calc(13px * var(--lb-fs)) var(--lb-font-text);cursor:pointer;max-width:100%}
.lb-admin-add:hover,.lb-admin-add:focus-visible{border-style:solid;border-color:var(--lb-cyan)}
.lb-admin-chip-x{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:-6px;border:0;border-radius:50%;background:transparent;color:var(--lb-muted);font-size:calc(12px * var(--lb-fs));cursor:pointer}
.lb-admin-chip-x:hover,.lb-admin-chip-x:focus-visible{color:var(--lb-warm-12);background:rgb(var(--lb-warm-05-rgb) / .12)}

/* ---------- Schalter ---------- */
.lb-admin-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px}
.lb-admin-switch{display:inline-flex;align-items:center;gap:8px}
.lb-admin-sw-label{font-size:calc(13px * var(--lb-fs));color:var(--lb-text-39)}
.lb-admin-sw{position:relative;width:42px;height:24px;padding:0;border:1px solid var(--lb-line-19);border-radius:999px;background:rgb(var(--lb-bg-72-rgb) / .12);cursor:pointer}
.lb-admin-sw .k{position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:var(--lb-muted);transition:transform .15s,background .15s}
.lb-admin-sw.on{background:rgb(var(--lb-accent-50-rgb) / .25);border-color:var(--lb-cyan)}
.lb-admin-sw.on .k{transform:translateX(18px);background:var(--lb-cyan)}
.lb-admin-sw.lock{cursor:not-allowed;opacity:.55}
.lb-admin-sw:focus-visible,.lb-admin-seg:focus-visible,.lb-admin-chip:focus-visible{outline:2px solid var(--lb-cyan);outline-offset:2px}
.lb-admin-segment{display:inline-flex;border:1px solid var(--lb-line-19);border-radius:999px;overflow:hidden}
.lb-admin-seg{height:30px;padding:0 14px;border:0;background:transparent;color:var(--lb-text-39);font:500 calc(13px * var(--lb-fs)) var(--lb-font-text);cursor:pointer}
.lb-admin-seg.on{background:rgb(var(--lb-accent-50-rgb) / .2);color:var(--lb-cyan);font-weight:700}
.lb-admin-seg:disabled{cursor:not-allowed;opacity:.55}
.lb-admin-last{margin-left:auto}
.lb-admin-edit{align-self:start}

/* ---------- Rollen und Seiten, Protokoll ---------- */
.lb-admin-roles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;margin:0 0 32px}
.lb-admin-rolecard{padding:16px 18px;border:1px solid var(--lb-panel-line);border-radius:8px;background:var(--lb-panel)}
.lb-admin-rolecard h3{margin:0 0 6px;font:700 calc(16px * var(--lb-fs)) var(--lb-font-label);color:var(--lb-fg)}
.lb-admin-rolecard p{margin:0 0 8px;color:var(--lb-text-39);font-size:calc(14px * var(--lb-fs));line-height:1.55}
.lb-admin-subtitle{margin:0 0 12px;font:700 calc(12px * var(--lb-fs)) var(--lb-font-label);letter-spacing:.14em;text-transform:uppercase;color:var(--lb-accent-75)}
.lb-admin-tablewrap{overflow-x:auto;border:1px solid var(--lb-panel-line);border-radius:8px;background:var(--lb-panel)}
.lb-admin-table{width:100%;border-collapse:collapse;font-size:calc(14px * var(--lb-fs));text-align:left}
.lb-admin-table th,.lb-admin-table td{padding:10px 14px;border-bottom:1px solid var(--lb-line-03);vertical-align:top;color:var(--lb-text-39)}
.lb-admin-table thead th{color:var(--lb-muted);font-weight:700;font-size:calc(12px * var(--lb-fs));letter-spacing:.08em;text-transform:uppercase}
.lb-admin-table tbody th{color:var(--lb-fg);font-weight:600}
.lb-admin-table tr:last-child th,.lb-admin-table tr:last-child td{border-bottom:0}
.lb-admin-audit td,.lb-admin-usage-table td{overflow-wrap:anywhere}
.lb-admin-usage-table{margin:0}
.lb-admin-panel>.lb-admin-subtitle{margin-top:28px}

/* ---------- Dialog „Person anlegen / bearbeiten“ ---------- */
.lb-admin-dialog{width:min(520px,94vw)}
.lb-admin-field{display:grid;gap:6px;margin:12px 0}
.lb-admin-field label{font-size:calc(13px * var(--lb-fs));color:var(--lb-muted)}
.lb-admin-field input,.lb-admin-field select{width:100%;box-sizing:border-box;height:42px;padding:0 14px;border:1px solid var(--lb-line-19);border-radius:8px;background:var(--lb-bg-17);color:var(--lb-fg);font:inherit;font-size:calc(14px * var(--lb-fs))}
.lb-admin-field input:focus,.lb-admin-field select:focus{outline:2px solid var(--lb-cyan);outline-offset:2px}
.lb-admin-field input[readonly]{opacity:.7}

/* ---------- Schmale Fenster ---------- */
@media(max-width:760px){
  .lb-admin-card{grid-template-columns:auto minmax(0,1fr)}
  .lb-admin-edit{grid-column:1 / -1;justify-self:start}
  .lb-admin-last{margin-left:0;flex-basis:100%}
  .lb-admin-tab{padding:0 12px}
}

/* Auswahl Mitarbeiter/Extern: Schrift in Normalfarbe (Kontrast AA auf der getönten Fläche, hell und dunkel) */
.lb-admin-segment .lb-admin-seg.on{color:var(--lb-fg)}

/* Schalter im Aus-Zustand: deutlich erkennbar (Rahmen und Knopf in Textfarbe, nicht nur gedämpft) */
.lb-admin-sw:not(.on){border-color:var(--lb-text-39)}
.lb-admin-sw:not(.on) .k{background:var(--lb-text-39)}

/* Kompakterer Kopf der Karten: weniger Abstand zwischen Name, Adresse und Kennzeichen */
.lb-admin-section{padding-top:32px}
.lb-admin-card{padding:12px 16px}
.lb-admin-main{gap:8px}

/* Berührungsflächen von mindestens 44 px auf Touch-Geräten und schmalen Fenstern */
@media(pointer:coarse),(max-width:760px){
  .lb-admin-sw{position:relative}
  .lb-admin-sw::after{content:"";position:absolute;inset:-10px -4px}
  .lb-admin-seg{height:44px;padding:0 16px}
  .lb-admin-chip,.lb-admin-add{min-height:44px}
  .lb-admin-chip-x{width:44px;height:44px;margin-right:-14px}
  .lb-admin-edit{min-height:44px}
  .lb-admin-search{height:44px}
  .lb-admin-field input,.lb-admin-field select{height:44px}
}

/* ---------- Bild, Passwort und „Aktiv“ einer Person (nach FlowDesk) ---------- */
button.lb-admin-avatar{position:relative;padding:0;cursor:pointer;overflow:visible;background-size:cover;background-position:center;font:700 calc(15px * var(--lb-fs)) var(--lb-font-label)}
button.lb-admin-avatar.has-photo{border-color:var(--lb-cyan);color:transparent}
.lb-admin-avatar .ov{position:absolute;inset:0;border-radius:50%;background:rgb(var(--lb-black-rgb) / .45);display:grid;place-items:center;font-size:calc(16px * var(--lb-fs));opacity:0;transition:opacity .2s;pointer-events:none}
.lb-admin-avatar:hover .ov,.lb-admin-avatar:focus-visible .ov{opacity:1}
.lb-admin-avatar:focus-visible{outline:2px solid var(--lb-cyan);outline-offset:2px}
.lb-admin-card.is-inactive{opacity:.75}
.lb-admin-card.is-inactive .lb-admin-avatar{filter:grayscale(1)}
.lb-admin-deact{padding:1px 8px;border-radius:999px;background:rgb(var(--lb-bg-72-rgb) / .15);color:var(--lb-muted);font:600 calc(11px * var(--lb-fs)) var(--lb-font-text)}
.lb-admin-sep{width:1px;height:14px;background:var(--lb-line-19)}
.lb-admin-stat{font-size:calc(12px * var(--lb-fs));color:var(--lb-muted)}
.lb-admin-stat.danger{color:var(--lb-warm-12)}
.lb-admin-notice{margin:0 0 12px;padding:8px 14px;border:1px solid var(--lb-cyan);border-radius:8px;background:rgb(var(--lb-accent-50-rgb) / .08);font-size:calc(13px * var(--lb-fs))}
.lb-admin-notice[hidden],.lb-admin-msg[hidden]{display:none}

/* Symbole rechts auf der Karte: erscheinen beim Darüberfahren oder Fokussieren, auf Touch-Geräten immer */
.lb-admin-acts{display:flex;gap:4px;opacity:0;transition:opacity .15s}
.lb-admin-card:hover .lb-admin-acts,.lb-admin-card:focus-within .lb-admin-acts,.lb-admin-rolecard:hover .lb-admin-acts,.lb-admin-rolecard:focus-within .lb-admin-acts{opacity:1}
.lb-admin-ib{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--lb-text-39);font-size:calc(15px * var(--lb-fs));cursor:pointer}
.lb-admin-ib:hover,.lb-admin-ib:focus-visible{border-color:var(--lb-line-19);color:var(--lb-cyan)}
@media(pointer:coarse),(max-width:760px){
  .lb-admin-acts{opacity:1}
  .lb-admin-ib{width:44px;height:44px}
}
@media(max-width:760px){.lb-admin-acts{grid-column:1 / -1;justify-self:start}}

/* Dialog „Person bearbeiten“: Kopf mit Bild */
.lb-admin-pkopf{display:flex;align-items:center;gap:14px;min-width:0}
.lb-admin-pav{position:relative;flex:0 0 auto;width:48px;height:48px;cursor:pointer}
.lb-admin-pav .face{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--lb-panel-line);background:rgb(var(--lb-accent-50-rgb) / .12) center/cover no-repeat;color:var(--lb-cyan);font:700 calc(15px * var(--lb-fs)) var(--lb-font-label)}
.lb-admin-pav .face.has-photo{border-color:var(--lb-cyan)}
.lb-admin-pav .cam{position:absolute;right:-2px;bottom:-2px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--lb-cyan);border:2px solid var(--lb-bg-17);font-size:calc(11px * var(--lb-fs));opacity:.8}
.lb-admin-pav:hover .cam{opacity:1}
.lb-admin-pav .rm{position:absolute;right:-4px;top:-4px;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:var(--lb-warm-12);color:var(--lb-bg-17);border:2px solid var(--lb-bg-17);font-size:calc(9px * var(--lb-fs));line-height:1;padding:0;cursor:pointer}
.lb-admin-pav .rm[hidden]{display:none}

/* Dialog „Passwort zurücksetzen“ */
.lb-admin-first{margin-top:0}
.lb-admin-userinfo{margin:12px 0 0;padding:8px 12px;border-radius:8px;background:rgb(var(--lb-bg-72-rgb) / .1)}
.lb-admin-pwfield{display:flex;gap:8px;align-items:center}
.lb-admin-pwfield input{flex:1}
.lb-admin-icon{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--lb-line-19);border-radius:8px;background:transparent;color:var(--lb-text-39);font-size:calc(15px * var(--lb-fs));cursor:pointer}
.lb-admin-icon:hover,.lb-admin-icon:focus-visible{border-color:var(--lb-cyan);color:var(--lb-cyan)}
.lb-admin-msg{margin:12px 0 0;padding:10px 14px;border-radius:8px;font-size:calc(13px * var(--lb-fs))}
.lb-admin-msg.ok{border:1px solid var(--lb-cyan);background:rgb(var(--lb-accent-50-rgb) / .08)}

/* Login-Sperren (nach FlowDesk) */
.lb-admin-locks{max-width:100%}
.lb-admin-lock-address,.lb-admin-lock-since{font-size:calc(13px * var(--lb-fs))}
.lb-admin-lock-address{font-family:ui-monospace,Menlo,monospace}
.lb-admin-lock-attempts{text-align:center;font-weight:700;color:var(--lb-warm-12)}
.lb-admin-lock-action{text-align:right;white-space:nowrap}
.lb-admin-badge.lb-admin-lock-ip{border-color:rgb(var(--lb-warm-05-rgb) / .6);background:rgb(var(--lb-warm-05-rgb) / .12);color:var(--lb-warm-12)}
.lb-admin-unlock{height:30px;padding:0 12px}
.lb-admin-tempmail{margin-top:16px}
/* Abgenommene Aktionszeile der Profilpflege, Vorschau 30. */
.lb-admin-dialog .lb-admin-pav{display:flex;align-items:center;gap:8px;width:auto;margin:8px 0 20px}
.lb-admin-dialog .lb-admin-pav .face{position:static;width:64px;height:64px;display:grid;place-items:center;border-radius:50%;flex:none}
.lb-admin-dialog .lb-admin-pav .preview-icon-button{font-size:0;padding:8px}
.lb-admin-dialog .lb-admin-pav .preview-icon-button svg{width:16px;height:16px}
