/**
 * main.css - Hovedstilsett for Flydrama
 * 
 * Strukturert og konsolidert oppbygging:
 *  1. DESIGN SYSTEM & VARIABLER (Design tokens)
 *  2. RESET OG BASE-STILER (Typografi, lenker, tilstander)
 *  3. HOVEDLAYOUT OG STRUKTUR (Hovedbeholder, spalter, topprader)
 *  4. HEADER OG NAVIGASJON (Logo, PC-meny, Hamburgermeny, Mobilmeny)
 *  5. UI-KOMPONENTER OG KNAPPER (Kort, paneler, knapperader, knappe-grid)
 *  6. SKJEMAER, INNTASTING OG CHOICES.JS (Form-kontroller, mørk modussoverstyring)
 *  7. EMNEORD OG TAGS (Pill-design, sletting, autocomplete-forslag)
 *  8. MODALER, POPUPS OG OVERLAYS (Logg-kommentarer, dialoger)
 *  9. FORSIDE, HERO OG TEASERE (Velkomstbanner, dagens hendelse, kategorikort)
 * 10. KOMMENTARSYSTEM (Trådstruktur, teller-piller, globale kommentarer)
 * 11. TABELLER, ACCORDIONS OG HISTORIKK (Datatabeller, EXIF-trekkspill, endringslogg)
 * 12. AUTENTISERING OGG BRUKERPROFIL (Innloggingsboks, 2FA, sikkerhetsvarsler)
 * 13. SUBSKJEMAER (Kilder, personer, begivenheter)
 * 14. RESPONSIVITET OG MEDIA QUERIES (Mobil, nettbrett, tidslinje, sticky header)
 * 15. FOOTER
 */

/* ==========================================================================
   1. DESIGN SYSTEM (Variabler / Design Tokens)
   ========================================================================== */
:root {
    /* Farger */
    --farge-bakgrunn: #27282a;
    --farge-tekst: #ffffff;
    --farge-aksent-gul: #eecc1e;
    --farge-header-mork: #1d2e3a;
    
    /* Funksjonelle farger */
    --farge-panel-bg: rgba(39, 40, 42, 0.8);
    --farge-suksess: #5cb85c;
    --farge-fare: #d9534f;
    --farge-lenke: #ffffff;
    --farge-lenke-hover: #eecc1e;

    /* Typografi */
    --font-hoved: verdana, "Trebuchet MS", arial, sans-serif;
    --font-base: 1rem;
    --font-mobil: 1.2rem; /* Økt skriftstørrelse på mobil for bedre lesbarhet */

    /* Avstander */
    --avstand-liten: 8px;
    --avstand-md: 15px;
    --avstand-stor: 30px;
}

/* ==========================================================================
   2. RESET OG BASE-STILER
   ========================================================================== */
*, *::before, *::after {
    box-sizing: border-box;
}

html {
    max-width: 100vw;
    overflow-x: hidden;
    min-height: 100%;
}

body {
    margin: 0;
    padding: 0;
    background-color: var(--farge-bakgrunn);
    background-image: url(/images/bakgrunn_2000.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    background-position: center center;
    font-family: var(--font-hoved);
    font-size: var(--font-base);
    color: var(--farge-tekst);
}

/* Typografi og lenker */
a, a:link, a:visited, .liksomlenke {
    text-decoration: none;
    color: var(--farge-lenke);
    transition: color 0.2s ease;
}

a:hover, .liksomlenke:hover {
    color: var(--farge-lenke-hover);
}

.handling {
    cursor: pointer;
}

.capitalize:first-letter {
    text-transform: capitalize;
}

/* Skjul hjelpetitler som kalles dynamisk av JavaScript */
h2#kilder_tittel, 
h2#begivenheter_tittel, 
h2#hendelser_tittel {
    display: none;
}

/* ==========================================================================
   3. HOVEDLAYOUT OG STRUKTUR
   ========================================================================== */
#hoved {
    margin: 0 auto;
    max-width: 1050px;
    padding-bottom: var(--avstand-stor);
}

div#main {
    margin-left: 10px;
    background-color: var(--farge-bakgrunn);
}

div#left {
    width: 100%;
    max-width: 550px;
}

.midtspaltedel {
    padding: var(--avstand-md);
}

/* Topprad for listesider og kontrollpaneler */
.liste-topprad {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 80px;
    margin-bottom: 25px;
    flex-wrap: wrap;
    gap: 15px;
}

