:root{--c-primary:#4F46E5;--c-primary-600:#4338CA;--c-primary-50:#EEF2FF;--c-text:#1F2937;--c-muted:#6B7280;--c-border:#E5E7EB;--c-bg:#F8FAFC;--c-surface:#FFFFFF;--c-error:#DC2626;--c-error-50:#FEF2F2;--c-success:#059669;--c-success-50:#ECFDF5;
--font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--fs-xs:.75rem;--fs-sm:.875rem;--fs-md:1rem;--fs-lg:1.25rem;--fs-xl:1.75rem;
--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-full:999px;
--sh-sm:0 1px 2px rgba(15,23,42,.06);--sh-md:0 4px 16px rgba(15,23,42,.08);--focus:0 0 0 3px var(--c-focus);--dur:180ms}
*{box-sizing:border-box}body{margin:0;font-family:var(--font);color:var(--c-text);background:var(--c-bg);line-height:1.5}
.app-header{background:var(--c-surface);border-bottom:1px solid var(--c-border);padding:var(--s-3) var(--s-4)}
.app-header__logo{font-weight:700;color:var(--c-primary);text-decoration:none;font-size:var(--fs-lg)}
.container{max-width:720px;margin:0 auto;padding:var(--s-5) var(--s-4) var(--s-7)}
.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-md);padding:var(--s-5)}
h1{font-size:var(--fs-xl);margin:0 0 var(--s-2);line-height:1.2}h2{font-size:var(--fs-lg);margin:var(--s-5) 0 var(--s-3)}
.lead{color:var(--c-muted);margin:0 0 var(--s-5)}
.field{margin-bottom:var(--s-4)}.field__label{display:block;font-weight:600;font-size:var(--fs-sm);margin-bottom:var(--s-1)}
.field__hint{font-size:var(--fs-xs);color:var(--c-muted)}
.input{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-input);min-height:44px;transition:border-color var(--dur),box-shadow var(--dur)}
textarea.input{min-height:88px;resize:vertical}
.input:focus{outline:none;border-color:var(--c-primary);box-shadow:var(--focus)}
.input[aria-invalid=true]{border-color:var(--c-error);background:var(--c-error-50)}
.field__error{color:var(--c-error);font-size:var(--fs-sm);margin-top:var(--s-1)}
.btn{font:inherit;font-weight:600;display:inline-flex;align-items:center;gap:var(--s-2);min-height:44px;padding:0 var(--s-4);border-radius:var(--r-md);border:1px solid transparent;cursor:pointer;transition:background var(--dur),transform 80ms}
.btn:active{transform:scale(.98)}.btn:focus-visible{outline:none;box-shadow:var(--focus)}
.btn--primary{background:var(--c-primary);color:var(--c-on-primary)}.btn--primary:hover{background:var(--c-primary-600)}
.btn--secondary{background:var(--c-primary-50);color:var(--c-primary)}.btn--secondary:hover{background:var(--c-primary-100)}
.btn--ghost{background:transparent;color:var(--c-muted);border-color:var(--c-border)}.btn--ghost:hover{color:var(--c-text);background:var(--c-bg)}
.btn--icon{width:44px;padding:0;justify-content:center;background:transparent;color:var(--c-muted)}.btn--icon:hover{color:var(--c-error);background:var(--c-error-50)}
.btn--block{width:100%;justify-content:center}
.add-date{display:flex;flex-direction:column;gap:var(--s-2)}
.proposals{list-style:none;margin:var(--s-4) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--s-3)}
.date-group{border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);background:var(--c-bg)}
.date-group__head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}
.date-group__title{font-weight:600;}
.date-group__title::first-letter,.poll-day__title::first-letter{text-transform:uppercase}
.slots{list-style:none;margin:var(--s-2) 0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}
.slot{display:flex;align-items:center;gap:var(--s-2)}
.slot .input{width:auto;flex:1;min-width:0}.slot__sep{color:var(--c-muted)}
.slot--dup .input{border-color:var(--c-error)}
.empty{text-align:center;color:var(--c-muted);border:2px dashed var(--c-border);border-radius:var(--r-md);padding:var(--s-5);margin-top:var(--s-4)}
.empty__icon{font-size:2rem;display:block}
.alert{border-radius:var(--r-md);padding:var(--s-3) var(--s-4);background:var(--c-error-50);color:var(--c-error);border:1px solid var(--c-error-200);margin-bottom:var(--s-4)}
.alert:empty{display:none}.alert ul{margin:var(--s-1) 0 0;padding-left:var(--s-5)}
.form-actions{margin-top:var(--s-5);display:flex;flex-direction:column-reverse;gap:var(--s-2)}
.anim-in{animation:in var(--dur) ease-out}.anim-out{animation:out var(--dur) ease-in forwards}
@keyframes in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes out{to{opacity:0;transform:translateX(12px);height:0}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* poll */
.share{display:flex;flex-direction:column;gap:var(--s-2);background:var(--c-primary-50);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-5)}
.share__label{font-size:var(--fs-sm);font-weight:600}.share__row{display:flex;gap:var(--s-2)}
.share__url{flex:1;font-family:ui-monospace,monospace;font-size:var(--fs-sm)}
.btn--copied{background:var(--c-success);color:var(--c-on-primary)}
.poll-day{margin-bottom:var(--s-4)}.poll-day__title{font-size:var(--fs-md);font-weight:700;margin:0 0 var(--s-2);}
.date-group__title::first-letter,.poll-day__title::first-letter{text-transform:uppercase}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}
.chip{padding:var(--s-2) var(--s-3);border-radius:var(--r-full);background:var(--c-surface);border:1px solid var(--c-border);font-weight:500;font-variant-numeric:tabular-nums;box-shadow:var(--sh-sm)}
.meta{font-size:var(--fs-sm);color:var(--c-muted)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (min-width:640px){.container{padding-top:var(--s-7)}.card{padding:var(--s-6)}.add-date{flex-direction:row;align-items:flex-end}.add-date .field{flex:1;margin:0}
.form-actions{flex-direction:row;justify-content:flex-end}.share{flex-direction:row;align-items:center}.share__row{flex:1}.slot .input{flex:0 0 140px}}
/* ===== Runde 2 ===== */
:root{--c-warn:#B45309;--c-warn-50:#FFFBEB;--c-yes:#047857;--c-yes-50:#D1FAE5;--c-no:#B91C1C;--c-no-50:#FEE2E2;--c-maybe:#92400E;--c-maybe-50:#FEF3C7;--c-best:#FDE68A}
.field__meta{display:flex;justify-content:space-between;gap:var(--s-2);align-items:flex-start}
.counter{font-size:var(--fs-xs);color:var(--c-muted);font-variant-numeric:tabular-nums;margin-left:auto;white-space:nowrap;padding-top:var(--s-1)}
.counter--warn{color:var(--c-warn);font-weight:600}.counter--over{color:var(--c-error);font-weight:700}
.slot-wrap{display:flex;flex-direction:column;gap:2px}
.slot__error{color:var(--c-error);font-size:var(--fs-xs);padding-left:2px}
.slot--dup .input,.slot--invalid .input[aria-invalid=true]{border-color:var(--c-error)}
.tz-note{font-size:var(--fs-xs);color:var(--c-muted);margin:var(--s-1) 0 0}
.btn[aria-busy=true]{opacity:.7;cursor:progress}
.share__actions{display:flex;gap:var(--s-2)}
.btn--share{background:var(--c-primary);color:var(--c-on-primary)}
.poll-cta{display:flex;justify-content:flex-end;margin-top:var(--s-5)}
.container--wide{max-width:1040px}
/* 404 */
.notfound{text-align:center;padding:var(--s-7) var(--s-5)}.notfound__art{width:160px;height:auto;margin:0 auto var(--s-4);display:block}
.notfound .lead{max-width:420px;margin:0 auto var(--s-5)}.notfound__actions{display:flex;flex-direction:column;gap:var(--s-2);align-items:center}
/* vote */
.vote-name{max-width:360px}
.vgrid-wrap{overflow-x:auto;border:1px solid var(--c-border);border-radius:var(--r-md);display:none}
.vgrid{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-sm)}
.vgrid th,.vgrid td{padding:var(--s-2);border-bottom:1px solid var(--c-border);text-align:center;min-width:104px}
.vgrid thead th{background:var(--c-bg);font-weight:600;vertical-align:bottom}
.vgrid .vgrid__name{position:sticky;left:0;background:var(--c-surface);text-align:left;min-width:150px;z-index:1;font-weight:600}
.vgrid thead .vgrid__name{background:var(--c-bg)}
.vgrid__day{display:block;font-size:var(--fs-xs);color:var(--c-muted);font-weight:500}
.vgrid__time{display:block;font-variant-numeric:tabular-nums}
.vgrid tr.is-me td,.vgrid tr.is-me th{background:var(--c-primary-50)}
.vgrid tfoot td,.vgrid tfoot th{background:var(--c-bg);font-weight:700}
.is-best{box-shadow:inset 0 3px 0 var(--c-best),inset 0 -3px 0 var(--c-best);background:var(--c-best-50)!important}
.best-badge{display:inline-block;font-size:10px;font-weight:700;background:var(--c-best);color:var(--c-best-text);border-radius:var(--r-full);padding:1px 6px;margin-top:2px}
.vote{display:inline-flex;align-items:center;gap:4px;font-weight:600;border-radius:var(--r-full);padding:2px 8px;font-size:var(--fs-xs)}
.vote--yes{background:var(--c-yes-50);color:var(--c-yes)}.vote--no{background:var(--c-no-50);color:var(--c-no)}.vote--maybe{background:var(--c-maybe-50);color:var(--c-maybe)}.vote--none{color:var(--c-muted)}
.tri{font:inherit;min-width:88px;min-height:44px;border-radius:var(--r-md);border:1.5px dashed var(--c-border);background:var(--c-input);color:var(--c-muted);cursor:pointer;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background var(--dur),transform 120ms}
.tri:focus-visible{outline:none;box-shadow:var(--focus)}.tri:active{transform:scale(.95)}
.tri[data-state=yes]{background:var(--c-yes-50);color:var(--c-yes);border:1.5px solid var(--c-yes)}
.tri[data-state=no]{background:var(--c-no-50);color:var(--c-no);border:1.5px solid var(--c-no)}
.tri[data-state=maybe]{background:var(--c-maybe-50);color:var(--c-maybe);border:1.5px solid var(--c-maybe)}
.legend{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:var(--s-2) 0 var(--s-4);font-size:var(--fs-sm);color:var(--c-muted)}
.vcards{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-3)}
.vcard{border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);background:var(--c-surface)}
.vcard.is-best{border-color:var(--c-best-border)}
.vcard__head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-2)}
.vcard__when{font-weight:700}.vcard__totals{font-size:var(--fs-xs);color:var(--c-muted);margin:var(--s-1) 0 var(--s-2)}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-1)}
.seg button{font:inherit;font-weight:600;min-height:44px;border:1.5px solid var(--c-border);border-radius:var(--r-md);background:var(--c-input);color:var(--c-muted);cursor:pointer}
.seg button:focus-visible{outline:none;box-shadow:var(--focus)}
.seg button[aria-checked=true][data-v=yes]{background:var(--c-yes-50);color:var(--c-yes);border-color:var(--c-yes)}
.seg button[aria-checked=true][data-v=no]{background:var(--c-no-50);color:var(--c-no);border-color:var(--c-no)}
.seg button[aria-checked=true][data-v=maybe]{background:var(--c-maybe-50);color:var(--c-maybe);border-color:var(--c-maybe)}
.vcard details{margin-top:var(--s-2);font-size:var(--fs-sm)}.vcard summary{cursor:pointer;color:var(--c-primary)}
.vcard__people{list-style:none;padding:0;margin:var(--s-2) 0 0;display:flex;flex-direction:column;gap:4px}
.vcard__people li{display:flex;justify-content:space-between}
.vote-bar{position:sticky;bottom:0;background:var(--c-surface);border-top:1px solid var(--c-border);padding:var(--s-3) var(--s-4);margin:var(--s-5) calc(-1*var(--s-5)) calc(-1*var(--s-5));border-radius:0 0 var(--r-lg) var(--r-lg)}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--c-text);color:var(--c-bg);padding:var(--s-2) var(--s-4);border-radius:var(--r-full);font-size:var(--fs-sm);box-shadow:var(--sh-md)}
@media (min-width:640px){.vgrid-wrap{display:block}.vcards{display:none}.notfound__actions{flex-direction:row;justify-content:center}.vote-bar{margin:var(--s-5) calc(-1*var(--s-6)) calc(-1*var(--s-6));padding:var(--s-4) var(--s-6);display:flex;justify-content:flex-end}}
/* ===== Runde 2b: blødt blåt tema, lys + mørk ===== */
:root,[data-theme=light]{color-scheme:light;
--c-primary:#2B6CB0;--c-primary-600:#1F5690;--c-primary-50:#EBF4FC;--c-primary-100:#D5E7F8;--c-on-primary:#FFFFFF;--c-focus:rgba(66,153,225,.45);
--c-text:#1A2B3C;--c-muted:#5A6B7D;--c-border:#D9E4EF;--c-bg:#F4F8FC;--c-surface:#FFFFFF;--c-input:#FFFFFF;
--c-error:#C53030;--c-error-50:#FFF1F1;--c-error-200:#F8C9C9;--c-success:#276749;--c-warn:#975A16;--c-warn-50:#FFF8E6;--c-border-strong:#7D8FA3;
--c-yes:#22734A;--c-yes-50:#DDF5E8;--c-no:#B83232;--c-no-50:#FCE4E4;--c-maybe:#8A5A0B;--c-maybe-50:#FDF0D2;
--c-best:#90CDF4;--c-best-50:#EAF6FE;--c-best-border:#4299E1;--c-best-text:#1A4971;
--sh-sm:0 1px 2px rgba(26,43,60,.06);--sh-md:0 6px 20px rgba(43,108,176,.08)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;
--c-primary:#7FB6EA;--c-primary-600:#A6CDF2;--c-primary-50:#16283A;--c-primary-100:#1E3550;--c-on-primary:#0E1A26;--c-focus:rgba(127,182,234,.5);
--c-text:#E4ECF4;--c-muted:#9AAEC2;--c-border:#2A3B4D;--c-bg:#0E1620;--c-surface:#152130;--c-input:#1B293A;
--c-error:#FC8F8F;--c-error-50:#3A1C21;--c-error-200:#6B2D33;--c-success:#68D391;--c-warn:#F6C766;--c-warn-50:#3A2E12;--c-border-strong:#647D97;
--c-yes:#7EE2A8;--c-yes-50:#173A2A;--c-no:#FDA4A4;--c-no-50:#3E1C21;--c-maybe:#F8D27A;--c-maybe-50:#3B2E12;
--c-best:#2C5F8F;--c-best-50:#14304A;--c-best-border:#63B3ED;--c-best-text:#E4F1FC;--sh-sm:none;--sh-md:0 6px 24px rgba(0,0,0,.35)}}
[data-theme=dark]{color-scheme:dark;
--c-primary:#7FB6EA;--c-primary-600:#A6CDF2;--c-primary-50:#16283A;--c-primary-100:#1E3550;--c-on-primary:#0E1A26;--c-focus:rgba(127,182,234,.5);
--c-text:#E4ECF4;--c-muted:#9AAEC2;--c-border:#2A3B4D;--c-bg:#0E1620;--c-surface:#152130;--c-input:#1B293A;
--c-error:#FC8F8F;--c-error-50:#3A1C21;--c-error-200:#6B2D33;--c-success:#68D391;--c-warn:#F6C766;--c-warn-50:#3A2E12;--c-border-strong:#647D97;
--c-yes:#7EE2A8;--c-yes-50:#173A2A;--c-no:#FDA4A4;--c-no-50:#3E1C21;--c-maybe:#F8D27A;--c-maybe-50:#3B2E12;
--c-best:#2C5F8F;--c-best-50:#14304A;--c-best-border:#63B3ED;--c-best-text:#E4F1FC;--sh-sm:none;--sh-md:0 6px 24px rgba(0,0,0,.35)}
.is-best{box-shadow:inset 0 3px 0 var(--c-best-border),inset 0 -3px 0 var(--c-best-border)}
.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}
.app-header__actions{display:flex;gap:var(--s-1)}
.icon-btn{font:inherit;min-width:44px;min-height:44px;border-radius:var(--r-md);border:1px solid transparent;background:transparent;color:var(--c-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;font-weight:600}
.icon-btn:hover{background:var(--c-primary-50);color:var(--c-primary)}.icon-btn:focus-visible{outline:none;box-shadow:var(--focus)}
/* del-boks v2 */
.share{position:relative;flex-direction:column!important;align-items:stretch!important;background:var(--c-primary-50);border:1px solid var(--c-primary-100);padding:var(--s-4)}
.share__confirm{display:flex;align-items:center;gap:var(--s-2);font-weight:700;color:var(--c-success);margin:0;padding-right:44px}
.share__close{position:absolute;top:var(--s-2);right:var(--s-2)}
.share__row{flex-direction:column}.share__actions{flex-wrap:wrap}.share__actions .btn{flex:1;justify-content:center}
.btn--copy-error{background:var(--c-error-50);color:var(--c-error);border-color:var(--c-error)}
.share__hint{font-size:var(--fs-xs);color:var(--c-muted);margin:0}.share__hint--error{color:var(--c-error);font-weight:600}
.share[hidden]{display:none}
.vgrid__edit{font-size:var(--fs-xs);margin-left:var(--s-2);color:var(--c-muted);background:none;border:0;cursor:not-allowed;text-decoration:underline dotted}
.vote-empty{border:2px dashed var(--c-border);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);color:var(--c-muted);margin-bottom:var(--s-3);font-size:var(--fs-sm)}
.success{border-radius:var(--r-md);padding:var(--s-3) var(--s-4);background:var(--c-yes-50);color:var(--c-yes);border:1px solid var(--c-yes);margin-bottom:var(--s-4);font-weight:600}
.btn:disabled{opacity:.6;cursor:progress}
.spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.vgrid-wrap{max-height:none}.vgrid--many .vgrid-wrap{max-height:560px;overflow:auto}
.vgrid thead th{position:sticky;top:0;z-index:2}.vgrid thead .vgrid__name{z-index:3}
/* Tablet 640–1023 */
@media (min-width:640px){.share__row{flex-direction:row;align-items:center}.share__actions .btn{flex:0 0 auto}}
/* Desktop ≥1024 */
@media (min-width:1024px){:root{--fs-xl:2rem}.container{padding-top:64px}.app-header{padding:var(--s-3) var(--s-6)}}
a.btn{text-decoration:none}
@media (min-width:640px){.share__actions{display:flex}.share__actions #copy{min-width:150px}}
.share__actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.share__actions .btn{flex:1 1 40%}.share__actions #copy{flex-basis:100%}
.share .btn--secondary,.share .btn--ghost{background:var(--c-surface);border-color:var(--c-primary-100);color:var(--c-primary)}
@media (min-width:640px){.share__actions{flex-wrap:nowrap}.share__actions .btn,.share__actions #copy{flex:0 0 auto}}
/* ===== Runde 3: kontrast – UI-kanter på formularfelter skal have 3:1 ===== */
.input,.tri,.seg button{border-color:var(--c-border-strong)}
.tri[data-state=null]{border-color:var(--c-border-strong)}
/* ===== Runde 3: admin-link, admin-visning, lukket, redigeringslink ===== */
.linkbox{border-radius:var(--r-md);padding:var(--s-3) var(--s-4);margin-top:var(--s-3);border:1px solid var(--c-primary-100);background:var(--c-surface)}
.linkbox__label{display:flex;align-items:center;gap:var(--s-2);font-weight:700;font-size:var(--fs-sm);margin:0 0 var(--s-1)}
.linkbox__desc{font-size:var(--fs-sm);color:var(--c-muted);margin:0 0 var(--s-2)}
.linkbox__row{display:flex;flex-direction:column;gap:var(--s-2)}
.linkbox__row .input{font-family:ui-monospace,monospace;font-size:var(--fs-sm)}
.linkbox__actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.linkbox__actions .btn{flex:1 1 40%;justify-content:center}
.linkbox--secret{background:var(--c-warn-50);border:2px solid var(--c-warn);}
.linkbox--secret .linkbox__label{color:var(--c-warn)}
.linkbox--secret .linkbox__desc{color:var(--c-text)}
.linkbox--secret .btn--secondary{background:var(--c-surface);color:var(--c-warn);border:1px solid var(--c-warn)}
.icon-lock{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--c-warn);color:var(--c-warn-50);font-size:12px}
.check{display:flex;gap:var(--s-2);align-items:flex-start;font-size:var(--fs-sm);margin-top:var(--s-2)}
.check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--c-primary)}
@media (min-width:640px){.linkbox__row{flex-direction:row;align-items:center}.linkbox__row .input{flex:1}.linkbox__actions{flex-wrap:nowrap}.linkbox__actions .btn{flex:0 0 auto}}
/* status-pille */
.status{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:700;padding:2px 10px;border-radius:var(--r-full);vertical-align:middle}
.status--open{background:var(--c-yes-50);color:var(--c-yes)}.status--closed{background:var(--c-no-50);color:var(--c-no)}
.admin-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);justify-content:space-between;margin-bottom:var(--s-4)}
.admin-badge{font-size:var(--fs-xs);font-weight:700;color:var(--c-warn);background:var(--c-warn-50);border:1px solid var(--c-warn);border-radius:var(--r-full);padding:2px 10px}
.section{border-top:1px solid var(--c-border);padding-top:var(--s-5);margin-top:var(--s-5)}
.section>h2{margin-top:0}
.opt-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-2)}
.opt{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface)}
.opt__when{font-weight:600;flex:1}.opt__votes{font-size:var(--fs-xs);color:var(--c-muted);white-space:nowrap}
.opt.is-best{border-color:var(--c-best-border)}
.opt--removing{background:var(--c-error-50);border-color:var(--c-error)}
.inline-warn{border-left:4px solid var(--c-warn);background:var(--c-warn-50);color:var(--c-text);padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);font-size:var(--fs-sm);margin-top:var(--s-2)}
.inline-warn__actions{display:flex;gap:var(--s-2);margin-top:var(--s-2);flex-wrap:wrap}
.danger{border:2px solid var(--c-error);border-radius:var(--r-md);padding:var(--s-4);background:var(--c-surface)}
.danger h2{color:var(--c-error);margin:0 0 var(--s-1)}.danger p{margin:0 0 var(--s-3);font-size:var(--fs-sm);color:var(--c-muted)}
.btn--danger{background:var(--c-error);color:var(--c-surface)}.btn--danger:hover{filter:brightness(.92)}
.btn--danger-ghost{background:transparent;color:var(--c-error);border-color:var(--c-error)}
.btn--sm{min-height:36px;padding:0 var(--s-3);font-size:var(--fs-sm)}
/* dialog */
dialog.modal{border:0;border-radius:var(--r-lg);padding:var(--s-5);max-width:440px;width:calc(100% - 32px);background:var(--c-surface);color:var(--c-text);box-shadow:var(--sh-md)}
dialog.modal::backdrop{background:rgba(10,20,32,.55)}
dialog.modal h2{margin:0 0 var(--s-2)}dialog.modal p{margin:0 0 var(--s-3);color:var(--c-muted)}
.modal__actions{display:flex;flex-direction:column-reverse;gap:var(--s-2);margin-top:var(--s-4)}
@media (min-width:640px){.modal__actions{flex-direction:row;justify-content:flex-end}}
.modal[open]{animation:in var(--dur) ease-out}
/* lukket afstemning */
.closed-banner{display:flex;gap:var(--s-3);align-items:flex-start;border-radius:var(--r-md);padding:var(--s-4);background:var(--c-primary-50);border:2px solid var(--c-primary);margin-bottom:var(--s-4)}
.closed-banner__icon{font-size:1.5rem;line-height:1}
.closed-banner h2{margin:0;font-size:var(--fs-md)}.closed-banner p{margin:var(--s-1) 0 0}
.chosen{display:inline-block;margin-top:var(--s-2);font-weight:700;font-size:var(--fs-lg);color:var(--c-text)}
.is-chosen{background:var(--c-yes-50)!important;box-shadow:inset 0 3px 0 var(--c-yes),inset 0 -3px 0 var(--c-yes)}
.chosen-badge{display:inline-block;font-size:10px;font-weight:700;background:var(--c-yes);color:var(--c-surface);border-radius:var(--r-full);padding:1px 6px;margin-top:2px}
.vgrid__edit--on{color:var(--c-primary);cursor:pointer;font-weight:600;text-decoration:underline}
.vgrid__edit--on:focus-visible{outline:none;box-shadow:var(--focus);border-radius:4px}
.editing-note{font-size:var(--fs-sm);color:var(--c-primary);font-weight:600}
.linkbox__actions .btn{flex-basis:100%}
@media (min-width:640px){.linkbox__actions .btn{flex-basis:auto}.vote-bar{position:static}}
.vote-bar[hidden]{display:none!important}
/* ===== Runde 4: resultat/valg, slet deltager, inline-redigering, del-flow ===== */
.result-banner{display:flex;gap:var(--s-3);align-items:flex-start;border-radius:var(--r-md);padding:var(--s-4);background:var(--c-yes-50);border:2px solid var(--c-yes);margin-bottom:var(--s-4);color:var(--c-text)}
.result-banner__icon{font-size:1.5rem;line-height:1}
.result-banner__body{flex:1;min-width:0}
.result-banner__eyebrow{font-size:var(--fs-sm);font-weight:700;color:var(--c-yes);margin:0;display:flex;gap:var(--s-2);align-items:center;flex-wrap:wrap}
.result-banner__when{display:block;font-size:var(--fs-lg);font-weight:800;margin:2px 0 var(--s-1)}
.result-banner__note{font-size:var(--fs-sm);color:var(--c-muted);margin:0 0 var(--s-2)}
.result-banner__actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.result-banner .btn--secondary{background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border-strong)}
.result-banner--closed{border-color:var(--c-primary);background:var(--c-primary-50)}
.choose-btn{font:inherit;font-size:var(--fs-sm);font-weight:600;min-height:44px;min-width:96px;padding:0 var(--s-3);border-radius:var(--r-md);border:1.5px solid var(--c-border-strong);background:var(--c-surface);color:var(--c-primary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.choose-btn:hover{background:var(--c-primary-50)}.choose-btn:focus-visible{outline:none;box-shadow:var(--focus)}
.choose-btn[aria-pressed=true]{background:var(--c-yes);border-color:var(--c-yes);color:var(--c-surface)}
.choose-btn:disabled{opacity:.6;cursor:progress}
.vgrid tr.choose-row td,.vgrid tr.choose-row th{background:var(--c-bg);border-bottom:0}
.del-btn{width:36px;height:36px;min-width:36px;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;color:var(--c-muted);cursor:pointer;display:inline-grid;place-items:center;margin-left:auto}
.del-btn:hover{color:var(--c-error);background:var(--c-error-50);border-color:var(--c-error)}.del-btn:focus-visible{outline:none;box-shadow:var(--focus);color:var(--c-error)}
.vgrid__name .name-cell{display:flex;align-items:center;gap:var(--s-2)}
.people{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.people li{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-1) 0;border-bottom:1px solid var(--c-border);min-height:48px}
.people .meta{margin-left:auto}
.toast-undo{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:var(--s-3);background:var(--c-text);color:var(--c-bg);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4);border-radius:var(--r-full);box-shadow:var(--sh-md);font-size:var(--fs-sm);z-index:50;max-width:calc(100% - 32px)}
.toast-undo button{font:inherit;font-weight:700;background:transparent;color:var(--c-bg);border:1.5px solid var(--c-bg);border-radius:var(--r-full);min-height:36px;padding:0 var(--s-3);cursor:pointer}
.toast-undo button:focus-visible{outline:3px solid var(--c-best-border);outline-offset:2px}
/* inline-redigering af tidsforslag */
.opt-edit{border:2px solid var(--c-primary);border-radius:var(--r-md);padding:var(--s-3);background:var(--c-primary-50)}
.opt-edit__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}
.opt-edit__grid .field{margin:0}.opt-edit__grid .field:first-child{grid-column:1/-1}
.opt-edit__actions{display:flex;gap:var(--s-2);margin-top:var(--s-3);flex-wrap:wrap}
.opt-edit fieldset{border:0;margin:var(--s-3) 0 0;padding:0}
.opt-edit legend{font-size:var(--fs-sm);font-weight:700;padding:0;margin-bottom:var(--s-1)}
.radio{display:flex;gap:var(--s-2);align-items:flex-start;font-size:var(--fs-sm);margin-top:var(--s-1)}
.radio input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--c-primary)}
.edit-btn{color:var(--c-primary)!important}
@media (min-width:640px){.opt-edit__grid{grid-template-columns:2fr 1fr 1fr}.opt-edit__grid .field:first-child{grid-column:auto}}
/* del-flow v2 */
.share-reminder{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);border-left:4px solid var(--c-warn);background:var(--c-warn-50);color:var(--c-text);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);font-size:var(--fs-sm);margin-bottom:var(--s-4)}
.share-reminder strong{color:var(--c-warn)}
.linkbox__ack{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center;margin-top:var(--s-3)}
.linkbox--done{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;font-size:var(--fs-sm);background:var(--c-surface);border:1px solid var(--c-yes)}
.linkbox--done strong{color:var(--c-yes)}
.link-btn{font:inherit;background:none;border:0;color:var(--c-primary);text-decoration:underline;cursor:pointer;padding:var(--s-1);min-height:32px}
.link-btn:focus-visible{outline:none;box-shadow:var(--focus);border-radius:4px}
.share__confirm{padding-right:96px}
.toast-undo{width:max-content;max-width:calc(100% - 32px)}.toast-undo span{flex:1}
/* ===== Runde 5: e-mailinvitation ===== */
.invite-usage{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);align-items:center;font-size:var(--fs-sm);color:var(--c-muted);margin:0 0 var(--s-3)}
.meter{flex:1 1 160px;height:8px;border-radius:var(--r-full);background:var(--c-primary-50);border:1px solid var(--c-border-strong);overflow:hidden;min-width:120px}
.meter__used{height:100%;background:var(--c-primary)}.meter__batch{height:100%;background:var(--c-best-border)}
.meter-row{display:flex;height:100%}
.chips-field{border:1px solid var(--c-border-strong);border-radius:var(--r-md);background:var(--c-input);padding:var(--s-2);display:flex;flex-wrap:wrap;gap:var(--s-1);min-height:96px;align-content:flex-start;cursor:text}
.chips-field:focus-within{border-color:var(--c-primary);box-shadow:var(--focus)}
.chips-field textarea{flex:1 1 200px;border:0;outline:0;background:transparent;font:inherit;color:var(--c-text);min-height:32px;resize:none;padding:4px}
.echip{display:inline-flex;align-items:center;gap:4px;max-width:100%;border-radius:var(--r-full);padding:2px 4px 2px 10px;font-size:var(--fs-sm);background:var(--c-primary-50);color:var(--c-text);border:1px solid var(--c-primary-100)}
.echip__addr{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.echip button{width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:var(--c-muted);cursor:pointer;font-size:14px}
.echip button:hover,.echip button:focus-visible{background:var(--c-surface);color:var(--c-text);outline:none;box-shadow:var(--focus)}
.echip--invalid{background:var(--c-error-50);border-color:var(--c-error);color:var(--c-error)}
.echip--dup,.echip--already{background:var(--c-warn-50);border-color:var(--c-warn);color:var(--c-text)}
.echip__why{font-size:var(--fs-xs);font-weight:700}
.chip-groups{margin-top:var(--s-2);display:flex;flex-direction:column;gap:var(--s-2)}
.chip-group{font-size:var(--fs-sm)}.chip-group__h{font-weight:700;margin:0 0 var(--s-1)}
.chip-group--err .chip-group__h{color:var(--c-error)}.chip-group--warn .chip-group__h{color:var(--c-warn)}
.chip-group ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-1)}
.mail-preview{border:1px solid var(--c-border);border-radius:var(--r-md);overflow:hidden;margin-top:var(--s-3)}
.mail-preview dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px var(--s-3);padding:var(--s-3) var(--s-4);background:var(--c-bg);font-size:var(--fs-sm)}
.mail-preview dt{color:var(--c-muted);font-weight:600}.mail-preview dd{margin:0;word-break:break-word}
.mail-preview iframe{display:block;width:100%;height:420px;border:0;background:var(--c-bg)}
.privacy{font-size:var(--fs-xs);color:var(--c-muted);margin:var(--s-2) 0 0}
.filters{display:flex;gap:var(--s-1);overflow-x:auto;padding-bottom:2px;margin:0 0 var(--s-3);-webkit-overflow-scrolling:touch}
.filters button{font:inherit;font-size:var(--fs-sm);font-weight:600;white-space:nowrap;min-height:40px;padding:0 var(--s-3);border-radius:var(--r-full);border:1px solid var(--c-border-strong);background:var(--c-surface);color:var(--c-text);cursor:pointer}
.filters button[aria-pressed=true]{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-on-primary)}
.filters button:focus-visible{outline:none;box-shadow:var(--focus)}
.filters .n{font-variant-numeric:tabular-nums;opacity:.85;margin-left:4px}
.st{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);font-weight:700;border-radius:var(--r-full);padding:2px 8px;white-space:nowrap}
.st--sent{background:var(--c-primary-50);color:var(--c-primary)}.st--answered{background:var(--c-yes-50);color:var(--c-yes)}
.st--failed{background:var(--c-no-50);color:var(--c-no)}.st--bounced{background:var(--c-no-50);color:var(--c-no)}
.st--unsub{background:var(--c-bg);color:var(--c-muted);border:1px solid var(--c-border-strong)}.st--queued{background:var(--c-maybe-50);color:var(--c-maybe)}
.rtable{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.rtable th,.rtable td{text-align:left;padding:var(--s-2);border-bottom:1px solid var(--c-border);vertical-align:middle}
.rtable thead th{color:var(--c-muted);font-weight:600;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em}
.rtable td.addr{word-break:break-all}.rtable .meta{font-size:var(--fs-xs)}
.rlist{list-style:none;padding:0;margin:0;display:none}
.rlist li{border-bottom:1px solid var(--c-border);padding:var(--s-2) 0;display:grid;grid-template-columns:1fr auto;gap:2px var(--s-2)}
.rlist .addr{word-break:break-all;font-weight:600}.rlist .meta{grid-column:1/-1;font-size:var(--fs-xs)}
@media (max-width:639px){.rtable{display:none}.rlist{display:block}}
.reminder{display:flex;flex-direction:column;gap:var(--s-2);border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-4);background:var(--c-bg);margin-top:var(--s-4)}
.reminder__row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3)}
.reminder__count{font-size:var(--fs-sm);font-weight:700}.reminder__wait{font-size:var(--fs-sm);color:var(--c-muted)}
.dots{display:inline-flex;gap:4px;vertical-align:middle}.dots i{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--c-primary);display:inline-block}.dots i.on{background:var(--c-primary)}
/* landingssider */
.landing{text-align:center;padding:var(--s-6) var(--s-5)}.landing__icon{font-size:2.5rem;line-height:1;display:block;margin-bottom:var(--s-3)}
.landing .lead{max-width:440px;margin:0 auto var(--s-4)}.landing__actions{display:flex;flex-direction:column;gap:var(--s-2);align-items:center;margin-top:var(--s-4)}
.landing__box{text-align:left;max-width:440px;margin:var(--s-4) auto 0}
@media (min-width:640px){.landing__actions{flex-direction:row;justify-content:center}}
/* personlige links */
.switch-row{margin:var(--s-2) 0 var(--s-3)}
.switch{display:inline-flex;align-items:center;gap:var(--s-3);cursor:pointer;font-weight:600;min-height:44px}
.switch input{position:absolute;opacity:0;width:44px;height:26px;margin:0}
.switch__ui{width:44px;height:26px;border-radius:var(--r-full);background:var(--c-surface);border:2px solid var(--c-border-strong);position:relative;transition:background var(--dur);flex:none}
.switch__ui::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--c-muted);transition:transform var(--dur)}
.switch input:checked+.switch__ui{background:var(--c-primary);border-color:var(--c-primary)}
.switch input:checked+.switch__ui::after{transform:translateX(18px);background:var(--c-on-primary)}
.switch input:focus-visible+.switch__ui{box-shadow:var(--focus)}
.row-actions{display:flex;gap:var(--s-1);flex-wrap:wrap}
.rlist .badges{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.pub{margin-top:var(--s-4);border:1px dashed var(--c-border-strong);border-radius:var(--r-md);padding:var(--s-3) var(--s-4)}
.pub h4{margin:0 0 var(--s-1)}
.pub__list{list-style:none;margin:var(--s-2) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}
.pub__list li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}
.pub__name{font-weight:600;padding:4px 10px;border-radius:var(--r-sm);background:var(--c-surface);border:1px solid var(--c-border);cursor:grab}
.drop-over td{background:var(--c-primary-50)!important;outline:2px dashed var(--c-primary);outline-offset:-2px}
body.dragging tr[data-drop] td:first-child{box-shadow:inset 3px 0 0 var(--c-primary-100)}
.desk-only{display:none}@media (min-width:1024px) and (pointer:fine){.desk-only{display:inline}}
.personal-banner{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-3);align-items:center;border-radius:var(--r-md);padding:var(--s-3) var(--s-4);background:var(--c-primary-50);border:1px solid var(--c-primary-100);margin-bottom:var(--s-4);font-size:var(--fs-sm)}
/* ===== Datoer: kalender (multi-select) ===== */
.dp{max-width:380px;width:100%}
.dp__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-2)}
.dp__month{margin:0;font-size:var(--fs-md,1.05rem);font-weight:700}
.dp__nav{min-width:44px;min-height:44px;font-size:1.4rem}
.dp__nav:disabled{opacity:.35;cursor:not-allowed}
.dp__grid{width:100%;border-collapse:separate;border-spacing:3px;table-layout:fixed}
.dp__grid th{font-size:var(--fs-xs,.75rem);font-weight:600;color:var(--c-muted);text-transform:uppercase;padding:4px 0}
.dp__day{height:44px;text-align:center;border-radius:var(--r-md);cursor:pointer;font-variant-numeric:tabular-nums;font-weight:500;border:2px solid transparent;user-select:none;transition:background var(--dur),color var(--dur)}
.dp__day:hover{background:var(--c-primary-50)}
.dp__day:focus-visible{outline:none;box-shadow:var(--focus)}
.dp__day--out{color:var(--c-muted)}
.dp__day.is-today{border-color:var(--c-border-strong);font-weight:700}
.dp__day.is-sel{background:var(--c-primary);color:var(--c-on-primary);font-weight:700}
.dp__day.is-sel::after{content:"✓";display:block;font-size:.6rem;line-height:1;margin-top:-2px}
.dp__day.is-past{color:var(--c-muted);opacity:.5;cursor:not-allowed;text-decoration:line-through;background:none}
.dp__help{font-size:var(--fs-xs,.75rem);color:var(--c-muted);margin:var(--s-2) 0 0}
.dp__desk{display:none}@media (pointer:fine){.dp__desk{display:inline}}
.date-picker-layout{display:grid;gap:var(--s-4)}
@media (min-width:640px){.dp{margin-inline:auto}}
@media (min-width:1024px){.date-picker-layout{grid-template-columns:380px 1fr;align-items:start}.dp{margin:0}}
@media (max-width:639px){.dp{max-width:none}}
.date-chips-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-2);margin-bottom:var(--s-2)}
.date-chips-head h3{margin:0;font-size:var(--fs-sm)}
.date-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2);max-height:340px;overflow:auto}
.date-chip{display:inline-flex;align-items:center;gap:2px;padding-left:12px;border-radius:var(--r-full);background:var(--c-primary-50);border:1px solid var(--c-primary-100);font-size:var(--fs-sm);font-weight:500}
.date-chip button{min-width:36px;min-height:36px;border:0;background:none;border-radius:var(--r-full);color:var(--c-text);cursor:pointer;font-size:.9rem}
.date-chip button:hover{background:var(--c-primary-100)}.date-chip button:focus-visible{outline:none;box-shadow:var(--focus)}
.legacy-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs,.75rem);font-weight:600;padding:2px 8px;border-radius:var(--r-full);border:1px solid var(--c-border-strong);color:var(--c-muted);background:var(--c-surface);vertical-align:middle}
.allday{font-weight:400;color:var(--c-muted);font-size:.9em}
.dp-pop{margin-top:var(--s-3);padding:var(--s-3);border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface)}
.dp__day.is-taken{background:var(--c-bg);color:var(--c-muted);cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--c-border-strong)}
.dp__day.is-taken::after{content:"•";display:block;font-size:.7rem;line-height:1;margin-top:-2px}

