/*
 * Login, adgangskontrol og konto-sider. Bygger videre på variablerne i app.css,
 * så farver og typografi følger design.pen.
 */

/* ── Login-siden ───────────────────────────────────────────────────────── */
body.auth-page{display:flex;align-items:center;justify-content:center;padding:24px}
.auth-card{width:min(430px,100%);background:var(--surface);border:1px solid var(--border);border-radius:12px;
  padding:36px 32px;margin:auto}
.auth-brand strong{display:block;font-size:20px;font-weight:700;letter-spacing:1.5px}
.auth-brand small{display:block;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:1.4px;margin-top:7px}
.auth-card h1{font-size:24px;margin:28px 0 8px}
.auth-intro{color:var(--muted);margin:0 0 22px;font-size:14px;line-height:1.5}
.auth-foot{color:var(--muted);font-size:11px;margin:24px 0 0;text-align:center}
/* Fast lilla accentkant i toppen, som designets aktive navigationsmarkør. */
.auth-card:before{content:"";display:block;width:44px;height:4px;border-radius:2px;background:var(--purple);
  margin-bottom:26px}

/* ── Formularer ────────────────────────────────────────────────────────── */
form label{display:block;font-size:10px;font-weight:700;letter-spacing:1.2px;color:var(--muted);margin:18px 0 8px}
form input[type=text],form input[type=email],form input[type=password],form input:not([type]),form select{
  width:100%;padding:12px 14px;border-radius:8px;border:1px solid var(--border);
  background:var(--panel);color:var(--text);font:inherit}
form input:focus,form select:focus{outline:2px solid var(--purple);outline-offset:1px}
.auth-check{display:flex;align-items:center;gap:9px;margin:18px 0 0;font-size:13px;font-weight:400;
  letter-spacing:0;color:var(--text)}
.auth-check input{width:auto}
.auth-submit{width:100%;margin-top:26px;background:var(--purple);color:#fff;font-size:13px;font-weight:700;padding:13px}
.auth-submit:hover{filter:brightness(1.12)}
.form-panel form small{display:block;margin-top:8px;color:var(--muted);font-size:11px}

/* ── Beskeder ──────────────────────────────────────────────────────────── */
.auth-error,.flash{margin:18px 0;padding:14px 18px;border-radius:10px;border-left:5px solid var(--purple);
  background:var(--alert);font-size:13px}
.flash-ok{border-left-color:var(--molly)}
.flash-error,.auth-error{border-left-color:var(--freddies)}

/* ── Brugerchip i topbaren ─────────────────────────────────────────────── */
.user-role{font-size:11px;font-weight:700;color:var(--text);padding:11px 14px;border-radius:9px;
  background:var(--chip);white-space:nowrap}

/* ── Paneler og tabeller ───────────────────────────────────────────────── */
.panel{margin:26px 0;padding:22px 24px;background:var(--surface);border:1px solid var(--border);border-radius:12px}
.panel h2{margin-bottom:6px}
.panel-lead{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.form-panel{max-width:520px}
/* To formularer side om side på konto-siden; stables på smalle skærme. */
.konto-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;align-items:start}
.konto-grid .panel{margin:26px 0 0;max-width:none}
/* Panelet markeres når netop denne formular blev afvist. */
.panel-fejl{border-color:var(--freddies)}
/* Krav-tjekliste under feltet for ny adgangskode. */
ul.krav{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:7px}
ul.krav li{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted)}
ul.krav li:before{content:"○";font-size:13px;line-height:1}
ul.krav li.opfyldt{color:var(--molly)}
ul.krav li.opfyldt:before{content:"●"}
@media(max-width:900px){.konto-grid{grid-template-columns:1fr;gap:0}}
table.data{width:100%;border-collapse:collapse;margin-top:16px;font-size:13px}
table.data th{text-align:left;font-size:10px;font-weight:700;letter-spacing:1.2px;color:var(--muted);
  padding:0 12px 10px 0;border-bottom:1px solid var(--border)}
table.data td{padding:13px 12px 13px 0;border-bottom:1px solid var(--border);vertical-align:top}
.pill{display:inline-block;font-size:8px;font-weight:700;letter-spacing:.6px;padding:5px 9px;border-radius:11px;
  white-space:nowrap}
.pill-ok{background:var(--badge-molly-bg);color:var(--badge-molly)}
.pill-bad{background:var(--badge-freddies-bg);color:var(--badge-freddies)}
.pill-warn{background:#3A3428;color:var(--warning)}
body.light .pill-warn{background:#FBEFD6;color:#8A5E08}
details summary{cursor:pointer;color:var(--purple);font-size:12px;font-weight:700}
.row-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.row-form button{margin-top:12px;font-size:12px;padding:9px 13px}
dl.facts{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;margin:18px 0 0;font-size:13px}
dl.facts dt{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:1.2px}
dl.facts dd{margin:0}

@media(max-width:640px){
  .header-side{width:100%}
  table.data{display:block;overflow-x:auto}
}