.liste-filterrad {
    display: flex;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
    margin-bottom: 25px;
}

.liste-antall {
    color: #aaa;
    font-size: 0.95rem;
    margin-bottom: 12px;
}

.statisk-side {
    max-width: 860px;
    margin: 0 auto;
    padding: 80px 24px 48px;
    line-height: 1.7;
}

.statisk-side h1 {
    color: var(--farge-aksent-gul);
    margin: 0 0 28px;
}

.statisk-side h2 {
    color: #fff;
    margin: 32px 0 10px;
}

.statisk-side p {
    color: #ccc;
    margin: 0 0 16px;
}

.bruker-innhold-detaljer summary {
    cursor: pointer;
    color: var(--farge-aksent-gul);
    font-weight: bold;
    font-size: 1.05rem;
}

.bruker-innhold-resultat {
    margin-top: 18px;
    color: #ccc;
}

.bruker-trad {
    border-top: 1px solid #444;
    padding: 14px 0;
}

.bruker-trad h3 {
    margin: 0 0 8px;
    color: #fff;
}

.bruker-trad p {
    margin: 0 0 10px;
    white-space: normal;
}

.bruker-trad-svar {
    margin: 10px 0 0 18px;
    padding: 9px 12px;
    border-left: 3px solid var(--farge-aksent-gul);
}

.bruker-trad-svar p {
    margin: 5px 0 0;
}

.bruker-kommentar-liste {
    margin: 0;
    padding-left: 20px;
}

.bruker-kommentar-liste li {
    margin-bottom: 12px;
    line-height: 1.5;
}

.bruker-kommentar-tidspunkt {
    color: #aaa;
    white-space: nowrap;
}

/* ==========================================================================
   4. HEADER OG NAVIGASJON (PC, Mobil og Hamburger)
   ========================================================================== */
/**
 * Hovedbeholder for sidens topplinje.
 * Bruker flex-wrap for at mobilmenyen skal legge seg pent under ved ekspandering.
 */
#header {
    margin: 0;
    padding: 0;
    background-color: #27282a;
    background: var(--farge-header-mork);
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    min-height: 70px;
}

/* Holder logo og meny på én linje i toppen */
#header-top-row {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
}

/* Logo / Venstre side */
#header-left {
    background-color: var(--farge-aksent-gul);
    padding: 0 25px;
    width: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#header-left p, #header-left a {
    color: var(--farge-header-mork);
    font-family: var(--font-hoved);
    font-size: 28px;
    text-transform: uppercase;
    margin: 0;
    text-align: center;
    text-decoration: none;
}

#header-left a:link, #header-left a:visited {
    color: var(--farge-header-mork);
}

#header-left a:hover {
    color: var(--farge-tekst);
}

/* Høyre side (Menybeholder) */
#header-right {
    display: flex;
    align-items: center;
    padding: 0 20px;
}

/* PC Hovedmeny */
ul#hovedmeny, #hovedmeny {
    margin: 0;
    padding: 0;
    list-style-type: none;
    display: flex;
    flex-direction: row;
    align-items: center;
    height: 100%;
}

ul#hovedmeny li, #hovedmeny li {
    text-transform: uppercase;
    margin-left: 20px;
    margin-right: var(--avstand-md);
}

#hovedmeny a {
    color: var(--farge-tekst);
    text-decoration: none;
    font-family: sans-serif;
    font-size: 16px;
}

#hovedmeny a:hover {
    color: var(--farge-aksent-gul);
}

#hovedmeny a.varsel {
    color: #ff6b6b;
}

/* Mobil- og Hamburgermeny */
#hamburgermeny {
    display: none;
    cursor: pointer;
    padding: var(--avstand-liten);
    margin-left: 20px;
}

#hamburgermeny img {
    display: block;
    width: 35px;
    height: 50px;
}

#mobilmeny {
    background-color: var(--farge-header-mork);
    display: none;
    padding: var(--avstand-md);
    flex-basis: 100%;
    width: 100%;
    border-top: 1px solid #444;
}

#mobilmeny ul {
    margin: 0;
    padding: 0;
    list-style: none;
    list-style-type: none;
}

#mobilmeny li {
    display: inline-block;
    margin-right: var(--avstand-md);
    border-bottom: 1px solid #333;
}

