/* ═══════════════════════════════════════════════════════
   GLOBAL TOKENS — kun én farvepalett: sort på papir
   Personalisering sker via typografiske identity-variabler
═══════════════════════════════════════════════════════ */
:root {
  --paper:      #f5f0e8;
  --paper-dark: #ede8dc;
  --paper-aged: #e2daca;
  --ink:        #1a1714;
  --ink-2:      #3a3632;
  --ink-3:      #5a5550;
  --ink-4:      #8a8078;
  --ink-5:      rgba(26,23,20,0.15);
  --rule:       #1a1714;
  --banana:     #c9960e;
  --ok:         #1a5c2a;
  --danger:     #8b1a1a;
  --gap:        20px;

  /* Identity-variabler (ændres per org — ingen farver) */
  --id-rule-top:    4px;      /* masthead rule tykkelse */
  --id-rule-gap:    2px;      /* afstand til 2. regel */
  --id-rule-bot:    1px;      /* 2. regel tykkelse */
  --id-ornament:    "·";      /* ornament mellem sektioner */
  --id-colrule:     1px solid rgba(26,23,20,0.18); /* kolonneregel */
  --id-drop-bg:     transparent;
  --id-drop-color:  var(--ink);
  --id-sec-border:  3px solid var(--rule);
  --id-sec-style:   uppercase;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: #bdb5a5; font-family: 'Lora', Georgia, serif; color: var(--ink); min-height: 100vh; }

/* ═══ PAGE SHELL ═══ */
#app { max-width: 1100px; margin: 0 auto; background: var(--paper); box-shadow: 0 6px 40px rgba(0,0,0,0.28); min-height: 100vh; }

/* ═══ TIER BAR ═══ */
.tier-bar {
  background: var(--ink); color: var(--paper);
  padding: 4px 20px; font-size: 10px; font-weight: 700;
  letter-spacing: 0.13em; text-transform: uppercase;
  font-family: 'Lora', serif; display: flex;
  justify-content: space-between; align-items: center;
}
.tier-bar.hidden { display: none; }
.tier-crumb { display: flex; align-items: center; gap: 8px; }
.tier-crumb a { color: var(--paper); opacity: 0.65; cursor: pointer; text-decoration: none; }
.tier-crumb a:hover { opacity: 1; text-decoration: underline; }
.tier-crumb .sep { opacity: 0.4; }
.tier-right { opacity: 0.6; font-size: 9.5px; }

/* ═══════════════════════════════════════════════════════
   MASTHEAD
   Tre typografiske stile — ingen farveændring
═══════════════════════════════════════════════════════ */
.masthead { padding: 14px 28px 12px; border-bottom: var(--id-rule-top) solid var(--rule); position: relative; }

.masthead::after {
  content: ''; display: block;
  border-top: var(--id-rule-bot) solid var(--rule);
  margin-top: var(--id-rule-gap);
}

.mh-meta {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 10px; text-transform: uppercase; letter-spacing: 0.07em;
  color: var(--ink-3); padding-bottom: 8px;
  border-bottom: 1px solid var(--ink-5); margin-bottom: 10px;
}
.mh-issue { background: var(--ink); color: var(--paper); padding: 1px 7px; font-size: 9px; }

/* Stil A (hoved): centreret, stor, klassisk broadsheet */
.mh-style-a { text-align: center; }
.mh-style-a .mh-title {
  font-family: 'Playfair Display', serif; font-size: clamp(44px,8.5vw,96px);
  font-weight: 900; line-height: 0.88; letter-spacing: -0.02em;
  display: block; cursor: pointer; color: var(--ink);
}
.mh-style-a .mh-sub { font-size: 11px; font-style: italic; color: var(--ink-3); letter-spacing: 0.08em; margin-top: 5px; display: block; }

/* Stil B (skole): venstre-justeret, skole i interlinje */
.mh-style-b .mh-identity { display: flex; align-items: flex-end; gap: 16px; margin-bottom: 4px; }
.mh-style-b .mh-title {
  font-family: 'Playfair Display', serif; font-size: clamp(26px,4.5vw,52px);
  font-weight: 900; line-height: 0.9; cursor: pointer; color: var(--ink); display: block;
}
.mh-style-b .mh-school {
  font-family: 'Playfair Display', serif; font-size: clamp(12px,1.8vw,17px);
  font-weight: 400; font-style: italic; color: var(--ink-3); padding-bottom: 3px;
}
.mh-style-b .mh-sub { font-size: 10.5px; font-style: italic; color: var(--ink-4); letter-spacing: 0.05em; }

/* Stil C (klasse): bold overskrift + klasse-stempel */
.mh-style-c .mh-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 4px; }
.mh-style-c .mh-title {
  font-family: 'Playfair Display', serif; font-size: clamp(20px,3.8vw,38px);
  font-weight: 900; cursor: pointer; color: var(--ink); display: block;
}
.mh-style-c .mh-stamp {
  font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  padding: 3px 10px; border: 2px solid var(--ink); font-family: 'Lora', serif;
}
.mh-style-c .mh-sub { font-size: 10px; color: var(--ink-4); font-style: italic; }

/* ═══ NAV ═══ */
.main-nav {
  border-bottom: 2px solid var(--rule); display: flex; flex-wrap: wrap;
  position: sticky; top: 0; z-index: 100; background: var(--paper);
}
.main-nav a {
  padding: 7px 15px; font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.09em; text-transform: uppercase; color: var(--ink);
  text-decoration: none; border-right: 1px solid var(--ink-5);
  white-space: nowrap; cursor: pointer; transition: background .1s, color .1s;
  font-family: 'Lora', serif; display: flex; align-items: center; gap: 5px;
}
.main-nav a:hover, .main-nav a.active { background: var(--ink); color: var(--paper); }
.main-nav a .cnt { background: var(--banana); color: var(--ink); font-size: 8.5px; font-weight: 700; padding: 0 4px; border-radius: 8px; line-height: 14px; }
/* Section dropdown */
.nav-sec-wrap { position: relative; }
.nav-sec-wrap > a::after { content: ' ▾'; font-size: 8px; }
.nav-sec-drop {
  display: none; position: absolute; top: 100%; left: 0;
  background: var(--paper); border: 2px solid var(--rule); min-width: 200px;
  box-shadow: 0 6px 20px rgba(0,0,0,.15); z-index: 200;
}
.nav-sec-wrap:hover .nav-sec-drop, .nav-sec-wrap:focus-within .nav-sec-drop { display: block; }
.nav-sec-drop a {
  display: block; border-right: none; border-bottom: 1px solid var(--ink-5);
  padding: 9px 16px; font-size: 10.5px;
}
.nav-sec-drop a:last-child { border-bottom: none; }

/* ═══ BREAKING ═══ */
.breaking-bar {
  background: var(--ink); color: var(--paper);
  padding: 5px 20px; display: flex; align-items: center; gap: 12px; overflow: hidden;
}
.breaking-lbl { background: var(--banana); color: var(--ink); font-weight: 700; font-size: 10px; text-transform: uppercase; letter-spacing: .1em; padding: 2px 8px; flex-shrink: 0; font-family: 'Lora', serif; }
.breaking-track { overflow: hidden; flex: 1; }
.breaking-scroll { white-space: nowrap; animation: ticker 38s linear infinite; font-style: italic; font-size: 11px; }
@keyframes ticker { 0%{transform:translateX(100%)} 100%{transform:translateX(-100%)} }

/* ═══ VIEWS ═══ */
.view { display: none; }
.view.active { display: block; }

/* ═══ FRONT PAGE ═══ */
#view-front { padding: 0 24px 32px; }
.fold-date { text-align: center; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); padding: 7px 0; border-bottom: 1px solid var(--ink-5); margin-bottom: 18px; }

.fold-grid { display: grid; grid-template-columns: 210px 1fr 210px; gap: 0; border-bottom: 2px solid var(--rule); padding-bottom: 20px; margin-bottom: 20px; }
.fold-l { padding-right: var(--gap); border-right: var(--id-colrule); }
.fold-m { padding: 0 var(--gap); }
.fold-r { padding-left: var(--gap); }

