*{box-sizing:border-box}body{margin:0;background:#f3f6fb;color:#172033;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}.topbar{background:#102a56;color:#fff;padding:16px max(20px,calc((100% - 1200px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar div{display:flex;flex-direction:column}.topbar span{font-size:13px;color:#c8d7ef}.topbar nav{display:flex;gap:16px}.topbar a{color:#fff;text-decoration:none;font-size:14px}.container{max-width:1200px;margin:28px auto;padding:0 18px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.page-heading h1{margin:0 0 5px;font-size:28px}.page-heading p{margin:0;color:#68758a}.legend{display:flex;flex-wrap:wrap;gap:12px}.legend span,.team-row{display:flex;align-items:center;gap:7px;font-size:13px}.legend i,.team-row i{width:13px;height:13px;border-radius:4px;display:inline-block}.fc{background:white;padding:14px;border-radius:12px;box-shadow:0 2px 12px #102a5610}.fc .fc-toolbar-title{font-size:1.25rem}.admin-grid{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:18px;margin-bottom:20px}.panel{background:white;border-radius:12px;padding:18px;box-shadow:0 2px 12px #102a5610}.panel h2{font-size:18px;margin:0 0 14px}label{display:block;font-size:13px;font-weight:600;margin:12px 0;color:#334155}input,select,textarea{display:block;width:100%;margin-top:5px;border:1px solid #cbd5e1;border-radius:7px;padding:9px;font:inherit;background:white}textarea{min-height:60px}button,.button{background:#1d4ed8;color:white;border:0;border-radius:7px;padding:10px 14px;font-weight:600;cursor:pointer;text-decoration:none}button:hover{filter:brightness(.95)}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:#e2e8f0;color:#1e293b}.danger{background:#b91c1c}.small{padding:5px 8px;font-size:12px}.form-actions{display:flex;flex-wrap:wrap;gap:7px}.team-row{padding:8px 0;border-bottom:1px solid #eef2f7}.team-row button{margin-left:auto}.notice{background:#eff6ff;padding:9px;border-radius:7px;font-size:13px}.auth-bg{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#102a56,#1d4ed8)}.auth-card{background:white;width:min(100%,420px);padding:30px;border-radius:16px;box-shadow:0 18px 60px #0003}.auth-card h1{margin:8px 0}.auth-card p{color:#64748b}.auth-card button{width:100%;margin-top:10px}.brand-mark{background:#102a56;color:white;border-radius:10px;width:44px;height:44px;display:grid;place-items:center;font-weight:800}.error{color:#b91c1c!important;background:#fef2f2;padding:10px;border-radius:7px}@media(max-width:800px){.admin-grid{grid-template-columns:1fr}.page-heading{flex-direction:column}.topbar{padding:14px 18px}.fc{padding:6px}.fc .fc-toolbar{flex-wrap:wrap;gap:8px}.fc .fc-toolbar-title{font-size:1rem}}/* Compact custom week schedule matching the requested reference */
.schedule-page{max-width:1500px;margin:12px auto;padding:0 8px}.schedule-page .page-heading{margin-bottom:8px;align-items:center}.schedule-page .page-heading h1{font-size:22px}.schedule-page .page-heading p{font-size:12px}.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px;padding:4px 0}.nav-buttons,.view-buttons{display:flex;gap:4px}.schedule-toolbar button{padding:4px 10px;font-size:12px;border-radius:3px}.schedule-toolbar .active{background:#1d4ed8;color:#fff}.schedule{display:grid;grid-template-columns:42px repeat(7,minmax(0,1fr));grid-template-rows:27px auto;position:relative;border:1px solid #888;background:#fff;overflow:hidden}.time-head,.day-head{grid-row:1;background:#f1f1f1;border-right:1px solid #888;border-bottom:1px solid #888;text-align:center;font-size:12px;font-weight:600;padding:5px 1px;white-space:nowrap}.day-head.sunday{color:#c00}.time-axis{grid-column:1;grid-row:2;background:#f1f1f1;border-right:1px solid #888;height:551px}.hour-label{position:absolute;left:0;width:41px;height:14px;text-align:center;font-size:11px;transform:translateY(-6px);z-index:2;background:#f1f1f1}.day-column{position:relative;border-right:1px solid #888;background:#fff;min-width:0;overflow:hidden}.hour-line{position:absolute;left:0;right:0;height:1px;background:#888;z-index:0}.closed-layer,.events-layer{position:absolute;inset:0}.closed-layer{z-index:1;pointer-events:none}.events-layer{z-index:2}.closed-block{position:absolute;left:0;right:0;background:#bfbfbf;border-bottom:1px solid #888;color:#111;font-size:9px;line-height:1.05;padding:2px 3px;overflow:hidden}.closed-block.closed-compact{font-size:8px;line-height:1;white-space:nowrap;padding:1px 2px}.closed-time-label{position:absolute;top:2px;left:3px;right:2px;color:#111;font-size:9px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:clip;pointer-events:none}.booking-block{position:absolute;left:2px;right:2px;border:1px solid #222;border-radius:4px;padding:2px 3px;font-size:9px;line-height:1.05;overflow:hidden;box-shadow:none}.booking-time{font-weight:700;font-size:9px;white-space:nowrap}.booking-title{font-weight:600;overflow-wrap:anywhere}.booking-meta{font-size:8px;opacity:.9}.schedule-legend{display:flex;gap:14px;align-items:center;padding:5px 0;font-size:11px}.schedule-legend span{display:flex;align-items:center;gap:4px}.schedule-legend i{display:inline-block;width:14px;height:10px;border:1px solid #777}.closed-swatch{background:#bfbfbf}.open-swatch{background:#fff}.match-swatch{background:#ff3838}.fc .fc-timegrid-slot{height:1.9em}.fc .fc-timegrid-slot-label{font-size:11px}.fc .fc-event{font-size:10px;line-height:1.1;padding:1px}.fc .fc-toolbar-title{font-size:1rem}.admin-calendar{font-size:12px}
@media(max-width:700px){.schedule-page{overflow-x:auto}.schedule{min-width:850px}.schedule-page .page-heading{align-items:flex-start}.schedule-page .legend{display:none}}

/* Utskrift: allt ska rymmas på ett enda A4-ark i liggande format. */
@page {
  size: A4 landscape;
  margin: 5mm;
}

@media print {
  *, *::before, *::after {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  html, body {
    width: 287mm !important;
    height: 200mm !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
    color: #111 !important;
  }

  .topbar,
  .page-heading,
  .admin-grid {
    display: none !important;
  }

  main.container,
  main.container.schedule-page {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Administrationssidans FullCalendar – veckovy skrivs alltid ut. */
  #calendar {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: 184mm !important;
    max-height: 184mm !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  #calendar .fc {
    height: 184mm !important;
    max-height: 184mm !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 6pt !important;
  }

  #calendar .fc .fc-toolbar {
    display: flex !important;
    min-height: 7mm !important;
    height: 7mm !important;
    margin: 0 0 1mm !important;
    padding: 0 !important;
    justify-content: center !important;
    align-items: center !important;
  }

  #calendar .fc .fc-toolbar-chunk:first-child,
  #calendar .fc .fc-toolbar-chunk:last-child {
    display: none !important;
  }

  #calendar .fc .fc-toolbar-title {
    margin: 0 !important;
    font-size: 10pt !important;
    line-height: 1 !important;
    font-weight: 700 !important;
  }

  #calendar .fc .fc-view-harness,
  #calendar .fc .fc-view-harness-active {
    height: 176mm !important;
    min-height: 176mm !important;
    max-height: 176mm !important;
    overflow: hidden !important;
  }

  #calendar .fc .fc-scroller,
  #calendar .fc .fc-scroller-liquid-absolute {
    height: auto !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  #calendar .fc .fc-timegrid-slot,
  #calendar .fc .fc-timegrid-slot-lane,
  #calendar .fc .fc-timegrid-slots tr,
  #calendar .fc .fc-timegrid-cols tr {
    height: 5.6mm !important;
    min-height: 5.6mm !important;
  }

  #calendar .fc .fc-col-header-cell,
  #calendar .fc .fc-timegrid-axis {
    font-size: 6.5pt !important;
  }

  #calendar .fc .fc-col-header-cell-cushion {
    padding: 1mm 0.5mm !important;
    font-size: 6.5pt !important;
  }

  #calendar .fc .fc-timegrid-slot-label,
  #calendar .fc .fc-timegrid-axis-cushion {
    font-size: 6pt !important;
  }

  #calendar .fc .fc-timegrid-event,
  #calendar .fc .fc-event {
    max-width: 100% !important;
    border-radius: 1mm !important;
    font-size: 5.5pt !important;
    line-height: 1 !important;
    overflow: hidden !important;
  }

  #calendar .fc .fc-event-main,
  #calendar .fc .fc-event-main-frame {
    min-height: 0 !important;
    padding: 0.35mm !important;
    overflow: hidden !important;
  }

  #calendar .fc .fc-event-title,
  #calendar .fc .fc-event-time {
    font-size: 5.5pt !important;
    line-height: 1 !important;
    overflow-wrap: anywhere !important;
  }

  #calendar .fc .fc-bg-event,
  #calendar .fc .closed-time-background {
    opacity: 1 !important;
    background: #bfbfbf !important;
  }

  #calendar .fc .closed-time-label {
    color: #111 !important;
    font-size: 5.5pt !important;
    line-height: 1 !important;
  }

  #calendar .fc .fc-timegrid-now-indicator-container,
  #calendar .fc .fc-now-indicator {
    display: none !important;
  }

  /* Visningssidans egen kompakta veckotabell. */
  .schedule-toolbar {
    display: flex !important;
    width: 100% !important;
    height: 7mm !important;
    margin: 0 0 1mm !important;
    padding: 0 !important;
    justify-content: center !important;
    align-items: center !important;
  }

  .schedule-toolbar .nav-buttons,
  .schedule-toolbar .view-buttons {
    display: none !important;
  }

  #weekTitle {
    display: block !important;
    font-size: 10pt !important;
    line-height: 1 !important;
  }

  .schedule {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    grid-template-columns: 10mm repeat(7, minmax(0, 1fr)) !important;
    grid-template-rows: 7mm auto !important;
  }

  .time-axis,
  .day-column {
    height: 146mm !important;
    min-height: 146mm !important;
    max-height: 146mm !important;
  }

  .time-head,
  .day-head {
    font-size: 6.5pt !important;
    padding: 1mm 0.3mm !important;
  }

  .hour-label {
    width: 9.7mm !important;
    font-size: 6pt !important;
  }

  .booking-block {
    padding: 0.4mm 0.6mm !important;
    border-radius: 0.8mm !important;
    font-size: 5.5pt !important;
    line-height: 1 !important;
  }

  .booking-time {
    font-size: 5.5pt !important;
  }

  .booking-title {
    font-size: 5.5pt !important;
  }

  .booking-meta {
    font-size: 5pt !important;
  }

  .closed-block {
    background: #bfbfbf !important;
    color: #111 !important;
    font-size: 5.5pt !important;
    line-height: 1 !important;
  }

  .closed-block.closed-compact {
    font-size: 5pt !important;
  }

  .schedule-legend {
    display: none !important;
  }
}