#mobilmeny a {
    display: block;
    padding: 15px 25px;
    color: var(--farge-tekst);
    text-decoration: none;
    font-family: sans-serif;
    font-size: 1.1rem;
}

#mobilmeny a:hover {
    background-color: rgba(0, 0, 0, 0.2);
    color: var(--farge-aksent-gul);
}

#mobilmeny a.varsel {
    color: #ff6b6b;
}

/* ==========================================================================
   5. UI-KOMPONENTER OG KNAPPER
   ========================================================================== */
/* Standardiserte Paneler / Kort */
.panel, 
div#innholdsliste, 
div#innhold, 
div.dark_background {
    background-color: var(--farge-panel-bg);
    padding: var(--avstand-md);
    border-radius: 8px;
}

div#innhold div#innholdsliste {
    background-color: transparent;
    padding: 0;
}

/* Knapper */
.knapp, button {
    display: inline-block;
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1rem;
    font-weight: bold;
    text-align: center;
    transition: opacity 0.2s, background-color 0.2s;
}

.knapp:hover, button:hover {
    opacity: 0.85;
}

.knapp-primar {
    background-color: var(--farge-aksent-gul);
    color: var(--farge-header-mork);
}

.knapp-suksess {
    background-color: var(--farge-suksess);
    color: white;
}

/* Responsivt knapperutenett */
.knappe-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 10px;
    margin-bottom: 25px;
}

.knappe-grid .knapp {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    text-decoration: none;
    white-space: nowrap;
}

.knappe-grid .admin-brukere-knapp {
    grid-column: 1 / -1;
    max-width: 220px;
}

/* ==========================================================================
   6. SKJEMAER OG INNTASTING
   ========================================================================== */
label {
    display: block;
    font-size: 0.9rem;
    font-weight: bold;
    margin-top: 10px;
    margin-bottom: 5px;
}

input[type="text"], 
input[type="number"], 
input[type="date"], 
input[type="url"], 
input[type="password"], 
input[type="email"], 
select, 
textarea,
.skjema-felt {
    width: 100%;
    max-width: 500px;
    padding: 8px;
    margin-bottom: var(--avstand-md);
    border: 1px solid #555;
    border-radius: 4px;
    background-color: #333;
    color: white;
    font-family: inherit;
}

input[type="radio"] {
    margin-top: 8px;
    margin-right: 5px;
}

div.radio {
    text-align: left;
    display: inline-block;
    margin-right: 15px;
}

textarea {
    height: 150px;
    resize: vertical;
}

/* Flexbox layout for skjemaer */
.skjema-rad {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 25px;
}

.skjema-kolonne {
    flex: 1;
    min-width: 200px;
}

.skjema-kolonne-bred {
    flex: 2;
    min-width: 300px;
}

.info-boks {
    background: rgba(0,0,0,0.25);
    border: 1px solid #444;
    border-radius: 4px;
    padding: 15px;
    margin-bottom: 25px;
}

/* --- Choices.js Overstyringer (Mørkt tema) --- */
.choices[data-type*="select-one"] .choices__inner {
    background-color: rgba(255, 255, 255, 0.05);
    border: 1px solid #555;
    border-radius: 4px;
    min-height: 42px;
    padding: 5px 15px; 
    color: #fff;
    display: flex;
    align-items: center;
}

.choices__input {
    background-color: transparent !important;
    color: #fff !important;
}

.choices__inner .choices__item {
    color: #ccc;
    font-size: 16px;
}

.choices__list--dropdown, 
.choices__list[aria-expanded] {
    background-color: #27282a !important; 
    border: 1px solid #555 !important;
}

.choices__list--dropdown .choices__list {
    background-color: #27282a !important;
}

.choices__list--dropdown .choices__item {
    color: #ccc !important;
    font-size: 16px;
}