.three-col { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; border-bottom: 2px solid var(--rule); padding-bottom: 20px; margin-bottom: 20px; }
.three-col .col { padding: 0 var(--gap) 0 0; border-right: var(--id-colrule); }
.three-col .col:first-child { padding-left: 0; }
.three-col .col:nth-child(2) { padding-left: var(--gap); }
.three-col .col:last-child { border-right: none; padding-right: 0; padding-left: var(--gap); }

/* Layout B: 2-col tabloid */
.layout-b .fold-grid { grid-template-columns: 1fr 280px; }
.layout-b .fold-l { display: none; }
.layout-b .fold-m { padding-left: 0; }

/* Layout C: enkelt tophistorie + 4-col */
.layout-c .fold-grid { grid-template-columns: 1fr; }
.layout-c .fold-l, .layout-c .fold-r { display: none; }
.layout-c .fold-m { padding: 0; }
.layout-c .three-col { grid-template-columns: repeat(4,1fr); }

/* ═══ TYPOGRAFI ═══ */
.kicker { font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); display: block; margin-bottom: 4px; }
.kicker.special { color: var(--banana); }

.hed-xl { font-family:'Playfair Display',serif; font-size:clamp(26px,3.8vw,44px); font-weight:900; line-height:1.05; margin-bottom:8px; }
.hed-lg { font-family:'Playfair Display',serif; font-size:clamp(18px,2.5vw,28px); font-weight:700; line-height:1.1; margin-bottom:7px; }
.hed-md { font-family:'Playfair Display',serif; font-size:18px; font-weight:700; line-height:1.2; margin-bottom:6px; }
.hed-sm { font-family:'Playfair Display',serif; font-size:15px; font-weight:700; line-height:1.25; margin-bottom:5px; }

.deck { font-size:13px; line-height:1.55; color:var(--ink-3); font-style:italic; padding:6px 0; border-top:1px solid var(--ink-5); border-bottom:1px solid var(--ink-5); margin-bottom:10px; }
.byline { font-size:10.5px; color:var(--ink-4); text-transform:uppercase; letter-spacing:.07em; margin-bottom:9px; }
.byline strong { color:var(--ink-3); }

.body { font-size:13.5px; line-height:1.72; color:var(--ink); }
.body p { margin-bottom:.8em; }
.body p:first-child::first-letter {
  font-family:'Playfair Display',serif; font-size:4.2em; font-weight:900;
  float:left; line-height:.72; padding-right:7px; padding-top:5px;
  background: var(--id-drop-bg); color: var(--id-drop-color);
}
.body-blocks p:first-child::first-letter {
  float:none; font-size:inherit; font-weight:inherit; font-family:inherit;
  padding:0; margin:0; background:none; color:inherit; line-height:inherit;
}
.art-main .body-blocks { columns:1; }
.body blockquote { border-left:3px solid var(--rule); padding:5px 12px; margin:12px 0; font-style:italic; color:var(--ink-3); }

.pull-quote { border-top:2px solid var(--rule); border-bottom:2px solid var(--rule); padding:10px 6px; margin:16px 0; text-align:center; }
.pull-quote p { font-family:'Playfair Display',serif; font-size:15px; font-style:italic; font-weight:700; line-height:1.3; }
.pull-quote cite { display:block; font-size:10px; font-style:normal; text-transform:uppercase; letter-spacing:.09em; color:var(--ink-3); margin-top:5px; }

hr.rule { border:none; border-top:1px solid var(--ink-5); margin:12px 0; }
hr.thick { border:none; border-top:2px solid var(--rule); margin:14px 0; }

/* ═══ PHOTO ═══ */
.photo-wrap { margin-bottom:10px; }
.photo-img { width:100%; display:block; border:1px solid var(--ink-5); object-fit:cover; }
.photo-ph { width:100%; background:var(--paper-aged); border:1px solid var(--ink-5); display:flex; align-items:center; justify-content:center; font-size:11px; color:var(--ink-4); font-style:italic; }
.photo-ph.h-xs{height:60px} .photo-ph.h-sm{height:110px} .photo-ph.h-md{height:160px} .photo-ph.h-lg{height:210px} .photo-ph.h-xl{height:290px}
.photo-cap { font-size:11px; color:var(--ink-3); font-style:italic; margin-top:4px; line-height:1.4; }
.photo-cred { font-size:10px; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-4); }

/* ═══ SECTION HEAD ═══ */
.sec-head { border-top: var(--id-sec-border); border-bottom:1px solid var(--ink-5); padding:4px 0; margin-bottom:13px; display:flex; justify-content:space-between; align-items:baseline; }
.sec-head h3 { font-family:'Playfair Display',serif; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform: var(--id-sec-style); }
.sec-head a { font-size:11px; color:var(--ink-3); font-style:italic; text-decoration:none; cursor:pointer; }

.box { border:1.5px solid var(--rule); padding:11px 13px; margin-bottom:13px; }
.box-title { font-family:'Playfair Display',serif; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; border-bottom:1px solid var(--ink-5); padding-bottom:5px; margin-bottom:9px; }
.box.hi { background:var(--paper-aged); border-color: var(--rule); }
.box p { font-size:12.5px; line-height:1.6; margin-bottom:.6em; }
.box p:last-child { margin-bottom:0; }

.obs-list { list-style:none; }
.obs-item { padding:8px 0; border-bottom:1px solid var(--ink-5); }
.obs-item:last-child { border-bottom:none; }
.obs-location { font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.09em; color:var(--ink-3); margin-bottom:2px; }
.obs-text { font-size:12.5px; line-height:1.5; font-style:italic; }
.obs-date { font-size:10px; color:var(--ink-4); margin-top:2px; }

.art-card { padding:11px 0; border-bottom:1px solid var(--ink-5); cursor:pointer; transition:background .1s; }
.art-card:hover { background:var(--paper-dark); margin:0 -8px; padding-left:8px; padding-right:8px; }
.art-card:last-child { border-bottom:none; }

/* ═══ FULL ARTICLE ═══ */
#view-article { padding:20px 28px 40px; }
.art-nav { display:flex; justify-content:space-between; align-items:center; padding-bottom:10px; border-bottom:3px solid var(--rule); margin-bottom:20px; }
.btn-back { background:none; border:none; font-family:'Lora',serif; font-size:12px; font-style:italic; color:var(--ink-3); cursor:pointer; text-decoration:underline; padding:0; }
.btn-back:hover { color:var(--ink); }
.art-full { display:grid; grid-template-columns:1fr 250px; gap:0; }
.art-main { padding-right:24px; border-right:var(--id-colrule); }
.art-main .body { columns:2; column-gap:22px; column-rule:var(--id-colrule); font-size:14.5px; }
.art-main .body blockquote { column-span:all; }
.art-main .body .pull-quote,
.art-main .body .pa-pullquote,
.art-main .body .pa-quote,
.art-main .body .pa-obsbox,
.art-main .body .pa-figure,
.art-main .body .pa-divider { column-span:all; }
.art-side { padding-left:22px; }

/* ═══════════════════════════════════════════════════════
   BLOCK EDITOR
   Blokbaseret editor — ren manuel oprettelse
═══════════════════════════════════════════════════════ */
#view-editor { padding:0; }

.editor-shell { display:grid; grid-template-columns:1fr 320px; min-height:100vh; }

/* Venstre: editor */
.editor-left { border-right:2px solid var(--rule); }

.editor-topbar {
  background:var(--ink); color:var(--paper);
  padding:10px 20px; display:flex; align-items:center; gap:12px; flex-wrap:wrap;
}
.editor-topbar h2 { font-family:'Playfair Display',serif; font-size:16px; font-weight:700; flex:1; }
.editor-topbar input {
  background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2);
  color:var(--paper); padding:5px 10px; font-family:'Lora',serif; font-size:13px;
  width:260px; outline:none;
}
.editor-topbar input::placeholder { color:rgba(255,255,255,0.45); }

.editor-toolbar {
  background:var(--paper-aged); border-bottom:1px solid var(--ink-5);
  padding:8px 20px; display:flex; gap:6px; flex-wrap:wrap; align-items:center;
}
.editor-toolbar .tb-label { font-size:10px; text-transform:uppercase; letter-spacing:.09em; color:var(--ink-4); margin-right:4px; }