/* Kontohantering för huvudadministratören */
.account-page { max-width: 1200px; }
.account-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:18px 0; }
.account-list { margin-top:18px; }
.account-table-wrap { width:100%; overflow-x:auto; }
.account-table { width:100%; border-collapse:collapse; font-size:13px; }
.account-table th,.account-table td { padding:10px 8px; border-bottom:1px solid #e5eaf1; text-align:left; vertical-align:top; }
.account-table th { color:#526176; background:#f8fafc; }
.account-actions { display:flex; flex-wrap:wrap; align-items:flex-end; gap:8px; }
.inline-account-form { display:flex; flex-wrap:wrap; align-items:flex-end; gap:7px; }
.inline-account-form .compact-label { margin:0; min-width:190px; font-size:11px; }
.inline-account-form .compact-label input { padding:6px; font-size:12px; }
.inline-account-form .active-check { display:flex; align-items:center; gap:5px; margin:0; white-space:nowrap; }
.inline-account-form .active-check input { width:auto; margin:0; }
.small-note { color:#64748b; font-size:11px; }
.one-time-secret { margin:16px 0; padding:16px; border:1px solid #b9d2f4; background:#eff6ff; border-radius:10px; }
.one-time-secret h2 { margin:0 0 8px; font-size:17px; }
.one-time-secret p { margin:6px 0; }
.recovery-code { padding:12px; background:#fff; border:1px dashed #64748b; border-radius:7px; font:700 20px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:1px; overflow-wrap:anywhere; }
@media(max-width:800px){.account-grid{grid-template-columns:1fr}.account-table{min-width:760px}.topbar nav{flex-wrap:wrap;justify-content:flex-end}}