.choices__list--dropdown .choices__item--selectable.is-highlighted {
    background-color: var(--farge-aksent-gul, #f4b41a) !important;
    color: #111 !important; 
}

.choices__list--dropdown .has-no-results {
    color: #ccc !important;
}

/* Autocomplete forslagsbokser */
div#taggforslag, 
div.forslag_div {
    background-color: white;
    border: 1px solid #000;
    padding: 3px;
    position: absolute;
    text-align: left;
    visibility: hidden;
    z-index: 99;
    border-radius: 4px;
}

div.forslag_hover {
    background-color: var(--farge-header-mork);
    color: white;
}

div.forslag_normal {
    background-color: white;
    color: black;
}

/* ==========================================================================
   7. EMNEORD OG TAGS (Pills & Autocomplete)
   ========================================================================== */
.emneord-container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.emneord-container li {
    display: inline-flex;
    align-items: center;
    background-color: var(--farge-aksent-gul);
    color: var(--farge-header-mork);
    font-size: 0.85rem;
    font-weight: bold;
    padding: 5px 12px;
    border-radius: 20px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

ul#emneordlisten_bilde li {
    background-color: #ccc;
}

.emneord-container li a {
    color: var(--farge-header-mork);
    margin-left: 8px;
    text-decoration: none;
    font-weight: bold;
    font-size: 1.1rem;
    line-height: 1;
    opacity: 0.6;
    transition: opacity 0.2s;
    cursor: pointer;
}

.emneord-container li a:hover {
    opacity: 1;
}

.emneord-forslag,
#emneordforslag_bilde,
#emneordforslag {
    position: absolute;
    z-index: 1000;
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.3);
    max-height: 250px;
    overflow-y: auto;
    min-width: 250px;
}

.emneord-forslag p,
#emneordforslag_bilde p {
    margin: 0;
    padding: 10px 15px;
    color: #333;
    font-size: 0.95rem;
    cursor: pointer;
    border-bottom: 1px solid #eee;
    transition: background-color 0.2s;
}

.emneord-forslag p:last-child,
#emneordforslag_bilde p:last-child {
    border-bottom: none;
}

.emneord-forslag p:hover,
#emneordforslag_bilde p:hover {
    background-color: var(--farge-header-mork);
    color: #fff;
}

.emneord-forslag span,
#emneordforslag_bilde span {
    color: #888;
    font-size: 0.8rem;
    margin-left: 8px;
}

.emneord-forslag p:hover span,
#emneordforslag_bilde p:hover span {
    color: #ccc;
}

/* ==========================================================================
   8. MODALER, POPUPS OG OVERLAYS
   ========================================================================== */
.skrape-advarsel-banner {
    background-color: var(--farge-fare, #d9534f);
    color: white;
    padding: 15px;
    text-align: center;
    font-weight: bold;
    border-bottom: 3px solid #660000;
    position: sticky;
    top: 70px;
    z-index: 1000;
    box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}

   .modal-overlay {
    display: none; 
    position: fixed; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    background: rgba(0,0,0,0.8); 
    z-index: 1000; 
    align-items: center; 
    justify-content: center;
}

.modal-boks {
    background: #222; 
    padding: 30px; 
    border-radius: 8px; 
    border: 1px solid var(--farge-aksent-gul); 
    max-width: 500px; 
    width: 90%;
}

/* ==========================================================================
   9. FORSIDE, HERO OG TEASERE
   ========================================================================== */
.hero-banner {
    margin-top: 80px; 
    margin-bottom: 40px; 
    text-align: center; 
    padding: 50px 20px;
    background: linear-gradient(rgba(39, 40, 42, 0.85), rgba(39, 40, 42, 0.95)), url('/images/bakgrunn_2000.jpg') center/cover;
    border: 1px solid #555; 
    border-radius: 8px; 
    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
}

.hero-tittel { 
    color: var(--farge-aksent-gul); 
    font-size: 2.8rem; 
    margin-top: 0; 
    text-transform: uppercase; 
    letter-spacing: 2px; 
}

.hero-ingress { 
    font-size: 1.2rem; 
    color: #fff; 
    max-width: 800px; 
    margin: 0 auto 20px auto; 
    line-height: 1.6; 
}

.hero-brodtekst { 
    color: #ccc; 
    max-width: 750px; 
    margin: 0 auto 35px auto; 
    line-height: 1.6; 
    font-size: 1.05rem; 
}

.hero-knapperad { 
    display: flex; 
    gap: 15px; 
    justify-content: center; 
    flex-wrap: wrap; 
}

.hero-knapp { 
    font-size: 1.1rem; 
    padding: 12px 30px; 
}

.hero-knapp-sekundar { 
    background: rgba(255,255,255,0.1); 
}

.teaser-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); 
    gap: 20px; 
    margin-bottom: 60px; 
}

.teaser-ikon { 
    font-size: 2.5rem; 
    margin-bottom: 10px; 
}

.teaser-tittel { 
    color: var(--farge-aksent-gul); 
    margin-top: 0; 
}