/* Block palette — "Tilføj blok" knapper */
.add-block-btn {
  padding:4px 10px; background:var(--paper); border:1px solid var(--ink-5);
  font-family:'Lora',serif; font-size:10.5px; font-weight:600; text-transform:uppercase;
  letter-spacing:.07em; cursor:pointer; transition:background .1s, border-color .1s;
  color:var(--ink-3);
}
.add-block-btn:hover { background:var(--ink); color:var(--paper); border-color:var(--ink); }

/* Canvas — den midterste editoroverflade */
.editor-canvas { padding:28px 32px; min-height:600px; position:relative; }

/* Hvert blok-element */
.ed-block {
  position:relative; margin-bottom:4px;
}
.ed-block:hover .block-controls { opacity:1; }

.block-controls {
  position:absolute; right:-48px; top:0;
  display:flex; flex-direction:column; gap:3px;
  opacity:0; transition:opacity .15s; z-index:10;
}
.block-ctrl {
  width:28px; height:28px; background:var(--paper-aged); border:1px solid var(--ink-5);
  font-size:13px; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .1s; user-select:none;
}
.block-ctrl:hover { background:var(--ink); color:var(--paper); }

/* Redigerbare blokke — contenteditable styling */
.ed-block [contenteditable] {
  outline:none; cursor:text; border-bottom:1px dashed transparent;
  transition:border-color .15s;
}
.ed-block [contenteditable]:focus { border-bottom-color:var(--banana); }
.ed-block [contenteditable]:empty::before { content:attr(data-ph); color:var(--ink-4); font-style:italic; }

/* Billede-blok */
.ed-image-block { position:relative; }
.ed-image-upload {
  width:100%; min-height:120px; background:var(--paper-aged);
  border:2px dashed var(--ink-5); display:flex; flex-direction:column;
  align-items:center; justify-content:center; cursor:pointer;
  transition:border-color .15s; position:relative;
}
.ed-image-upload:hover { border-color:var(--ink); }
.ed-image-upload input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
.ed-image-upload p { font-size:12px; color:var(--ink-4); font-style:italic; pointer-events:none; }
.ed-image-preview { position:relative; }
.ed-image-preview img { width:100%; display:block; }
.ed-image-change { position:absolute; top:6px; right:6px; background:var(--ink); color:var(--paper); border:none; padding:4px 8px; font-size:10px; font-family:'Lora',serif; cursor:pointer; }

/* Blok-typer i editoren */
.ed-block.b-headline .ed-content { font-family:'Playfair Display',serif; font-size:32px; font-weight:900; line-height:1.05; }
.ed-block.b-deck .ed-content { font-size:14px; line-height:1.55; font-style:italic; color:var(--ink-3); border-top:1px solid var(--ink-5); border-bottom:1px solid var(--ink-5); padding:6px 0; }
.ed-block.b-byline .ed-content { font-size:11px; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-4); }
.ed-block.b-paragraph .ed-content { font-size:14px; line-height:1.72; }
.ed-block.b-pullquote .ed-content { border-top:2px solid var(--rule); border-bottom:2px solid var(--rule); padding:10px 6px; text-align:center; font-family:'Playfair Display',serif; font-size:16px; font-style:italic; font-weight:700; line-height:1.3; }
.ed-block.b-quote .ed-content { border-left:3px solid var(--rule); padding:5px 12px; font-style:italic; color:var(--ink-3); }
.ed-block.b-caption .ed-content { font-size:11px; color:var(--ink-3); font-style:italic; }
.ed-block.b-obsbox { background:var(--paper-aged); border:1.5px solid var(--rule); padding:10px 13px; }
.ed-block.b-obsbox .ed-content { font-size:13px; line-height:1.6; }
.ed-block.b-divider { border-top:1px solid var(--ink-5); padding:0; height:1px; margin:16px 0; }
.ed-block.b-kicker .ed-content { font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); }

/* Tilføj-blok zone (vises mellem blokke) */
.add-zone {
  height:20px; display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .15s; position:relative;
}
.add-zone:hover { opacity:1; }
.add-zone-btn {
  width:22px; height:22px; background:var(--paper-dark); border:1px solid var(--rule);
  border-radius:50%; font-size:15px; cursor:pointer; display:flex; align-items:center;
  justify-content:center; line-height:1; color:var(--ink); font-family:sans-serif;
  transition:background .1s;
}
.add-zone-btn:hover { background:var(--ink); color:var(--paper); }

/* Block type picker popup */
.block-picker {
  background:var(--paper); border:2px solid var(--rule);
  padding:12px; display:none; position:absolute;
  z-index:200; width:280px;
  box-shadow:3px 3px 0 var(--ink-5);
}
.block-picker.open { display:block; }
.block-picker-title { font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-3); margin-bottom:8px; font-weight:700; }
.block-picker-grid { display:grid; grid-template-columns:1fr 1fr; gap:5px; }
.bpick-item {
  padding:7px 10px; border:1px solid var(--ink-5); cursor:pointer;
  transition:background .1s; font-size:11.5px; font-family:'Lora',serif;
}
.bpick-item:hover { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.bpick-item .bpi-icon { font-size:14px; display:block; margin-bottom:2px; }
.bpick-item .bpi-name { font-weight:600; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; }
.bpick-item .bpi-desc { font-size:10px; color:var(--ink-4); margin-top:1px; font-style:italic; }

/* Højre panel: sidebarlayout */
.editor-right { padding:20px; background:var(--paper-dark); overflow-y:auto; }
.editor-panel-section { margin-bottom:20px; }
.editor-panel-section h3 { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-3); padding-bottom:6px; border-bottom:1px solid var(--ink-5); margin-bottom:10px; }

/* Artikel-metadata felter i sidebar */
.meta-field { margin-bottom:10px; }
.meta-field label { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.09em; color:var(--ink-4); margin-bottom:4px; }
.meta-field input, .meta-field select, .meta-field textarea {
  width:100%; background:var(--paper); border:1px solid var(--ink-5);
  padding:6px 8px; font-family:'Lora',serif; font-size:12.5px; color:var(--ink);
  outline:none; border-radius:0; -webkit-appearance:none;
}
.meta-field input:focus, .meta-field select:focus, .meta-field textarea:focus { border-color:var(--rule); }
.meta-field textarea { resize:vertical; min-height:60px; }

/* Template picker */
.tmpl-grid { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.tmpl-card {
  border:2px solid var(--ink-5); padding:8px; cursor:pointer;
  transition:border-color .1s; text-align:center;
}
.tmpl-card:hover { border-color:var(--rule); }
.tmpl-card.active { border-color:var(--rule); background:var(--paper-aged); }
.tmpl-card .tmpl-preview { display:grid; gap:2px; margin-bottom:5px; height:36px; }
.tmpl-card .tmpl-name { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.tmpl-bar { background:var(--ink); border-radius:1px; }
.tmpl-bar.thin { opacity:.35; }

/* Typografisk identitet picker (ingen farver) */
.id-picker { display:flex; flex-direction:column; gap:6px; }
.id-opt { display:flex; gap:8px; padding:8px 10px; border:1px solid var(--ink-5); cursor:pointer; align-items:flex-start; transition:background .1s; }
.id-opt:hover { background:var(--paper); }
.id-opt.active { border-color:var(--rule); background:var(--paper); }
.id-opt input { margin-top:2px; flex-shrink:0; accent-color:var(--ink); }
.id-opt .id-preview { flex:1; }
.id-opt .id-preview-rule { height:3px; background:var(--rule); margin-bottom:2px; }
.id-opt .id-preview-rule2 { height:1px; background:var(--rule); margin-bottom:4px; }
.id-opt .id-preview-title { font-family:'Playfair Display',serif; font-size:11px; font-weight:900; }
.id-opt .id-preview-sec { font-size:9px; text-transform:uppercase; letter-spacing:.1em; margin-top:4px; color:var(--ink-3); border-top:2px solid var(--rule); padding-top:2px; }
.id-opt .id-label { font-size:10px; color:var(--ink-3); font-style:italic; margin-top:2px; }

/* ═══ SUBMIT FORM ═══ */
#view-submit { padding:20px 28px 48px; }
.form-top { border-bottom:3px solid var(--rule); padding-bottom:12px; margin-bottom:22px; }
.form-top h2 { font-family:'Playfair Display',serif; font-size:24px; font-weight:700; margin-bottom:4px; }
.form-top p { font-size:13px; font-style:italic; color:var(--ink-3); }
.form-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-3); margin-bottom:4px; }
.form-group input, .form-group select, .form-group textarea {
  width:100%; background:var(--paper); border:1.5px solid var(--ink-5);
  border-bottom-color:rgba(26,23,20,0.25); padding:8px 10px;
  font-family:'Lora',serif; font-size:13.5px; color:var(--ink);
  outline:none; border-radius:0; -webkit-appearance:none; transition:border-color .15s;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--rule); box-shadow:0 2px 0 0 var(--ink); }
