@font-face{font-family:"Fraunces";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/fraunces-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Fraunces";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/fraunces-latin-600-normal.woff2") format("woff2");}
@font-face{font-family:"Fraunces";font-weight:700;font-style:normal;font-display:swap;src:url("fonts/fraunces-latin-700-normal.woff2") format("woff2");}
@font-face{font-family:"Fraunces";font-weight:500;font-style:italic;font-display:swap;src:url("fonts/fraunces-latin-500-italic.woff2") format("woff2");}
@font-face{font-family:"Fraunces";font-weight:600;font-style:italic;font-display:swap;src:url("fonts/fraunces-latin-600-italic.woff2") format("woff2");}
@font-face{font-family:"Barlow Condensed";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/barlow-condensed-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/barlow-condensed-latin-600-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-style:normal;font-display:swap;src:url("fonts/barlow-condensed-latin-700-normal.woff2") format("woff2");}
@font-face{font-family:"Big Shoulders Display";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/big-shoulders-display-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Big Shoulders Display";font-weight:700;font-style:normal;font-display:swap;src:url("fonts/big-shoulders-display-latin-700-normal.woff2") format("woff2");}
@font-face{font-family:"Big Shoulders Display";font-weight:900;font-style:normal;font-display:swap;src:url("fonts/big-shoulders-display-latin-900-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow";font-weight:400;font-style:normal;font-display:swap;src:url("fonts/barlow-latin-400-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/barlow-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/barlow-latin-600-normal.woff2") format("woff2");}
:root {
  --blue: #0a3d91;
  --blue-deep: #072a66;
  --garnet: #9b1342;
  --gold: #f0b323;
  --ink: #0b1b3f;
  --muted: #56617a;
  --paper: #ffffff;
  --page: #e9edf5;
  --line: #d3d9e6;
  --ok: #17703d;
  --display: "Big Shoulders Display", "Arial Narrow", "Helvetica Neue", sans-serif;
  --cond: "Barlow Condensed", "Arial Narrow", sans-serif;
  --text: "Barlow", "Helvetica Neue", Arial, sans-serif;
  box-sizing: border-box;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
*, *::before, *::after { box-sizing: inherit; }
body {
  margin: 0;
  font-family: var(--text);
  font-size: 17px;
  line-height: 1.5;
  color: var(--ink);
  background: var(--page);
}
a { color: var(--blue); }
a:hover { color: var(--garnet); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
h1, h2 { font-family: var(--display); line-height: 1.05; margin: 0 0 .5em; }
h2 { font-size: 1.7rem; font-weight: 700; color: var(--blue); }
.muted { color: var(--muted); }
.small { font-size: .85em; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.btn {
  display: inline-block; border: 0; cursor: pointer;
  font: 600 1rem/1 var(--text); text-decoration: none;
  padding: .85em 1.4em; border-radius: 6px;
  background: var(--garnet); color: #fff;
}
.btn:hover { background: #7d0f35; color: #fff; }
.btn-outline { background: transparent; color: var(--blue); box-shadow: inset 0 0 0 2px var(--blue); }
.btn-outline:hover { background: var(--blue); color: #fff; }
.btn-danger { background: transparent; color: var(--garnet); box-shadow: inset 0 0 0 2px var(--garnet); }
.btn-danger:hover { background: var(--garnet); color: #fff; }
.linklike { background: none; border: 0; color: inherit; font: inherit; cursor: pointer; text-decoration: underline; }

.flash {
  max-width: 760px; margin: 1rem auto 0; padding: .8rem 1.1rem;
  background: var(--blue-deep); color: #fff; border-radius: 6px;
  border-left: 6px solid var(--gold);
}
.flash p { margin: 0; }

/* ---------- Billetten ---------- */
.ticket {
  container: ticket / inline-size;
  display: grid;
  grid-template-columns: 1fr 26%;
  background: var(--paper);
  border-radius: 1.4cqi;
  overflow: hidden;
  position: relative;
  box-shadow: 0 1px 0 var(--line), 0 18px 40px -24px rgba(7, 42, 102, .55);
}
.ticket-main, .ticket-stub { --k: 1cqi; }
.ticket-main { position: relative; overflow: hidden; min-width: 0; }
.stripes {
  position: absolute; inset: 0 auto 0 0; width: calc(var(--k) * 6.5);
  background: repeating-linear-gradient(90deg, var(--blue) 0 33.3%, var(--garnet) 33.3% 66.6%, var(--blue) 66.6% 100%);
}
.stripes::after {
  content: ""; position: absolute; inset: 0 0 0 auto; width: calc(var(--k) * .55); background: var(--gold);
}
.balls {
  position: absolute; right: calc(var(--k) * -3); bottom: calc(var(--k) * -6);
  width: calc(var(--k) * 40); height: auto; opacity: .09;
}
.balls circle { fill: none; stroke: var(--blue); stroke-width: 3; }
.balls path { fill: none; stroke: var(--blue); stroke-width: 2.4; stroke-linecap: round; }
.balls .patch { fill: var(--blue); stroke: none; }
.balls .handball circle, .balls .handball path { stroke: var(--garnet); }

.ticket-body {
  position: relative;
  padding: calc(var(--k) * 3) calc(var(--k) * 3.5) calc(var(--k) * 2.8) calc(var(--k) * 10);
  display: flex; flex-direction: column; height: 100%;
}
.ticket-head {
  display: flex; justify-content: space-between; gap: 1em;
  font: 700 calc(var(--k) * 1.7)/1 var(--display);
  letter-spacing: .12em; text-transform: uppercase; color: var(--garnet);
  padding-bottom: calc(var(--k) * 1.2);
  border-bottom: calc(var(--k) * .25) solid var(--ink);
}
.t-name {
  font: 900 calc(var(--k) * 11.5)/.86 var(--display);
  color: var(--blue); margin: calc(var(--k) * 1.8) 0 0; letter-spacing: -.01em;
}
.t-event {
  font: 700 calc(var(--k) * 3.4)/1 var(--display); color: var(--garnet);
  margin: calc(var(--k) * .4) 0 calc(var(--k) * 2.2);
}
.lbl {
  display: block; font: 600 calc(var(--k) * 1.35)/1.2 var(--text);
  color: var(--muted); letter-spacing: .06em; text-transform: uppercase;
  margin-bottom: calc(var(--k) * .5);
}
.halves { display: grid; grid-template-columns: 1fr 1fr; gap: calc(var(--k) * 2.4); }
.half { border-left: calc(var(--k) * .5) solid var(--gold); padding-left: calc(var(--k) * 1.4); }
.half .time { display: block; font: 700 calc(var(--k) * 3.6)/1 var(--display); color: var(--ink); }
.half .place { display: block; font: 500 calc(var(--k) * 1.75)/1.25 var(--text); margin-top: calc(var(--k) * .5); }
.holders { margin-top: auto; padding-top: calc(var(--k) * 2.2); }
.holders .names { font: 700 calc(var(--k) * 2.7)/1.1 var(--display); color: var(--ink); }
.t-rsvp {
  margin: calc(var(--k) * 1.4) 0 0; font: 500 calc(var(--k) * 1.45)/1.3 var(--text); color: var(--muted);
}

.ticket-stub {
  position: relative;
  border-left: calc(var(--k) * .3) dashed var(--line);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: calc(var(--k) * 2.4); text-align: center;
  background: #fff;
}
.ticket-stub::before, .ticket-stub::after {
  content: ""; position: absolute; left: calc(var(--k) * -1.8);
  width: calc(var(--k) * 3.3); height: calc(var(--k) * 3.3); border-radius: 50%; background: var(--page);
}
.ticket-stub::before { top: calc(var(--k) * -1.65); }
.ticket-stub::after { bottom: calc(var(--k) * -1.65); }
.qr { width: 100%; max-width: calc(var(--k) * 19); aspect-ratio: 1; }
.qr svg { width: 100%; height: 100%; display: block; }
.stub-text { margin: calc(var(--k) * 1.6) 0 0; font: 700 calc(var(--k) * 2)/1.1 var(--display); color: var(--blue); }
.stub-no { margin: calc(var(--k) * .8) 0 0; font: 700 calc(var(--k) * 1.5)/1 var(--display); letter-spacing: .1em; color: var(--garnet); }

/* smal skærm: stub under billetten */
@container ticket (max-width: 560px) {
  .ticket-main, .ticket-stub { --k: 2.3cqi; }
  .t-name { font-size: calc(var(--k) * 8.2); }
  .ticket-body { padding-left: calc(var(--k) * 6.5); padding-right: calc(var(--k) * 2.5); }
  .stripes { width: calc(var(--k) * 3.6); }
  .halves { grid-template-columns: 1fr; gap: calc(var(--k) * 1.6); }
}
@media (max-width: 600px) {
  .program div { grid-template-columns: 5rem 1fr; }
  .ticket { grid-template-columns: 1fr; border-radius: 10px; }
  .ticket-stub {
    border-left: 0; border-top: 2px dashed var(--line);
    flex-direction: row; gap: 1rem; justify-content: flex-start; text-align: left; padding: 1rem 1.2rem;
    background: #f3f5fa;
  }
  .ticket-stub::before, .ticket-stub::after { display: none; }
  .qr { width: 96px; flex: none; }
  .stub-text { margin: 0; font-size: 1.2rem; }
  .stub-no { font-size: .95rem; }
}

/* ---------- Gæsteside ---------- */
.guest-wrap { max-width: 860px; margin: 0 auto; padding: 2rem 1rem 4rem; display: grid; gap: 1.5rem; }
.panel { background: var(--paper); border-radius: 10px; padding: 1.6rem 1.8rem; border: 1px solid var(--line); }
.panel h2 + * { margin-top: 0; }
.panel h2:not(:first-child) { margin-top: 1.4em; }
.program { margin: 0; display: grid; gap: 1rem; }
.program div { display: grid; grid-template-columns: 6.5rem 1fr; gap: 1rem; }
.program dt { font: 700 1.5rem/1.2 var(--display); color: var(--garnet); }
.program dd { margin: 0; }

.rsvp-form { display: grid; gap: 1rem; }
.person { border: 0; border-top: 1px solid var(--line); padding: 1rem 0 0; margin: 0; }
.person legend { font: 700 1.45rem/1 var(--display); color: var(--ink); padding: 0 .5rem 0 0; }
.rsvp-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .7rem; flex-wrap: wrap; }
.rsvp-label { font-weight: 600; }
.seg { display: inline-flex; border-radius: 6px; box-shadow: inset 0 0 0 2px var(--blue); overflow: hidden; }
.seg label { position: relative; }
.seg input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.seg span { display: block; padding: .55em 1.1em; font-weight: 600; color: var(--blue); }
.seg label + label span { border-left: 2px solid var(--blue); }
.seg input:checked + span { background: var(--blue); color: #fff; }
.seg input[value="no"]:checked + span { background: var(--muted); color: #fff; }
.seg input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: -3px; }
.locked { font-weight: 700; color: var(--ok); }
.note { margin: .5rem 0 0; font-size: .9rem; color: var(--muted); }
.rsvp-form .btn { justify-self: start; }
.contact { margin: 1.4rem 0 0; padding-top: 1rem; border-top: 1px solid var(--line); }

.center-page { max-width: 560px; margin: 0 auto; padding: 18vh 1.5rem 3rem; }
.big { font-size: clamp(2.4rem, 8vw, 3.6rem); font-weight: 900; color: var(--blue); }
.login { display: grid; gap: .6rem; margin-top: 1.5rem; }
.login input, .new-inv input, .edit-form input, .edit-form select {
  font: inherit; padding: .6em .7em; border: 1.5px solid var(--line); border-radius: 6px; width: 100%; background: #fff; color: var(--ink);
}
.error { color: var(--garnet); margin: 0; }
.login .btn { justify-self: start; }

/* ---------- Admin ---------- */
.admin-bar {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: .9rem clamp(1rem, 4vw, 2.5rem); background: var(--blue-deep); color: #fff;
  border-bottom: 5px solid var(--garnet);
}
.admin-bar h1 { font-size: 1.6rem; margin: 0; }
.admin-bar a { color: #fff; text-decoration: none; }
.admin-wrap { max-width: 1060px; margin: 0 auto; padding: 1.5rem 1rem 4rem; display: grid; gap: 1.5rem; }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; }
.stat { background: var(--paper); border-radius: 10px; padding: 1.1rem 1.3rem; border-top: 5px solid var(--blue); }
.stat:nth-child(2) { border-top-color: var(--garnet); }
.stat:nth-child(3) { border-top-color: var(--gold); }
.stat h2 { font-size: 1.3rem; margin: 0 0 .3rem; }
.stat p { margin: 0; color: var(--muted); }
.stat b { font: 900 2.6rem/1 var(--display); color: var(--ink); margin-right: .2rem; }
.new-inv { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .8rem 1rem; align-items: end; }
.new-inv label, .edit-form label { display: grid; gap: .3rem; font-weight: 600; font-size: .92rem; }
.new-inv .wide, .edit-form .wide { grid-column: 1 / -1; }
.new-inv .btn { justify-self: start; }
.list-head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: .8rem; }
.list-actions { display: flex; gap: .6rem; flex-wrap: wrap; }
.table-scroll { overflow-x: auto; margin: 1rem 0; }
.inv-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.inv-table th { text-align: left; font-weight: 600; color: var(--muted); padding: .4rem .6rem; border-bottom: 2px solid var(--ink); }
.inv-table td { padding: .45rem .6rem; vertical-align: top; }
.inv-table tbody { border-bottom: 1px solid var(--line); }
.inv-table .num { font: 700 1.1rem/1.2 var(--display); color: var(--garnet); }
.row-actions { display: flex; flex-direction: column; gap: .2rem; white-space: nowrap; }
.chip { display: inline-block; font-size: .8rem; font-weight: 700; padding: .15em .6em; border-radius: 99px; }
.chip.yes { background: #dcf1e3; color: var(--ok); }
.chip.no { background: #eceef3; color: var(--muted); }
.chip.open { background: #fff3d6; color: #8a5a00; }
.edit-form { display: grid; gap: 1rem; }
.edit-person { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: .8rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.edit-actions { display: flex; gap: 1rem; align-items: center; }
.danger-zone { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); }
@media (max-width: 560px) { .edit-person { grid-template-columns: 1fr 1fr; } .edit-person label:first-of-type { grid-column: 1 / -1; } }

/* ---------- Print ---------- */
.print-toolbar {
  max-width: 210mm; margin: 1.5rem auto; display: flex; gap: 1rem; align-items: center; justify-content: space-between;
}
.print-toolbar p { margin: 0; color: var(--muted); }
.sheet {
  width: 210mm; height: 297mm; margin: 0 auto 1.5rem; background: #fff;
  display: flex; flex-direction: column; justify-content: space-evenly; align-items: center;
  box-shadow: 0 2px 12px rgba(0,0,0,.12);
}
.ticket.print {
  width: 200mm; height: 95mm; border-radius: 3mm;
  box-shadow: none; outline: .2mm dashed #c4cad6; outline-offset: 0;
}
.print-view { --page: #fff; }
@page { size: A4 portrait; margin: 0; }
@media print {
  body { background: #fff; }
  .print-toolbar, .flash { display: none; }
  .sheet { margin: 0; box-shadow: none; page-break-after: always; break-after: page; }
  .sheet:last-child { page-break-after: auto; break-after: auto; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ---------- Admin: designvalg ---------- */
.design-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.design-list li { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.design-list strong { min-width: 7.5rem; }
.print-pick { display: flex; gap: 1rem; align-items: end; flex-wrap: wrap; }
.print-pick label { display: grid; gap: .3rem; font-weight: 600; font-size: .92rem; }
.print-pick select { font: inherit; padding: .6em .7em; border: 1.5px solid var(--line); border-radius: 6px; }
.switcher {
  display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; justify-content: center;
  padding: .5rem 1rem; background: #fff8e1; border-bottom: 1px solid #ecd9a0; font-size: .9rem;
}
.switcher a { padding: .25em .8em; border-radius: 99px; text-decoration: none; font-weight: 600; }
.switcher a[aria-current] { background: var(--ink); color: #fff; }
.switcher-note { color: #8a5a00; margin-left: .6rem; }
@media print { .switcher { display: none; } }

/* ================= Design B: Holdkort ================= */
.ticket.tb { grid-template-columns: 33% 1fr; }
.tb-pitch, .tb-sheet { --k: 1cqi; }
.tb-pitch {
  position: relative; background: var(--blue);
  background-image: repeating-linear-gradient(180deg, rgba(255,255,255,.045) 0 10%, transparent 10% 20%);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-height: calc(var(--k) * 30);
}
.tb-lines { position: absolute; inset: 0; width: 100%; height: 100%; }
.tb-lines * { fill: none; stroke: rgba(255,255,255,.75); stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.tb-circle {
  position: relative; width: calc(var(--k) * 21); aspect-ratio: 1; border-radius: 50%;
  border: 1.4px solid rgba(255,255,255,.75); background: var(--blue);
  display: grid; place-items: center;
}
.tb-circle .qr { width: 66%; max-width: none; background: #fff; padding: 7%; border-radius: calc(var(--k) * .6); box-sizing: content-box; }
.tb-scan {
  position: relative; margin: calc(var(--k) * 1.2) 0 0; padding: .1em .6em; background: var(--gold); color: var(--ink);
  font: 700 calc(var(--k) * 1.7)/1.3 var(--cond); letter-spacing: .08em; text-transform: uppercase; border-radius: 2px;
}
.tb-sheet { padding: calc(var(--k) * 3) calc(var(--k) * 3.6); display: flex; flex-direction: column; min-width: 0; }
.tb-head {
  display: flex; justify-content: space-between; font: 700 calc(var(--k) * 1.7)/1 var(--cond);
  letter-spacing: .14em; text-transform: uppercase; color: var(--garnet);
}
.tb-name {
  font: 700 calc(var(--k) * 8.6)/.9 var(--cond); text-transform: uppercase; letter-spacing: .02em;
  color: var(--ink); margin: calc(var(--k) * 1.4) 0 calc(var(--k) * .6);
}
.tb-sub { margin: 0 0 calc(var(--k) * 2); font: 500 calc(var(--k) * 2.1)/1.2 var(--cond); color: var(--blue); }
.tb-table { border-collapse: collapse; width: 100%; font-size: calc(var(--k) * 1.8); }
.tb-table th, .tb-table td { text-align: left; padding: calc(var(--k) * .8) calc(var(--k) * 1) calc(var(--k) * .8) 0; border-top: calc(var(--k) * .15) solid var(--line); vertical-align: baseline; }
.tb-table tr:last-child th, .tb-table tr:last-child td { border-bottom: calc(var(--k) * .15) solid var(--line); }
.tb-table th { font: 600 calc(var(--k) * 1.55)/1 var(--cond); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); white-space: nowrap; width: 1%; }
.tb-time { font: 700 calc(var(--k) * 2.8)/1 var(--cond); color: var(--garnet); width: 1%; white-space: nowrap; }
.tb-squad { margin-top: auto; padding-top: calc(var(--k) * 1.8); }
.tb-lbl { display: block; font: 600 calc(var(--k) * 1.5)/1 var(--cond); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: calc(var(--k) * .8); }
.tb-squad ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: calc(var(--k) * .5) calc(var(--k) * 2); }
.tb-squad ul.n1 { grid-template-columns: 1fr; }
.tb-squad li { font: 700 calc(var(--k) * 2.4)/1.15 var(--cond); color: var(--ink); display: flex; align-items: center; gap: calc(var(--k) * .9); min-width: 0; }
.tb-squad li::before { content: ""; flex: none; width: calc(var(--k) * 1); height: calc(var(--k) * 1); border-radius: 50%; background: var(--garnet); box-shadow: 0 0 0 calc(var(--k) * .35) #f6d9e3; }
.tb-rsvp { margin: calc(var(--k) * 1.4) 0 0; font: 500 calc(var(--k) * 1.45)/1.3 var(--text); color: var(--muted); }
@container ticket (max-width: 560px) {
  .tb-pitch, .tb-sheet { --k: 2.3cqi; }
  .tb-name { font-size: calc(var(--k) * 7.4); }
  .tb-circle { width: calc(var(--k) * 15); }
}

/* Gæsteside B */
body.design-b { background: #edf2f9; background-image: linear-gradient(90deg, rgba(10,61,145,.05) 1px, transparent 1px); background-size: 48px 48px; }
.design-b .panel { border: 0; border-radius: 4px; border-top: 6px solid var(--blue); }
.design-b .panel h2 { font: 700 1.6rem/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; color: var(--ink); }
.design-b .program dt { font: 700 1.5rem/1.2 var(--cond); }
.design-b .person legend { font: 700 1.35rem/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; }
.design-b .btn { background: var(--blue); border-radius: 3px; text-transform: uppercase; letter-spacing: .06em; font-family: var(--cond); font-size: 1.1rem; }
.design-b .btn:hover { background: var(--blue-deep); }
.design-b .btn-outline { background: transparent; color: var(--blue); }
.design-b .seg { border-radius: 3px; }
.design-b .ticket.tb { border-radius: 6px; }

/* ================= Design C: Trøjen ================= */
.ticket.tc { grid-template-columns: 54% 1fr; }
.tc-shirt, .tc-info { --k: 1cqi; }
.tc-shirt {
  position: relative; overflow: hidden; color: #fff; text-align: center;
  background: repeating-linear-gradient(90deg, var(--blue) 0 calc(var(--k) * 6.75), var(--garnet) calc(var(--k) * 6.75) calc(var(--k) * 13.5));
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: calc(var(--k) * 5) calc(var(--k) * 2) calc(var(--k) * 3);
  min-height: calc(var(--k) * 40);
}
.tc-shirt::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, rgba(0,0,0,0) 30%, rgba(4,20,52,.35) 100%); pointer-events: none; }
.tc-shirt > * { position: relative; z-index: 1; }
.tc-collar {
  position: absolute; top: calc(var(--k) * -6); left: 50%; transform: translateX(-50%);
  width: calc(var(--k) * 18); height: calc(var(--k) * 10); border-radius: 0 0 50% 50% / 0 0 100% 100%;
  background: var(--blue-deep); border-bottom: calc(var(--k) * .7) solid var(--gold);
}
.tc-top { font: 600 calc(var(--k) * 1.6)/1 var(--text); letter-spacing: .3em; text-transform: uppercase; opacity: .9; }
.tc-name {
  font: 900 calc(var(--k) * 6)/1 var(--display); text-transform: uppercase; letter-spacing: .1em;
  color: var(--gold); margin-top: calc(var(--k) * 1.2);
  text-shadow: 0 calc(var(--k) * .25) 0 var(--blue-deep);
}
.tc-num {
  font: 900 calc(var(--k) * 21)/.82 var(--display); color: var(--gold);
  -webkit-text-stroke: calc(var(--k) * .3) var(--blue-deep);
  text-shadow: calc(var(--k) * .5) calc(var(--k) * .5) 0 var(--blue-deep);
  margin: calc(var(--k) * .6) 0 calc(var(--k) * 1.2);
}
.tc-date { font: 600 calc(var(--k) * 1.9)/1.2 var(--text); background: var(--blue-deep); padding: .25em .8em; border-radius: 99px; }
.tc-info { padding: calc(var(--k) * 3.2) calc(var(--k) * 3.2) calc(var(--k) * 2.6); display: flex; flex-direction: column; min-width: 0; background: #fff; }
.tc-to { margin: 0; font: 700 calc(var(--k) * 2.6)/1.15 var(--display); color: var(--ink); }
.tc-to span { display: block; font: 600 calc(var(--k) * 1.4)/1 var(--text); color: var(--garnet); letter-spacing: .1em; text-transform: uppercase; margin-bottom: calc(var(--k) * .6); }
.tc-prog { margin: calc(var(--k) * 2.4) 0 0; display: grid; gap: calc(var(--k) * 1.4); }
.tc-prog div { display: grid; grid-template-columns: calc(var(--k) * 9) 1fr; gap: calc(var(--k) * 1.2); align-items: start; }
.tc-prog dt { font: 900 calc(var(--k) * 3.6)/1 var(--display); color: var(--blue); }
.tc-prog dd { margin: 0; font: 700 calc(var(--k) * 2)/1.2 var(--display); color: var(--garnet); }
.tc-prog dd span { font: 500 calc(var(--k) * 1.65)/1.25 var(--text); color: var(--ink); }
.tc-foot { margin-top: auto; display: flex; gap: calc(var(--k) * 1.6); align-items: center; padding-top: calc(var(--k) * 1.8); border-top: calc(var(--k) * .3) solid var(--gold); }
.tc-foot .qr { width: calc(var(--k) * 12); max-width: none; flex: none; }
.tc-foot p { margin: 0; font: 500 calc(var(--k) * 1.45)/1.35 var(--text); color: var(--muted); }
.tc-no { display: block; margin-top: calc(var(--k) * .6); font: 700 calc(var(--k) * 1.5)/1 var(--display); letter-spacing: .1em; color: var(--garnet); }
@container ticket (max-width: 560px) {
  .tc-shirt, .tc-info { --k: 2.1cqi; }
  .tc-shirt { min-height: 0; padding-top: calc(var(--k) * 7); }
  .tc-num { font-size: calc(var(--k) * 15); }
}

/* Gæsteside C */
body.design-c { background: var(--blue-deep); }
.design-c .guest-wrap { padding-top: 2.5rem; }
.design-c .panel { border: 0; border-radius: 14px; }
.design-c .panel h2 { color: var(--garnet); font-weight: 900; font-size: 2rem; }
.design-c .program dt { color: var(--blue); font-weight: 900; }
.design-c .btn { background: var(--gold); color: var(--ink); border-radius: 99px; }
.design-c .btn:hover { background: #ffc94a; color: var(--ink); }
.design-c .btn-outline { background: transparent; color: var(--blue); border-radius: 99px; }
.design-c .seg { border-radius: 99px; }
.design-c .ticket.tc { border-radius: 14px; box-shadow: 0 24px 50px -20px rgba(0,0,0,.6); }
.design-c .flash { background: var(--gold); color: var(--ink); border-left-color: var(--garnet); }
@media (max-width: 600px) {
  .ticket.tb, .ticket.tc { grid-template-columns: 1fr; }
  .tb-pitch { order: 2; min-height: 0; padding: 1.4rem 0; }
}

.nowrap { white-space: nowrap; }
.tc-prog { margin-bottom: calc(var(--k) * 2); }
.design-c .print-toolbar p { color: #c9d4ea; }
.print-view .ticket.print { box-shadow: none; }

/* ================= Design D: Gallabillet (A5 portræt) ================= */
.ticket.td {
  display: block; background: none; box-shadow: none; border-radius: 0; overflow: visible;
  --gd: #d6a83a; --cr: #fbf5e6; --gn: #6e0f2c; --nv: #0d1f45;
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
}
/* Mål er omregnet fra skitsen: 1k = 1 % af kortets bredde */
.td-card {
  container: tdcard / inline-size; --k: 1cqi;
  position: relative; aspect-ratio: 521 / 756; display: flex; flex-direction: column;
  border-radius: calc(var(--k) * 2.1); overflow: hidden; color: var(--cr);
  background: linear-gradient(144deg, #8c1240 0%, var(--gn) 30%, #0b4596 36%, #08326f 100%);
  padding: calc(var(--k) * 3.45);
  box-shadow: 0 30px 60px -28px rgba(0,0,0,.65);
}
.td-card::before {
  content: ""; position: absolute; inset: calc(var(--k) * 1.55); pointer-events: none; z-index: 3;
  border: calc(var(--k) * .29) solid var(--gd); border-radius: calc(var(--k) * 1.35);
}
.td-top { position: relative; text-align: center; padding: calc(var(--k) * 3.1) calc(var(--k) * 1.9) calc(var(--k) * 3.45); }
.td-court { position: absolute; top: calc(var(--k) * 1.15); width: calc(var(--k) * 17.7); height: auto; opacity: .35; }
.td-court path, .td-court circle { fill: none; stroke: var(--gd); stroke-width: .9; }
.td-court circle { fill: var(--gd); }
.td-court .dash { stroke-dasharray: 2.4 2.4; }
.td-court-l { left: calc(var(--k) * -1.55); }
.td-court-r { right: calc(var(--k) * -1.55); }

.td-emblem { display: flex; align-items: center; justify-content: center; gap: calc(var(--k) * 2.1); margin-bottom: calc(var(--k) * 2.7); }
.td-ball { width: calc(var(--k) * 6.5); height: auto; display: block; }
.td-ball circle, .td-ball path { fill: none; stroke: var(--gd); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.td-emblem-rule { width: calc(var(--k) * .29); height: calc(var(--k) * 5); background: var(--gd); }

.td-plate {
  --cut: calc(var(--k) * 3.3);
  clip-path: polygon(var(--cut) 0, calc(100% - var(--cut)) 0, 100% 50%, calc(100% - var(--cut)) 100%, var(--cut) 100%, 0 50%);
  background: var(--gd); padding: calc(var(--k) * .48); margin: 0 auto;
}
.td-plate-in {
  clip-path: polygon(calc(var(--cut) - var(--k) * .29) 0, calc(100% - var(--cut) + var(--k) * .29) 0, 100% 50%, calc(100% - var(--cut) + var(--k) * .29) 100%, calc(var(--cut) - var(--k) * .29) 100%, 0 50%);
  background: var(--cr); color: var(--nv);
}
.td-to { width: 90%; }
.td-to .td-plate-in { display: flex; align-items: center; gap: calc(var(--k) * 2.3); padding: calc(var(--k) * 2.3) calc(var(--k) * 5.8); text-align: left; min-height: calc(var(--k) * 11.9); }
.td-to-lbl {
  font: 700 calc(var(--k) * 2.3)/1 var(--serif); letter-spacing: .14em; text-transform: uppercase; color: var(--gn);
  padding-right: calc(var(--k) * 2.3); border-right: calc(var(--k) * .29) solid var(--gd); align-self: stretch; display: flex; align-items: center;
}
.td-to-names { font: 600 calc(var(--k) * 3.45)/1.2 var(--serif); }
.td-title {
  margin: calc(var(--k) * 2.9) 0 calc(var(--k) * 2.1);
  font: 700 calc(var(--k) * 6.15)/1 var(--serif); letter-spacing: .09em; text-transform: uppercase; color: var(--cr);
  padding-bottom: calc(var(--k) * 1.7); border-bottom: calc(var(--k) * .29) solid var(--gd);
}
.td-name { width: 56%; --cut: calc(var(--k) * 4.4); }
.td-name .td-plate-in { padding: calc(var(--k) * 1) calc(var(--k) * 2.7) calc(var(--k) * 1.7); font: italic 600 calc(var(--k) * 7.9)/1 var(--serif); }
.td-date { display: flex; align-items: center; gap: calc(var(--k) * 2.3); margin: calc(var(--k) * 2.5) 0 0; }
.td-date::before, .td-date::after { content: ""; flex: 1; height: calc(var(--k) * .29); background: var(--gd); }
.td-date span { font: 600 calc(var(--k) * 3.65)/1 var(--serif); color: var(--cr); }

.td-info, .td-stub, .td-perf { background: var(--cr); color: var(--nv); }
.td-info {
  flex: 1; display: flex; flex-direction: column; justify-content: flex-start;
  border-radius: calc(var(--k) * 1) calc(var(--k) * 1) 0 0; padding: calc(var(--k) * .8) calc(var(--k) * 5);
}
.td-row { display: grid; grid-template-columns: calc(var(--k) * 11.9) minmax(0, 1fr); gap: calc(var(--k) * 3.1); align-items: center; padding: calc(var(--k) * 2.3) 0; }
.td-row + .td-row { border-top: calc(var(--k) * .29) solid var(--gd); }
.td-icon { width: calc(var(--k) * 11.5); height: auto; display: block; border-right: calc(var(--k) * .29) solid var(--gd); padding-right: calc(var(--k) * 2.5); box-sizing: content-box; }
.td-icon path, .td-icon circle { fill: none; stroke: var(--nv); stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
.td-icon .gold { stroke: var(--gd); }
.td-icon .dot { fill: var(--gd); stroke: none; }
.td-row-text p { margin: 0; }
.td-what { font: italic 700 calc(var(--k) * 3.3)/1.1 var(--serif); color: var(--gn); text-transform: uppercase; }
.td-what span { font-style: normal; margin-left: calc(var(--k) * 1.15); padding-left: calc(var(--k) * 1.7); border-left: calc(var(--k) * .29) solid var(--gn); text-transform: none; }
.td-where { font: 600 calc(var(--k) * 3.85)/1.2 var(--serif); margin-top: calc(var(--k) * .8) !important; }
.td-note { font: italic 500 calc(var(--k) * 2.8)/1.2 var(--serif); color: #3b4664; margin-top: calc(var(--k) * .6) !important; }
.td-extra { font: 500 calc(var(--k) * 3.1)/1.3 var(--serif); color: var(--nv); white-space: pre-line; }

.td-perf { padding: 0 calc(var(--k) * 1.9); }
.td-perf::before { content: ""; display: block; border-top: calc(var(--k) * .58) dotted var(--gn); }
.td-stub { display: grid; grid-template-columns: minmax(0, 1fr) calc(var(--k) * 18.4); gap: calc(var(--k) * 3.1); align-items: center; padding: calc(var(--k) * 3.45) calc(var(--k) * 3.8) calc(var(--k) * 3.45) calc(var(--k) * 3.45); border-radius: 0 0 calc(var(--k) * 1) calc(var(--k) * 1); }
.td-rsvp { text-align: center; padding-right: calc(var(--k) * 3.1); border-right: calc(var(--k) * .29) solid var(--gd); }
.td-rsvp p { margin: 0; }
.td-ribbon {
  margin: 0 calc(var(--k) * -1.35) calc(var(--k) * 1.7) !important; padding: calc(var(--k) * 1.7) calc(var(--k) * 3.8);
  background: var(--gn); color: var(--cr); font: italic 600 calc(var(--k) * 3.1)/1.3 var(--serif);
  clip-path: polygon(0 0, 100% 0, calc(100% - var(--k) * 2.3) 50%, 100% 100%, 0 100%, calc(var(--k) * 2.3) 50%);
}
.td-ribbon strong { font-style: normal; font-weight: 700; }
.td-rsvp-web { font: italic 500 calc(var(--k) * 2.5)/1.2 var(--serif); color: #3b4664; padding-top: calc(var(--k) * 1.35); border-top: calc(var(--k) * .29) solid var(--gd); }
.td-qr { text-align: center; }
.td-qr .qr { max-width: none; width: 100%; padding: calc(var(--k) * 1.15); border: calc(var(--k) * .48) solid var(--nv); background: #fff; }
.td-qr span { display: block; margin-top: calc(var(--k) * 1.15); font: italic 600 calc(var(--k) * 2.4)/1 var(--serif); color: var(--gn); }

/* Print: A5 med 5 mm luft, 2 pr. A4 vandret */
.sheet.sheet-land { width: 297mm; height: 210mm; flex-direction: row; justify-content: center; align-items: stretch; page: land; }
@page land { size: A4 landscape; margin: 0; }
.ticket.td.print { width: 148.5mm; height: 210mm; padding: 5mm; background: #fff; outline: none; }
.ticket.td.print + .ticket.td.print { border-left: .2mm dashed #b9bfcc; }
.ticket.td.print .td-card { height: 100%; aspect-ratio: auto; box-shadow: none; }
.print-toolbar:has(+ .sheet-land) { max-width: 297mm; }

/* Gæsteside D */
body.design-d { background: linear-gradient(144deg, #6e0f2c 0%, #6e0f2c 30%, #0b4596 36%, #08326f 100%); min-height: 100vh; }
.design-d .extra-info { margin: 1rem 0 0; padding: .8rem 1rem; border-left: 3px solid #d6a83a; background: #fff; white-space: pre-line; }
.settings-form { display: grid; gap: 1rem; }
.settings-form label { display: grid; gap: .3rem; font-weight: 600; font-size: .92rem; }
.settings-form textarea, .settings-form input { font: inherit; font-weight: 400; padding: .6em .7em; border: 1.5px solid var(--line); border-radius: 6px; width: 100%; }
.settings-form .btn { justify-self: start; }
.extra-info { white-space: pre-line; }
.design-d .guest-wrap { max-width: 600px; }
.design-d .panel { background: #fbf5e6; border: 2px solid #d6a83a; border-radius: 6px; }
.design-d .panel h2 { font: italic 700 1.9rem/1.05 "Fraunces", Georgia, serif; color: #6e0f2c; }
.design-d .program dt { font: 700 1.3rem/1.3 "Fraunces", Georgia, serif; color: #0d1f45; }
.design-d .person legend { font: 600 1.35rem/1 "Fraunces", Georgia, serif; }
.design-d .person { border-top-color: rgba(214,168,58,.6); }
.design-d .btn { background: #6e0f2c; border-radius: 3px; }
.design-d .btn:hover { background: #4a0a22; }
.design-d .btn-outline { background: transparent; color: #6e0f2c; box-shadow: inset 0 0 0 2px #6e0f2c; }
.design-d .btn-outline:hover { background: #6e0f2c; color: #fbf5e6; }
.design-d .seg { box-shadow: inset 0 0 0 2px #6e0f2c; border-radius: 3px; }
.design-d .seg span { color: #6e0f2c; }
.design-d .seg label + label span { border-left-color: #6e0f2c; }
.design-d .seg input:checked + span { background: #6e0f2c; color: #fff; }
.design-d .seg input[value="no"]:checked + span { background: #56617a; }
.design-d a { color: #6e0f2c; }
.design-d .contact { border-top-color: rgba(214,168,58,.6); }
.design-d .flash { background: #fbf5e6; color: #0d1f45; border-left-color: #d6a83a; }
.design-d .print-toolbar p { color: #e6dcc4; }