.teaser-tekst { 
    color: #ccc; 
    font-size: 0.9em; 
    margin-bottom: 0; 
}

.verktoylinje { 
    display: flex; 
    gap: 10px; 
    margin-top: 80px; 
    margin-bottom: 25px; 
    flex-wrap: wrap; 
    justify-content: center; 
}

.dagens-hendelse-boks { 
    background: rgba(238, 204, 30, 0.1); 
    border: 1px solid var(--farge-aksent-gul); 
    border-radius: 8px; 
    padding: 30px; 
    margin-bottom: 40px; 
    text-align: center; 
}

.dagens-hendelse-label { 
    font-size: 0.9em; 
    color: var(--farge-aksent-gul); 
    text-transform: uppercase; 
    letter-spacing: 1px; 
    margin-bottom: 10px; 
    font-weight: bold; 
}

.dagens-hendelse-tittel { 
    margin: 0 0 15px 0; 
    color: #fff; 
}

.dagens-hendelse-meta { 
    color: #ccc; 
    margin-bottom: 20px; 
}

.dagens-hendelse-sitat { 
    color: #eee; 
    font-size: 1.1rem; 
    font-style: italic; 
    max-width: 800px; 
    margin: 0 auto; 
    line-height: 1.6; 
    text-shadow: 1px 1px 3px rgba(0,0,0,0.8); 
}

.dagens-hendelse-gjestetekst { 
    color: #aaa; 
    font-style: italic; 
    max-width: 600px; 
    margin: 0 auto; 
}

.dagens-hendelse-knapp { 
    margin-top: 25px; 
}

.nyeste-hendelser-liste { 
    display: flex; 
    flex-direction: column; 
    gap: 10px; 
    margin-bottom: 50px; 
}

.hendelse-liste-kort { 
    background: rgba(0,0,0,0.2); 
    border: 1px solid #444; 
    border-radius: 6px; 
    padding: 12px 18px; 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    transition: background 0.2s, border-color 0.2s; 
}

.hendelse-liste-kort:hover { 
    background: rgba(255,255,255,0.05); 
    border-color: var(--farge-aksent-gul); 
}

.hendelse-kort-tittel { 
    font-weight: bold; 
    color: #fff; 
}

.hendelse-kort-sted { 
    color: #aaa; 
    font-size: 0.9em; 
    margin-left: 10px; 
}

.hendelse-kort-dato { 
    color: var(--farge-aksent-gul); 
    font-size: 0.9em; 
    white-space: nowrap; 
}

.kategori-seksjons-tittel { 
    color: var(--farge-aksent-gul); 
    text-align: center; 
}

.kategori-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 
    gap: 20px; 
    margin-bottom: 40px; 
}

.kategori-kort { 
    height: 100%; 
    box-sizing: border-box; 
    background: rgba(0,0,0,0.3); 
    border: 1px solid #444; 
    border-radius: 8px; 
    padding: 30px 20px; 
    text-align: center; 
    transition: all 0.2s ease-out; 
    display: flex; 
    flex-direction: column; 
    justify-content: center; 
}

.kategori-kort:hover { 
    border-color: var(--farge-aksent-gul); 
    transform: translateY(-4px); 
    background: rgba(255,255,255,0.05); 
}

.kategori-ikon { 
    font-size: 3rem; 
    margin-bottom: 15px; 
}

.kategori-tittel { 
    color: #fff; 
    margin: 0 0 8px 0; 
    font-size: 1.4rem; 
}

.kategori-beskrivelse { 
    color: #aaa; 
    margin: 0; 
    font-size: 0.95em; 
    line-height: 1.4; 
}

/* ==========================================================================
   10. KOMMENTARSYSTEM
   ========================================================================== */
.kommentar-teller {
    font-size: 0.85em;
    background: rgba(0,0,0,0.4);
    padding: 3px 8px;
    border-radius: 12px;
    border: 1px solid #555;
    color: #eee;
    margin-left: 10px;
    margin-right: 5px;
    white-space: nowrap;
}

.kommentar-boks {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid #444;
    border-radius: 6px;
    padding: 12px 15px;
    position: relative;
}

.kommentar-boks .kommentar-boks {
    border-left: 3px solid #555;
    border-top: none;
    border-right: none;
    border-bottom: none;
    background: transparent;
    margin-top: 10px;
    padding-left: 15px;
}