/* ===== i18n (§45): sprogvælger + robusthed over for lange DE/FR-strenge ===== */
.langsw{position:relative}
.langsw__btn{color:var(--c-text);border-color:var(--c-border)}
.langsw__btn svg{flex:none}
.langsw__cur{display:none;font-size:var(--fs-sm);letter-spacing:.02em}
.langsw__caret{font-size:.75em;color:var(--c-muted)}
@media (max-width:639px){.langsw__name{display:none}.langsw__cur{display:inline}}
.langsw__menu{position:absolute;right:0;top:calc(100% + 6px);z-index:60;margin:0;padding:var(--s-1);list-style:none;min-width:12rem;background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--r-md);box-shadow:var(--sh-md)}
.langsw__menu a{display:flex;align-items:center;gap:var(--s-2);min-height:44px;padding:0 var(--s-3);border-radius:var(--r-sm,6px);color:var(--c-text);text-decoration:none;font-weight:500}
.langsw__menu a:hover{background:var(--c-primary-50)}
.langsw__menu a:focus-visible{outline:3px solid var(--c-focus,var(--c-primary));outline-offset:-3px}
.langsw__menu a[aria-current]{font-weight:700;color:var(--c-primary)}
.langsw__check{width:1.2em;text-align:center}
.app-header__actions{align-items:center;flex-wrap:wrap;justify-content:flex-end}
/* Lange ord (tyske sammensætninger) må bryde; orddeling styres af <html lang> */
h1,h2,h3,h4,.btn,.field__label,.vgrid th,.choose-btn,.tri,.st,.legend,.reminder__wait,.linkbox__label{overflow-wrap:break-word;hyphens:auto}
.btn{white-space:normal;text-align:center;line-height:1.25;padding-top:var(--s-1);padding-bottom:var(--s-1);max-width:100%}
.choose-btn,.tri{white-space:normal;text-align:center;line-height:1.2;padding-top:4px;padding-bottom:4px}
.st{white-space:normal;max-width:100%}
.filters{flex-wrap:wrap;overflow-x:visible}
.toast,.toast-undo{border-radius:var(--r-lg)}
.vgrid th{vertical-align:bottom}
.result-banner__actions,.linkbox__actions,.form-actions,.landing__actions,.notfound__actions,.row-actions,.opt-edit__actions{flex-wrap:wrap}
.seg button{flex-direction:column;gap:0;line-height:1.15}
.rlist li{grid-template-columns:minmax(0,1fr)}.rlist .addr{word-break:normal;overflow-wrap:anywhere}.rlist .badges{justify-content:flex-start}
