/* SIKKERHETSNETT (eierens funn 20.09.2026, eldre iPad): en nettleser som ikke kjenner <dialog>, viser
   innholdet i ALLE portalens vinduer rett i siden - også admin-vinduene, før noen er logget inn. Det
   som vistes var tomme maler uten data (databasen gir ingenting uten innlogging), men det skal aldri
   se slik ut. Et vindu som ikke er åpnet, skal være skjult i enhver nettleser. Regelen står ØVERST og
   er merket !important med vilje, så ingen senere regel kan vise et lukket vindu ved en glipp. */
dialog:not([open]){display:none!important}
/* For gammel nettleser (se browser-check.js): vis meldingen, og ingenting av portalen for øvrig. */
html.unsupported-browser .portal-startup-status{display:grid!important;gap:6px;max-width:520px;margin:48px auto;padding:20px;border:1px solid #d5dce6;border-radius:14px;background:#fff;color:#1b2430;font-size:16px;line-height:1.45;text-align:left}
html.unsupported-browser .portal-startup-status strong{font-size:19px}
html.unsupported-browser main,html.unsupported-browser .site-footer,html.unsupported-browser .topbar-right{display:none!important}


:root{
  --bg:#f5f6f8;
  --surface:#ffffff;
  --text:#162033;
  --muted:#657086;
  --line:#dfe3ea;
  --accent:#234b8f;
  --accent-soft:#eaf0fb;
  --success:#1f7a4d;
  --success-soft:#e9f6ef;
  --volunteer-assigned-border:#4d9a6b;
  --volunteer-assigned-soft:var(--success-soft);
  --volunteer-assigned-text:var(--success);
  --volunteer-available-border:#5f8fbe;
  --volunteer-available-soft:#e8f0fb;
  --volunteer-available-text:#244f82;
  --warning:#9a5b00;
  --warning-soft:#fff4df;
  --danger:#b33939;
  --danger-soft:#fdecec;
  --border:var(--line);
  --surface-2:#f5f6f8;
  --shadow:0 12px 36px rgba(29,42,66,.08);
  --radius:18px;
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:var(--bg);
  color:var(--text);
}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.topbar{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;padding:16px max(20px, calc((100vw - 1240px)/2));
  background:#fff;
  border-bottom:1px solid var(--line);cursor:pointer;
}
.topbar>.brand,.topbar>.topbar-right{position:relative;z-index:1}
.topbar-right{cursor:default;pointer-events:none}
.topbar-right :is(button,a,input,select,textarea,summary){pointer-events:auto}
.brand{display:flex;align-items:center;gap:12px;border:0;background:transparent;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.brand:focus-visible{outline:3px solid rgba(36,87,143,.25);outline-offset:5px;border-radius:10px}
.brand-mark{
  width:42px;height:42px;border-radius:13px;background:var(--text);color:#fff;
  display:grid;place-items:center;font-weight:800;font-size:20px;
}
.brand-title{font-weight:800;line-height:1}
.brand-subtitle{font-size:12px;color:var(--muted);margin-top:4px}
main{max-width:1240px;margin:0 auto;padding:34px 20px 70px}
body.admin-portal-active main{padding-top:16px}
.view{display:none}.view.active{display:block}
.hero,.admin-hero{
  display:flex;justify-content:space-between;align-items:flex-end;gap:36px;
  margin-bottom:28px;
}
.hero h1,.admin-hero h1{font-size:clamp(32px,5vw,54px);letter-spacing:-.04em;margin:4px 0 12px;max-width:760px}
.hero p,.admin-hero p{color:var(--muted);font-size:17px;line-height:1.65;max-width:760px;margin:0}
.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-weight:800;font-size:11px;color:var(--accent)}
.hero-card small,.dialog-card small{display:block;color:var(--muted);line-height:1.45;margin-top:8px}
select,input,textarea{
  width:100%;border:1px solid var(--line);background:#fff;color:var(--text);
  border-radius:11px;padding:11px 12px;outline:none
}
select:focus,input:focus,textarea:focus{border-color:#8aa4d0;box-shadow:0 0 0 3px var(--accent-soft)}
.toolbar{display:grid;grid-template-columns:1.5fr .8fr .9fr;gap:10px;margin:24px 0 32px}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px}
.section-heading :is(h1,h2){margin:4px 0 0;font-size:26px;letter-spacing:-.025em}
.summary-chip{
  background:var(--accent-soft);color:var(--accent);padding:8px 11px;border-radius:999px;font-weight:700;font-size:13px
}
.connection-banner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:11px;
  line-height:1.4;
}
.connection-banner>div{display:grid;gap:2px;min-width:0}
.connection-banner :is(strong,span){display:block}
.connection-banner strong{font-size:12px;line-height:1.3}
.connection-banner.warning{
  border-color:#edc36c;
  background:var(--warning-soft);
  color:#754600;
}
.connection-banner.info{border-color:#b9cae6}
.connection-banner>.btn{flex:0 0 auto}
@media(max-width:600px){
  .connection-banner{align-items:flex-start;flex-direction:column}
}
.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.event-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;
  box-shadow:0 8px 24px rgba(29,42,66,.05);display:flex;flex-direction:column;min-height:280px
}
.event-card:hover{transform:translateY(-2px);transition:.18s;box-shadow:var(--shadow)}
.event-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.type-badge,.status-badge{
  display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800
}
.type-badge{background:#eef1f5;color:#4a566d}
/* Kompakt statusmerke i oversiktslister (arrangementslisten): mindre vekt så
   det ikke stjeler fokus fra navn og «Mangler X». Fargen bærer fortsatt statusen. */
.status-badge-compact{padding:3px 7px;font-size:10px;font-weight:700}
.event-card h3{font-size:20px;margin:18px 0 6px;letter-spacing:-.02em}
.meta{color:var(--muted);font-size:14px;line-height:1.5}
.roles{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 16px}
.role-pill{background:#f5f6f8;border-radius:999px;padding:6px 8px;font-size:11px;color:#4f5b6f}
.capacity{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px}
.capacity strong{font-size:13px}
.btn{
  border:0;background:var(--text);color:#fff;padding:10px 14px;border-radius:11px;font-weight:800
}
.btn:hover{filter:brightness(1.08)}
.btn-small{padding:7px 10px;font-size:12px}
.btn-secondary{background:#eef1f5;color:var(--text)}
.btn-success{background:var(--success)}
.btn-danger{background:var(--danger)}
/* «Stopp nye påmeldinger» får samme blå som «Påmelding stengt»-merket (#305a8d),
   slik at handlingen og tilstanden den skaper henger visuelt sammen (eierens
   ønske 11.09.2026). Samme blå som .publication-unpublish-btn allerede bruker. */
.btn-publication-hold{background:#305a8d}
.panel{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:0 8px 24px rgba(29,42,66,.04)
}
.empty{padding:28px;text-align:center;color:var(--muted)}
.status-badge.pending{background:var(--warning-soft);color:var(--warning)}
.status-badge.publication-hold{background:#e7eef9;color:#305a8d}
.status-badge.confirmed{background:var(--success-soft);color:var(--success)}
.status-badge.reserve{background:var(--accent-soft);color:var(--accent)}
.status-badge.declined{background:var(--danger-soft);color:var(--danger)}
.admin-person-filter-status{margin-left:4px;vertical-align:middle}
.event-publication-status-btn{
  border:1px solid currentColor;
  font-family:inherit;
  line-height:1;
  cursor:pointer;
  box-shadow:0 1px 2px rgba(18,35,61,.08);
}
.event-publication-status-btn:hover{filter:brightness(.96);box-shadow:0 2px 5px rgba(18,35,61,.14)}
.event-publication-status-btn:focus-visible{outline:3px solid rgba(49,91,145,.24);outline-offset:2px}
.event-publication-status-btn:disabled{cursor:default;opacity:.68;box-shadow:none}
.inline-actions{display:flex;gap:8px}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;min-width:720px}
th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle}
th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
tr:last-child td{border-bottom:0}
.stack{display:flex;flex-direction:column;gap:10px}
.pending-card{
  background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;box-shadow:0 6px 18px rgba(29,42,66,.04)
}

.pending-card.waitlist-seat-case{
  border-color:#efb34f;
  box-shadow:inset 4px 0 0 #d97706;
  background:#fffdfa;
}
.pending-queue-position.waitlist-priority strong{background:#d97706;color:#fff}
.pending-card.waitlist-seat-case .change-kind-badge{color:#a45100;background:#fff1d6}
/* Venteliste uten ledig plass: informasjon, ikke handling - dempet, ikke oransje. */
.pending-card.waitlist-seat-case.waitlist-queue-active{
  border-color:var(--line);
  box-shadow:inset 4px 0 0 #9aa7b8;
  background:#fbfcfd;
}
.pending-card.waitlist-queue-active .pending-queue-position.waitlist-priority strong{background:#6b7a90}
.pending-card.waitlist-queue-active .change-kind-badge{color:#4a5568;background:#eef1f5}
.pending-card h4{margin:0 0 4px}
.pending-card p{margin:0;color:var(--muted);font-size:13px}
.pending-actions{display:flex;gap:7px;margin-top:12px;flex-wrap:wrap}
dialog{border:0;padding:0;border-radius:20px;box-shadow:0 30px 90px rgba(15,25,45,.28);max-width:min(560px,calc(100vw - 30px));width:100%}
.dialog-card{padding:24px;position:relative}
.dialog-card h2{font-size:28px;margin:5px 0 5px}
.dialog-close{position:absolute;right:16px;top:14px;border:0;background:transparent;font-size:28px;color:var(--muted)}
.dialog-card label{display:block;font-weight:800;font-size:13px;margin:16px 0 7px}
.optional{font-weight:500;color:var(--muted)}
.role-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.role-choice{
  border:1px solid var(--line);border-radius:12px;padding:11px;display:flex;gap:8px;align-items:center;font-weight:700;font-size:13px
}
.role-choice input{width:auto}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.muted{color:var(--muted)}
.toast{
  position:fixed;right:20px;bottom:20px;background:var(--text);color:#fff;padding:12px 16px;border-radius:12px;
  opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s;box-shadow:var(--shadow);z-index:100
}
.toast.show{opacity:1;transform:translateY(0)}
.admin-undo-bar,.dialog-admin-undo{
  display:flex;align-items:center;justify-content:flex-end;pointer-events:none
}
.admin-undo-bar{
  position:fixed;right:20px;bottom:20px;z-index:101
}
.admin-undo-bar[hidden]{display:none}
.dialog-admin-undo{position:sticky;top:8px;z-index:10001;margin:-2px 0 8px}
/* Angre-knappen er alltid kompakt - bare «↶ Angre siste». Beskrivelsen vises
   som et tydelig hover-panel (klarere enn systemets treg-tooltip), ikke som en
   bred inline-boks. Gjelder både den flytende baren nederst på admin-siden og
   baren øverst i arrangementsvinduet. */
.admin-undo-panel{pointer-events:auto;position:relative;display:flex;align-items:center}
.admin-undo-action{pointer-events:auto;flex:0 0 auto;min-height:40px;padding:8px 14px;border:1px solid #314762;border-radius:11px;background:#17243a;color:#fff;box-shadow:0 10px 26px rgba(10,17,30,.22);font:inherit;font-size:13px;font-weight:850;cursor:pointer;white-space:nowrap}
.admin-undo-action:hover{background:#243a59}
.admin-undo-action:focus-visible{outline:3px solid #8fb6e1;outline-offset:2px}
.admin-undo-message{
  position:absolute;right:0;
  max-width:min(300px,calc(100vw - 32px));white-space:normal;text-align:left;
  background:#17243a;color:#fff;border:1px solid #314762;border-radius:10px;
  box-shadow:0 10px 26px rgba(10,17,30,.22);padding:9px 12px;font-size:12px;font-weight:600;line-height:1.35;
  opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease;z-index:1
}
/* Nederst på siden: panelet spretter opp OVER knappen. */
.admin-undo-bar .admin-undo-message{bottom:calc(100% + 8px);transform:translateY(4px)}
/* Øverst i arrangementsvinduet: panelet kommer UNDER knappen. */
.dialog-admin-undo .admin-undo-message{top:calc(100% + 8px);transform:translateY(-4px)}
.admin-undo-panel:hover .admin-undo-message,
.admin-undo-panel:focus-within .admin-undo-message{opacity:1;transform:translateY(0)}
.admin-undo-action:disabled{cursor:default;opacity:.7}
.admin-undo-bar:not([hidden]) + .toast{bottom:76px}
@media(max-width:650px){
  .admin-undo-bar{right:12px;bottom:12px}
  .dialog-admin-undo{top:6px}
  .admin-undo-action{min-height:44px}
  .admin-undo-bar:not([hidden]) + .toast{bottom:70px}
}
@media (max-width:950px){
  .event-grid{grid-template-columns:repeat(2,1fr)}
  .hero,.admin-hero{align-items:flex-start;flex-direction:column}
}
@media (max-width:650px){
  .topbar{align-items:flex-start;flex-direction:column;padding:12px 16px}
  main{padding:24px 14px 60px}
  .toolbar{grid-template-columns:1fr}
  .event-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .role-choices{grid-template-columns:1fr}
  .section-heading{align-items:flex-start;flex-direction:column}
}
.admin-hero{
  background:linear-gradient(145deg,#17263c,#243e5f);
  color:#fff;
  border-radius:26px;
  padding:28px 30px;
  box-shadow:0 16px 44px rgba(15,28,48,.16);
}
.admin-hero .eyebrow{color:#b9d4f0}
.admin-hero p{color:#d7e0ea}
.admin-filterbar{
  display:grid;
  grid-template-columns:1.5fr .8fr .8fr;
  gap:10px;
  margin:-4px 0 28px;
}
.admin-filter-section{margin:0 0 28px;padding:10px 12px 6px;border:1px solid #dbe3ee;border-radius:14px;background:#f8fafc}
.admin-filter-section .admin-quick-filters{margin:0 0 9px}
.admin-filter-section .admin-filterbar{margin:0}
.admin-events-workspace .admin-filter-section{margin-bottom:2px}
.admin-events-workspace .admin-filter-result-summary{min-height:16px;margin:0 2px 4px}
.event-card{
  position:relative;
  overflow:hidden;
}
.event-card::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,#244d7d,#6e8eb0);
  opacity:.75;
}
.event-card h3{padding-right:4px}
.pending-card{
  border-left:4px solid #d69b32;
}
.site-footer{
  max-width:1240px;
  margin:0 auto 28px;
  padding:0 20px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:var(--muted);
  font-size:12px;
}
@media (max-width:650px){
  .hero,.admin-hero{padding:22px 18px;border-radius:20px}
  .admin-filterbar{grid-template-columns:1fr}
  .site-footer{flex-direction:column}
}
.split-actions{justify-content:space-between;align-items:center}
.right-actions{display:flex;gap:8px}
.wide-dialog{max-width:min(980px,calc(100vw - 30px));width:100%}
.register-heading{margin:8px 0 18px}
.register-heading h2{font-size:30px;margin:4px 0 4px}
.register-heading p{margin:0}
.register-toolbar{
  display:grid;
  grid-template-columns:1fr 210px;
  gap:10px;
  margin-bottom:16px
}
.event-name-button{
  appearance:none;border:0;background:transparent;padding:0;
  color:var(--text);font:inherit;font-weight:800;text-align:left;cursor:pointer
}
.event-name-button:hover{text-decoration:underline}
.inactive-row{opacity:.58}
@media(max-width:650px){
  .register-toolbar{grid-template-columns:1fr}
  .split-actions{align-items:stretch;flex-direction:column-reverse}
  .right-actions{display:grid;grid-template-columns:1fr 1fr}
  .split-actions>.btn-danger{width:100%}
}

.role-builder{display:flex;flex-direction:column;gap:8px}
.role-builder-row{
  display:grid;
  grid-template-columns:1fr 110px;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f8f9fb
}
.role-builder-row label{margin:0!important;font-weight:700}
.role-builder-row input[type="number"]{padding:8px 10px}

.event-detail-header{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:18px;align-items:flex-start;margin:5px 0 16px
}
.event-detail-header h2{font-size:32px;margin:0 0 5px}
/* Dato/tid-linja under tittelen: bare tallene i fet og mørkt, ordene rundt holdes
   lette og grå, så tallene løftes uten at linja blir tung (eierens ønske 15.09.2026). */
#eventDetailMeta b{color:var(--text);font-weight:700}
.inline-select{width:auto!important;min-width:120px;padding:7px 8px!important}
@media(max-width:700px){
  .event-detail-header{flex-direction:column}
  .role-builder-row{grid-template-columns:1fr 90px}
}


.settings-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-top:22px
}
.settings-card{
  border:1px solid var(--line);
  border-radius:18px;
  padding:18px;
  background:#fafbfc
}
.settings-card h3{margin:4px 0 0;font-size:22px}
.add-setting-form{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  margin:14px 0
}
.settings-list{display:flex;flex-direction:column}
.setting-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px
}
.setting-main{display:flex;align-items:center;gap:9px;min-width:0}
.setting-dot{
  width:9px;height:9px;border-radius:999px;background:var(--success);flex:0 0 auto
}
.setting-item.inactive .setting-dot{background:#a4abba}
.setting-item.inactive{opacity:.65}
.setting-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.role-order-actions{
  display:inline-flex;
  align-items:center;
  gap:3px;
  padding:3px;
  margin-right:2px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f5f7fa
}
.role-order-btn{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  padding:0;
  border:0;
  border-radius:7px;
  background:#fff;
  color:var(--text);
  box-shadow:0 1px 2px rgba(22,34,51,.08);
  font-size:17px;
  font-weight:800;
  line-height:1;
  cursor:pointer
}
.role-order-btn:hover:not(:disabled),.role-order-btn:focus-visible{background:var(--primary-soft);color:var(--primary)}
.role-order-btn:disabled{opacity:.28;cursor:not-allowed;box-shadow:none}
.usage-note{
  font-size:11px;
  color:var(--muted);
  margin-top:3px
}
.warning-box{
  background:var(--warning-soft);
  color:var(--warning);
  padding:10px 12px;
  border-radius:11px;
  font-size:12px;
  margin:10px 0
}
@media(max-width:760px){
  .settings-grid{grid-template-columns:1fr}
  .add-setting-form{grid-template-columns:1fr}
  .setting-item{align-items:flex-start;flex-direction:column}
  .setting-actions{width:100%;justify-content:flex-start}
}


.topbar-right{display:flex;align-items:center;gap:10px}
.session-box{
  display:flex;align-items:center;gap:8px;
  padding:4px 4px 4px 10px;border:1px solid var(--line);border-radius:12px;background:#fff
}
#sessionLabel{font-size:12px;color:var(--muted);font-weight:700}
.import-tabs{display:flex;gap:6px;margin:18px 0 12px}
.import-tab{
  border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 12px;font-weight:800;color:var(--muted)
}
.import-tab.active{background:var(--text);color:#fff;border-color:var(--text)}
.import-controls{
  display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin-bottom:14px
}
.import-account-setup{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,380px);gap:18px;align-items:center;
  margin:0 0 12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fafbfd
}
.import-account-setup>div{display:grid;gap:3px}
.import-account-setup strong{font-size:14px}
.import-account-setup small{color:var(--muted);line-height:1.4}
.import-help{
  background:#f5f7fa;border:1px solid var(--line);border-radius:12px;padding:12px 14px;
  color:var(--muted);font-size:12px;line-height:1.55;margin-bottom:12px
}
.import-valid{color:var(--success);font-weight:800}
.import-invalid{color:var(--danger);font-weight:800}
.summary-line{
  background:var(--accent-soft);color:var(--accent);padding:10px 12px;border-radius:11px;
  font-size:12px;font-weight:800;margin-top:12px
}
@media(max-width:900px){
  .topbar-right{width:100%;flex-direction:column;align-items:stretch}
  .session-box{justify-content:space-between}
}
@media(max-width:650px){
  .import-controls{grid-template-columns:1fr}
  .import-account-setup{grid-template-columns:1fr;gap:9px}
}


.setting-name-button{
  border:0;
  background:transparent;
  color:var(--text);
  padding:0;
  font:inherit;
  font-weight:800;
  cursor:pointer;
  text-align:left
}
.setting-name-button:hover{text-decoration:underline}
.role-detail-header{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:16px
}
.role-detail-header h2{margin:4px 0}
.role-volunteer-link{
  border:0;
  background:transparent;
  padding:0;
  color:var(--text);
  font:inherit;
  font-weight:800;
  text-align:left;
  cursor:pointer
}
.role-volunteer-link:hover{text-decoration:underline}
@media(max-width:650px){
  .role-detail-header{flex-direction:column}
  .role-detail-header .btn{width:100%}
}


/* Autoritativ kontrakt for sorterbare kolonneoverskrifter. */
.sortable-th{
  position:relative;
  user-select:none;
  white-space:nowrap;
  transition:background .15s ease,color .15s ease;
}
.sortable-th:hover{
  background:var(--accent-soft);
  color:var(--accent);
}
.table-sort-button{
  display:flex;
  align-items:center;
  gap:4px;
  width:100%;
  min-height:100%;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:inherit;
  letter-spacing:inherit;
  text-align:inherit;
  text-transform:inherit;
  white-space:inherit;
  cursor:pointer;
}
.table-sort-button::before{content:"";position:absolute;inset:0}
.table-sort-button:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
  border-radius:4px;
}
.table-sort-button::after{
  content:" ↕";
  opacity:.35;
  font-size:.9em;
}
.sortable-th.sort-asc .table-sort-button::after{
  content:" ↑";
  opacity:1;
}
.sortable-th.sort-desc .table-sort-button::after{
  content:" ↓";
  opacity:1;
}

.stats-volunteer-link{
  border:0;background:transparent;padding:0;color:var(--text);
  font:inherit;font-weight:800;text-align:left;cursor:pointer
}
.stats-volunteer-link:hover{text-decoration:underline}
/* v6.14 – rollefilter i Frivilligregister */
.register-toolbar{
  grid-template-columns:1fr 220px 180px auto;
}
@media(max-width:760px){
  .register-toolbar{grid-template-columns:1fr}
}


/* v6.15 – aktive navn og e-postadresser i Frivilligregister */
.register-volunteer-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:0;
  background:transparent;
  padding:0;
  color:var(--text);
  font:inherit;
  font-weight:800;
  text-align:left;
  cursor:pointer;
}
.register-volunteer-link:hover{
  text-decoration:underline;
}
.register-email-link{
  color:var(--accent);
  text-decoration:none;
  font-weight:650;
}


/* v6.16 – e-post til filtrert frivilligliste */
#emailFilteredVolunteersBtn{
  white-space:nowrap;
}
#inviteRegisteredVolunteersBtn{white-space:nowrap}

.volunteer-invitation-selection-dialog{max-width:min(900px,calc(100vw - 30px))}
.volunteer-invitation-selection-card{
  display:flex;
  flex-direction:column;
  max-height:92vh;
  overflow:hidden;
}
.invitation-selection-toolbar{
  display:grid;
  grid-template-columns:minmax(240px,1fr) 210px 210px;
  gap:8px;
  margin-bottom:10px;
  padding:10px;
  border:1px solid var(--ui-border);
  border-radius:12px;
  background:var(--ui-subtle);
}
.invitation-selection-actions{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:9px;
}
.invitation-selection-actions .muted{margin-left:auto;font-size:11px;font-weight:650}
.invitation-recipient-list{
  flex:1 1 auto;
  min-height:220px;
  max-height:52vh;
  overflow:auto;
  display:grid;
  align-content:start;
  gap:5px;
  padding:6px;
  border:1px solid var(--ui-border);
  border-radius:12px;
  background:#f7f9fc;
}
.dialog-card .invitation-recipient-row{
  display:grid;
  grid-template-columns:22px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  margin:0;
  padding:8px 10px;
  border:1px solid var(--ui-border);
  border-radius:10px;
  background:#fff;
  font-size:inherit;
  font-weight:inherit;
  cursor:pointer;
}
.invitation-recipient-row:has(input:checked){border-color:#87a7d0;background:var(--ui-selected);box-shadow:inset 3px 0 0 var(--accent)}
.invitation-recipient-row.is-disabled{opacity:.62;cursor:not-allowed}
.invitation-recipient-row input{width:auto;margin:0}
.invitation-recipient-main{display:grid;min-width:0;gap:3px}
.invitation-recipient-main strong{font-size:13px;font-weight:750;line-height:1.3}
.invitation-recipient-main small{margin:0;color:var(--muted);font-size:11px;font-weight:450;line-height:1.38;overflow-wrap:anywhere}
.invitation-recipient-state{max-width:190px;color:var(--muted);font-size:11px;font-weight:550;line-height:1.38;text-align:right}
.invitation-recipient-state.has-error{color:#8a2c2c}
#volunteerInvitationEligibilityHint{font-size:11px;line-height:1.38}

@media(max-width:760px){
  .invitation-selection-toolbar{grid-template-columns:1fr}
  .invitation-selection-actions{display:grid;grid-template-columns:1fr 1fr}
  .invitation-selection-actions .muted{grid-column:1/-1;margin-left:0}
  .invitation-recipient-list{min-height:200px;max-height:48vh}
  .dialog-card .invitation-recipient-row{grid-template-columns:22px minmax(0,1fr)}
  .invitation-recipient-state{grid-column:2;max-width:none;text-align:left}
}


/* v6.17 – oppsummering nederst i Frivilligregister */
.volunteer-register-summary{
  margin-top:18px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  display:grid;
  grid-template-columns:190px 1fr;
  gap:22px;
  align-items:start;
}
@media(max-width:700px){
  .volunteer-register-summary{
    grid-template-columns:1fr;
  }
}


/* v6.20 – kompakte rolleknapper og fast oppsummering i Frivilligregister */
.volunteer-register-dialog{
  max-height:92vh;
}
.volunteer-register-card{
  display:flex;
  flex-direction:column;
  max-height:92vh;
  overflow:hidden;
}
.volunteer-register-card .register-heading,
.volunteer-register-card .register-toolbar{
  flex:0 0 auto;
}

/* Selve registerlisten scroller uavhengig */
#volunteerRegisterTable{
  flex:1 1 auto;
  min-height:180px;
  max-height:52vh;
  overflow:auto;
  padding-bottom:6px;
}

/* Oppsummeringen er alltid synlig nederst */
#volunteerRegisterSummary{
  position:sticky;
  bottom:0;
  z-index:5;
  flex:0 0 auto;
  margin-top:10px;
  padding:10px 12px;
  grid-template-columns:150px 1fr;
  gap:14px;
  box-shadow:0 -8px 20px rgba(29,42,66,.06);
}
@media(max-width:700px){
  .volunteer-register-card{
    max-height:94vh;
  }
  #volunteerRegisterTable{
    max-height:48vh;
  }
  #volunteerRegisterSummary{
    grid-template-columns:1fr;
    padding:9px 10px;
  }
}
/* v6.23 – alle filterknapper på én linje */
#volunteerRegisterSummary{
  grid-template-columns:auto 1fr;
  align-items:center;
}


/* v6.24 – alle filterknappene ligger på samme horisontale linje */
#volunteerRegisterSummary{
  display:flex !important;
  flex-direction:row;
  align-items:center;
  gap:6px;
  flex-wrap:nowrap;
  overflow-x:auto;
  overflow-y:hidden;
  white-space:nowrap;
}

#volunteerRegisterSummary::-webkit-scrollbar{
  height:6px;
}


/* v6.35 – frivilliginnlogging med e-post + passord */
#loginAccountFields input[type="password"]{
  width:100%;
}


/* v6.36 – administrasjon av frivilligkonto */
.account-admin-box{
  margin-top:18px;
  padding:16px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface-soft,#f7f7f8);
}
.account-admin-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:8px;
}
.account-admin-heading strong{display:block;margin-top:3px;font-size:16px;}
.password-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;}
.compact-dialog-card{max-width:480px;}
@media(max-width:640px){.password-action-row{grid-template-columns:1fr}.password-action-row .btn{width:100%;}}


/* v6.38 – Yesplan-integrasjon */
.integration-status{
  display:flex;
  align-items:center;
  gap:8px;
  margin:8px 0 14px;
  padding:0 2px;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}
.integration-status .status-dot{
  width:8px;height:8px;border-radius:50%;display:inline-block;
  background:#6f8f75;flex:0 0 auto;
}
.integration-status.error{color:#9a3c3c;}
.integration-status.error .status-dot{background:#a94b4b;}
.integration-status .status-dot.working{animation:yesplanPulse 1s ease-in-out infinite alternate;}
@keyframes yesplanPulse{from{opacity:.35;transform:scale(.85)}to{opacity:1;transform:scale(1.15)}}

.yesplan-fields-tool-body{display:grid;gap:10px}.yesplan-fields-tool-body>p{margin:0}.yesplan-field-toolbar{display:grid;grid-template-columns:auto minmax(220px,1fr);gap:10px;align-items:center}.yesplan-field-results{max-height:360px;margin:0;padding:0;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft,#f7f7f8);font-size:13px;overflow:auto}.yesplan-field-table{width:100%;border-collapse:collapse;background:#fff}.yesplan-field-table th{position:sticky;top:0;z-index:1;padding:9px 10px;background:#f2f5f8;text-align:left;font-size:11px;letter-spacing:.03em;text-transform:uppercase}.yesplan-field-table td{padding:9px 10px;border-top:1px solid var(--line);vertical-align:top}.yesplan-field-table td:last-child,.yesplan-field-table th:last-child{text-align:right}.yesplan-field-path{display:grid;gap:2px}.yesplan-field-path small{color:var(--muted)}


/* v6.43 – tydelig Yesplan-eierskap */
.source-badge{display:inline-flex;align-items:center;margin-left:7px;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:800;vertical-align:middle;border:1px solid var(--border)}
.source-badge.yesplan{background:rgba(70,110,165,.09)}
.source-badge.manual{background:rgba(90,90,90,.06);opacity:.7}
.event-source-notice{display:grid;gap:3px;margin:4px 0 14px;padding:11px 13px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft,#f7f7f8);font-size:12px}
.event-source-notice strong{font-size:13px}
.event-source-notice span{color:var(--muted)}
#eventDialog :disabled{opacity:.72;cursor:not-allowed}


/* v6.44 – Bølgen-logo erstatter bokstaven B. Ingen øvrige designendringer. */
.brand-mark{
  background:transparent !important;
  box-shadow:none !important;
  overflow:hidden;
}
.brand-mark img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}


/* v6.48 – Arrangementssteder fra Yesplan */
.yesplan-settings-note{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin:14px 0;padding:12px 14px;border:1px solid var(--line);
  border-radius:12px;background:#f5f7fa
}
.yesplan-settings-note span{font-size:12px;color:var(--muted);line-height:1.45}
@media(max-width:650px){
  .yesplan-settings-note{align-items:stretch;flex-direction:column}
}


/* v6.51 – klikkbar status går direkte til bemanning */
.staffing-status-btn{
  border:0;
  font:inherit;
  cursor:pointer;
}
.staffing-status-btn:hover{
  filter:brightness(.96);
  transform:translateY(-1px);
}
.staffing-status-btn:focus-visible{
  outline:2px solid currentColor;
  outline-offset:2px;
}
.admin-view-tools{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:flex-end;margin-bottom:12px
}
.admin-sync-health{
  display:inline-flex;align-items:center;min-height:34px;padding:0 11px;
  border:1px solid #b9d7c7;border-radius:999px;background:#f3fbf6;
  color:#245b3b;font-size:11px;font-weight:800
}
.admin-sync-health.warning{border-color:#e6bd65;background:#fff9ea;color:#6c4600}
.admin-preview-banner{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin-bottom:14px;padding:12px 14px;border:1px solid var(--line);
  border-radius:12px;background:#f5f7fa
}
.admin-preview-banner span{color:var(--muted);font-size:13px;flex:1}
/* Ansatt/øvingskonto-banner: samme kompakte rad-form som admin-forhåndsvisningen (eierens
   ønske 18.–19.09.2026), egen blå tone så den ikke forveksles med den. */
.staff-tools-banner{background:#eef6ff;border-color:#bcdcfb}
.staff-tools-banner-actions{display:flex;gap:8px;flex-wrap:wrap}
.hidden{display:none!important}


/* v6.69 – vedvarende beskjed ved fullbooket */
.volunteer-notifications:empty{display:none}
.volunteer-notifications{display:grid;gap:10px;margin-bottom:12px}
.volunteer-notice{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#f7f8fa
}
.volunteer-notice .meta{margin-top:4px}
@media(max-width:650px){
  .volunteer-notice{align-items:flex-start;flex-direction:column}
}

.venue-default-btn{appearance:none;border:0;background:transparent;padding:0;color:var(--text);font:inherit;font-weight:800;text-align:left;cursor:pointer}
.venue-default-btn:hover{text-decoration:underline}
#venueDefaultImpact{margin-top:16px}


/* v6.83 – meldinger over popupvinduer
   Bevisst holdt lys og rolig (ikke svart/hvit "alarm"-stil) - denne boksen
   brukes for alt fra en enkel bekreftelse til en bakgrunnsstatus, og skal
   ikke se ut som en feil eller et problem med mindre teksten faktisk sier
   det. En markert venstrekant gir nok visuell vekt til å bli lagt merke
   til uten å virke urovekkende. */
.dialog-toast{
  position:sticky;
  top:10px;
  z-index:10000;
  margin:0 0 12px;
  background:#fff;
  color:var(--text);
  border:1px solid var(--line);
  border-left:3px solid var(--accent);
  padding:12px 15px;
  border-radius:11px;
  box-shadow:0 10px 28px rgba(15,25,45,.12);
  opacity:0;
  transform:translateY(-8px);
  pointer-events:none;
  transition:.18s ease;
  font-weight:650;
  line-height:1.4;
}
.dialog-toast.show{
  opacity:1;
  transform:translateY(0);
}
.dialog-toast:not(.show){display:none}

/* Popupen skal selv scrolle. Bakgrunnen skal stå stille. */
dialog{
  max-height:calc(100dvh - 30px);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  /* -webkit-overflow-scrolling:touch er fjernet med vilje (11.09.2026): på iOS
     Safari får den, sammen med en position:sticky dialogfot i et top-layer
     <dialog>, sticky-elementet til å «rømme» og tegnes nederst i viewporten -
     det «skinner gjennom» over en dialog som ligger oppå. Moderne iOS har uansett
     myk momentum-scrolling uten den. Se også den mobile position:static-foten. */
}
body:has(dialog[open]){
  overflow:hidden;
}
@media(max-width:650px){
  dialog{
    max-height:calc(100dvh - 16px);
  }
  .dialog-toast{
    top:8px;
    font-size:13px;
  }
}

.usage-warning-button{display:block;width:100%;text-align:left;cursor:pointer;font:inherit}
.usage-warning-button:hover{filter:brightness(.98)}
.usage-detail-box{margin-top:10px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.usage-detail-box strong{display:block;margin-top:8px}
.usage-detail-box strong:first-child{margin-top:0}
.usage-detail-box ul{margin:6px 0 12px;padding-left:20px}
.usage-link{border:0;background:transparent;padding:2px 0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;text-align:left}

.usage-detail-box .usage-link{
  display:block;
  width:100%;
  padding:8px 10px;
  margin:2px 0;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface);
  color:var(--text);
  text-decoration:none;
  cursor:pointer;
  pointer-events:auto;
  position:relative;
  z-index:2;
}
.usage-detail-box .usage-link:hover{background:var(--surface-2);border-color:var(--accent)}
.usage-detail-box .usage-link:active{transform:translateY(1px)}

.usage-history-note{margin:4px 0 8px;color:var(--muted);font-size:12px}

.history-filterbar{margin:16px 0 12px}
.history-table{margin-top:12px}
.history-link{border:0;background:transparent;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;text-align:left;font-weight:700}
.history-link:hover{opacity:.75}

/* v6.93 – bredere Historikk-vindu */
#historyDialog{
  width:min(1500px, calc(100vw - 32px));
  max-width:none;
}
#historyDialog .dialog-card{
  width:100%;
  min-width:0;
  max-width:none;
  box-sizing:border-box;
}
#historyDialog .history-table{
  width:100%;
  overflow-x:auto;
}
#historyDialog .history-table table{
  width:100%;
  min-width:1050px;
}
@media(max-width:700px){
  #historyDialog{
    width:calc(100vw - 12px);
    max-width:none;
  }
}

.volunteer-view-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.view-switch{display:inline-flex;border:1px solid var(--border);border-radius:10px;padding:2px;background:var(--surface)}
.view-switch-btn{border:0;background:transparent;padding:7px 12px;border-radius:8px;cursor:pointer;font:inherit;color:var(--muted);font-weight:700}
.view-switch-btn.active{background:var(--text);color:#fff}
.event-weekday{font-weight:800;text-transform:capitalize;margin-bottom:3px}
.event-card.volunteer-event-open{cursor:pointer}
.event-card-detail-button{
  appearance:none;
  border:0;
  padding:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:inherit;
  line-height:inherit;
  text-align:left;
  cursor:pointer;
}
.event-card-detail-button:hover{text-decoration:underline;text-underline-offset:3px}
.event-card-detail-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.volunteer-capacity{align-items:center}
.volunteer-calendar{margin-bottom:24px}
.volunteer-calendar:focus{outline:none}
.admin-calendar{margin:0 0 24px;scroll-margin-top:88px}
.admin-calendar:focus{outline:none}
.admin-calendar:focus-visible .calendar-shell{outline:3px solid rgba(39,87,157,.2);outline-offset:3px}
#pendingSignups .admin-incoming-keyboard-card:focus-visible{position:relative;z-index:2;outline:3px solid rgba(39,87,157,.42);outline-offset:2px;border-radius:8px}
/* Radens fokusramme tegnes INNENFOR raden: en ramme utenfor ble dekket av raden
   under (skillelinje og hover-bakgrunn) når musen hvilte der - eierens funn
   15.09.2026. En tabellrad kan ikke løftes med z-index i Safari. */
#adminEvents .admin-event-row:focus-visible{outline:3px solid rgba(39,87,157,.42);outline-offset:-3px;border-radius:8px}
#adminEvents .admin-event-row:focus-visible td{background:#eef3fb}
#pendingSignups .admin-incoming-keyboard-card{scroll-margin-block:88px}
#adminEvents .admin-event-row{scroll-margin-block:12px}
.admin-calendar .calendar-day:focus-visible{outline:3px solid rgba(39,87,157,.5);outline-offset:2px}
.admin-calendar .calendar-day.keyboard-focused{box-shadow:0 0 0 3px rgba(39,87,157,.5)}
.calendar-shell{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:16px}
.calendar-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:14px;text-align:center}
.calendar-header strong{text-transform:capitalize}
/* Admin-kalenderens måned-navigasjon samles rundt måneden (sentrert flex) i stedet
   for å skyves ut i kantene av 1fr-kolonnen - likt frivillig-kalenderen, som føles
   mer naturlig (eierens ønske 12.09.2026). */
.calendar-current-period{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0}
/* Admin-kalenderen: samme som frivillig - sentrert gruppe der MÅNEDSTEKSTEN har fast
   bredde (bred nok til lengste måned, "September 2026" ≈ 132px), så pilene står i ro
   og kompakt nær måneden i stedet for å sprike ut til kantene. Fast bredde må ligge på
   selve teksten, ikke på beholderen som også har "I dag"-knappen. */
.admin-calendar .calendar-header{display:flex;align-items:center;justify-content:center;gap:14px}
.admin-calendar .calendar-header .calendar-current-period strong{min-width:135px;text-align:center}
.calendar-current-period .btn{min-height:28px;padding:4px 8px;font-size:10px}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.calendar-weekdays{margin-bottom:6px;color:var(--muted);font-size:12px;font-weight:800;text-align:center}
.calendar-day{min-height:58px;border:1px solid transparent;border-radius:10px;background:transparent;position:relative;font:inherit;cursor:default;color:var(--text)}
.calendar-day.has-events{border-color:var(--border);background:var(--surface-2);cursor:pointer}
.calendar-day.has-events:hover,.calendar-day.selected{outline:2px solid var(--accent);outline-offset:-2px}
.calendar-day:disabled{opacity:.5}
.admin-calendar .calendar-day.is-today{
  font-weight:800;
  box-shadow:inset 0 0 0 2px #8ca9c9;
}
.calendar-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-left:4px;vertical-align:middle}
.calendar-attention-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#d97706;margin-left:4px;vertical-align:middle}
.calendar-day.has-admin-attention{color:#a95300;background:#fff8eb;border-color:#efc87b}
.calendar-full-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#23845a;margin-left:4px;vertical-align:middle}
.calendar-note-dot{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;color:#6d5c93;font-size:10px;line-height:1;vertical-align:middle}
.calendar-absence-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--danger);margin-left:4px;vertical-align:middle}
.admin-calendar .calendar-header{position:relative}
.calendar-scope-toggle{position:absolute;right:0;top:50%;transform:translateY(-50%);margin:0}
.calendar-scope-toggle .btn.active{background:var(--accent,#2f3a4f);color:#fff;border-color:transparent}
@media (max-width:720px){.admin-calendar .calendar-header{position:static;flex-wrap:wrap}.calendar-scope-toggle{position:static;transform:none;flex-basis:100%;display:flex;justify-content:center;margin:10px 0 0}}
.calendar-day.is-fully-staffed{color:#176a47;background:#eef8f2;border-color:#9fd5b8}
/* Passerte dager i admin-kalenderen får SAMME diagonale skravering som i
   frivillig-kalenderen («diagonal = passert», eierens regel 12.09.2026). Den
   legges som et overlegg (::after) OPPÅ statusfargene, så en passert fullbooket
   dag fortsatt leser som «fullbooket, og over» - statusen forsvinner ikke. */
.admin-calendar .calendar-day.is-past-day{position:relative}
.admin-calendar .calendar-day.is-past-day::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:repeating-linear-gradient(-45deg, transparent 0 4px, rgba(76,106,92,.22) 4px 6px);
  pointer-events:none;
  z-index:0;
}
.admin-calendar .calendar-day.is-past-day > *{position:relative;z-index:1}
.calendar-event-card.admin-calendar-event{display:grid;width:100%;font:inherit;color:inherit;text-align:left}
.admin-calendar-event-open{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.admin-calendar-event-open:focus-visible,.admin-calendar-signup-row:focus-visible{outline:3px solid rgba(33,78,145,.28);outline-offset:2px;border-radius:8px}
.admin-calendar-event-status{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.admin-calendar-signups{grid-column:1/-1;display:grid;margin-top:8px;border-top:1px solid var(--line)}
.admin-calendar-signups-heading{padding:7px 0 4px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.admin-calendar-signup-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:5px 0;border:0;border-top:1px solid #edf0f4;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.admin-calendar-signup-row:hover strong{text-decoration:underline}
.admin-calendar-signup-row.is-readonly{cursor:default}
.admin-calendar-signup-row.is-readonly:hover strong{text-decoration:none}
.admin-calendar-signup-row>span:first-child{display:flex;align-items:baseline;gap:7px;min-width:0}
.admin-calendar-signup-note{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;font-size:16px;line-height:1;vertical-align:-2px;filter:saturate(1.15)}
.admin-calendar-signup-row small{color:var(--muted);font-size:10px}
.admin-calendar-signups-empty{grid-column:1/-1;margin-top:8px;padding-top:7px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}
@media(max-width:650px){
  .admin-calendar-event-open{grid-template-columns:1fr}
  .admin-calendar-event-status{justify-content:flex-start}
  .admin-calendar-signup-row>span:first-child{display:grid;gap:1px}
}
.calendar-legend{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin:12px 0}
.calendar-day-events{border-top:1px solid var(--border);padding-top:14px;margin-top:10px}
.calendar-day-events h3{margin:0 0 10px;text-transform:capitalize}
.calendar-event-card{display:grid;gap:3px;width:100%;padding:12px;text-align:left;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;margin-bottom:8px;font:inherit}
.calendar-event-card span{color:var(--muted);font-size:13px}
.event-info-primary{text-transform:capitalize;font-weight:700}
.event-info-body{display:grid;gap:10px;margin:16px 0}
.event-info-row,.event-info-status{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--border);padding-bottom:10px}
.volunteer-event-time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:8px}
.volunteer-event-fact{box-sizing:border-box;display:grid;align-content:center;gap:2px;min-height:50px;padding:5px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.volunteer-event-fact strong{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.volunteer-event-fact span{font-size:13px;font-weight:750}
.volunteer-event-fact .volunteer-meeting-time{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 4px}
.volunteer-meeting-time b{color:var(--accent);font-size:16px;font-weight:850;line-height:1.15}
.volunteer-meeting-time small{color:var(--muted);font-size:12px;font-weight:500;line-height:1.25}
.volunteer-event-assignment-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr);gap:10px}
.volunteer-event-assignment-grid .event-info-row,.volunteer-event-assignment-grid .event-info-status{align-items:center;margin:0;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:#fff}
.volunteer-event-assignment-grid .event-info-row>strong{flex:0 0 auto;font-weight:750}
.volunteer-event-assignment-grid .event-info-row>span{min-width:0;text-align:right;overflow-wrap:anywhere;font-weight:500}
.volunteer-event-assignment-grid .event-info-row:only-child{grid-column:1/-1}
.volunteer-event-assignment-grid:not(.has-event-host)>.event-info-row:first-child{grid-column:1/-1}
.volunteer-event-assignment-grid.without-roles.has-event-host>.event-info-row{grid-column:1/-1}
.volunteer-event-aligned-line{box-sizing:border-box;padding-left:10px!important;padding-right:10px!important}
#volunteerEventAdmissionBriefing{padding-left:0!important;padding-right:0!important}
.volunteer-event-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.volunteer-event-title-row h2{min-width:0;margin-right:auto}
/* Type- og status-merket grupperes tett sammen til høyre for tittelen, som én
   liten merkegruppe, i stedet for å flyte hver for seg (eierens ønske 15.09.2026). */
.volunteer-event-title-badges{flex:0 0 auto;display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;margin:3px 18px 0 0}
.volunteer-event-title-row .type-badge{flex:0 0 auto;max-width:none;margin:0;text-align:left}
.volunteer-event-status-pill{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}
#volunteerStatsDialog{width:min(1200px,calc(100vw - 32px));max-width:none}
#volunteerStatsDialog .dialog-card{width:100%;max-width:none;box-sizing:border-box}
@media(max-width:700px){
  .volunteer-view-actions{width:100%;justify-content:space-between}
  .calendar-shell{padding:10px}
  .calendar-day{min-height:44px}
  .calendar-weekdays,.calendar-grid{gap:3px}
  .volunteer-event-info-dialog{width:calc(100vw - 12px);max-width:none}
  .volunteer-event-info-dialog .dialog-card{width:100%;box-sizing:border-box}
}

/* v7.0-dev2 – direkte handling i kalender */
.calendar-event-card{display:flex;align-items:center;justify-content:space-between;gap:14px}
.calendar-event-main{display:grid;gap:3px;min-width:0}
.volunteer-calendar-statuses{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.calendar-event-action{flex:0 0 auto}
@media(max-width:560px){
  .calendar-event-card{align-items:flex-start}
  .calendar-event-action .btn{white-space:nowrap}
}

/* v7.0-dev3 – Frivillig arbeidsvindu */
.volunteer-workspace-dialog{width:min(1050px,calc(100vw - 32px));max-width:none}
.volunteer-workspace-dialog .dialog-card{width:100%;max-width:none;box-sizing:border-box}
.workspace-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.workspace-tabs{display:flex;gap:6px;border-bottom:1px solid var(--border);margin:18px 0}
.workspace-tab[data-tab-hint]::before,.import-tab[data-tab-hint]::before{content:attr(data-tab-hint);display:inline-flex;align-items:center;justify-content:center;min-width:15px;height:15px;margin-right:6px;padding:0 3px;border-radius:4px;background:rgba(22,32,51,.07);color:var(--muted);font-size:10px;font-weight:800;line-height:1;vertical-align:1px}
.workspace-tab.active[data-tab-hint]::before{background:rgba(39,87,157,.14);color:var(--accent)}
.workspace-tab{border:0;background:transparent;padding:10px 12px;font:inherit;font-weight:800;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}
.workspace-tab.active{color:var(--text);border-bottom-color:currentColor}
/* Frivilligvinduet skal ha SAMME rene understrek-fanevelger som arrangementskortet
   (eierens ønske 17.09.2026), ikke den generiske «pille»-boksen (dialog .workspace-tabs). */
.volunteer-workspace-dialog .workspace-tabs{margin:8px 0 12px;padding:0;gap:2px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
.volunteer-workspace-dialog .workspace-tab{padding:9px 10px;border-radius:0;background:transparent;font-size:14px;font-weight:750}
.volunteer-workspace-dialog .workspace-tab.active{background:transparent;box-shadow:none;border-bottom:2px solid var(--accent);color:var(--text)}
/* Tett OPPDRAG-seksjon i frivilligvinduets Oversikt, med samme knappe overskrift som
   arrangementskortet - ikke den store standard-h3-en (eierens «altfor mye luft»). */
.volunteer-workspace-dialog .workspace-oppdrag{margin-top:18px}
.volunteer-workspace-dialog .workspace-oppdrag .section-heading{margin-bottom:9px}
.volunteer-workspace-dialog .workspace-oppdrag .section-heading .eyebrow{font-size:10.5px;letter-spacing:.06em;line-height:1.2}
.volunteer-workspace-dialog .workspace-oppdrag .section-heading h3{margin:3px 0 0;font-size:15px;font-weight:800;line-height:1.25}
.volunteer-workspace-dialog .workspace-oppdrag .section-heading h3 .muted{font-weight:600;font-size:13px}
.workspace-content{min-height:220px}
.workspace-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.workspace-panel{border:1px solid var(--border);border-radius:12px;padding:14px;background:var(--surface)}
.workspace-spaced{margin-top:14px}
.workspace-contact{display:grid;grid-template-columns:95px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.workspace-contact:last-child{border-bottom:0}
.workspace-event-link{display:grid;width:100%;gap:4px;border:0;background:transparent;padding:8px 0;text-align:left;cursor:pointer;font:inherit;color:inherit}
.workspace-event-link span{color:var(--muted)}
.workspace-signup-comment{margin-top:4px;min-width:0}
.workspace-signup-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.inline-link{display:inline;text-decoration:underline;font-weight:700;padding:0}
.assignment-note-indicator{display:inline;position:relative;top:-1px;margin-left:10px;padding:0 2px;border-radius:4px;background:#f3f2fb;box-shadow:0 0 0 1px #c9c7e8;color:#55528f;font-size:11px;line-height:1;text-decoration:none}
.detail-volunteer-link{border:0;background:transparent;padding:0;font:inherit;font-weight:800;text-decoration:underline;cursor:pointer;color:inherit}
.detail-volunteer-name{font:inherit;font-weight:800;color:inherit}
.history-timeline{display:grid;gap:10px}
.history-item{border-left:3px solid var(--border);padding:8px 12px}
.history-date{font-size:12px;color:var(--muted);margin-bottom:3px}
/* Historikk som én linje per hendelse (17.09.2026): tid · hendelse · rolle · mål. */
.history-timeline.history-lines{gap:0}
.history-line{display:grid;grid-template-columns:max-content 1fr auto;align-items:baseline;gap:4px 12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.history-line:last-child{border-bottom:0}
.history-line-time{font-size:12px;color:var(--muted);white-space:nowrap}
.history-line-what{min-width:0}
.history-line-target{justify-self:end;text-align:right;min-width:0;overflow-wrap:anywhere}
.history-line .workspace-event-link{display:inline;width:auto;padding:0;color:var(--blue);font-weight:600}
.history-line-target .muted{font-weight:500}
.history-line .workspace-event-link:hover{text-decoration:underline}
.history-line .detail-volunteer-link,.history-line .detail-volunteer-name{font-weight:600}
@media(max-width:700px){
  .history-line{grid-template-columns:max-content 1fr}
  .history-line-target{grid-column:2;justify-self:start;text-align:left}
}
.compact-empty{padding:8px 0}
@media(max-width:700px){
  .workspace-header{display:grid}
  .workspace-overview-grid{grid-template-columns:1fr}
  .volunteer-workspace-dialog{width:calc(100vw - 12px)}
}

/* v7.0-dev4 – sikre synlig lukkeknapp i arbeidsvinduer */
.volunteer-workspace-dialog .dialog-card{
  position:relative;
  padding-right:64px;
}
.volunteer-workspace-dialog .dialog-close{
  position:absolute;
  top:16px;
  right:16px;
  z-index:20;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
}
.volunteer-workspace-dialog .workspace-header{
  padding-right:0;
}
.volunteer-workspace-person-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px}
.volunteer-workspace-person-actions .btn{width:auto;min-height:30px;padding:5px 9px;font-size:11px}
.volunteer-workspace-header-actions{display:grid;gap:7px;justify-items:end;min-width:280px;margin-right:0}
.volunteer-workspace-navigation{display:grid;grid-template-columns:auto minmax(52px,auto) auto;align-items:center;gap:7px}
.volunteer-workspace-navigation .btn{width:auto;min-height:34px;padding:6px 10px;font-size:12px}
.volunteer-workspace-navigation>span{text-align:center;font-size:11px;font-weight:750}
.volunteer-workspace-header-actions .event-detail-filter-indicator{justify-content:flex-end}
@media(max-width:760px){
  .volunteer-workspace-header-actions{width:100%;min-width:0;justify-items:stretch}
  .volunteer-workspace-navigation{grid-template-columns:1fr auto 1fr}
  .volunteer-workspace-header-actions .event-detail-filter-indicator{justify-content:space-between}
}

@media(max-width:700px){
  .volunteer-workspace-dialog .dialog-card{
    padding-right:54px;
  }
  .volunteer-workspace-dialog .workspace-header{
    padding-right:0;
  }
  .volunteer-workspace-header-actions{margin-right:0;padding-right:6px}
  .volunteer-workspace-person-actions{margin-top:8px}
}

/* v7.0-dev5 – Arrangement arbeidsvindu */
.event-workspace-dialog{width:min(1180px,calc(100vw - 32px));max-width:none}
.event-workspace-dialog .dialog-card{width:100%;max-width:none;box-sizing:border-box;position:relative;padding-right:64px}
.event-workspace-dialog .dialog-close{position:absolute;top:16px;right:16px;z-index:20;width:36px;height:36px;display:grid;place-items:center}
.event-workspace-dialog .event-detail-header{padding-right:24px}
.workspace-quick-status{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:13px;color:var(--muted)}
.event-workspace-tab{min-height:260px}
.staffing-role-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding:6px 0;border-bottom:1px solid var(--line)}
.staffing-role-heading div{display:flex;gap:10px;align-items:baseline}
.staffing-role-heading span{color:var(--muted);font-size:13px}
.staffing-person-row{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(120px,160px);gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--border)}
.staffing-person-row:first-of-type{border-top:0}
@media(max-width:700px){
  .event-workspace-dialog{width:calc(100vw - 12px)}
  .event-workspace-dialog .dialog-card{padding-right:54px}
  .event-workspace-dialog .event-detail-header{display:grid;padding-right:0}
  .workspace-tabs{overflow-x:auto;white-space:nowrap}
  .staffing-person-row{grid-template-columns:1fr auto}
  .staffing-person-row .inline-select{grid-column:1/-1}
}

/* v7.0-dev6 – kompakt arrangementliste */
.admin-event-scope{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.admin-quick-filters{display:flex;gap:6px;flex-wrap:wrap}
.quick-filter{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:999px;padding:7px 11px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.quick-filter.active{background:var(--text);color:#fff;border-color:var(--text)}
.admin-event-row{cursor:pointer}
.admin-event-row:hover td{background:var(--surface-2)}
.staffing-summary,.pending-count-btn{display:grid;gap:1px;border:0;background:transparent;padding:2px 0;text-align:left;cursor:pointer;font:inherit;color:inherit}
.staffing-summary span,.pending-count-btn span{font-size:12px;color:var(--muted)}
.staffing-summary.warn strong{font-weight:900}
.staffing-summary.good strong{font-weight:900}
.pending-count-btn strong{font-size:16px}
.signup-note-count-btn{display:inline-flex;align-items:center;gap:.3rem;border:1px solid #c9c7e8;border-radius:999px;background:#f3f2fb;color:#55528f;padding:.3rem .55rem;cursor:pointer;font:inherit}
.signup-note-count-btn:hover,.signup-note-count-btn:focus-visible{border-color:#817db8;background:#eae8f8;outline:2px solid rgba(85,82,143,.18);outline-offset:2px}
.signup-note-count-btn strong{font-size:.82rem}

/* Avslag er en tydelig beslutning, men skal ikke konkurrere visuelt med sletting og kritiske feil. */
.btn.btn-danger[data-status="fullbooked"]{background:#8f3d4d;color:#fff}
.btn.btn-danger[data-status="fullbooked"]:hover,.btn.btn-danger[data-status="fullbooked"]:focus-visible{background:#762f3d}
@media(max-width:760px){
  .admin-event-scope{align-items:flex-start}
  .admin-quick-filters{width:100%}
}

/* v7.0-dev7 – Historikk som oppslagsverktøy */
.history-workspace-dialog{width:min(1250px,calc(100vw - 32px));max-width:none}
.history-workspace-dialog .dialog-card{width:100%;max-width:none;box-sizing:border-box;position:relative;padding-right:64px}
.history-workspace-dialog .dialog-close{position:absolute;top:16px;right:16px;z-index:20;width:36px;height:36px;display:grid;place-items:center}
.history-quick-filters{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 10px}
.history-filterbar{grid-template-columns:minmax(220px,2fr) repeat(4,minmax(130px,1fr)) auto}
.history-toolbar-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0}
.history-load-status{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;margin:0 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#f7f9fc;color:var(--muted);font-size:13px;line-height:1.4}
.history-load-status[data-state="error"]{border-color:#d9a2a2;background:#fff5f4;color:#7d2929}
.history-link{border:0;background:transparent;padding:0;font:inherit;font-weight:800;text-decoration:underline;cursor:pointer;color:inherit}
.history-volunteer-name,.history-static-name{font:inherit;font-weight:800;color:inherit}
/* Med «Nullstill filter» som sjette kolonne trenger raden ca. 920 px; under det brytes den til to rader (knappen sist). */
@media(max-width:1100px){
  .history-filterbar{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:900px){
  .history-filterbar{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .history-workspace-dialog{width:calc(100vw - 12px)}
  .history-workspace-dialog .dialog-card{padding-right:54px}
  .history-filterbar{grid-template-columns:1fr}
  .history-toolbar-bottom{align-items:flex-start;flex-direction:column}
}

/* v7.0-dev8 – direkte arrangement/bemanning + e-posthandlinger */
#adminEvents .request-event-btn,#adminEvents .message-event-btn{white-space:nowrap}
@media(max-width:980px){
  #adminEvents{overflow-x:auto}
  #adminEvents table{min-width:1050px}
}
/* v7.0-dev11 – tydelig skille Arrangement/Bemanning */
.event-workspace-dialog .event-detail-header .eyebrow{font-weight:900}
.event-workspace-dialog #eventDetailTitle{margin-top:2px}

/* v7.0-dev15 – frivilligregister som arbeidsoversikt */
.volunteer-register-row{cursor:pointer}
.volunteer-register-row:hover td{background:var(--surface-2)}
.volunteer-register-row:focus{outline:2px solid var(--accent);outline-offset:-2px}
.volunteer-register-row a{color:inherit}
@media(max-width:900px){
  .volunteer-register-dialog .table-wrap{overflow-x:auto}
  .volunteer-register-dialog table{min-width:1050px}
}

/* v7.0-dev16 – hurtigarbeid i frivilligregister */
.volunteer-register-quick-filters{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.register-next-assignment{border:0;background:transparent;padding:0;font:inherit;font-weight:800;text-decoration:underline;cursor:pointer;color:inherit;white-space:nowrap}

/* v7.0-dev17 – Mine oppdrag */
#mySignups.panel{padding:0;background:transparent;border:0}
.my-assignment-section{display:grid;gap:8px;margin-bottom:16px}
.my-assignment-section-title{font-weight:900;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.my-assignment-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--surface)}
.my-assignment-main{display:grid;gap:4px;min-width:0;border:0;background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer;padding:0}
.my-assignment-status-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:inherit!important}
.my-assignment-main>span:not(.status-badge){color:var(--muted);font-size:13px}
.my-assignment-status{justify-self:start}
.my-assignment-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.my-assignment-history{margin-top:10px}
.my-assignment-history summary{cursor:pointer;font-weight:800;padding:10px 0}
.my-assignment-history-list{display:grid;gap:8px}
@media(max-width:700px){
  .my-assignment-card{display:grid}
  .my-assignment-actions{justify-content:flex-start}
}

/* v7.0-dev23 – minimal Min profil */
.my-profile-dialog{width:min(520px,calc(100vw - 24px))}
.my-profile-dialog .dialog-card{width:100%;box-sizing:border-box}
.profile-readonly-card{overflow:hidden;border:1px solid var(--border);border-radius:14px;background:#fff}
.profile-readonly-row{display:grid;grid-template-columns:minmax(82px,110px) minmax(0,1fr);align-items:center;gap:12px;min-height:54px;padding:9px 14px;border-bottom:1px solid var(--border)}
.profile-readonly-row:last-child{border-bottom:0}
.profile-readonly-row>strong{font-size:13px;line-height:1.3}
.profile-readonly-row>span{min-width:0;color:var(--muted);font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.profile-role-list{display:flex;flex-wrap:wrap;gap:6px}
/* Telefon: frivillige kan endre eget nummer igjen (eierens ønske 19.09.2026 - denne
   muligheten fantes før, ble fjernet, og skal tilbake). «Endre» ved siden av verdien,
   ikke et eget skjema alltid synlig - samme kompakte rad-prinsipp som resten av profilkortet. */
.profile-editable-value{display:flex;align-items:center;gap:8px;min-width:0}
.profile-editable-value>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.my-profile-phone-form{display:flex;gap:8px;padding:9px 14px;border-bottom:1px solid var(--border)}
.my-profile-phone-form input{flex:1 1 auto;min-width:0}
.profile-role-chip{display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border-radius:999px;background:#edf3fb;color:#244f86;font-size:12px;font-weight:750;line-height:1}
.profile-empty-value{font-style:italic}
.my-profile-dialog .profile-dialog-actions{justify-content:flex-start}
.my-profile-dialog .profile-dialog-actions .btn{min-width:96px}


/* v7.0-dev33 – minimalistisk frivilligside */
#volunteerView{
  max-width:960px;
  margin:0 auto;
}
.volunteer-main-heading{
  margin-top:22px;
  margin-bottom:10px;
}
.volunteer-main-heading h1,
.volunteer-main-heading h2,
.volunteer-events-heading h2{
  margin:0;
}
#mySignups.panel{
  margin-top:0;
}
.my-assignment-section{
  margin-bottom:12px;
}
.my-assignment-section-title{
  margin-bottom:2px;
}
.my-assignment-card{
  padding:12px 14px;
  border-radius:14px;
}
.my-assignment-main{
  gap:3px;
}
.my-assignment-actions{
  margin-top:4px;
}
.my-assignment-history{
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:2px 0;
}
.my-assignment-history summary{
  padding:12px 2px;
}
#volunteerView .toolbar input,
#volunteerView .toolbar select{
  min-height:42px;
}
.volunteer-events-heading{
  margin-top:12px;
}
#volunteerView .section-heading{
  align-items:center;
}
#volunteerView .summary-chip{
  font-size:12px;
}
@media(max-width:700px){
  .my-signups-top-block{
    margin-top:0;
  }
  .my-assignment-card{
    padding:12px;
  }
  .my-assignment-actions .btn{
    padding:8px 10px;
  }
  #volunteerView .toolbar{
    display:grid;
    grid-template-columns:1fr;
  }
  .volunteer-events-heading{
    display:flex;
    align-items:center;
  }
}

/* v7.0-dev34 – godkjent minimalistisk frivillig-header */
.topbar{align-items:center}
.volunteer-session-compact{display:flex;align-items:center;gap:8px;border:0;padding:0;background:transparent}
.volunteer-session-compact #sessionLabel{display:none!important}
.volunteer-top-login{white-space:nowrap}
.volunteer-name-btn{border:0;background:transparent;padding:9px 0 9px 12px;font:inherit;font-weight:800;color:var(--text);cursor:pointer;white-space:nowrap}
#volunteerView{padding-top:0}
.my-signups-top-block{margin-top:0}
.volunteer-main-heading{margin-top:22px}
@media(max-width:700px){
  body.admin-portal-active main{padding-top:12px}
  .topbar{padding-top:14px;padding-bottom:14px;gap:12px}
  .topbar .brand-mark{flex:0 0 auto}
  .topbar .brand-title{font-size:18px;white-space:nowrap}
  .topbar .brand-subtitle{font-size:13px}
  .volunteer-name-btn{max-width:150px;overflow:hidden;text-overflow:ellipsis}
}

/* v7.0-dev35 – kompakt venstrestilt header på frivilligsiden */
@media(max-width:700px){
  .topbar{
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    width:100%;
    padding:12px 16px 10px;
    box-sizing:border-box;
  }

  .topbar .brand{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    text-align:left;
    margin:0;
    flex:1 1 auto;
    min-width:0;
  }

  .topbar .brand-mark{
    margin:0;
  }

  .topbar .brand-title,
  .topbar .brand-subtitle{
    text-align:left;
  }

  .volunteer-session-compact{
    margin:0;
    justify-content:flex-end;
  }

  .volunteer-top-login{
    padding:7px 11px;
    min-height:36px;
    font-size:14px;
  }

  .volunteer-name-btn{
    padding:7px 0 7px 10px;
    font-size:15px;
  }

  #volunteerView .volunteer-main-heading :is(h1,h2){
    margin-top:0;
  }
}

/* v7.0-dev37 – endelig justering av frivillig-header */
@media(max-width:700px){
  .topbar{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    padding:12px 16px 6px!important;
  }

  .topbar .brand{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    text-align:left!important;
    margin:0!important;
    flex:0 1 auto!important;
  }

  .topbar-right{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    width:auto;
    min-width:0;
    margin-left:auto!important;
    padding-left:12px!important;
    flex:0 0 auto!important;
  }

  .volunteer-session-compact{
    display:flex!important;
    justify-content:flex-end!important;
    margin-left:auto!important;
  }

  #loginBtn.volunteer-top-login{
    margin-left:auto!important;
  }

  #volunteerView{
    text-align:left!important;
  }

  #volunteerView .my-signups-top-block,
  #volunteerView .volunteer-main-heading,
  #volunteerView .section-heading{
    text-align:left!important;
    justify-content:flex-start!important;
  }

  #volunteerView .volunteer-main-heading :is(h1,h2){
    text-align:left!important;
    margin:0!important;
  }
}

/* v7.0-dev38 – venstrestilte seksjonstitler + tettere header */
@media(max-width:700px){
  .topbar{
    padding-bottom:2px!important;
  }

  #volunteerView{
    padding-top:0!important;
  }

  #volunteerView .my-signups-top-block{
    margin-top:0!important;
    padding-top:0!important;
  }

  #volunteerView .volunteer-main-heading{
    display:block!important;
    margin-top:0!important;
    margin-bottom:4px!important;
    padding-top:0!important;
    text-align:left!important;
  }

  #volunteerView .volunteer-main-heading > div,
  #volunteerView .volunteer-events-heading > div{
    width:100%!important;
    text-align:left!important;
  }

  #volunteerView .volunteer-main-heading :is(h1,h2),
  #volunteerView .volunteer-events-heading h2{
    text-align:left!important;
    margin-left:0!important;
    margin-right:auto!important;
  }

  #volunteerView .volunteer-events-heading{
    display:block!important;
    text-align:left!important;
    justify-content:flex-start!important;
    margin-top:10px!important;
  }
}

.calendar-my-dot{
  position:absolute;
  right:7px;
  top:7px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#199653;
}
.calendar-legend .calendar-my-dot.legend-dot{
  position:static;
  display:inline-block;
  vertical-align:middle;
  margin-right:5px;
}

/* Frivilligkalender: samme informasjonsmodell på desktop og mobil. */
#volunteerView .volunteer-calendar .calendar-shell{padding:14px}
#volunteerView .volunteer-calendar .volunteer-calendar-header{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
}
#volunteerView .volunteer-calendar .volunteer-calendar-header .calendar-current-period{
  min-width:132px;
  justify-content:center;
  text-transform:capitalize;
}
#volunteerView .volunteer-calendar .volunteer-calendar-header .btn{
  min-width:38px;
  min-height:36px;
  padding:6px 10px;
  border:1px solid #d7dee8;
  background:#eef1f5;
  color:var(--text);
  box-shadow:none;
  -webkit-appearance:none;
  appearance:none;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
#volunteerView .volunteer-calendar .volunteer-calendar-header .btn:hover,
#volunteerView .volunteer-calendar .volunteer-calendar-header .btn:focus,
#volunteerView .volunteer-calendar .volunteer-calendar-header .btn:active{
  border-color:#d7dee8;
  background:#eef1f5;
  color:var(--text);
  filter:none;
}
#volunteerView .volunteer-calendar .volunteer-calendar-header .btn:focus-visible{
  outline:3px solid rgba(39,87,157,.35);
  outline-offset:2px;
}
#volunteerView .volunteer-calendar .calendar-day{
  display:flex;
  min-height:62px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  /* Rettere hjørner enn grunnverdien på 10 (eierens ønske 19.09.2026: boksene var «veldig runde»).
     Fortsatt myke, ikke firkantede. Admin-kalenderen er urørt. */
  border-radius:5px;
}
#volunteerView .volunteer-calendar .calendar-date-number{line-height:1}
#volunteerView .volunteer-calendar .calendar-date-indicators{
  display:flex;
  min-height:8px;
  align-items:center;
  justify-content:center;
  gap:4px;
}
#volunteerView .volunteer-calendar .calendar-date-indicators :is(.calendar-dot,.calendar-my-dot){
  position:static;
  display:block;
  width:7px;
  height:7px;
  margin:0;
}
#volunteerView .volunteer-calendar .calendar-day.is-today{
  color:#244f82;
  border-color:#bdd1ea;
  background:#edf4fc;
  font-weight:800;
}
/* «Min jobbkalender»: dine vakter skal umiddelbart lese som DINE dager - fylt
   grønt med en tydelig venstrekant og grønt, uthevet datotall, ikke bare en
   liten prikk (eierens ønske 11.09.2026). */
#volunteerView .volunteer-calendar .calendar-day.has-my-event{
  border-color:#4d9a6b;
  background:#dff2e7;
  box-shadow:inset 3px 0 0 var(--volunteer-assigned-border,#4d9a6b);
}
#volunteerView .volunteer-calendar .calendar-day.has-my-event .calendar-date-number{
  color:#176a47;
  font-weight:800;
}
/* Påmeldt, men ennå ikke tildelt = blekgul (samme gull som «Påmeldt»-kortet i
   listevisningen, #c49b44), til admin har bekreftet. Grønt er reservert for
   bekreftede vakter (eierens ønske 12.09.2026). */
#volunteerView .volunteer-calendar .calendar-day.has-my-event.has-my-event-pending{
  border-color:#c49b44;
  background:#f7f0df;
  box-shadow:inset 3px 0 0 #c49b44;
}
#volunteerView .volunteer-calendar .calendar-day.has-my-event.has-my-event-pending .calendar-date-number{
  color:#765614;
  font-weight:800;
}
#volunteerView .volunteer-calendar .calendar-my-dot.is-pending{background:#c49b44}
.calendar-legend .calendar-my-dot.legend-dot.is-pending{background:#c49b44}
#volunteerView .volunteer-calendar .calendar-my-caption{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 12px;
  padding:9px 12px;
  border-radius:10px;
  background:#eef8f2;
  border:1px solid #cfe9db;
  color:#245c41;
  font-size:13px;
  line-height:1.35;
}
#volunteerView .volunteer-calendar .calendar-my-caption .calendar-my-dot{flex:none}
/* Filtrert visning: gul/amber i stedet for grønn, med en godt synlig knapp tilbake
   til hele den personlige kalenderen (eierens ønske 16.09.2026). */
/* Filtrert visning: én rad - kort tekst til venstre, knapp høyrestilt. Skal ikke
   skyve kalenderen nedover (eierens ønske 16.09.2026). Knappen faller aldri under. */
#volunteerView .volunteer-calendar .calendar-my-caption.is-filtered{
  background:#fbf3df;border-color:#ecd9a8;color:#6f5410;
  justify-content:space-between;gap:12px;flex-wrap:nowrap;
}
#volunteerView .volunteer-calendar .calendar-my-caption.is-filtered>span{min-width:0;flex:1 1 auto}
#volunteerView .volunteer-calendar .calendar-my-caption .calendar-reset-personal{
  flex:none;white-space:nowrap;margin:0;
}
/* Passerte egne dager (utført/har vært): samme grønne familie, men dempet grå-
   grønn så de skiller seg fra kommende, friskt grønne vakter (eierens ønske
   11.09.2026). Reglene står etter .has-my-event for å overstyre den. */
#volunteerView .volunteer-calendar .calendar-day.has-my-event.has-my-event-past{
  border-color:#9db4a8;
  /* Diagonal skravering (overstrykning) oppå den grå-grønne bunnen: et klart
     «forbi»-signal som er lett å se også på liten iPhone-skjerm, der bare fargen
     var vanskelig å skille (eierens ønske 12.09.2026). */
  background:
    repeating-linear-gradient(-45deg, transparent 0 4px, rgba(76,106,92,.22) 4px 6px),
    #e6ece9;
  box-shadow:inset 3px 0 0 #9db4a8;
}
#volunteerView .volunteer-calendar .calendar-day.has-my-event.has-my-event-past .calendar-date-number{
  color:#5c7266;
  font-weight:700;
}
#volunteerView .volunteer-calendar .calendar-day.has-my-event-past .calendar-my-dot{background:#8ba89a}
#volunteerView .volunteer-calendar .calendar-day.selected{
  outline:2px solid var(--accent);
  outline-offset:-2px;
}
#volunteerView .volunteer-calendar .calendar-day.keyboard-focused{
  box-shadow:0 0 0 3px rgba(39,87,157,.42);
}
#volunteerView .volunteer-calendar .calendar-day:focus-visible{
  outline:3px solid rgba(39,87,157,.5);
  outline-offset:2px;
}
#volunteerView .volunteer-calendar .calendar-event-card{padding:10px 12px}
#volunteerView .volunteer-calendar .calendar-event-main span{font-weight:500}
#volunteerView .volunteer-calendar .volunteer-calendar-statuses :is(.volunteer-card-availability,.status-badge){font-weight:800}
#volunteerView .volunteer-calendar .calendar-event-main span b{color:var(--accent);font-weight:800}

@media(max-width:650px){
  #volunteerView .volunteer-calendar .calendar-shell{padding:9px}
  #volunteerView .volunteer-calendar .volunteer-calendar-header{gap:10px}
  #volunteerView .volunteer-calendar .volunteer-calendar-header .calendar-current-period{
    min-width:0;
    flex:1 1 auto;
    font-size:14px;
  }
  #volunteerView .volunteer-calendar .volunteer-calendar-header .btn{
    min-width:44px;
    min-height:44px;
    padding:7px 8px;
  }
  #volunteerView .volunteer-calendar .calendar-weekdays,
  #volunteerView .volunteer-calendar .calendar-grid{gap:3px}
  #volunteerView .volunteer-calendar .calendar-day{
    min-width:0;
    min-height:50px;
    padding:4px 2px;
    border-radius:4px;
  }
  #volunteerView .volunteer-calendar .calendar-event-card{
    align-items:flex-start;
    gap:8px;
  }
}

@media(max-width:390px){
  #volunteerView .volunteer-calendar .volunteer-calendar-header .calendar-current-period{font-size:13px}
  #volunteerView .volunteer-calendar .volunteer-calendar-header{gap:8px}
  #volunteerView .volunteer-calendar .volunteer-calendar-header .btn{min-width:40px;padding-inline:6px}
  #volunteerView .volunteer-calendar .calendar-day{min-height:48px;font-size:13px}
}
#adminInformationDialog{width:min(900px,calc(100vw - 24px));max-width:none}
#adminInformationDialog .dialog-card{display:grid;gap:12px;width:100%;max-width:none;box-sizing:border-box}

/* v7.0-dev43 – mer kompakte og tydelige oppdragskort */
#volunteerView .my-assignment-card{
  padding:10px 12px!important;
  gap:8px!important;
}
#volunteerView .my-assignment-main{
  gap:2px!important;
}
#volunteerView .my-assignment-main strong{
  font-size:15px;
  line-height:1.25;
}
#volunteerView .my-assignment-main span{
  line-height:1.3;
}
#volunteerView .my-assignment-actions{
  margin-top:2px!important;
  gap:6px!important;
}
#volunteerView .my-assignment-card .status-badge{
  font-size:11px;
  padding:3px 7px;
}
#volunteerView .my-assignment-section-title{
  margin-bottom:4px!important;
}
@media(max-width:700px){
  #volunteerView .my-assignment-card{
    padding:9px 11px!important;
  }
  #volunteerView .my-assignment-actions{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
  }
}

/* v7.0-dev45 – frivilligvennlige arrangementstyper */
.settings-card-wide{grid-column:1/-1}
.event-type-label-list{display:grid;gap:8px}
.event-type-label-row{
  display:grid;
  grid-template-columns:minmax(220px,1.2fr) minmax(220px,1fr) auto;
  gap:10px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid var(--border);
}
.event-type-source{display:grid;gap:3px;min-width:0}
.event-type-source strong{overflow-wrap:anywhere}
.event-type-label-input{width:100%;box-sizing:border-box}
@media(max-width:760px){
  .event-type-label-row .btn{justify-self:start}
}
.event-label-choices{display:flex;flex-wrap:wrap;gap:7px;margin:7px 0}
.event-label-choice input{margin:0}
.event-label-settings-list{display:grid;gap:6px}
@media(max-width:700px){
  #volunteerView .toolbar{grid-template-columns:1fr}
}.event-label-badges,.event-card-labels{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.event-label-badge{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:11px;font-weight:650;line-height:1.2;border:1px solid var(--border);background:var(--surface)}
.bulk-work-dialog{width:min(1000px,calc(100vw - 24px));max-width:none}.bulk-work-dialog .dialog-card{width:100%;max-width:none;box-sizing:border-box}.bulk-label-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,.7fr) auto auto;gap:8px;margin:12px 0}.bulk-event-label-list{display:grid;gap:var(--ui-list-row-spacing)}.bulk-event-label-row{display:grid;grid-template-columns:auto minmax(220px,1.2fr) minmax(180px,1fr) auto;gap:10px;align-items:center;padding:var(--ui-list-row-padding);border:1px solid var(--border);border-radius:10px;font-family:var(--ui-list-font)}.bulk-event-label-main{display:grid;gap:var(--ui-list-content-spacing)}.bulk-event-label-main span{font-size:var(--ui-list-detail-size);font-weight:var(--ui-list-detail-weight);line-height:var(--ui-list-line-height);color:var(--muted)}
@media(max-width:760px){.bulk-event-label-row .event-label-badges,.bulk-event-label-row .bulk-row-label-edit{grid-column:2}}

/* v7.0-dev49 – intern type erstatter frivillig Yesplan-type */
.source-type-note{display:block;margin-top:3px;font-size:11px;color:var(--muted)}

#volunteerView .my-assignment-section-title{color:#496b92}
#volunteerView .my-assignment-card{border-color:#ccd9e8;background:#fff;box-shadow:inset 3px 0 0 #9ab8d9}
#volunteerView .my-assignment-section:first-child .my-assignment-card{box-shadow:inset 3px 0 0 #5f8fbe,0 2px 8px rgba(46,95,154,.07)}
/* v7.0-dev52 – kompakte søk og filtre */
#volunteerView .filters,
#volunteerView .filter-bar,
#volunteerView .toolbar{
  gap:6px!important;
}
#volunteerView #eventSearch,
#volunteerView #eventTypeFilter,
#volunteerView #eventAvailabilityFilter{
  min-height:32px!important;
  height:32px!important;
  padding-top:4px!important;
  padding-bottom:4px!important;
  font-size:13px!important;
}
#volunteerView #eventSearch{
  padding-left:9px!important;
  padding-right:9px!important;
}
#volunteerView select{
  padding-left:8px!important;
}
/* v7.0-dev53 – mer balansert luft og bedre utnyttelse av skjermbredden */

/* Frivilligsiden skal bruke tilgjengelig bredde i stedet for å oppleves midtstilt */
#volunteerView{
  width:100%!important;
  max-width:none!important;
}
/* Kortlisten får bruke hele bredden */
#volunteerView #eventCards{
  width:100%!important;
  max-width:none!important;
}

/* Behold kompakte søk/filter fra dev52 */
#volunteerView #eventSearch,
#volunteerView #eventTypeFilter,
#volunteerView #eventAvailabilityFilter{
  min-height:32px!important;
  height:32px!important;
}

/* v7.0-dev54 – bruk mer av skjermbredden på iPhone */
@media(max-width:700px){
  body{
    margin:0!important;
    padding:0!important;
  }

  main,
  .main,
  .app-main,
  .page-shell,
  .content-shell,
  .container,
  .content-container{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  #volunteerView{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
    padding-left:8px!important;
    padding-right:8px!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  #volunteerView .my-signups-top-block,
  #volunteerView .volunteer-main-heading,
  #volunteerView .volunteer-events-heading,
  #volunteerView .toolbar,
  #volunteerView #eventCards,
  #volunteerView #volunteerCalendar{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }
}

/* v7.0-dev55 – lik skriftstørrelse i dropdown på iPhone */
@media(max-width:700px){
  #volunteerView select,
  #volunteerView select option,
  #volunteerView #eventTypeFilter,
  #volunteerView #eventAvailabilityFilter{
    font-size:13px!important;
  }
}
@media(max-width:760px){}

/* v7.0-dev57 – ryddigere filterkolonne i Innstillinger */
.event-type-label-header{
  display:grid;
  grid-template-columns:minmax(220px,1.2fr) minmax(200px,1fr) 60px auto;
  gap:10px;
  align-items:center;
  padding:0 0 6px;
  font-size:11px;
  font-weight:700;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.03em;
}
.event-type-filter-cell input,
.event-label-filter-visible{
  width:16px;
  height:16px;
  margin:0;
}
.internal-filter-label{
  font-size:11px;
  font-weight:700;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.03em;
}
.internal-event-filter-control{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0;
  cursor:pointer;
  white-space:nowrap;
}
@media(max-width:760px){
  .event-type-label-header{
    display:none;
  }
}
@media(max-width:760px){
  .event-type-filter-cell{justify-content:flex-start!important}
}

/* v7.0-dev59 – «Vis i filter» sitter fysisk sammen med avkrysningsboksen */
.event-type-label-header{
  grid-template-columns:minmax(220px,1.2fr) minmax(200px,1fr) 92px auto!important;
}
.event-type-label-row{
  grid-template-columns:minmax(220px,1.2fr) minmax(200px,1fr) 92px auto!important;
}
.event-type-filter-cell{
  width:92px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  margin:0!important;
  font-size:10px!important;
  font-weight:700!important;
  color:var(--muted)!important;
  text-transform:uppercase!important;
  letter-spacing:.02em!important;
  white-space:nowrap!important;
}
.event-type-filter-cell input{
  width:16px!important;
  height:16px!important;
  margin:0!important;
}
@media(max-width:760px){
  .event-type-label-row{grid-template-columns:1fr!important}
  .event-type-filter-cell{
    width:auto!important;
    align-items:flex-start!important;
  }
}

/* Innlogging kontrolleres før rolleavhengig innhold blir synlig. */
body.portal-session-checking main{display:none}
body.portal-session-checking #sessionBox{visibility:hidden}
.portal-startup-status{display:none}
body.portal-session-checking .portal-startup-status{
  display:flex;
  min-height:calc(100vh - 92px);
  padding:32px 20px;
  box-sizing:border-box;
  align-items:center;
  justify-content:center;
  gap:9px;
  color:var(--muted);
  font-size:13px;
  font-weight:650;
}

/* Trygg og enkel visning når ingen konto er innlogget. */
#volunteerView.explicitly-logged-out > :not(#loggedOutVolunteerState){display:none!important}
.logged-out-volunteer-state{display:grid;place-items:start center;width:100%;min-height:calc(100vh - 190px);box-sizing:border-box;padding:52px 0 28px}
.logged-out-card{display:grid;justify-items:center;width:min(100%,520px);box-sizing:border-box;padding:32px 34px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 12px 34px rgba(18,35,61,.08);text-align:center}
.logged-out-card h1{margin:5px 0 7px;font-size:27px;line-height:1.15}.logged-out-card p{max-width:390px;margin:0 0 18px;color:var(--muted);line-height:1.5}.logged-out-card .btn{min-width:150px}.logged-out-card small{margin-top:14px;color:var(--muted);font-size:11px;line-height:1.4}
@media(max-width:700px){.logged-out-volunteer-state{min-height:calc(100vh - 150px);padding:30px 0 20px}.logged-out-card{padding:27px 20px}.logged-out-card h1{font-size:24px}}
/* Uten nett er den lagrede oppdragslisten selve logget-ut-kortet. */
.offline-assignments-card{justify-items:stretch;text-align:left}
.offline-assignments-card h1{margin:4px 0 6px;font-size:24px;line-height:1.15}
.offline-assignments-meta{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.45}
.offline-assignment-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.offline-assignment{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft,#f7f7f8);font-size:13px;line-height:1.4}
.offline-assignment>strong{font-size:15px}
.offline-assignment .status-badge{justify-self:start;margin-bottom:2px}
.offline-assignment.is-waiting{opacity:.92}


/* v7.0-dev61 – samme logout-beskyttelse for admin */
#adminView.explicitly-logged-out > :not(#loggedOutVolunteerState){display:none!important}
body.portal-explicitly-logged-out #adminView:not(.explicitly-logged-out){display:none!important}

/* Admin-konto åpnes fra toppfeltet og beholder en kompakt knappetikett. */
#openAdminAccountBtn{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:700px){#openAdminAccountBtn{max-width:150px}}

/* Én felles innlogging for alle kontotyper. Rollen bestemmes etter innlogging. */
.login-card{max-width:430px}
.login-account-fields{display:grid;gap:6px}
.login-account-fields label{margin:0!important}
.login-account-fields label:not(:first-child){margin-top:3px!important}
.login-link-btn{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  width:auto;
  padding:2px 0;
  border:0;
  background:none;
  color:var(--muted);
  font:inherit;
  font-size:12px;
  text-decoration:underline;
  text-underline-offset:2px;
  cursor:pointer;
}
.first-admin-setup{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:11px;
  color:var(--muted);
}
.login-actions{margin-top:14px}
@media(max-width:700px){
  .login-card{width:min(100%,420px)}
}

/* v7.0-dev64 – balansert login-popup på Mac/desktop */
@media(min-width:701px){

  #loginDialog .dialog-card.login-card{
    width:380px!important;
    max-width:380px!important;
    min-width:0!important;
    margin:0 auto!important;
    padding:20px 22px!important;
    box-sizing:border-box!important;
  }

  #loginDialog input{
    width:100%!important;
    box-sizing:border-box!important;
  }

  #loginDialog .login-actions{
    margin-top:12px!important;
  }
}

/* v7.0-dev65 – kompakt hvit login-dialog på desktop */
@media(min-width:701px){
  #loginDialog{
    width:420px!important;
    max-width:calc(100vw - 40px)!important;
    padding:0!important;
    border:0!important;
    border-radius:14px!important;
    background:#fff!important;
    overflow:hidden!important;
    box-shadow:0 18px 50px rgba(0,0,0,.22)!important;
  }

  #loginDialog .dialog-card.login-card{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:20px 22px!important;
    background:#fff!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    box-sizing:border-box!important;
  }

  #loginDialog::backdrop{
    background:rgba(15,23,42,.24)!important;
    backdrop-filter:blur(2px);
  }
}

/* Felles innloggingsfelt skal ikke antyde en rolle før kontoen er kontrollert. */
#loginAccountFields input,
#loginAccountFields input:focus{
  background:#fff!important;
}

/* v7.0-dev70 – komplett administrasjon av tildelte frivillige */
.staffing-person-row{
  grid-template-columns:minmax(150px,1fr) auto minmax(120px,.7fr) minmax(105px,.55fr) auto!important;
  gap:8px!important;
  align-items:center!important;
}
.staffing-person-row .inline-select{
  min-width:0;
}
/* Statusmerke + «Ikke møtt» deler ÉN rute i rutenettet. Raden har fem faste plasser
   (navn · status · rolle · status-meny · Fjern); en løs ekstra knapp skjøv alt ett
   hakk og la «Fjern» på egen rad som en bred stripe (eierens funn 16.09.2026). */
.staffing-person-row .staffing-status-cell{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}
@media(max-width:760px){
  .staffing-person-row{
    grid-template-columns:1fr auto!important;
  }
  .staffing-person-row .detail-role-select,
  .staffing-person-row .detail-status-select,
  .staffing-person-row .detail-remove-assignment{
    grid-column:1 / -1;
    width:100%;
  }
}

/* v7.0-dev71 – raskere valg av frivillig i Bemanning */
#assignVolunteerSearch{margin-bottom:6px}
#assignVolunteerSelect{
  width:100%;
  min-height:152px;
}

/* v7.0-dev72 – rask behandling av innkomne påmeldinger */
.signup-bulkbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 10px;
  margin-bottom:8px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface-2);
  font-size:13px;
}
.signup-bulkbar>div{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:700px){
  .signup-bulkbar{align-items:flex-start;flex-direction:column}
  .signup-bulkbar>div{width:100%}
  .signup-bulkbar .btn{flex:1}
}

/* v7.0-dev73 – ingen layoutendringer; withdrawal synkes via realtime/polling */

/* v7.0-dev77 – logiske frivilligvarsler etter adminbeslutning */
.volunteer-notice{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:10px 11px;
  margin:0 0 8px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
}
.volunteer-notice.confirmed{border-left:4px solid #2f7d4a}
.volunteer-notice.reserve{border-left:4px solid #b98516}
.volunteer-notice.fullbooked{border-left:4px solid #9b3d3d}
/* Operative endringer for den tildelte er varsler, ikke vanlige statusmeldinger. */
.volunteer-notice.pending{
  border-color:#e6bd65;
  border-left:4px solid #c88916;
  background:#fff9ea;
}
.volunteer-notice-copy{display:grid;gap:2px}
.volunteer-notice-copy .meta{margin-top:2px}
.volunteer-notice-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:700px){
  .volunteer-notice{padding:9px 10px;flex-direction:column}
  .volunteer-notice-actions{width:100%;justify-content:flex-start}
}

/* v7.0-dev78 – tilbaketrekking blokkerer ikke ny påmelding */

/* v7.0-dev79 – adminpåminnelse etter tildelt frivillig trekker seg */
.withdrawal-card .muted{
  margin-top:2px;
  font-size:12px;
}

/* v7.0-dev82 – tidspunkt på tilbaketrekking */
.withdrawal-card .withdrawal-time{margin:3px 0 1px;font-size:13px}

/* v7.0-dev84 – historikk for gjentatte tilbaketrekkinger */
/* v7.0-dev85 – tilbaketrekkinger i samlet historikk */
.history-withdrawal-row td:first-child{
  font-weight:600;
}

/* v7.0-dev93 – bemanningsendringer med eksisterende tildelinger */
.role-builder-row:has(.event-role-check:not(:checked)) .event-role-need{
  opacity:.55;
}

/* v7.0-dev96 – deaktiverte frivillige i aktive påmeldinger */
.pending-card-blocked{
  opacity:.78;
}

/* v7.0-dev97 – deaktivering med eksisterende forpliktelser */
.staffing-person-row.inactive-row{
  opacity:.82;
}

/* v7.0-dev101 – tidskonflikter som oppstår etter planendringer */
.status-badge.conflict{
  background:rgba(176,91,0,.10);
  border-color:rgba(176,91,0,.28);
}
.staffing-summary.has-conflict{
  outline:2px solid rgba(176,91,0,.20);
  outline-offset:-2px;
}
.staffing-person-row.has-time-conflict{
  box-shadow:inset 3px 0 0 rgba(176,91,0,.28);
}
/* v7.0-dev102 – Yesplan-arrangement bevart pga. frivilligdata */
.status-badge.source-missing,
.source-missing-volunteer-note{
  background:rgba(176,91,0,.10);
  border:1px solid rgba(176,91,0,.28);
}
.source-missing-volunteer-note{
  padding:10px 12px;
  border-radius:10px;
  margin-bottom:12px;
}
.event-card.source-missing-event{
  opacity:.88;
}
/* v7.0-dev105 – operativ integritet og handlingsflyt */
.status-badge.integrity{
  background:rgba(153,76,0,.10);
  border-color:rgba(153,76,0,.28);
}
button.status-badge.integrity{
  appearance:none;
  color:inherit;
  font:inherit;
  cursor:pointer;
}
button.status-badge.integrity:hover,
button.status-badge.integrity:focus-visible{
  background:rgba(153,76,0,.18);
  border-color:rgba(153,76,0,.48);
}
.integrity-details-panel{
  margin:0 0 18px;
  padding:16px;
  border:1px solid rgba(153,76,0,.28);
  border-radius:14px;
  background:rgba(153,76,0,.055);
  scroll-margin-top:16px;
}
.integrity-details-panel:focus-visible{
  outline:3px solid rgba(153,76,0,.22);
  outline-offset:2px;
}
.integrity-details-heading{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:8px;
}
.integrity-details-heading h3{margin:2px 0 0}
.integrity-details-panel>p{margin:0 0 12px;color:var(--muted)}
.integrity-details-list{display:grid;gap:10px}
.integrity-detail-item{
  padding:12px 14px;
  border:1px solid rgba(153,76,0,.18);
  border-radius:10px;
  background:var(--surface,#fff);
}
.integrity-detail-item ul{margin:8px 0;padding-left:20px}
.integrity-detail-item li+li{margin-top:4px}
.integrity-detail-item p{margin:8px 0 0;color:var(--muted)}
.integrity-detail-item p span{font-weight:700;color:var(--text)}
/* v7.0-dev111 – operativ avlysning/gjenåpning */
.event-detail-header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.status-badge.cancelled{
  background:rgba(165,42,42,.10);
  border-color:rgba(165,42,42,.30);
}
.staffing-summary.cancelled{
  border-color:rgba(165,42,42,.25);
  background:rgba(165,42,42,.06);
}
.cancelled-volunteer-note{
  padding:12px;
  margin-bottom:12px;
  border-radius:10px;
  background:rgba(165,42,42,.08);
  border:1px solid rgba(165,42,42,.24);
}
.volunteer-notice.cancelled,
.cancelled-assignment{
  border-color:rgba(165,42,42,.28);
  background:rgba(165,42,42,.06);
}
.source-archived-assignment{
  border-color:#d8c58d;
  background:#fffaf0;
}
.lifecycle-archive-panel{
  display:grid;gap:7px;padding:16px;border:1px solid rgba(165,42,42,.24);
  border-radius:14px;background:rgba(165,42,42,.05)
}
.lifecycle-archive-panel strong{font-size:16px}
.lifecycle-archive-panel span{color:var(--muted);line-height:1.45}
.lifecycle-archive-panel .btn{justify-self:start}
.cancelled-reason{margin-top:4px;font-weight:600}
.event-operational-history.cancelled{border-left-color:rgba(165,42,42,.55)}

.section-intro{
  max-width:720px;
  margin:5px 0 0;
  color:var(--muted);
  font-size:14px;
  line-height:1.5;
}
.admin-primary-section{
  margin:0 0 24px;
  padding:16px;
  border:1px solid #b9cae6;
  border-radius:20px;
  background:#fbfcfe;
  box-shadow:0 10px 26px rgba(35,75,143,.055);
}
.compact-view-switch{padding:3px}
.compact-view-switch .view-switch-btn{min-height:34px;padding:7px 12px;font-size:12px}
.admin-inbox-section.is-empty{
  padding-bottom:16px;
  box-shadow:none;
}
.admin-inbox-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.admin-inbox-list .pending-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  border-left:4px solid var(--accent);
  box-shadow:0 7px 20px rgba(29,42,66,.06);
}
.admin-inbox-list .pending-actions{margin-top:auto;padding-top:14px}
.admin-inbox-list .pending-actions .btn{flex:1 1 auto}
.pending-queue-position{display:flex;align-items:center;gap:7px;margin:0 0 10px;color:var(--accent);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.045em}
.pending-queue-position strong{display:grid;place-items:center;min-width:27px;height:27px;padding:0 7px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px;letter-spacing:0}
.pending-queue-position.upcoming-order{color:#52647e}
.pending-queue-position.upcoming-order strong{min-width:12px;width:12px;height:12px;padding:0;background:#52647e;color:transparent}
.pending-event-link{
  display:block;
  width:fit-content;
  max-width:100%;
  margin:1px 0 7px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--accent);
  font:inherit;
  font-size:14px;
  font-weight:800;
  text-align:left;
}
.pending-event-link:hover{text-decoration:underline}
/* Klikkbart frivillignavn i kort-overskriften (h4). Ser ut som navnet det står i
   (arver skrift og farge), men er en ekte knapp rett inn i frivilligkortet. */
.pending-volunteer-link{display:inline;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:4px}
.pending-volunteer-link:hover{text-decoration:underline;color:var(--accent)}
.pending-volunteer-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pending-signup-meta{display:grid;gap:3px;color:var(--muted);font-size:12px}
/* Ledig kapasitet på admin sine påmeldingskort. Gull (samme tone som «venter»/
   oppfølging) når rollen eller arrangementet er fullt - da bør admin stoppe opp. */
.signup-capacity{color:var(--muted)}
.signup-capacity strong{color:var(--text)}
.signup-capacity.is-full,.signup-capacity.is-full strong{color:#765614}
.signup-capacity.is-unconfigured strong{color:var(--muted);font-weight:700}
.workspace-signup-actions .signup-capacity.compact{align-self:center;margin-right:auto;font-size:12px;white-space:nowrap}

/* Manglende rolle er én tydelig beslutningskontroll i kort, arbeidsvinduer og tabeller. */
.signup-decision-role-control{
  display:grid!important;
  grid-template-columns:auto minmax(104px,1fr);
  align-items:center;
  gap:6px;
  width:min(100%,290px);
  min-width:0;
  margin:2px 0!important;
  padding:5px 6px 5px 8px;
  border:1px solid #e0bd72;
  border-radius:9px;
  background:#fffaf0;
  color:#754c00;
  font-size:10px!important;
  font-weight:850!important;
  line-height:1.25;
}
.signup-decision-role-control>span{min-width:0}
.signup-decision-role-control .signup-decision-role-select{
  width:100%!important;
  min-width:0;
  min-height:32px;
  margin:0;
  padding:5px 28px 5px 8px!important;
  border-color:#d7b264;
  border-radius:7px;
  background:#fff;
  color:var(--text);
  font-size:11px;
  font-weight:750;
}
.signup-decision-role-control:focus-within{
  border-color:#b98218;
  box-shadow:0 0 0 3px rgba(154,91,0,.14);
}
:is(.waitlist-workspace-role,.staffing-role-block).requires-role{
  border-color:#e0bd72;
  background:#fffdf8;
  box-shadow:inset 3px 0 0 #d39a2d;
}
.waitlist-workspace-role.requires-role .waitlist-workspace-role-heading{
  border-bottom-color:#ead39f;
  background:#fff8e8;
}
.staffing-role-block.requires-role>.staffing-role-heading strong{color:#754c00}
@media(max-width:520px){
  .signup-decision-role-control{grid-template-columns:1fr;width:100%}
}

/* Operative navn, tider og forklaringer kan leses, men holder den tette listestandarden. */
.volunteer-event-team-member strong,
.assignment-suggestion-candidate strong,
.admin-volunteer-search-hit strong,
.waitlist-workspace-person strong,
.admin-day-attention-item small,
.admin-day-arrival small,
.admin-unified-queue-copy small,
#volunteerView #eventCards .event-card-top .meta,
#volunteerView #eventCards .event-meeting-time{
  display:-webkit-box;
  overflow:hidden;
  overflow-wrap:anywhere;
  text-overflow:clip;
  white-space:normal;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.uncertain-signup-time{color:var(--warning)!important}
.signup-comment-callout{display:flex;flex-direction:column;gap:.2rem;padding:.65rem .75rem;border:1px solid #f0c36b;border-left:4px solid #d97706;border-radius:.65rem;background:#fffaf0;color:var(--ink)}
.signup-comment-callout strong{font-size:.74rem;letter-spacing:.055em;text-transform:uppercase;color:#9a5700}
.signup-comment-callout span{white-space:pre-wrap;overflow-wrap:anywhere}
.signup-comment-callout.compact{padding:.45rem .55rem;min-width:12rem}
.event-signup-notes{display:grid;gap:.65rem;margin:0 0 1rem;padding:.8rem;border:1px solid #f0c36b;border-radius:.8rem;background:#fffdf7;scroll-margin-top:1rem}
.event-signup-notes:focus{outline:3px solid rgba(217,119,6,.22);outline-offset:2px}
.event-signup-notes-heading{display:flex;align-items:center;gap:.6rem}
.event-signup-notes-heading>span{font-size:1.15rem}
.event-signup-notes-heading div{display:grid;gap:.1rem}
.event-signup-notes-heading small{color:var(--muted)}
.event-signup-notes-list{display:grid;gap:.45rem}
.staffing-person-entry{border-top:1px solid var(--border)}
.staffing-person-entry:first-child{border-top:0}
.staffing-person-entry .staffing-person-row{border-top:0}
.staffing-comment{margin:0 0 .6rem;max-width:42rem}
.admin-inbox-empty{
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 14px;
  border:1px solid rgba(31,122,77,.18);
  border-radius:12px;
  background:rgba(255,255,255,.76);
  color:var(--success);
}
.admin-inbox-empty span{color:var(--muted);font-size:13px}

.admin-events-workspace{margin-top:4px}
.admin-events-heading{align-items:center;margin-bottom:14px}
.admin-events-heading>div:first-child{min-width:260px}
.admin-events-workspace .admin-event-scope{margin-top:0;margin-bottom:4px}
.admin-events-workspace .admin-event-scope{display:grid;gap:10px}
.admin-event-view-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.admin-events-workspace .admin-filterbar{
  grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(150px,.8fr));
  margin:10px 0 14px;
}
.admin-events-workspace #adminEvents{padding:8px 14px}
.admin-events-workspace #adminEvents thead th{position:sticky;top:75px;z-index:19;background:#fff;box-shadow:0 1px 0 var(--line)}
@media (min-width:901px){
  .admin-events-workspace #adminEvents.table-wrap{overflow:visible}
}
/* Under 901 punkter ruller tabellen sidelengs i sin egen boks. Da regnes klistre-avstanden fra
   BOKSENS topp, ikke skjermens: 75 punkter skjøv overskriften ned i tabellen, oppå første rad, med
   et tomt felt over (eierens iPhone-skjermbilde 20.09.2026). Her står overskriften på sin naturlige
   plass øverst i tabellen. */
@media (max-width:900px){
  .admin-events-workspace #adminEvents thead th{top:0}
}
.staffing-summary.warn{width:max-content;min-width:104px;padding:6px 9px;border:1px solid #edbd77;border-radius:9px;background:#fff8eb;color:#8b4c08}
.staffing-summary.warn span{color:#8b5d27}
.staffing-summary.needs-setup{width:max-content;min-width:104px;padding:6px 9px;border:1px solid #cbd5e1;border-radius:9px;background:#f7f9fc;color:#48566b}

@media(max-width:900px){
  .admin-inbox-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .admin-primary-section{padding:16px;margin-bottom:24px}
  .admin-inbox-list{grid-template-columns:1fr}
  .admin-inbox-heading{align-items:flex-start}
  .admin-inbox-empty{align-items:flex-start;flex-direction:column;gap:3px}
}

/* v7.0-dev113 – sammenhengende adminflyt, behov og ryddige arbeidsvinduer */
.admin-hero{
  padding:20px 24px;
  margin-bottom:22px;
  border-radius:20px;
}
.admin-hero h1{
  margin:3px 0 7px;
  font-size:clamp(28px,3.4vw,40px);
  line-height:1.08;
}

.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.event-editor-dialog{width:min(880px,calc(100vw - 24px));max-width:none}
.event-editor-card{width:100%;max-width:none;box-sizing:border-box;padding:24px}
.event-editor-header{padding-right:48px;margin-bottom:18px}
.event-editor-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.event-editor-title-row h2{min-width:0}
.settings-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.settings-title-row h2{margin-right:auto}
.app-confirm-dialog{width:min(520px,calc(100vw - 24px))}
.app-confirm-dialog .dialog-card{width:100%;max-width:none;box-sizing:border-box}
.app-confirm-dialog #appConfirmMessage{white-space:pre-line;line-height:1.55}

dialog>.dialog-card,dialog>form.dialog-card{max-height:calc(min(100dvh,var(--app-viewport-height,100dvh)) - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)));overflow-y:auto;overscroll-behavior:contain}
dialog::backdrop{cursor:pointer}
dialog .dialog-close{margin-top:env(safe-area-inset-top)}
.event-editor-header h2{margin:4px 0 5px;font-size:29px;letter-spacing:-.025em}
.event-editor-header p{margin:0;line-height:1.5}
.event-editor-section{
  margin-top:14px;
  padding:17px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fafbfd;
}
.event-editor-section-heading{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-bottom:14px;
}
.event-editor-section-heading h3{margin:0;font-size:17px}
.event-editor-section-heading p{margin:3px 0 0;color:var(--muted);font-size:13px;line-height:1.4}
.event-editor-step{
  display:grid;
  place-items:center;
  flex:0 0 25px;
  width:25px;
  height:25px;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.event-basics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.event-basics-grid label{display:grid;align-content:start;gap:6px;margin:0;font-weight:750;font-size:13px}
.event-basics-grid label>span{min-height:18px}
.event-basics-grid input,.event-basics-grid select{box-sizing:border-box;height:43px}
.event-basics-grid .field-span-2{grid-column:span 2}
.event-editor-section .role-builder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.event-editor-section .role-builder-row{grid-template-columns:minmax(0,1fr) 78px;padding:9px 10px;background:#fff}
.event-editor-section .role-builder-row label{display:flex;align-items:center;gap:8px;min-width:0}
.event-editor-section .role-builder-row input[type="checkbox"]{width:auto;flex:0 0 auto}
.event-notes-section textarea{box-sizing:border-box;resize:vertical;min-height:88px}
.bulk-label-step{
  margin-top:14px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fafbfd;
}
.bulk-label-step-heading{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.bulk-label-step-heading>span{display:grid;place-items:center;width:25px;height:25px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px;font-weight:900}
.bulk-label-step-heading>div{display:grid;gap:2px}
.bulk-label-step-heading small{color:var(--muted);font-weight:500}
.bulk-label-filterbar{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:10px;align-items:center}
.bulk-label-view-filters{display:flex;gap:5px;flex-wrap:wrap}
.bulk-select-all-row{display:flex;align-items:center;gap:8px;margin:12px 0 8px;padding:9px 10px;border-radius:10px;background:#eef3fb;font-weight:750}
.bulk-select-all-row input{width:auto;margin:0}
.bulk-select-all-row small{margin:0 0 0 auto;color:var(--muted)}
.bulk-event-label-row.is-overridden{border-color:#9bb4dd;box-shadow:inset 3px 0 0 var(--accent)}
.bulk-event-type-state{display:grid;justify-items:start;gap:3px;min-width:0}
.bulk-event-type-state small{margin:0;color:var(--muted)}
.bulk-label-toolbar{grid-template-columns:minmax(200px,1fr) auto auto;margin:0}

#volunteerRegisterSummary{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:12px;
  padding:12px 14px;
  overflow:visible;
  white-space:normal;
  background:#f8fafc;
}
.volunteer-register-summary-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.register-email-link,.volunteer-email-link{
  appearance:none;
  width:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--accent);
  font:inherit;
  font-weight:650;
  text-align:left;
  cursor:pointer;
}
.register-email-link:hover,.volunteer-email-link:hover{text-decoration:underline}

.email-template-picker{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:16px 0;
  padding:0;
  border:0;
}
.email-template-picker legend{margin-bottom:7px;font-weight:800}
.email-template-picker label{display:flex;align-items:flex-start;gap:9px;margin:0;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fafbfd;cursor:pointer}
.email-template-picker input{width:auto;margin:3px 0 0}
.email-template-picker label>span{display:grid;gap:3px}
.email-template-picker small{margin:0;color:var(--muted);font-weight:500}
.email-template-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:7px}
.email-portal-link-hint{margin:7px 0 0;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.email-sender-summary{margin:12px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f5f8fc;font-size:12px;line-height:1.45;color:var(--muted)}
.email-sender-summary strong{color:var(--text)}
.email-copy-fallback{display:grid;gap:6px;margin-top:12px;padding:11px 12px;border:1px solid #c2d3e6;border-radius:12px;background:#f4f8fc}
.email-copy-fallback label{font-size:12px;font-weight:850;color:var(--text)}
.email-copy-fallback p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}
.email-copy-fallback textarea{min-height:70px;margin:0;padding:9px 10px;background:#fff;font:500 12px/1.45 var(--ui-list-font);resize:vertical}

.settings-tabs{position:sticky;top:-24px;z-index:4;margin:14px -24px 0;padding:10px 24px;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}
.settings-grid{grid-template-columns:1fr;margin-top:16px}
.settings-card[data-settings-panel]{grid-column:1/-1}
.settings-card .section-heading{align-items:flex-start}
.integration-callout{display:grid;gap:3px;margin:14px 0}
.integration-callout span{font-size:13px;line-height:1.45}
.settings-secondary-tool{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.settings-secondary-tool summary{cursor:pointer;font-weight:800;color:var(--accent)}
.settings-secondary-tool>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}
.settings-secondary-tool p{margin:0}

.venue-default-header,.venue-default-row{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:12px;align-items:center}
.venue-default-header{margin:14px 0 6px;padding:0 10px;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.venue-default-role-list{display:grid;gap:7px;max-height:45vh;overflow:auto;padding-right:3px}
.venue-default-row{margin:0;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#fafbfd;font-weight:750}
.venue-default-row input{height:39px;padding:7px 9px;text-align:center}

@media(max-width:760px){
  .settings-title-row,.event-editor-title-row{align-items:flex-start;flex-wrap:wrap}
  .settings-title-row .btn,.event-editor-title-row .btn{width:auto;max-width:100%}
  .admin-hero{padding:18px;margin-bottom:20px}
  .admin-hero h1{font-size:28px}
  .admin-events-workspace .admin-filterbar{grid-template-columns:1fr}
  .event-editor-card{padding:18px}
  .event-basics-grid{grid-template-columns:1fr 1fr}
  .event-basics-grid .field-span-2{grid-column:1/-1}
  .event-editor-section .role-builder{grid-template-columns:1fr}
  .bulk-event-label-row{grid-template-columns:auto minmax(0,1fr)}
  .bulk-event-type-state,.bulk-event-label-row .bulk-row-label-edit{grid-column:2}
  .email-template-picker{grid-template-columns:1fr}
  .settings-tabs{top:-18px;margin:12px -18px 0;padding:9px 18px;overflow-x:auto}
  .settings-secondary-tool>div{align-items:flex-start;flex-direction:column}
}

@media(max-width:480px){
  .event-basics-grid{grid-template-columns:1fr}
  .event-basics-grid .field-span-2{grid-column:auto}
  #volunteerRegisterSummary{align-items:flex-start;flex-direction:column}
}

/* v7.2 – samlet arbeidsflyt, beredskap og visuelt sluttlag */
.connection-status-banner{
  position:sticky;
  top:0;
  z-index:30;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:9px 16px;
  color:#6f2500;
  background:#fff2d8;
  border-bottom:1px solid #f1c676;
  font-size:13px;
}
.connection-status-banner.hidden{display:none}
.connection-status-banner strong{font-weight:900}
.connection-status-banner span{line-height:1.35}
.connection-status-banner .btn{flex:0 0 auto;margin-left:2px}
.dialog-connection-status{
  display:flex;
  align-items:center;
  gap:12px;
  margin:10px 0 12px;
  padding:10px 12px;
  color:#6f2500;
  background:#fff2d8;
  border:1px solid #f1c676;
  border-radius:12px;
  font-size:12px;
}
.dialog-connection-status>div{display:grid;gap:2px;min-width:0;flex:1}
.dialog-connection-status strong{font-size:13px;font-weight:900}
.dialog-connection-status span{line-height:1.38}
.dialog-connection-status .btn{flex:0 0 auto;min-height:38px;white-space:nowrap}
.app-update-banner{
  position:fixed;
  right:16px;
  bottom:max(16px,env(safe-area-inset-bottom));
  z-index:28;
  display:flex;
  align-items:center;
  gap:14px;
  width:min(470px,calc(100vw - 32px));
  padding:12px 14px;
  color:#1d3854;
  background:#f2f7fb;
  border:1px solid #aebfd2;
  border-radius:14px;
  box-shadow:0 12px 32px rgba(20,42,67,.17);
  font-size:12px;
}
.app-update-banner.hidden{display:none}
.app-update-banner>div{display:grid;gap:2px;min-width:0}
.app-update-banner strong{font-size:13px;font-weight:900;color:var(--text)}
.app-update-banner span{line-height:1.4;color:var(--muted)}
.app-update-banner .btn{flex:0 0 auto;margin-left:auto;white-space:nowrap}
/* «Installer som app»-oppfordring (eierens ønske 19.09.2026). Samme flytende toast-mønster
   som app-update-banner, men nede til VENSTRE så de to aldri kan overlappe. På iOS (ingen
   automatisk installasjon er mulig - Safari gir ingen slik API i det hele tatt) vises fire
   tydelige, nummererte steg med gjenkjennelige ikoner, pluss en pil som peker mot Safaris
   «•••»-knapp nederst til HØYRE på skjermen (eierens rettelse 19.09.2026, fra et ekte
   skjermbilde - moderne Safari gjemmer Del bak denne menyen, ikke et eget synlig ikon). */
.install-app-banner{
  position:fixed;
  left:16px;
  bottom:max(16px,env(safe-area-inset-bottom));
  z-index:27;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  width:min(440px,calc(100vw - 24px));
  color:#1d3854;
  font-size:15px;
}
.install-app-banner.hidden{display:none}
.install-app-banner-row{
  display:flex;
  align-items:center;
  gap:14px;
  width:100%;
  padding:16px 18px;
  background:#f2f7fb;
  border:1px solid #aebfd2;
  border-radius:16px;
  box-shadow:0 12px 32px rgba(20,42,67,.17);
}
.install-app-banner-row>div{display:grid;gap:8px;min-width:0}
.install-app-banner strong{font-size:18px;font-weight:900;color:var(--text)}
.install-app-banner span{line-height:1.4;color:var(--muted)}
.install-app-banner-actions{display:flex;flex-direction:column;gap:6px;flex:0 0 auto}
/* Lukkeknapp - bare synlig når banneret er bedt frem fra «Min profil»/kontokortet. Øverst til høyre
   i banneret, stor nok til å treffe med tommelen. */
.install-app-banner-row{position:relative}
.install-app-close{position:absolute;top:6px;right:6px;width:36px;height:36px;display:grid;place-items:center;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:24px;line-height:1;cursor:pointer}
.install-app-close.hidden{display:none}
.install-app-close:hover,.install-app-close:focus-visible{background:rgba(29,56,84,.1);color:var(--text)}
.install-app-banner:has(.install-app-close:not(.hidden)) .install-app-banner-row>div:first-child{padding-right:30px}
/* Veien inn fra «Min profil»: én rad, tekst til venstre og knappen høyrestilt på samme linje. */
.profile-install-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f7f9fc;font-size:13px;line-height:1.35}
.profile-install-row.hidden{display:none}
.profile-install-row>span{flex:1 1 auto;min-width:0}
.profile-install-row .btn{flex:none;white-space:nowrap}
.install-app-banner-actions .btn{white-space:nowrap;font-size:14px;padding:10px 16px}
#installAppText{line-height:1.4;color:var(--muted)}
.install-app-step-list{display:grid;gap:10px;margin:2px 0 0;padding:0;list-style:none}
.install-app-step-list li{display:flex;align-items:center;gap:10px;line-height:1.35;font-size:15px;font-weight:600}
.install-app-step-num{
  display:grid;place-items:center;flex:0 0 auto;
  width:22px;height:22px;border-radius:999px;
  background:#1d3854;color:#fff;font-size:12px;font-weight:900;
}
.install-app-icon{flex:0 0 auto;width:21px;height:21px;color:#1d3854}
.install-app-note{display:block;margin-top:2px;color:var(--muted);font-size:13px;line-height:1.35}
/* Peker mot Safaris «•••»-knapp, som sitter helt til HØYRE i verktøylinjen - synlig bare i
   iOS-varianten. Plassert til høyre i raden (ikke sentrert) for å matche den posisjonen. */
.install-app-pointer-row{display:flex;justify-content:flex-end;padding-right:26px}
.install-app-pointer{
  width:26px;height:21px;margin-top:2px;color:#1d3854;
  filter:drop-shadow(0 2px 3px rgba(20,42,67,.25));
  animation:install-app-pointer-bounce 1.6s ease-in-out infinite;
}
.install-app-pointer.hidden{display:none}
@keyframes install-app-pointer-bounce{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(5px);}
}
@media(prefers-reduced-motion:reduce){
  .install-app-pointer{animation:none;}
}
/* Banneret over er alltid fast plassert og reserverer ikke plass selv. Uten dette lå det
   oppå - og skjulte - det siste kortet i lange lister for godt, siden det ikke kan lukkes
   før portalen faktisk er installert (eierens skjermbilde 19.09.2026, etter pålogging). */
main{padding-bottom:calc(70px + var(--install-app-banner-space,0px))}
@media(max-width:650px){
  main{padding-bottom:calc(60px + var(--install-app-banner-space,0px))}
}
@media(max-width:650px){
  .connection-status-banner{flex-wrap:wrap;text-align:center}
  .connection-status-banner .btn{min-height:40px}
  .dialog-connection-status{align-items:stretch;flex-direction:column}
  .dialog-connection-status .btn{width:100%;min-height:42px}
  .app-update-banner{right:10px;bottom:max(10px,env(safe-area-inset-bottom));width:calc(100vw - 20px);align-items:stretch;flex-direction:column;gap:9px}
  .app-update-banner .btn{width:100%;min-height:40px;margin:0}
}
.is-offline .btn:not(.dialog-close):not(.dialog-cancel){filter:saturate(.65)}
.offline-write-disabled{
  opacity:.52!important;
  cursor:not-allowed!important;
  filter:saturate(.45)!important;
}

.topbar-right{
  margin-left:auto!important;
  justify-content:flex-end!important;
  text-align:right;
}
.topbar-right .session-box,.volunteer-session-compact{margin-left:auto!important;justify-content:flex-end!important}
.volunteer-name-btn{max-width:min(42vw,360px);overflow:hidden;text-overflow:ellipsis;text-align:right}

.event-meeting-time{color:#31486a;font-size:12px;font-weight:800;line-height:1.3}

.bulk-work-dialog .workspace-header{padding-right:54px}
.bulk-work-dialog .workspace-header>div{min-width:0}
.bulk-work-dialog .dialog-close{
  z-index:20;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
}
.bulk-label-selection-step{margin-top:12px}
.bulk-label-filterbar{grid-template-columns:minmax(220px,1fr) minmax(150px,220px) auto}
.bulk-label-toolbar{grid-template-columns:minmax(200px,1fr) auto auto}
.bulk-needs-toolbar{
  display:grid;
  grid-template-columns:minmax(190px,1fr) 92px auto auto;
  gap:9px;
  align-items:end;
}
.compact-number-field{display:grid;gap:4px;margin:0;color:var(--muted);font-size:11px;font-weight:800}
.compact-number-field input{height:42px;text-align:center}
.bulk-needs-safety{margin:9px 0 0;font-size:12px}
.bulk-needs-filterbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,220px) minmax(150px,220px);gap:9px}
.bulk-event-needs-row{display:grid!important;grid-template-columns:18px minmax(250px,1fr) minmax(220px,.7fr);align-items:center;gap:11px;min-width:0;cursor:pointer}
.bulk-event-needs-row>.bulk-needs-event-check,#bulkNeedsSelectAllFiltered{width:18px!important;height:18px!important;min-width:18px;accent-color:var(--accent);cursor:pointer;align-self:center}
.bulk-event-needs-row:has(.bulk-needs-event-check:checked){border-color:#7299c7;background:#f0f6fd}
.bulk-event-needs-row>.bulk-event-label-main,.bulk-event-needs-row>.bulk-needs-current{display:grid;justify-items:start;gap:var(--ui-list-content-spacing);min-width:0;overflow:visible;white-space:normal}
.bulk-event-needs-row .bulk-event-label-main strong,.bulk-event-needs-row .bulk-needs-current strong,.bulk-event-needs-row .bulk-event-label-main small,.bulk-event-needs-row .bulk-needs-current small{display:block;overflow:visible;text-overflow:clip;white-space:normal}
.bulk-event-needs-row .bulk-event-label-main span::before,.bulk-event-needs-row .bulk-needs-current small::before{content:none}
.bulk-event-needs-row .bulk-event-label-main small,.bulk-event-needs-row .bulk-needs-current small{margin:0;color:var(--muted);font-weight:var(--ui-list-detail-weight)}
.bulk-needs-current{display:grid;gap:3px;min-width:0}
.bulk-needs-current strong{font-size:13px;line-height:1.35}
.bulk-needs-current small{color:var(--muted)}

#venueDefaultDialog .dialog-card{max-width:760px}
.venue-scanner-default-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft,#f6f8fb)}
.venue-scanner-default-row>span{display:grid;gap:3px;min-width:0}
.venue-scanner-default-row small{color:var(--muted);font-weight:500;line-height:1.35}
.venue-scanner-default-row input{width:22px;height:22px;flex:0 0 auto}
.volunteer-admission-info-content{display:grid;gap:8px;padding-top:8px}
.volunteer-admission-info-content p{margin:0;white-space:pre-wrap}
@media(max-width:620px){.venue-scanner-default-row{align-items:flex-start;flex-direction:column}}
.venue-default-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:13px 14px;border-radius:12px;background:#f3f7fc}
.venue-default-intro p{margin:0;line-height:1.5}
.venue-default-header,.venue-default-row{grid-template-columns:minmax(0,1fr) 76px}
.venue-default-role-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}
.venue-default-row{min-height:42px;padding:7px 10px}
.venue-default-row input{
  grid-column:2!important;
  width:68px!important;
  min-width:68px!important;
  justify-self:end;
  box-sizing:border-box;
}
.venue-default-apply-option{display:flex;align-items:flex-start;gap:10px;margin:14px 0 0;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fff}
.venue-default-apply-option>input{width:auto;margin:3px 0 0}
.venue-default-apply-option>span{display:grid;gap:3px}
.venue-default-apply-option small{margin:0;color:var(--muted);font-weight:500;line-height:1.4}
.venue-meeting-default-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,240px);gap:16px;align-items:center;margin:14px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.venue-meeting-default-row>span{display:grid;gap:3px}
.venue-meeting-default-row small{color:var(--muted);font-weight:500;line-height:1.4}

.settings-needs-heading{display:grid;gap:4px;margin-bottom:14px}
.settings-needs-heading h3,.settings-needs-heading p{margin:0}
.settings-needs-heading h3{font-size:22px}
.needs-default-workflow{display:grid;border:1px solid #b8c9df;border-radius:16px;overflow:hidden;background:#fff}
.needs-default-step{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(330px,1.2fr);gap:22px;align-items:center;padding:16px 18px}
.needs-default-step+.needs-default-step{border-top:1px solid var(--line)}
.needs-default-step-primary{background:#f3f7fc}
.needs-default-step-heading{display:flex;align-items:flex-start;gap:11px;min-width:0}
.needs-default-step-heading>div{display:grid;gap:3px;min-width:0}
.needs-default-step-heading strong{font-size:14px}
.needs-default-step-heading span:not(.needs-default-step-number){color:var(--muted);font-size:12px;line-height:1.4}
.needs-default-step-number{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;font-weight:900}
.meeting-default-controls{display:grid;grid-template-columns:minmax(130px,170px) auto;justify-content:end;gap:8px;align-items:end}
.meeting-default-controls label,.venue-default-quick-actions>label{display:grid;gap:4px;margin:0;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.meeting-default-controls input{height:40px;text-align:center}
.meeting-default-controls .btn{height:40px}
.venue-default-quick-actions{display:grid;gap:5px;min-width:0}
.venue-default-quick-control{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:8px}
.venue-default-quick-control select,.venue-default-quick-control .btn{height:42px}
.venue-default-quick-summary{min-height:18px;color:var(--muted);font-size:11px;line-height:1.4}
.venue-default-quick-summary strong{color:var(--text)}
.event-yesplan-internal-note{margin-top:12px}
.event-yesplan-internal-note .section-heading{align-items:flex-start;gap:12px}
.event-yesplan-internal-note .section-heading .btn{flex:0 0 auto}
.event-yesplan-internal-note-content{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f7f8fa;white-space:pre-wrap;line-height:1.5}
.event-yesplan-internal-note-content p{margin:0}
.event-yesplan-copy-help{margin:8px 2px 0;font-size:11px}
.volunteer-info-contacts{scroll-margin-top:20px}
.volunteer-info-contacts:focus{outline:3px solid rgba(39,87,157,.35);outline-offset:4px}
#appConfirmMessage strong{color:#173f78;font-weight:900;text-decoration:underline;text-decoration-color:#8fb3e2;text-decoration-thickness:2px;text-underline-offset:3px}
@media(max-width:650px){
  .event-yesplan-internal-note .section-heading{display:grid}
  .event-yesplan-internal-note .section-heading .btn{justify-self:start}
}
.venue-management-details{margin-top:14px}
.venue-management-content{display:grid;gap:12px;padding-top:12px}

/* Verktøylinja går i full bredde under tittelen (order:1 gjør at den vises etter
   Forrige/Neste selv om den ligger før i koden, så fanerekkefølgen beholdes). Da
   får statusmerker, Endre behov, Venteliste OG Type plass på én linje som en ekte
   verktøylinje, i stedet for at Type faller ned på egen rad (eierens ønske 15.09.2026). */
.event-detail-compact-summary{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;margin-top:7px;order:1;flex-basis:100%}
.event-detail-compact-summary .workspace-quick-status{margin-top:0}
.event-detail-type-control{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:0;padding-left:10px;border-left:1px solid var(--line)}
.event-detail-type-label{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.045em}
.event-detail-type-control .event-label-badges{margin:0}
.event-detail-type-control .event-label-badge{padding:2px 6px;font-size:10px}
.event-detail-type-control .source-type-note,.event-detail-type-control .muted{font-size:11px}
.event-detail-type-control .btn{min-height:26px;padding:3px 7px;font-size:10px}
.event-detail-compact-summary>.event-labels-inline-disclosure>summary{min-height:26px;padding:3px 7px;font-size:10px}
.event-labels-inline-disclosure{position:relative}
.event-labels-inline-disclosure>summary{list-style:none;cursor:pointer;user-select:none}
.event-labels-inline-disclosure>summary::-webkit-details-marker{display:none}
.event-labels-inline-editor{position:absolute;z-index:12;top:calc(100% + 8px);left:0;right:auto;display:grid;width:min(250px,calc(100vw - 32px));gap:7px;padding:9px;border:1px solid #d8dfeb;border-radius:12px;background:#fff;box-shadow:0 14px 34px rgba(18,35,61,.17)}
.event-labels-inline-editor::before{content:"";position:absolute;top:-6px;left:18px;right:auto;width:11px;height:11px;transform:rotate(45deg);border-left:1px solid #d8dfeb;border-top:1px solid #d8dfeb;background:#fff}
.event-labels-inline-heading{display:grid;gap:2px;padding-bottom:7px;border-bottom:1px solid var(--line)}
.event-labels-inline-heading strong{font-size:13px;line-height:1.25}
.event-labels-inline-heading span{color:var(--muted);font-size:11px;line-height:1.4}
.event-labels-inline-editor .event-label-choices{display:grid;border:1px solid #dce3ec;border-radius:9px;overflow:hidden;background:#fff}
.event-labels-inline-editor .event-label-choice{display:grid;grid-template-columns:15px minmax(0,1fr);align-items:center;gap:8px;min-height:29px;margin:0;padding:3px 8px;border:0;border-bottom:1px solid #e7ebf1;border-radius:0;background:#fff;color:var(--ink);font-family:inherit;font-size:11px;font-weight:750;line-height:1.25;cursor:pointer;box-shadow:none}
.event-labels-inline-editor .event-label-choice:last-child{border-bottom:0}
.event-labels-inline-editor .event-label-choice:hover{background:#f7f9fc}
.event-labels-inline-editor .event-label-choice.is-selected{background:#f1f6fc;color:#173b72;box-shadow:none}
.event-labels-inline-editor .event-label-choice input{grid-column:1;width:14px;height:14px;min-width:14px;margin:0;accent-color:var(--blue)}
.event-labels-inline-editor .event-label-choice span{grid-column:2;min-width:0}
.event-labels-inline-editor .event-label-source-choice{background:#fff}
.event-labels-inline-editor .inline-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;padding-top:7px;border-top:1px solid var(--line)}
.event-labels-inline-editor .inline-action-spacer{flex:1}
.event-labels-inline-editor .inline-actions .btn{min-height:29px;padding:5px 8px;font-size:10px}
.event-needs-inline-disclosure{margin-left:2px}
.event-needs-inline-editor{right:auto;left:0}
.event-needs-inline-editor::before{right:auto;left:18px}
.event-needs-inline-editor .event-labels-inline-heading{padding-bottom:7px}
.event-needs-inline-rows{display:grid;max-height:min(280px,44vh);overflow:auto;border:1px solid #dce3ec;border-radius:9px;background:#fff}
.event-needs-inline-columns{display:grid;grid-template-columns:130px 44px;gap:6px;justify-content:start;padding:5px 6px 4px 26px;border-bottom:1px solid #dce3ec;background:#f5f7fa;color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}
.event-needs-inline-columns span:last-child{text-align:center}
.event-labels-inline-editor .event-needs-inline-row{display:grid!important;grid-template-columns:14px 130px 44px!important;justify-content:start;align-items:center;gap:6px;width:100%;height:29px;min-height:29px;margin:0;padding:1px 6px;box-sizing:border-box;border:0;border-bottom:1px solid #e7ebf1;background:#fff;color:var(--ink);font-family:inherit;font-size:11px;font-weight:750;line-height:1.25;cursor:pointer}
.event-needs-inline-row:last-child{border-bottom:0}
.event-needs-inline-row:hover{background:#f7f9fc}
.event-needs-inline-row.is-selected{background:#f1f6fc}
.event-needs-inline-row>input[type="checkbox"]{grid-column:1;width:14px;height:14px;margin:0;accent-color:var(--blue)}
.event-needs-inline-row>span{grid-column:2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:inherit;font-size:11px;font-weight:750;line-height:1.25}
.event-needs-inline-row>input[type="number"]{grid-column:3;justify-self:end;align-self:center;width:44px!important;height:25px!important;min-height:25px!important;max-height:25px!important;margin:0!important;padding:1px 4px!important;box-sizing:border-box;text-align:center;font-family:inherit;font-size:11px;font-weight:750;line-height:1}
.event-needs-inline-row>input[type="number"]:disabled{opacity:.45;background:#f3f5f8;color:var(--muted)}
#internalEventTypesSettingsCard{scroll-margin-top:12px}
#internalEventTypesSettingsHeading:focus{outline:3px solid rgba(39,87,157,.2);outline-offset:4px;border-radius:4px}
@media(max-width:760px){
  .event-detail-type-control{padding-left:0;border-left:0}
  .event-labels-inline-editor{position:fixed;left:50%;right:auto;top:auto;bottom:calc(16px + env(safe-area-inset-bottom));width:min(250px,calc(100vw - 32px));max-width:none;margin:0;transform:translateX(-50%)}
  .event-labels-inline-editor::before{display:none}
  .event-needs-inline-editor{left:50%;right:auto;width:min(250px,calc(100vw - 32px))}
}

.yesplan-sync-facts,.readiness-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0}
.yesplan-sync-facts>div,.readiness-grid>div{display:grid;gap:4px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fafbfd}
.yesplan-sync-facts span,.readiness-grid span{color:var(--muted);font-size:12px;line-height:1.45}
.yesplan-sync-facts strong{font-size:13px}
.integration-callout.success{border-color:#9fd0b3;background:#effaf3;color:#185c35}

/* Kompakt topp på arrangementskortet (eierens ønske 15.09.2026): mindre luft
   mellom overskrift, fanevelger og «Frivillige ser», så hovedjobben
   (påmeldinger og tildeling) ikke havner langt ned. */
.event-workspace-dialog .workspace-tabs{margin:8px 0 12px;padding:0;gap:2px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
.event-workspace-dialog .workspace-tab{padding:9px 10px;border-radius:0;background:transparent;font-size:14px;font-weight:750}
.event-workspace-dialog .workspace-tab.active{background:transparent;box-shadow:none;border-bottom:2px solid var(--accent);color:var(--text)}
.event-volunteer-facts{margin:0 0 12px}
.event-volunteer-facts-grid{display:flex;flex-wrap:wrap;gap:0;background:#f7f9fc;border:1px solid var(--line);border-radius:12px;padding:6px 2px}
.event-volunteer-facts-grid .volunteer-event-fact{flex:1 1 130px;min-height:0;border:0;border-left:1px solid var(--line);border-radius:0;background:transparent;padding:6px 14px;gap:1px}
.event-volunteer-facts-grid .volunteer-event-fact:first-child{border-left:0}
.event-volunteer-facts-grid .volunteer-event-fact strong{letter-spacing:.06em}
.event-volunteer-facts-grid .volunteer-event-fact>span{font-weight:600}
.event-volunteer-facts-grid .volunteer-meeting-time b{font-size:17px}
.event-volunteer-facts-grid .volunteer-event-fact small{color:var(--muted);font-size:11px;font-weight:600}
.event-volunteer-facts-grid .event-volunteer-fact-wide{flex:1 1 100%;display:flex;align-items:center;gap:10px;border-left:0;border-top:1px solid var(--line);margin-top:4px;padding-top:8px}
.event-volunteer-facts-grid .event-volunteer-fact-wide strong{margin-right:4px}
.event-volunteer-facts-grid .event-volunteer-fact-wide span{font-weight:500;white-space:pre-wrap;overflow-wrap:anywhere}
.event-volunteer-facts-grid select{width:100%;min-height:28px;margin-top:4px;padding:2px 6px;border:1px solid var(--border);border-radius:8px;background:#fff;font:inherit;font-size:12px;font-weight:700}
.event-volunteer-facts-grid .event-volunteer-fact-action{appearance:none;border:0;background:transparent;padding:0;color:var(--blue);font:inherit;font-size:12px;font-weight:700;cursor:pointer;text-align:left}
.event-volunteer-facts-grid .event-volunteer-fact-action:hover{text-decoration:underline}
.event-volunteer-facts-grid .event-volunteer-fact-wide .event-volunteer-fact-action{margin-left:auto}
.event-program-tab-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.event-program-tab-status{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 280px}
.event-program-tab-status span:last-child{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.event-program-tab-actions{display:flex;gap:8px;flex-wrap:wrap}
.event-program-tab-actions .btn{width:auto}
.event-program-tab-note{margin:0 0 4px;font-size:12px}
#eventProgramTab .event-web-preview{margin-top:8px}
.event-web-preview{margin-top:14px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.event-web-preview-heading{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;background:#f6f8fb;border-bottom:1px solid var(--line);font-size:12px}
.event-web-preview-heading span{color:var(--muted)}
.event-web-preview iframe{display:block;width:100%;height:min(58vh,560px);border:0;background:#fff}
.event-web-preview iframe.hidden{display:none}
.volunteer-event-info-dialog:has(.event-web-preview:not(.hidden)){width:min(900px,calc(100vw - 32px));max-width:900px;overflow:hidden auto;padding:0}
.volunteer-event-info-dialog:has(.event-web-preview:not(.hidden)) .dialog-card{width:100%;max-width:none;box-sizing:border-box}
.volunteer-event-info-dialog .dialog-close{
  /* Kortet scroller ikke selv (innholdet gjør det), så knappen limes øverst til høyre og blir
     liggende der mens innholdet scroller under. */
  position:absolute;
  top:max(10px,env(safe-area-inset-top));
  right:14px;
  z-index:60;
  margin:0;
  background:rgba(255,255,255,.78);
  box-shadow:none;
  border:1px solid rgba(12,29,54,.12);
  border-radius:12px;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}

.volunteer-event-info-dialog .dialog-close:hover{
  background:rgba(255,255,255,.9)!important;
  box-shadow:none!important;
  border-color:rgba(12,29,54,.16)!important;
  color:var(--text)!important;
  transform:none;
}

.volunteer-event-info-dialog .dialog-close:focus-visible{
  outline:2px solid rgba(12,29,54,.28);
  outline-offset:2px;
}

.login-security-note{margin:6px 0 2px;padding:9px 10px;border-radius:9px;background:#f6f8fb;color:var(--muted);font-size:11px;line-height:1.45}
.setting-name-button.event-label-browse{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}
.setting-name-button.event-label-browse:hover{text-decoration-color:currentColor}

.admin-change-review-list{display:grid;gap:10px;margin-bottom:12px}
.admin-change-review-list:empty{display:none}
.event-change-review-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:14px;border:1px solid #e6bd65;border-radius:14px;background:#fff9ea}
.event-change-review-copy{display:grid;gap:4px;min-width:0}
.event-change-review-copy h3{margin:0;font-size:16px}
.event-change-review-copy p{margin:0;line-height:1.4}
.event-change-review-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.change-kind-badge{display:inline-flex;width:max-content;padding:3px 7px;border-radius:999px;background:#ffe5a9;color:#6c4600;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}

.event-info-settings-dialog{width:min(1180px,calc(100vw - 24px));max-width:none;box-sizing:border-box}
.event-info-settings-dialog .dialog-card{width:100%;max-width:none;min-width:0;box-sizing:border-box}
.event-info-list-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) 170px 170px auto auto;gap:10px;align-items:center;margin:16px 0 10px}
.event-info-settings-header,.event-info-settings-row{display:grid;grid-template-columns:24px minmax(190px,.9fr) minmax(185px,.65fr) minmax(220px,1.2fr) 165px auto;gap:10px;align-items:center}
.event-info-settings-header{padding:0 10px 6px;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.event-info-settings-list{display:grid;max-height:38vh;overflow:auto;overscroll-behavior:contain;padding-right:3px}
.event-info-settings-row{border:1px solid var(--line);border-radius:12px;background:#fafbfd}
.event-info-settings-row>.event-info-event-check{width:20px;height:20px;margin:0;accent-color:var(--blue);cursor:pointer}
.event-info-settings-main,.event-info-url-field,.event-info-time-fields{display:grid;gap:3px;min-width:0}
.event-info-settings-main strong{overflow-wrap:anywhere}
.event-info-settings-main span,.event-info-url-source{color:var(--muted);font-size:11px}
.event-info-url-source.external-override{color:#8a5a12;font-weight:750}
.event-info-url-source.invalid{color:#9a403d;font-weight:750}
.event-info-time-authority{display:grid;gap:3px;padding:6px 8px;border-left:3px solid #29579f;border-radius:6px;background:#f1f6ff;color:#3d557d;font-size:11px;line-height:1.35}
.event-info-time-authority strong{font-size:11px;font-weight:850;color:#203d6a}
.event-info-time-fields{grid-template-columns:1fr 1fr;gap:7px}
.event-info-time-fields label{display:grid;gap:3px;margin:0;min-width:0}
.event-info-time-fields label span{color:var(--muted);font-size:10px;font-weight:800}
.event-info-time-fields input{min-width:0;padding-left:8px;padding-right:6px}
.event-info-url-field input{min-width:0}

@media(max-width:1020px){
  .event-info-list-toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto}
  #eventInfoSettingsSearch{grid-column:1/-1}
  .event-info-settings-header{display:none}
  .event-info-settings-row{grid-template-columns:auto minmax(0,1fr) minmax(180px,.65fr) auto;align-items:center}
  .event-info-settings-row>.event-info-event-check{grid-column:1;grid-row:1;align-self:start;margin-top:3px}
  .event-info-settings-main{grid-column:2/-1;grid-row:1}
  .event-info-time-fields{grid-column:2;grid-row:2}
  .event-info-url-field{grid-column:2/4;grid-row:3;margin:0!important}
  .event-info-meeting-select{grid-column:3;grid-row:2}
  .event-info-save{grid-column:4;grid-row:2/4}
}

.publication-settings-dialog{width:min(1040px,calc(100vw - 24px));max-width:none}
.publication-settings-dialog .dialog-card{width:100%;max-width:none;box-sizing:border-box}
.publication-source-switch{width:max-content;margin:0 0 8px}
.publication-filterbar{display:grid;grid-template-columns:minmax(210px,1.1fr) minmax(140px,.6fr) minmax(145px,.65fr) minmax(135px,.55fr) minmax(135px,.55fr) auto;gap:9px}
.publication-filterbar #publicationMonthFilter:not(.hidden){grid-column:1/-1;width:min(220px,100%)}
.publication-event-list{display:grid;max-height:50vh;overflow:auto;overscroll-behavior:contain;padding-right:3px}
.publication-event-row{display:grid!important;grid-template-columns:auto minmax(250px,1fr) minmax(200px,.7fr);gap:11px;align-items:center;margin:0!important;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
.publication-event-row:has(input:checked){border-color:#8eadd7;background:#f7fafe}
.publication-event-row>input{width:auto;margin:0}
.publication-event-main,.publication-event-state{display:grid;gap:3px;min-width:0}
.publication-event-main small,.publication-event-state small{margin:0!important}
.publication-event-state{justify-items:start}
.publication-event-state small{overflow-wrap:anywhere}
.publication-event-row.is-cancelled{opacity:.72}
.publication-action-step{margin-bottom:0;background:#f5f8fc}
.publication-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.publication-status-note{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.35}

/* Publisering er en listeoppgave: gi arrangementene mest mulig arbeidsflate. */
.publication-settings-dialog .dialog-card{padding-top:18px;padding-bottom:14px}
.publication-settings-dialog .dialog-standard-header h2{font-size:24px}
.publication-settings-dialog .dialog-standard-header p{margin-top:3px}
.publication-source-switch{margin-bottom:5px}
/* «Standard for nye arrangementer» (åpnes med «Endre»): tre valg med forklaring på én linje, og tidsvalget på en egen linje
   som bare vises for «Åpnes automatisk frem til» (eierens ønske 20.09.2026). Kortet er en vanlig <div role="radiogroup">, ikke et
   <fieldset>: Safari tegnet fieldset-kortet for høyt og kollapset det ved en reflow (funn 18.09.2026), så lista under hoppet.
   Uten fieldset og legend finnes ikke den fantomhøyden, og den faste høydelåsen er ikke lenger nødvendig. */
.publication-mode-card{display:grid;gap:8px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fafbfd}
/* To kolonner: «Åpnes manuelt» og «Åpnes automatisk» under hverandre til venstre, og «Åpnes automatisk frem til» med dato/tidsvalg
   inne i selve boksen til høyre - valget og tidsvalget hører sammen (eierens ønske 20.09.2026). */
.publication-mode-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}
.publication-mode-card .publication-mode-range{grid-column:2;grid-row:1/span 2}
.publication-mode-card .publication-mode-choice{display:flex;align-items:flex-start;gap:9px;min-width:0;margin:0;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
.publication-mode-card .publication-mode-choice:has(input:checked){border-color:#8eadd7;box-shadow:inset 3px 0 0 var(--accent);background:#f6f9fd}
.publication-mode-card .publication-mode-choice input[type=radio]{width:auto;margin:3px 0 0}
.publication-mode-card .publication-mode-choice span{display:grid;gap:2px;min-width:0}
.publication-mode-card .publication-mode-choice strong{font-size:13px}
.publication-mode-card .publication-mode-choice small{margin:0;color:var(--muted);font-size:11px;line-height:1.3}
.publication-mode-card .publication-mode-range{flex-direction:column;align-items:stretch;gap:8px;cursor:default}
.publication-mode-card .publication-mode-range>label{display:flex;align-items:flex-start;gap:9px;margin:0;padding:0;border:0;background:none;cursor:pointer}
.publication-mode-card .publication-horizon-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-left:22px}
.publication-mode-card .publication-horizon-row[hidden]{display:none}
.publication-mode-card .publication-horizon-row :is(select,input[type=date]){width:auto;min-height:32px;padding:4px 26px 4px 8px;font-size:12px}
.publication-mode-card .publication-horizon-row input[type=date]{padding-right:8px}
.publication-mode-scope-note{margin:0;color:var(--muted);font-size:11px;line-height:1.35}
.publication-selection-step{margin-top:8px;padding:10px 12px 12px}
.publication-selection-step .bulk-label-step-heading{margin-bottom:8px}
.publication-filterbar{gap:7px}
.publication-filterbar input,.publication-filterbar select{min-height:36px;padding-top:7px;padding-bottom:7px}
.publication-selection-step .bulk-select-all-row{min-height:34px;margin:7px 0}
.publication-action-step{display:grid;grid-template-columns:minmax(170px,.55fr) minmax(280px,1.35fr) auto;align-items:end;gap:8px 12px;padding:9px 12px}
.publication-action-step .bulk-label-step-heading{margin:0;align-self:center}
.publication-action-step .bulk-label-step-heading>span{width:24px;height:24px;font-size:11px}
.publication-action-step .bulk-label-step-heading strong{font-size:13px}
.publication-action-step .bulk-label-step-heading small{font-size:10px}
.publication-actions{flex-wrap:nowrap;margin:0}
.publication-actions .btn{min-height:36px;padding:7px 11px;white-space:nowrap}
.publication-actions .btn:disabled{opacity:.4;cursor:not-allowed;filter:none}
.publication-actions .publication-publish-btn{border-color:#1f7a4d;background:#1f7a4d;color:#fff}
.publication-actions .publication-publish-btn:hover{border-color:#17643d;background:#17643d}
.publication-actions .publication-unpublish-btn{border-color:#b8cae2;background:#e7eef9;color:#305a8d}
.publication-actions .publication-unpublish-btn:hover{border-color:#8faaca;background:#dce7f5;color:#234c7c}
.publication-safety{grid-column:1/-1;margin:0;font-size:10px}

/* v7.8 – tydelig arrangementsarkiv */
.archived-event-row{background:#fbfaf8}
.archived-event-row td{vertical-align:middle}
.archived-event-row .publication-status-note{max-width:520px}

#volunteerEditDialog{
  width:min(780px,calc(100vw - 24px));
  max-width:780px;
  max-height:calc(min(100dvh,var(--app-viewport-height,100dvh)) - 32px);
  margin-block:auto;
  overflow:hidden;
  padding:0;
}
.volunteer-editor-card{width:100%;max-width:none!important;max-height:calc(min(100dvh,var(--app-viewport-height,100dvh)) - 32px)!important;padding:0!important;overflow:hidden;display:flex;flex-direction:column;box-sizing:border-box}
.volunteer-editor-header{flex:0 0 auto;margin:0;padding:22px 58px 14px 22px;border-bottom:1px solid var(--line)}
.volunteer-editor-header h2{margin:4px 0 3px}
.volunteer-editor-header p{margin:0}
.volunteer-editor-scroll{display:grid;gap:12px;min-height:0;overflow:auto;padding:16px 22px}
.volunteer-editor-section{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fafbfd}
.volunteer-editor-section-heading{display:flex;gap:10px;align-items:flex-start}
.volunteer-editor-section-heading>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;font-weight:900;flex:0 0 auto}
.volunteer-editor-section-heading>div{display:grid;gap:2px}
.volunteer-editor-section-heading small{margin:0!important}
.volunteer-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}
.volunteer-editor-grid label{display:grid;gap:5px;margin:0;font-weight:800}
.volunteer-editor-grid label .field-hint{font-weight:500;font-size:12px;line-height:1.35;color:var(--muted)}
.volunteer-editor-grid .field-span-2{grid-column:1/-1}
.volunteer-role-choices{grid-template-columns:repeat(4,minmax(0,1fr))}
.restore-guide>div{display:block!important}
.restore-guide ol{margin:0;padding-left:20px;line-height:1.55}
.restore-guide p{margin-top:9px!important}

.prototype-reset-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;margin-top:18px;padding:16px 17px;border:1px solid #e4b3ad;border-radius:15px;background:#fff8f7}
.prototype-reset-card h3{margin:3px 0 4px;font-size:19px}
.prototype-reset-card p{margin:0;line-height:1.45}
.prototype-reset-settings-status{display:flex;align-items:center;gap:7px;margin-top:9px;color:#7b312a;font-size:12px;font-weight:800}
.prototype-reset-settings-status::before{content:"";width:8px;height:8px;border-radius:50%;background:#9b2f24;box-shadow:0 0 0 3px rgba(155,47,36,.1)}
.prototype-reset-settings-status.locked{color:var(--muted)}
.prototype-reset-settings-status.locked::before{background:#8390a3;box-shadow:0 0 0 3px rgba(131,144,163,.12)}

.prototype-reset-dialog{width:min(720px,calc(100vw - 24px));max-width:720px;max-height:calc(100vh - 24px);overflow:hidden;padding:0}
.prototype-reset-dialog-card{box-sizing:border-box;max-height:calc(100vh - 24px);overflow:auto;padding:24px 26px 0}
.prototype-reset-dialog-card>p{margin:0 0 14px}
.prototype-reset-impact{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.prototype-reset-impact>div{display:grid;gap:5px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fafbfd}
.prototype-reset-impact strong{font-size:13px}
.prototype-reset-impact span{position:relative;padding-left:15px;color:var(--muted);font-size:12px;line-height:1.4}
.prototype-reset-impact span::before{content:"";position:absolute;left:2px;top:.55em;width:5px;height:5px;border-radius:50%;background:#8d9aad}
.prototype-reset-gate{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:11px 13px;border:1px solid #e4b3ad;border-radius:11px;background:#fff3f1;color:#7b312a;font-size:12px;font-weight:750;line-height:1.45}
.prototype-reset-gate.ready{border-color:#a8ceb6;background:#eff9f3;color:#195c37}
.prototype-reset-gate span{flex:1 1 auto;min-width:0}
.prototype-reset-gate .btn{flex:none;white-space:nowrap}
.prototype-reset-steps{display:grid;gap:8px;margin-top:12px}
.prototype-reset-steps>section{display:grid;grid-template-columns:28px minmax(0,1fr);gap:11px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff}
.prototype-reset-steps section>div{min-width:0}
.prototype-reset-steps p{margin:4px 0 10px;color:var(--muted);font-size:12px;line-height:1.45}
.prototype-reset-steps label{margin:0 0 6px}
.prototype-reset-steps input[type="text"]{height:42px}
.step-number{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#263d5a;color:#fff;font-size:12px;font-weight:900}
.prototype-reset-option{display:flex!important;align-items:flex-start;gap:9px;margin:9px 0 0!important;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fafbfd;cursor:pointer}
.prototype-reset-option input{width:auto;margin:2px 0 0;flex:0 0 auto}
.prototype-reset-option span{line-height:1.4}
.prototype-reset-step-status{margin-top:7px;color:var(--muted);font-size:11px;font-weight:700}
.prototype-reset-step-status.ready{color:#17613a}
.prototype-reset-actions .btn-danger:disabled{cursor:not-allowed;opacity:.42}

/* Publiseringsdialogen må bryte om etter tilgjengelig dialogbredde, ikke først ved mobilbredde. */
/* Med «Nullstill filter» som sjette kolonne trenger raden ca. 1000 px; under det: søkefeltet for seg, resten på én rad. */
@media(max-width:1060px){
  .publication-filterbar{grid-template-columns:repeat(5,minmax(0,1fr))}
  .publication-filterbar #publicationSearch{grid-column:1/-1}
}
@media(max-width:960px){
  .publication-filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .publication-filterbar #publicationSearch{grid-column:1/-1}
  .publication-action-step{grid-template-columns:minmax(0,1fr) auto;align-items:end}
  .publication-action-step .bulk-label-step-heading{grid-column:1/-1}
  .publication-actions{grid-column:2}
}

@media(max-width:760px){
  .bulk-work-dialog .workspace-header{display:grid;padding-right:54px}
  #bulkNeedsOpenRolesBtn{justify-self:start}
  .bulk-label-filterbar,.bulk-needs-filterbar{grid-template-columns:1fr}
  .bulk-label-toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .bulk-label-toolbar select{grid-column:1/-1}
  .bulk-label-toolbar .btn{width:100%;min-width:0;white-space:normal}
  .bulk-needs-toolbar{grid-template-columns:88px minmax(0,1fr)}
  #bulkNeedsRole,#bulkNeedsApplyDefaultsBtn{grid-column:1/-1}
  .bulk-needs-toolbar .btn{width:100%;min-width:0;white-space:normal}
  .bulk-event-needs-row{grid-template-columns:20px minmax(0,1fr) minmax(110px,.72fr)}
  .bulk-event-needs-row .bulk-needs-current{grid-column:auto}
  .venue-default-intro{flex-direction:column}
  .venue-meeting-default-row{grid-template-columns:1fr}
  .venue-default-role-list{grid-template-columns:1fr;max-height:34vh}
  .needs-default-step{grid-template-columns:1fr;gap:12px;padding:14px}
  .meeting-default-controls{justify-content:stretch;grid-template-columns:minmax(0,1fr) auto}
  .venue-default-quick-control{grid-template-columns:1fr}
  .yesplan-sync-facts,.readiness-grid{grid-template-columns:1fr}
  .event-web-preview iframe{height:52vh}
  .volunteer-event-info-dialog .dialog-close{right:8px;width:44px;height:44px;margin:0}
  .volunteer-event-info-dialog .dialog-standard-header{padding-right:56px}
  .volunteer-event-info-dialog .volunteer-event-title-row{display:grid;justify-items:start;gap:6px}
  .volunteer-event-info-dialog .volunteer-event-title-row .type-badge{position:static;max-width:100%;margin:0;text-align:left}
  .volunteer-event-info-dialog .volunteer-event-title-row .volunteer-event-status-pill{margin:0}
  .volunteer-event-info-dialog .volunteer-event-title-row .volunteer-event-title-badges{margin:0}
  .volunteer-event-info-dialog .event-info-primary{padding-right:0}
  .event-change-review-card{grid-template-columns:1fr}
  .event-change-review-actions{justify-content:flex-start}
  .event-info-settings-header{display:none}
  .event-info-settings-row{grid-template-columns:1fr}
  .event-info-settings-row>*{grid-column:1!important;grid-row:auto!important}
  .event-info-settings-row>.event-info-event-check{justify-self:start}
  .event-info-list-toolbar{grid-template-columns:1fr}
  .publication-mode-options,.publication-mode-options-two{grid-template-columns:1fr}
  .publication-mode-card .publication-mode-range{grid-column:auto;grid-row:auto}
  .publication-filterbar{grid-template-columns:1fr}
  .publication-event-row{grid-template-columns:auto minmax(0,1fr)}
  .publication-event-state{grid-column:2}
  .publication-action-step{grid-template-columns:1fr;align-items:stretch}
  .publication-actions{display:grid;grid-template-columns:1fr}
  .volunteer-editor-grid{grid-template-columns:1fr}
  .volunteer-editor-grid .field-span-2{grid-column:auto}
  .volunteer-role-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
  .volunteer-editor-scroll{padding:13px}
  .prototype-reset-card{grid-template-columns:1fr}
  .prototype-reset-card .btn{width:100%}
  .prototype-reset-dialog-card{padding:20px 16px 0}
  .prototype-reset-impact{grid-template-columns:1fr}
}

.event-web-preview-content{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);min-height:150px;background:#fff}
.event-web-preview-content>img{display:block;width:100%;height:100%;min-height:150px;max-height:220px;object-fit:cover;background:#eef1f5}
.event-web-preview-content>img{display:block;width:100%;height:100%;min-height:150px;object-fit:cover;background:var(--surface-2)}
.event-web-preview-content>.event-web-preview-image-pending{display:block;width:100%;min-height:150px;aspect-ratio:16/9;background:var(--surface-2)}
.setting-radio-group{display:grid;gap:8px}
.event-web-preview-copy{display:grid;align-content:center;gap:7px;padding:18px}
.event-web-preview-copy strong{font-size:18px;line-height:1.3}
.event-web-preview-copy p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.event-web-preview-copy span{color:#49617f;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}
.event-web-preview-loading,.event-web-preview-unavailable{display:flex;align-items:center;justify-content:center;gap:9px;min-height:150px;padding:20px;color:var(--muted);text-align:center}
.event-web-preview-loading,.event-web-preview-unavailable{grid-column:1/-1}
.event-web-preview-unavailable{display:grid;align-content:center;gap:4px}
.event-web-preview-unavailable span{font-size:12px}
#volunteerEventInfoSignupBtn:disabled{cursor:default;opacity:.78}

/* Direkte vei fra massevisningen til selve typeadministrasjonen. */
.bulk-label-workspace-header{padding-right:48px}
.bulk-label-workspace-header>div{min-width:0}
.bulk-label-workspace-header>.btn{flex:0 0 auto;white-space:nowrap}

/* Tydelig skille mellom Yesplan-steder og lokale steder. */
.venue-management-details>.venue-management-content{
  display:grid;
  align-items:stretch;
  justify-content:stretch;
  gap:12px;
  min-width:0;
}
.venue-management-intro{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.venue-source-explainer{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff}
.venue-source-explainer>div{display:grid;gap:4px}
.venue-source-explainer span:not(.source-badge){color:var(--muted);font-size:12px;line-height:1.45}
.venue-source-explainer.local-source{background:#f8fafc}
.local-venue-create{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(320px,1.3fr);gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}
.local-venue-create>div{display:grid;gap:4px}
.local-venue-create>div span{color:var(--muted);font-size:12px}
.local-venue-create .add-setting-form{margin:0}
.venue-source-group{display:grid;gap:7px;padding-top:4px}
.venue-source-group+.venue-source-group{margin-top:6px;padding-top:14px;border-top:1px solid var(--line)}
.venue-source-group-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 3px;color:var(--muted);font-size:12px}
.venue-source-group-heading strong{color:var(--text);font-size:13px}
.venue-source-group-list{display:grid;gap:7px}

/* Alle forespørselsknapper forklarer nå hvorfor de eventuelt er sperret. */
#adminEvents .request-event-btn.is-blocked{opacity:.64;border:1px solid var(--line);cursor:help}
.request-status-note{display:block;max-width:130px;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.25}

/* Publisering og øvrig livssyklus er tydelige par uten å konkurrere med innholdet. */
.event-detail-header-actions{display:grid!important;grid-template-columns:1fr;gap:7px;align-items:start;flex:0 0 auto;min-width:360px}
.event-detail-navigation{display:grid;grid-template-columns:auto minmax(52px,auto) auto;align-items:center;justify-content:end;gap:7px}
.event-detail-navigation .btn{width:auto;min-height:34px!important;padding:6px 10px;font-size:12px}
.event-detail-navigation>span{text-align:center;font-size:11px;font-weight:750}
.event-detail-filter-indicator{display:flex;align-items:center;justify-content:flex-end;gap:8px;color:#9a5700;font-size:11px;font-weight:750}
.event-detail-filter-indicator>span{padding:5px 8px;border:1px solid #e2a443;border-radius:999px;background:#fff}
.event-detail-filter-indicator .btn{min-height:30px!important;padding:4px 8px;font-size:11px}
.event-detail-header-actions .btn{width:100%;white-space:nowrap}

/* Mer intuitiv tildelingsdialog. */
#assignVolunteerDialog{width:min(820px,calc(100vw - 24px));max-width:820px;overflow:hidden;padding:0}
.assign-volunteer-card{box-sizing:border-box;max-height:min(92vh,820px)!important;padding:0!important;overflow:hidden!important;display:flex;flex-direction:column}
.assign-volunteer-header{flex:0 0 auto;margin:0;padding:22px 58px 14px 22px;border-bottom:1px solid var(--line)}
.assign-volunteer-header h2{margin:4px 0 4px}
.assign-volunteer-header p{margin:0;line-height:1.4}
.assign-volunteer-layout{flex:0 1 auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:12px;max-height:calc(min(92vh,820px) - 172px);min-height:0;overflow:auto;padding:16px 22px}
.assign-volunteer-section{min-width:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fafbfd}
.assign-section-heading{display:flex;gap:9px;align-items:flex-start;margin-bottom:11px}
.assign-section-heading>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;font-weight:900;flex:0 0 auto}
.assign-section-heading>div{display:grid;gap:2px}
.assign-section-heading small{margin:0!important;font-size:11px}
.assign-volunteer-section>label{margin:11px 0 6px}
.assign-conflict-hint{display:flex;gap:12px;flex-wrap:wrap;margin:7px 0;font-size:11px}
#assignVolunteerSelect{min-height:230px;border-radius:11px;background:#fff}
#assignVolunteerSelect option{padding:8px 9px;border-bottom:1px solid #edf0f4;white-space:normal}
.assign-role-capacity{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding:9px 10px;border-radius:10px;background:#eef3f8;color:var(--muted);font-size:11px}
.assign-role-capacity strong{color:var(--text);font-size:12px}
.assign-volunteer-summary{display:grid;gap:4px;margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--muted);font-size:12px;line-height:1.4}
.assign-volunteer-summary strong{color:var(--text);font-size:14px}
.assign-volunteer-summary span{color:var(--text)}
.assign-volunteer-summary small{margin:0!important}
.assign-volunteer-summary.success{border-color:#abd2ba;background:#f0faf4}
.assign-volunteer-summary.warning{border-color:#e4bd72;background:#fff9ea}
.assign-volunteer-actions button[value="default"]:disabled{opacity:.42;cursor:not-allowed}
.assign-volunteer-actions button[value="default"][aria-busy="true"]:disabled{opacity:.72;cursor:default}
/* Denne bunnraden er sin egen faste flex-rad utenfor det rullbare
   midtfeltet (.assign-volunteer-layout har sin egen overflow:auto), så den
   trenger aldri å "henge fast" ved rulling slik den generiske
   .dialog-actions-regelen forutsetter for andre dialoger. Målingene dine
   viste at knappen lå helt riktig plassert og innenfor vinduet, men likevel
   ikke ble tegnet - nøyaktig symptomet på en kjent Safari-svikt der
   position:sticky innenfor en beskåret overflow-forelder ikke tegnes før
   noe (som en museøver) tvinger et omtegn. Fjernes derfor bare her. */
.assign-volunteer-actions{position:static}

/* Kontrollert backup-gjenoppretting. */
.backup-primary-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,390px)}
.backup-primary-actions .btn{width:100%;min-height:43px;justify-content:center}
.role-settings-legend{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(210px,auto);gap:12px;align-items:end;margin:10px 0 4px;padding:0 12px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.role-settings-legend span:nth-child(2){text-align:center}.role-settings-legend span:last-child{text-align:right}.role-settings-legend small{display:block;margin-top:2px;font-size:9px;font-weight:600;letter-spacing:0;text-transform:none}
.backup-restore-dialog{width:min(720px,calc(100vw - 24px));max-width:720px;max-height:calc(100vh - 24px);overflow:hidden;padding:0}
.backup-restore-dialog-card{box-sizing:border-box;max-height:calc(100vh - 24px);overflow:auto;padding:24px 26px 0}
.backup-restore-dialog-card>p{margin:0 0 14px;line-height:1.5}
.backup-restore-steps{display:grid;gap:8px;margin-top:12px}
.backup-restore-steps>section{display:grid;grid-template-columns:28px minmax(0,1fr);gap:11px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff}
.backup-restore-steps label{margin:0 0 7px}
.backup-restore-steps p{margin:7px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
.backup-restore-validation{display:grid;gap:5px;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fafbfd;color:var(--muted);font-size:12px;line-height:1.4}
.backup-restore-validation.working{display:flex;align-items:center}
.backup-restore-validation.success{border-color:#abd2ba;background:#f0faf4;color:#185c35}
.backup-restore-validation.error{border-color:#e4b3ad;background:#fff3f1;color:#7b312a}
.backup-validation-success{display:grid;gap:5px}
.backup-validation-success>span,.backup-validation-success small{color:var(--muted)}
.backup-validation-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:6px 0}
.backup-validation-counts span{display:grid;gap:2px;padding:8px;border:1px solid rgba(24,92,53,.16);border-radius:8px;background:#fff;color:var(--muted);font-size:10px}
.backup-validation-counts b{color:var(--text);font-size:16px}
.backup-restore-acknowledgement{display:flex!important;align-items:flex-start;gap:9px;margin:0 0 13px!important;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fafbfd;cursor:pointer}
.backup-restore-acknowledgement input{width:auto;margin:2px 0 0;flex:0 0 auto}
.backup-restore-acknowledgement span{line-height:1.4}
.backup-restore-actions .btn-danger:disabled{cursor:not-allowed;opacity:.42}
@media(max-width:760px){
  .event-web-preview-content{grid-template-columns:1fr}
  .event-web-preview-content>img{height:auto;min-height:0;aspect-ratio:16/9}
  .event-web-preview-content>img{max-height:190px}
  .event-workspace-dialog .event-detail-header{flex-direction:column}
  .bulk-label-workspace-header{display:grid;padding-right:48px}
  .bulk-label-workspace-header>.btn{justify-self:start;white-space:normal}
  .venue-management-intro,.local-venue-create{grid-template-columns:1fr}
  .venue-management-details>.venue-management-content{display:grid;align-items:stretch}
  .event-detail-header-actions{grid-template-columns:1fr;min-width:0;width:100%}
  .event-detail-navigation{justify-content:stretch;grid-template-columns:1fr auto 1fr}
  .event-detail-filter-indicator{justify-content:space-between}
  .event-detail-header-actions .btn{white-space:normal}
  .assign-volunteer-layout{grid-template-columns:1fr;padding:13px}
  .assign-volunteer-header{padding:19px 54px 12px 16px}
  #assignVolunteerSelect{min-height:180px}
  .backup-restore-dialog-card{padding:20px 16px 0}
  .backup-validation-counts{grid-template-columns:1fr 1fr}
}

/* v7.5.1 – ett gjennomgående dialogsysten */
dialog{
  max-height:min(92dvh,900px);
  overflow:hidden;
  border:1px solid rgba(22,32,51,.08);
  border-radius:20px;
  background:#fff;
  box-shadow:0 28px 90px rgba(15,25,45,.30);
}
dialog .dialog-card{
  width:100%;
  max-width:none;
  box-sizing:border-box;
}
dialog .dialog-card:not(.assign-volunteer-card):not(.event-editor-card):not(.volunteer-editor-card):not(.volunteer-register-card){
  max-height:min(92dvh,900px);
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.dialog-close{
  z-index:30;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  padding:0;
  border:1px solid var(--line);
  border-radius:11px;
  background:#f4f6f9;
  color:#516078;
  font-size:23px;
  line-height:1;
  transition:background .16s ease,color .16s ease,transform .16s ease;
}
.dialog-close:hover{background:#e9edf3;color:var(--text);transform:translateY(-1px)}
.dialog-close:focus-visible{outline:3px solid var(--accent-soft);outline-offset:2px}

.dialog-standard-header{
  position:relative;
  margin:0 0 16px;
  padding:0 48px 14px 0;
  border-bottom:1px solid var(--line);
}
.dialog-standard-header p,
dialog .workspace-header p{margin:4px 0 0;max-width:820px;font-size:13px;line-height:1.5}
.dialog-standard-header .section-heading{align-items:flex-start;margin:0}
.dialog-standard-header .section-heading h2{margin-top:4px}
.dialog-standard-header .summary-chip{display:inline-flex;margin-top:8px}
dialog .workspace-header>div:first-child{min-width:0}
dialog .workspace-header>.btn,
dialog .workspace-header>.inline-actions{align-self:center;flex:0 0 auto}

.dialog-flow-section,.dialog-surface-section{
  display:grid;
  gap:12px;
  margin:12px 0;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fafbfd;
}
.dialog-flow-heading{display:flex;align-items:flex-start;gap:10px}
.dialog-flow-heading>span{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:25px;
  height:25px;
  border-radius:50%;
  background:var(--accent);
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.dialog-flow-heading>div{display:grid;gap:2px;min-width:0}
.dialog-flow-heading strong{font-size:13px;line-height:1.35}
.dialog-flow-heading small{margin:0!important;font-size:11px}
.dialog-flow-section>label:first-child{margin-top:0}
.dialog-flow-section .role-choices{margin-top:1px}
.dialog-flow-section textarea{resize:vertical}
.login-flow-section{gap:10px}

dialog input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
dialog select{min-height:42px}
dialog textarea{line-height:1.45}
dialog .btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center}
dialog .btn-small{min-height:34px}

dialog .workspace-tabs{
  display:flex;
  gap:4px;
  margin:12px 0 17px;
  padding:4px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f3f5f8;
}
dialog .workspace-tab{
  flex:0 0 auto;
  padding:8px 12px;
  border:0;
  border-radius:8px;
  color:var(--muted);
}
dialog .workspace-tab.active{
  border:0;
  background:#fff;
  color:var(--text);
  box-shadow:0 2px 7px rgba(18,35,61,.08);
}

dialog .register-toolbar,
dialog .history-filterbar,
dialog .event-info-list-toolbar,
dialog .import-controls,
dialog .detail-toolbar{
  padding:12px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fafbfd;
}
.register-dialog-header{flex:0 0 auto}
.register-dialog-header .register-heading{margin:0}
.register-dialog-header .section-heading{padding-right:0}
.role-detail-header{display:flex;align-items:center;justify-content:space-between;gap:18px}
.role-detail-header>div{min-width:0}

.event-web-preview-heading{justify-content:flex-start}

/* Arrangementsskjemaet har sin egen klebrige handlingslinje. Kortet må være
   selve rulleflaten, ellers kan knappene havne under dialogens klippekant. */
.event-editor-dialog{width:min(960px,calc(100vw - 28px));max-height:min(calc(100dvh - 32px),820px);overflow:hidden}
.event-editor-card{
  max-height:min(calc(100dvh - 32px),820px);
  padding-bottom:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable
}
.event-editor-dialog .event-editor-header{margin-bottom:9px}
.event-editor-dialog .event-editor-header h2{font-size:26px}
.event-editor-dialog .event-editor-header p{font-size:13px;line-height:1.35}
.event-editor-dialog .event-editor-section{margin-top:9px;padding:12px;border-radius:13px}
.event-editor-dialog .event-editor-section-heading{align-items:center;margin-bottom:9px}
.event-editor-dialog .event-editor-section-heading p{font-size:12px;line-height:1.3}
.event-editor-dialog .event-basics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 10px}
.event-editor-dialog .event-basics-grid input,
.event-editor-dialog .event-basics-grid select{height:38px;padding-top:7px;padding-bottom:7px}
.event-editor-dialog .event-editor-section .role-builder{gap:5px 8px}
.event-editor-dialog .event-editor-section .role-builder-row{min-height:40px;padding:5px 8px}
.event-editor-dialog .event-editor-section .role-builder-row input[type="number"]{height:36px;padding:5px 8px}
.event-editor-dialog .event-notes-section textarea{min-height:62px}
/* Publiseringshandlingen skal alltid være synlig. Bare arrangementslisten
   ruller, så administrator slipper å lete etter knappene nederst. */
.publication-settings-dialog .dialog-card{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  height:min(92dvh,900px);
  max-height:min(92dvh,900px)!important;
  padding-top:18px!important;
  overflow:hidden!important;
}
.publication-settings-dialog .dialog-standard-header,
.publication-settings-dialog .publication-mode-card,
.publication-settings-dialog .publication-mode-details,
.publication-settings-dialog .publication-action-step{flex:0 0 auto}
/* Standardvalget som én linje med «Endre» (eierens ønske 20.09.2026: «ser bare 1 rad»); kortet åpnes med ett klikk. */
.publication-mode-details>summary{list-style:none;display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 10px;border:1px solid var(--ui-border,var(--line));border-radius:11px;background:var(--ui-subtle,#fafbfd);cursor:pointer;font-size:12px;line-height:1.3}
.publication-mode-details>summary::-webkit-details-marker{display:none}
.publication-mode-summary-label{flex:none;color:var(--muted);font-weight:800;white-space:nowrap}
.publication-mode-summary-text{flex:1 1 auto;min-width:0;font-weight:800;overflow-wrap:anywhere}
.publication-mode-summary-action{flex:none;margin-left:auto;padding:4px 12px;border-radius:9px;background:#e7eef8;color:#163d6b;font-weight:850;white-space:nowrap}
.publication-mode-details[open]>.publication-mode-summary .publication-mode-when-closed,
.publication-mode-details:not([open])>.publication-mode-summary .publication-mode-when-open{display:none}
.publication-mode-details[open]>.publication-mode-card{margin-top:6px}
.publication-mode-details>summary:focus-visible{outline:3px solid rgba(35,75,143,.25);outline-offset:2px}
/* Smalt: navnet og «Endre» på første linje, valget på linjen under (ellers klemmes teksten sammen). */
@media(max-width:700px){
  .publication-mode-details>summary{flex-wrap:wrap;row-gap:3px}
  .publication-mode-summary-label{flex:1 1 0;min-width:0;white-space:normal}
  .publication-mode-summary-text{order:3;flex:1 1 100%}
}
/* Slankere «Velg alle» og «Vis alle»-rad i dette vinduet, så lista får plassen. */
.publication-settings-dialog .bulk-select-all-row{display:flex;flex-direction:row;align-items:center;gap:8px}
.publication-settings-dialog .bulk-select-all-row small{display:inline;margin:0 0 0 auto}
.publication-settings-dialog .filter-reset-row{margin-top:6px;padding:6px 12px}
/* «Fjern valg (5)»: tømmer avkrysningene uten å røre filtrene. Står til høyre i «Velg alle»-raden, foran antallet. */
/* Overskrifter mellom «Venter på å bli åpnet» og øvrige arrangementer i lista. */
.publication-event-group{margin:8px 2px 2px;color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.publication-event-group:first-child{margin-top:0}
.publication-clear-selection{margin:0 0 0 auto;padding:2px 8px;border:0;border-radius:8px;background:transparent;color:#163d6b;font:inherit;font-size:12px;font-weight:850;text-decoration:underline;cursor:pointer}
.publication-clear-selection:hover{background:#dce8f6}
.publication-clear-selection:not(.hidden)+small{margin-left:12px!important}
.publication-settings-dialog .dialog-standard-header{margin-bottom:9px;padding-bottom:8px}
.publication-settings-dialog .dialog-standard-header p{max-width:none;font-size:12px;line-height:1.35}
.publication-settings-dialog .publication-selection-step{display:flex;flex:1 1 auto;flex-direction:column;min-height:235px;margin-top:10px;padding:10px;overflow:hidden}
.publication-settings-dialog .bulk-label-step-heading{margin-bottom:7px}
.publication-settings-dialog .bulk-select-all-row{margin:7px 0 6px;padding:6px 9px}
.publication-settings-dialog .publication-event-list{flex:1 1 auto;min-height:72px;max-height:none}
/* Mellomrommet under seksjon 1 (til seksjon 2) styres av «klebrig bunn»-regelen (linje ~5647)
   som setter margin-top:10px !important. Både over og under seksjon 1 er derfor 10 px – likt
   (eierens ønske 18.09.2026). margin-top her er uansett overstyrt av den regelen. */
.publication-settings-dialog .publication-action-step{display:grid;grid-template-columns:minmax(300px,1fr) auto;gap:7px 12px;margin-top:10px;padding:10px}
/* Samme «klebrig bunn»-regel gjør seksjon 2 position:sticky;bottom:0. I publiseringsvinduet er
   kortet fast høyde og scroller ikke (bare lista scroller), så sticky har ingen nytte her – men den
   SKADER: blir seksjon 1 høy nok (f.eks. filtrert visning), drar sticky seksjon 2 oppover OVER
   seksjon 1, og mellomrommet blir 0/negativt (målt −273 px). Uten filter skjer det ikke, så avstanden
   ble ulik mellom visningene (eierens funn 18.09.2026). Normal flyt gir alltid 10 px. */
.publication-settings-dialog .dialog-card > .publication-action-step{position:relative}
.publication-settings-dialog .publication-action-step .bulk-label-step-heading{grid-column:1;margin:0}
.publication-settings-dialog .publication-actions{align-self:center;margin:0}
.publication-settings-dialog .publication-safety{grid-column:1/-1;margin:0;font-size:10px;line-height:1.25}
/* «Handling for valgte» på én rad - overskrift | trygghetstekst | knapper - når vinduet er bredt nok, så lista får plassen
   (eierens ønske 20.09.2026). Smalere vinduer har knappene ved siden av overskriften og trygghetsteksten på en egen rad under. */
@media(min-width:1100px){
  .publication-settings-dialog .publication-action-step{grid-template-columns:minmax(200px,auto) minmax(0,1fr) auto;align-items:center;gap:6px 16px;padding:8px 10px}
  .publication-settings-dialog .publication-action-step .bulk-label-step-heading{grid-column:1;grid-row:1}
  .publication-settings-dialog .publication-action-step .publication-safety{grid-column:2;grid-row:1;align-self:center}
  .publication-settings-dialog .publication-action-step .publication-actions{grid-column:3;grid-row:1}
}
.volunteer-workflow-dialog{width:min(680px,calc(100vw - 28px));max-width:none}
.volunteer-workflow-dialog .dialog-card{width:100%}
.volunteer-workflow-impact{display:grid;gap:12px;padding:16px;border:1px solid var(--border);border-radius:18px;background:var(--surface-soft,#f6f8fb)}
.volunteer-workflow-impact h3,.volunteer-workflow-impact p{margin:0}
/* Forklaring av «Avslutt og arkiver»: skilt fra publiser-forklaringen med en
   tynn linje og en rødlig venstrekant som knytter den til den røde knappen. */
/* «Melding til frivillige» i valgdialogen: standardteksten er grå og blir svart når den endres (som «Info innslipp»). */
.volunteer-workflow-message{display:grid;gap:5px;margin:2px 0 4px}
.volunteer-workflow-message[hidden]{display:none}
.volunteer-workflow-message strong{font-size:13px}
.volunteer-workflow-message textarea{min-height:56px;resize:none;line-height:1.4}
.volunteer-workflow-message textarea.is-default{color:#9aa1ad}
.volunteer-workflow-message small{font-size:11px;line-height:1.35}
.volunteer-workflow-end-note{padding:10px 0 0 11px;border-top:1px solid var(--line);border-left:3px solid var(--danger,#b23b3b);border-radius:0;font-size:12px;line-height:1.4}
/* «Fjern fra portalen» (bare systemeier): egen rad under de vanlige handlingene,
   høyrestilt, så de fire vanlige knappene beholder sin ene rad. */
.volunteer-workflow-owner-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:6px;font-size:12px}
.volunteer-workflow-remove-note{padding:10px 0 0 11px;border-top:1px solid var(--line);border-left:3px solid var(--danger,#b23b3b);border-radius:0;font-size:12px;line-height:1.4}
.yesplan-excluded-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--line);font-size:12px}
.archived-owner-actions{margin-top:6px}
.status-badge.test-account{background:#f3e8ff;color:#5b21b6;border-color:#d8b4fe;margin-left:6px}
/* Ansatt/øvingskonto: samme form som TEST-merket, egen rolig blåtone så de to ikke forveksles. */
.status-badge.test-account.staff-account{background:#e0f2fe;color:#075985;border-color:#7dd3fc}
/* .dialog-card label er display:block og fet; denne raden er avkrysning + tekst på samme linje. */
.dialog-card label.volunteer-test-account-field{display:flex;align-items:flex-start;gap:8px;margin:10px 0 4px;font-size:13px;font-weight:500;line-height:1.4}
.dialog-card label.volunteer-test-account-field input{flex:none;width:auto;margin:2px 0 0}
#testLoginLinkField{width:100%;font-family:ui-monospace,Menlo,monospace;font-size:12px}
.test-login-warning{margin:0 0 10px;padding:10px 12px;border:1px solid #e4b3ad;border-radius:11px;background:#fff3f1;color:#7b312a;font-size:13px;line-height:1.45}
.yesplan-excluded-row:first-child{border-top:0}
/* «Trekk tilbake»-forklaringen: samme form som avslutt-notatet, men nøytral kant. */
.volunteer-workflow-withdraw-note{padding:10px 0 0 11px;border-top:1px solid var(--line);border-left:3px solid var(--border);border-radius:0;font-size:12px;line-height:1.4}
.volunteer-workflow-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.volunteer-workflow-counts span{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--muted);font-size:12px}
.volunteer-workflow-counts strong{color:var(--text);font-size:20px;line-height:1}
.volunteer-workflow-actions{flex-wrap:wrap}
.volunteer-workflow-actions #volunteerWorkflowCancel{margin-right:auto}
/* Fire knapper (Avbryt · Trekk tilbake · Steng · Avslutt) skal få plass på én rad i
   vinduets 680px, så handlingene ikke brytes ned på egen rad (eierens regel om
   ryddige, kompakte rader 16.09.2026). */
.volunteer-workflow-actions .btn{padding-left:10px;padding-right:10px;font-size:13px;white-space:nowrap}
.volunteer-workflow-actions{gap:6px}

/* Felles arbeidsflyt for massevinduer. Publiseringsvinduet er referansen:
   header og handlinger ligger i normal flyt, mens bare den lange listen ruller. */
.bulk-work-dialog .dialog-card{
  display:flex;
  flex-direction:column;
  height:min(92dvh,900px);
  max-height:min(92dvh,900px)!important;
  padding-top:18px!important;
  overflow:hidden!important;
}
.bulk-work-dialog .workspace-header,
.bulk-work-dialog :is(.bulk-label-apply-step,.bulk-needs-action-step){flex:0 0 auto}
.bulk-work-dialog .workspace-header{
  margin-bottom:9px;
  padding-bottom:9px;
  border-bottom:1px solid var(--line);
}
.bulk-work-dialog .workspace-header h2{font-size:24px}
.bulk-work-dialog .workspace-header p{font-size:12px;line-height:1.35}
.bulk-work-dialog .bulk-label-selection-step{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  min-height:235px;
  margin-top:0;
  padding:10px;
  overflow:hidden;
}
.bulk-work-dialog .bulk-event-label-list{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:var(--ui-list-row-spacing);
  flex:1 1 auto;
  min-height:80px;
  max-height:none;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-right:3px;
}
.bulk-work-dialog .bulk-event-label-row{flex:0 0 auto;min-height:0}
.bulk-work-dialog .bulk-label-step-heading{margin-bottom:7px}
.bulk-work-dialog .bulk-label-step-heading strong{font-size:13px;line-height:1.3}
.bulk-work-dialog .bulk-label-step-heading small{margin:0;font-size:11px;line-height:1.35}
.bulk-work-dialog .bulk-select-all-row{margin:7px 0 6px;padding:6px 9px}
.bulk-work-dialog :is(.bulk-label-toolbar,.bulk-needs-toolbar){margin:0}
.bulk-work-dialog .bulk-needs-safety{margin:6px 0 0;font-size:10px;line-height:1.35}

.event-info-settings-dialog .dialog-card{
  display:flex;
  flex-direction:column;
  max-height:min(92dvh,900px)!important;
  overflow:hidden!important;
}
.event-info-settings-dialog .dialog-standard-header,
.event-info-settings-dialog .event-info-list-toolbar{flex:0 0 auto}
.event-info-settings-dialog .dialog-standard-header{margin-bottom:9px;padding-bottom:9px}
.event-info-settings-dialog .event-info-list-toolbar{margin:7px 0}
.event-info-settings-dialog .event-info-settings-body{
  flex:1 1 auto;
  min-width:0;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-right:3px;
}
.event-info-settings-dialog .event-info-settings-list{min-height:120px;max-height:none;overflow:visible;padding-right:0}
/* Egen komponentkontrakt: Fanene skal aldri arve den horisontale, lave
   arbeidsflatevarianten. Begge valg må være synlige og ha en trygg trefflate. */
.event-info-settings-dialog .event-info-tabs{
  display:flex;
  align-items:center;
  width:max-content;
  min-height:44px;
  margin:0 0 10px;
  padding:4px;
  overflow:visible;
  box-sizing:border-box;
  border:1px solid var(--ui-border);
  border-radius:12px;
  background:#eef2f7;
}
.event-info-settings-dialog .event-info-tabs .workspace-tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:8px 14px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#5f6f89;
  font-size:13px;
  font-weight:800;
  line-height:1.2;
  white-space:nowrap;
  opacity:1;
  visibility:visible;
}
.event-info-settings-dialog .event-info-tabs .workspace-tab.active{
  background:#fff;
  color:var(--text);
  box-shadow:0 2px 7px rgba(18,35,61,.08);
}
/* Programsider-fanen er et rent lenkeverktøy (eierens valg 15.09.2026): alt som
   gjelder tider og oppmøte hører til Tider-fanen og skjules her. */
.event-info-settings-dialog[data-event-info-tab="links"] :is(.event-info-settings-header,.event-info-manual-heading,.event-info-select-all-row,#eventInfoBulkTimeActions){display:none}
.event-info-settings-dialog[data-event-info-tab="times"] :is(.event-link-finder,.event-info-links-toolbar,.event-info-links-header,.event-link-suggestions-access-hint){display:none}
.event-info-settings-dialog[data-event-info-tab="times"] .event-info-settings-header,
.event-info-settings-dialog[data-event-info-tab="times"] .event-info-settings-row{grid-template-columns:24px minmax(190px,.9fr) minmax(185px,.65fr) 165px auto}
.event-info-settings-dialog[data-event-info-tab="times"] .event-info-event-check{grid-column:1}
.event-info-settings-dialog[data-event-info-tab="times"] .event-info-settings-main{grid-column:2}
.event-info-settings-dialog[data-event-info-tab="times"] :is(.event-info-time-fields,.event-info-time-authority){grid-column:3}
.event-info-settings-dialog[data-event-info-tab="times"] .event-info-meeting-select{grid-column:4}
.event-info-settings-dialog[data-event-info-tab="times"] .event-info-save{grid-column:5}
.event-info-tab-count{margin-left:6px;padding:2px 8px;font-size:11px}
.event-link-finder{width:100%;max-width:100%;min-width:0;box-sizing:border-box;margin:8px 0 10px;padding:12px 14px;border:1px solid #ccd7e7;border-radius:12px;background:#eef3fb}
.event-link-finder-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.event-link-finder-summary>div{display:grid;gap:3px;flex:1 1 320px;min-width:0}
.event-link-finder-summary strong{font-size:14px}
.event-link-finder-summary span{color:var(--muted);font-size:12px;line-height:1.4}
.event-link-finder .event-link-suggestion-gate{margin-top:10px}
.event-info-links-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 8px}
.event-info-only-missing{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;cursor:pointer}
.event-info-only-missing input{width:18px;height:18px;margin:0;accent-color:var(--blue)}
.event-info-links-header,.event-info-link-row{display:grid;grid-template-columns:minmax(200px,.9fr) 140px minmax(300px,1.4fr);gap:12px;align-items:center}
.event-info-links-header{padding:0 12px 6px;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.event-info-link-row{padding:10px 12px}
.event-info-link-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}
.event-info-link-actions .btn{width:auto}
.event-info-link-text{flex:1 1 200px;min-width:0;max-width:100%;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.event-info-link-text a{color:var(--text);font-weight:700;text-decoration:none}
.event-info-link-text a:hover{text-decoration:underline}
.event-info-link-text.is-unsure{color:#8a5a12}
.event-info-link-editor{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:8px;align-items:start;width:100%}
.event-info-link-editor .event-info-url-field{grid-column:1}
.event-info-link-editor .btn{width:auto;margin-top:0}
@media(max-width:760px){
  .event-info-tab-count{display:none}
  .event-info-links-header{display:none}
  .event-info-link-row{grid-template-columns:minmax(0,1fr) auto}
  .event-info-link-row .event-info-link-actions{grid-column:1/-1;justify-content:flex-start}
  .event-info-link-editor{grid-template-columns:1fr}
  .event-link-finder-summary .btn{width:100%}
}
.event-info-settings-dialog .event-info-select-all-row{margin:0 0 7px;padding:7px 10px}
.event-info-selection-actions{display:grid;grid-template-columns:auto minmax(260px,1fr) auto auto;gap:8px;align-items:center;margin-top:8px;padding:9px 10px;border:1px solid var(--ui-border);border-radius:10px;background:#f5f8fc}
.event-info-selection-actions strong{font-size:12px;white-space:nowrap}
.event-info-selection-actions input,.event-info-selection-actions select{min-width:0}
@media(max-width:760px){
  .event-info-selection-actions{grid-template-columns:1fr 1fr}
  .event-info-selection-actions strong,.event-info-selection-actions input,.event-info-selection-actions select{grid-column:1/-1}
  .event-info-selection-actions .btn{width:100%}
}

@media (min-width:761px) and (max-width:1020px){
  .event-info-link-row{grid-template-columns:minmax(0,1fr) auto}
  .event-info-link-row .event-info-link-actions{grid-column:1/-1;justify-content:flex-start}
  .event-info-settings-dialog[data-event-info-tab="times"] .event-info-settings-row{grid-template-columns:auto minmax(0,1fr) minmax(180px,.65fr) auto}
  .event-info-settings-dialog[data-event-info-tab="times"] .event-info-event-check{grid-column:1;grid-row:1}
  .event-info-settings-dialog[data-event-info-tab="times"] .event-info-settings-main{grid-column:2/-1;grid-row:1}
  .event-info-settings-dialog[data-event-info-tab="times"] :is(.event-info-time-fields,.event-info-time-authority){grid-column:2;grid-row:2}
  .event-info-settings-dialog[data-event-info-tab="times"] .event-info-meeting-select{grid-column:3;grid-row:2}
  .event-info-settings-dialog[data-event-info-tab="times"] .event-info-save{grid-column:4;grid-row:2}
}

@media(max-width:760px){
  .event-info-settings-dialog[data-event-info-tab] .event-info-settings-row{grid-template-columns:1fr}
  .event-info-settings-dialog .event-info-save{width:100%}
}

@media(max-width:760px){
  input[type="search"],input[type="text"],input[type="email"],input[type="tel"],input[type="url"],input[type="password"],textarea,select{font-size:16px}
  dialog{width:calc(100vw - 14px);max-width:none;max-height:calc(100dvh - 14px);border-radius:16px}
  /* Telefon: arrangementskortet fyller skjermhøyden, så rammen ikke hopper når man sveiper. */
  .volunteer-event-info-dialog .dialog-card{height:calc(100dvh - 14px)}
  .volunteer-event-info-dialog::backdrop{background:rgba(10,17,30,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  /* iPhone-Safari (iOS 26) kan av og til tegne hele vinduslaget for høyt, særlig etter at
     tastaturet har vært oppe. Da rekker ikke bakteppet ned, og siden bak skinte gjennom i en
     stripe nederst (eierens funn 19.09.2026; målt og prøvd på eierens telefon med måleboksen).
     Ingenting i vinduslaget kan dekke den stripen, så siden bak gjøres mørk og skjules mens
     arrangementsvinduet er åpent. Bakteppet her er allerede nesten dekkende, så det ser likt ut. */
  html:has(.volunteer-event-info-dialog[open]),html:has(.volunteer-event-info-dialog[open]) body{background:rgb(10,17,30)}
  html:has(.volunteer-event-info-dialog[open]) body>*:not(dialog){visibility:hidden}
  dialog .dialog-card:not(.assign-volunteer-card):not(.event-editor-card):not(.volunteer-editor-card):not(.volunteer-register-card){max-height:calc(100dvh - 14px);padding:18px 16px}
  .dialog-standard-header,dialog .dialog-card>.workspace-header{padding-right:42px}
  .dialog-actions .btn{flex:1;white-space:normal}
  .role-detail-header{display:grid;align-items:start}
  .role-detail-header .btn{justify-self:start}
  .register-dialog-header .section-heading{display:grid}
  .register-dialog-header .inline-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .register-dialog-header #addVolunteerBtn{grid-column:1/-1}
  .event-editor-dialog{width:calc(100vw - 14px);max-height:calc(100dvh - 14px)}
  .event-editor-card{max-height:calc(100dvh - 14px);padding-bottom:0}
  .event-editor-dialog .event-basics-grid{grid-template-columns:1fr 1fr}
  .publication-settings-dialog .dialog-card{display:block;height:auto;max-height:calc(100dvh - 14px)!important;padding-top:18px!important;overflow-y:auto!important}
  .publication-settings-dialog .publication-selection-step{display:block;min-height:0;overflow:visible}
  .bulk-work-dialog .dialog-card{display:block;height:auto;max-height:calc(100dvh - 14px)!important;padding-top:18px!important;overflow-y:auto!important}
  .bulk-work-dialog .bulk-label-selection-step{display:block;min-height:0;overflow:visible}
  .bulk-work-dialog .bulk-event-label-list{max-height:none;overflow:visible;padding-right:0}
  .publication-settings-dialog .publication-event-list{min-height:140px;max-height:30vh}
  .publication-settings-dialog .publication-action-step{grid-template-columns:1fr}
  .publication-settings-dialog .publication-action-step .bulk-label-step-heading,
  .publication-settings-dialog .publication-actions,
  .publication-settings-dialog .publication-safety{grid-column:auto}
  .volunteer-workflow-counts{grid-template-columns:1fr}
  .volunteer-workflow-actions #volunteerWorkflowCancel{margin-right:0}
  .event-info-settings-dialog .dialog-card{display:block;max-height:calc(100dvh - 14px)!important;overflow-y:auto!important}
  .event-info-settings-dialog .event-info-settings-body{min-height:0;overflow:visible;padding-right:0}
  .event-info-settings-dialog .event-info-settings-list{min-height:140px;max-height:34vh;overflow-y:auto;overflow-x:hidden;padding-right:3px}
  .yesplan-field-toolbar{grid-template-columns:1fr}
  .role-settings-legend{grid-template-columns:1fr auto;padding:0 8px}.role-settings-legend span:last-child{display:none}
  .backup-primary-actions{width:100%}
}

@media(max-width:480px){
  .event-editor-dialog .event-basics-grid{grid-template-columns:1fr}
  .event-editor-dialog .event-basics-grid .field-span-2{grid-column:auto}
}

@media(max-width:520px){
  dialog.volunteer-workflow-dialog .dialog-card>.volunteer-workflow-actions{display:grid;grid-template-columns:1fr;width:100%}
  dialog.volunteer-workflow-dialog .dialog-card>.volunteer-workflow-actions .btn{width:100%}
}

/* v7.9 – diskret frivilliginformasjon, frister og arbeidslag */
.volunteer-info-dialog{width:min(920px,calc(100vw - 30px));max-width:none}
.volunteer-info-header{margin-bottom:10px}
.volunteer-info-updated{
  display:inline-flex;
  margin-top:7px;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
}
.volunteer-info-lead{
  margin:0 0 9px;
  padding:0 0 9px;
  border-bottom:1px solid var(--line);
  color:#344259;
  font-size:12px;
  line-height:1.45;
  overflow-wrap:anywhere;
  white-space:pre-line;
}
.volunteer-info-layout{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(230px,.8fr);
  gap:12px;
  align-items:start;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-right:3px;
}
.volunteer-info-main{
  display:grid;
  gap:10px;
  min-width:0;
  max-width:none;
  margin:0;
  padding:0;
}
.volunteer-info-section{
  min-width:0;
  padding:13px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafbfd;
}
.volunteer-info-section h3{
  margin:0 0 8px;
  font-size:15px;
  letter-spacing:-.015em;
}
.volunteer-info-guide-section,
.volunteer-info-contacts{align-self:start}
.volunteer-info-section-heading{margin-bottom:9px}
.volunteer-info-section-heading h3{margin:4px 0 0}
.volunteer-info-richtext{
  color:#344259;
  font-size:13px;
  line-height:1.55;
  overflow-wrap:anywhere;
  white-space:pre-line;
}
.volunteer-info-guide{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.volunteer-info-guide li{
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:8px;
  align-items:start;
  padding:7px 9px;
  border:1px solid #e2e7ef;
  border-radius:9px;
  background:#fff;
}
.volunteer-info-guide li>span{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:50%;
  background:#e9eef6;
  color:#3f5878;
  font-size:11px;
  font-weight:900;
}
.volunteer-info-guide li>div{display:grid;gap:2px;min-width:0}
.volunteer-info-guide strong{font-size:12px}
.volunteer-info-guide p{margin:0;color:var(--muted);font-size:11px;line-height:1.4}
.volunteer-info-contact-list{display:grid;gap:7px}
.volunteer-info-contact-card,
.volunteer-info-contact{
  display:grid;
  gap:8px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}
.volunteer-info-contact-heading{display:grid;gap:1px;min-width:0}
.volunteer-info-contact-card strong,
.volunteer-info-contact strong{font-size:13px;line-height:1.3}
.volunteer-info-contact-card>span,
.volunteer-info-contact-heading>span{display:block;color:var(--muted);font-size:11px;line-height:1.4}
.volunteer-info-contact-details{display:grid;gap:4px;margin:0}
.volunteer-info-contact-details>div{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:7px;
  align-items:baseline;
}
.volunteer-info-contact-details :is(dt,dd){margin:0;min-width:0}
.volunteer-info-contact-details dt{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.045em;text-transform:uppercase}
.volunteer-info-contact-details dd{color:#344259;font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.volunteer-info-contact>p{margin:2px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.volunteer-info-contact-links,
.volunteer-info-contact-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:1px}
.volunteer-info-contact-links a,
.volunteer-info-contact-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:6px 9px;
  border-radius:9px;
  background:#eef2f7;
  color:var(--text);
  font-size:11px;
  font-weight:800;
  text-decoration:none;
}
.volunteer-info-contact-email-action{grid-column:1/-1}
.volunteer-info-contact-actions.has-three-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
.volunteer-info-contact-actions.has-three-actions .volunteer-info-contact-email-action{grid-column:auto}
.volunteer-info-contact-links a:hover,
.volunteer-info-contact-actions a:hover{text-decoration:underline}
.volunteer-info-dialog .volunteer-info-actions{
  height:50px;
  min-height:50px;
  max-height:50px;
  margin:0!important;
  padding:5px 8px!important;
  border-width:1px 0 0!important;
  border-radius:0!important;
  justify-content:flex-end;
}
.volunteer-info-dialog .volunteer-info-actions .btn{min-height:34px;font-size:12px}

.volunteer-unable-dialog{width:min(680px,calc(100vw - 28px))}
.volunteer-unable-dialog .dialog-card{display:grid;gap:14px}
.unable-attend-explanation,
.unable-attend-contacts{
  padding:16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fafc;
}
.unable-attend-explanation{display:grid;gap:8px}
.unable-attend-explanation h3,
.unable-attend-explanation p,
.unable-attend-contacts h3{margin:0}
.unable-attend-explanation p{color:var(--muted);font-size:14px;line-height:1.5}
.unable-attend-explanation p strong{color:var(--text)}
.unable-attend-contacts{display:grid;gap:12px}
.unable-attend-contacts .volunteer-info-contact-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.unable-attend-contacts .volunteer-info-contact-list>:only-child{grid-column:1/-1}
.unable-attend-actions{justify-content:space-between}

@media(max-width:560px){
  .volunteer-unable-dialog .dialog-card{gap:10px}
  .unable-attend-explanation,
  .unable-attend-contacts{padding:13px}
  .unable-attend-contacts .volunteer-info-contact-list{grid-template-columns:1fr}
  .unable-attend-actions{display:grid!important;grid-template-columns:1fr}
  .unable-attend-actions .btn{width:100%}
}

.volunteer-event-team-section{
  margin:8px 0 2px;
  padding:14px;
  border:1px solid #ced9ea;
  border-radius:14px;
  background:#f6f9fd;
}
.volunteer-event-team-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0;
  list-style:none;
  cursor:pointer;
}
.volunteer-event-team-heading::-webkit-details-marker{display:none}
.volunteer-event-team-heading:focus-visible{outline:3px solid rgba(38,88,151,.28);outline-offset:5px;border-radius:8px}
.volunteer-event-team-section[open] .volunteer-event-team-heading{margin-bottom:8px}
.volunteer-event-team-heading h3{margin:3px 0 0;font-size:16px}
.volunteer-team-summary-meta{display:flex;align-items:center;justify-content:flex-end;gap:9px}
.volunteer-event-team-section[open] .details-chevron{transform:rotate(180deg)}
.team-availability-note{
  color:#49617e;
  font-size:11px;
  font-weight:800;
  text-align:right;
}
.volunteer-event-team-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 18px;
  max-height:min(260px,34dvh);
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-right:2px;
}
/* Slanke rader (eierens ønske 16.09.2026): ingen boks-ramme, navnet inntil bildet
   til venstre, rollen til høyre, med en tynn skillelinje mellom hver. Halverer
   høyden og fjerner det «klumpete» der navnet fløt midt i kortet. */
.volunteer-event-team-member{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:5px 3px;
  border:0;
  border-radius:0;
  background:transparent;
  border-bottom:1px solid var(--line);
}
.volunteer-event-team-member strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;margin-right:auto}
.volunteer-event-team-member span{flex:0 0 auto;color:var(--muted);font-size:11px}
.volunteer-team-privacy-note{display:block;margin:7px 2px 0;color:var(--muted);font-size:10.5px;line-height:1.35}

.volunteer-info-settings-card{padding-bottom:0;overflow:visible}
.volunteer-info-settings-heading{align-items:flex-start}
.volunteer-info-settings-heading>div{min-width:0}
.volunteer-info-settings-heading p{max-width:760px}
.volunteer-info-settings-layout{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.volunteer-info-settings-section{
  min-width:0;
  padding:15px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.volunteer-info-settings-section>label,
.volunteer-access-field-group>label,
.team-visibility-controls>label{
  margin:12px 0 6px;
}
.volunteer-info-settings-section textarea{resize:vertical}
.volunteer-info-settings-section-heading{
  display:grid;
  grid-template-columns:27px minmax(0,1fr);
  align-items:start;
  gap:10px;
  margin-bottom:12px;
}
.volunteer-info-settings-section-heading.contact-editor-heading{
  grid-template-columns:27px minmax(0,1fr) auto;
}
.volunteer-info-settings-section-heading h4{
  margin:1px 0 3px;
  font-size:15px;
  letter-spacing:-.01em;
}
.volunteer-info-settings-section-heading p{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
}
.settings-step{
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  border-radius:50%;
  background:var(--accent);
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.contact-editor-heading .btn{align-self:start;white-space:nowrap}
.volunteer-contacts-editor{display:grid;gap:9px}
.volunteer-contact-editor-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafbfd;
}
.volunteer-contact-editor-row label{margin:0}
.volunteer-contact-editor-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  grid-column:1/-1;
}
.volunteer-contact-editor-row>.form-grid,
.volunteer-contact-editor-row>label{grid-column:1/-1}
.volunteer-access-fields{display:grid;gap:9px}
.volunteer-access-field-group{
  padding:11px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafbfd;
}
.volunteer-access-field-group>label:first-child{margin-top:0}
.number-with-suffix{
  display:grid;
  grid-template-columns:minmax(90px,120px) minmax(0,1fr);
  align-items:center;
  gap:9px;
}
.number-with-suffix span{color:var(--muted);font-size:12px;line-height:1.35}
.conditional-number-field{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 92px;
  align-items:center;
  gap:9px;
  padding-top:8px;
  border-top:1px solid var(--line);
}
.conditional-number-field.hidden{display:none!important}
.team-visibility-controls{
  padding:11px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafbfd;
}
.team-visibility-controls>label:first-child{margin-top:0}
.privacy-note{
  display:grid;
  gap:3px;
  margin-top:10px;
  padding:10px 11px;
  border-radius:11px;
  background:var(--accent-soft);
  color:#324a6d;
}
.privacy-note strong{font-size:12px}
.privacy-note span{font-size:11px;line-height:1.45}
.volunteer-info-settings-actions{
  position:sticky;
  bottom:0;
  z-index:12;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:10px 0 0;
  padding:10px 12px max(10px,env(safe-area-inset-bottom));
  border:1px solid var(--ui-border);
  border-radius:14px;
  background:#f3f7fc;
  box-shadow:none;
}
.settings-save-statuses{display:grid;gap:2px;min-width:0;font-size:11px}
.volunteer-info-settings-actions>.inline-actions{flex:0 0 auto}

@media(max-width:820px){
  .volunteer-info-layout,
  .volunteer-info-settings-layout{grid-template-columns:1fr}
  .volunteer-info-contacts{order:-1}
  .volunteer-info-settings-heading{display:grid}
  .volunteer-info-settings-heading .btn{justify-self:start}
  .volunteer-info-settings-actions{align-items:stretch;flex-direction:column}
  .volunteer-info-settings-actions>.inline-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
}

@media(max-width:760px){
  .volunteer-info-layout{padding-right:2px}
}

@media(max-width:560px){
  .volunteer-event-team-heading{display:grid}
  .team-availability-note{text-align:left}
  .volunteer-event-team-list{grid-template-columns:1fr}
  .volunteer-info-settings-section{padding:12px}
  .volunteer-info-settings-section-heading.contact-editor-heading{grid-template-columns:27px minmax(0,1fr)}
  .contact-editor-heading .btn{grid-column:2;width:100%}
  .volunteer-contact-editor-row{grid-template-columns:1fr}
  .number-with-suffix{grid-template-columns:90px minmax(0,1fr)}
  .volunteer-info-settings-actions{padding:10px}
  .volunteer-info-settings-actions>.inline-actions{grid-template-columns:1fr}
}

/* v7.10 – filterteller, avansert statistikk og forklarbar beslutningsstøtte */
.admin-information-tool-btn{
  display:flex!important;
  align-items:center;
  justify-content:center!important;
  gap:7px;
}
.admin-information-tool-btn .tool-count{
  margin-left:0;
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.admin-filter-result-summary{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-height:22px;
  margin:-7px 2px 8px;
  color:var(--muted);
  font-size:12px;
  font-weight:750;
}
#volunteerEventsHeading,#adminEventsHeading{scroll-margin-top:92px;outline:none}

.advanced-stats-dialog{width:min(1220px,calc(100vw - 30px));max-width:none}
.advanced-stats-dialog .dialog-card{width:100%;max-width:none;box-sizing:border-box}
.advanced-stats-dialog .dialog-standard-header{margin-bottom:11px}
.advanced-stats-dialog .dialog-standard-header .summary-chip{margin-top:8px}
.advanced-stats-filter-panel{
  display:flex;
  align-items:end;
  gap:10px;
  margin-bottom:11px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fafbfd;
}
.advanced-stats-filter-grid{
  display:grid;
  grid-template-columns:minmax(180px,1.25fr) minmax(150px,.9fr) repeat(2,minmax(130px,.72fr)) minmax(145px,.82fr) auto;
  gap:8px;
  min-width:0;
  flex:1 1 auto;
}
.advanced-stats-filter-grid label{display:grid;gap:5px;margin:0!important;min-width:0}
.advanced-stats-filter-grid label>span{font-size:11px;color:var(--muted)}
.advanced-stats-filter-grid input,.advanced-stats-filter-grid select{min-width:0;min-height:38px;padding:7px 9px}
/* «Nullstill filter» hører til filtrene: sist i feltraden, på linje med feltene (ikke sammen med Eksporter). */
.advanced-stats-filter-grid .filter-reset-btn{align-self:end;min-height:38px}
.advanced-stats-filter-actions{display:flex;gap:6px;flex:0 0 auto;margin-left:18px}
.advanced-stats-filter-actions .btn{white-space:nowrap}
.advanced-stats-kpis{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:8px;
  margin-bottom:10px;
}
.advanced-stats-kpis>div{
  display:grid;
  gap:2px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.advanced-stats-kpis span{color:var(--muted);font-size:11px;font-weight:750}
.advanced-stats-kpis strong{font-size:21px;line-height:1.15;letter-spacing:-.025em}
.advanced-stats-resultbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:25px;
  margin:0 2px 7px;
  font-size:11px;
}
.advanced-stats-resultbar small{margin:0!important}
.advanced-stats-dialog #volunteerStats{padding:0;overflow:auto}
.advanced-stats-dialog #volunteerStats table{width:100%;min-width:850px}
.advanced-stats-dialog #volunteerStats th{
  position:sticky;
  top:0;
  z-index:2;
  padding:9px 10px;
  background:#f4f6f9;
  font-size:10px;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.advanced-stats-dialog #volunteerStats td{padding:9px 10px;font-size:12px;line-height:1.35}
.advanced-stats-dialog #volunteerStats tbody tr:hover td{background:#f8fafc}

.assignment-suggestions-panel,
.event-link-suggestions-panel{
  margin:0 0 14px;
  border:1px solid #ccd7e7;
  border-radius:14px;
  background:#f8fafd;
  overflow:hidden;
}
.assignment-suggestions-panel>summary,
.event-link-suggestions-panel>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  list-style:none;
  cursor:pointer;
}
.assignment-suggestions-panel>summary::-webkit-details-marker,
.event-link-suggestions-panel>summary::-webkit-details-marker{display:none}
.assignment-suggestions-panel>summary>span:first-child,
.event-link-suggestions-panel>summary>span:first-child{display:grid;gap:2px;min-width:0}
.assignment-suggestions-panel>summary strong,
.event-link-suggestions-panel>summary strong{font-size:13px}
.assignment-suggestions-panel>summary small,
.event-link-suggestions-panel>summary small{margin:0!important;font-size:11px}
.details-chevron{color:var(--muted);font-size:17px;transition:transform .16s ease}
.assignment-suggestions-panel[open] .details-chevron,
.event-link-suggestions-panel[open] .details-chevron{transform:rotate(180deg)}
.assignment-suggestions-workspace,
.event-link-suggestions-workspace{
  padding:12px 14px 14px;
  border-top:1px solid var(--line);
  background:#fff;
}
.assignment-suggestion-toolbar{
  display:grid;
  grid-template-columns:minmax(160px,1fr) minmax(180px,1fr) auto;
  align-items:end;
  gap:8px;
}
.assignment-suggestion-toolbar label,
.event-link-suggestion-toolbar label{display:grid;gap:5px;margin:0!important}
.assignment-suggestion-toolbar label>span,
.event-link-suggestion-toolbar label>span{color:var(--muted);font-size:11px;font-weight:750}
.assignment-suggestion-principles{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin:10px 0;
}
.assignment-suggestion-principles>div{
  display:grid;
  gap:2px;
  padding:9px 10px;
  border-radius:10px;
  background:#f5f7fa;
}
.assignment-suggestion-principles strong{font-size:11px}
.assignment-suggestion-principles span{color:var(--muted);font-size:10px;line-height:1.4}
.assignment-suggestion-table-heading,
.assignment-suggestion-row{
  display:grid;
  grid-template-columns:minmax(170px,1.25fr) minmax(105px,.72fr) minmax(105px,.72fr) minmax(105px,.72fr) minmax(145px,1fr) auto;
  align-items:center;
  gap:8px;
}
.assignment-suggestion-table-heading{
  padding:0 9px 5px;
  color:var(--muted);
  font-size:9px;
  font-weight:900;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.assignment-suggestion-list{display:grid;gap:6px}
.assignment-suggestion-row{
  padding:9px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
  font-size:11px;
}
.assignment-suggestion-row.is-recommended{border-color:#aebfda;background:#f7faff}
.assignment-suggestion-candidate{display:grid;gap:2px;min-width:0}
.assignment-suggestion-candidate strong{overflow:hidden;font-size:12px}
.assignment-suggestion-candidate span,
.assignment-suggestion-cell small{color:var(--muted);font-size:10px}
.assignment-suggestion-cell{display:grid;gap:2px;min-width:0}
.assignment-suggestion-checks{display:flex;gap:4px;flex-wrap:wrap}
.assignment-check{
  display:inline-flex;
  padding:4px 6px;
  border-radius:999px;
  background:#eef2f7;
  color:#4b5e78;
  font-size:9px;
  font-weight:850;
}
.assignment-check.warning{background:var(--warning-soft);color:var(--warning)}
.assignment-suggestion-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:9px;
  padding-top:9px;
  border-top:1px solid var(--line);
}
.assignment-suggestion-footer small{max-width:560px;margin:0!important;text-align:right}

#eventDetailSignups tr.assignment-highlighted-signup td{
  background:#fff7d9;
  box-shadow:inset 0 2px 0 #d7a72d,inset 0 -2px 0 #d7a72d;
}
#eventDetailSignups tr.assignment-highlighted-signup td:first-child{box-shadow:inset 2px 0 0 #d7a72d,inset 0 2px 0 #d7a72d,inset 0 -2px 0 #d7a72d}
#eventDetailSignups tr.assignment-highlighted-signup td:last-child{box-shadow:inset -2px 0 0 #d7a72d,inset 0 2px 0 #d7a72d,inset 0 -2px 0 #d7a72d}
#eventDetailSignups tr.assignment-highlighted-signup:focus{outline:3px solid rgba(38,91,150,.35);outline-offset:2px}

.event-link-suggestions-access-hint{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:8px 0;
  padding:10px 12px;
  border:1px solid #d6deea;
  border-radius:12px;
  background:#f7f9fc;
  color:#40536d;
}
.event-link-suggestions-access-hint>div{display:grid;gap:2px;min-width:0}
.event-link-suggestions-access-hint strong{font-size:12px;color:#263a55}
.event-link-suggestions-access-hint span{font-size:10px;line-height:1.45}
.event-link-suggestions-access-hint .btn{flex:0 0 auto}
.event-link-suggestion-gate{
  padding:10px 11px;
  border:1px solid #e6c77b;
  border-radius:10px;
  background:#fff9e9;
  color:#6b4b00;
  font-size:11px;
  font-weight:750;
  line-height:1.45;
}

@media(max-width:1050px){
  .advanced-stats-filter-panel{align-items:stretch;flex-direction:column}
  .advanced-stats-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .advanced-stats-filter-actions{justify-content:flex-end;margin-left:0}
}
@media(max-width:780px){
  .advanced-stats-filter-grid{grid-template-columns:1fr 1fr}
  .advanced-stats-kpis{grid-template-columns:1fr 1fr}
  .assignment-suggestion-principles{grid-template-columns:1fr}
  .assignment-suggestion-table-heading{display:none}
  .assignment-suggestion-row{grid-template-columns:1fr 1fr}
  .assignment-suggestion-row>.btn{justify-self:start}
    }
@media(max-width:560px){
  .admin-filter-result-summary{justify-content:flex-start;margin-top:-3px}
  .advanced-stats-filter-grid,
  .advanced-stats-kpis,
  .assignment-suggestion-toolbar,
  .assignment-suggestion-row,
    .advanced-stats-filter-actions{display:grid;grid-template-columns:1fr;width:100%}
  .advanced-stats-resultbar,.assignment-suggestion-footer,.event-link-suggestion-actions{align-items:flex-start;flex-direction:column}
  .assignment-suggestion-footer small{text-align:left}
  .assignment-suggestion-row>.btn,.event-link-suggestion-actions .btn{width:100%}
}
#volunteerView .volunteer-filter-reset{
  min-height:32px;
  height:32px;
  padding:4px 12px;
  align-self:center;
  white-space:nowrap;
}

.dialog-header-with-action{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-right:44px}
.dialog-header-with-action>div{min-width:0}
.dialog-header-with-action .btn{flex:0 0 auto;white-space:nowrap}

.event-info-manual-heading{
  display:grid;
  grid-template-columns:26px minmax(0,1fr);
  align-items:start;
  gap:9px;
  margin:11px 2px 8px;
}
.event-info-manual-heading>div{display:grid;gap:2px}
.event-info-manual-heading>div:only-child{grid-column:1/-1}
.event-info-manual-heading strong{font-size:13px}
.event-info-manual-heading small{margin:0!important;color:var(--muted);font-size:11px;line-height:1.4}

.event-overview-signups{margin:2px 0 18px}
.event-detail-header-actions{min-width:150px}
.workspace-tabs #eventInternalNoteBtn.has-content{
  border-color:#8eadd7;
  background:#f4f8fd;
  color:#244f82;
}
.event-inline-note-form{display:grid;gap:12px;padding:18px;background:#fafbfd}
.event-inline-note-form .section-heading{margin:0}
.event-inline-note-form textarea{box-sizing:border-box;min-height:170px;resize:vertical;background:#fff}
.event-inline-note-form .dialog-actions{margin-top:0}
.event-internal-note-help{margin:8px 0 0;color:var(--muted);font-size:12px}
.event-pause-marker{
  display:inline;
  margin-top:4px;
  padding:0;
  background:transparent;
  color:var(--muted);
  font-size:11px;
  font-weight:650;
}
.volunteer-pause-briefing,.volunteer-card-pause{display:flex;align-items:baseline;gap:5px;margin:0;color:var(--muted);font-size:12px;line-height:1.4}
.volunteer-pause-briefing strong,.volunteer-card-pause strong{color:var(--text);font-weight:750}
.volunteer-admission-info{
  display:grid;
  gap:8px;
  box-sizing:border-box;
  min-height:84px;
  align-content:start;
  margin:0;
  padding:12px 10px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-2);
}
.volunteer-admission-info-title{font-size:13px;font-weight:800}
.volunteer-admission-info p{
  margin:0;
  padding:0;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.volunteer-briefing-unavailable{margin:0 0 10px;font-size:12px}

body.portal-password-change-required>.topbar,
body.portal-password-change-required>main,
body.portal-password-change-required>.connection-status-banner{visibility:hidden}

.register-data-menu{
  margin:9px 0 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafbfd;
  overflow:hidden;
}
.register-data-menu>summary{padding:9px 12px;cursor:pointer;color:#42536b;font-size:12px;font-weight:850;list-style-position:inside}
.register-data-actions{
  display:grid;
  grid-template-columns:minmax(190px,1fr) auto auto;
  align-items:center;
  gap:8px;
  padding:11px 12px;
  border-top:1px solid var(--line);
  background:#fff;
}
.register-data-actions>div{display:grid;gap:2px;min-width:0}
.register-data-actions strong{font-size:12px}
.register-data-actions span{color:var(--muted);font-size:10px;line-height:1.4}
.register-data-actions .btn{white-space:nowrap}

.pilot-contingency-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:20px;
  align-items:center;
  margin:18px 0;
  padding:20px;
  border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));
  border-radius:16px;
  background:color-mix(in srgb,var(--accent) 5%,var(--surface));
}
.pilot-contingency-card h4{margin:4px 0 6px;font-size:1.05rem}
.pilot-contingency-card p{margin:0 0 8px;max-width:72ch}
.pilot-contingency-card #operationalReportExportStatus{display:grid;gap:3px;line-height:1.4}
.pilot-contingency-card #operationalReportExportStatus strong{color:var(--text);font-size:12px}
.pilot-contingency-card #operationalReportExportStatus span{font-size:11px}
.pilot-contingency-card #operationalReportExportStatus.due strong{color:#8a4d0f}
.pilot-contingency-card #operationalReportExportStatus.error{color:var(--danger)}
.pilot-contingency-actions{justify-content:flex-end}
@media(max-width:760px){
  .pilot-contingency-card{grid-template-columns:1fr}
  .pilot-contingency-actions{justify-content:stretch}
  .pilot-contingency-actions .btn{flex:1 1 100%}
}
@media(max-width:780px){
  #volunteerView .toolbar{grid-template-columns:1fr 1fr}
  #volunteerView #eventSearch{grid-column:1/-1}
  .dialog-header-with-action{display:grid;padding-right:42px}
  .dialog-header-with-action .btn{justify-self:start}
  .register-data-actions{grid-template-columns:1fr 1fr}
  .register-data-actions>div{grid-column:1/-1}
}
@media(max-width:560px){
  #volunteerView .toolbar{grid-template-columns:1fr}
  #volunteerView #eventSearch{grid-column:auto}
  #volunteerView .volunteer-filter-reset{width:100%}
  .register-data-actions{grid-template-columns:1fr}
  .register-data-actions>div{grid-column:auto}
  .register-data-actions .btn{width:100%}
}

/* v7.10 – samlet tildelingsflyt og tydelig historisk status */
.admin-events-workspace .admin-filterbar{
  grid-template-columns:minmax(230px,1.45fr) repeat(2,minmax(155px,.72fr)) auto;
  align-items:stretch;
}
.admin-search-field{position:relative;min-width:0}
.admin-search-field #adminSearch{width:100%;height:100%;padding-right:94px}
.admin-search-shortcut{
  position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;
  padding:2px 5px;border:1px solid #c8d4e3;border-radius:5px;background:#f7f9fc;
  color:#617187;font-family:inherit;font-size:10px;font-weight:750;line-height:1.2
}
.admin-search-scope-toggle{
  position:absolute;right:44px;top:50%;z-index:1;
  display:flex;align-items:center;justify-content:center;width:28px;height:32px;
  margin:0;transform:translateY(-50%);cursor:pointer;
}
.admin-search-scope-toggle input{width:16px;height:16px;margin:0;accent-color:#315f95}
.admin-search-scope-toggle:has(input:focus-visible){outline:3px solid rgba(49,95,149,.2);outline-offset:3px;border-radius:4px}
/* «Nullstill filter» når et filter er på: samme blå på alle seks (eierens ønske 20.09.2026), så den synes. Én definisjon. */
.admin-filter-reset,
.filter-reset-btn:not(:disabled){
  color:#163d6b;
  background:#e7eef8;
  border-color:#7190ba;
  font-weight:850;
}
.admin-filter-reset:hover,
.filter-reset-btn:not(:disabled):hover{background:#dce8f6;border-color:#315f95}
.admin-filter-reset{min-height:42px;padding-inline:14px;white-space:nowrap}
/* «Vis alle …» under en filtrert liste (eierens ønske 20.09.2026: «vil ha tilbake overalt»): samme rad under alle lister. */
.filter-reset-row{
  display:grid;grid-template-columns:28px auto 1fr;align-items:center;gap:10px;
  width:100%;margin-top:10px;padding:13px 16px;border:1px dashed #8fa7c7;border-radius:12px;flex:0 0 auto;
  background:#f5f8fc;color:#163d6b;font:inherit;text-align:left;cursor:pointer
}
.filter-reset-row:hover{border-color:#315f95;background:#eef4fc}
.filter-reset-row>span{font-size:20px;font-weight:900}
.filter-reset-row>strong{font-size:14px}
.filter-reset-row>small{justify-self:end;color:var(--muted);font-size:12px;font-weight:750}
/* «Nullstill filter»: én fast plass (sist i filterraden), ett utseende. Grå - ikke borte - når ingen filtre er på. */
.filter-reset-btn{white-space:nowrap;align-self:stretch;min-height:36px}
.filter-reset-btn:disabled{opacity:.5;cursor:default;filter:none}
/* På telefon tar en grå knapp plass uten å hjelpe; der vises den først når et filter er på. */
@media(max-width:600px){.filter-reset-btn:disabled{display:none}}
.admin-volunteer-search-results{
  display:grid;
  gap:10px;
  margin:0 0 14px;
  padding:14px;
  border:1px solid #b9cbe3;
  border-radius:15px;
  background:#f4f8fd;
}
.admin-volunteer-search-heading{display:flex;align-items:end;justify-content:space-between;gap:16px}
.admin-volunteer-search-heading>div{display:grid;gap:3px}
.admin-volunteer-search-heading>div>strong{font-size:16px}
.admin-volunteer-search-heading>small,.admin-volunteer-search-more{color:var(--muted)}
.admin-volunteer-search-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.admin-volunteer-search-hit{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
.admin-volunteer-search-name{cursor:pointer}
.admin-volunteer-search-name:hover,.admin-volunteer-search-hit:focus-visible .admin-volunteer-search-name{text-decoration:underline}
.admin-volunteer-search-hit:hover,.admin-volunteer-search-hit:focus-visible{border-color:#315f95;box-shadow:0 0 0 3px rgba(49,95,149,.1)}
.admin-volunteer-search-hit.is-selected{border-color:#25599f;background:#edf3fc;box-shadow:inset 4px 0 0 #25599f}
.admin-volunteer-search-hit>span:first-child{display:grid;gap:2px;min-width:0}
.admin-volunteer-search-hit strong,.admin-volunteer-search-hit small{overflow:hidden}
.admin-volunteer-search-hit small{text-overflow:ellipsis;white-space:nowrap}
.admin-volunteer-search-hit small{color:var(--muted)}

.register-data-menu-bottom{
  flex:0 0 auto;
  margin:10px 0 0;
}

.pilot-contingency-card{grid-template-columns:minmax(250px,.72fr) minmax(560px,1.28fr);align-items:stretch}
.pilot-contingency-actions{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  align-items:stretch;
}
.pilot-download-option{
  display:flex;
  flex-direction:column;
  gap:9px;
  min-width:0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.pilot-download-option-primary{border-color:#9fb9d9;background:#f5f9fe}
.pilot-download-option>div{display:grid;gap:3px;min-width:0}
.pilot-download-option strong{font-size:11px}
.pilot-download-option span{color:var(--muted);font-size:10px;line-height:1.4}
.pilot-download-option .btn{width:100%;margin-top:auto;white-space:normal}
#portalContingencyCopyStatus:not(:empty){padding-top:2px;color:#31557f;font-weight:750}
.download-confirmation-inline{display:grid;gap:8px;padding:9px 10px;border:1px solid #b9cae1;border-radius:10px;background:#fff}
.download-confirmation-inline>span{color:#31557f!important;font-size:10px!important;line-height:1.45}
.download-confirmation-actions{display:flex;gap:7px;flex-wrap:wrap}
.download-confirmation-actions .btn{width:auto;margin:0;min-height:30px;padding:5px 9px;font-size:10px}

.event-label-choices{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  margin:10px 0 2px;
}
.event-label-choice{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:46px;
  margin:0;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  cursor:pointer;
  font-weight:750;
}
.event-label-choice:hover{border-color:#aebfd5;background:#f8fafd}
.event-label-choice.is-selected{border-color:#7f9fc9;background:#f1f6fc;box-shadow:inset 3px 0 0 var(--accent)}
.event-label-choice input[type="checkbox"]{
  width:21px;
  height:21px;
  min-width:21px;
  margin:0;
  accent-color:var(--accent);
  cursor:pointer;
}
.event-label-source-choice{grid-column:1/-1;background:#f8fafc}
.bulk-event-label-row{cursor:pointer}
.bulk-event-label-row:focus-visible{outline:3px solid rgba(46,95,154,.28);outline-offset:2px}
.bulk-event-label-row .bulk-event-check,
#bulkSelectAllFiltered{
  width:21px!important;
  height:21px!important;
  min-width:21px;
  margin:0;
  accent-color:var(--accent);
  cursor:pointer;
}
.bulk-event-label-row[aria-checked="true"]{border-color:#88a8cf;background:#f3f7fc}
.bulk-event-label-badges{display:flex;gap:5px;flex-wrap:wrap}

.event-assignment-incoming{margin:0 0 12px}
.event-assignment-incoming .section-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

.event-assignment-workspace{margin-top:16px}
.event-assignment-workspace>.event-assignment-incoming{margin-bottom:0;padding-bottom:10px;border-bottom:1px solid var(--line)}
.event-workspace-dialog #eventDetailSignups{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.event-assignment-heading{margin-top:12px}
.event-assignment-heading,
.event-assignment-heading>div,
#eventStaffingContent,
.staffing-role-block,
.staffing-role-heading,
.staffing-role-heading>div,
.staffing-person-row{text-align:left}
.event-assignment-heading{align-items:flex-end;justify-content:space-between}
.event-assignment-heading{align-items:flex-start}
.event-workspace-dialog .section-heading{align-items:center;margin-bottom:8px}
.event-workspace-dialog .section-heading>div{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.event-workspace-dialog .section-heading .eyebrow{font-size:10.5px;letter-spacing:.06em;line-height:1.2}
.event-workspace-dialog .section-heading .eyebrow::after{content:"\b7";margin-left:8px;color:var(--muted)}
.event-workspace-dialog .section-heading h3{margin:0;font-size:14px;font-weight:800;line-height:1.2}
.event-workspace-dialog .section-heading p{display:none;flex-basis:100%;margin:0;font-size:12px}
.event-workspace-dialog .section-heading p.is-visible{display:block}
.event-workspace-dialog .inline-empty{margin-left:auto;color:var(--muted);font-size:12.5px;white-space:nowrap}
.event-assignment-heading #addVolunteerToEventBtn{width:auto;min-height:34px;padding:6px 10px;font-size:12px}
.event-assignment-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.event-assignment-actions .btn{width:auto;min-height:34px;padding:6px 10px;font-size:12px}
.staffing-role-heading{justify-content:flex-start}
.staffing-role-heading>div{justify-content:flex-start}
.staffing-person-row .detail-volunteer-link{text-align:left;justify-self:start}
.event-assignment-workspace .staffing-role-heading strong,
.event-assignment-workspace .staffing-person-row,
.event-assignment-workspace .staffing-person-row .detail-volunteer-link,
.event-assignment-workspace .staffing-person-row .inline-select,
.event-assignment-workspace .staffing-person-row .btn{font-size:13px}
.event-assignment-workspace .staffing-person-row .inline-select{min-height:34px;padding-top:5px;padding-bottom:5px}

.assignment-fairness-tools{display:grid;gap:8px;margin-top:10px}
.assignment-fairness-tools .assignment-suggestions-panel{margin:0}
.assignment-recommendation{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,260px) auto;align-items:end;gap:10px;padding:11px;border:1px solid #a9c7b6;border-radius:11px;background:#f2faf5}
.assignment-recommendation-copy{display:grid;gap:2px;min-width:0}
.assignment-recommendation-copy>strong{font-size:14px}
.assignment-recommendation-copy>small{color:var(--muted);font-size:11px}
.assignment-recommendation-choice{display:grid;gap:4px}
.assignment-recommendation-choice>span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.assignment-recommendation-choice select{min-height:36px}
.assignment-recommendation .btn{min-height:36px;white-space:nowrap}
.reserve-count-btn{display:grid;gap:1px;min-width:76px;padding:7px 9px;border:1px solid #c7d5ea;border-radius:10px;background:#edf3fc;color:#244f8f;text-align:left;cursor:pointer}
.reserve-count-btn strong{font-size:15px;line-height:1}
.reserve-count-btn span{font-size:10px;font-weight:750;white-space:nowrap}
.reserve-count-btn:hover{background:#e2ecfa;border-color:#9fb8dc}

/* v7.10.0-r40-hotfix107 – tydelig, administrerbar ventelistekø */
.waitlist-help-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;margin-bottom:10px;border:1px solid #c7d5ea;border-radius:11px;background:#f5f8fc}
.waitlist-help-bar>div{display:grid;gap:2px;min-width:0}
.waitlist-help-bar strong{font-size:13px;color:var(--text)}
.waitlist-help-bar span{font-size:12px;color:var(--muted);line-height:1.35}
.staffing-person-identity{display:flex;align-items:center;gap:9px;min-width:0}
.staffing-person-identity .detail-volunteer-link{min-width:0;text-align:left}
.waitlist-rank{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#25599f;color:#fff;font-size:12px;font-weight:850}
.waitlist-person-row{background:#f8faff;margin:0 -6px;padding-left:6px;padding-right:6px;border-radius:8px}
.waitlist-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px}
.waitlist-move-btn{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;font-weight:850;cursor:pointer}
.waitlist-move-btn:hover:not(:disabled){border-color:#92acd1;background:#edf3fc}
.waitlist-move-btn:disabled{opacity:.35;cursor:not-allowed}
@media(max-width:760px){
  .waitlist-help-bar{align-items:flex-start;flex-direction:column}
  .waitlist-person-row .staffing-person-identity{grid-column:1/-1}
  .waitlist-person-row .detail-role-select,
  .waitlist-person-row .waitlist-row-actions,
  .waitlist-person-row .detail-remove-assignment{grid-column:1/-1;width:100%}
  .waitlist-row-actions{justify-content:flex-start}
  .waitlist-row-actions .waitlist-assign-btn{margin-left:auto}
}
@media(max-width:760px){.assignment-recommendation{grid-template-columns:1fr}.assignment-recommendation .btn{width:100%}}

/* v7.10.0-r40-hotfix108 – kompakt arbeidsvindu for ventelisten */
.waitlist-workspace-dialog{width:min(1120px,calc(100vw - 28px))}
.waitlist-workspace-dialog .dialog-card{max-height:min(88vh,920px)}
.waitlist-workspace-header{padding-right:74px}
.waitlist-workspace-navigation{display:flex;align-items:center;justify-content:flex-end;gap:8px;white-space:nowrap}
.waitlist-workspace-intro{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0;padding:11px 13px;border:1px solid #c7d5ea;border-radius:11px;background:#f5f8fc}
.waitlist-workspace-intro>div{display:grid;gap:2px}
.waitlist-workspace-intro strong{font-size:13px}
.waitlist-workspace-intro span{color:var(--muted);font-size:11px;line-height:1.4}
.waitlist-workspace-content{display:grid;gap:12px}
.waitlist-workspace-role{overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.waitlist-workspace-role-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border-bottom:1px solid var(--line);background:#f7f9fc}
.waitlist-workspace-role-heading h3{margin:1px 0 0;font-size:15px}
.waitlist-workspace-list{display:grid}
.waitlist-workspace-row{display:grid;grid-template-columns:30px minmax(230px,1fr) minmax(120px,180px) auto;align-items:center;gap:10px;min-height:58px;padding:7px 11px;border-bottom:1px solid var(--line)}
.waitlist-workspace-row:last-child{border-bottom:0}
.waitlist-workspace-row:hover{background:#fafcff}
.waitlist-workspace-person{display:grid;gap:2px;min-width:0;padding:0;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.waitlist-workspace-person strong{overflow:hidden;font-size:13px;text-decoration:underline;text-underline-offset:2px}
.waitlist-workspace-person span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}
.waitlist-workspace-person.is-readonly{cursor:default}
.waitlist-workspace-person.is-readonly strong{text-decoration:none}
.waitlist-workspace-row .inline-select{min-height:34px;font-size:12px}
.waitlist-workspace-row .btn{min-height:34px}
@media(max-width:760px){
  .waitlist-workspace-header{padding-right:56px}
  .waitlist-workspace-header,.waitlist-workspace-intro{align-items:flex-start;flex-direction:column}
  .waitlist-workspace-navigation{justify-content:flex-start}
  .waitlist-workspace-row{grid-template-columns:30px minmax(0,1fr)}
  .waitlist-workspace-row .waitlist-workspace-role-select,.waitlist-workspace-row .waitlist-row-actions{grid-column:2;width:100%}
  .waitlist-workspace-row .waitlist-row-actions{justify-content:flex-start;flex-wrap:wrap}
}


.status-badge.historical{background:#e9edf2;color:#536174}
.staffing-summary.historical{background:#f4f6f8;border-color:#d4dbe4;color:#556377}
.staffing-summary.good{width:max-content;min-width:104px;padding:6px 9px;border:1px solid #a9d5b9;border-radius:9px;background:#edf9f1;color:#17643a}
.staffing-summary.good span{color:#2f7650}
.staffing-summary .staffing-ratio{font-weight:900}
.staffing-summary .staffing-ratio-low{color:#a44a46}
.staffing-summary .staffing-ratio-medium{color:#ea580c}
.staffing-summary .staffing-ratio-full{color:#17643a}

@media(max-width:900px){
  .bulk-event-needs-row{grid-template-columns:18px minmax(0,1fr);gap:8px 10px}
  .bulk-event-needs-row>.bulk-needs-current{grid-column:2!important}
}
.insight-view{padding:clamp(18px,3vw,42px)}
.insight-shell{max-width:1180px;margin:0 auto;padding:clamp(22px,4vw,48px);border:1px solid #cbd8e8;border-radius:22px;background:#f8fbff;box-shadow:0 14px 38px rgba(20,45,78,.08)}
.insight-topnav{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.insight-topnav-action{margin-left:auto}
.insight-back-link{display:inline-flex;align-items:center;gap:6px;margin:0;padding:6px 8px 6px 2px;border:0;background:none;color:var(--muted);font-size:12px;font-weight:800;cursor:pointer;border-radius:8px;transition:color .12s ease}
.insight-back-link:hover{color:var(--text);text-decoration:underline}
.insight-back-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.insight-header{display:flex;flex-direction:column;align-items:stretch;gap:16px;margin-bottom:22px}
.insight-header h1{margin:4px 0 8px}.insight-header p{margin:0;color:var(--muted)}
.insight-dashboard{display:block}
.insight-generated{text-align:right;margin:16px 2px 0}
.insight-header-actions{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap;padding-top:16px;border-top:1px solid var(--line)}.insight-header-actions label{display:flex;align-items:center;gap:8px}.insight-header-actions label>span{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.insight-header-actions select{min-width:158px;padding:9px 34px 9px 11px;font-size:11px}.insight-toolbar-sep{width:1px;align-self:stretch;margin:4px 3px;background:var(--line)}.insight-header-actions>.btn{min-width:140px}.insight-header-actions select,.insight-header-actions .btn,.insight-custom-period input[type=date]{height:38px;box-sizing:border-box}.insight-custom-period{display:flex;align-items:center;gap:6px}.insight-custom-period input[type=date]{padding:8px 9px;font-size:11px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text)}.insight-custom-period>span{color:var(--muted)}.insight-custom-period .btn{min-height:34px;padding:8px 12px;font-size:11px}.insight-executive-summary{display:grid;grid-template-columns:minmax(190px,.42fr) minmax(0,1fr);gap:22px;margin-bottom:14px;padding:19px 21px;border:1px solid #87a9d3;border-radius:16px;background:linear-gradient(135deg,#eaf3ff,#f9fcff)}.insight-executive-summary h2{margin:4px 0 0;font-size:20px}.insight-executive-summary ul{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px;margin:0;padding-left:18px}.insight-executive-summary li{font-size:11px;line-height:1.5}.insight-impact-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.insight-impact-grid>div{display:grid;gap:2px;padding:11px;border-radius:11px;background:#f4f7fb}.insight-impact-grid strong{font-size:25px;color:#234e7d}.insight-impact-grid span{font-size:10px;font-weight:850}.insight-impact-grid small{color:var(--muted);font-size:9px}.insight-distribution{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.insight-distribution>div{display:flex;align-items:center;justify-content:space-between;padding:10px;border-radius:10px;background:#f4f7fb;font-size:10px}.insight-distribution strong{font-size:17px;color:#234e7d}.insight-wide-panel{grid-column:1/-1}.insight-history-chart{display:grid;grid-template-columns:repeat(12,minmax(28px,1fr));align-items:end;gap:7px;height:170px;padding:8px 0 0}.insight-history-column{display:grid;grid-template-rows:1fr auto auto;align-items:end;gap:3px;height:100%;text-align:center}.insight-history-column>div{display:flex;align-items:flex-end;justify-content:center;height:100%;border-radius:8px 8px 3px 3px;background:#edf1f6}.insight-history-column i{display:block;width:62%;min-height:4px;border-radius:6px 6px 2px 2px;background:linear-gradient(#4f83c5,#25599f)}.insight-history-column strong{font-size:9px}.insight-history-column span{color:var(--muted);font-size:8px;text-transform:capitalize}.insight-recruitment-line{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:9px;line-height:1.55}
.admin-preview-example{border:2px dashed #5f7fa8;background:#f3f7fc}
.admin-preview-example{cursor:pointer}.admin-preview-example:hover{border-color:#25599f;background:#edf4fc}.admin-preview-instruction{margin:3px 0 0;color:#365d8d;font-size:11px;line-height:1.45;font-weight:750}
.insight-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.insight-kpi{display:grid;gap:5px;min-height:122px;padding:18px;border:1px solid #cad8e9;border-radius:16px;background:#fff}.insight-kpi span{color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.055em}.insight-kpi strong{font-size:36px;line-height:1;color:#234e7d}.insight-kpi small{align-self:end;color:var(--muted);font-size:11px;line-height:1.4}.insight-kpi.primary{border-color:#7fa4d4;background:linear-gradient(145deg,#edf5ff,#fff)}.insight-kpi.attention{border-color:#efb460;background:#fffaf0}.insight-kpi.attention strong{color:#b65309}.insight-kpi.good strong{color:#1d7c4a}.insight-leadership-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.insight-panel{min-width:0;padding:19px;border:1px solid #cad8e9;border-radius:16px;background:#fff}.insight-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}.insight-panel-heading h2{margin:3px 0 0;font-size:18px}.insight-panel-heading>strong{font-size:27px;color:#234e7d}.insight-progress{height:12px;margin-bottom:15px;overflow:hidden;border-radius:999px;background:#e6ebf2}.insight-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#25599f,#2b8c5b)}.insight-metric-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid #e2e8f0}.insight-metric-row span{color:var(--muted);font-size:11px;font-weight:750}.insight-metric-row strong{text-align:right;font-size:11px}.insight-month-chart{display:grid;gap:10px}.insight-month-row{display:grid;grid-template-columns:38px minmax(90px,1fr) 48px 42px;align-items:center;gap:8px;font-size:11px}.insight-month-row>span{font-weight:850;text-transform:capitalize}.insight-month-row>div{height:9px;overflow:hidden;border-radius:99px;background:#edf0f4}.insight-month-row i{display:block;height:100%;border-radius:inherit;background:#3f72b5}.insight-month-row strong{text-align:right}.insight-month-row small{color:var(--muted);text-align:right}.insight-ranking{display:grid}.insight-ranking-row{display:grid;grid-template-columns:minmax(0,1fr) 56px 76px;align-items:center;gap:10px;padding:9px 0;border-top:1px solid #e2e8f0;font-size:11px}.insight-ranking-row:first-child{border-top:0}.insight-ranking-row>span:first-child{display:grid;min-width:0}.insight-ranking-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.insight-ranking-row small{color:var(--muted)}.insight-ranking-row>span:nth-child(2){text-align:right;font-weight:850}.insight-ranking-row b{padding:5px 7px;border-radius:8px;background:#e8f6ee;color:#17643a;text-align:center;font-size:11px}.insight-ranking-row b.has-gap{background:#fff0dc;color:#a24d08}
.insight-sort-label{display:grid;gap:3px;min-width:128px}.insight-sort-label>span{color:var(--muted);font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.insight-sort-label select{padding:7px 30px 7px 9px;font-size:9px}
.insight-privacy-badge{padding:6px 9px;border-radius:999px;background:#e8f6ee;color:#17643a;font-size:9px;font-weight:850}.insight-top-five{display:grid;gap:7px}.insight-top-five>div{display:grid;grid-template-columns:32px minmax(0,1fr) 92px 62px;align-items:center;gap:10px;padding:9px 11px;border-radius:11px;background:#f4f7fb}.insight-top-five>div>b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#25599f;color:#fff}.insight-top-five>div>span{display:grid}.insight-top-five small{color:var(--muted);font-size:9px}.insight-top-five em,.insight-top-five>div>i{font-style:normal;font-weight:850;text-align:right}.insight-bar-list{display:grid;gap:9px}.insight-bar-list>div{display:grid;grid-template-columns:92px minmax(80px,1fr) 34px;align-items:center;gap:9px;font-size:10px}.insight-bar-list>div>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750}.insight-bar-list>div>i{height:9px;overflow:hidden;border-radius:99px;background:#edf0f4}.insight-bar-list>div>i>b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#25599f,#5593d0)}.insight-bar-list>div>strong{text-align:right}.insight-funnel{display:grid;grid-template-columns:1fr 1fr;gap:8px}.insight-funnel>div{display:grid;gap:2px;padding:12px;border-radius:11px;background:#f4f7fb}.insight-funnel strong{font-size:25px;color:#234e7d}.insight-funnel span{color:var(--muted);font-size:10px;font-weight:800}
/* Støttetekst i Innsikt skal forbli lesbar også i de tetteste visualiseringene. */
.insight-header-actions label>span,
.insight-impact-grid :is(span,small),
.insight-distribution>div,
.insight-history-column :is(strong,span),
.insight-recruitment-line,
.insight-sort-label>span,
.insight-sort-label select,
.insight-privacy-badge,
.insight-top-five small,
.insight-bar-list>div,
.insight-funnel span{font-size:11px}
.access-preview-banner{position:sticky;top:0;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px clamp(16px,3vw,34px);border-bottom:1px solid #bd8b22;background:#fff4d5;color:#51380a;box-shadow:0 5px 18px rgba(30,43,60,.12)}
.access-preview-banner.hidden{display:none}.access-preview-banner>div{display:flex;align-items:baseline;gap:12px;min-width:0}.access-preview-banner span{font-size:12px;line-height:1.4}.access-preview-dialog{width:min(720px,calc(100vw - 28px))}.access-preview-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.access-preview-option{display:grid;gap:4px;min-height:96px;padding:16px;border:1px solid #cbd7e6;border-radius:14px;background:#fff;color:var(--ink);text-align:left;cursor:pointer}.access-preview-option:hover,.access-preview-option:focus-visible{border-color:#25599f;background:#eef4fc;outline:0;box-shadow:0 0 0 3px rgba(37,89,159,.14)}.access-preview-option strong{font-size:15px}.access-preview-option span{color:var(--muted);font-size:12px;line-height:1.45}.access-preview-safety{margin:14px 0 0;padding:12px 14px;border-radius:11px;background:#f2f5f9;color:var(--muted);font-size:11px;line-height:1.5}.access-preview-active [data-advanced-toggle]{display:none!important}
@media(max-width:900px){.insight-kpi-grid{grid-template-columns:1fr 1fr}.insight-leadership-grid{grid-template-columns:1fr}}
@media(max-width:720px){.insight-header{align-items:stretch;flex-direction:column}.insight-header-actions{justify-content:flex-start}.insight-header-actions label{width:100%}.insight-header-actions label select{flex:1}.insight-toolbar-sep{display:none}.insight-executive-summary{grid-template-columns:1fr}.insight-executive-summary ul{grid-template-columns:1fr}}
@media(max-width:600px){.access-preview-banner,.access-preview-banner>div{align-items:stretch;flex-direction:column;gap:6px}.access-preview-banner .btn{width:100%}.access-preview-options{grid-template-columns:1fr}}
@media(max-width:480px){.insight-kpi-grid{grid-template-columns:1fr}}

/* Frivilligside: samlet oppdragsflyt.
   Neste oppdrag er hovedkortet; øvrige oppdrag bruker samme kompakte kortspråk. */
#volunteerView .volunteer-main-heading{
  margin-top:0;
  margin-bottom:7px;
}
#volunteerView .my-assignment-section{
  gap:5px;
  margin-bottom:10px!important;
}
#volunteerView .my-assignment-section-title{
  margin:0 0 2px!important;
}
#volunteerView .my-assignment-card-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
#volunteerView .my-assignment-card{
  box-sizing:border-box;
  min-width:0;
  min-height:132px;
  padding:10px 12px!important;
  align-items:stretch;
}
#volunteerView .my-assignment-card--next{
  justify-content:space-between;
  min-height:118px;
  border-color:#b9cfe7;
  background:linear-gradient(180deg,#fff 0%,#f9fbfe 100%);
  box-shadow:inset 4px 0 0 #5f8fbe,0 5px 16px rgba(46,95,154,.08);
}
#volunteerView .my-assignment-card--next .my-assignment-main{
  flex:1 1 auto;
}
#volunteerView .my-assignment-card-grid .my-assignment-card{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:1fr auto;
  gap:7px!important;
}
#volunteerView .my-assignment-main{
  width:100%;
  align-content:start;
}
#volunteerView .my-assignment-main:focus-visible{
  outline:3px solid rgba(36,75,143,.25);
  outline-offset:4px;
  border-radius:6px;
}
#volunteerView .my-assignment-main>strong{
  font-size:15px;
  line-height:1.22;
}
#volunteerView .my-assignment-actions{
  align-self:center;
  justify-content:flex-end;
  margin:0 0 0 auto!important;
}
#volunteerView .my-assignment-card--next .my-assignment-actions{
  flex:0 0 auto;
  justify-content:flex-end;
}
#volunteerView .my-assignment-card-grid .my-assignment-actions{
  width:100%;
}
#volunteerView .my-assignment-actions .btn{
  min-height:32px;
  padding:6px 9px;
  font-size:12px;
}
#volunteerView .my-assignment-history{
  margin-top:3px;
  padding:0;
}
#volunteerView .my-assignment-history summary{
  min-height:36px;
  padding:7px 2px;
}
#volunteerView .volunteer-events-heading{
  margin-top:18px;
  margin-bottom:6px!important;
  align-items:center;
}
#volunteerView .volunteer-view-actions{
  gap:7px;
}
#volunteerView .volunteer-view-actions .view-switch-btn{
  min-height:32px;
}
#volunteerView .toolbar{
  margin-top:8px;
  margin-bottom:10px;
}
#volunteerView .volunteer-filter-reset.hidden{
  display:none!important;
}
@media(max-width:760px){
  #volunteerView .my-assignment-card-grid{grid-template-columns:1fr}
  #volunteerView .my-assignment-card,
  #volunteerView .my-assignment-card--next{min-height:0}
  #volunteerView .my-assignment-card--next{display:grid}
  #volunteerView .my-assignment-card--next .my-assignment-actions{justify-content:flex-end}
}

@media print{
  @page attendance-report{size:A4 portrait;margin:14mm 13mm 17mm}
  @page insight-report{size:A4 portrait;margin:11mm 12mm}
  body.printing-attendance-report{margin:0!important;background:#fff!important;color:#172033!important;font-family:Inter,Arial,sans-serif!important;font-size:10.5pt!important;line-height:1.35!important}
  body.printing-attendance-report>*:not(#attendanceReportPrintSurface){display:none!important}
  body.printing-attendance-report #attendanceReportPrintSurface{display:block!important;page:attendance-report}
  .attendance-report-print-surface .report-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:12px;border-bottom:2px solid #315b91}
  .attendance-report-print-surface .brand{display:flex;align-items:center;gap:10px}.attendance-report-print-surface .brand img{width:42px;height:42px;object-fit:contain}.attendance-report-print-surface .brand strong{display:block;font-size:15pt}.attendance-report-print-surface .brand span{color:#62708a;font-size:9pt}
  .attendance-report-print-surface .report-title{text-align:right}.attendance-report-print-surface .report-title>span{color:#315b91;font-size:8pt;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.attendance-report-print-surface .report-title h1{margin:3px 0 2px;font-size:20pt}.attendance-report-print-surface .report-title p{margin:0;color:#62708a;text-transform:capitalize}
  .attendance-report-print-surface .summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 15px}.attendance-report-print-surface .summary div{padding:8px 10px;border:1px solid #d8e0eb;border-radius:8px;background:#f5f8fc}.attendance-report-print-surface .summary strong{display:block;color:#315b91;font-size:17pt;line-height:1}.attendance-report-print-surface .summary span{color:#62708a;font-size:8.5pt;font-weight:700}
  .attendance-report-print-surface main{display:block!important;width:auto!important;max-width:none!important;min-height:0!important;margin:0!important;padding:0!important}
  .attendance-report-print-surface .day+.day{margin-top:15px}.attendance-report-print-surface .day-lead{break-inside:avoid;page-break-inside:avoid}.attendance-report-print-surface .day>h2{margin:0 0 7px;padding:5px 8px;border-left:4px solid #315b91;background:#edf3fa;font-size:12pt;text-transform:capitalize;break-after:avoid;page-break-after:avoid}.attendance-report-print-surface .attendance-report-event{break-inside:avoid;page-break-inside:avoid;margin:0 0 8px;padding:9px 10px;border:1px solid #cfd8e5;border-radius:8px}.attendance-report-print-surface .attendance-report-event-heading{display:flex;justify-content:space-between;gap:12px}.attendance-report-print-surface .attendance-report-event-heading h3{margin:0;font-size:11.5pt}.attendance-report-print-surface .attendance-report-event-heading p{margin:1px 0 0;color:#62708a;font-size:8.5pt}.attendance-report-print-surface .attendance-report-event-heading>span{align-self:start;padding:3px 7px;border-radius:999px;background:#eaf6ef;color:#1f7a4d;font-size:9pt;font-weight:800;white-space:nowrap}
  .attendance-report-print-surface .attendance-report-event-meta{margin:6px 0;color:#43516a;font-size:8.5pt}.attendance-report-print-surface .attendance-report-event-meta b{padding:0 4px;color:#a7b1c1}.attendance-report-print-surface table{width:100%;border-collapse:collapse;margin-top:6px}.attendance-report-print-surface th,.attendance-report-print-surface td{padding:4px 6px;border-top:1px solid #e1e6ee;text-align:left}.attendance-report-print-surface th{color:#62708a;font-size:7.5pt;letter-spacing:.06em;text-transform:uppercase}.attendance-report-print-surface td:first-child{font-weight:700}.attendance-report-print-surface .no-roster{margin:7px 0 0;padding:6px 8px;border-radius:6px;background:#fff7e8;color:#8c5b00;font-size:8.5pt}.attendance-report-print-surface .empty{padding:24px;border:1px solid #d8e0eb;border-radius:8px;text-align:center}.attendance-report-print-surface .empty strong,.attendance-report-print-surface .empty span{display:block}.attendance-report-print-surface .empty span{margin-top:3px;color:#62708a}.attendance-report-print-surface .privacy{margin-top:18px;padding-top:4px;border-top:1px solid #d8e0eb;color:#6b778c;font-size:7.5pt}.attendance-report-print-surface .generated{margin-top:13px;color:#6b778c;font-size:8pt}
  body.printing-insight-report{background:#fff!important}
  /* Behold bakgrunnsfarger ved utskrift. Nettlesere (særlig Safari) dropper som
     standard bakgrunnsfyll for å spare blekk - da forsvant alle søyle-/framdrifts-
     grafer og fargede merker fra rapporten (bare tallene sto igjen). Denne regelen
     tvinger fargene med, uavhengig av «skriv ut bakgrunner»-valget i dialogen. */
  body.printing-insight-report,body.printing-insight-report *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.printing-insight-report>*:not(main),body.printing-insight-report main>.view:not(#insightView){display:none!important}
  body.printing-insight-report main{display:block!important}
  body.printing-insight-report #insightView{display:block!important;padding:0!important;page:insight-report}
  body.printing-insight-report .insight-shell{max-width:none!important;padding:0!important;border:0!important;box-shadow:none!important;background:#fff!important}
  body.printing-insight-report .insight-header-actions,body.printing-insight-report .insight-topnav,body.printing-insight-report .insight-sort-label,body.printing-insight-report #insightGeneratedAt{display:none!important}
  body.printing-insight-report .insight-header{margin-bottom:8px!important}
  body.printing-insight-report .insight-kpi-grid{grid-template-columns:repeat(4,1fr)!important}
  /* Alt innhold beholdes ved utskrift (eierens valg 12.09.2026: "vil ha med alt",
     "begrense antall sider ... bare det ikke blir kuttet på midten").
     VIKTIG - lærdom fra to bomskudd: Safari/WebKit sin utskriftsmotor respekterer
     page-break-inside:avoid PÅLITELIG kun på blokk-elementer i vanlig dokumentflyt.
     Den ignorerer det både på grid-elementer OG inne i spalte-/multi-column-layout
     (begge kuttet et panel midt over en sidegrense). Derfor legges panelene nå som
     enkle fullbredde-blokker under hverandre. Det gir noen flere sider, men er den
     ENESTE måten som garanterer at ingenting kuttes på midten - eierens krav. */
  body.printing-insight-report .insight-leadership-grid{display:block!important}
  /* Ingen kort, panel eller graf skal kuttes over en sidegrense (begge variantene
     for bred nettleserstøtte). */
  body.printing-insight-report .insight-panel,
  body.printing-insight-report .insight-kpi,
  body.printing-insight-report .insight-executive-summary{break-inside:avoid!important;page-break-inside:avoid!important;box-shadow:none!important}
  body.printing-insight-report .insight-panel{padding:8px 11px!important;display:block!important;width:100%!important;margin:0 0 8px!important}
  /* Topp 5 i to kolonner, og komprimert til samme skala som resten (kortene arver
     ellers stor panelskrift og blir uforholdsmessig store i utskriften). */
  body.printing-insight-report .insight-top-five{grid-template-columns:1fr 1fr!important;gap:5px 16px!important}
  body.printing-insight-report .insight-top-five>div{grid-template-columns:22px minmax(0,1fr) auto auto!important;gap:8px!important;padding:5px 8px!important}
  body.printing-insight-report .insight-top-five>div>b{width:19px!important;height:19px!important;font-size:9.5px!important}
  body.printing-insight-report .insight-top-five strong{font-size:10.5px!important}
  body.printing-insight-report .insight-top-five small{font-size:8px!important}
  body.printing-insight-report .insight-top-five em,body.printing-insight-report .insight-top-five>div>i{font-size:9.5px!important}
  body.printing-insight-report .insight-header h1{font-size:19px!important;margin:0 0 3px!important}
  body.printing-insight-report .insight-header p{font-size:10px!important}
  body.printing-insight-report .insight-kpi-grid{gap:8px!important;margin-bottom:9px!important}
  body.printing-insight-report .insight-kpi{min-height:0!important;padding:9px 11px!important;gap:2px!important}
  body.printing-insight-report .insight-kpi strong{font-size:23px!important}
  body.printing-insight-report .insight-kpi span{font-size:9px!important}
  body.printing-insight-report .insight-kpi small{font-size:8.5px!important;line-height:1.25!important}
  body.printing-insight-report .insight-executive-summary{gap:14px!important;margin-bottom:7px!important;padding:9px 12px!important}
  body.printing-insight-report .insight-executive-summary h2{font-size:15px!important}
  body.printing-insight-report .insight-executive-summary li{font-size:9.5px!important;line-height:1.35!important}
  body.printing-insight-report .insight-impact-grid{gap:6px!important}
  body.printing-insight-report .insight-impact-grid>div{padding:7px 9px!important}
  body.printing-insight-report .insight-impact-grid strong{font-size:16px!important}
  body.printing-insight-report .insight-panel-heading{margin-bottom:5px!important}
  body.printing-insight-report .insight-panel-heading h2{font-size:12.5px!important}
  body.printing-insight-report .insight-panel-heading>strong{font-size:17px!important}
  body.printing-insight-report .insight-progress{height:7px!important;margin-bottom:8px!important}
  body.printing-insight-report .insight-metric-row,
  body.printing-insight-report .insight-ranking-row{padding:2px 0!important;font-size:9.5px!important}
  body.printing-insight-report .insight-metric-row span,
  body.printing-insight-report .insight-metric-row strong,
  body.printing-insight-report .insight-ranking-row strong,
  body.printing-insight-report .insight-ranking-row b{font-size:9.5px!important}
  body.printing-insight-report .insight-ranking-row b{padding:2px 5px!important}
  body.printing-insight-report .insight-history-chart{height:66px!important;gap:4px!important}
  body.printing-insight-report .insight-month-chart{gap:4px!important}
  body.printing-insight-report .insight-month-row{font-size:9.5px!important}
  body.printing-insight-report .insight-recruitment-line{margin-top:6px!important;padding-top:6px!important;font-size:8.5px!important}
}
.attendance-report-print-surface{display:none}
#adminEvents .admin-event-row.is-fullbooked td{background:#f7faf8;color:#6f7c89}
#adminEvents .admin-event-row.is-fullbooked:hover td{background:#f1f7f3}
#adminEvents .admin-event-row.is-fullbooked .event-name-button{color:#536274}
#adminEvents .admin-event-row.is-fullbooked .staffing-summary.good{color:#17643a;background:#edf9f1;border-color:#91c8a5}
#adminEvents .admin-event-row.is-historical td{color:#667386;background:#fafbfc}

@media(max-width:900px){
  .admin-events-workspace .admin-filterbar{grid-template-columns:1fr 1fr}
  .admin-search-shortcut{display:none}
  .admin-search-scope-toggle{right:7px}
  .admin-search-field #adminSearch{padding-right:42px}
  .pilot-contingency-card{grid-template-columns:1fr}
}
@media(max-width:650px){
  .volunteer-event-time-grid{grid-template-columns:1fr 1fr}
  .volunteer-event-time-grid>.volunteer-event-fact:first-child,
  .volunteer-event-time-grid>.volunteer-event-fact:nth-child(2){grid-column:1/-1}
  .volunteer-event-assignment-grid{grid-template-columns:1fr}
  .admin-events-workspace .admin-filterbar{grid-template-columns:1fr}
  .admin-filter-reset{width:100%}
  .filter-reset-row{grid-template-columns:24px 1fr}
  .filter-reset-row>small{grid-column:2;justify-self:start}
  .admin-volunteer-search-list{grid-template-columns:1fr}
  .admin-volunteer-search-heading{align-items:start;flex-direction:column;gap:4px}
  .event-label-choices{grid-template-columns:1fr}
  .event-label-source-choice{grid-column:auto}
  .event-assignment-incoming .section-heading{align-items:stretch;flex-direction:column}
  .pilot-contingency-actions{grid-template-columns:1fr}
}

/* iOS Safari zoomer automatisk ved fokus når tekstfelt er mindre enn 16 px.
   Denne må ligge etter de eldre kompakt-reglene som bruker !important. */
@media(max-width:760px){
  #volunteerView #eventSearch{font-size:16px!important}
}
.settings-secondary-tool>.yesplan-status-tool-body{display:grid;gap:14px;align-items:stretch;margin-top:12px}
.yesplan-status-tool-intro{display:grid;gap:3px}.yesplan-status-tool-intro strong{font-size:15px}.yesplan-status-tool-intro p{font-size:14px;line-height:1.45}
.yesplan-status-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden}
.yesplan-status-choice{display:flex;align-items:center;gap:10px;min-height:46px;padding:9px 12px;background:#fff;font-size:14px;font-weight:700;line-height:1.3;cursor:pointer}
.yesplan-status-choice:nth-child(even){border-left:1px solid var(--line)}
.yesplan-status-choice:nth-child(n+3){border-top:1px solid var(--line)}
.yesplan-status-choice:has(input:checked){background:#f1f6fd;color:var(--accent)}
.yesplan-status-choice:focus-within{position:relative;z-index:1;box-shadow:inset 0 0 0 2px #77a2df}
.yesplan-status-choice input{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--accent)}
.yesplan-status-actions{display:flex;justify-content:flex-end;padding-top:2px}
.yesplan-status-actions .btn{min-width:0}
@media(max-width:680px){
  .yesplan-status-choices{grid-template-columns:1fr}
  .yesplan-status-choice:nth-child(even){border-left:0}
  .yesplan-status-choice:nth-child(n+2){border-top:1px solid var(--line)}
  .yesplan-status-actions .btn{width:100%}
}
.setting-toggle{display:flex!important;align-items:flex-start;gap:10px;cursor:pointer}
.setting-toggle input{width:20px;height:20px;margin-top:2px;flex:0 0 auto}
.setting-toggle>span{display:grid;gap:3px}.setting-toggle small{font-weight:500;color:var(--muted)}
.waitlist-default-field:has(#defaultWaitlistEnabled:not(:checked)) .number-with-suffix,.waitlist-default-field:has(#defaultWaitlistEnabled:not(:checked)) #defaultWaitlistLimitWrap{opacity:.5}
.event-waitlist-inline-editor{width:min(420px,calc(100vw - 36px));display:grid;gap:12px}
.event-waitlist-inline-editor label{display:grid;gap:6px}.event-waitlist-inline-editor select{width:100%}
/* Complete Yesplan catalogue: two actions plus searchable field list. */
.yesplan-field-toolbar{grid-template-columns:auto auto minmax(220px,1fr)}
/* Dagen i dag – operativ, vennlig koordinatoroversikt */
.admin-day-overview-dialog{width:min(1180px,calc(100vw - 30px));max-width:none}
.admin-day-overview-dialog .dialog-card{width:100%;max-width:100%;min-width:0;max-height:min(900px,calc(100dvh - 28px));overflow-x:hidden}
.admin-day-overview-header{padding-right:70px}
.admin-day-navigation{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin:4px 0 16px;padding:10px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}
.admin-day-load-error{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;margin:0 0 14px;padding:12px 14px;border:1px solid #d9a2a2;border-radius:14px;background:#fff5f4;color:#7d2929}
.admin-day-load-error>div{display:grid;gap:2px}
.admin-day-load-error span{font-size:13px;line-height:1.4}
.admin-day-current{display:flex;align-items:center;justify-content:center;gap:12px;text-align:center}
.admin-day-current strong{font-size:20px;text-transform:capitalize}
.admin-day-attention{display:grid;gap:9px;margin-bottom:10px;padding:13px;border:1px solid #e6bd65;border-radius:14px;background:#fff9ea}
.admin-day-attention.hidden{display:none}
.admin-day-attention.is-ready{border-color:#afd5bd;background:#f1faf5}
.admin-day-attention-heading{display:flex;align-items:baseline;gap:9px}.admin-day-attention-heading h3{margin:0;font-size:16px}
.admin-day-attention-list{display:grid;gap:6px}
.admin-day-attention-item{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px 10px;border:1px solid #e5c477;border-radius:10px;background:#fff;color:inherit;font:inherit;text-align:left;cursor:pointer}
.admin-day-attention-item:hover{border-color:#cb9940;background:#fffdf7}.admin-day-attention-item:focus-visible{outline:3px solid rgba(39,87,157,.24);outline-offset:2px}
.admin-day-attention-item.is-readonly{cursor:default}.admin-day-attention-item.is-readonly:hover{border-color:#e5c477;background:#fff}
.admin-day-attention-item.is-cancelled{border-color:#deb0ab;background:#fff5f4}.admin-day-attention-item.is-note{border-color:#b8cce9;background:#f4f8fd}
.admin-day-attention-symbol{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#f8e6bb;color:#835000;font-size:14px;font-weight:900}
.admin-day-attention-item.is-cancelled .admin-day-attention-symbol{background:#f7deda;color:#8a3732}.admin-day-attention-item.is-note .admin-day-attention-symbol{background:#e5eefb;color:#214f8b}
.admin-day-attention-item>span:nth-child(2){display:grid;gap:2px;min-width:0}.admin-day-attention-item strong{font-size:13px}.admin-day-attention-item small{overflow:hidden;color:var(--muted);font-size:11px;line-height:1.35}
.admin-day-attention-action{color:var(--accent);font-size:11px;font-weight:800}
.admin-day-ready{display:flex;align-items:center;gap:10px}.admin-day-ready>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#dff2e6;color:#17643a;font-weight:900}.admin-day-ready>div{display:grid;gap:2px}.admin-day-ready small{color:var(--muted)}
.admin-day-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;color:var(--muted);font-size:11px;font-weight:700}
.admin-day-summary.hidden{display:none}.admin-day-summary>span{padding:4px 8px;border:1px solid var(--line);border-radius:999px;background:#fff}.admin-day-summary strong{color:var(--text)}.admin-day-summary .needs-attention{border-color:#e6bd65;background:#fff9ea;color:#8c5100}
.admin-day-layout{display:grid;min-width:0;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:18px;align-items:start}
.admin-day-layout>section{min-width:0;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}
.admin-day-section-heading{margin-bottom:11px}.admin-day-section-heading h3{margin:2px 0 0;font-size:18px}
.admin-day-event-list,.admin-day-arrival-list{display:grid;gap:9px}
.admin-day-event-card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff}
.admin-day-event-open{display:grid;grid-template-columns:86px minmax(0,1fr) auto;align-items:center;gap:13px;width:100%;padding:13px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.admin-day-event-open:hover,.admin-day-arrival:hover,.admin-day-person:hover{background:#f7faff}
.admin-day-event-time{display:grid;gap:1px;padding-right:13px;border-right:1px solid var(--line)}
.admin-day-event-time strong{font-size:20px;color:var(--accent)}
.admin-day-event-time.is-unconfirmed strong{font-size:13px;line-height:1.2;color:var(--muted)}
.admin-day-event-time small,.admin-day-event-copy small{color:var(--muted)}
.admin-day-event-copy{display:grid;gap:3px;min-width:0}.admin-day-event-copy strong{font-size:15px}
.admin-day-arrival{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:10px;width:100%;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;color:inherit;text-align:left;cursor:pointer}
.admin-day-arrival time{font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}
.admin-day-arrival time.is-unconfirmed{font-size:11px;line-height:1.2;color:var(--muted)}
.admin-day-arrival span{display:grid;gap:2px;min-width:0}.admin-day-arrival strong{display:flex;align-items:center;min-width:0}.admin-day-arrival small{overflow:hidden;color:var(--muted)}
.admin-day-note-badge{display:inline-flex;align-items:center;margin-left:7px;padding:2px 5px;border:1px solid #b8cce9;border-radius:999px;background:#eaf2fc;color:#214f8b;font-size:9px;font-weight:850;line-height:1.2;white-space:nowrap}
.admin-day-host{border-color:#b8cce9;background:#f3f7fd;cursor:default}
.admin-day-host span em{font-size:10px;font-style:normal;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.admin-day-event-open.is-readonly,.admin-day-person.is-readonly,.admin-day-arrival.is-readonly{cursor:default}
.admin-day-event-open.is-readonly:hover,.admin-day-person.is-readonly:hover,.admin-day-arrival.is-readonly:hover{background:inherit}
.admin-day-empty{display:grid;gap:4px;padding:28px 16px}.admin-day-empty span{color:var(--muted)}
@media(max-width:780px){.admin-day-layout{grid-template-columns:1fr}.admin-day-event-open{grid-template-columns:72px minmax(0,1fr)}.admin-day-event-open>.status-badge{grid-column:1/-1;justify-self:start}.admin-day-navigation .btn{padding-left:10px;padding-right:10px}.admin-day-current strong{font-size:16px}}
@media(max-width:500px){.admin-day-overview-dialog .dialog-card{padding:16px 13px}.admin-day-navigation{gap:6px}.admin-day-navigation>#adminDayPreviousBtn,.admin-day-navigation>#adminDayNextBtn{font-size:0;min-width:44px;min-height:44px}.admin-day-navigation>#adminDayPreviousBtn::after{content:"←";font-size:18px}.admin-day-navigation>#adminDayNextBtn::after{content:"→";font-size:18px}.admin-day-current{display:grid;gap:5px}.admin-day-current .btn{justify-self:center}.admin-day-attention{padding:10px}.admin-day-attention-item{grid-template-columns:28px minmax(0,1fr);min-height:52px}.admin-day-attention-action{display:none}.admin-day-event-open{grid-template-columns:58px minmax(0,1fr);gap:9px;padding:10px}.admin-day-event-time{padding-right:9px}.admin-day-event-time strong{font-size:16px}.admin-day-arrival{grid-template-columns:52px minmax(0,1fr)}.admin-day-summary{gap:5px}}

/* Bemanningsrapport: samme oppmøtedata som Dagen i dag, samlet for utskrift. */
.attendance-report-dialog{width:min(1080px,calc(100vw - 30px));max-width:none}
.attendance-report-dialog .dialog-card{width:100%;max-width:none;max-height:min(900px,calc(100dvh - 28px));overflow:auto;overscroll-behavior:contain}
.attendance-report-header{padding-right:70px}
.attendance-report-controls{display:grid;grid-template-columns:auto minmax(170px,220px) auto;align-items:end;gap:12px;margin:4px 0 14px;padding:12px;border:1px solid var(--ui-border,var(--line));border-radius:14px;background:var(--ui-subtle,var(--surface-2))}
.attendance-report-period{display:grid;grid-template-columns:repeat(3,minmax(80px,1fr));align-self:end;overflow:hidden;border:1px solid var(--ui-border,var(--line));border-radius:10px;background:#eef2f7}
.attendance-report-period-btn{min-height:40px;padding:8px 13px;border:0;border-left:1px solid var(--ui-border,var(--line));background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.attendance-report-period-btn:first-child{border-left:0}
.attendance-report-period-btn.active{background:#fff;color:var(--accent);box-shadow:0 2px 7px rgba(18,35,61,.09)}
.attendance-report-period-btn:focus-visible{position:relative;z-index:1;outline:3px solid rgba(49,91,145,.22);outline-offset:-3px}
.attendance-report-date-field{display:grid;gap:5px;margin:0!important;color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.attendance-report-date-field input{min-height:40px;width:100%;padding:7px 10px!important;font-size:14px!important;text-transform:none}
.attendance-report-print-btn{min-height:40px;white-space:nowrap}
.attendance-report-print-btn:disabled{cursor:not-allowed;opacity:.46}
.attendance-report-print-btn[aria-busy="true"]{cursor:pointer}
.attendance-report-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:14px}
.attendance-report-summary>div{display:grid;gap:2px;padding:11px 13px;border:1px solid var(--ui-border,var(--line));border-radius:12px;background:#fff}
.attendance-report-summary strong{color:var(--accent);font-size:23px;line-height:1}
.attendance-report-summary span{color:var(--muted);font-size:11px;font-weight:750}
.attendance-report-preview{min-height:280px;padding:16px;border:1px solid var(--ui-border,var(--line));border-radius:16px;background:#f7f9fc}
.attendance-report-preview-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:13px;padding-bottom:11px;border-bottom:1px solid var(--ui-border,var(--line))}
.attendance-report-preview-heading h3{margin:2px 0 0;font-size:20px}
.attendance-report-preview-heading>span{color:var(--accent);font-size:12px;font-weight:800}
.attendance-report-preview-days{display:grid;gap:15px}
.attendance-report-preview-day>h4{margin:0 0 7px;padding:5px 8px;border-left:4px solid var(--accent);background:#eaf1fa;font-size:13px;text-transform:capitalize}
.attendance-report-event{margin:0 0 8px;padding:10px 11px;border:1px solid var(--ui-border,var(--line));border-radius:12px;background:#fff}
.attendance-report-event:last-child{margin-bottom:0}
.attendance-report-event-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.attendance-report-event-heading h3{margin:0;font-size:13px;font-weight:750;line-height:1.3}
.attendance-report-event-heading p{margin:2px 0 0;color:var(--muted);font-size:11px;font-weight:450;line-height:1.38}
.attendance-report-event-heading>span{flex:0 0 auto;padding:4px 8px;border-radius:999px;background:#eaf6ef;color:#1f7a4d;font-size:11px;font-weight:850}
.attendance-report-event-meta{margin:7px 0;color:#43516a;font-size:11px;font-weight:450;line-height:1.38}
.attendance-report-event-meta b{padding:0 4px;color:#a7b1c1}
.attendance-report-event table{width:100%;min-width:0;margin:0;border-collapse:collapse;background:#fff;table-layout:fixed}
.attendance-report-event th:first-child,.attendance-report-event td:first-child{width:58%}
.attendance-report-event th,.attendance-report-event td{padding:7px 8px;border-top:1px solid #e4e9f0;text-align:left}
.attendance-report-event th{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.attendance-report-event td{font-size:11px;font-weight:450;line-height:1.38}
.attendance-report-event td:first-child{font-size:13px;font-weight:750;line-height:1.3}
.attendance-report-event .no-roster{margin:7px 0 0;padding:7px 9px;border-radius:8px;background:#fff7e8;color:#8c5b00;font-size:11px}
.attendance-report-empty{display:grid;gap:3px;padding:38px 16px;text-align:center}
.attendance-report-empty span{color:var(--muted);font-size:12px}
.attendance-report-privacy{margin:12px 2px 0;color:var(--muted);font-size:11px;line-height:1.45}
@media(max-width:760px){
  .attendance-report-controls{grid-template-columns:1fr 1fr}
  .attendance-report-period{grid-column:1/-1}
  .attendance-report-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:560px){
  .attendance-report-dialog{width:calc(100vw - 14px)}
  .attendance-report-dialog .dialog-card{max-height:calc(100dvh - 14px);padding:18px 14px}
  .attendance-report-controls{grid-template-columns:1fr;padding:10px}
  .attendance-report-period{grid-column:auto;grid-template-columns:repeat(3,1fr)}
  .attendance-report-print-btn{width:100%}
  .attendance-report-summary{gap:6px}
  .attendance-report-summary>div{padding:9px 8px}
  .attendance-report-summary strong{font-size:20px}
  .attendance-report-summary span{font-size:10px}
  .attendance-report-preview{padding:11px}
  .attendance-report-preview-heading{display:grid;gap:4px}
  .attendance-report-event-heading>span{font-size:10px}
  .attendance-report-event-meta b{display:none}
  .attendance-report-event-meta strong:nth-of-type(2){margin-left:8px}
}

/* Faste arbeidsvinduer har separat rulleflate og trenger derfor headerens
   innvendige marg på selve headeren. Dette speiler standarddialogene uten at
   den klebrige handlingslinjen nederst påvirkes. */
dialog .volunteer-editor-card>.volunteer-editor-header,
dialog .assign-volunteer-card>.assign-volunteer-header{
  margin:0;
  padding:22px 58px 14px 22px;
}
@media(max-width:760px){
  dialog .volunteer-editor-card>.volunteer-editor-header,
  dialog .assign-volunteer-card>.assign-volunteer-header{
    padding:19px 54px 12px 16px;
  }
}

/* v7.10-r40 – autoritativt visuelt system
   Publisering fra Yesplan er referansen. Reglene under erstatter eldre
   komponentvarianter uten å endre funksjon, fokusrekkefølge eller datalogikk. */
:root{
  --ui-canvas:#f5f7fa;
  --ui-surface:#fff;
  --ui-subtle:#f7f9fc;
  --ui-selected:#eef4fc;
  --ui-border:#d8e0eb;
  --ui-border-strong:#c7d3e3;
  --ui-shadow:0 18px 48px rgba(18,35,61,.11);
  --ui-radius-xl:20px;
  --ui-radius-lg:15px;
  --ui-radius-md:11px;
  --ui-list-title-size:13px;
  --ui-list-title-weight:750;
  --ui-list-detail-size:11px;
  --ui-list-detail-weight:450;
  --ui-list-line-height:1.38;
  --ui-list-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ui-list-row-padding:8px 10px;
  --ui-list-row-spacing:5px;
  --ui-list-content-spacing:3px;
}

/* Skall og overskrifter */
dialog{border-color:rgba(22,32,51,.09);background:var(--ui-surface);box-shadow:0 28px 90px rgba(15,25,45,.28)}
dialog::backdrop{position:fixed;inset:0;min-width:100vw;min-height:100lvh;background:rgba(10,17,30,.48);backdrop-filter:blur(5px)}
html:has(dialog[open]){overflow:hidden}
dialog .dialog-card{background:var(--ui-surface)}
.dialog-standard-header,dialog .dialog-card>.workspace-header{
  margin:0 0 12px;
  padding:0 52px 12px 0;
  border-bottom:1px solid var(--ui-border);
}
.dialog-standard-header h2,dialog .workspace-header h2{margin:3px 0 2px;font-size:24px;line-height:1.16;letter-spacing:-.025em}
.dialog-standard-header p,dialog .workspace-header p{margin:3px 0 0;font-size:12px;line-height:1.45}
dialog .eyebrow{font-size:10px;letter-spacing:.14em}
.dialog-close{right:16px;top:14px;width:38px;height:38px;border-color:var(--ui-border);border-radius:12px;background:#f5f7fa;box-shadow:0 0 0 4px rgba(235,240,247,.72)}

/* Steg, seksjoner og paneler */
dialog :is(.bulk-label-step,.dialog-flow-section,.dialog-surface-section,.event-editor-section,.volunteer-editor-section,.settings-card,.needs-default-step){
  border-color:var(--ui-border);
  border-radius:var(--ui-radius-lg);
  background:var(--ui-subtle);
  box-shadow:none;
}
dialog :is(.bulk-label-step-heading,.dialog-flow-heading,.event-editor-section-heading,.volunteer-editor-section-heading,.needs-default-step-heading)>span,
dialog :is(.bulk-label-step-heading,.dialog-flow-heading,.event-editor-section-heading,.volunteer-editor-section-heading,.needs-default-step-heading)>.step-number{
  width:25px;height:25px;flex:0 0 25px;font-size:12px;
}
dialog :is(.bulk-label-step-heading,.dialog-flow-heading,.event-editor-section-heading,.volunteer-editor-section-heading,.needs-default-step-heading) strong{font-size:13px;line-height:1.3}
dialog :is(.bulk-label-step-heading,.dialog-flow-heading,.event-editor-section-heading,.volunteer-editor-section-heading,.needs-default-step-heading) small{margin:0;font-size:11px;line-height:1.35}

/* Kontroller og filterverktøy */
dialog :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea){border-color:var(--ui-border);border-radius:10px;background:#fff}
dialog :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select):focus,
dialog textarea:focus{border-color:#7e9fca;box-shadow:0 0 0 3px rgba(35,75,143,.11)}
dialog :is(.bulk-label-filterbar,.bulk-needs-filterbar,.publication-filterbar,.event-info-list-toolbar,.register-toolbar,.history-filterbar,.import-controls,.detail-toolbar,.advanced-stats-filter-panel){
  border-color:var(--ui-border);
  border-radius:12px;
  background:var(--ui-subtle);
  box-shadow:none;
}
dialog .bulk-select-all-row{border:0;border-radius:10px;background:#eaf1fa}
dialog input[type="checkbox"],dialog input[type="radio"]{accent-color:var(--accent)}

/* Gjenkjennelige listekort */
dialog :is(.publication-event-row,.bulk-event-label-row,.event-info-settings-row,.waitlist-overview-row,.admin-day-event-card,.admin-day-arrival,.volunteer-info-section,.profile-readonly-card){
  border-color:var(--ui-border);
  border-radius:12px;
  background:#fff;
  box-shadow:none;
}
dialog :is(.publication-event-row,.bulk-event-label-row,.event-info-settings-row):hover{border-color:var(--ui-border-strong);background:#fbfcfe}
dialog :is(.publication-event-row,.bulk-event-label-row):has(input:checked){border-color:#87a7d0;background:var(--ui-selected);box-shadow:inset 3px 0 0 var(--accent)}
dialog :is(.publication-event-main,.bulk-event-label-main)>strong{font-size:13px;line-height:1.3}
dialog :is(.publication-event-main,.bulk-event-label-main,.publication-event-state,.bulk-needs-current)>small{font-size:var(--ui-list-detail-size);font-weight:var(--ui-list-detail-weight);line-height:var(--ui-list-line-height)}
dialog .table-wrap{overflow:auto;border:1px solid var(--ui-border);border-radius:12px;background:#fff;box-shadow:none}
dialog table{border-collapse:collapse;background:#fff}
dialog th{padding:9px 11px;background:#f1f5fa;color:var(--muted);font-size:10px;letter-spacing:.07em;text-transform:uppercase}
dialog td{padding:10px 11px;border-top:1px solid #e4e9f0;font-size:12px}
dialog .empty,dialog .compact-empty{border-radius:12px;background:var(--ui-subtle);color:var(--muted)}
.event-workspace-dialog .empty,.event-workspace-dialog .compact-empty{padding:8px 0;background:transparent;text-align:left;font-size:13px}

/* Faner og knapper */
dialog :is(.workspace-tabs,.view-switch){border-color:var(--ui-border);background:#eef2f7;box-shadow:none}
dialog :is(.workspace-tab,.view-switch-btn).active{background:#fff;color:var(--text);box-shadow:0 2px 7px rgba(18,35,61,.08)}
dialog .btn{border-radius:10px;box-shadow:none}
dialog .btn-secondary{background:#edf1f6;color:var(--text)}
dialog .btn-secondary:hover{background:#e4eaf2}
dialog :is(.publication-action-step,.bulk-label-apply-step,.bulk-needs-action-step){border-color:var(--ui-border);background:#f3f7fc;box-shadow:none}
/* Samme overflate- og kortspråk utenfor dialogene */
:is(.panel,.event-card,.hero-card){border-color:var(--ui-border);border-radius:var(--ui-radius-lg);box-shadow:0 7px 22px rgba(18,35,61,.055)}
:is(.toolbar,.admin-filterbar,.volunteer-filters){border-color:var(--ui-border)}

/* Én typografisk kontrakt for alle lister:
   tittel er tydelig, mens alle beskrivende felt er normalvekt. */
:is(dialog,main) :is(
  .publication-event-main,.bulk-event-label-main,.event-info-settings-main,
  .waitlist-workspace-person,.admin-day-event-copy,.pending-card,
  .setting-main,.volunteer-pending-assignment-row,
  .staffing-person-main,.history-entry-main,.admin-volunteer-search-result
) :is(h3,h4,strong):first-child{
  font-size:var(--ui-list-title-size);
  font-weight:var(--ui-list-title-weight);
  line-height:1.3;
}
:is(dialog,main) :is(
  .publication-event-main,.bulk-event-label-main,.publication-event-state,
  .bulk-needs-current,.event-info-settings-main,.event-info-url-field,
  .waitlist-workspace-person,.admin-day-event-copy,.admin-day-event-time,
  .pending-card,.pending-signup-meta,.setting-main,
  .volunteer-pending-assignment-row,.staffing-person-main,.history-entry-main,
  .admin-volunteer-search-result,.my-assignment-main
) :is(small,.meta,.muted,p,span:not(.status-badge):not(.summary-chip):not(.eyebrow)){
  font-size:var(--ui-list-detail-size);
  font-weight:var(--ui-list-detail-weight);
  line-height:var(--ui-list-line-height);
}
dialog :is(.publication-event-row,.bulk-event-label-row,.event-info-settings-row,.waitlist-workspace-row) small,
dialog :is(.publication-event-row,.bulk-event-label-row,.event-info-settings-row,.waitlist-workspace-row) .muted{
  font-size:var(--ui-list-detail-size)!important;
  font-weight:var(--ui-list-detail-weight)!important;
  line-height:var(--ui-list-line-height)!important;
}
dialog :is(.publication-event-row,.bulk-event-label-row,.event-info-settings-row,.waitlist-workspace-row)>:is(span,div) strong{
  font-size:var(--ui-list-title-size);
  font-weight:var(--ui-list-title-weight);
  line-height:1.3;
}
:is(dialog,main) .table-wrap td{font-size:12px;font-weight:var(--ui-list-detail-weight);line-height:var(--ui-list-line-height)}
:is(dialog,main) .table-wrap td :is(strong,.event-name-button,.history-link,.detail-volunteer-link){font-size:12px;font-weight:var(--ui-list-title-weight)}
:is(dialog,main) :is(.meta,.usage-note,.status-note,.publication-status-note,.event-info-url-source){font-weight:var(--ui-list-detail-weight)}

/* Samme tetthet og skrifttype i alle arbeidslister.
   Publisering fra Yesplan er fasiten: 5 px mellom rader, 8/10 px i raden. */
:is(dialog,main) :is(
  .publication-event-list,.bulk-event-label-list,.event-info-settings-list,
  .settings-list,.admin-account-list,
  .waitlist-workspace-list,.admin-day-event-list,.admin-day-arrival-list
){
  gap:var(--ui-list-row-spacing);
  align-content:start;
  font-family:var(--ui-list-font);
}
:is(dialog,main) :is(
  .publication-event-row,.bulk-event-label-row,.event-info-settings-row,
  .admin-account-list-row
){
  margin:0;
  padding:var(--ui-list-row-padding);
  font-family:var(--ui-list-font);
}
:is(dialog,main) :is(
  .publication-event-main,.publication-event-state,.bulk-event-label-main,
  .bulk-needs-current,.event-info-settings-main,.event-info-url-field,
  .admin-account-list-row>div
){gap:var(--ui-list-content-spacing)}

@media(max-width:760px){
  .dialog-standard-header,dialog .dialog-card>.workspace-header{margin-bottom:10px;padding:0 44px 10px 0}
  .dialog-standard-header h2,dialog .workspace-header h2{font-size:22px}
  dialog :is(.publication-event-row,.bulk-event-label-row,.event-info-settings-row){border-radius:11px}
}

/* Dialogkontrakt v2 — siste, autoritative lag.
   «Interne arrangementstyper» er referansen: handlinger ligger i et eget,
   rolig panel i normal flyt. Ingen dialogfot skal henge utenfor kortet eller
   dekke innholdet med negative marger. */
dialog .dialog-card > .dialog-actions,
dialog .dialog-card > :is(.bulk-label-apply-step,.bulk-needs-action-step,.publication-action-step){
  position:sticky;
  inset:auto 0 0;
  z-index:12;
  flex:0 0 auto;
  margin:10px 0 0!important;
  padding:10px 12px max(10px,env(safe-area-inset-bottom))!important;
  border:1px solid var(--ui-border)!important;
  border-radius:14px;
  background:#f3f7fc!important;
  box-shadow:none!important;
}
dialog .dialog-card > .dialog-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
dialog .dialog-card > .dialog-actions.split-actions{justify-content:space-between}
dialog .dialog-card > .dialog-actions .right-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  margin-left:auto;
}
dialog .dialog-card > .dialog-actions .btn,
dialog .dialog-card > :is(.bulk-label-apply-step,.bulk-needs-action-step,.publication-action-step) .btn{min-height:38px}

/* «Logg ut» i profildialogen skal være en TYDELIG, bevisst handling - ikke en stor
   nøytral knapp i en fremtredende bar (som lå i kanten nederst på mobil), men heller
   ikke en blass lenke (det så unaturlig ut). En klar, rød-kantet «forlat»-knapp gjør
   at frivillige trykker med vilje, ikke ved et uhell (eierens ønske 11.09.2026). */
dialog .dialog-card > .profile-dialog-actions{
  position:static!important;
  justify-content:center;
  border:0!important;
  border-top:1px solid var(--line)!important;
  background:transparent!important;
  margin-top:10px!important;
  padding:14px 2px max(10px,env(safe-area-inset-bottom))!important;
  box-shadow:none!important;
}
dialog .dialog-card > .profile-dialog-actions .btn{
  min-height:auto!important;
  padding:8px 16px!important;
  font-size:12px!important;
  font-weight:750!important;
  color:#305a8d!important;
  background:transparent!important;
  border:1px solid #c3d3e6!important;
  box-shadow:none!important;
}
dialog .dialog-card > .profile-dialog-actions .btn:hover,
dialog .dialog-card > .profile-dialog-actions .btn:focus-visible{
  color:#234b8f!important;
  background:#eef4fb!important;
  border-color:#a9c1de!important;
  text-decoration:none;
}

/* Mobil (iOS-fiks 11.09.2026): på små skjermer er dialogen nesten fullskjerm, og
   en position:sticky fot «rømmer» på iOS Safari og skinner gjennom en overliggende
   dialog. Der lar vi foten flyte i normal flyt (position:static) - den nås ved å
   rulle til bunnen av dialogen, og den kan da ikke tegnes utenfor kortet. */
@media(max-width:650px){
  dialog .dialog-card > .dialog-actions,
  dialog .dialog-card > :is(.bulk-label-apply-step,.bulk-needs-action-step,.publication-action-step),
  dialog .volunteer-info-settings-actions,
  dialog .event-link-suggestion-actions,
  dialog #volunteerRegisterSummary{
    position:static;
  }
}

/* Masseverktøy bruker samme todelte bunnområde som typemassasje. */
.bulk-work-dialog :is(.bulk-label-apply-step,.bulk-needs-action-step){
  display:grid;
  grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);
  align-items:center;
  gap:8px 14px;
}
.bulk-work-dialog :is(.bulk-label-apply-step,.bulk-needs-action-step) .bulk-label-step-heading{margin:0}
.bulk-work-dialog :is(.bulk-label-toolbar,.bulk-needs-toolbar){
  display:grid;
  grid-template-columns:minmax(180px,1fr) auto auto auto;
  align-items:end;
  gap:8px;
}
.bulk-work-dialog .bulk-label-toolbar .btn:disabled{
  background:#e7ecf3;
  color:#718098;
  border-color:#e7ecf3;
  opacity:1;
  cursor:not-allowed;
}
.bulk-work-dialog .bulk-needs-safety{grid-column:2;margin:0}

/* Fanebaserte arbeidsvinduer beholder samme ytre mål. Bare fanens innhold
   ruller, slik at bytte av fane eller arrangement ikke flytter dialogen. */
@media(min-width:761px){
  :is(.event-workspace-dialog,.volunteer-workspace-dialog) .dialog-card{
    display:flex;
    flex-direction:column;
    height:min(88dvh,840px);
    max-height:min(88dvh,840px)!important;
    overflow:hidden!important;
  }
  :is(.event-workspace-dialog,.volunteer-workspace-dialog) :is(.workspace-header,.workspace-tabs){flex:0 0 auto}
  .event-workspace-dialog .event-workspace-tab:not(.hidden),
  .volunteer-workspace-dialog .workspace-content{
    flex:1 1 auto;
    min-height:0;
    overflow:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    padding-right:3px;
  }
}

@media(max-width:760px){
  dialog .dialog-card > .dialog-actions,
  dialog .dialog-card > :is(.bulk-label-apply-step,.bulk-needs-action-step,.publication-action-step){
    margin:10px 0 0!important;
    padding:10px!important;
  }
  dialog .dialog-card > .dialog-actions,
  dialog .dialog-card > .dialog-actions .right-actions{width:100%}
  .bulk-work-dialog :is(.bulk-label-apply-step,.bulk-needs-action-step),
  .bulk-work-dialog :is(.bulk-label-toolbar,.bulk-needs-toolbar){grid-template-columns:1fr}
  .bulk-work-dialog .bulk-needs-safety{grid-column:auto}
}

/* Praktisk informasjon har en kompakt, stabil dialogkontrakt. Denne ligger
   etter den globale dialogkontrakten med høyere komponentspesifisitet slik at
   én eller flere kontaktpersoner aldri flytter handlingene eller endrer
   vinduets ytre mål. */
dialog.volunteer-info-dialog .dialog-card{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) 50px;
  width:100%;
  max-width:none;
  height:min(88dvh,820px);
  max-height:min(88dvh,820px)!important;
  box-sizing:border-box;
  overflow:hidden!important;
}
dialog.volunteer-info-dialog .dialog-card > .volunteer-info-actions{
  position:static;
  inset:auto;
  height:50px;
  min-height:50px;
  max-height:50px;
  margin:0!important;
  padding:5px 8px!important;
  border-width:1px 0 0!important;
  border-radius:0;
  background:#f3f7fc!important;
}
@media(max-width:760px){
  dialog.volunteer-info-dialog .dialog-card{
    grid-template-rows:auto minmax(0,1fr) 50px;
    height:calc(100dvh - 14px);
    max-height:calc(100dvh - 14px)!important;
    padding:18px 14px 0!important;
  }
}

/* Admin-konto — én autoritativ komponent for standard og avansert visning. */
.admin-account-dialog{
  width:min(1020px,calc(100vw - 28px));
  max-width:none;
}
.admin-account-card{
  display:flex;
  flex-direction:column;
  width:100%;
  max-width:none;
  max-height:min(86dvh,780px)!important;
  box-sizing:border-box;
  overflow:hidden!important;
}
.admin-account-card>.dialog-standard-header,
.admin-account-card>.dialog-actions{flex:0 0 auto}

/* Arrangementskort for frivillige: den klebrige handlingslinjen skal visuelt
   avslutte dialogen. Forhåndsvisningen skal aldri skimtes i feltet under den. */
.volunteer-event-info-dialog .dialog-card{
  padding-bottom:0!important;
  /* Felles kortstørrelse på arrangementssidene, så rammen står i ro når man sveiper mellom
     arrangementer (eierens ønske 17.09.2026). PC: en behagelig minstehøyde, fortsatt under
     skjermtaket (max-height fra den generelle regelen). Telefon fyller skjermhøyden (se @media
     under). Kortet er en kolonne som IKKE scroller selv; innholdet ligger i et eget scroll-felt
     (.volunteer-event-info-scroll) med min-height:0, så «Meld på»/pilene ligger fast nederst OG
     loddrett scroll virker i iOS Safari (der flex + auto-marg ellers ødela scrollingen). */
  display:flex;
  flex-direction:column;
  overflow:hidden;
  /* Fast høyde, ikke bare en minstehøyde: da blir ALLE arrangementskortene like høye på PC
     (eierens funn 17.09.2026 - med bare min-height vokste arrangementer med program seg
     høyere og ble ulike). Innholdet scroller i feltet under om det er høyere. Capet av
     skjermtaket på lave skjermer. Telefon fyller skjermen (se @media). */
  height:min(700px,calc(100dvh - 48px));
}
.volunteer-event-info-dialog .volunteer-event-info-scroll{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  /* pan-y: nettleseren tar loddrett scroll, sveipet mellom arrangementer tar den vannrette
     bevegelsen. pinch-zoom: to-finger-zoom skal virke (eierens ønske 19.09.2026) - «pan-y» alene
     slår den av. */
  touch-action:pan-y pinch-zoom;
}
/* Zoomet inn: en sidelengs bevegelse skal flytte bildet, ikke bytte arrangement (app.js slår av
   sveipet samtidig). */
.volunteer-event-info-dialog.is-zoomed .volunteer-event-info-scroll{touch-action:auto}
.volunteer-event-info-dialog .dialog-card>.dialog-actions{
  box-sizing:border-box;
  flex:0 0 auto;
  min-height:50px;
  max-height:50px;
  margin-top:0!important;
  padding:5px 0 5px 10px!important;
  border-bottom:0!important;
  border-radius:14px 14px 0 0;
  background:#f3f7fc!important;
}
.volunteer-event-info-dialog .dialog-card>.dialog-actions .btn{
  min-height:38px;
  padding-top:6px;
  padding-bottom:6px;
  font-size:12px!important;
  font-weight:750!important;
}
.volunteer-event-info-dialog .dialog-card>.dialog-actions .volunteer-event-navigation .btn,
.volunteer-event-info-dialog .dialog-card>.dialog-actions #volunteerEventWebLink.btn-secondary{
  color:#274b7d;
  background:transparent!important;
  border:none!important;
  box-shadow:none!important;
  outline:none!important;
}
.volunteer-event-info-dialog .dialog-card>.dialog-actions .volunteer-event-navigation .btn:active,
.volunteer-event-info-dialog .dialog-card>.dialog-actions .volunteer-event-navigation .btn:hover,
.volunteer-event-info-dialog .dialog-card>.dialog-actions .volunteer-event-navigation .btn:focus-visible,
.volunteer-event-info-dialog .dialog-card>.dialog-actions .volunteer-event-navigation .btn:active,
.volunteer-event-info-dialog .dialog-card>.dialog-actions #volunteerEventWebLink.btn-secondary:hover,
.volunteer-event-info-dialog .dialog-card>.dialog-actions #volunteerEventWebLink.btn-secondary:focus-visible,
.volunteer-event-info-dialog .dialog-card>.dialog-actions #volunteerEventWebLink.btn-secondary:active{
  border:none!important;
  box-shadow:none!important;
  outline:none!important;
  text-decoration:none!important;
}
.volunteer-event-info-dialog .dialog-card>.dialog-actions #volunteerEventWebLink{
  flex:0 1 auto;
  margin-left:auto;
  padding-right:50px!important;
}
.volunteer-event-info-dialog .dialog-card>.dialog-actions .volunteer-event-navigation{display:flex;align-items:center;justify-content:flex-start;gap:8px;margin:0 0 0 12px;padding:0}
.volunteer-event-info-dialog .dialog-card>.dialog-actions .volunteer-event-navigation .btn{
  min-height:34px;
  padding-top:5px;
  padding-bottom:5px;
  padding-inline:9px;
  font-size:11px;
  font-weight:750;
}
.volunteer-event-info-dialog .dialog-card>.dialog-actions .volunteer-event-navigation.hidden{display:none}
.volunteer-event-contact-action{
  display:flex;
  justify-content:flex-start;
  margin:8px 0 2px;
}
.volunteer-event-contact-action.hidden{display:none}
.volunteer-event-contact-action .volunteer-critical-contact{width:100%}
@media(max-width:480px){
  .volunteer-event-info-dialog .dialog-card>.dialog-actions #volunteerEventWebLink{
    padding-right:50px!important;
  }
}

/* Kritisk fraværskontakt skal bli sett, men skal ikke forveksles med en
   destruktiv slett-/avslåhandling. */
.volunteer-critical-contact{
  min-height:38px!important;
  padding:7px 13px!important;
  border:1px solid #d9a6a2!important;
  background:#fff4f3!important;
  color:#813e3a!important;
  font-size:12px!important;
  font-weight:800!important;
  box-shadow:none!important
}

/* Adminforside: stabile innganger for daglig drift og anonymisert innsikt. */
.admin-view-tools{
  display:block;
  margin-bottom:14px;
}
.admin-primary-nav{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:3px;
  padding:3px;
  border:1px solid var(--ui-border);
  border-radius:12px;
  background:#fff;
  box-shadow:0 4px 14px rgba(22,46,78,.05);
}
.admin-primary-nav-item{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-width:0;
  min-height:36px;
  padding:5px 9px;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  color:var(--ink);
  font:inherit;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.admin-primary-nav-item:hover{border-color:#c7d6e9;background:#f1f6fc;color:#214f89}
.admin-primary-nav-item:focus-visible{outline:3px solid rgba(57,111,178,.28);outline-offset:1px}
.admin-primary-nav-item .tool-count{
  min-width:20px;
  padding:1px 6px;
  border-radius:999px;
  background:#e8eef7;
  color:#405a7c;
  font-size:10px;
  line-height:1.4;
}
.admin-primary-nav-item .tool-count.is-actionable{background:#e9eef1;color:#38566b}
.admin-hero{
  align-items:flex-end;
  gap:16px;
  min-height:0;
  margin-bottom:16px;
  padding:11px 18px;
}
.admin-hero h1{margin:1px 0 3px;font-size:clamp(24px,2.6vw,30px)}
.admin-hero p{font-size:12px;line-height:1.35}
.admin-hero .eyebrow{font-size:10px}
.admin-hero-sync-health{
  flex:0 0 auto;
  border-color:rgba(185,215,199,.62);
  background:rgba(243,251,246,.12);
  color:#d8f0e2;
  box-shadow:none;
}
.admin-hero-sync-health.warning{
  border-color:rgba(230,189,101,.7);
  background:rgba(255,249,234,.12);
  color:#ffe8b1;
}
.admin-inbox-heading{align-items:flex-end}
.admin-inbox-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.admin-inbox-list .pending-card{padding:13px 14px}
.pending-actions{gap:7px}
.admin-inbox-list .pending-actions{padding-top:11px}
.admin-inbox-list .pending-actions .btn{min-height:34px;padding:7px 10px}
@media(max-width:1050px){
  .admin-inbox-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .admin-hero{align-items:flex-start;flex-direction:column;gap:8px}
  .admin-hero-sync-health{align-self:flex-start}
}
@media(max-width:700px){
  .admin-primary-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-primary-nav-item{min-height:44px}
  .admin-hero{align-items:flex-start;flex-direction:column;gap:8px;padding:13px 15px}
  .admin-hero-sync-health{align-self:flex-start;min-height:30px;padding-inline:9px}
  .admin-inbox-list{grid-template-columns:1fr}
}
.volunteer-critical-contact:hover{
  border-color:#c27e78!important;
  background:#fee9e7!important;
  color:#6f312d!important;
}
.admin-account-content{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-right:3px;
}
.admin-account-overview{
  display:grid;
  grid-template-columns:minmax(240px,.75fr) minmax(360px,1.25fr);
  gap:10px;
  margin-bottom:10px;
}
.admin-account-overview>.account-summary,
.admin-account-overview>.admin-advanced-entry{
  margin:0;
  min-width:0;
  padding:12px 14px;
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius-lg);
  background:var(--ui-subtle);
}
.account-summary{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(120px,.7fr);
  gap:12px;
}
.account-summary>div{display:grid;align-content:center;gap:3px;min-width:0}
.account-summary>div:last-child{grid-column:1/-1}
.admin-account-overview-summary-only{grid-template-columns:1fr}
.admin-account-overview-summary-only>.account-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
.admin-account-overview-summary-only>.account-summary>div:last-child{grid-column:auto}
.admin-account-fact-label,
.admin-account-access-label{
  color:var(--muted);
  font-size:9px;
  font-weight:850;
  letter-spacing:.07em;
  line-height:1.25;
  text-transform:uppercase;
}
.account-summary strong{overflow-wrap:anywhere;font-size:13px;line-height:1.35}
.admin-advanced-entry{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
}
.admin-advanced-entry>div{display:grid;gap:5px;min-width:0}
.admin-advanced-entry p{margin:0;color:var(--muted);font-size:11px;line-height:1.4}
.admin-advanced-entry .btn{min-width:176px;white-space:nowrap}
.advanced-operations-dialog{width:min(1120px,calc(100vw - 28px));max-width:none}
.advanced-operations-dialog.advanced-operations-dialog-restricted{width:min(720px,calc(100vw - 28px))}
.advanced-operations-dialog-restricted .advanced-operations-grid{grid-template-columns:1fr}
.advanced-operations-card{
  display:flex;
  flex-direction:column;
  width:100%;
  max-width:none;
  height:min(88dvh,860px);
  max-height:min(88dvh,860px)!important;
  overflow:hidden!important;
}
@media(min-width:701px){
  .advanced-operations-dialog-restricted .advanced-operations-card{
    height:auto;
    max-height:min(88dvh,860px)!important;
  }
}
.advanced-operations-card>.dialog-standard-header,
.advanced-operations-card>.dialog-actions{flex:0 0 auto}
.advanced-operations-content{
  display:grid;
  gap:12px;
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-right:3px;
}
.advanced-operations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.advanced-operation-card{
  display:grid;
  align-content:start;
  gap:8px;
  min-width:0;
  padding:13px;
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius-lg);
  background:var(--ui-subtle);
}
.advanced-operation-card>header{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}
.advanced-operation-card h3{margin:0;font-size:14px;line-height:1.3}
.advanced-operation-card>p{margin:0;color:var(--muted);font-size:11px;font-weight:450;line-height:1.4}
.advanced-operation-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.advanced-operation-actions .btn{min-height:34px}
.permission-hidden{display:none!important}
.admin-role-access-notice,
.event-detail-access-notice{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:10px 12px;
  border:1px solid #bfd2e8;
  border-radius:var(--ui-radius-lg);
  background:#f3f7fc;
  color:#29496f;
}
.admin-role-access-notice.hidden,
.event-detail-access-notice.hidden{display:none}
.admin-role-access-notice{margin:0 0 10px}
.event-detail-access-notice{margin:0 0 10px}
.event-detail-access-notice.is-delegated{border-color:#d9b45f;background:#fff8df;color:#664a0d}
.admin-role-access-notice>div,
.event-detail-access-notice>div{display:grid;gap:2px;min-width:0}
.admin-role-access-notice strong,
.event-detail-access-notice strong{font-size:12px;line-height:1.3}
.admin-role-access-notice div>span,
.event-detail-access-notice div>span{font-size:11px;line-height:1.4}
.staffing-readonly-role{color:var(--muted);font-size:11px;font-weight:700;line-height:1.35}
.event-inline-note-form.is-readonly :is(textarea,select){background:var(--ui-subtle);color:var(--text);cursor:default}
.admin-delegation-banner{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:10px 12px;
  border:1px solid #d9b45f;
  border-radius:var(--ui-radius-lg);
  background:#fff8df;
  color:#664a0d;
}
.admin-delegation-banner.hidden{display:none}
.admin-delegation-banner>div{display:grid;gap:2px;min-width:0}
.admin-delegation-banner>div strong{font-size:12px;line-height:1.3}
.admin-delegation-banner>div span{font-size:11px;line-height:1.4}
.admin-delegation-banner-main{margin:0 0 10px}
.admin-account-overview>.admin-delegation-banner{grid-column:1/-1}
.admin-account-management{
  display:grid;
  gap:10px;
  padding:14px;
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius-lg);
  background:var(--ui-subtle);
}
.admin-account-management-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  padding-bottom:10px;
  border-bottom:1px solid var(--ui-border);
}
.admin-account-management-heading>div{display:grid;gap:2px;min-width:0}
.admin-account-management-heading strong{font-size:16px;line-height:1.25}
.admin-account-management-heading span:not(.eyebrow):not(.summary-chip){color:var(--muted);font-size:11px;line-height:1.4}
.admin-account-management-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.admin-account-management-actions>.summary-chip:empty{display:none}
.admin-account-list-panel,
.admin-account-create-panel{
  display:grid;
  gap:7px;
  padding:10px;
  border:1px solid var(--ui-border);
  border-radius:12px;
  background:#fff;
}
.admin-account-subheading{display:grid;gap:2px}
.admin-account-subheading strong{font-size:12px;line-height:1.3}
.admin-account-subheading span{color:var(--muted);font-size:10px;line-height:1.35}
.admin-account-list{
  display:grid;
  gap:var(--ui-list-row-spacing);
  max-height:420px;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.admin-account-list-row{
  display:grid;
  grid-template-columns:minmax(200px,1fr) minmax(175px,.7fr) minmax(260px,auto);
  align-items:center;
  gap:8px 14px;
  margin:0;
  padding:var(--ui-list-row-padding);
  border:1px solid var(--ui-border);
  border-radius:12px;
  background:#fff;
  font-family:var(--ui-list-font);
}
.admin-account-list-row:hover{border-color:var(--ui-border-strong);background:#fbfcfe}
.admin-account-identity,
.admin-account-access{display:grid;gap:var(--ui-list-content-spacing);min-width:0}
.admin-account-identity strong,
.admin-account-access>strong{
  overflow-wrap:anywhere;
  font-size:var(--ui-list-title-size);
  font-weight:var(--ui-list-title-weight);
  line-height:1.3;
}
.admin-account-identity small{
  margin:0;
  color:var(--muted);
  font-size:var(--ui-list-detail-size);
  font-weight:var(--ui-list-detail-weight);
  line-height:var(--ui-list-line-height);
}
.admin-account-identity .admin-account-login-state{color:#315b91}
.admin-account-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  min-width:0;
  flex-wrap:wrap;
}
.admin-account-name-editor{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(220px,420px) auto auto;
  align-items:end;
  justify-content:start;
  gap:7px;
  padding-top:7px;
  border-top:1px solid var(--ui-border);
}
.admin-account-name-editor label{display:grid;gap:3px;margin:0;color:#475569;font-size:9px;font-weight:800}
.admin-account-name-editor input{width:100%;box-sizing:border-box;padding:7px 9px;font-size:11px}
.admin-account-list-row .status-badge{white-space:nowrap}
.admin-access-select{width:100%;min-width:0;padding:7px 30px 7px 9px;font-size:11px}
.admin-access-details{
  grid-column:1/-1;
  width:100%;
  border-top:1px solid var(--ui-border);
  padding-top:7px;
}
.admin-access-details>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  color:#274b7d;
  cursor:pointer;
  font-size:11px;
  font-weight:800;
}
.admin-access-summary-count{color:var(--muted);font-size:10px;font-weight:700;white-space:nowrap}
.admin-access-details-content{display:grid;gap:10px;margin-top:8px}
.admin-permission-editor,.admin-delegation-editor{
  display:grid;
  gap:8px;
  padding:10px;
  border:1px solid var(--ui-border);
  border-radius:10px;
  background:var(--ui-subtle);
}
.admin-access-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.admin-access-panel-heading>div{display:grid;gap:2px}
.admin-access-panel-heading strong{font-size:12px;line-height:1.3}
.admin-access-panel-heading span{color:var(--muted);font-size:10px;line-height:1.35}
.admin-permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.admin-permission-groups fieldset{display:grid;align-content:start;gap:4px;margin:0;padding:7px;border:1px solid #dce3ec;border-radius:9px;background:#fff}
.admin-permission-groups legend{padding:0 4px;color:#5a6675;font-size:9px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.admin-permission-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 7px;padding:0;border-radius:7px}
.admin-permission-option.is-override{background:#eef4fc}
.admin-permission-choice{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:7px;min-width:0;padding:8px 7px;border-radius:7px;cursor:pointer}
.admin-permission-choice:hover{background:#f5f8fc}
.admin-permission-choice:has(input:focus-visible){outline:3px solid rgba(49,91,145,.24);outline-offset:1px}
.admin-permission-choice>input{width:18px;height:18px;margin:0;accent-color:#315b91;cursor:pointer}
.admin-permission-choice>input:disabled,.admin-permission-choice:has(input:disabled){cursor:not-allowed}
.admin-permission-copy{display:grid;gap:1px;min-width:0}
.admin-permission-option strong{font-size:11px;line-height:1.3}
.admin-permission-option small{color:var(--muted);font-size:9px;font-weight:450;line-height:1.35}
.admin-permission-save-state{grid-column:1/-1;min-height:0;padding:0 7px;color:#315b91;font-size:9px;font-weight:750;line-height:1.2}
.admin-permission-save-state:empty{display:none}
.admin-permission-option.is-saving{opacity:.72}
.admin-permission-option.has-save-error .admin-permission-save-state{color:#a33636}
.admin-permission-reset{align-self:center;min-height:28px;padding:5px 3px;border:0;background:transparent;color:#315b91;cursor:pointer;font-size:9px;font-weight:800}
.admin-permission-reset:hover{text-decoration:underline}
.admin-active-delegations{display:grid;gap:5px}
.admin-active-delegations>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;border:1px solid #e5c774;border-radius:8px;background:#fff8df}
.admin-active-delegations>div>span{display:grid;gap:1px}
.admin-active-delegations strong{font-size:11px}
.admin-active-delegations small{color:#6f571f;font-size:9px;line-height:1.35}
.admin-delegation-form{display:grid;grid-template-columns:1.1fr 1.2fr .8fr .8fr minmax(180px,1.3fr) auto;align-items:end;gap:7px}
.admin-delegation-form label{display:grid;gap:3px;margin:0;color:#475569;font-size:9px;font-weight:800}
.admin-delegation-form :is(input,select){width:100%;min-width:0;box-sizing:border-box;padding:7px 8px;font-size:10px}
.admin-delegation-form .btn{white-space:nowrap}
.admin-access-history-panel{margin-top:10px;padding:9px 10px;border:1px solid var(--ui-border);border-radius:12px;background:#fff}
.admin-access-history-panel>summary{cursor:pointer;font-size:11px;font-weight:800;color:#334155}
.admin-access-history{display:grid;gap:4px;margin-top:8px}
.admin-access-history-row{display:grid;grid-template-columns:120px minmax(150px,.7fr) minmax(0,1.5fr);gap:8px;padding:6px 7px;border-radius:7px;background:var(--ui-subtle);font-size:10px;line-height:1.35}
.admin-access-history-row>span:first-child{color:var(--muted)}
.admin-account-create-form{
  display:grid;
  grid-template-columns:minmax(170px,1fr) minmax(190px,1.15fr) minmax(180px,1fr) minmax(180px,1fr) auto;
  align-items:end;
  gap:8px;
}
.admin-account-create-form label{
  display:grid;
  gap:4px;
  min-width:0;
  margin:0;
  color:#334155;
  font-size:10px;
  font-weight:850;
}
.admin-account-create-form :is(input,select){width:100%;min-width:0;box-sizing:border-box}
.admin-account-password-help{grid-column:1/5;margin:0;font-size:10px;line-height:1.35}
.admin-account-create-form .btn{grid-column:5;grid-row:1;white-space:nowrap}

@media(max-width:900px){
  .admin-account-list-row{grid-template-columns:minmax(180px,1fr) minmax(160px,.7fr)}
  .admin-account-row-actions{grid-column:1/-1;justify-content:flex-start;padding-top:6px;border-top:1px solid #e8edf3}
  .admin-account-create-form{grid-template-columns:1fr 1fr}
  .admin-account-password-help{grid-column:1/-1}
  .admin-account-create-form .btn{grid-column:2;grid-row:4;justify-self:end}
  .admin-account-name-editor{grid-template-columns:minmax(0,1fr) auto auto}
  .admin-delegation-form{grid-template-columns:1fr 1fr}
  .admin-delegation-reason{grid-column:1/-1}
}
@media(max-width:700px){
  .admin-role-access-notice,.event-detail-access-notice{align-items:flex-start;padding:9px 10px}
  .admin-account-dialog{width:calc(100vw - 14px)}
  .admin-account-card{max-height:calc(100dvh - 14px)!important}
  .admin-account-overview{grid-template-columns:1fr}
  .account-summary{grid-template-columns:1fr 1fr}
  .admin-account-overview-summary-only>.account-summary{grid-template-columns:1fr 1fr}
  .admin-account-overview-summary-only>.account-summary>div:last-child{grid-column:1/-1}
  .admin-advanced-entry{grid-template-columns:1fr}
  .admin-advanced-entry .btn{width:100%;min-width:0}
  .advanced-operations-dialog{width:calc(100vw - 14px)}
  .advanced-operations-card{height:calc(100dvh - 14px);max-height:calc(100dvh - 14px)!important}
  .advanced-operations-dialog-restricted .advanced-operations-card{height:auto;max-height:calc(100dvh - 14px)!important}
  .advanced-operations-grid{grid-template-columns:1fr}
  .advanced-operation-actions{display:grid;grid-template-columns:1fr 1fr}
  .advanced-operation-actions .btn{width:100%}
  .admin-account-management-heading{align-items:flex-start;flex-direction:column;gap:7px}
  .admin-account-list{max-height:none;overflow:visible}
  .admin-account-list-row{grid-template-columns:1fr}
  .admin-account-row-actions{grid-column:auto}
  .admin-account-create-form{grid-template-columns:1fr}
  .admin-account-password-help,
  .admin-account-create-form .btn{grid-column:auto;grid-row:auto}
  .admin-account-create-form .btn{width:100%;justify-self:stretch}
  .admin-account-card>.dialog-actions{justify-content:space-between}
  .admin-permission-groups,.admin-delegation-form{grid-template-columns:1fr}
  .admin-delegation-reason{grid-column:auto}
  .admin-delegation-form .btn{width:100%}
  .admin-access-history-row{grid-template-columns:1fr;gap:2px}
}
@media(max-width:430px){
  .account-summary{grid-template-columns:1fr}
  .account-summary>div:last-child{grid-column:auto}
  .admin-account-overview-summary-only>.account-summary{grid-template-columns:1fr}
  .admin-account-overview-summary-only>.account-summary>div:last-child{grid-column:auto}
  .admin-account-row-actions>.btn{flex:1 1 auto}
  .advanced-operation-actions{grid-template-columns:1fr}
}

/* v7.10-r40 – én autoritativ standard for «Finn arrangement».
   Kortets geometri er stabil; innhold og status kan endres uten layout-hopp. */
#volunteerView .volunteer-events-heading{
  align-items:center;
  margin:14px 0 4px;
}
#volunteerView .volunteer-view-actions{
  align-items:center;
}
#volunteerView .toolbar{
  grid-template-columns:minmax(220px,1.45fr) minmax(150px,.8fr) minmax(175px,.9fr) auto;
  align-items:center;
  gap:8px;
  margin:6px 0 4px;
}
#volunteerView .toolbar :is(input,select){
  box-sizing:border-box;
  min-height:42px;
}
#volunteerView .toolbar #eventSearch{
  height:42px!important;
  min-height:42px!important;
}
#volunteerView .volunteer-custom-filter{
  position:relative;
  min-width:0;
  height:42px;
  font-family:var(--ui-list-font);
}
#volunteerView .volunteer-filter-native{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  min-height:0!important;
  margin:-1px!important;
  padding:0!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  border:0!important;
}
#volunteerView .volunteer-custom-filter-button{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:100%;
  height:42px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-size:13px;
  text-align:left;
  touch-action:manipulation;
}
#volunteerView .volunteer-custom-filter-button:focus-visible,
#volunteerView .volunteer-custom-filter.is-open .volunteer-custom-filter-button{
  outline:3px solid rgba(36,87,143,.16);
  border-color:#7ba3d0;
}
#volunteerView .volunteer-custom-filter-chevron{
  flex:0 0 auto;
  width:8px;
  height:8px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
  transition:transform .15s ease;
}
#volunteerView .volunteer-custom-filter.is-open .volunteer-custom-filter-chevron{transform:translateY(2px) rotate(225deg)}
#volunteerView .volunteer-custom-filter-menu{
  position:absolute;
  z-index:60;
  top:calc(100% + 5px);
  left:0;
  width:100%;
  min-width:100%;
  max-height:min(300px,52vh);
  overflow:auto;
  padding:5px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
  box-shadow:0 16px 36px rgba(24,42,68,.18);
  -webkit-overflow-scrolling:touch;
}
#volunteerView .volunteer-custom-filter-option{
  display:block;
  width:100%;
  min-height:36px;
  padding:8px 10px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--text);
  font:inherit;
  font-size:13px;
  text-align:left;
  touch-action:manipulation;
  cursor:pointer;
}
#volunteerView .volunteer-custom-filter-option:hover,
#volunteerView .volunteer-custom-filter-option.is-active{background:#f1f5fa;outline:none}
#volunteerView .volunteer-custom-filter-option.selected{background:#e8f0fb;color:#244f82;font-weight:800}
#volunteerView .volunteer-custom-filter-option.selected.is-active{box-shadow:inset 0 0 0 2px #7ba3d0}
#volunteerView .volunteer-filter-reset{
  min-height:42px;
  height:42px;
  border-color:#a9c3e3;
  background:#e8f0fb;
  color:#244f82;
  font-weight:800;
  box-shadow:0 1px 2px rgba(36,79,130,.08);
}
#volunteerView .volunteer-filter-reset:hover,
#volunteerView .volunteer-filter-reset:focus-visible{
  border-color:#7fa6d2;
  background:#dfeaf8;
}
#volunteerView .volunteer-result-summary{
  display:flex;
  justify-content:flex-end;
  min-height:19px;
  margin:0 2px 8px;
  color:var(--muted);
  font-family:var(--ui-list-font);
  font-size:12px;
  font-weight:700;
  line-height:1.4;
}
#volunteerView #eventCards.event-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:218px;
  align-items:stretch;
  gap:14px;
  width:100%;
  max-width:none;
}
#volunteerView #eventCards .event-card{
  position:relative;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  box-sizing:border-box;
  width:100%;
  max-width:none;
  height:218px;
  min-height:218px;
  gap:9px;
  overflow:hidden;
  padding:14px 15px;
  border:1px solid var(--ui-border);
  border-top:4px solid #6d93bc;
  border-radius:14px;
  background:#fff;
  box-shadow:0 7px 22px rgba(18,35,61,.055);
  transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
}
#volunteerView #eventCards .event-card::before{content:none}
#volunteerView #eventCards .event-card:hover{
  transform:none;
  border-color:#c3cfdd;
  box-shadow:0 11px 28px rgba(29,42,66,.09);
}
/* Én semantisk fargekontrakt: grønt er bekreftet/tildelt, blått er ledig og mulig å velge. */
#volunteerView #eventCards .volunteer-card-state-available{border-top-color:var(--volunteer-available-border)}
#volunteerView #eventCards .volunteer-card-state-assigned{border-top-color:var(--volunteer-assigned-border)}
#volunteerView .my-assignment-card--next,
#volunteerView .my-assignment-card--assigned{
  border-color:#c7dfd0;
  box-shadow:inset 3px 0 0 var(--volunteer-assigned-border);
}
#volunteerView .my-assignment-section.my-assignment-section--next .my-assignment-card--next{
  box-shadow:inset 4px 0 0 var(--volunteer-assigned-border),0 5px 16px rgba(31,122,77,.08);
}
#volunteerView #eventCards .volunteer-card-state-full{border-top-color:#9aa4b1}
#volunteerView #eventCards .volunteer-card-state-waitlisted,
#volunteerView #eventCards .volunteer-card-state-waiting{border-top-color:#c49b44}
#volunteerView #eventCards .volunteer-card-state-closed{border-top-color:#b87979}
#volunteerView #eventCards .volunteer-card-main{
  display:grid;
  grid-template-rows:auto minmax(44px,auto) auto auto;
  align-content:start;
  gap:4px;
  min-width:0;
  overflow:hidden;
}
#volunteerView #eventCards .event-card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:9px;
  min-width:0;
}
#volunteerView #eventCards .event-card-top>div{min-width:0}
#volunteerView #eventCards .event-weekday{
  color:var(--text);
  font-size:14px;
  font-weight:800;
  line-height:1.3;
}
#volunteerView #eventCards .event-card-top .meta{
  margin-top:2px;
  overflow:hidden;
  color:var(--muted);
  font-size:12px;
  font-weight:450;
  line-height:1.35;
}
#volunteerView .volunteer-card-availability{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  max-width:46%;
  overflow:hidden;
  padding:5px 8px;
  border-radius:999px;
  background:#f0f3f7;
  color:#56657a;
  font-size:11px;
  font-weight:800;
  line-height:1.15;
  text-overflow:ellipsis;
  white-space:nowrap;
}
/* Samme statuspille øverst i arrangementsdialogen (eierens ønske 15.09.2026), så
   statusen leser likt som på frivilliglisten. Her får hele teksten («6 ledige
   vakter») plass - ingen bredde-grense og ingen avkutting. */
.volunteer-event-info-dialog .volunteer-card-availability{
  display:inline-flex;align-items:center;flex:0 0 auto;padding:5px 8px;border-radius:999px;
  background:#f0f3f7;color:#56657a;font-size:11px;font-weight:800;line-height:1.15;white-space:nowrap;
}
/* Fargene deles av begge steder (samme betydning, samme farge). */
:is(#volunteerView,.volunteer-event-info-dialog) .volunteer-card-availability.is-available{background:var(--volunteer-available-soft);color:var(--volunteer-available-text)}
:is(#volunteerView,.volunteer-event-info-dialog) .volunteer-card-availability.is-assigned{background:var(--volunteer-assigned-soft);color:var(--volunteer-assigned-text)}
:is(#volunteerView,.volunteer-event-info-dialog) .volunteer-card-availability.is-waiting{background:#f7f0df;color:#765614}
:is(#volunteerView,.volunteer-event-info-dialog) .volunteer-card-availability.is-full,
:is(#volunteerView,.volunteer-event-info-dialog) .volunteer-card-availability.is-closed{background:#f1f2f4;color:#636b78}
/* Fullført oppdrag: nøytral, historisk grå - samme som «Utført»-merket ellers. */
:is(#volunteerView,.volunteer-event-info-dialog) .volunteer-card-availability.is-complete{background:#e9edf2;color:#536174}
#volunteerView #eventCards h3{
  min-width:0;
  margin:5px 0 0;
  padding:0;
  font-size:17px;
  line-height:1.25;
}
#volunteerView #eventCards .event-card-detail-button{
  display:-webkit-box;
  width:100%;
  overflow:hidden;
  font:inherit;
  text-align:left;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
#volunteerView #eventCards .event-meeting-time{
  overflow:hidden;
  color:#41516a;
  font-size:12px;
  font-weight:800;
  line-height:1.35;
}
#volunteerView #eventCards .volunteer-card-pause{
  display:flex;
  gap:5px;
  color:var(--muted);
  font-size:11px;
}
#volunteerView #eventCards .volunteer-card-footer{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:8px;
  min-height:40px;
}
#volunteerView #eventCards .volunteer-card-footer-personal{grid-template-columns:minmax(0,1fr)}
#volunteerView #eventCards .volunteer-personal-role{color:#244f82;background:#e8f0fb;font-weight:750}
#volunteerView #eventCards .volunteer-card-roles{
  display:flex;
  align-content:flex-end;
  align-items:center;
  flex-wrap:wrap;
  gap:5px;
  min-width:0;
  max-height:40px;
  margin:0;
  overflow:hidden;
}
#volunteerView #eventCards .role-pill{
  padding:5px 7px;
  color:#4f5b6f;
  background:#f3f5f8;
  font-size:10.5px;
  line-height:1.1;
  white-space:nowrap;
}
#volunteerView #eventCards .role-pill-more{color:var(--muted);background:#f7f8fa}
#volunteerView #eventCards .role-pill-full{color:#636b78;background:#f1f2f4}
#volunteerView #eventCards .volunteer-capacity{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  min-width:108px;
  margin:0;
}
#volunteerView #eventCards .volunteer-capacity :is(.btn,.status-badge){
  max-width:180px;
  justify-content:center;
  text-align:center;
}
#volunteerView #eventCards .volunteer-filter-reset-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  color:var(--accent);
  border-style:dashed;
  background:#f8fbff;
  text-align:center;
}
#volunteerView #eventCards .volunteer-filter-reset-card .filter-reset-card-icon{font-size:23px}
#volunteerView #eventCards .volunteer-filter-reset-card strong{font-size:15px}
#volunteerView #eventCards .volunteer-filter-reset-card>span:last-child{color:var(--muted);font-size:12px}
#volunteerView .volunteer-discovery-empty{
  grid-column:1/-1;
  display:grid;
  justify-items:start;
  gap:7px;
}
#volunteerView .volunteer-discovery-empty>span{color:var(--muted);font-size:13px}
/* I kalenderens dagskort står pillen i den smale venstrekolonnen ved siden av påmeldingsknappen.
   Listekortets grense på 46 % ble der ca. 60 punkter, og «Venteliste åpen» ble klippet i begge
   ender («nteliste åp», eierens skjermbilde 19.09.2026). Her får pillen bruke hele kolonnen, og
   blir teksten likevel for lang, kuttes den i slutten med «…» - aldri midtstilt i begge ender. */
#volunteerView .volunteer-calendar-availability{display:inline-block;width:auto;max-width:100%;margin-top:3px}

@media(max-width:1050px){
  #volunteerView #eventCards.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #volunteerView .toolbar{grid-template-columns:minmax(220px,1fr) minmax(150px,.72fr)}
  #volunteerView .volunteer-filter-reset{justify-self:start}
}
@media(max-width:650px){
  #volunteerView .volunteer-events-heading{align-items:flex-start}
  #volunteerView .toolbar{grid-template-columns:1fr}
  #volunteerView .toolbar #eventSearch{font-size:16px}
  #volunteerView .volunteer-filter-reset{width:100%}
  #volunteerView .volunteer-result-summary{justify-content:flex-start;margin-top:3px}
  #volunteerView #eventCards.event-grid{grid-template-columns:1fr;grid-auto-rows:auto;gap:10px}
  #volunteerView #eventCards .event-card{height:auto;min-height:205px;padding:13px 14px}
}

/* Volunteer profile: logout is a secondary account action, never a primary full-width save action. */
dialog.my-profile-dialog .dialog-card > .profile-dialog-actions{
  justify-content:flex-start;
}
dialog.my-profile-dialog .dialog-card > .profile-dialog-actions .btn{
  flex:0 0 auto;
  min-width:96px;
}

/* Volunteer profile and assigned-event navigation share one authoritative layout. */
.topbar .volunteer-profile-trigger{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  max-width:min(52vw,420px);
  overflow:visible;
  padding:7px 8px 7px 12px;
  border-radius:10px;
  text-align:right;
  transition:background-color .16s ease,color .16s ease;
}
.topbar .volunteer-profile-trigger #openMyProfileName{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.volunteer-profile-user-symbol{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  flex:0 0 30px;
  border-radius:50%;
  background:#edf3fa;
  color:#365f91;
  border:1px solid #d4e1ef;
}
.volunteer-profile-user-symbol svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.topbar .volunteer-profile-trigger:hover,
.topbar .volunteer-profile-trigger:focus-visible{
  background:#f1f5fa;
  color:#173f70;
}
.topbar .volunteer-profile-trigger:focus-visible{
  outline:3px solid rgba(39,87,157,.24);
  outline-offset:2px;
}
.topbar .volunteer-profile-trigger:hover .volunteer-profile-user-symbol,
.topbar .volunteer-profile-trigger:focus-visible .volunteer-profile-user-symbol{
  background:#e5eef8;
  color:#274f80;
  border-color:#bdd1e6;
}
.topbar .admin-account-trigger{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  max-width:min(52vw,420px);
  overflow:visible;
  padding:7px 8px 7px 12px;
  border-radius:10px;
  text-align:right;
  transition:background-color .16s ease,color .16s ease;
}
.topbar .admin-account-trigger #openAdminAccountName{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .admin-account-trigger:hover,
.topbar .admin-account-trigger:focus-visible{background:#f1f5fa;color:#173f70}
.topbar .admin-account-trigger:focus-visible{outline:3px solid rgba(39,87,157,.24);outline-offset:2px}
.topbar .admin-account-trigger:hover .volunteer-profile-user-symbol,
.topbar .admin-account-trigger:focus-visible .volunteer-profile-user-symbol{background:#e5eef8;color:#274f80;border-color:#bdd1e6}
dialog.my-profile-dialog.volunteer-profile-info-dialog{
  width:min(920px,calc(100vw - 30px));
  max-width:none;
}
dialog.my-profile-dialog.volunteer-profile-info-dialog .dialog-card{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) 44px;
  width:100%;
  max-width:none;
  height:auto;
  max-height:min(86dvh,760px)!important;
  box-sizing:border-box;
  overflow:hidden!important;
}
dialog.my-profile-dialog.volunteer-profile-info-dialog .volunteer-profile-body{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:0 3px 12px 0}
.volunteer-profile-overview{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(260px,.92fr);align-items:start;gap:12px}
.volunteer-profile-summary{min-width:0}
.volunteer-profile-card-heading{margin:0;padding:13px 14px 8px;font-size:15px;line-height:1.3}
.volunteer-profile-contacts{order:0;margin:0}
.volunteer-profile-guide-disclosure{margin-top:10px;border:1px solid var(--line);border-radius:12px;background:#fafbfd;overflow:hidden}
.volunteer-profile-guide-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:56px;padding:10px 13px;list-style:none;cursor:pointer}
.volunteer-profile-guide-disclosure>summary::-webkit-details-marker{display:none}
.volunteer-profile-guide-disclosure>summary>span:first-child{display:grid;gap:2px;min-width:0}
.volunteer-profile-guide-disclosure>summary strong{font-size:14px;line-height:1.3}
.volunteer-profile-guide-disclosure>summary small{color:var(--muted);font-size:12px;line-height:1.4}
.volunteer-profile-guide-disclosure>summary:focus-visible{outline:3px solid rgba(39,87,157,.26);outline-offset:-3px;border-radius:11px}
.volunteer-profile-disclosure-icon{color:#315d91;font-size:20px;font-weight:800;line-height:1;transition:transform .16s ease}
.volunteer-profile-guide-disclosure[open] .volunteer-profile-disclosure-icon{transform:rotate(180deg)}
.volunteer-profile-guide-disclosure[open]>summary{border-bottom:1px solid var(--line)}
.volunteer-profile-guide{border:0;border-radius:0;background:#fff}
.volunteer-profile-guide .volunteer-info-guide{gap:0}
.volunteer-profile-guide .volunteer-info-guide li{padding:8px 0;border:0;border-bottom:1px solid #e8edf3;border-radius:0;background:transparent}
.volunteer-profile-guide .volunteer-info-guide li:last-child{border-bottom:0}
.volunteer-profile-guide .volunteer-info-guide strong{font-size:13px}
.volunteer-profile-guide .volunteer-info-guide p{font-size:12px;line-height:1.48}
.volunteer-profile-guidelines{margin-top:10px;background:#fff}
.volunteer-profile-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}
.volunteer-profile-section-heading h3{margin:0}
.volunteer-profile-section-heading .volunteer-info-updated{margin:0;text-align:right}
dialog.my-profile-dialog.volunteer-profile-info-dialog .profile-dialog-actions{
  position:static;
  inset:auto;
  height:44px;
  min-height:44px;
  max-height:44px;
  margin:0!important;
  padding:4px 3px!important;
  border-width:1px 0 0!important;
  border-radius:0;
  background:#fff!important;
  justify-content:flex-start;
}
dialog.my-profile-dialog.volunteer-profile-info-dialog .profile-dialog-actions .btn{min-height:34px;padding:6px 12px;font-size:12px}
.volunteer-event-navigation{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  padding:0 0 12px;
}
.volunteer-event-navigation.hidden{display:none}
.volunteer-event-navigation span{
  min-width:62px;
  text-align:center;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}
@media(max-width:760px){
  dialog.my-profile-dialog.volunteer-profile-info-dialog .dialog-card{
    grid-template-rows:auto minmax(0,1fr) 44px;
    height:auto;
    max-height:calc(100dvh - 14px)!important;
    padding:18px 14px 0!important;
  }
  .volunteer-profile-overview{grid-template-columns:1fr}
  .volunteer-profile-guide-disclosure>summary{min-height:52px}
  .volunteer-profile-section-heading{align-items:flex-start;flex-direction:column;gap:2px}
  .volunteer-profile-section-heading .volunteer-info-updated{text-align:left}
}
@media(max-width:560px){
  .topbar .volunteer-profile-trigger{gap:7px;max-width:min(58vw,260px)}
  .topbar .admin-account-trigger{gap:7px;max-width:min(58vw,260px)}
  .volunteer-profile-user-symbol{width:30px;height:30px;flex-basis:30px}
  .volunteer-event-info-dialog .dialog-card>.dialog-actions{
    min-height:56px;
    max-height:56px;
    justify-content:space-between;
    padding-left:2px;
    padding-right:4px;
  }
  .volunteer-event-info-dialog .dialog-card>.dialog-actions .volunteer-event-navigation{
    justify-content:flex-start;
    gap:6px;
    margin:0;
    width:auto;
    min-width:0;
  }
  .volunteer-event-info-dialog .dialog-card>.dialog-actions .volunteer-event-navigation .btn{
    min-height:44px;
    padding-top:4px;
    padding-bottom:4px;
    padding-inline:7px;
    font-size:10px!important;
    white-space:nowrap;
  }
  .volunteer-event-info-dialog .dialog-card>.dialog-actions .volunteer-event-navigation span{
    font-size:10px!important;
    white-space:nowrap;
    min-width:0;
    flex:1 1 auto;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .volunteer-event-info-dialog .dialog-card>.dialog-actions #volunteerEventWebLink{
    margin-left:auto!important;
    margin-right:8px!important;
    padding-right:0!important;
    min-height:44px;
    padding-top:4px;
    padding-bottom:4px;
    padding-inline:7px;
    font-size:10px!important;
    white-space:nowrap;
    min-width:0;
    max-width:none;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}

/* Den daglige arbeidskøen er alltid hovedflaten. Informasjon åpnes separat,
   og utførte saker ligger i Historikk. */
.admin-work-queue-panel{display:grid;gap:13px}
.admin-incoming-sort-control{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin-left:auto}.admin-incoming-sort-label{color:#52627a;font-size:11px;font-weight:750;white-space:nowrap}
.admin-queue-info-intro{margin:0;padding:8px 10px;border-left:3px solid #9bb7c7;border-radius:7px;background:#f7fafb;color:#4b5c73;font-size:11px;line-height:1.4}
#adminOperationalActionList:not(:empty)+#adminQueueInfoList:not(:empty){padding-top:13px;border-top:1px solid #d7e0ec}
.admin-queue-group-heading{margin:5px 0 8px;color:#40516b;font-size:12px;font-weight:850;letter-spacing:.055em;text-transform:uppercase}
.admin-queue-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:5px 0 8px}.admin-queue-group-header .admin-queue-group-heading{margin:0}
.admin-unified-action-list{display:grid;gap:7px}.admin-unified-action-list:empty{display:none}
.admin-unified-queue-item{display:grid;grid-template-columns:116px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:58px;padding:9px 12px;border:1px solid #d7e0ec;border-left:4px solid #d59a2a;border-radius:11px;background:#fff;color:inherit;font:inherit;text-align:left}
button.admin-unified-queue-item{cursor:pointer}button.admin-unified-queue-item:hover{border-color:#b7c9df;background:#f9fbfe}button.admin-unified-queue-item:focus-visible{outline:3px solid rgba(39,87,157,.24);outline-offset:2px}
.admin-unified-queue-item.waitlist-info,.admin-unified-queue-item.account-info{border-left-color:#5f91c7}
.admin-unified-queue-state{color:#875800;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.045em}.admin-unified-queue-item.waitlist-info .admin-unified-queue-state,.admin-unified-queue-item.account-info .admin-unified-queue-state{color:#27578f}
.admin-unified-queue-copy{display:grid;gap:3px;min-width:0}.admin-unified-queue-copy strong{font-size:13px;line-height:1.3}.admin-unified-queue-copy small{overflow:hidden;color:var(--muted);font-size:11px;font-weight:450;line-height:1.38}.admin-unified-queue-action{color:var(--accent);font-size:11px;font-weight:850;white-space:nowrap}
.admin-unified-queue-item.integrity-with-dismiss,.admin-unified-queue-item.queue-with-dismiss{grid-template-columns:minmax(0,1fr) auto;gap:0;padding:0;overflow:hidden}
.admin-integrity-open-btn,.admin-queue-open-btn{display:grid;grid-template-columns:116px minmax(0,1fr) auto;align-items:center;gap:12px;align-self:stretch;min-width:0;min-height:58px;padding:9px 12px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.admin-integrity-open-btn:hover,.admin-queue-open-btn:hover{background:#f9fbfe}.admin-integrity-open-btn:hover .admin-unified-queue-action,.admin-queue-open-btn:hover .admin-unified-queue-action{text-decoration:underline;text-underline-offset:2px}.admin-integrity-open-btn:focus-visible,.admin-integrity-dismiss-btn:focus-visible,.admin-queue-open-btn:focus-visible,.admin-queue-dismiss-btn:focus-visible{outline:3px solid rgba(39,87,157,.24);outline-offset:2px}
.admin-integrity-dismiss-btn,.admin-queue-dismiss-btn{min-width:44px;min-height:34px;margin:9px 12px 9px 0;padding:6px 12px;border:1px solid #c8d5e7;border-radius:8px;background:#f2f6fb;color:#40516b;font:inherit;font-size:11px;font-weight:850;white-space:nowrap;cursor:pointer}.admin-integrity-dismiss-btn:hover,.admin-queue-dismiss-btn:hover{filter:brightness(.98)}
.admin-inbox-section .admin-change-review-list{margin-bottom:0}.admin-inbox-section .event-change-review-card{padding:11px 12px;border-radius:11px}.admin-inbox-section .event-change-review-copy h3{font-size:13px;line-height:1.3}.admin-inbox-section .event-change-review-copy p{font-size:11px;font-weight:450;line-height:1.38}.admin-inbox-section .admin-inbox-list{gap:8px}
@media(max-width:650px){.admin-queue-group-header{align-items:stretch;flex-direction:column;gap:7px}.admin-incoming-sort-control{display:grid;grid-template-columns:auto minmax(0,1fr);width:100%;margin-left:0}.admin-queue-group-header .view-switch{display:grid;grid-template-columns:1fr 1fr;width:100%}.admin-unified-queue-item{grid-template-columns:1fr auto;gap:5px 10px;min-height:64px;padding:10px 11px}.admin-unified-queue-state{grid-column:1/-1}.admin-unified-queue-copy small{white-space:normal}.admin-unified-queue-action{align-self:end}.admin-unified-queue-item.integrity-with-dismiss,.admin-unified-queue-item.queue-with-dismiss{grid-template-columns:1fr;gap:0;padding:0}.admin-integrity-open-btn,.admin-queue-open-btn{grid-template-columns:1fr auto;gap:5px 10px;min-height:64px;padding:10px 11px}.admin-integrity-open-btn .admin-unified-queue-state,.admin-queue-open-btn .admin-unified-queue-state{grid-column:1/-1}.admin-integrity-open-btn .admin-unified-queue-copy small,.admin-queue-open-btn .admin-unified-queue-copy small{white-space:normal}.admin-integrity-dismiss-btn,.admin-queue-dismiss-btn{width:auto;min-height:44px;margin:0 11px 10px}}

.login-help-btn{
  width:100%;
  min-height:42px;
  margin-top:4px;
  padding:9px 12px;
  border:1px solid #bfd0e5;
  border-radius:10px;
  background:#eef4fb;
  color:#244f82;
  font-weight:800;
  text-align:center;
}
.login-help-btn:hover{border-color:#7f9fc6;background:#e6eff9}
.login-help-btn:focus-visible{outline:3px solid rgba(39,87,157,.25);outline-offset:2px}

.volunteer-help-dialog{width:min(620px,calc(100vw - 28px));max-width:none}
.volunteer-help-card{display:grid;gap:12px;width:100%;max-width:none}
.volunteer-help-password,.volunteer-help-contact{padding:14px;border:1px solid var(--ui-border,#d7e0ec);border-radius:12px;background:#f8fafc}
.volunteer-help-password{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px}
.volunteer-help-password h3,.volunteer-help-contact h3{margin:0;font-size:15px;line-height:1.3}
.volunteer-help-password p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.volunteer-help-contact .volunteer-info-section-heading{margin-bottom:9px}
.volunteer-help-contact-error{display:grid;gap:7px;justify-items:start}
.volunteer-help-dialog .dialog-actions{justify-content:flex-end}

/* Kontooppfølging hører til registeret, uten å konkurrere med daglig tildeling. */
.volunteer-account-followup{display:grid;gap:9px;margin:0 0 5px;padding:11px 12px;border:1px solid #cbd8e8;border-radius:12px;background:#f7faff}
.volunteer-account-followup-heading{display:flex;align-items:end;justify-content:space-between;gap:14px}
.volunteer-account-followup-heading h3{margin:2px 0 0;font-size:16px;line-height:1.25}
.volunteer-account-followup-heading p{margin:0;color:var(--muted);font-size:11px;line-height:1.4;text-align:right}
.volunteer-account-followup-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.volunteer-account-followup-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 8px;min-height:53px;padding:8px 10px;border:1px solid #d4deeb;border-radius:10px;background:#fff;color:inherit;text-align:left}
.volunteer-account-followup-item>span{color:#4a5b73;font-size:10px;font-weight:800;line-height:1.25;text-transform:uppercase;letter-spacing:.035em}
.volunteer-account-followup-item>strong{color:#234e7d;font-size:20px;line-height:1}
.volunteer-account-followup-item>small{grid-column:1/-1;margin:0;color:var(--muted);font-size:10px;font-weight:500;line-height:1.3}
.volunteer-account-followup-item:hover,.volunteer-account-followup-item.is-selected{border-color:#6f96c7;background:#eaf1fb}
.volunteer-account-followup-item:focus-visible{outline:3px solid rgba(39,87,157,.23);outline-offset:2px}
.volunteer-register-account-state{display:grid;justify-items:start;gap:4px;min-width:190px}
.volunteer-register-account-state small{margin:0;color:var(--muted);font-size:10px;font-weight:500;line-height:1.35}
.volunteer-register-account-state small.is-invited{color:#315d91}
.volunteer-register-account-state small.is-not-invited{color:#875800}
.volunteer-register-row.account-registered td{background:#fffdf6}
.volunteer-register-row.account-registered:hover td{background:#fbf6e8}
.volunteer-register-row.account-deactivated{opacity:.58}

@media(max-width:900px){
  .volunteer-account-followup-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  .volunteer-help-password{grid-template-columns:1fr}
  .volunteer-help-password .btn{width:100%;min-height:44px}
  .volunteer-account-followup-heading{align-items:start;flex-direction:column;gap:3px}
  .volunteer-account-followup-heading p{text-align:left}
}
@media(max-width:430px){
  .volunteer-account-followup-grid{grid-template-columns:1fr 1fr}
  .volunteer-account-followup-item{min-height:58px;padding:8px}
  .volunteer-help-dialog{width:calc(100vw - 12px)}
}

/* Berøringsflater er romslige på touch-enheter uten å endre den kompakte desktopvisningen. */
@media(pointer:coarse){
  :root :is(button,.btn,[role="button"],summary,select,input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"])){min-block-size:44px}
  :root :is(button,.btn,[role="button"],summary,.dialog-close){min-inline-size:44px}
  :root label:has(input[type="checkbox"]),
  :root label:has(input[type="radio"]){min-block-size:44px}
  dialog .btn.btn-small,
  #volunteerView .my-assignment-actions .btn,
  .event-assignment-actions .btn,
  .admin-inbox-list .pending-actions .btn,
  dialog.my-profile-dialog.volunteer-profile-info-dialog .profile-dialog-actions .btn,
  .admin-integrity-dismiss-btn,
  .admin-queue-dismiss-btn{min-block-size:44px}
}

/* Bevegelse er valgfritt; innhold og tilstandsendringer fungerer uten animasjon. */
@media(prefers-reduced-motion:reduce){
  html:focus-within{scroll-behavior:auto}
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}

/* Ferdigstilling 14.09.2026: egen innsats, kalenderabonnement, oppmøte, personvern */
.volunteer-contribution{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:2px;padding:8px 12px;border:1px solid var(--border);border-radius:12px;background:#fff}
.my-assignment-history>.volunteer-contribution{margin:8px 0 10px}
.volunteer-profile-version{margin:16px 0 0;font-size:12px;color:var(--muted);text-align:center}
.volunteer-avatar{display:inline-grid;place-items:center;flex:0 0 auto;width:26px;height:26px;border-radius:50%;overflow:hidden;background:#e5eef8;color:#274f80;font-size:12px;font-weight:800;line-height:1}
.volunteer-avatar--medium{width:44px;height:44px;font-size:18px}
.volunteer-avatar--large{width:88px;height:88px;font-size:34px}
.volunteer-avatar img,.volunteer-profile-user-symbol .volunteer-avatar-img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
.volunteer-profile-user-symbol.has-avatar svg{display:none}
.volunteer-avatar-editor{display:flex;align-items:center;gap:14px;margin:4px 0 12px}
.volunteer-avatar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.volunteer-avatar-actions small{flex-basis:100%}
.avatar-crop-dialog{max-width:min(360px,calc(100vw - 30px))}
.avatar-crop-stage{position:relative;width:280px;height:280px;max-width:100%;margin:0 auto;border-radius:12px;overflow:hidden;background:#101828;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.avatar-crop-stage canvas{display:block;width:100%;height:100%}
.avatar-crop-mask{position:absolute;inset:0;pointer-events:none;border-radius:50%;border:2px solid rgba(255,255,255,.85);box-shadow:0 0 0 400px rgba(10,17,30,.55)}
.avatar-crop-zoom{display:flex;align-items:center;gap:12px;margin:14px 0 4px;font-weight:600}
.avatar-crop-zoom input{flex:1 1 auto;min-width:0}
.volunteer-workspace-avatar{flex:0 0 auto;margin-right:-4px}
.volunteer-workspace-avatar+div{flex:1 1 auto;min-width:0}
@media(max-width:760px){
  /* På telefon er toppen et rutenett: bildet skal stå ved siden av navnet, ikke over. */
  .volunteer-workspace-dialog .workspace-header:has(.volunteer-workspace-avatar:not(.hidden)){grid-template-columns:auto minmax(0,1fr);column-gap:12px}
  .volunteer-workspace-avatar{grid-row:1;grid-column:1;width:64px;height:64px;font-size:26px;margin-right:0}
  .volunteer-workspace-avatar+div{grid-row:1;grid-column:2}
  .volunteer-workspace-dialog .workspace-header:has(.volunteer-workspace-avatar:not(.hidden)) .volunteer-workspace-header-actions{grid-column:1/-1}
}
.volunteer-avatar-admin{display:flex;align-items:center;gap:12px;margin-top:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.volunteer-avatar-admin>div{flex:1 1 auto;display:grid;gap:2px}
.volunteer-avatar-admin small{color:var(--muted)}
.volunteer-contribution-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:13px;color:var(--muted)}
.volunteer-contribution-row strong{font-size:15px;font-weight:900;color:var(--text)}
.volunteer-contribution-sep{color:var(--muted)}
.admin-day-arrival-wrap{display:grid;gap:6px}
.admin-day-attendance{display:flex;gap:6px;padding-left:68px}
.attendance-btn{flex:0 0 auto;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;color:inherit}
.attendance-btn.is-active.is-absent{background:var(--danger);border-color:var(--danger);color:#fff}
.attendance-btn:disabled{opacity:.6;cursor:default}
.attendance-btn-inline{justify-self:start;align-self:center;width:max-content;padding:4px 10px;font-size:12px}
.calendar-feed-body{display:grid;gap:10px}
.calendar-feed-body p{margin:0}
.calendar-feed-actions,.calendar-feed-secondary{display:flex;flex-wrap:wrap;gap:8px}
.calendar-feed-actions .btn{text-decoration:none}
.calendar-feed-help summary{cursor:pointer;font-weight:700}
.calendar-feed-help ul{margin:8px 0;padding-left:18px;display:grid;gap:6px}
.volunteer-profile-privacy-actions{margin-top:10px}
.privacy-notice-body{max-height:60vh;overflow:auto}
.privacy-notice-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px}
.delete-own-account-section{display:grid;gap:10px}
.delete-own-account-status{margin:0;color:var(--danger);font-weight:700;min-height:1.2em}
@media (max-width:600px){.admin-day-attendance{padding-left:0}}

/* ===== Arrangement på telefon som HEL SIDE (19.09.2026) =====
   iPhone-Safari (iOS 26) plasserer av og til laget for vinduer oppå siden feil: vinduet ble kappet
   i toppen, fikk gap under, og siden bak skinte gjennom. Det laget styrer vi ikke. På telefon åpnes
   derfor arrangementet uten showModal() (app.js: showVolunteerEventInfoDialog) og ligger i selve
   dokumentet: ingen fast plassering, ikke noe bakteppe, ingen sentrering og ingen marger. Dokumentet
   scroller, knapperaden ligger fast nederst, og resten av siden er skjult mens arrangementet vises.
   Klassen settes bare på telefon, og bare når innstillingen «Arrangement på telefon» står på
   «Hel side». Vinduet (reglene over) er uendret og brukes ellers. */
/* Felles for alle vinduer som åpnes som hel side (arrangementet og «Min profil»). */
html:has(dialog.is-page[open]),
html:has(dialog.is-page[open]) body{background:var(--ui-surface)!important}
html:has(dialog.is-page[open]) body>*:not(dialog){display:none!important}
/* Et vanlig vindu åpnet oppå siden (f.eks. «Kan ikke møte») låser scrollingen som ellers. */
html:has(dialog.is-page[open]):not(:has(dialog:modal)),
html:has(dialog.is-page[open]):not(:has(dialog:modal)) body{overflow:visible!important}
dialog.is-page[open]:is(.volunteer-event-info-dialog,.my-profile-dialog){
  position:static!important;
  display:block;
  width:100%!important;
  max-width:none!important;
  height:auto!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:visible!important;
  background:var(--ui-surface);
}
.volunteer-event-info-dialog.is-page[open] .dialog-card{
  /* Minst den høyeste skjermflaten, så knapperaden alltid ligger i bunnen - også for korte arrangementer. */
  min-height:100lvh;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  border-radius:0!important;
  box-shadow:none!important;
  transform-origin:top center;
}
.volunteer-event-info-dialog.is-page[open] .volunteer-event-info-scroll{
  flex:1 0 auto;
  overflow:visible!important;
}
.volunteer-event-info-dialog.is-page[open] .dialog-card>.dialog-actions{
  position:sticky!important;
  bottom:0;
  z-index:20;
}
/* Lukkeknappen følger med øverst mens siden scroller. Den ligger i kortets flyt (ikke fast i
   skjermen), så den blir med kortet når man sveiper mellom arrangementer. */
.volunteer-event-info-dialog.is-page[open] .dialog-close{
  position:sticky!important;
  top:8px;
  right:auto;
  align-self:flex-end;
  flex:0 0 auto;
  margin:0 -8px -44px 0!important;
}

/* «Min profil» som hel side. Kortet er et rutenett (topp / innhold / «Logg ut»). Her scroller
   dokumentet, så kortet og innholdet får vokse fritt. Lukkeknappen ligger i kortets flyt og
   spenner over alle radene, så den følger med øverst hele veien ned. */
dialog.my-profile-dialog.is-page[open] .dialog-card{
  grid-template-rows:auto auto auto;
  min-height:100lvh;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  border-radius:0!important;
  box-shadow:none!important;
  align-content:start;
}
dialog.my-profile-dialog.is-page[open] .volunteer-profile-body{overflow:visible!important;padding-right:0}
dialog.my-profile-dialog.is-page[open] .dialog-card>.dialog-standard-header{grid-row:1;grid-column:1}
dialog.my-profile-dialog.is-page[open] .dialog-card>.volunteer-profile-body{grid-row:2;grid-column:1}
dialog.my-profile-dialog.is-page[open] .dialog-card>.profile-dialog-actions{grid-row:3;grid-column:1;height:auto;max-height:none}
dialog.my-profile-dialog.is-page[open] .dialog-card>.dialog-close{
  position:sticky!important;
  top:8px;
  right:auto;
  grid-row:1/-1;
  grid-column:1;
  justify-self:end;
  align-self:start;
  z-index:60;
  margin:0!important;
}

/* ===== Samlet historikk (20.09.2026) =====
   Hendelser på samme påmelding står sammen på én rad. «Alle hendelser» (den flate lista) bruker
   ingen av disse reglene. */
.history-view-switch{display:inline-flex;gap:6px;flex:0 0 auto}
/* «N hendelser fra testkonto er skjult · Vis» nederst i Historikk-fanen på arrangementskortet. */
.history-test-note{margin:12px 0 0;font-size:12px}
.history-view-switch .quick-filter{padding:5px 11px;font-size:12.5px}
.history-toolbar-bottom .history-view-switch{margin-left:auto}
#eventHistoryContent>.history-view-switch,#volunteerWorkspaceContent>.history-view-switch{margin:0 0 8px}
.history-table td .history-event-date{display:block;margin-top:2px;color:var(--muted);font-size:12px;font-weight:500}
.history-steps{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.history-steps li{display:flex;gap:8px;align-items:baseline}
.history-step-time{flex:0 0 auto;min-width:3.2em;color:var(--muted);font-size:12px;white-space:nowrap}
.history-step-text{min-width:0}
.history-line .history-steps{gap:2px}