.form-group textarea { resize:vertical; min-height:120px; line-height:1.6; }
.upload-zone { border:2px dashed rgba(26,23,20,0.2); padding:24px; text-align:center; cursor:pointer; position:relative; transition:border-color .15s,background .15s; }
.upload-zone:hover { border-color:var(--rule); background:var(--paper-dark); }
.upload-zone input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
.upload-zone p { font-size:12px; color:var(--ink-3); font-style:italic; }
.upload-zone .hint { font-size:10px; color:var(--ink-4); margin-top:3px; }
.thumbs { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.thumb { width:60px; height:60px; background:var(--paper-aged); border:1px solid var(--ink-5); overflow:hidden; display:flex; align-items:center; justify-content:center; font-size:10px; color:var(--ink-4); }
.thumb img { width:100%; height:100%; object-fit:cover; }
.btn-submit { background:var(--ink); color:var(--paper); border:none; padding:12px 32px; font-family:'Playfair Display',serif; font-size:15px; font-weight:700; cursor:pointer; transition:opacity .15s; }
.btn-submit:hover { opacity:.82; }
.form-tip { font-size:11px; color:var(--ink-3); font-style:italic; margin-top:8px; }
.form-success { display:none; border:2px solid var(--rule); padding:28px; text-align:center; margin-top:20px; }
.form-success h3 { font-family:'Playfair Display',serif; font-size:20px; margin-bottom:8px; }

/* ═══════════════════════════════════════════════════════
   ELEV DASHBOARD + MISSIONER
═══════════════════════════════════════════════════════ */
.dash-header { text-align:center; margin-bottom:24px; }
.dash-header h2 { font-family:'Playfair Display',serif; font-size:24px; font-weight:900; }
.dash-xp-wrap { max-width:320px; margin:12px auto 0; }
.dash-xp-bar { background:var(--ink-5); border-radius:10px; height:18px; overflow:hidden; position:relative; }
.dash-xp-fill { background:var(--banana,#f5c518); height:100%; border-radius:10px; transition:width .5s ease; }
.dash-xp-label { font-size:11px; color:var(--ink-3); text-align:center; margin-top:4px; }
.dash-level { display:inline-block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  padding:3px 10px; border-radius:12px; background:var(--banana,#f5c518); color:var(--ink); margin-top:6px; }

.dash-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:20px; }
.dash-card {
  background:var(--surface); border:2px solid var(--border); border-radius:14px;
  padding:32px 20px; text-align:center; cursor:pointer; transition:box-shadow .2s,border-color .2s,transform .15s;
  min-height:120px; display:flex; flex-direction:column; align-items:center; justify-content:center;
}
.dash-card:hover { border-color:var(--banana,#f5c518); box-shadow:0 6px 20px rgba(0,0,0,.12); transform:translateY(-2px); }
.dash-card:active { transform:translateY(0); }
.dash-card .dash-icon { font-size:36px; margin-bottom:10px; }
.dash-card .dash-label { font-family:'Playfair Display',serif; font-size:16px; font-weight:700; }
.dash-card .dash-sub { font-size:11px; color:var(--ink-3); margin-top:4px; }
.dash-wide { grid-column: span 1; }
.dash-notif { background:var(--paper-aged); border:1px solid var(--rule); border-radius:8px; padding:12px 16px; margin-top:16px; font-size:13px; }

.mission-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; margin-top:16px; }
.mission-card {
  background:var(--surface); border:2px solid var(--border); border-radius:10px;
  padding:20px 16px; cursor:pointer; transition:box-shadow .2s, border-color .2s;
}
.mission-card:hover { border-color:var(--banana,#f5c518); box-shadow:0 4px 16px rgba(0,0,0,.1); }
.mission-card h3 { font-family:'Playfair Display',serif; font-size:16px; font-weight:700; margin-bottom:6px; }
.mission-card .mc-role { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-3); }
.mission-card .mc-meta { display:flex; gap:8px; margin-top:10px; font-size:11px; color:var(--ink-4); flex-wrap:wrap; }
.mc-badge { display:inline-block; font-size:10px; font-weight:700; padding:2px 8px; border-radius:4px; }
.mc-badge.let { background:#27ae60; color:#fff; }
.mc-badge.mellem { background:#f39c12; color:#fff; }
.mc-badge.svær { background:#e74c3c; color:#fff; }

.mission-detail { max-width:660px; margin:0 auto; }
.mission-detail h2 { font-family:'Playfair Display',serif; font-size:22px; font-weight:900; margin-bottom:4px; }
.mission-detail .md-meta { display:flex; gap:12px; font-size:12px; color:var(--ink-3); margin-bottom:20px; flex-wrap:wrap; }
.mission-detail .md-section { margin-bottom:20px; }
.mission-detail .md-section h3 { font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-3); margin-bottom:8px; border-bottom:1px solid var(--rule); padding-bottom:4px; }
.mission-detail ol { padding-left:20px; line-height:1.8; font-size:14px; }
.mission-detail ul { padding-left:20px; line-height:1.7; font-size:13px; color:var(--ink-3); }
.mission-detail .md-work { background:var(--paper-aged); border:2px solid var(--rule); border-radius:10px; padding:20px; margin-top:24px; }
.mission-detail .md-work h3 { font-size:16px; font-weight:700; margin-bottom:12px; }
.mission-detail .md-work textarea { width:100%; min-height:150px; border:1px solid var(--ink-5); border-radius:8px; padding:12px; font-size:14px; font-family:inherit; resize:vertical; }
.mission-detail .md-submit-btn { display:block; width:100%; padding:16px; margin-top:16px; font-size:16px; font-weight:700;
  background:var(--banana,#f5c518); color:var(--ink); border:none; border-radius:10px; cursor:pointer; font-family:inherit;
  transition:transform .15s, box-shadow .2s; }
.mission-detail .md-submit-btn:hover { transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,.15); }
.mission-detail .md-submit-btn:active { transform:translateY(0); }
.md-success { text-align:center; padding:40px 20px; }
.md-success .xp-burst { font-size:48px; font-weight:900; font-family:'Playfair Display',serif; color:var(--banana,#f5c518); animation:xpPop .6s ease; }
@keyframes xpPop { 0%{transform:scale(0);opacity:0} 50%{transform:scale(1.3)} 100%{transform:scale(1);opacity:1} }

.learn-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:16px; margin-top:16px; }
.learn-card {
  background:var(--surface); border:2px solid var(--border); border-radius:10px;
  padding:24px 16px; text-align:center; cursor:pointer; transition:box-shadow .2s, border-color .2s;
}
.learn-card:hover { border-color:var(--banana,#f5c518); box-shadow:0 4px 16px rgba(0,0,0,.1); }
.learn-card .lc-icon { font-size:32px; margin-bottom:8px; }
.learn-card .lc-title { font-family:'Playfair Display',serif; font-size:14px; font-weight:700; }

.profil-header { text-align:center; margin-bottom:24px; }
.profil-header .ph-avatar { width:64px; height:64px; border-radius:50%; background:var(--banana,#f5c518); color:var(--ink);
  font-family:'Playfair Display',serif; font-size:24px; font-weight:900; display:flex; align-items:center; justify-content:center; margin:0 auto 8px; }
.profil-missions { margin-top:20px; }
.profil-missions .pm-row { display:flex; align-items:center; gap:12px; padding:10px 14px; border:1px solid var(--border); border-radius:6px; margin-bottom:8px; }
.profil-missions .pm-title { font-weight:600; flex:1; }
.profil-missions .pm-xp { font-size:12px; color:var(--banana,#f5c518); font-weight:700; }
.profil-missions .pm-date { font-size:11px; color:var(--ink-4); }

.msub-row { border:1px solid var(--border); border-radius:8px; padding:12px 16px; margin-bottom:10px; cursor:pointer; transition:background .15s; }
.msub-row:hover { background:var(--paper-aged); }
.msub-row .msr-top { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.msub-row .msr-name { font-weight:700; }
.msub-row .msr-mission { font-size:12px; color:var(--ink-3); }
.msub-row .msr-date { font-size:11px; color:var(--ink-4); margin-left:auto; }
.msub-detail { padding:12px 0; border-top:1px solid var(--rule); margin-top:10px; }
.msub-detail textarea { width:100%; min-height:60px; border:1px solid var(--ink-5); border-radius:6px; padding:8px; font-size:12px; margin-top:6px; }
.msub-detail .msub-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.msub-images { display:flex; gap:8px; flex-wrap:wrap; margin-top:8px; }
.msub-images img { width:100px; height:75px; object-fit:cover; border-radius:4px; border:1px solid var(--ink-5); }

@media(max-width:600px) {
  .dash-grid { grid-template-columns:1fr; }
  .mission-grid { grid-template-columns:1fr; }
  .learn-grid { grid-template-columns:1fr; }
}

/* ── Røvbanan-Legen 2.0 ── */
.rov-start-card {
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  padding:24px 14px; border:2px solid var(--ink-5); border-radius:10px; cursor:pointer;
  transition:all .2s; text-align:center; background:var(--paper);
}
.rov-start-card:hover { border-color:var(--banana); box-shadow:0 0 16px rgba(201,150,14,.25); transform:translateY(-2px); }
.rov-start-card.rov-selected { border-color:var(--ink); background:var(--ink); color:var(--paper); }
/* Card flip */
.rov-card { perspective:600px; cursor:pointer; }
.rov-card-inner {
  position:relative; width:100%; height:100%; transition:transform .6s;
  transform-style:preserve-3d;
}
.rov-card-flipped .rov-card-inner { transform:rotateY(180deg); }
.rov-card-front, .rov-card-back {
  position:absolute; inset:0; backface-visibility:hidden; border-radius:8px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  border:2px solid var(--ink-5); padding:10px;
}
.rov-card-front { background:var(--ink); color:var(--paper); }
.rov-card-back { background:var(--paper-aged); transform:rotateY(180deg); }

/* Scanner */
.rov-scanner { width:200px; height:200px; margin:0 auto; border:3px solid var(--ink-5); border-radius:12px; position:relative; overflow:hidden; background:var(--paper-aged); }
.rov-scanner-bar {
  position:absolute; left:0; right:0; height:4px; background:var(--banana);
  box-shadow:0 0 12px var(--banana), 0 0 30px rgba(201,150,14,.4);
  animation: rovScanAnim 1.5s ease-in-out infinite;
}
@keyframes rovScanAnim { 0%{top:0} 50%{top:calc(100% - 4px)} 100%{top:0} }

/* XP reward burst */
.rov-xp-reward { margin:16px 0; }
.rov-xp-burst {
  display:inline-block; font-size:32px; font-weight:900; color:var(--banana);
  font-family:var(--ff-hed); animation: rovXpPop .6s ease-out;
  text-shadow: 0 0 20px rgba(201,150,14,.5);
}
@keyframes rovXpPop { 0%{transform:scale(0);opacity:0} 50%{transform:scale(1.3)} 100%{transform:scale(1);opacity:1} }

/* Level up celebration */
.rov-levelup {
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:16px; margin:12px auto; max-width:300px;
  border:3px solid var(--banana); border-radius:12px;
  background:linear-gradient(135deg, rgba(201,150,14,.1), rgba(201,150,14,.05));
  animation: rovLevelGlow 1.5s ease-in-out infinite alternate;
}
@keyframes rovLevelGlow {
  0%{box-shadow:0 0 10px rgba(201,150,14,.2)} 100%{box-shadow:0 0 30px rgba(201,150,14,.5)}
}

/* Result reveal */
.rov-result-reveal { animation: rovFadeIn .5s ease-out; }
@keyframes rovFadeIn { 0%{opacity:0;transform:translateY(20px)} 100%{opacity:1;transform:translateY(0)} }

/* ═══════════════════════════════════════════════════════
   ARKIV
═══════════════════════════════════════════════════════ */
.arkiv-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:18px; margin-top:20px; }
.arkiv-card {
  background:var(--surface); border:2px solid var(--border); border-radius:10px;
  padding:22px 18px; text-align:center; cursor:pointer; transition:box-shadow .2s, border-color .2s;
}
.arkiv-card:hover { border-color:var(--accent,#c0392b); box-shadow:0 4px 16px rgba(0,0,0,.1); }
.arkiv-nr { font-family:'Playfair Display',serif; font-size:32px; font-weight:900; color:var(--ink); }
.arkiv-title { font-size:13px; color:var(--ink-3); margin-top:4px; }
.arkiv-date { font-size:12px; color:var(--ink-4); margin-top:8px; }
.arkiv-badge {
  display:inline-block; font-size:10px; font-weight:700; text-transform:uppercase;
  padding:2px 8px; border-radius:4px; margin-top:8px;
}
.arkiv-badge.published { background:#27ae60; color:#fff; }
.arkiv-badge.archived { background:var(--ink-4); color:#fff; }
.arkiv-edition-view { margin-top:20px; }
.arkiv-edition-view .front-grid { pointer-events:none; }

/* ═══════════════════════════════════════════════════════
   SEKTIONER
═══════════════════════════════════════════════════════ */
.sec-manager-list { display:flex; flex-direction:column; gap:8px; }
.sec-manager-row { display:flex; align-items:center; gap:10px; padding:10px 14px;
  border:1px solid var(--border); border-radius:6px; background:var(--surface); transition:opacity .2s; }
.sec-manager-row.dragging { opacity:.4; }
.sec-drag-handle { cursor:grab; font-size:18px; color:var(--ink-4); user-select:none; min-width:24px; text-align:center; }
.sec-manager-row input { border:1px solid var(--ink-5); border-radius:4px; padding:5px 8px; }

.section-header { border-bottom:3px solid var(--rule); padding-bottom:12px; margin-bottom:20px; }
.section-header h2 { font-family:'Playfair Display',serif; font-size:26px; font-weight:900; }
.section-header p { font-size:13px; font-style:italic; color:var(--ink-3); margin-top:4px; }
.section-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.section-grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.section-list { display:flex; flex-direction:column; gap:20px; max-width:700px; }
.section-feature .feature-hero { margin-bottom:24px; }
.section-feature .feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.pa-sec-header { font-family:'Playfair Display',serif; font-size:16px; font-weight:900;
  border-bottom:2px solid #1a1714; padding-bottom:4px; margin-bottom:12px; }
.weather-box { background:var(--paper-aged); border:1px solid var(--rule); border-radius:8px; padding:12px 16px; margin-top:16px; }
.weather-box h4 { font-family:'Playfair Display',serif; font-size:14px; margin-bottom:4px; }
.weather-box p { font-size:12px; color:var(--ink-3); margin:0; }
@media(max-width:600px) {
  .section-grid-3, .section-grid-2, .section-feature .feature-grid { grid-template-columns:1fr; }
  .sec-manager-row { flex-wrap:wrap; }
}

/* ═══════════════════════════════════════════════════════
   ADMIN PANELS — tre niveauer
═══════════════════════════════════════════════════════ */
#view-admin { padding:0 28px 48px; }

.admin-bar {
  background:var(--ink); color:var(--paper);
  margin:0 -28px 22px; padding:14px 28px;
  display:flex; align-items:center; justify-content:space-between;
}
.admin-bar h2 { font-family:'Playfair Display',serif; font-size:18px; font-weight:700; }
.admin-bar .sub { font-size:10.5px; opacity:.6; font-style:italic; margin-top:2px; }
.admin-bar-actions { display:flex; gap:8px; }

/* Org switcher */
.org-pills { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:20px; }
.org-pill {
  padding:5px 13px; font-size:11px; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; border:1.5px solid var(--ink-5); cursor:pointer;
  font-family:'Lora',serif; transition:background .1s; user-select:none; background:var(--paper);
}
.org-pill:hover { border-color:var(--rule); }
.org-pill.active { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.org-pill[data-tier=school] { border-left:3px solid var(--banana); }
.org-pill[data-tier=class] { border-left:3px solid var(--ink-4); }

/* Stats */
.admin-stats { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-bottom:20px; }
.stat { border:1px solid var(--ink-5); padding:10px 12px; text-align:center; }
.stat .n { font-family:'Playfair Display',serif; font-size:26px; font-weight:900; line-height:1; margin-bottom:2px; }
.stat .n.hi { color:var(--banana); }
.stat .lbl { font-size:9px; text-transform:uppercase; letter-spacing:.09em; color:var(--ink-3); }

/* Admin tabs */
.admin-tabs { display:flex; border-bottom:2px solid var(--rule); margin-bottom:16px; }
.admin-tab { padding:7px 16px; font-size:11px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; cursor:pointer; border-right:1px solid var(--ink-5); transition:background .1s; font-family:'Lora',serif; color:var(--ink-3); user-select:none; display:flex; align-items:center; gap:5px; }
.admin-tab:hover { background:var(--paper-dark); }
.admin-tab.active { background:var(--ink); color:var(--paper); }
.admin-tab .c { background:var(--banana); color:var(--ink); font-size:8.5px; padding:0 5px; border-radius:8px; font-weight:700; line-height:14px; }
.atab-panel { display:none; }
.atab-panel.active { display:block; }

/* Admin article rows */
.arow { border:1px solid var(--ink-5); padding:13px 15px 13px 34px; margin-bottom:8px; background:var(--paper); transition:border-color .12s; position:relative; }
.arow:hover { border-color:rgba(26,23,20,0.3); }
.arow-meta { font-size:10px; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-3); display:flex; gap:10px; flex-wrap:wrap; margin-bottom:5px; align-items:center; }
.arow-title { font-family:'Playfair Display',serif; font-size:15px; font-weight:700; margin-bottom:5px; }
.arow-excerpt { font-size:12.5px; color:var(--ink-3); font-style:italic; line-height:1.5; margin-bottom:10px; }
.arow-actions { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }

/* Status badges */
.spill { display:inline-block; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; padding:2px 7px; }
.spill.draft     { background:var(--paper-aged); color:var(--ink-3); border:1px solid var(--ink-5); }
.spill.submitted { background:#fdf6e3; color:#7a4d00; border:1px solid rgba(201,150,14,.4); }
.spill.class_pub { background:#eaf3de; color:var(--ok); border:1px solid rgba(26,92,42,.3); }
.spill.sch_nom   { background:#fdf0e0; color:#7a4d00; border:1px solid rgba(201,150,14,.5); }
.spill.sch_pub   { background:#e0edf0; color:#0a4a5c; border:1px solid rgba(10,74,92,.3); }
.spill.main_nom  { background:#ede0fa; color:#4a1a8c; border:1px solid rgba(74,26,140,.3); }
.spill.main_pub  { background:var(--ink); color:var(--paper); }
.spill.rejected  { background:#fcebeb; color:var(--danger); border:1px solid rgba(139,26,26,.3); }

/* Nomination inline banner */
.nom-banner { background:var(--paper-aged); border:1px solid var(--rule); padding:9px 13px; margin-bottom:8px; display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.nom-banner p { font-size:12.5px; font-style:italic; flex:1; margin:0; min-width:200px; }
.nom-note-row { width:100%; display:none; margin-top:6px; }
.nom-note-row input { width:100%; background:var(--paper); border:1px solid var(--ink-5); padding:6px 9px; font-family:'Lora',serif; font-size:12.5px; outline:none; border-radius:0; }

/* Buttons */
.btn { padding:5px 12px; font-family:'Lora',serif; font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.07em; border:none; cursor:pointer; transition:opacity .12s; }
.btn:hover { opacity:.75; }
.btn-ink  { background:var(--ink); color:var(--paper); }
.btn-nom  { background:var(--banana); color:var(--ink); font-weight:700; }
.btn-pub  { background:var(--ok); color:#fff; }
.btn-out  { background:transparent; color:var(--ink); border:1px solid var(--ink-5); }
.btn-view { background:var(--paper-aged); color:var(--ink); border:1px solid var(--ink-5); }
.btn-del  { background:transparent; color:var(--danger); border:1px solid rgba(139,26,26,.3); }
.btn-edit { background:transparent; color:var(--ink-3); border:1px solid var(--ink-5); }

/* Admin login */
.admin-login { max-width:360px; margin:40px auto; border:2px solid var(--rule); padding:28px; text-align:center; }
.admin-login h3 { font-family:'Playfair Display',serif; font-size:20px; font-weight:700; margin-bottom:5px; }
.admin-login p { font-size:12.5px; color:var(--ink-3); font-style:italic; margin-bottom:16px; }
.role-opts { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; text-align:left; }
.role-opt { display:flex; align-items:flex-start; gap:10px; padding:9px 11px; border:1px solid var(--ink-5); cursor:pointer; transition:background .1s; }
.role-opt:hover { background:var(--paper-dark); }
.role-opt input { margin-top:2px; flex-shrink:0; }
.role-opt strong { font-size:12.5px; display:block; }
.role-opt span { font-size:11px; color:var(--ink-3); font-style:italic; }

/* Admin settings panel */
.settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.settings-section { border:1px solid var(--ink-5); padding:16px; }
.settings-section h4 { font-family:'Playfair Display',serif; font-size:13px; font-weight:700; margin-bottom:12px; padding-bottom:6px; border-bottom:1px solid var(--ink-5); }
.settings-row { margin-bottom:10px; }
.settings-row label { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.09em; color:var(--ink-4); margin-bottom:4px; }
.settings-row input, .settings-row select, .settings-row textarea {
  width:100%; background:var(--paper); border:1px solid var(--ink-5); padding:7px 9px;
  font-family:'Lora',serif; font-size:13px; color:var(--ink); outline:none; border-radius:0; -webkit-appearance:none;
}
.settings-row input:focus, .settings-row select:focus { border-color:var(--rule); }
.settings-row textarea { min-height:70px; resize:vertical; }

/* Front page layout editor */
.fp-layout-editor { border:1px solid var(--ink-5); padding:16px; margin-bottom:16px; }
.fp-slots { display:grid; grid-template-columns:180px 1fr 180px; gap:8px; margin-bottom:16px; }
.fp-slot {
  border:1.5px dashed var(--ink-5); padding:10px; min-height:80px;
  cursor:pointer; transition:border-color .15s; position:relative; background:var(--paper);
}
.fp-slot:hover { border-color:var(--rule); }
.fp-slot.filled { border-style:solid; border-color:var(--rule); background:var(--paper-aged); }
.fp-slot-label { font-size:9px; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-4); margin-bottom:4px; }
.fp-slot-content { font-family:'Playfair Display',serif; font-size:11px; font-weight:700; line-height:1.2; }
.fp-slot-clear { position:absolute; top:4px; right:5px; background:none; border:none; cursor:pointer; font-size:12px; color:var(--ink-4); padding:0; }
.fp-slot-clear:hover { color:var(--danger); }

/* Breaking news editor */
.breaking-editor { border:1px solid var(--ink-5); padding:13px; background:var(--paper-aged); margin-bottom:16px; }
.breaking-editor label { font-size:10px; text-transform:uppercase; letter-spacing:.09em; color:var(--ink-3); margin-bottom:5px; display:block; }
.breaking-editor input { width:100%; background:var(--paper); border:1px solid var(--ink-5); padding:7px 10px; font-family:'Lora',serif; font-size:13px; color:var(--ink); outline:none; border-radius:0; margin-bottom:8px; }
.breaking-editor input:focus { border-color:var(--rule); }

/* ═══ FOOTER ═══ */
footer {
  border-top:3px double var(--rule); padding:13px 28px;
  display:flex; justify-content:space-between; align-items:center;
  font-size:10px; color:var(--ink-3); letter-spacing:.05em; gap:10px; flex-wrap:wrap;
}
.footer-logo { font-family:'Playfair Display',serif; font-size:18px; font-weight:900; color:var(--ink); cursor:pointer; }
.footer-csl { font-size:9.5px; color:var(--ink-4); }
.footer-csl a { color:var(--ink-4); text-decoration:none; }
.footer-csl a:hover { text-decoration:underline; }

/* ═══ TOAST ═══ */
.toast { position:fixed; bottom:80px; left:50%; transform:translateX(-50%) translateY(70px); background:var(--ink); color:var(--paper); padding:10px 20px; font-size:12.5px; font-style:italic; box-shadow:3px 3px 0 rgba(0,0,0,.2); z-index:9999; opacity:0; transition:transform .3s,opacity .3s; max-width:340px; text-align:center; border-radius:4px; }
.toast.show { transform:translateX(-50%) translateY(0); opacity:1; }

/* ═══ RESPONSIVE ═══ */
@media(max-width:820px) {
  .fold-grid { grid-template-columns:1fr; }
  .fold-l { order:2; border-right:none; padding:0; border-bottom:1px solid var(--ink-5); padding-bottom:16px; margin-bottom:16px; }
  .fold-m { order:1; padding:0; }
  .fold-r { order:3; padding:0; }
  .three-col { grid-template-columns:1fr; }
  .three-col .col { border-right:none; padding:0 0 16px; border-bottom:1px solid var(--ink-5); }
  .three-col .col:nth-child(2) { padding-left:0; }
  .three-col .col:last-child { border-bottom:none; padding-bottom:0; }
  .art-full { grid-template-columns:1fr; }
  .art-main { padding-right:0; border-right:none; border-bottom:1px solid var(--ink-5); padding-bottom:20px; margin-bottom:20px; }
  .art-main .body { columns:1; }
  .art-side { padding-left:0; }
  .editor-shell { grid-template-columns:1fr; }
  .editor-right { display:none; }
  .admin-stats { grid-template-columns:repeat(3,1fr); }
  .settings-grid { grid-template-columns:1fr; }
  .fp-slots { grid-template-columns:1fr; }
  .form-grid-2 { grid-template-columns:1fr; }
  #view-front,#view-article,#view-submit,#view-admin,.section-view { padding-left:14px; padding-right:14px; }
  .admin-bar { margin:0 -14px 20px; padding:12px 14px; }
  footer { padding:12px 14px; }
  .masthead { padding:12px 14px 10px; }
}
@media(max-width:600px) {
  .main-nav a { padding:7px 10px; font-size:9px; }
  .nav-sec-drop { min-width: 160px; }
  .admin-stats { grid-template-columns:repeat(2,1fr); }
  .arow-actions { flex-direction:column; }
  .arow-actions .btn { width:100%; text-align:center; }
  #sf-placement-btns { grid-template-columns:1fr !important; }
  .arow-title { font-size:13px; }
  .masthead { padding:10px 10px 8px; }
  .mh-style-a .mh-title { font-size:clamp(32px,10vw,52px); }
  .admin-bar { flex-direction:column; gap:8px; text-align:center; }
  .admin-bar-actions { flex-wrap:wrap; justify-content:center; }
  .batch-bar { font-size:11px; padding:6px 10px; }
  .batch-bar .btn { font-size:10px; padding:3px 8px; }
}

/* ═══ TOUCH + PHONE ═══ */
.main-nav a { min-height: 44px; }
.btn, button { min-height: 44px; }
input[type="text"], input[type="email"], input[type="password"], select, textarea { min-height: 44px; }
button:active, .btn:active, .rov-start-card:active { transform: scale(0.97); }

@media(max-width:480px) {
  .main-nav { padding: 4px 8px; }
  .main-nav a { padding: 8px 10px; font-size: 9px; min-height: 44px; }
  .masthead { padding: 8px 10px 6px; }
  .mh-style-a .mh-title { font-size: clamp(28px, 9vw, 42px); }
  .admin-stats { grid-template-columns: 1fr 1fr; }
  .dash-grid, .mission-grid, .learn-grid { grid-template-columns: 1fr; gap: 8px; }
  .rov-start-card { padding: 16px 10px; }
  .admin-tab-btn { padding: 8px 12px; font-size: 10px; min-height: 44px; }
  #view-front, #view-article, #view-submit, #view-admin, .section-view { padding-left: 10px; padding-right: 10px; }
}

/* ═══ NY!-BADGE ═══ */
.ny-badge { display:inline-block; background:var(--banana); color:var(--ink); font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; padding:1px 6px; margin-left:6px; vertical-align:middle; animation:ny-pulse 2s ease-in-out infinite; }
@keyframes ny-pulse { 0%,100%{opacity:1} 50%{opacity:.7} }

/* ═══ AVATAR CIRCLE ═══ */
.avatar-circle { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; font-size:10px; font-weight:700; color:#fff; flex-shrink:0; letter-spacing:.02em; font-family:'Lora',serif; }
.byline-row { display:flex; align-items:center; gap:7px; margin-top:2px; }

/* ═══ BATCH BAR ═══ */
.batch-bar { display:none; position:sticky; top:0; z-index:20; background:var(--ink); color:var(--paper); padding:8px 16px; align-items:center; gap:10px; flex-wrap:wrap; font-size:12px; }
.batch-bar.show { display:flex; }
.batch-bar .batch-count { font-weight:700; margin-right:4px; }
.batch-bar .btn { font-size:11px; padding:4px 10px; }
.batch-bar .btn-batch-pub { background:var(--ok); color:#fff; border:none; cursor:pointer; }
.batch-bar .btn-batch-rej { background:var(--ink-3); color:#fff; border:none; cursor:pointer; }
.batch-bar .btn-batch-del { background:var(--danger); color:#fff; border:none; cursor:pointer; }
.batch-bar .btn-batch-cancel { background:transparent; color:var(--paper); border:1px solid var(--paper); cursor:pointer; opacity:.7; }
.batch-bar .btn-batch-cancel:hover { opacity:1; }
.select-all-row { display:flex; align-items:center; gap:8px; padding:6px 0 2px; font-size:11px; color:var(--ink-3); }
.select-all-row input { width:16px; height:16px; cursor:pointer; accent-color:var(--banana); }

/* ═══════════════════════════════════════════════════════
   PRINT AVIS — overlay + print-specific layout
═══════════════════════════════════════════════════════ */
.print-overlay {
  display:none; position:fixed; inset:0; z-index:10000;
  background:rgba(0,0,0,0.7); overflow-y:auto;
}
.print-overlay.active { display:block; }
.print-controls {
  position:sticky; top:0; z-index:10001;
  background:var(--ink); color:var(--paper);
  padding:10px 24px; display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  font-size:12px; font-family:'Lora',serif;
}
.print-controls .btn-print { background:var(--banana); color:var(--ink); border:none; padding:7px 18px; font-weight:700; cursor:pointer; font-size:12px; letter-spacing:.05em; text-transform:uppercase; }
.print-controls .btn-close-print { background:transparent; color:var(--paper); border:1px solid rgba(255,255,255,.3); padding:6px 14px; cursor:pointer; font-size:12px; }
.print-controls label { display:flex; align-items:center; gap:5px; cursor:pointer; }
.print-controls select { background:var(--ink-2); color:var(--paper); border:1px solid var(--ink-3); padding:4px 8px; font-size:11px; cursor:pointer; }
.print-preview-wrap {
  max-width:1200px; margin:20px auto; padding:0 20px;
}

/* ── Print sheet ── */
.pa-sheet {
  background:#fff; color:#1a1714; font-family:'Lora',Georgia,serif;
  padding:40px 48px; margin-bottom:24px; box-shadow:0 4px 30px rgba(0,0,0,.4);
}
.pa-sheet.bw { filter:grayscale(1); }

/* Masthead */
.pa-masthead {
  text-align:center; border-bottom:4px solid #1a1714; padding-bottom:14px; margin-bottom:6px;
  position:relative;
}
.pa-masthead::after {
  content:''; display:block; border-top:1px solid #1a1714; margin-top:2px;
}
.pa-mh-meta {
  display:flex; justify-content:space-between; align-items:center;
  font-size:9px; text-transform:uppercase; letter-spacing:.1em; color:#5a5550;
  padding-bottom:6px; border-bottom:1px solid rgba(26,23,20,.15); margin-bottom:8px;
}
.pa-mh-title {
  font-family:'Playfair Display',serif; font-size:64px; font-weight:900;
  line-height:.88; letter-spacing:-.02em; display:block;
}
.pa-mh-sub { font-size:11px; font-style:italic; color:#5a5550; letter-spacing:.08em; margin-top:4px; }

/* Breaking */
.pa-breaking {
  background:#1a1714; color:#f5f0e8; padding:5px 16px;
  font-size:10px; font-style:italic; display:flex; align-items:center; gap:10px; margin-bottom:18px;
}
.pa-breaking-lbl { background:#c9960e; color:#1a1714; font-weight:700; font-size:9px; text-transform:uppercase; letter-spacing:.1em; padding:2px 8px; flex-shrink:0; }

/* Front page grid */
.pa-front-grid {
  display:grid; grid-template-columns:1fr 2fr 1fr;
  gap:0; border-top:3px solid #1a1714; padding-top:14px;
}
.pa-front-grid > div { padding:0 16px; }
.pa-front-grid > div:first-child { padding-left:0; border-right:1px solid rgba(26,23,20,.18); }
.pa-front-grid > div:last-child { padding-right:0; border-left:1px solid rgba(26,23,20,.18); }

/* Section heads */
.pa-sec { font-size:9px; text-transform:uppercase; letter-spacing:.12em; font-weight:700; border-bottom:2px solid #1a1714; padding-bottom:3px; margin-bottom:10px; }

/* Articles */
.pa-art { margin-bottom:16px; break-inside:avoid; }
.pa-art-kicker { font-size:9px; text-transform:uppercase; letter-spacing:.1em; color:#5a5550; font-weight:600; }
.pa-art-hed { font-family:'Playfair Display',serif; font-weight:900; line-height:1.05; margin:3px 0 4px; }
.pa-art-hed.xl { font-size:36px; }
.pa-art-hed.lg { font-size:22px; }
.pa-art-hed.md { font-size:16px; }
.pa-art-hed.sm { font-size:13px; }
.pa-art-deck { font-size:12px; font-style:italic; color:#3a3632; margin-bottom:5px; line-height:1.4; }
.pa-art-byline { font-size:9.5px; color:#5a5550; margin-bottom:6px; }
.pa-art-img { width:100%; display:block; margin:6px 0; }
.pa-art-img.cover { height:auto; max-height:320px; object-fit:cover; }
.pa-art-body { font-size:10.5px; line-height:1.55; text-align:justify; }
.pa-art-body p { margin-bottom:6px; text-indent:1.2em; }
.pa-art-body p:first-child { text-indent:0; }
.pa-art-body p:first-child::first-letter {
  font-family:'Playfair Display',serif; font-size:34px; font-weight:900;
  float:left; line-height:.8; margin:3px 5px 0 0; color:#1a1714;
}
.pa-art-body.pa-body-blocks p:first-child::first-letter {
  float:none; font-size:inherit; font-weight:inherit; font-family:inherit;
  padding:0; margin:0; background:none; color:inherit; line-height:inherit;
}
.pa-art-body.pa-body-blocks p:first-child { text-indent:0; }

/* Block-type rendering in article body */
.pa-pullquote {
  font-family:'Playfair Display',serif; font-size:18px; font-weight:700;
  font-style:italic; color:#1a1714; border-left:3px solid #c8a84e;
  padding:8px 0 8px 14px; margin:12px 0; line-height:1.3;
}
.pa-quote {
  font-size:11px; font-style:italic; color:#3a3632;
  border-left:2px solid #999; padding:6px 0 6px 12px; margin:10px 0;
  line-height:1.45;
}
.pa-obsbox {
  background:#fef9ec; border:1px solid #e8d9a8; border-radius:4px;
  padding:8px 12px; margin:10px 0; font-size:10.5px; line-height:1.5;
}
.pa-figure { margin:10px 0; text-align:center; }
.pa-figure img { max-width:100%; border-radius:3px; }
.pa-caption { font-size:9px; color:#666; font-style:italic; margin-top:3px; text-align:center; }
.pa-divider { border:none; border-top:1px solid #ccc; margin:12px 0; }

/* Bottom grid — multiple columns */
.pa-bottom-grid {
  display:grid; gap:0; border-top:3px solid #1a1714; padding-top:14px; margin-top:18px;
}
.pa-bottom-grid.cols-3 { grid-template-columns:repeat(3,1fr); }
.pa-bottom-grid.cols-4 { grid-template-columns:repeat(4,1fr); }
.pa-bottom-grid > div { padding:0 14px; border-right:1px solid rgba(26,23,20,.18); }
.pa-bottom-grid > div:first-child { padding-left:0; }
.pa-bottom-grid > div:last-child { padding-right:0; border-right:none; }

/* Observations sidebar */
.pa-obs { font-size:10px; line-height:1.5; }
.pa-obs-item { padding:6px 0; border-bottom:1px solid rgba(26,23,20,.1); }
.pa-obs-loc { font-weight:700; font-size:9px; text-transform:uppercase; letter-spacing:.06em; }

/* Footer */
.pa-footer {
  margin-top:20px; padding-top:8px; border-top:2px solid #1a1714;
  display:flex; justify-content:space-between; font-size:8.5px; color:#5a5550;
  text-transform:uppercase; letter-spacing:.08em;
}

/* Continuation pages */
.pa-cont-grid {
  columns:3; column-gap:24px; column-rule:1px solid rgba(26,23,20,.18);
}
.pa-cont-grid.cols-4 { columns:4; }

/* ── A4 variant (smaller scale) ── */
/* ── A4 variant (smaller scale) ── */
.pa-sheet.pa-a4 .pa-mh-title { font-size:44px; }
.pa-sheet.pa-a4 .pa-art-hed.xl { font-size:28px; }
.pa-sheet.pa-a4 .pa-art-hed.lg { font-size:18px; }
.pa-sheet.pa-a4 .pa-art-body { font-size:9.5px; }
.pa-sheet.pa-a4 .pa-art-body p:first-child::first-letter { font-size:28px; }
.pa-sheet.pa-a4 { padding:28px 32px; }

/* ── Booklet spread (avisfold) — two pages side by side on one landscape sheet ── */
.pa-spread {
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  background:#fff; margin-bottom:24px; box-shadow:0 4px 30px rgba(0,0,0,.4);
}
.pa-spread .pa-page {
  padding:28px 32px; position:relative; overflow:hidden;
  border:1px solid rgba(26,23,20,.08);
}
.pa-spread .pa-page:first-child { border-right:2px dashed rgba(26,23,20,.15); }
.pa-spread .pa-page-nr {
  position:absolute; bottom:10px; font-size:8px; text-transform:uppercase;
  letter-spacing:.1em; color:#8a8078;
}
.pa-spread .pa-page:first-child .pa-page-nr { left:28px; }
.pa-spread .pa-page:last-child .pa-page-nr { right:28px; }
.pa-spread.bw { filter:grayscale(1); }

/* Preview label */
.pa-spread-label {
  font-size:10px; text-align:center; color:rgba(255,255,255,.5);
  padding:4px 0; font-style:italic; letter-spacing:.06em;
}

/* ── @media print ── */
@media print {
  body, html { background:#fff !important; }
  #app, .print-controls, .toast, .pa-spread-label { display:none !important; }
  .print-overlay { display:block !important; position:static !important; background:none !important; overflow:visible !important; }
  .print-preview-wrap { max-width:none; margin:0; padding:0; }
  /* Single pages mode */
  .pa-sheet { box-shadow:none !important; margin:0; padding:24px 20px; break-after:page; }
  /* Spread/booklet mode */
  .pa-spread { box-shadow:none !important; margin:0; break-after:page; page-break-after:always; }
  .pa-spread .pa-page { border:none !important; }
  .pa-spread .pa-page:first-child { border-right:none !important; }
  /* Color fidelity */
  .pa-sheet.bw, .pa-spread.bw { filter:grayscale(1) !important; -webkit-filter:grayscale(1) !important; }
  .pa-sheet, .pa-spread { -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  .pa-art { break-inside:avoid; }
  @page { margin:6mm; }
}
