:root{--ink: #10232a;--ink-soft: #46525c;--ink-faint: #76828c;--surface: #ffffff;--surface-sunken: #f2f4fb;--surface-raised: #ffffff;--line: #d9dce6;--brand: #0000fe;--brand-ink: #ffffff;--brand-soft: #e7e7ff;--brand-accent: #0000fe;--brand-accent-ink: #ffffff;--good: #1c6b4a;--good-soft: #e3f2ea;--warn: #8a5300;--warn-soft: #fdf0dc;--bad: #9b2226;--bad-soft: #fbe8e8;--radius: 14px;--tap: 44px;--shadow: 0 1px 2px rgb(16 35 42 / 8%), 0 4px 12px rgb(16 35 42 / 6%)}@media(prefers-color-scheme:dark){:root{--ink: #e9ecf4;--ink-soft: #aab2c2;--ink-faint: #7f8798;--surface: #11141f;--surface-sunken: #0b0d16;--surface-raised: #191d2b;--line: #2d3244;--brand: #0000fe;--brand-ink: #ffffff;--brand-soft: #1d2140;--brand-accent: #8f96ff;--brand-accent-ink: #11141f;--good: #6fd3a4;--good-soft: #13291f;--warn: #e0ac5f;--warn-soft: #2d2314;--bad: #f08c8c;--bad-soft: #2e1618;--shadow: 0 1px 2px rgb(0 0 0 / 40%), 0 4px 12px rgb(0 0 0 / 30%)}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--surface-sunken);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%;--on: var(--ink);--on-soft: var(--ink-soft);--on-faint: var(--ink-faint);--edge: var(--line);--action: var(--brand-accent);--action-ink: var(--brand-accent-ink);--focus: var(--brand-accent);color:var(--on)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.app{max-width:40rem;margin:0 auto;padding:1rem 1rem calc(1.5rem + env(safe-area-inset-bottom))}.masthead{background:var(--brand);--on: #ffffff;--on-soft: rgb(255 255 255 / 84%);--on-faint: rgb(255 255 255 / 66%);--edge: rgb(255 255 255 / 45%);--action: #ffffff;--action-ink: var(--brand);--focus: #ffffff;color:var(--on)}.masthead-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:40rem;margin:0 auto;padding:.6rem 1rem}.masthead-inner[data-wide=true]{max-width:60rem}.masthead h1{margin:0;font-size:1.25rem;letter-spacing:-.01em}.masthead .who{color:var(--on-soft);font-size:.875rem}.masthead .mark{flex:0 0 auto;display:block;width:66px;height:34px;background:url(/dcc-energi.png) no-repeat -8px -24px / 82px 82px}.masthead .title{display:flex;align-items:center;gap:.6rem;min-width:0}.menu-anchor{position:relative;flex:0 0 auto}.menu-button{display:flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);border:1px solid var(--edge);border-radius:10px;background:transparent;color:var(--on);font:inherit;cursor:pointer}.menu-button .lines,.menu-button .lines:before,.menu-button .lines:after{display:block;width:1.15rem;height:2px;border-radius:2px;background:currentColor}.menu-button .lines:before,.menu-button .lines:after{content:"";position:relative}.menu-button .lines:before{top:-6px}.menu-button .lines:after{top:4px}.menu{--on: var(--ink);--on-soft: var(--ink-soft);--on-faint: var(--ink-faint);--edge: var(--line);--action: var(--brand-accent);--action-ink: var(--brand-accent-ink);--focus: var(--brand-accent);color:var(--on);position:absolute;top:calc(var(--tap) + .4rem);right:0;z-index:10;min-width:12rem;padding:.35rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);box-shadow:var(--shadow)}.menu button{display:block;width:100%;min-height:var(--tap);padding:0 .75rem;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.menu button:hover{background:var(--surface-sunken)}.menu .who{padding:.5rem .75rem .6rem;border-bottom:1px solid var(--line);margin-bottom:.35rem;color:var(--ink-soft);font-size:.8125rem}.menu-languages{padding:.15rem .75rem .55rem;border-bottom:1px solid var(--line);margin-bottom:.35rem}.menu-heading{display:block;margin-bottom:.4rem;color:var(--ink-soft);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.segmented{display:flex;gap:.25rem;padding:.2rem;border:1px solid var(--line);border-radius:10px;background:var(--surface-sunken)}.segmented button{flex:1 1 0;min-height:2.25rem;padding:0 .5rem;border-radius:8px;text-align:center;font-size:.875rem}.segmented button[aria-pressed=true]{background:var(--surface-raised);box-shadow:var(--shadow);font-weight:600}.tabs{display:flex;gap:.5rem;margin-bottom:1.25rem}.tabs-wrap{flex-wrap:wrap}.tabs-wrap button{flex:0 1 auto;padding:0 .85rem}.tabs button{flex:1;min-height:var(--tap);border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface-raised);color:var(--on-soft);font:inherit;font-weight:600;cursor:pointer}.tabs button[aria-current=page]{border-color:var(--action);background:var(--action);color:var(--action-ink)}.section-title{margin:0 0 .6rem;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--on-soft)}.weeks{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.5rem}.week-label{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin:0 0 .35rem;font-size:.75rem;color:var(--on-faint)}.week-quota{font-weight:600}.week-quota[data-empty=true]{color:var(--warn)}.days{display:flex;gap:.25rem;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:thin}.day{flex:1 1 0;min-width:2.75rem;min-height:var(--tap);padding:.4rem .3rem;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);color:var(--ink);font:inherit;line-height:1.2;text-align:center;cursor:pointer}.day[data-state=booked]{border-color:var(--good);background:var(--good-soft)}.day[data-state=booked] .marker{color:var(--good)}.day[data-state=unavailable]{border-style:dashed;background:transparent;color:var(--on-faint);cursor:default}.day[data-state=unavailable] .dow,.day[data-state=unavailable] .dom{color:var(--on-faint)}.day .dow{display:block;font-size:.6875rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em}.day .dom{display:block;font-size:1.0625rem;font-weight:700}.day[data-weekend=true] .dow{font-style:italic}.day[aria-pressed=true]{border-color:var(--action);background:var(--action);color:var(--action-ink)}.day[aria-pressed=true] .dow{color:var(--action-ink);opacity:.85}.day .marker{display:block;font-size:.625rem;font-weight:700}.choices{display:flex;flex-direction:column;gap:.65rem;margin-bottom:1.25rem}.choice{display:flex;align-items:center;gap:.9rem;width:100%;min-height:5rem;padding:1rem;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);box-shadow:var(--shadow);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.choice .body{flex:1;min-width:0}.choice .name{display:block;font-size:1.0625rem;font-weight:700}.choice .hint{display:block;margin-top:.15rem;font-size:.8125rem;color:var(--ink-soft)}.choice .count{display:inline-block;margin-top:.4rem;padding:.2rem .55rem;border-radius:999px;background:var(--good-soft);color:var(--good);font-size:.8125rem;font-weight:700}.choice .tick{flex:0 0 auto;width:1.75rem;height:1.75rem;border:2px solid var(--line);border-radius:999px;color:transparent;font-size:1rem;font-weight:700;line-height:1.55rem;text-align:center}.choice[aria-pressed=true]{border-color:var(--action)}.choice[aria-pressed=true] .tick{border-color:var(--action);background:var(--action);color:var(--action-ink)}.choice[aria-disabled=true]{cursor:not-allowed;border-style:dashed;box-shadow:none;color:var(--ink-faint);background-image:repeating-linear-gradient(45deg,transparent,transparent 7px,var(--surface-sunken) 7px,var(--surface-sunken) 14px)}.choice[aria-disabled=true] .count{background:var(--surface-sunken);color:var(--ink-faint)}.choice[aria-disabled=true] .tick{visibility:hidden}.primary,.secondary,.danger{display:block;width:100%;min-height:3.25rem;border:2px solid transparent;border-radius:var(--radius);font:inherit;font-size:1.0625rem;font-weight:700;cursor:pointer}.primary{background:var(--action);color:var(--action-ink)}.secondary{border-color:var(--edge);background:var(--surface-raised);color:var(--on)}.danger{border-color:var(--bad);background:transparent;color:var(--bad)}.primary:disabled,.secondary:disabled,.danger:disabled{opacity:.5;cursor:not-allowed}.row{display:flex;gap:.5rem}.row>*{flex:1}.card{padding:1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);box-shadow:var(--shadow)}.card+.card{margin-top:.65rem}.confirmation{border-color:var(--good);background:var(--good-soft);box-shadow:none}.confirmation .headline{margin:0 0 .5rem;color:var(--good);font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.spot{margin:0;font-size:1.5rem;font-weight:800;letter-spacing:-.02em}.when{margin:.2rem 0 0;color:var(--ink-soft)}.message{display:flex;gap:.6rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:1rem;font-size:.9375rem}.message[data-tone=error]{border-color:var(--bad);background:var(--bad-soft);color:var(--bad)}.message[data-tone=warn]{border-color:var(--warn);background:var(--warn-soft);color:var(--warn)}.message[data-tone=info]{background:var(--brand-soft)}.message .label{font-weight:700}.booking{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.booking .what{min-width:0}.booking .date{margin:0;font-weight:700}.spot-number{margin:0;font-size:1.75rem;font-weight:800;letter-spacing:-.02em;line-height:1.1}.spot-inline{font-weight:800;color:var(--ink)}.booking-card[data-today=true]{border-color:var(--brand)}.booking-card[data-highlighted=true]{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.booking .detail{margin:.15rem 0 0;color:var(--ink-soft);font-size:.9375rem}.badge{flex:0 0 auto;padding:.2rem .55rem;border-radius:999px;background:var(--surface-sunken);color:var(--ink-soft);font-size:.75rem;font-weight:700;white-space:nowrap}.badge[data-tone=good]{background:var(--good-soft);color:var(--good)}.empty{padding:1.25rem 1rem;border:1px dashed var(--edge);border-radius:var(--radius);color:var(--on-soft);text-align:center}.actions{margin-top:.85rem}.muted{color:var(--on-soft);font-size:.875rem}.centre{padding:3rem 1rem;text-align:center;color:var(--on-soft)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app[data-wide=true]{max-width:60rem}.field{display:block;margin-bottom:.75rem}.field>span{display:block;margin-bottom:.25rem;font-size:.8125rem;font-weight:600;color:var(--ink-soft)}input[type=text],input[type=number],input[type=date],input[type=time],input[type=file],select{width:100%;min-height:var(--tap);padding:.5rem .65rem;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);color:var(--ink);font:inherit}.grid{display:grid;gap:.75rem;grid-template-columns:1fr}@media(min-width:560px){.grid[data-columns="2"]{grid-template-columns:1fr 1fr}.grid[data-columns="3"]{grid-template-columns:repeat(3,1fr)}}.list-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .25rem;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.list-row[data-editing=true]{flex-wrap:wrap;align-items:flex-start}.list-row[data-editing=true] .grow{flex:1 1 100%;margin-bottom:.5rem}.list-row .grow{flex:1;min-width:0}.list-row .name{font-weight:600}.list-row .meta{color:var(--ink-soft);font-size:.8125rem}.list-row[data-inactive=true] .name,.list-row[data-inactive=true] .meta{color:var(--ink-faint);text-decoration:line-through}.list-row .stamp{margin-top:.15rem;color:var(--ink-faint);font-size:.75rem;font-variant-numeric:tabular-nums}.answer:focus{outline:none}.answer{scroll-margin-top:1rem}.chip-button[data-danger=true]{border-color:var(--bad);color:var(--bad)}.card[data-danger=true]{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}.chip-button{min-height:2.25rem;padding:0 .7rem;border:1px solid var(--line);border-radius:999px;background:var(--surface-raised);color:var(--ink);font:inherit;font-size:.8125rem;font-weight:600;white-space:nowrap;cursor:pointer}.counts{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem}.stats{display:grid;gap:.65rem;grid-template-columns:repeat(2,1fr);margin-bottom:1rem}@media(min-width:560px){.stats{grid-template-columns:repeat(4,1fr)}}.stat{padding:.75rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised)}.stat .value{display:block;font-size:1.5rem;font-weight:800;letter-spacing:-.02em;line-height:1.1}.stat .label{display:block;margin-top:.2rem;color:var(--ink-soft);font-size:.75rem}.stat[data-tone=warn]{border-color:var(--warn);background:var(--warn-soft)}.stat[data-tone=warn] .value,.stat[data-tone=warn] .label{color:var(--warn)}.bar-row{display:flex;align-items:center;gap:.6rem;padding:.3rem 0}.bar-row .bar-label{flex:0 0 3.5rem;color:var(--ink-soft);font-size:.8125rem}.bar-row .bar{display:block;flex:1;height:1.1rem;border-radius:4px;background:var(--surface-sunken);overflow:hidden}.bar-row .bar-fill{display:block;height:100%;min-width:2px;border-radius:4px;background:var(--brand)}.bar-row .bar-fill[data-full=true]{background:var(--warn)}.bar-row .bar-value{flex:0 0 6.5rem;font-size:.8125rem;font-variant-numeric:tabular-nums;text-align:right}.audit-entry{padding:.6rem .25rem;border-bottom:1px solid var(--line);font-size:.875rem}.audit-entry .when{color:var(--ink-faint);font-size:.75rem}.audit-entry pre{margin:.35rem 0 0;padding:.5rem;overflow-x:auto;border-radius:8px;background:var(--surface-sunken);font-size:.75rem}@media(min-width:640px){.app{padding:2rem}.masthead h1{font-size:1.5rem}.choices{gap:.85rem}}@media(prefers-reduced-motion:no-preference){.choice,.day,.primary,.secondary{transition:border-color .12s ease,background-color .12s ease}}
