/* Kjøreplanen (blueprints/ep_rs.py): editoren og «nå og neste» i arrangørportalen, lesevisning i deltakerappen og på delingslenken,
   LiveEvent Hub, utskrift og scenevisning. Fargene hentes fra siden rundt: deltakerappen og Hub har --card/--text/--line/--primary,
   arrangørportalen bruker standardverdiene under (samme som --o-* i ep-org.css). Alt står på linje: like høye kort side om side, like
   høye knapper og felt på rad (Christian). */
.rs-live, .rs-mini, .rs-pday, .rs-appbox, .rs-appplan, .rs-card, .rs-stage-body {
  --rs-card: var(--card, #ffffff); --rs-ink: var(--text, #15151b); --rs-line: var(--line, #e3e3ea); --rs-soft: var(--soft, #f1f1f5);
  --rs-acc: var(--primary, #ff6a1a); --rs-on-acc: var(--on-primary, #15151b);
  --rs-rigg: #2f5fb3; --rs-prover: #7a4cc2; --rs-gjennomforing: #d9530f; --rs-nedrigg: #5f6170; --rs-annet: #3b3c48;
}
.rs-center { text-align: center; }
.rs-mut { opacity: .7; }

/* ------------------------------------------------------------------ nå og neste */
.rs-live { display: grid; gap: 14px; }
.rs-live-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.rs-clock { margin: 0; display: flex; align-items: baseline; gap: 10px; }
.rs-clock b { font-size: 32px; line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.rs-clock span { font-size: 15px; opacity: .75; }
.rs-facts { margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.rs-chip { display: inline-flex; align-items: center; min-height: 28px; padding: 2px 10px; border-radius: 999px; font-size: 13px; font-weight: 600;
  background: var(--rs-soft); color: var(--rs-ink); }
.rs-chip.warn { background: rgba(245, 166, 35, .2); } .rs-chip.info { background: rgba(31, 79, 163, .14); }
.rs-nn { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: stretch; }
.rs-card { background: var(--rs-card); color: var(--rs-ink); border: 1px solid var(--rs-line); border-radius: 14px; padding: 16px 18px; margin: 0; min-width: 0; }
.rs-h { margin: 0 0 10px; font-size: 12px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; opacity: .7; }
.rs-now { border-color: var(--rs-acc); box-shadow: inset 0 3px 0 var(--rs-acc); }
.rs-item + .rs-item { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--rs-line); }
.rs-item h3 { margin: 2px 0 4px; font-size: 22px; line-height: 1.2; overflow-wrap: anywhere; }
.rs-next .rs-item h3 { font-size: 19px; }
.rs-item-time { margin: 0; font-size: 15px; font-variant-numeric: tabular-nums; }
.rs-item-time span { opacity: .75; }
.rs-item-meta { margin: 0 0 6px; font-size: 14px; opacity: .78; overflow-wrap: anywhere; }
.rs-item-when { margin: 6px 0 0; font-size: 15px; font-weight: 650; color: var(--rs-acc); }
.rs-item-notes { margin: 8px 0 0; font-size: 14px; white-space: pre-line; opacity: .85; }
.rs-bar { height: 8px; margin: 8px 0 0; border-radius: 999px; background: var(--rs-soft); overflow: hidden; }
.rs-bar i { display: block; height: 100%; background: var(--rs-acc); border-radius: 999px; }
.rs-cues { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 10px 0 0; }
.rs-cues div { background: var(--rs-soft); border-radius: 10px; padding: 6px 8px; min-width: 0; }
.rs-cues dt { font-size: 11px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.rs-cues dd { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.rs-empty { margin: 0; opacity: .72; }
.rs-ctrl { display: flex; flex-wrap: wrap; gap: 8px; align-items: stretch; }
.rs-ctrl > .o-btn, .rs-shift .o-btn { min-height: 44px; }
.rs-ctrl .rs-go { flex: 1 1 260px; font-size: 15px; white-space: normal; text-align: center; }
.rs-shift { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; padding-left: 6px; }
.rs-shift > span { font-size: 13px; font-weight: 600; color: #5f6170; padding-right: 2px; }
.rs-shift .o-btn { min-width: 52px; padding: 6px 10px; font-variant-numeric: tabular-nums; }
.rs-later-list { list-style: none; margin: 0; padding: 0; }
.rs-later-list li { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 10px; align-items: baseline; padding: 8px 0; border-top: 1px solid var(--rs-line); }
.rs-later-list li:first-child { border-top: 0; padding-top: 0; }
.rs-t { font-weight: 700; font-variant-numeric: tabular-nums; }
.rs-l b { display: block; overflow-wrap: anywhere; } .rs-l small { display: block; opacity: .72; font-size: 13px; }
.rs-d { font-size: 13px; opacity: .72; white-space: nowrap; }
.rs-livebox { margin-bottom: 12px; }
.rs-livehelp { max-width: 760px; }

/* Kort versjon (Hub og øverst i kjøreplanen): to linjer, Nå og Neste */
.rs-mini { display: grid; gap: 6px; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--rs-line); background: var(--rs-soft); color: var(--rs-ink); text-decoration: none; }
.rs-mini-row { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 28px; }
.rs-tag { display: inline-flex; align-items: center; justify-content: center; min-height: 24px; border-radius: 999px; font-size: 11px; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase; background: var(--rs-card); border: 1px solid var(--rs-line); }
.rs-tag-now { background: var(--rs-acc); color: var(--rs-on-acc); border-color: var(--rs-acc); }
.rs-mini-t { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; }
.rs-mini-w { font-size: 13px; opacity: .8; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rs-stripbox { margin-bottom: 16px; }
.rs-stripbox .rs-mini { background: #fff8f3; border-color: #ffd2b8; }
.h-rs .rs-mini { background: var(--soft); }

/* ------------------------------------------------------------------ lesevisning (appen, delingslenken, portalen uten redigering) */
.rs-pday { margin: 0 0 16px; }
.rs-pday-h { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; margin: 18px 0 8px; font-size: 15px; font-weight: 750; }
.rs-pday-h span::first-letter { text-transform: uppercase; }
.rs-pday-h small { font-size: 13px; font-weight: 600; opacity: .7; font-variant-numeric: tabular-nums; }
.rs-plist { list-style: none; margin: 0; padding: 0; background: var(--rs-card); color: var(--rs-ink); border: 1px solid var(--rs-line); border-radius: 14px; overflow: hidden; }
.rs-psec { padding: 8px 14px; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #fff; background: var(--rs-annet); }
.rs-psec.rs-ph-rigg { background: var(--rs-rigg); } .rs-psec.rs-ph-prover { background: var(--rs-prover); }
.rs-psec.rs-ph-gjennomforing { background: var(--rs-gjennomforing); } .rs-psec.rs-ph-nedrigg { background: var(--rs-nedrigg); }
.rs-pit { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 12px; padding: 10px 14px; border-top: 1px solid var(--rs-line); }
.rs-psec + .rs-pit { border-top: 0; }
.rs-pt { display: flex; flex-direction: column; font-variant-numeric: tabular-nums; }
.rs-pt small { font-size: 13px; opacity: .7; }
.rs-pb { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rs-pb > b { overflow-wrap: anywhere; }
.rs-pmeta, .rs-pnotes { font-size: 13px; opacity: .78; overflow-wrap: anywhere; }
.rs-pnotes { white-space: pre-line; }
.rs-pcues { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 13px; }
.rs-pcues b { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; opacity: .75; }
.rs-st { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 700; background: var(--rs-soft); vertical-align: 1px; }
.rs-st-pagar { background: var(--rs-acc); color: var(--rs-on-acc); }
.rs-pit.rs-pagar { box-shadow: inset 4px 0 0 var(--rs-acc); }
.rs-pit.rs-ferdig, .rs-pit.rs-avlyst { opacity: .55; }
.rs-pit.rs-avlyst .rs-pb > b { text-decoration: line-through; }

/* Deltakerappen og delingslenken */
.rs-app-head h1 { margin: 4px 0 2px; font-size: 26px; line-height: 1.15; }
.rs-app-head p { margin: 0 0 12px; }
.rs-eyebrow { margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--primary, #ff6a1a); }
.rs-sh-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.rs-sh-bar .a-chips { margin: 0; padding: 0; }
.rs-bad h1 { font-size: 22px; margin: 0 0 8px; }
.rs-appbox .rs-clock b { font-size: 28px; }

/* ------------------------------------------------------------------ editoren (arrangørportalen) */
.rs-intro { margin: 0 0 14px; max-width: 820px; }
.rs-startcard h2 { margin-bottom: 4px; }
.rs-start { display: grid; gap: var(--o-gap, 16px); grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); align-items: stretch; margin-top: 14px; }
.rs-opt { display: flex; flex-direction: column; gap: 10px; padding: 16px; border: 1px solid var(--o-line, #e3e3ea); border-radius: 10px; background: #fafafc; min-width: 0; }
.rs-opt h3 { margin: 0; font-size: 15px; }
.rs-opt p { margin: 0; }
.rs-opt > .o-btn, .rs-opt > .rs-btnrow { margin-top: auto; }
.rs-opt > .o-btn { align-self: stretch; }
.rs-none { color: var(--o-mut, #5f6170); }
.rs-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rs-btnrow { display: flex; flex-wrap: wrap; gap: 8px; align-items: stretch; }
.rs-btnrow > .o-btn { flex: 1 1 auto; }
.rs-more { padding: 0; }
.rs-more > summary { cursor: pointer; font-weight: 600; padding: 16px 20px; list-style-position: inside; }
.rs-more[open] > summary { border-bottom: 1px solid var(--o-line, #e3e3ea); }
.rs-more .rs-start, .rs-more .rs-tplrow { padding: 0 20px 20px; }
.rs-tplrow { display: grid; gap: var(--o-gap, 16px); grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.rs-foot { margin-top: var(--o-gap, 16px); }
.rs-log li { font-size: 14px; overflow-wrap: anywhere; }

.rs-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 10px 0; margin: 0 0 6px;
  background: var(--o-bg, #f5f5f7); }
.rs-daychips { display: flex; gap: 6px; overflow-x: auto; flex: 1 1 320px; min-width: 0; padding: 2px 0; }
.rs-daychips button { flex: none; min-height: 34px; padding: 4px 12px; border-radius: 999px; border: 1px solid var(--o-line, #e3e3ea); background: #fff; font: inherit;
  font-size: 13px; cursor: pointer; color: var(--o-ink, #15151b); white-space: nowrap; }
.rs-daychips button.on { background: var(--o-ink, #15151b); border-color: var(--o-ink, #15151b); color: #fff; }
.rs-toggles { display: flex; gap: 14px; }
.rs-toggles .o-check { min-height: 34px; padding-top: 6px; }
.rs-saved { font-size: 13px; color: var(--o-mut, #5f6170); min-width: 110px; text-align: right; }
.rs-saved.err { color: var(--o-err, #b42318); font-weight: 600; }

.rs-day { background: var(--o-card, #fff); border: 1px solid var(--o-line, #e3e3ea); border-radius: var(--o-r, 10px); margin: 0 0 var(--o-gap, 16px); }
.rs-day[hidden] { display: none; }
.rs-day-head { display: grid; grid-template-columns: minmax(0, 1fr) auto 40px; align-items: center; gap: 12px; padding: 14px 16px 10px; }
.rs-day-t { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; min-width: 0; }
.rs-day-t h2 { margin: 0; font-size: 17px; }
.rs-day-t h2::first-letter { text-transform: uppercase; }
.rs-day .rs-day-label { width: auto; min-width: 0; flex: 1 1 200px; max-width: 320px; }
.rs-day-span { font-size: 13px; color: var(--o-mut, #5f6170); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rs-day-foot { display: flex; gap: 8px; padding: 10px 16px 14px; border-top: 1px solid #efeff4; }
.rs-adddays { margin: 0 0 var(--o-gap, 16px); }

/* Radene: samme rutenett for overskrift og rader, så kolonnene står på linje. Tre bredder: bred, middels (to linjer), mobil (kort). */
.rs-ghead, .rs-row { display: grid; column-gap: 6px; padding: 0 12px 0 8px;
  grid-template-columns: 28px 78px 84px 68px minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) 112px 34px;
  grid-template-areas: "h s d e t r l st m" "h . . . sub sub sub . ."; }
.rs-ghead { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--o-mut, #5f6170); padding-top: 4px; padding-bottom: 6px;
  border-bottom: 1px solid var(--o-line, #e3e3ea); }
.rs-ghead span { padding: 0 9px; white-space: nowrap; }
.rs-ghead .g-h { grid-area: h; } .rs-ghead .g-s { grid-area: s; } .rs-ghead .g-d { grid-area: d; } .rs-ghead .g-e { grid-area: e; } .rs-ghead .g-t { grid-area: t; }
.rs-ghead .g-r { grid-area: r; } .rs-ghead .g-l { grid-area: l; } .rs-ghead .g-st { grid-area: st; } .rs-ghead .g-m { grid-area: m; }
.rs-rows { list-style: none; margin: 0; padding: 0; min-height: 44px; }
.rs-row { align-items: start; padding-top: 4px; padding-bottom: 4px; border-bottom: 1px solid #efeff4; background: #fff; position: relative; }
.rs-row:last-child { border-bottom: 0; }
.rs-row:hover { background: #fcfcfe; }
.rs-row .rs-handle { grid-area: h; }
.rs-row .rs-c-start { grid-area: s; } .rs-row .rs-c-dur { grid-area: d; } .rs-row .rs-c-end { grid-area: e; }
.rs-row .rs-c-title { grid-area: t; } .rs-row .rs-c-resp { grid-area: r; } .rs-row .rs-c-loc { grid-area: l; }
.rs-row .rs-sub { grid-area: sub; }
.rs-row .rs-c-status { grid-area: st; } .rs-row .rs-c-menu { grid-area: m; }
.rs-row .rs-m { display: none; }
.rs-c { position: relative; min-width: 0; }
/* Feltene ser ut som tekst til de får pekeren eller fokus (overstyrer portalens standardfelt) */
.rs-row .rs-in, .rs-day .rs-day-label { width: 100%; min-height: 34px; padding: 5px 8px; border: 1px solid transparent; border-radius: 6px; background: transparent;
  font: inherit; font-size: 14px; color: var(--o-ink, #15151b); }
.rs-row .rs-in:hover, .rs-day .rs-day-label:hover { border-color: var(--o-line, #e3e3ea); background: #fff; }
.rs-row .rs-in:focus, .rs-day .rs-day-label:focus { border-color: #9a9cab; background: #fff; outline: 2px solid var(--o-acc, #ff6a1a); outline-offset: 0; }
.rs-row .rs-in::placeholder, .rs-day .rs-day-label::placeholder { color: #a3a5b2; }
.rs-row .rs-time, .rs-row [data-f=duration] { font-variant-numeric: tabular-nums; }
.rs-row .rs-c-start .rs-in { padding-right: 24px; }
.rs-row .rs-title { font-weight: 600; }
.rs-row select.rs-in { padding-right: 4px; cursor: pointer; }
.rs-row[data-timing=flyt] [data-f=start], .rs-row[data-timing=samtidig] [data-f=start] { color: var(--o-mut, #5f6170); }
.rs-timing { position: absolute; right: 2px; top: 5px; width: 22px; height: 24px; border: 0; border-radius: 5px; background: transparent; color: var(--o-mut, #5f6170);
  font-size: 13px; line-height: 24px; text-align: center; cursor: pointer; padding: 0; }
.rs-timing:hover { background: var(--o-bg, #f5f5f7); color: var(--o-ink, #15151b); }
.rs-handle { width: 28px; height: 34px; border: 0; border-radius: 6px; background: transparent; color: #a3a5b2; cursor: grab; touch-action: none; font-size: 16px;
  line-height: 34px; padding: 0; letter-spacing: -2px; }
.rs-handle:hover, .rs-handle:focus-visible { background: var(--o-bg, #f5f5f7); color: var(--o-ink, #15151b); }
.rs-ib { width: 34px; height: 34px; border: 1px solid transparent; border-radius: 8px; background: transparent; cursor: pointer; font-size: 18px; line-height: 1;
  color: var(--o-ink, #15151b); padding: 0; }
.rs-ib:hover, .rs-ib[aria-expanded=true] { border-color: var(--o-line, #e3e3ea); background: #fff; }
.rs-sub { display: flex; flex-wrap: wrap; gap: 4px 6px; padding: 0 0 4px 8px; min-width: 0; }
.rs-sub:empty { display: none; }
.rs-cue, .rs-note, .rs-addcue { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; min-height: 24px; padding: 1px 8px; border-radius: 6px; border: 1px solid transparent;
  font: inherit; font-size: 12px; cursor: pointer; text-align: left; }
.rs-cue { background: #f1f1f5; color: #3b3c48; }
.rs-cue b { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--o-mut, #5f6170); }
.rs-note { background: #fffbea; color: #5c4a00; white-space: pre-line; }
.rs-addcue { background: transparent; color: #a3a5b2; opacity: 0; }
.rs-row:hover .rs-addcue, .rs-addcue:focus-visible { opacity: 1; }
.rs-cue span, .rs-note span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 320px; }
.rs-note span { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.rs-editor.rs-hide-tech .rs-cue, .rs-editor.rs-hide-tech .rs-addcue { display: none; }
.rs-editor.rs-hide-notes .rs-note { display: none; }
/* Status: farge på raden */
.rs-row.rs-st-klar { box-shadow: inset 3px 0 0 var(--o-ok, #157a45); }
.rs-row.rs-st-pagar { background: #fff4ec; box-shadow: inset 3px 0 0 var(--o-acc, #ff6a1a); }
.rs-row.rs-st-ferdig .rs-in { color: var(--o-mut, #5f6170); }
.rs-row.rs-st-avlyst .rs-title { text-decoration: line-through; color: var(--o-mut, #5f6170); }
/* Seksjoner */
.rs-row.rs-secrow { grid-template-columns: 28px minmax(0, 1fr) auto 34px; grid-template-areas: "h st-t sum m"; align-items: center; background: #f7f7fa;
  box-shadow: inset 4px 0 0 var(--rs-annet); }
.rs-secrow.rs-ph-rigg { box-shadow: inset 4px 0 0 var(--rs-rigg); } .rs-secrow.rs-ph-prover { box-shadow: inset 4px 0 0 var(--rs-prover); }
.rs-secrow.rs-ph-gjennomforing { box-shadow: inset 4px 0 0 var(--rs-gjennomforing); } .rs-secrow.rs-ph-nedrigg { box-shadow: inset 4px 0 0 var(--rs-nedrigg); }
.rs-secrow .rs-sec-t { grid-area: st-t; } .rs-secrow .rs-sec-sum { grid-area: sum; } .rs-secrow .rs-c-menu { grid-area: m; }
.rs-secrow .rs-in { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; max-width: 420px; }
.rs-sec-sum { font-size: 12px; color: var(--o-mut, #5f6170); white-space: nowrap; font-variant-numeric: tabular-nums; }
.rs-day .rs-ghead, .rs-day .rs-row { --rs-rigg: #2f5fb3; --rs-prover: #7a4cc2; --rs-gjennomforing: #d9530f; --rs-nedrigg: #5f6170; --rs-annet: #3b3c48; }
/* Dra og slipp */
.rs-row.rs-lift { z-index: 3; background: #fff; box-shadow: 0 8px 24px rgba(0, 0, 0, .14), inset 3px 0 0 var(--o-acc, #ff6a1a); border-radius: 8px; }
body.rs-dragging, body.rs-dragging * { cursor: grabbing !important; user-select: none; -webkit-user-select: none; }
.rs-rows.rs-drop { background: #fff8f3; }
.rs-row.rs-new { animation: rs-new 1.2s ease-out; }
@keyframes rs-new { from { background: #ffe8db; } to { background: #fff; } }
.rs-empty-day { padding: 12px 16px; color: var(--o-mut, #5f6170); font-size: 14px; }

/* Meny for rad og dag */
.rs-pop { position: absolute; z-index: 40; min-width: 230px; max-width: 290px; padding: 6px; background: #fff; border: 1px solid var(--o-line, #e3e3ea); border-radius: 10px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .16); }
.rs-pop button { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 36px; padding: 6px 10px; border: 0; border-radius: 6px;
  background: transparent; font: inherit; font-size: 14px; text-align: left; cursor: pointer; color: var(--o-ink, #15151b); }
.rs-pop button:hover, .rs-pop button:focus-visible { background: var(--o-bg, #f5f5f7); outline: none; }
.rs-pop button.danger { color: var(--o-err, #b42318); }
.rs-pop button[aria-checked=true]::after { content: "✓"; color: var(--o-acc, #ff6a1a); font-weight: 700; }
.rs-pop hr { border: 0; border-top: 1px solid #efeff4; margin: 4px 2px; }
.rs-pop-date { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; padding: 4px 6px 6px; }
.rs-pop-date input { min-height: 34px; }
.rs-plus1 { position: absolute; right: 2px; bottom: -2px; font-size: 10px; font-weight: 700; color: var(--o-acc, #ff6a1a); pointer-events: none; }
.rs-c-start .rs-plus1 { right: 26px; }
.rs-pop .rs-pop-h { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--o-mut, #5f6170); padding: 6px 10px 2px; }

/* Dialog for alle feltene (og redigering på mobil) */
.rs-dlg { width: min(720px, calc(100vw - 24px)); max-height: calc(100vh - 24px); padding: 0; border: 0; border-radius: 14px; box-shadow: 0 24px 64px rgba(0, 0, 0, .3); }
.rs-dlg::backdrop { background: rgba(10, 10, 16, .5); }
.rs-dlg-f { display: flex; flex-direction: column; max-height: calc(100vh - 24px); }
.rs-dlg-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--o-line, #e3e3ea); }
.rs-dlg-head h2 { margin: 0; font-size: 17px; }
.rs-dlg-body { padding: 16px 18px; overflow-y: auto; }
.rs-dlg-foot { display: flex; gap: 8px; align-items: center; padding: 12px 18px; border-top: 1px solid var(--o-line, #e3e3ea); padding-bottom: calc(12px + env(safe-area-inset-bottom)); }
.rs-dlg-sp { flex: 1; }
.rs-times { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; border: 0; padding: 0; margin: 0; }
.rs-times legend, .rs-timing-f legend, .rs-fs legend { font-size: 13px; font-weight: 600; padding: 0; margin-bottom: 6px; }
.rs-timing-f, .rs-fs { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0 18px; }
.rs-timing-f legend, .rs-fs legend { width: 100%; }
.rs-timing-f .o-check, .rs-fs .o-check { min-height: 32px; padding-top: 4px; }
.rs-dlg [hidden] { display: none !important; }

/* Deling */
.rs-share { margin-bottom: var(--o-gap, 16px); }
.rs-share > .o-card { display: flex; flex-direction: column; gap: 12px; }
.rs-share > .o-card > * { margin: 0; }
.rs-share h2 { margin: 0; }
.rs-linkbox { display: grid; grid-template-columns: minmax(0, 1fr) 168px; grid-template-areas: "url qr" "btn qr"; gap: 10px 16px; align-items: start; }
.rs-linkbox .o-link { grid-area: url; } .rs-linkbox .rs-btnrow { grid-area: btn; } .rs-linkbox .rs-qr { grid-area: qr; }
.rs-qr { background: #fff; border: 1px solid var(--o-line, #e3e3ea); border-radius: 10px; padding: 6px; line-height: 0; }
.rs-qr svg { width: 100%; height: auto; }
.rs-shareform { display: flex; flex-direction: column; gap: 12px; }
.rs-notify { border-top: 1px solid #efeff4; padding-top: 12px; }
.rs-share .o-field input[type=date] { max-width: 220px; }

/* ------------------------------------------------------------------ mellomstor skjerm: ansvarlig og sted på egen linje */
@media (max-width: 1320px) {
  /* Linje 1: tid og aktivitet over hele bredden. Linje 2: ansvarlig, sted, status og meny, også ut til høyre kant. */
  .rs-ghead, .rs-row { grid-template-columns: 28px 78px 84px 68px minmax(0, 1fr) minmax(0, 1fr) 112px 34px;
    grid-template-areas: "h s d e t t t t" "h . . . r l st m" "h . . . sub sub sub sub"; }
  .rs-ghead .g-r, .rs-ghead .g-l, .rs-ghead .g-st, .rs-ghead .g-m { display: none; }
  .rs-ghead { grid-template-areas: "h s d e t t t t"; }
  .rs-row .rs-c-resp, .rs-row .rs-c-loc, .rs-row .rs-c-status, .rs-row .rs-c-menu { margin-top: 2px; }
}
/* Mobil: kort per rad, trykk for å endre (dialog), håndtaket står igjen til venstre */
@media (max-width: 900px) {
  .rs-toolbar { position: static; }
  .rs-saved { min-width: 0; text-align: left; }
  .rs-ghead { display: none; }
  .rs-row { grid-template-columns: 32px minmax(0, 1fr); grid-template-areas: "h m"; padding: 6px 8px 6px 4px; column-gap: 4px; }
  .rs-row > .rs-c, .rs-row .rs-sub { display: none; }
  .rs-row .rs-m { display: grid; grid-area: m; grid-template-columns: 62px minmax(0, 1fr); gap: 2px 10px; width: 100%; padding: 6px 4px; border: 0; background: transparent;
    font: inherit; text-align: left; color: var(--o-ink, #15151b); cursor: pointer; border-radius: 8px; min-height: 44px; }
  .rs-row .rs-handle { height: 44px; line-height: 44px; }
  .rs-m-t { grid-row: 1 / span 3; font-weight: 700; font-variant-numeric: tabular-nums; font-size: 15px; display: flex; flex-direction: column; }
  .rs-m-t small { font-weight: 500; font-size: 13px; color: var(--o-mut, #5f6170); }
  .rs-m-a { font-weight: 600; font-size: 15px; overflow-wrap: anywhere; }
  .rs-m-i { font-size: 13px; color: var(--o-mut, #5f6170); overflow-wrap: anywhere; }
  .rs-m-st { justify-self: start; }
  .rs-row.rs-secrow { grid-template-columns: 32px minmax(0, 1fr) 44px; grid-template-areas: "h st-t m"; align-items: center; }
  .rs-secrow .rs-in, .rs-secrow .rs-ib { min-height: 44px; height: 44px; }
  .rs-secrow .rs-ib { width: 44px; }
  .rs-secrow .rs-sec-sum { display: none; }
  .rs-secrow > .rs-c-menu, .rs-secrow > .rs-sec-t { display: block; }
  .rs-day-head { grid-template-columns: minmax(0, 1fr) 40px; padding: 12px 12px 8px; }
  .rs-day-span { grid-column: 1; grid-row: 2; }
  .rs-day-head .rs-ib { grid-column: 2; grid-row: 1; }
  .rs-day .rs-day-label { max-width: none; flex-basis: 100%; }
  .rs-day-foot { padding: 10px 12px 12px; }
  .rs-day-foot .o-btn { flex: 1 1 0; }
  .rs-nn { grid-template-columns: 1fr; }
  .rs-tplrow, .rs-pair { grid-template-columns: 1fr; }
  .rs-linkbox { grid-template-columns: minmax(0, 1fr) 120px; }
  .rs-ctrl > .o-btn { flex: 1 1 calc(50% - 4px); }
  .rs-ctrl .rs-go { flex-basis: 100%; }
  .rs-shift { flex: 1 1 100%; padding-left: 0; display: grid; grid-template-columns: auto repeat(4, minmax(0, 1fr)); }
  .rs-shift .o-btn { min-width: 0; }
  .rs-dlg { width: 100vw; max-width: 100vw; max-height: 100%; height: 100%; border-radius: 0; margin: 0; }
  .rs-dlg-f { max-height: 100%; height: 100%; }
  .rs-dlg-head { padding-top: calc(14px + env(safe-area-inset-top)); }
  .rs-dlg-body { flex: 1; }
}
@media (max-width: 560px) {
  .rs-cues { grid-template-columns: 1fr; }
  .rs-clock b { font-size: 28px; }
  .rs-item h3 { font-size: 20px; }
  .rs-linkbox { grid-template-columns: 1fr; grid-template-areas: "url" "btn" "qr"; }
  .rs-linkbox .rs-qr { width: 168px; }
  .rs-times { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
}

/* ------------------------------------------------------------------ scenevisning (?vis=scene) */
.rs-stage-body { --card: #16161d; --text: #f5f5f7; --line: rgba(255, 255, 255, .14); --soft: rgba(255, 255, 255, .08); --primary: #ff7350; --on-primary: #1a0a10;
  margin: 0; min-height: 100vh; background: #0b0b10; color: #f5f5f7; font: 18px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  padding: calc(16px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left)); }
.rs-stage-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; font-size: 16px; }
.rs-stage-head a { color: #f5f5f7; opacity: .7; min-height: 44px; display: inline-flex; align-items: center; }
.rs-stage .rs-clock b { font-size: clamp(40px, 6vw, 72px); }
.rs-stage .rs-item h3 { font-size: clamp(28px, 4vw, 52px); }
.rs-stage .rs-next .rs-item h3 { font-size: clamp(22px, 3vw, 38px); }
.rs-stage .rs-item-time, .rs-stage .rs-item-when { font-size: clamp(17px, 2vw, 24px); }
.rs-stage .rs-card { padding: 22px 24px; border-radius: 18px; }

/* ------------------------------------------------------------------ utskrift */
.rs-print-body { margin: 0; background: #f5f5f7; color: #15151b; font: 13px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
.rs-print-bar { position: sticky; top: 0; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 16px; background: #fff; border-bottom: 1px solid #e3e3ea;
  padding-top: calc(10px + env(safe-area-inset-top)); }
.rs-print-sp { flex: 1; }
.rs-print-f { margin: 0; } .rs-print-f label { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; }
.rs-print-f select { min-height: 36px; border: 1px solid #cfd0d9; border-radius: 8px; padding: 4px 8px; font: inherit; background: #fff; }
.rs-pbtn { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 6px 14px; border-radius: 8px; border: 1px solid #cfd0d9; background: #fff;
  color: #15151b; font: 600 13px/1.2 inherit; font-family: inherit; text-decoration: none; cursor: pointer; }
.rs-pbtn.on { background: #15151b; color: #fff; border-color: #15151b; }
.rs-pbtn.main { background: #ff6a1a; border-color: #ff6a1a; color: #15151b; }
.rs-print { max-width: 1120px; margin: 16px auto; padding: 24px 28px; background: #fff; border: 1px solid #e3e3ea; border-radius: 10px; }
.rs-print-head h1 { margin: 0; font-size: 22px; }
.rs-print-head p { margin: 4px 0 12px; color: #5f6170; }
.rs-print-day h2 { display: flex; justify-content: space-between; gap: 12px; margin: 18px 0 6px; font-size: 15px; }
.rs-print-day h2::first-letter { text-transform: uppercase; }
.rs-print-day h2 small { font-weight: 500; color: #5f6170; font-variant-numeric: tabular-nums; }
.rs-ptable { width: 100%; border-collapse: collapse; table-layout: fixed; }
.rs-ptable th, .rs-ptable td { text-align: left; vertical-align: top; padding: 5px 6px; border-bottom: 1px solid #e3e3ea; overflow-wrap: anywhere; }
.rs-ptable thead th { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: #5f6170; border-bottom: 1.5px solid #15151b; }
.rs-ptable .c-t { width: 88px; font-variant-numeric: tabular-nums; white-space: nowrap; } .rs-ptable .c-d { width: 70px; }
.rs-ptable .c-r, .rs-ptable .c-l { width: 14%; } .rs-ptable .c-q { width: 22%; }
.rs-ptable .c-q span { display: block; }
.rs-ptn { display: block; color: #5f6170; font-size: 12px; white-space: pre-line; }
.rs-ptr-sec th { color: #fff; background: #3b3c48; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; padding: 5px 8px; }
.rs-ptr-sec.rs-ph-rigg th { background: #2f5fb3; } .rs-ptr-sec.rs-ph-prover th { background: #7a4cc2; }
.rs-ptr-sec.rs-ph-gjennomforing th { background: #d9530f; } .rs-ptr-sec.rs-ph-nedrigg th { background: #5f6170; }
.rs-ptable tr.rs-ferdig td, .rs-ptable tr.rs-avlyst td { color: #8d8f9c; }
.rs-print-foot { margin-top: 18px; font-size: 11px; color: #8d8f9c; }
@page { size: A4 landscape; margin: 12mm; }
@media print {
  .rs-print-bar { display: none; }
  .rs-print-body { background: #fff; }
  .rs-print { max-width: none; margin: 0; padding: 0; border: 0; }
  .rs-ptr-sec th, .rs-psec { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .rs-ptable tr { break-inside: avoid; }
  .rs-print-day h2 { break-after: avoid; }
}
@media (max-width: 700px) {
  .rs-print { margin: 0; border-radius: 0; border-left: 0; border-right: 0; padding: 16px; }
  .rs-ptable, .rs-ptable tbody, .rs-ptable tr, .rs-ptable td { display: block; }
  .rs-ptable thead { display: none; }
  .rs-ptable tr { padding: 6px 0; border-bottom: 1px solid #e3e3ea; }
  .rs-ptable td { border: 0; padding: 1px 0; width: auto !important; }
  .rs-ptable td.c-t { font-weight: 700; }
  .rs-ptr-sec th { display: block; }
}
@media (prefers-reduced-motion: reduce) { .rs-row.rs-new { animation: none; } }