.kommentar-seksjon {
    margin-top: 40px;
    margin-bottom: 30px;
    border-top: 2px solid var(--farge-aksent-gul);
}

.kommentar-seksjon.locked {
    text-align: center;
    padding: 30px;
}

.kommentar-seksjon h3 {
    color: var(--farge-aksent-gul);
    margin: 0;
}

.kommentar-seksjon.locked h3 {
    margin-top: 0;
}

.kommentar-seksjon.locked p {
    color: #ccc;
}

.kommentar-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 5px;
    font-size: 0.9em;
}

.kommentar-header-rad {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    flex-wrap: wrap;
    gap: 10px;
}

.kommentar-kontroller {
    display: flex;
    gap: 10px;
    align-items: center;
}

.kommentar-sortering-select {
    margin: 0;
    padding: 4px 8px;
    width: auto;
}

.ny-kommentar-boks {
    margin-bottom: 30px;
    background: rgba(0,0,0,0.2);
    padding: 15px;
    border-radius: 6px;
    border: 1px solid #444;
}

.ny-kommentar-textarea {
    min-height: 80px;
    margin-bottom: 10px;
}

.skjema-knapper-under-felt {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    max-width: 500px;
}

.kommentar-tre-container {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.kommentar-actions {
    display: flex;
    gap: 10px;
    font-size: 0.85em;
}

.kommentar-actions a {
    color: #aaa;
}

.kommentar-actions a:hover {
    color: #fff;
}

.kommentar-handling-slett {
    color: var(--farge-fare) !important;
}

.kommentar-handling-gjenopprett {
    color: var(--farge-suksess) !important;
}

.kommentar-svar-container {
    margin-top: 10px;
    padding-left: 15px;
    border-left: 2px solid #555;
}

.kommentar-skrivefelt {
    min-height: 60px;
    margin-bottom: 5px;
}

.kommentar-knapperad {
    display: flex;
    gap: 10px;
}

.kommentar-liten-knapp {
    padding: 4px 10px;
    font-size: 0.85em;
}

/* Globale kommentarvisninger */
.global-kommentar-panel {
    margin-top: 80px;
    margin-bottom: 40px;
}

.global-kommentar-panel h1 {
    color: var(--farge-aksent-gul);
    margin-top: 0;
}

.global-kommentar-panel > p {
    color: #ccc;
}

.global-kommentar-liste {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 15px;
    margin-top: 20px;
    width: 100%;
}

.global-kommentar-kort {
    width: 100%;
    box-sizing: border-box;
    clear: both;
    background: rgba(0,0,0,0.2);
    border: 1px solid #444;
    border-radius: 6px;
    padding: 15px;
    position: relative;
}

.global-kommentar-kort.slettet-kort {
    border-color: #660000;
}

.global-kommentar-header {
    display: flex;
    justify-content: space-between;
    font-size: 0.9em;
    margin-bottom: 8px;
}

.kommentar-forfatter {
    color: var(--farge-aksent-gul);
}

.global-kommentar-kontekst {
    color: #888;
}

.global-kommentar-lenke {
    color: #fff;
    text-decoration: underline;
    font-weight: bold;
}

.kommentar-dato, .kommentar-endret, .global-kommentar-redigert {
    color: #888;
}

.kommentar-endret, .global-kommentar-redigert {
    font-size: 0.85em;
    font-style: italic;
}

.kommentar-body {
    color: #eee;
    line-height: 1.5;
    margin-bottom: 10px;
    overflow-wrap: break-word;
    word-break: break-word;
}

.kommentar-slettet-bruker {
    color: #888;
    font-style: italic;
}

.kommentar-slettet-mod {
    color: #ff9800;
    font-style: italic;
}

.global-kommentar-actions {
    display: flex;
    gap: 15px;
    font-size: 0.85em;
}

.global-kommentar-actions a {
    color: #aaa;
}

.global-kommentar-actions a.vis-kontekst {
    color: var(--farge-aksent-gul);
}

.global-kommentar-actions a.handling-slett {
    color: var(--farge-fare);
}

.global-kommentar-actions a.handling-gjenopprett {
    color: var(--farge-suksess);
}

.global-kommentar-actions span.separator {
    color: #555;
}

.tom-liste-melding {
    color: #888;
    font-style: italic;
}

.kommentar-paginering {
    margin-top: 30px;
    display: flex;
    gap: 10px;
}

/* ==========================================================================
   11. TABELLER, ACCORDIONS OG HISTORIKK
   ========================================================================== */
th {
    text-align: left;
    padding-bottom: var(--avstand-liten);
}

/* Tabell for lokal historikk/logg */
.logg-tabell {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9em;
    text-align: left;
}

.logg-tabell th {
    padding: 8px;
    border-bottom: 1px solid #444;
}

.logg-tabell td {
    padding: 8px;
    border-bottom: 1px solid #333;
}

/* Variant-karusell (Bilder) */
.variant-karusell {
    display: flex;
    overflow-x: auto;
    gap: 15px;
    padding-bottom: 15px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
}

.variant-karusell::-webkit-scrollbar { 
    height: 8px; 
}

.variant-karusell::-webkit-scrollbar-thumb { 
    background: #666; 
    border-radius: 4px; 
}

.variant-karusell-item {
    flex: 0 0 85%;
    max-width: 400px;
    scroll-snap-align: center;
}

/* Ekspanderbart panel for endringshistorikk */
.historikk-panel {
    margin-top: 50px; 
    margin-bottom: 30px; 
    background: #1a1a1a; 
    border: 1px solid #333; 
    border-radius: 4px;
}

.historikk-panel summary {
    padding: 15px; 
    cursor: pointer; 
    color: var(--farge-aksent-gul); 
    font-weight: bold; 
    outline: none;
}

.historikk-panel .logg-innhold {
    padding: 15px; 
    border-top: 1px solid #333;
}

/* Accordion (EXIF/IPTC meta) */
.tab {
	position: relative;
}

input.tab__checkbox {
	position: absolute;
	opacity: 0;
	z-index: -1;
}

.tab__content {
	max-height: 0;
	overflow: hidden;
	transition: all 0.35s ease-in-out;
}

.tab input:checked ~ .tab__content {
	max-height: 1000rem;
}

.accordion {
	color: inherit; 
	overflow: hidden;
	border-radius: 4px;
}

.tab__label, .tab__close {
	display: flex;
	color: #fff;
	background: #2c3e50;
	cursor: pointer;
}

.tab__label {
	justify-content: space-between;
	padding: 10px 15px; 
	font-weight: bold;
}

.tab__label::after {
	content: "\276F";
	width: 1em;
	height: 1em;
	text-align: center;
	transform: rotate(90deg);
	transition: all 0.35s;
}

.tab input:checked + .tab__label::after {
	transform: rotate(270deg);
}

.tab__content p {
	margin: 0;
	padding: 1rem;
}

.tab__close {
	justify-content: flex-end;
	padding: 0.5rem 1rem;
	font-size: 0.75rem;
}

/* Hendelsesliste hjelpestiler */
div#hendelsesliste {
    padding: 10px;
}

