/* Boknavet ovanpå Tabler. Bara det Tabler inte har, plus typsnitt och vår gröna färg. */

@font-face {
  font-family: 'Inter Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/static/fonts/inter-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Inter Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/static/fonts/inter-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root, [data-bs-theme] {
  --tblr-font-sans-serif: 'Inter Variable', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --tblr-primary: #2f5d50;
  --tblr-primary-rgb: 47, 93, 80;
  --tblr-primary-fg: #fff;
  --tblr-primary-darken: #244a3f;
  --tblr-primary-lt-rgb: 234, 239, 237;
  --tblr-link-color: #2f5d50;
  --tblr-link-color-rgb: 47, 93, 80;
  --tblr-link-hover-color: #1e3d34;
  --tblr-link-hover-color-rgb: 30, 61, 52;
}
body { font-feature-settings: "cv03", "cv04", "cv11"; }

/* Sidomenyn i mörkgrönt */
.sidebar-brand {
  --tblr-navbar-bg: #1d3a32;
  --tblr-navbar-border-color: #1d3a32;
  background: #1d3a32 !important;
}
.sidebar-brand .nav-item.active .nav-link,
.sidebar-brand .nav-link:hover { background: rgba(255, 255, 255, .08); border-radius: var(--tblr-border-radius); }
.sidebar-brand .nav-link { margin: 1px .5rem; }
.sidebar-subtitle { color: rgba(255, 255, 255, .55); font-size: .8rem; padding: 0 1rem .5rem; text-transform: uppercase; letter-spacing: .04em; }
.brand-link { display: inline-flex; align-items: center; gap: .5rem; color: inherit; text-decoration: none; font-weight: 700; }
.brand-icon { width: 1.6rem; height: 1.6rem; }
.auth-page { background: linear-gradient(180deg, #eef3f1 0%, var(--tblr-body-bg) 60%); }

/* Mörka (fyllda) badges får vit text i stället för Tablers grå standardfärg */
.badge[class*="bg-"]:not([class*="-lt"]):not(.bg-light):not(.bg-white):not(.bg-transparent):not(.bg-yellow) {
  --tblr-badge-color: #fff;
  color: #fff;
}

.qr svg { width: 200px; height: 200px; background: #fff; padding: 4px; border-radius: 4px; }
.secret { font-family: var(--tblr-font-monospace); font-size: 1.05rem; letter-spacing: .05em; }
.copy-link { font-family: var(--tblr-font-monospace); word-break: break-all; }
.krav-text { max-width: 48rem; }
.tree-indent-1 { padding-left: 1.5rem !important; }
.tree-indent-2 { padding-left: 3rem !important; }
.tree-indent-3 { padding-left: 4.5rem !important; }
.tree-indent-4 { padding-left: 6rem !important; }
.tree-indent-5 { padding-left: 7.5rem !important; }
.row-support > td { background: var(--tblr-red-lt) !important; }
.white-space-pre { white-space: pre-line; }

/* Sidan är vit. Kort (formulär, uppgifter) har en tunn ram utan skugga. */
:root, [data-bs-theme] { --tblr-body-bg: #ffffff; }
.card {
  --tblr-card-border-color: #e6e9e8;
  --tblr-card-box-shadow: none;
  --tblr-card-cap-bg: transparent;
}
.card-footer { background: transparent; }
.page-header { margin-bottom: .5rem; }

/* Tabeller ligger direkt på sidan, inte i en box: kort som innehåller en tabell blir osynliga */
.card:has(> .table-responsive > .card-table),
.card:has(> .card-table) {
  background: transparent;
  border: 0;
  box-shadow: none;
}
.card:has(> .table-responsive > .card-table) > .card-header,
.card:has(> .card-table) > .card-header {
  padding: 0 0 .5rem;
  border: 0;
  min-height: 0;
}
.card:has(> .table-responsive > .card-table) > .card-header .card-title { font-size: 1rem; }
.card:has(> .table-responsive > .card-table) > .card-footer { padding-left: 0; padding-right: 0; border: 0; }
.card:has(> .table-responsive > .card-table) > .empty,
.card:has(> .table-responsive > .card-table) > .card-body { padding-left: 0; padding-right: 0; }
.table thead th {
  background: transparent;
  padding-top: .5rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid #dfe3e1;
}
.card-table > :not(caption) > * > * { padding-top: .8rem; padding-bottom: .8rem; }
.card-table tr > :first-child { padding-left: 1rem; }
.card-table tr > :last-child { padding-right: 1rem; }
/* Själva tabellen har en tunn ram med Tablers vanliga rundning */
.card:has(> .table-responsive > .card-table) > .table-responsive,
.card > .card-table {
  border: 1px solid #e6e9e8;
  border-radius: var(--tblr-border-radius-lg);
  background: #fff;
}
.card-table tbody td { border-bottom-color: #eef0ef; }
.table tbody tr:hover > td { background: #f6f8f7; }

/* Fasetter i katalogsökningen: täta rader */
.facet-list { margin-left: -.5rem; margin-right: -.5rem; }
.facet-list .list-group-item { padding: .3rem .5rem; border: 0; border-radius: var(--tblr-border-radius); }
.facet-list .list-group-item.active { background: var(--tblr-primary-lt); color: var(--tblr-primary); font-weight: 600; }
.d-contents { display: contents; }
.marc-editor { font-family: var(--tblr-font-monospace), ui-monospace, Menlo, Consolas, monospace !important; font-size: .82rem; line-height: 1.5; white-space: pre; }

/* Kvitto: smal remsa som passar kvittoskrivare */
.receipt { background: #fff; }
.receipt-paper { max-width: 80mm; margin: 1rem auto; font-size: .85rem; }
@media print { .receipt-paper { margin: 0; } }

/* ---------- Låntagarwebben ---------- */
.skip-link { position: absolute; left: .5rem; top: -3rem; z-index: 2000; padding: .5rem 1rem; background: #fff; color: #1d3a32; border: 2px solid #1d3a32; border-radius: var(--tblr-border-radius); font-weight: 600; }
.skip-link:focus { top: .5rem; }
.public-site main:focus { outline: none; }
.public-navbar { background: #1d3a32 !important; --tblr-navbar-bg: #1d3a32; --tblr-navbar-border-color: #1d3a32; }
.public-navbar .nav-link { color: rgba(255, 255, 255, .85); }
.public-navbar .nav-link:hover, .public-navbar .nav-item.active .nav-link, .public-navbar .nav-link.active { color: #fff; }
.public-navbar .nav-item.active .nav-link { text-decoration: underline; text-underline-offset: .4rem; text-decoration-thickness: 2px; }
.public-navbar .brand-link { color: #fff; }
.public-hero { background: linear-gradient(180deg, #eef3f1 0%, #f7faf9 100%); border-radius: var(--tblr-border-radius-lg); padding: 2.5rem 2rem; }
.public-footer { border-top: 1px solid #e6e9e8; padding: 1.5rem 0; margin-top: 3rem; }
.public-site :focus-visible { outline: 3px solid #1f6feb; outline-offset: 2px; }
.public-site a:not(.btn):not(.nav-link):not(.badge):not(.card):not(.list-group-item):not(.page-link):not(.brand-link) { text-decoration: underline; text-underline-offset: .15em; }
.cover-placeholder { display: flex; align-items: center; justify-content: center; background: #eef3f1; color: #2f5d50; aspect-ratio: 2 / 3; max-height: 11rem; border-radius: var(--tblr-border-radius) var(--tblr-border-radius) 0 0; }
.cover-placeholder .icon { width: 3rem; height: 3rem; stroke-width: 1.25; }
.cover-sm { width: 3.5rem; flex: 0 0 3.5rem; border-radius: var(--tblr-border-radius); }
.cover-sm .icon { width: 1.75rem; height: 1.75rem; }
.title-card .card-title { line-height: 1.3; }
.search-hit { display: flex; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid #eef0ef; }
.search-hit:first-child { padding-top: 0; }
.title-facts dt { font-weight: 600; }
.item-list li + li { border-top: 1px solid #eef0ef; }
.prose { max-width: 46rem; }
.prose h2 { margin-top: 1.75rem; }
/* Tablers gråa hjälptext har för låg kontrast mot vitt för WCAG AA i liten storlek */
.public-site .text-secondary { color: #5b6670 !important; }
/* Grönt med tillräcklig kontrast (AA) på vit och ljusgrön botten */
.public-site .text-success { color: #1b6e30 !important; }
.public-site .badge.bg-green-lt { color: #1b6e30 !important; }
.public-site .badge.bg-secondary-lt { color: #47525c !important; }
.article-item { padding: .9rem 0; border-bottom: 1px solid #eef0ef; }
.article-item:first-child { padding-top: 0; }
.prose .lead { font-size: 1.15rem; }
.prose ul { padding-left: 1.25rem; }
/* Meddelanden och fel med tillräcklig kontrast (AA) */
.public-site .alert-danger, .public-site .invalid-feedback, .public-site .text-danger { --tblr-alert-color: #a61e1e; color: #a61e1e !important; }
.public-site .alert-success { --tblr-alert-color: #1b6e30; color: #1b6e30; }
.public-site .alert-warning { --tblr-alert-color: #7a4500; color: #7a4500; }
.public-site .alert-info { --tblr-alert-color: #0b4f8a; color: #0b4f8a; }
.public-site .alert a, .public-site .alert .alert-link { color: inherit; }
.public-site .badge.bg-red-lt { color: #a61e1e !important; }
.public-site .badge.bg-yellow-lt { color: #6b4400 !important; }
.public-site .alert ul { min-width: 0; }
.public-site .alert-link { white-space: normal; overflow-wrap: anywhere; }

/* API-dokumentationen: innehållsförteckningen följer med när man rullar */
.api-toc { top: 1rem; max-height: calc(100vh - 2rem); overflow-y: auto; }

/* Omslag: bilden ligger ovanpå platshållaren och tas bort av app.js om den saknas */
.cover-placeholder { position: relative; overflow: hidden; }
.cover-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #eef3f1; }
.cover-record { width: 6rem; border-radius: var(--tblr-border-radius); }
.cover-title-img { width: 9rem; border-radius: var(--tblr-border-radius); }

/* Små sifferfält i tabeller, till exempel antal och pris på beställningsrader */
.input-narrow { min-width: 5rem; }

/* Utskrift av rapporter: bara innehållet */
@media print {
  .navbar-vertical, header.navbar, .page-header .btn-list, .alert-dismissible, footer { display: none !important; }
  .page-wrapper { margin: 0 !important; }
  .card { box-shadow: none; }
}

/* Kvitto: smalt som en kvittoremsa */
.receipt { max-width: 26rem; }

/* Datorbokning: schemat i personalvyn */
.computer-grid td { min-width: 12rem; }

/* Automatläget: stor text och stora knappar */
.kiosk .kiosk-title { font-size: 2.25rem; }
.kiosk .kiosk-input { font-size: 1.75rem; padding: .75rem 1rem; }
.kiosk .kiosk-button { font-size: 1.5rem; padding: 1rem 1.5rem; }
.kiosk .kiosk-list li { font-size: 1.35rem; padding: .35rem 0; }
.kiosk .kiosk-brand { white-space: normal; min-width: 0; }

/* Webbappen: lånekortet och kameran för skanning */
.library-card { border: 2px solid #2f5d50; }
.library-card-code svg { width: 100%; height: auto; max-height: 9rem; }
.scan-overlay { position: fixed; inset: 0; z-index: 2000; background: #000; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; }
.scan-overlay[hidden] { display: none; }
.scan-overlay video { width: 100%; max-height: 80vh; object-fit: cover; }

/* Hjälpen: egen layout med grönt sidhuvud och sökfält överst */
.help .page { min-height: 100vh; }
.help-skip { position: absolute; top: .5rem; left: .5rem; z-index: 1050; }
.help-topbar { background: #1d3a32 !important; color: #fff; min-height: 3.5rem; }
.help-topbar .brand-link, .help-topbar .nav-link { color: #fff; }
.help-topbar .nav-link { opacity: .8; }
.help-topbar .nav-item.active .nav-link, .help-topbar .nav-link:hover { opacity: 1; text-decoration: underline; text-underline-offset: .3em; }
.help-hero { background: linear-gradient(180deg, #2f5d50 0%, #3c7465 100%); padding: 1.5rem 0; }
.help-hero-title { color: #fff; font-size: 1.75rem; font-weight: 700; margin: .5rem 0 1rem; }
.help-search { position: relative; max-width: 44rem; }
.help-search .form-control-lg { border: 0; box-shadow: 0 2px 8px rgba(0, 0, 0, .15); }
.help-suggest { position: absolute; top: calc(100% + .25rem); left: 0; right: 0; z-index: 1040; padding: .25rem 0; box-shadow: 0 8px 24px rgba(0, 0, 0, .18); }
.help-suggest a { display: block; padding: .45rem .9rem; color: inherit; text-decoration: none; }
.help-suggest a:hover, .help-suggest a[aria-selected="true"] { background: var(--tblr-primary-lt, #eaefed); }
.help-suggest .subheader { padding: .4rem .9rem .1rem; }
.help-suggest .help-suggest-all { border-top: 1px solid var(--tblr-border-color); margin-top: .25rem; font-weight: 600; }
.help mark { background: #fff1b8; padding: 0 .05em; border-radius: 2px; }
.help-nav { position: sticky; top: 1rem; }
.help-nav-group { margin-bottom: .25rem; }
.help-nav-title { display: flex; align-items: center; gap: .5rem; padding: .35rem .5rem; border-radius: var(--tblr-border-radius); color: var(--tblr-body-color); font-weight: 500; text-decoration: none; }
.help-nav-title:hover, .help-nav-title.active { background: var(--tblr-primary-lt, #eaefed); text-decoration: none; }
.help-nav ul { margin: .25rem 0 .5rem 2.1rem; }
.help-nav ul a { display: block; padding: .2rem 0; color: var(--tblr-secondary); }
.help-nav ul a.active { color: var(--tblr-primary); font-weight: 600; }
.help-article-list li { padding: .15rem 0; }
.help-toc { position: sticky; top: 1rem; font-size: .875rem; }
.help-toc li { padding: .15rem 0; }
.help-content { font-size: .95rem; line-height: 1.65; max-width: 46rem; }
.help-content h2 { margin-top: 2rem; padding-top: .5rem; scroll-margin-top: 1rem; font-size: 1.25rem; }
.help-content h3 { margin-top: 1.5rem; scroll-margin-top: 1rem; font-size: 1.05rem; }
.help-content h2:target, .help-content h3:target { background: #fff6d6; border-radius: 4px; }
.help-content ol, .help-content ul { padding-left: 1.4rem; }
.help-content li { margin-bottom: .25rem; }
.help-content code { font-size: .85em; }
.help-callout { margin: 1rem 0; }
.help-table { border: 1px solid var(--tblr-border-color); border-radius: var(--tblr-border-radius); }
.help-snippet { font-size: .875rem; }
.help-index { columns: 3 16rem; column-gap: 2rem; }
.help-index-letter { break-inside: avoid; margin-bottom: 1.25rem; }
.help-index-letter h2 { font-size: 1.1rem; color: var(--tblr-primary); border-bottom: 1px solid var(--tblr-border-color); padding-bottom: .25rem; scroll-margin-top: 1rem; }
.help-index li { padding: .15rem 0; }
.help-letters { display: flex; flex-wrap: wrap; gap: .25rem; }
.help-group-card .avatar .icon, .help-nav-title .icon { width: 1.1rem; height: 1.1rem; }
/* Hjälplänken i personalvyns sidhuvud */
.help-link { display: inline-flex; align-items: center; gap: .35rem; }
.help-article h1 { font-size: 1.75rem; font-weight: 700; }
.help-article .alert > div:last-child { color: var(--tblr-body-color); }
.help-content .table-responsive { margin-bottom: 1rem; }
/* Kontrast och understrukna länkar i hjälpen (WCAG 1.4.3 och 1.4.1) */
.help .badge.bg-orange-lt { color: #7a3500 !important; }
.help .badge.bg-green-lt { color: #1d5a2c !important; }
.help .badge.bg-secondary-lt { color: #3d4652 !important; }
.help-content a, .help-article-list a, .help-index a, .help-list-inline a { text-decoration: underline; text-underline-offset: .15em; }

/* Grupper i sidomenyn */
.sidebar-brand .dropdown-menu .dropdown-item { margin: 1px .5rem; padding-top: .35rem; padding-bottom: .35rem; color: rgba(255, 255, 255, .78); }
.sidebar-brand .dropdown-menu .dropdown-item:hover, .sidebar-brand .dropdown-menu .dropdown-item.active { background: rgba(255, 255, 255, .08); color: #fff; }
.sidebar-brand .dropdown-menu .dropdown-header { color: rgba(255, 255, 255, .7); font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; padding: .6rem 1rem .2rem calc(var(--tblr-sidebar-nav-padding-x, .75rem) + 2.5rem); }
.sidebar-brand .nav-group.active > .nav-link { background: transparent; }

/* Startsidan: snabbval */
.quick-tile .card-body { padding: 1.5rem; }
.quick-tile-icon { display: inline-flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: #2f5d50; color: #fff; flex: none; }
.quick-tile-icon .icon { width: 1.75rem; height: 1.75rem; }
.quick-tile-label { font-size: 1.25rem; font-weight: 700; color: var(--tblr-body-color); }
.quick-tile:hover .quick-tile-icon { background: #244a3f; }

/* Mobilskannern (Boknavet Skanner) */
.scanner-qr { display: flex; justify-content: center; min-height: 220px; align-items: center; margin: 1rem 0 .5rem; }
.scanner-qr svg { width: 220px; height: 220px; background: #fff; padding: 6px; border-radius: 6px; border: 1px solid var(--tblr-border-color); }
.scanner-code { font-family: var(--tblr-font-monospace); font-size: 1.75rem; font-weight: 700; letter-spacing: .15em; margin: .25rem 0; }
.scanner-dot { display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; background: #2fb344; margin-left: .35rem; vertical-align: middle; }
.scanner-dot[hidden] { display: none; }
.scanner-toast { position: fixed; right: 1rem; bottom: 1rem; z-index: 1090; max-width: 22rem; padding: .75rem 1rem; border-radius: var(--tblr-border-radius); background: #1d3a32; color: #fff; box-shadow: 0 6px 20px rgba(0, 0, 0, .2); }
.scanner-toast[data-kind="warn"] { background: #7a3500; }
.scanner-toast[hidden] { display: none; }

/* Webbens utseende i admin */
.theme-swatch { border-radius: 8px; }
.theme-preview-logotyp { max-height: 4rem; max-width: 100%; background: #2f5d50; padding: .5rem; border-radius: var(--tblr-border-radius); }
.theme-preview-startbild { max-width: 100%; border-radius: var(--tblr-border-radius); }

/* ===== Låntagarwebbens mall (fas 9) =====
   Färger och typsnitt kommer från kommunens tema (/tema.css, src/web/theme.js) som CSS-variabler. Kontrasten är
   kontrollerad när färgerna sparades, och textfärgen på färgade ytor (…-text) är vald för bästa kontrast. */
.public-site { font-family: var(--font-body); font-size: .975rem; background: #fff; color: #16231f; }
.public-site h1, .public-site h2, .public-site h3, .public-site .page-title, .public-site .brand-link { font-family: var(--font-head); }
.public-site h2 { letter-spacing: -.01em; }
.public-site :focus-visible { outline: 3px solid var(--brand-highlight); outline-offset: 2px; }
.public-site .public-navbar { background: var(--brand-primary) !important; --tblr-navbar-bg: var(--brand-primary); --tblr-navbar-border-color: var(--brand-primary); min-height: 4rem; }
.public-site .public-navbar .nav-link, .public-site .public-navbar .brand-link { color: var(--brand-primary-text); }
.public-site .public-navbar .nav-link:hover { text-decoration: underline; text-underline-offset: .45rem; }
.public-site .public-navbar .nav-item.active .nav-link { text-decoration: underline; text-decoration-color: var(--brand-highlight); text-underline-offset: .45rem; text-decoration-thickness: 3px; }
.public-site .public-navbar .brand-link { font-size: 1.15rem; }
/* Smal skärm (WCAG 1.4.10): namnet bryts hellre än att sidhuvudet rullar i sidled */
.public-navbar .brand-link { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.public-navbar > .container-xl { flex-wrap: wrap; row-gap: .25rem; }
.brand-logo { max-height: 2.75rem; max-width: 14rem; display: block; }
.public-site .btn-primary { background: var(--brand-primary); border-color: var(--brand-primary); color: var(--brand-primary-text); }
.public-site .btn-primary:hover { background: var(--brand-primary-dark); border-color: var(--brand-primary-dark); }
.page-body-wide { margin-top: 0 !important; padding: 0 !important; }

/* Startsidan: stor rubrik och sökning */
.public-site .public-hero { background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-dark) 100%); color: var(--brand-primary-text); border-radius: 0; padding: clamp(3rem, 8vw, 6rem) 0; }
.public-site .public-hero-image { background-size: cover; background-position: center; color: #fff; }
.hero-title { font-size: clamp(2rem, 5.2vw, 3.6rem); font-weight: 700; line-height: 1.1; margin: 0 0 1rem; max-width: 22ch; color: inherit; }
.hero-intro { font-size: 1.15rem; max-width: 46rem; margin-bottom: 1.75rem; opacity: .95; }
.hero-search { display: flex; gap: .5rem; max-width: 46rem; background: #fff; padding: .4rem; border-radius: 999px; box-shadow: 0 10px 30px rgba(0, 0, 0, .18); }
.hero-search .form-control { border: 0; border-radius: 999px; padding-left: 1.25rem; font-size: 1.1rem; box-shadow: none; }
.hero-search .form-control:focus { box-shadow: none; }
.hero-search:focus-within { outline: 3px solid var(--brand-highlight); outline-offset: 3px; }
.hero-search-btn { border-radius: 999px; background: var(--brand-highlight); color: var(--brand-highlight-text); border: 0; font-weight: 700; padding-inline: 1.5rem; display: inline-flex; align-items: center; gap: .4rem; }
.hero-search-btn:hover { filter: brightness(.95); }
.hero-advanced { margin: .75rem 0 0 1.25rem; }
.hero-advanced a { color: inherit; text-decoration: underline; text-underline-offset: .2em; font-weight: 600; }

/* Moduler */
.home-section { padding: clamp(2.25rem, 5vw, 3.5rem) 0; }
.home-section-tint { background: var(--brand-secondary-soft); }
.section-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; margin-bottom: 1.25rem; }
.section-head h2 { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 700; margin: 0; }
.public-site .section-more { display: inline-flex; align-items: center; gap: .3rem; font-weight: 600; color: var(--brand-primary-dark); }
.home-section ul { list-style: none; padding: 0; margin: 0; }

/* Bokhylla: karusell med omslag */
.shelf { position: relative; }
.shelf-list { display: flex; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: .25rem .25rem 1rem; scrollbar-width: thin; }
.shelf-item { flex: 0 0 9.5rem; scroll-snap-align: start; }
@media (max-width: 575px) { .shelf-item { flex-basis: 7.5rem; } }
.public-site .shelf-link { display: block; color: inherit; text-decoration: none !important; }
.shelf-link .shelf-cover { border-radius: 6px; box-shadow: 0 6px 16px rgba(22, 35, 31, .18); transition: transform .15s ease, box-shadow .15s ease; }
.public-site .cover-placeholder.shelf-cover { max-height: none; width: 100%; aspect-ratio: 2 / 3; background: var(--brand-primary-soft); color: var(--brand-primary); }
.shelf-link:hover .shelf-cover, .shelf-link:focus-visible .shelf-cover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(22, 35, 31, .25); }
/* Hela titeln och upphovet syns, också med större textavstånd (WCAG 1.4.12) */
.shelf-title { display: block; overflow-wrap: anywhere; font-weight: 700; margin-top: .65rem; line-height: 1.3; }
.shelf-author { display: block; color: #4b5a55; font-size: .875rem; margin-top: .15rem; overflow-wrap: anywhere; }
.shelf-nav { position: absolute; top: 30%; z-index: 2; width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 0; background: #fff; color: #16231f; box-shadow: 0 4px 14px rgba(0, 0, 0, .2); display: grid; place-items: center; }
.shelf-nav:disabled { opacity: 0; pointer-events: none; }
.shelf-prev { left: 0; }
.shelf-next { right: 0; }
@media (hover: none) { .shelf-nav { display: none !important; } }

/* Boktips, evenemang, nyheter och öppettider som kort */
.tip-grid, .event-grid, .news-grid, .hours-grid { display: grid; gap: 1.25rem; }
.tip-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); }
.tip-card { display: flex; gap: 1rem; background: #fff; border-radius: 12px; padding: 1rem; box-shadow: 0 2px 10px rgba(22, 35, 31, .08); }
.tip-cover { flex: 0 0 5.5rem; }
.tip-card h3 { font-size: 1.15rem; margin: 0 0 .35rem; }
.tip-book { font-weight: 600; margin-bottom: .35rem; }
.tip-summary { margin: 0; color: #36443f; }
.event-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); }
.event-card { display: flex; gap: 1rem; align-items: flex-start; }
.event-date { flex: 0 0 4rem; display: flex; flex-direction: column; align-items: center; background: var(--brand-secondary); color: var(--brand-secondary-text); border-radius: 12px; padding: .5rem 0; line-height: 1.1; }
.event-day { font-family: var(--font-head); font-size: 1.6rem; font-weight: 700; }
.event-month { font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; }
.event-card h3 { font-size: 1.1rem; margin: .1rem 0 .3rem; }
.event-when { margin: 0; color: #4b5a55; font-size: .9rem; }
.news-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); }
.news-card { border-top: 4px solid var(--brand-highlight); padding-top: .9rem; }
.news-card h3 { font-size: 1.15rem; margin: 0 0 .4rem; }
.news-date { color: #4b5a55; font-size: .85rem; margin-bottom: .25rem; }
.hours-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }
.hours-card { background: #fff; border-radius: 12px; padding: 1rem 1.25rem; display: flex; flex-direction: column; gap: .2rem; }
.hours-name { font-weight: 600; }
.hours-time { font-family: var(--font-head); font-size: 1.35rem; color: var(--brand-primary-dark); }
.hours-reason { font-size: .85rem; color: #4b5a55; }

/* Sidfot */
.public-site .public-footer { background: var(--brand-primary-dark); color: #fff; padding: 2.75rem 0 2rem; margin-top: 0; border: 0; }
.footer-grid { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.footer-name { font-family: var(--font-head); font-size: 1.25rem; font-weight: 700; margin-bottom: .25rem; }
.footer-brand p { margin-bottom: .25rem; }
.footer-heading { font-size: .8rem !important; text-transform: uppercase; letter-spacing: .08em; margin-bottom: .75rem; color: #fff; opacity: .85; }
.footer-units li, .footer-links li { margin-bottom: .6rem; }
.public-site .public-footer a { color: #fff; }
.public-site main + .public-footer, .public-site .page-wrapper + .public-footer { margin-top: 0; }

/* Typografiskt omslag när bilden saknas: titel och författare på temats färger */
.shelf-item { min-width: 0; width: 9.5rem; }
@media (max-width: 575px) { .shelf-item { width: 7.5rem; } }
.book-art { position: relative; overflow: hidden; aspect-ratio: 2 / 3; border-radius: 6px; padding: .85rem .75rem; display: flex; flex-direction: column; justify-content: space-between;
  box-shadow: 0 6px 16px rgba(22, 35, 31, .18); transition: transform .15s ease, box-shadow .15s ease; }
.book-art::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: rgba(0, 0, 0, .18); }
.book-art-title { font-family: var(--font-head); font-weight: 700; font-size: 1rem; line-height: 1.15; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.book-art-author { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; opacity: .9; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.book-art .cover-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.book-art-0 { background: var(--brand-primary); color: var(--brand-primary-text); }
.book-art-1 { background: var(--brand-secondary); color: var(--brand-secondary-text); }
.book-art-2 { background: var(--brand-highlight); color: var(--brand-highlight-text); }
.book-art-3 { background: var(--brand-primary-dark); color: #fff; }
.book-art-4 { background: var(--brand-primary-soft); color: var(--brand-primary-dark); }
.shelf-link:hover .book-art, .shelf-link:focus-visible .book-art { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(22, 35, 31, .25); }
.tip-cover .book-art { padding: .5rem; }
.tip-cover .book-art-title { font-size: .72rem; }
.tip-cover .book-art-author { display: none; }
.library-admin-img { aspect-ratio: 16 / 9; object-fit: cover; }

/* Driftmeddelanden överst på låntagarwebben */
.site-notices { background: var(--brand-secondary-soft); border-bottom: 1px solid rgba(0, 0, 0, .06); }
.site-notice { display: flex; gap: .6rem; align-items: flex-start; margin: 0; padding: .65rem 0; font-weight: 500; }
.site-notice + .site-notice { border-top: 1px solid rgba(0, 0, 0, .06); }
.site-notice .icon { flex: none; margin-top: .15rem; }
.site-notice-varning .icon { color: #8a4b00; }

/* Bibliotek och öppettider */
.library-list { display: grid; gap: 2rem; }
.branch-card { background: #fff; border-radius: 16px; box-shadow: 0 2px 14px rgba(22, 35, 31, .08); overflow: hidden; display: grid; grid-template-columns: 1fr; }
@media (min-width: 992px) { .branch-card:has(.library-img) { grid-template-columns: 22rem 1fr; } }
.library-img { width: 100%; height: 100%; min-height: 14rem; max-height: 26rem; object-fit: cover; }
.library-body { padding: clamp(1.25rem, 3vw, 2rem); }
.library-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; margin-bottom: .75rem; }
.library-head h2 { font-size: clamp(1.4rem, 2.6vw, 1.85rem); margin: 0; }
.library-desc { max-width: 52rem; margin-bottom: 1.25rem; }
.library-grid { display: grid; gap: 1.5rem 2.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.library-subhead { font-size: .8rem !important; text-transform: uppercase; letter-spacing: .08em; color: #4b5a55; margin-bottom: .6rem; font-family: var(--font-body) !important; }
.hours-table { margin-bottom: .5rem; }
.hours-table tr.is-today th, .hours-table tr.is-today td { font-weight: 700; background: var(--brand-primary-soft); }
.kind-legend, .deviation-list, .facility-list { list-style: none; padding: 0; margin: 0; }
.kind-legend { font-size: .85rem; color: #4b5a55; }
.deviation-list li { margin-bottom: .3rem; }
.facility-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: .5rem 1rem; }
.facility-list li { display: flex; align-items: center; gap: .5rem; }
.facility-list .icon { color: var(--brand-primary); }
.open-status { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; font-size: .9rem; color: #4b5a55; }
.open-status-open { color: #1b6e30; }
.open-dot { width: .6rem; height: .6rem; border-radius: 50%; background: #8a958f; flex: none; }
.open-status-open .open-dot { background: #2fb344; }

/* Sidrubriker på låntagarwebben i temats typsnitt */
.public-site .page-header .page-title { font-size: clamp(1.75rem, 3.5vw, 2.4rem); font-weight: 700; }

/* Tjänster och digitala biblioteket */
.service-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); list-style: none; padding: 0; margin: 0; }
.public-site .service-link { display: flex; gap: .9rem; align-items: flex-start; height: 100%; background: #fff; border-radius: 12px; padding: 1rem; box-shadow: 0 2px 10px rgba(22, 35, 31, .08); color: inherit; text-decoration: none !important; transition: transform .15s ease, box-shadow .15s ease; }
.service-link:hover, .service-link:focus-visible { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(22, 35, 31, .14); }
.service-icon { flex: none; width: 3rem; height: 3rem; border-radius: 12px; display: grid; place-items: center; background: var(--brand-primary-soft); color: var(--brand-primary-dark); }
.service-icon .icon { width: 1.6rem; height: 1.6rem; }
.service-img { flex: none; width: 3.5rem; height: 3.5rem; border-radius: 10px; object-fit: cover; }
.service-body { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.service-title { font-weight: 700; font-family: var(--font-head); font-size: 1.05rem; text-decoration: underline; text-underline-offset: .15em; }
.service-ext { width: .9rem; height: .9rem; margin-left: .3rem; vertical-align: -.1em; }
.service-summary { color: #36443f; font-size: .925rem; }
.service-meta { color: #4b5a55; font-size: .8rem; }

/* Barn */
.public-site .kids-hero { background: var(--brand-secondary); color: var(--brand-secondary-text); }

/* Listor med nyheter, evenemang och boktips som kort */
.card-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); list-style: none; padding: 0; margin: 0 0 1.5rem; }
.content-card { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 2px 12px rgba(22, 35, 31, .08); display: flex; flex-direction: column; }
.content-card-img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.content-card-cover { padding: 1rem 1rem 0; width: 9rem; }
.content-card-body { padding: 1rem 1.15rem 1.25rem; }
.content-card-body h2 { font-size: 1.2rem; margin: 0 0 .35rem; }
.content-card-meta { color: #4b5a55; font-size: .875rem; margin-bottom: .5rem; }
.article-img { width: 100%; max-height: 26rem; object-fit: cover; border-radius: 14px; margin-bottom: 1.25rem; }
/* Bildens storlek i artikeln (krav 1325) */
.article-img-bred { max-height: 32rem; }
.article-img-mellan, .article-img-liten { float: right; max-height: none; object-fit: contain; margin: 0 0 1rem 1.25rem; }
.article-img-mellan { width: 45%; }
.article-img-liten { width: 28%; }
@media (max-width: 575.98px) { .article-img-mellan, .article-img-liten { float: none; width: 100%; margin-left: 0; } }
.event-facts { list-style: none; padding: 0; margin: 0 0 1rem; }
.event-facts li { display: flex; gap: .5rem; align-items: center; margin-bottom: .3rem; }

/* Boklistor (fas 9 steg 4): inledning under hyllans rubrik och listan i sin helhet som rutnät */
.section-intro { margin: -.75rem 0 1rem; max-width: 48rem; color: var(--tblr-secondary); }
.book-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr)); gap: 1.75rem 1.25rem; }
.book-grid > li { min-width: 0; }
@media (max-width: 575px) { .book-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Sidor ur regelverket (fas 9 steg 5): det viktigaste som rutor överst */
.fact-grid { list-style: none; padding: 0 !important; margin: 1.5rem 0 2rem; display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .75rem; }
.fact { background: var(--brand-primary-soft, #eaf0ee); border-radius: .75rem; padding: 1rem 1.25rem; display: flex; flex-direction: column; gap: .25rem; }
.fact-label { font-size: .875rem; font-weight: 500; }
.fact-value { font-family: var(--font-head); font-size: 1.5rem; line-height: 1.2; }
.rules-table th[scope="row"] { min-width: 10rem; }

/* Kontakta oss och personal på webben (fas 9 steg 7) */
.fact-value-sm { font-size: 1.125rem; word-break: break-all; }
.contact-unit { margin-top: 2.5rem; }
.contact-unit h2 { margin-bottom: .25rem; }
.person-grid { list-style: none; padding: 0; margin: 1.25rem 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1rem; }
.person-card { display: flex; gap: 1rem; align-items: flex-start; padding: 1.25rem; border-radius: .75rem; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }
.person-avatar { flex: 0 0 3rem; height: 3rem; border-radius: 50%; display: grid; place-items: center; font-weight: 700; background: var(--brand-secondary, #9c4a2f); color: var(--brand-secondary-text, #fff); }
.person-name { font-size: 1.05rem; margin: 0; }
.person-title { color: var(--tblr-secondary); margin: 0 0 .5rem; }
.person-pres { margin: 0 0 .5rem; }
.person-contact { margin: 0; overflow-wrap: anywhere; }

/* Långa svenska ord (Tillgänglighetsredogörelse) får brytas i rubriker på smala skärmar */
.public-site h1, .public-site h2, .public-site .page-title { overflow-wrap: break-word; hyphens: auto; }

/* Paus av en reservation på Mina sidor: knappen fäller ut ett datumfält */
.reservation-pause > summary { list-style: none; }
.reservation-pause > summary::-webkit-details-marker { display: none; }

/* Reservations- och transportlapp */
.slip-number { font-size: 2rem; font-weight: 700; margin: .25rem 0 .75rem; }

/* Brev och räkningar för utskrift: ett per sida */
.letters { background: #fff; }
.letter { max-width: 42rem; margin: 2rem auto; padding: 0 1rem; }
.letter-from { color: var(--tblr-secondary); }
.letter-to { margin: 2rem 0 2.5rem; min-height: 5rem; }
/* Stor och extra stor text i brev, och omslag på de lånade titlarna (krav 597, 1619) */
.letter-stor { font-size: 1.25rem; line-height: 1.6; }
.letter-stor h1 { font-size: 1.75rem; }
.letter-extra { font-size: 1.6rem; line-height: 1.75; max-width: 48rem; }
.letter-extra h1 { font-size: 2.2rem; }
.signature-pad { width: 100%; max-width: 600px; aspect-ratio: 3 / 1; height: auto; border: 1px solid var(--tblr-border-color, #ccc); border-radius: 4px; background: #fff; touch-action: none; }
.agreement-text { white-space: pre-wrap; max-height: 14rem; overflow-y: auto; padding: .5rem; border: 1px solid var(--tblr-border-color, #ddd); border-radius: 4px; }
.cms-visual { min-height: 14rem; overflow-y: auto; resize: vertical; }
.cms-visual h2 { font-size: 1.25rem; margin-top: .75rem; }
.cover-choice { width: 2rem; height: auto; border: 1px solid #ddd; }
.letter-covers { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.letter-covers li { width: 7rem; text-align: center; font-size: .85em; }
.letter-covers img { display: block; width: 100%; height: auto; margin-bottom: .25rem; border: 1px solid #ddd; }
@media print { .letter { margin: 0 auto; page-break-after: always; } .letter:last-of-type { page-break-after: auto; } }
.text-pre-wrap { white-space: pre-wrap; }
.library-card-qr svg { width: 12rem; height: 12rem; }
details > summary.btn { list-style: none; }
details > summary.btn::-webkit-details-marker { display: none; }
.sortable-th { cursor: pointer; user-select: none; }
.sortable-th::after { content: attr(data-sort-level); margin-left: .25rem; font-size: .7rem; }
.table-columns summary { cursor: pointer; }
.public-site .nav-pills .nav-link.active { background: var(--tblr-primary); color: var(--tblr-primary-fg, #fff); }
.public-site .bg-primary-lt { color: var(--tblr-primary-darken) !important; }

/* Katalogens sökningar: sparade och historik */
.search-menu { max-height: 70vh; overflow-y: auto; min-width: 18rem; max-width: min(28rem, 90vw); }
.search-menu .dropdown-item { white-space: normal; }
.media-badge .icon { width: 1rem; height: 1rem; margin-right: .25rem; vertical-align: -.15rem; }
.attachment-thumb { width: 3rem; height: 3rem; object-fit: cover; border-radius: 4px; }
.attachment-img { max-width: 100%; max-height: 24rem; border-radius: 4px; }

/* Lånekort att skriva ut (Skolbibliotek): kreditkortsstorlek, så många som får plats per sida */
.library-cards { display: grid; grid-template-columns: repeat(auto-fill, 85.6mm); gap: 4mm; }
.library-card { width: 85.6mm; height: 54mm; border: 1px dashed var(--tblr-border-color); border-radius: 3mm; padding: 4mm; display: flex; flex-direction: column; break-inside: avoid; background: #fff; color: #000; }
.library-card-head { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 2mm; }
.library-card-code { margin-top: auto; }
.library-card-code svg { width: 100%; height: auto; max-height: 22mm; }

/* Låsta fält (krav 1406): fält som inte går att ändra skiljer sig tydligt från redigerbara, med grå bakgrund, streckad ram
   och en markör som visar att de inte går att ändra. */
.form-control:disabled, .form-control[readonly], .form-select:disabled, textarea:disabled, textarea[readonly] {
  background-color: var(--tblr-bg-surface-secondary); border-style: dashed; color: var(--tblr-secondary); cursor: not-allowed;
}
.form-control[readonly]:focus { box-shadow: none; }

/* Personliga inställningar (krav 72): textstorlek och hög kontrast i personalvyn */
body.text-stor { font-size: 1rem; }
body.text-storre { font-size: 1.125rem; }
body.text-stor .form-control, body.text-stor .form-select, body.text-stor .btn { font-size: 1rem; }
body.text-storre .form-control, body.text-storre .form-select, body.text-storre .btn { font-size: 1.125rem; }
body.high-contrast { --tblr-body-color: #000; --tblr-secondary: #222; --tblr-border-color: #444; --tblr-muted: #222; }
body.high-contrast .text-secondary, body.high-contrast .form-hint, body.high-contrast .text-muted { color: #222 !important; }
body.high-contrast a:not(.btn) { color: #003d99; text-decoration: underline; }
body.high-contrast .form-control, body.high-contrast .form-select, body.high-contrast .card { border-color: #444; }
body.high-contrast :focus-visible { outline: 3px solid #000 !important; outline-offset: 2px; }

/* Tillgänglighet i personalvyn (krav 67, 69, 75, 1002, WCAG 2.2 AA) */
/* Granskningen 2026-10-10 (WCAG 1.4.11): fältens ramar och fokusmarkeringen har minst 3:1 mot bakgrunden */
.form-control, .form-select, .form-check-input { border-color: #848a88; }
body:not(.public-site) :focus-visible { outline: 2px solid #2f5d50; outline-offset: 2px; }
body:not(.public-site) [data-bs-theme=dark] :focus-visible, body:not(.public-site) .navbar-vertical :focus-visible { outline-color: #fff; }
.public-site .public-navbar :focus-visible, .public-site .public-hero :focus-visible, .public-site .hero-search:focus-within { outline-color: var(--brand-primary-text); }
.btn-close { opacity: .7; }
/* Ytor som rullar får fokus med tangentbordet (WCAG 2.1.1) */
[role=region][tabindex="0"]:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.modal-header .modal-title { font-size: var(--tblr-font-size-h3); line-height: var(--tblr-line-height-h3); }
main:focus { outline: none; }
/* Tablers ljusa märken har för låg kontrast (2,5–4,4:1); mörkare text på samma bakgrund ger minst 4,5:1 */
.bg-green-lt { color: #1b6b2b !important; }
.bg-secondary-lt { color: #545454 !important; }
.bg-blue-lt { color: #0353a4 !important; }
.bg-azure-lt { color: #155e8a !important; }
.bg-red-lt { color: #a61b1b !important; }
.bg-orange-lt { color: #8f3f00 !important; }
.bg-yellow-lt { color: #6e4b00 !important; }
.bg-lime-lt { color: #446100 !important; }
.bg-teal-lt { color: #0c6150 !important; }
.bg-cyan-lt { color: #0b5f6b !important; }
.bg-purple-lt { color: #6c2a9c !important; }
.bg-pink-lt { color: #9c1f56 !important; }
.bg-indigo-lt { color: #3a3fa8 !important; }
.alert-info { color: #0f4c81; }
.alert-info .alert-title, .alert-info strong { color: inherit; }
/* Länkar i löptext syns utan färg (WCAG 1.4.1) */
.page-body p a:not(.btn), .page-body .form-hint a, .page-body .text-secondary a:not(.btn), .page-body li > a:not(.btn):not(.nav-link):not(.dropdown-item), .modal-body p a:not(.btn) { text-decoration: underline; }
/* Klickytor minst 24 px (WCAG 2.5.8) */
.help-article-list a { display: inline-block; padding-block: .25rem; }
.alert-warning { color: #7a4a00; }
.alert-warning .alert-title, .alert-warning strong { color: inherit; }
.btn-ghost-danger { color: #b02a2a; }
.sidebar-brand .avatar { color: #fff !important; background-color: rgba(255, 255, 255, .16) !important; }
/* Smal skärm (WCAG 1.4.10): radernas mellanrum får inte bli bredare än sidans marginal */
@media (max-width: 575.98px) { .row.g-4, .row.g-5 { --tblr-gutter-x: 1rem; } }
.table-responsive, .modal-body { position: relative; }
/* Ärenden: tråden med meddelanden */
.case-thread { display: flex; flex-direction: column; gap: .75rem; margin-bottom: 1.25rem; }
.case-message { border: 1px solid #e6e9e8; border-radius: var(--tblr-border-radius-lg); padding: .75rem 1rem; background: #fff; }
.case-message.case-lantagare { background: #f6f8f7; }
.case-message.case-intern { background: #fff8e6; border-color: #f0dca8; }
/* Sökrutan i webbens sidhuvud (krav 510) */
.public-navbar .header-search { width: 16rem; max-width: 45vw; }
.public-navbar .header-search .form-control { background: rgba(255, 255, 255, .95); color: #1d2b27; }
.public-navbar .header-search .btn { background: #fff; color: #1d2b27; border-color: rgba(255, 255, 255, .95); }
@media (max-width: 575.98px) { .public-navbar .header-search { width: 9rem; } }
/* Sökrutan, Lyssna, Language och Logga in radbryts på smala skärmar i stället för att sidan rullar i sidled (WCAG 1.4.10) */
.public-navbar .navbar-nav.order-md-last { flex-wrap: wrap; justify-content: flex-end; row-gap: .25rem; min-width: 0; max-width: 100%; }
.did-you-mean { font-size: 1.05rem; }
/* Kort träfflista (krav 518): en rad per titel */
.search-hits-short > li { padding: .45rem 0; border-bottom: 1px solid #eef0ef; }
.search-hits-short > li > a { font-weight: 600; margin-right: .5rem; }
/* Sidhuvudet med sökruta, meny och Mina sidor får inte bli bredare än skärmen (WCAG 1.4.10): menyn radbryts */
@media (min-width: 768px) {
  .public-navbar .navbar-collapse { min-width: 0; flex: 1 1 0; }
  .public-navbar .navbar-collapse > .navbar-nav { flex-wrap: wrap; }
}
/* Inbäddat innehåll i artiklar (krav 576, 1326, 1332) */
.embed-titles .shelf-list { flex-wrap: wrap; overflow: visible; }
.embed-cover { width: 100%; aspect-ratio: 2 / 3; border-radius: 6px; margin-bottom: .4rem; }
.embed-video iframe { border: 0; border-radius: 8px; }
.image-bank-img { aspect-ratio: 4 / 3; object-fit: cover; }
/* Språkval med Google Translate (krav 1331) */
.language-menu { position: relative; }
.language-menu > summary { list-style: none; cursor: pointer; }
.language-menu > summary::-webkit-details-marker { display: none; }
.language-list { position: absolute; right: 0; z-index: 1050; background: #fff; border-radius: 8px; box-shadow: 0 6px 20px rgba(0, 0, 0, .18); padding: .5rem 0; min-width: 11rem; }
.language-list a { display: block; padding: .35rem 1rem; color: #1d2b27; }
.language-list a:hover, .language-list a:focus { background: #eef3f1; }
.language-list a[aria-current="true"] { font-weight: 600; }
.language-note { padding: .35rem 1rem; color: #4b5b57; font-size: .8125rem; border-top: 1px solid #e3e9e7; margin-top: .25rem; }
.markup-preview { border: 1px dashed #c9d3cf; border-radius: 8px; padding: .75rem 1rem; background: #fbfcfb; max-height: 24rem; overflow: auto; }
/* Klickytor minst 24 px (WCAG 2.5.8): länkarna i felsammanfattningen */
.alert li > .alert-link { display: inline-block; padding-block: .2rem; }

/* Handboken för utskrift (krav 1861) */
.help-print .help-content h4 { margin-top: 1.75rem; font-size: 1.15rem; }
.help-print .help-content h5 { margin-top: 1.25rem; font-size: 1rem; }
.help-print-group-title { margin-top: 3rem; padding-bottom: .5rem; border-bottom: 2px solid var(--tblr-border-color); }
.help-print-article { margin-top: 2.5rem; }
.help-print-toc ol ol { margin-bottom: .5rem; }
.help-print-toc a { display: inline-block; padding-block: .15rem; }
@media print {
  .help .breadcrumb, .help-skip { display: none; }
  .help-print-group { break-before: page; }
  .help-print-article { break-inside: auto; }
  .help-print h3, .help-print h4, .help-print h5 { break-after: avoid; }
  .help-print a { color: inherit; }
}

/* Bibliografiska etiketter (krav 1164, 1165); måtten kommer från mallens stilmall */
.labels-page { background: #fff; }
.label-sheet { display: grid; break-after: page; }
.label-sheet:last-of-type { break-after: auto; }
.label { display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding: 1mm 2mm; line-height: 1.15; color: #000; }
.label-line { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.label-strong { font-weight: 700; }
.label-small { font-size: .8em; }
.label-barcode svg { display: block; max-width: 100%; height: 9mm; margin: .5mm auto 0; }
@media screen { .label { outline: 1px dashed #c8d3e1; } .label-sheet { margin-bottom: 1rem; } }
@media print { .labels-page main { margin: 0; } }

/* Utskrift av tabeller (krav 402): liggande sida och bara markerade rader */
@page liggande { size: A4 landscape; }
@media print {
  table.print-landscape { page: liggande; }
  tr.print-skip { display: none; }
}

/* Webbautomaten: bildstöd, varning före omstart och kvitto på papper (krav 1724, 1736, 1728) */
.kiosk-guide { display: flex; align-items: center; gap: 1rem; }
.kiosk-guide img { flex: 0 0 auto; width: 9rem; height: auto; }
.kiosk-warning { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(24, 36, 51, .6); }
.kiosk-warning[hidden] { display: none; }
@media print {
  .kiosk .navbar, .kiosk .kiosk-title { display: none; }
  .kiosk-receipt { font-size: 10pt; }
  .kiosk-receipt .fs-2, .kiosk-receipt .fs-3, .kiosk-receipt .kiosk-list li { font-size: 10pt; }
}

/* Bildspel på webbens startsida (krav 1320): en bild i taget, bläddras med knapparna eller i sidled */
.slideshow-list { gap: 1rem; }
.slideshow-item { flex: 0 0 100%; scroll-snap-align: start; }
.slideshow-img { width: 100%; max-height: 28rem; object-fit: cover; border-radius: .5rem; display: block; }
.slideshow-caption { padding-top: .5rem; }

/* Klasslista med streckkoder (Ekerö 4.1.15.5): 3 × 9 rutor per A4, namn ovanför koden */
@page klasslista { size: A4 portrait; margin: 8mm 6mm; }
.class-sheet { display: grid; grid-template-columns: repeat(3, 66mm); grid-auto-rows: 31mm; background: #fff; color: #000; break-after: page; page: klasslista; }
.class-sheet:last-of-type { break-after: auto; }
.class-sheet-cell { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 1.5mm 3mm; overflow: hidden; break-inside: avoid; }
.class-sheet-name { font-weight: 700; font-size: 10pt; line-height: 1.2; text-align: center; max-width: 100%; overflow-wrap: anywhere; }
.class-sheet-code { width: 100%; }
.class-sheet-code svg { display: block; width: 100%; height: auto; max-height: 21mm; }
@media screen { .class-sheet { max-width: 100%; overflow-x: auto; margin-bottom: 1rem; } .class-sheet-cell { outline: 1px dashed #c8d3e1; } }

/* Lappar med nya pinkoder (krav 1535): tre i bredd, ramar att klippa längs */
.pin-sheet { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: .75rem; }
.pin-slip { border: 1px dashed var(--tblr-border-color, #c8d3cf); border-radius: .25rem; padding: .75rem; break-inside: avoid; }
@media print { .pin-sheet { grid-template-columns: repeat(3, 1fr); } }

/* Uppläsning på låntagarwebben (Vellinge 9.1.12) */
.listen-controls { display: inline-flex; align-items: center; gap: .25rem; }
.listen-controls[hidden] { display: none; }
.listen-button { background: none; border: 0; cursor: pointer; }
.listen-button[aria-pressed="true"] { text-decoration: underline; text-underline-offset: .2em; }

/* Varningen före utloggning (WCAG 2.2.1) */
.idle-warning { max-width: 28rem; border: 1px solid #848a88; border-radius: 8px; padding: 1.25rem; }
.idle-warning::backdrop { background: rgba(0, 0, 0, .4); }

/* Synlig upplysning vid listor som uppdaterar sidan när man väljer (WCAG 3.2.2) */
.submit-hint { display: block; font-size: .75rem; color: var(--tblr-secondary, #5b6b66); margin-top: .15rem; }
.public-navbar .submit-hint, .navbar .submit-hint { color: inherit; opacity: .85; }

/* Instruktionen till kommunens IT under en egen domän: hela texten syns och radbryts i det smala kortet, ett klick markerar allt */
.domain-howto { white-space: pre-wrap; overflow-wrap: anywhere; height: auto; margin: 0; background: var(--tblr-bg-surface-secondary, #f6f8fb); color: inherit; -webkit-user-select: all; user-select: all; }
