/* Minimal portal styling. Brand polish is for Sonnet (mirror re-sync.nl:
   cream #f5f3ee, ink #1a1814, teal accent #0891b2, Inter/Bricolage fonts). */
:root { --bg:#f5f3ee; --ink:#1a1814; --muted:#6b655c; --accent:#0891b2; --card:#fff; --line:#e5e0d6; }
* { box-sizing: border-box; }
body { margin:0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background: var(--bg); color: var(--ink); }
.topbar { display:flex; justify-content:space-between; align-items:center; padding:1rem 1.5rem; border-bottom:1px solid var(--line); background:var(--card); }
.brand { font-weight:700; text-decoration:none; color:var(--ink); }
.logout { display:flex; align-items:center; gap:.75rem; }
.who { color:var(--muted); font-size:.9rem; }
.content { max-width:720px; margin:2.5rem auto; padding:0 1.25rem; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:1.75rem; }
.auth-card { max-width:380px; margin:0 auto; }
h1 { margin-top:0; font-size:1.4rem; }
.muted { color:var(--muted); }
label { display:block; margin:1rem 0 .35rem; font-size:.9rem; font-weight:600; }
input { width:100%; padding:.6rem .7rem; border:1px solid var(--line); border-radius:8px; font-size:1rem; }
button { margin-top:1.25rem; padding:.65rem 1.1rem; border:0; border-radius:8px; background:var(--accent); color:#fff; font-weight:600; font-size:1rem; cursor:pointer; }
button:hover { filter:brightness(.95); }
.flashes { list-style:none; padding:0; }
.flash { padding:.7rem 1rem; border-radius:8px; margin-bottom:1rem; }
.flash-error { background:#fdecec; color:#9b1c1c; border:1px solid #f5c2c2; }
.flash-success { background:#eaf7ef; color:#1c7c43; border:1px solid #b7e3c6; }
.footer { text-align:center; color:var(--muted); font-size:.85rem; padding:2rem 0; }

.content > .card + .card { margin-top: 1.5rem; }

select, textarea {
  width:100%; padding:.6rem .7rem; border:1px solid var(--line); border-radius:8px;
  font-size:1rem; font-family:inherit; background:#fff; color:var(--ink);
}
textarea { resize:vertical; }

.inline-form label:first-of-type { margin-top:0; }
.checkbox-label { display:flex; align-items:center; gap:.5rem; margin:1rem 0 0; font-size:.9rem; font-weight:400; }
.checkbox-label input { width:auto; }

.section-heading { font-size:1.1rem; margin:1.75rem 0 .75rem; }
.subheading { font-size:.95rem; color:var(--muted); margin:1.25rem 0 .5rem; }
.client-block { border-top:1px solid var(--line); padding-top:1rem; margin-top:1.5rem; }
.client-block:first-of-type { border-top:0; padding-top:0; margin-top:0; }
.request-block { border-top:1px solid var(--line); padding-top:1rem; margin-top:1rem; }
.request-block:first-of-type { border-top:0; padding-top:0; margin-top:0; }

table { width:100%; border-collapse:collapse; margin:.5rem 0 1rem; font-size:.92rem; }
th, td { text-align:left; padding:.5rem .4rem; border-bottom:1px solid var(--line); }
th { color:var(--muted); font-weight:600; font-size:.82rem; text-transform:uppercase; letter-spacing:.02em; }

.badge {
  display:inline-block; font-size:.72rem; font-weight:600; color:#9b6b00;
  background:#fff3da; border:1px solid #f0dca6; border-radius:6px; padding:.1rem .45rem;
  margin-left:.4rem; vertical-align:middle;
}

.linkish {
  margin-top:0; padding:.3rem .6rem; font-size:.82rem; font-weight:600;
  background:transparent; border:1px solid var(--line); color:var(--ink); border-radius:6px;
}
.linkish:hover { filter:none; background:var(--bg); }
.linkish.danger { color:#9b1c1c; border-color:#f5c2c2; }
.linkish.danger:hover { background:#fdecec; }
.inline-action { display:inline; }

.button-link {
  display:inline-block; margin-top:1.25rem; padding:.65rem 1.1rem; border-radius:8px;
  background:var(--accent); color:#fff; font-weight:600; font-size:1rem; text-decoration:none;
}
.button-link:hover { filter:brightness(.95); }

.auth-aside { margin-top:1rem; font-size:.88rem; text-align:center; }
.auth-aside a { color:var(--accent); text-decoration:none; }

.qr { display:block; margin:1rem 0; border:1px solid var(--line); border-radius:8px; padding:.75rem; background:#fff; }
.manual-secret code, .recovery-codes code {
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; background:var(--bg);
  padding:.15rem .4rem; border-radius:4px; border:1px solid var(--line);
}
.recovery-codes { list-style:none; padding:0; margin:1rem 0; display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.recovery-codes li { padding:.4rem 0; }
