/* FIDM identity, based on the user's reference https://overblik.fidm.dk.
   Logo and open-license fonts are served locally. Layout remains calendar-first. */
:root {
  --grund: #faf9f7;
  --flade: #ffffff;
  --flade-2: #f4f2ee;
  --blaek: #1c1a19;
  --daempet: #625d58;
  --svag: #767069;
  --linje: #e4e2de;
  --linje-fin: #efede9;
  --coral: #e4685a;
  --coral-tekst: #b8412f;
  --coral-60: #ee9a90;
  --coral-28: #f7cdc8;
  --coral-svag: #fdf3f1;
}
html {
  font-family: 'Schibsted Grotesk', system-ui, 'Segoe UI', sans-serif;
  color: var(--blaek);
  background: var(--grund);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--coral-tekst); }
small, .muted, .hint { color: var(--daempet); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible {
  outline-color: var(--coral-tekst);
}
.topbar { height:108px; background:var(--grund); border-color:var(--linje); }
.brand { color:var(--blaek); gap:22px; font-weight:600; }
.brand img { display:block; object-fit:contain; width:168px; height:84px; }
.brand-context { border-left:1px solid var(--linje); padding:7px 0 7px 22px; }
.brand small { color:var(--svag); font-family:'IBM Plex Mono',monospace; font-weight:400; font-size:.625rem; }
h1 { font-weight:700; }
h2, h3 { font-weight:600; letter-spacing:-.025em; }
.eyebrow { font-family:'IBM Plex Mono',monospace; font-size:.75rem; color:var(--svag); font-weight:400; }
.intro p, .calendar-tools .subtitle, .legend, .calendar-note, .steps { color:var(--daempet); }
.round-select select { background:var(--grund); }
.deadline, .round-state { background:var(--flade-2); color:var(--blaek); border-radius:0; }
.summary {
  color:var(--blaek); background:transparent;
  border-radius:0; border-top:2px solid var(--blaek); border-bottom:1px solid var(--linje);
  padding:25px 0; gap:28px;
}
.summary .eyebrow { color:var(--svag); }
.summary p { color:var(--daempet); }
.summary .number { font-weight:700; font-variant-numeric:tabular-nums; }
.summary .number small { color:var(--daempet); }
.metric { border-color:var(--linje); }
.metric strong { font-weight:600; font-variant-numeric:tabular-nums; }
.progress { background:#e8e6e2; border-radius:0; height:8px; }
.progress-fill { background:var(--coral); }
.panel { border-color:var(--linje); border-radius:0; }
.calendar-panel { border-top:2px solid var(--blaek); }
.week-grid, .day, .calendar-note { border-color:var(--linje); }
.day.today { background:var(--coral-svag); }
.day-header { color:var(--daempet); }
.day-header strong { color:var(--blaek); }
.day.today .day-header strong { color:var(--coral-tekst); }
.slot { background:var(--flade-2); border-color:var(--linje); color:var(--daempet); border-radius:2px; }
.slot .time { font-family:'IBM Plex Mono',monospace; font-size:.8125rem; font-weight:400; }
.slot .state, .slot .location { font-size:.8125rem; }
.slot.available { background:#fff; border-color:var(--coral); color:var(--coral-tekst); }
.slot.available:hover { background:var(--coral-svag); }
.slot.reserved { background:var(--coral-svag); border-color:var(--coral-28); color:#7a352b; }
.slot.confirmed { background:var(--coral-28); border-color:var(--coral-60); color:#592921; }
.slot.completed { background:var(--coral-tekst); border-color:var(--coral-tekst); color:#fff; }
.slot.past-empty { background:#f8f7f5; color:var(--svag); }
.slot:not(:disabled):hover { box-shadow:0 2px 8px #1c1a1912; }
.legend span:before { border-radius:0; }
.legend .free:before { background:#fff; border:1px solid var(--coral); }
.legend .reserved:before { background:var(--coral-28); }
.legend .confirmed:before { background:var(--coral-60); }
.legend .completed:before { background:var(--coral-tekst); }
.municipalities li { border-color:var(--linje-fin); }
.municipalities small { color:var(--svag); font-size:.8125rem; }
.municipalities .booked { color:var(--coral-tekst); }
.municipalities .done { color:var(--coral-tekst); }
.button { border-color:#d9d5d0; border-radius:0; color:var(--blaek); font-weight:500; }
.button:hover { background:var(--flade-2); }
.button.primary { background:var(--coral-tekst); border-color:var(--coral-tekst); color:#fff; }
.button.primary:hover { background:#973526; border-color:#973526; }
.button.danger { color:var(--coral-tekst); border-color:var(--coral-28); }
.admin-banner { background:var(--coral-svag); border:0; border-left:3px solid var(--coral); border-radius:0; }
.admin-banner.archived { background:var(--flade-2); border-left-color:var(--svag); }
label { color:var(--blaek); }
input, select { color:var(--blaek); border-color:#d9d5d0; border-radius:0; }
.login { background:transparent; border:0; max-width:455px; }
.login p { color:var(--daempet); }
.login .eyebrow { color:var(--coral-tekst); }
.login .button.primary { font-size:1rem; font-weight:500; }
.form-error { color:var(--coral-tekst); }
.empty, .no-times { color:var(--daempet); }
.empty h2 { color:var(--blaek); }
dialog { color:var(--blaek); border-radius:2px; border-color:var(--linje); box-shadow:0 20px 90px #1c1a1930; }
dialog::backdrop { background:#1c1a196e; }
.callout { background:var(--coral-svag); border-radius:0; border-left:3px solid var(--coral); }
.success-icon { color:var(--coral-tekst); }
.toast { background:var(--blaek); border-radius:2px; box-shadow:0 5px 25px #1c1a1920; }
footer { color:var(--svag); }
@media(max-width:1100px) {
  .summary { gap:18px; }
  .slot .time { font-size:.75rem; }
}
@media(max-width:600px) {
  .topbar { height:86px; padding:0 14px; }
  .brand { gap:10px; font-size:.86rem; }
  .brand img { width:112px; height:56px; }
  .brand-context { padding-left:12px; }
  .brand small { font-size:.5rem; letter-spacing:.04em; margin-top:7px; }
  #account .button { font-size:.75rem; padding:6px 8px; }
  .summary { padding:24px 0; gap:14px; }
  .metric { border-top-color:var(--linje); }
  .slot .time, .slot .state, .slot .location { font-size:.8125rem; }
  .day { border-bottom-color:var(--linje); }
  .login { padding:12px 8px; margin-top:30px; }
}