.hendelsesliste {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

div.hendelse_slutt {
    clear: both;
    padding-bottom: 10px;
}

/* ==========================================================================
   12. AUTENTISERING OG BRUKERPROFIL
   ========================================================================== */
.profil-wrapper { 
    max-width: 800px; 
    margin: 0 auto; 
}

.auth-boks { 
    width: 100%; 
    max-width: 420px; 
    border: 1px solid #444; 
    margin: 20px 0; 
    text-align: center; 
}

.auth-tittel { 
    color: var(--farge-aksent-gul); 
    margin-top: 0; 
    margin-bottom: 20px; 
}

.auth-feil { 
    background: rgba(217, 83, 79, 0.2); 
    border: 1px solid var(--farge-fare); 
    color: #ff8c82; 
    padding: 12px; 
    border-radius: 4px; 
    margin-bottom: 20px; 
    font-weight: bold; 
    font-size: 0.95rem; 
    text-align: center; 
}

.auth-skille { 
    display: flex; 
    align-items: center; 
    margin-bottom: 25px; 
}

.auth-skille-linje { 
    flex: 1; 
    border-bottom: 1px solid #444; 
}

.auth-skille-tekst { 
    padding: 0 10px; 
    color: #888; 
    font-size: 0.85rem; 
    text-transform: uppercase; 
}

.auth-kode-input { 
    font-size: 2em; 
    text-align: center; 
    letter-spacing: 6px; 
    width: 220px; 
    padding: 10px; 
    font-weight: bold; 
    margin-bottom: 0; 
}

.auth-knapp-stor { 
    width: 220px; 
    font-size: 1.05rem; 
    padding: 12px; 
    margin-bottom: 10px; 
}

.auth-hjelpeboks { 
    margin-top: 25px; 
    font-size: 0.9rem; 
    background-color: rgba(255, 255, 255, 0.05); 
    padding: 12px; 
    border-radius: 6px; 
    border: 1px solid #444; 
    color: #aaa; 
}

.auth-lenke { 
    color: var(--farge-aksent-gul); 
    font-weight: bold; 
    text-decoration: none; 
    display: inline-block; 
    margin-top: 6px; 
}

.auth-avbryt { 
    margin-top: 25px; 
    font-size: 0.9rem; 
}

.auth-avbryt a { 
    color: var(--farge-fare); 
    text-decoration: none; 
}

.auth-ingress { 
    color: #ccc; 
    margin-bottom: 25px; 
    font-size: 0.95rem; 
    line-height: 1.5; 
}

.fokus-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 60vh;
    padding: 20px;
}

.fokus-boks {
    width: 100%;
    border: 1px solid #444;
    margin: 0;
    text-align: center;
}

/* ==========================================================================
   13. SUBSKJEMAER (Kilder, Personer, Begivenheter osv.)
   ========================================================================== */
.subskjema-topp { 
    display: flex; 
    gap: 15px; 
    align-items: center; 
    margin-bottom: 20px; 
}

.subskjema-panel { 
    display: none; 
    margin-bottom: 30px; 
    border: 1px solid #444; 
}

.subskjema-tittel { 
    margin-top: 0; 
    margin-bottom: 15px; 
    color: #fff; 
}

.subskjema-checkboks-rad { 
    display: flex; 
    gap: 25px; 
    padding: 10px 15px; 
}

.subskjema-checkboks-label { 
    display: flex; 
    align-items: center; 
    gap: 8px; 
    cursor: pointer; 
    color: #fff; 
    margin: 0; 
}

.subskjema-checkboks { 
    width: 18px; 
    height: 18px; 
    margin: 0; 
}

.subskjema-knapperad { 
    display: flex; 
    gap: 15px; 
    margin-top: 25px; 
}

.subskjema-liste-container { 
    margin-bottom: 30px; 
}

/* ==========================================================================
   14. RESPONSIVITET OG MEDIA QUERIES
   ========================================================================== */
/* Nettbrett / Mindre skjermer */
@media (max-width: 950px) {
    ul#hovedmeny, #hovedmeny {
        display: none !important;
    }
    
    #hamburgermeny {
        display: flex;
        align-items: center;
    }
}

/* Mobilskjermer */
@media (max-width: 768px) {
    body {
        background-image: url(/images/bakgrunn_768.jpg);
        font-size: var(--font-mobil);
    }
    
    /* Utvid venstre kolonne og skjemafelter til full bredde */
    div#left {
        max-width: 100%;
    }
    
    input[type="text"], 
    input[type="number"], 
    input[type="date"], 
    input[type="url"], 
    input[type="password"], 
    input[type="email"], 
    select, 
    textarea,
    .skjema-felt {
        max-width: 100%;
    }
}

/* Større desktopbilde-flex */
@media (min-width: 768px) {
    .variant-bilder-flex { 
        display: flex; 
        gap: 20px; 
    }
    .variant-bilder-flex .bilde-boks { 
        flex: 1; 
    }
}

/* Låst/fast header for skjermer med nok vertikal høyde */
@media (min-height: 500px) {
    div#header, #header {
        position: fixed;
        left: 0;
        top: 0;
        width: 100%;
        z-index: 999;
    }
    
    div#hoved {
        margin-top: 70px;
    }
}

/* ==========================================================================
   15. FOOTER
   ========================================================================== */
.site-footer {
    background-color: var(--farge-header-mork);
    border-top: 1px solid #444;
    padding: 25px 0;
    margin-top: 60px;
    color: #ccc;
    font-size: 0.9rem;
}

.footer-innhold {
    max-width: 1050px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
}

.footer-lenker {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.footer-lenker a {
    color: #aaa;
    text-decoration: none;
    transition: color 0.2s ease;
}

.footer-lenker a:hover {
    color: var(--farge-aksent-gul);
}

/* Responsiv footer for mobil */
@media (max-width: 768px) {
    .footer-innhold {
        flex-direction: column;
        text-align: center;
    }
    
    .footer-lenker {
        justify-content: center;
        margin-top: 10px;
    }
}