.auth{margin:var(--space-6) var(--space-3) var(--space-4);padding:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}.auth__note{margin:0 0 var(--space-3);color:var(--text-muted);font-size:var(--text-sm)}.auth__note:last-child{margin-bottom:0}.auth__row{gap:var(--space-2);flex-wrap:wrap;display:flex}.auth__secondary,.auth__danger{min-height:var(--tap);padding-inline:var(--space-4);border-radius:var(--radius-full);font-weight:700;font-size:var(--text-sm)}.auth__secondary{background:var(--surface-raised);border:1px solid var(--line-strong);color:var(--text)}.auth__danger{background:var(--down);color:var(--accent-ink)}.auth__warning{margin:var(--space-3) 0 0;color:var(--text-muted);font-size:var(--text-sm)}.import{display:flex}.import__panel{top:calc(100% + var(--space-2));right:max(var(--space-3), var(--safe-right));z-index:1;width:min(21rem, calc(100vw - 2 * var(--space-4)));padding:var(--space-4);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg);position:absolute;box-shadow:0 12px 32px #0000008c}.import__form{gap:var(--space-3);flex-direction:column;display:flex}.import__title{font-size:var(--text-base);letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);margin:0;font-weight:700}.import__help{color:var(--text-muted);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0}.import__input{min-height:var(--tap);padding:0 var(--space-3);background:var(--ground);border:1px solid var(--line-strong);border-radius:var(--radius);font-size:var(--text-base);text-overflow:ellipsis}.import__actions{align-items:center;gap:var(--space-2);display:flex}.import__submit{min-height:var(--tap);padding-inline:var(--space-5);border-radius:var(--radius-full);background:var(--accent);color:var(--accent-ink);font-weight:700}.import__submit:disabled{opacity:.6}.import__close{min-height:var(--tap);padding-inline:var(--space-3);border-radius:var(--radius-full);color:var(--text-muted);font-weight:600;font-size:var(--text-sm)}.import__status{font-size:var(--text-sm);line-height:var(--leading-normal);margin:0}.import__status--ok{color:var(--accent)}.import__status--error{color:var(--down)}.import__skipped{margin-top:var(--space-2);color:var(--text-faint);font-size:var(--text-xs);display:block}.app-header{z-index:20;background:color-mix(in srgb, var(--ground) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding-top:var(--safe-top);position:sticky;top:0}.app-header__inner{justify-content:space-between;align-items:center;gap:var(--space-3);height:var(--header-height);padding-inline:max(var(--space-3), var(--safe-left)) max(var(--space-3), var(--safe-right));max-width:46rem;margin-inline:auto;display:flex;position:relative}.app-header__actions{align-items:center;gap:var(--space-1);flex:none;display:flex}.app-header__lead{align-items:center;gap:var(--space-2);min-width:0;display:flex;overflow:hidden}.app-header__brand{align-items:center;gap:var(--space-2);min-height:var(--tap);color:var(--text);min-width:0;text-decoration:none;display:flex}.app-header__mark{border-radius:var(--radius-sm);background:var(--accent);width:1.75rem;height:1.75rem;color:var(--accent-ink);flex:none;place-items:center;font-size:1.1rem;font-weight:800;line-height:1;display:grid}.app-header__title{letter-spacing:-.02em;font-weight:800;font-size:var(--text-lg);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-header__back,.app-header__action{align-items:center;gap:var(--space-1);min-height:var(--tap);min-width:var(--tap);padding-inline:var(--space-2);border-radius:var(--radius);color:var(--text);font-weight:600;text-decoration:none;display:inline-flex}.app-header__action{color:var(--text-muted);justify-content:center;position:relative}.app-header__back svg,.app-header__action svg{flex:none}@media (max-width:24rem){.app-header__back-label{display:none}}.app-header__badge{border-radius:var(--radius-full);background:var(--accent);min-width:1.15rem;color:var(--accent-ink);font-size:var(--text-xs);text-align:center;padding-inline:.25rem;font-weight:800;line-height:1.15rem;position:absolute;top:2px;right:0}.app-header__back:active,.app-header__action:active{background:var(--surface-raised)}.app-header__signin{min-height:var(--tap);padding-inline:var(--space-3);border-radius:var(--radius-full);background:var(--accent);color:var(--accent-ink);font:inherit;font-size:var(--text-sm);white-space:nowrap;border:none;flex:none;font-weight:700}.app-header__signin:disabled{background:var(--accent-dim)}.app-header__auth-error{top:calc(100% + var(--space-2));right:max(var(--space-3), var(--safe-right));z-index:1;width:min(21rem, calc(100vw - 2 * var(--space-4)));padding:var(--space-3);background:var(--surface);border:1px solid var(--down);border-radius:var(--radius-lg);align-items:flex-start;gap:var(--space-2);display:flex;position:absolute;box-shadow:0 12px 32px #0000008c}.app-header__auth-error-text{color:var(--down);font-size:var(--text-sm);flex:auto;margin:0;line-height:1.4}.app-header__auth-error-close{border-radius:var(--radius-full);width:2rem;height:2rem;color:var(--text-muted);background:0 0;border:none;flex:none;place-items:center;margin:-2px -2px 0 0;padding:0;display:grid}.app-header__auth-error-close:active{background:var(--surface-raised)}.install-hint{gap:var(--space-3);margin:var(--space-4) var(--space-3) 0;padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-lg);flex-direction:column;display:flex}.install-hint__title{margin:0 0 var(--space-1);font-weight:700;font-size:var(--text-base)}.install-hint__text{color:var(--text-muted);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0}.install-hint__actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.install-hint__primary{min-height:var(--tap);padding-inline:var(--space-5);border-radius:var(--radius-full);background:var(--accent);color:var(--accent-ink);font-weight:700}.install-hint__dismiss{min-height:var(--tap);padding-inline:var(--space-4);border-radius:var(--radius-full);color:var(--text-muted);font-weight:600}.concert-image{aspect-ratio:3/2;background-color:var(--surface);border-radius:var(--radius-lg);background-position:50%;background-size:cover;position:relative;overflow:hidden}.concert-image--empty{background-image:linear-gradient(135deg, var(--surface-raised), var(--surface))}.concert-image img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .26s}.concert-image img[data-loaded]{opacity:1}.dice{gap:var(--space-2);grid-template-columns:repeat(6,1fr);display:grid}.dice__button{min-height:var(--tap);min-width:0;padding:var(--space-1);border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);color:var(--text-muted);justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.dice__button svg{width:26px;height:26px}.dice__button[data-active]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.note-editor__head{justify-content:space-between;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.note-editor__label{font-size:var(--text-sm);letter-spacing:.02em;color:var(--text-muted);text-transform:uppercase;font-weight:700}.note-editor__status{font-size:var(--text-xs);color:var(--text-faint)}.note-editor__input{width:100%;padding:var(--space-3);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--text);font-size:var(--text-base);line-height:var(--leading-normal);resize:vertical;min-height:5.5rem}.note-editor__input::placeholder{color:var(--text-faint)}.note-editor__warning{margin:var(--space-2) 0 0;padding:var(--space-3);border-radius:var(--radius);background:color-mix(in srgb, var(--down) 12%, transparent);border:1px solid color-mix(in srgb, var(--down) 40%, transparent);color:var(--text);font-size:var(--text-sm)}.notif{align-items:center;gap:var(--space-3);margin:var(--space-4) 0 0;padding:var(--space-3) var(--space-4);background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.notif--info{color:var(--text-muted);line-height:var(--leading-normal);display:block}.notif--info strong{color:var(--text)}.notif__text{min-width:12rem;color:var(--text-muted);flex:1;margin:0}.notif__button{min-height:var(--tap);padding-inline:var(--space-4);border-radius:var(--radius-full);background:var(--accent);color:var(--accent-ink);font-weight:700}.notif__error{color:var(--down);flex-basis:100%;margin:0}.share{margin:var(--space-6) 0;padding:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}.share__title{margin:0 0 var(--space-3);font-size:var(--text-base);letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);font-weight:700}.share__form{gap:var(--space-2);flex-wrap:wrap;display:flex}.share__input{min-width:12rem;min-height:var(--tap);padding:0 var(--space-3);background:var(--ground);border:1px solid var(--line-strong);border-radius:var(--radius);font-size:var(--text-base);flex:1}.share__send{min-height:var(--tap);padding-inline:var(--space-5);border-radius:var(--radius-full);background:var(--accent);color:var(--accent-ink);font-weight:700}.share__send:disabled{opacity:.6}.share__status{margin:var(--space-3) 0 0;font-size:var(--text-sm)}.share__status--ok{color:var(--accent)}.share__status--error{color:var(--down)}.share__hint{margin:0 0 var(--space-3);color:var(--text-muted);font-size:var(--text-sm)}.share__discloses{margin:var(--space-3) 0 0;color:var(--text-muted);font-size:var(--text-sm)}.share__copy{min-height:var(--tap);margin-top:var(--space-3);padding-inline:var(--space-4);border-radius:var(--radius-full);background:var(--surface-raised);border:1px solid var(--line-strong);color:var(--text);font-weight:700;font-size:var(--text-sm);align-items:center;display:inline-flex}.concert-row{border-bottom:1px solid var(--line);list-style:none}.concert-row__link{align-items:center;gap:var(--space-3);min-height:4.25rem;padding:var(--space-3) var(--space-3);color:inherit;grid-template-columns:3.25rem 1fr auto;text-decoration:none;display:grid;position:relative}.concert-row__link:active{background:var(--surface)}.concert-row__time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-sm);color:var(--text-muted);letter-spacing:-.02em;font-weight:600}.concert-row__main{min-width:0}.concert-row__name{font-size:var(--text-lg);letter-spacing:-.02em;overflow-wrap:anywhere;font-weight:700;line-height:1.2;display:block}.concert-row__meta{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);margin-top:2px;display:flex}.concert-row__stage{align-items:center;gap:var(--space-1);white-space:nowrap;text-overflow:ellipsis;min-width:0;display:inline-flex;overflow:hidden}.concert-row__dot{border-radius:var(--radius-full);flex:none;width:8px;height:8px}.concert-row__until{font-variant-numeric:tabular-nums;color:var(--text-faint)}.concert-row[data-notes] .concert-row__link{align-items:start}.concert-row[data-notes] .concert-row__time,.concert-row[data-notes] .concert-row__vote{padding-top:3px}.concert-row__note,.concert-row__shared{margin-top:var(--space-2);padding-left:var(--space-2);border-left:2px solid var(--line-strong);font-size:var(--text-sm);overflow-wrap:anywhere;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.concert-row__note{-webkit-line-clamp:2;border-left-color:var(--accent-dim);color:var(--text-muted)}.concert-row__shared{-webkit-line-clamp:1;font-size:var(--text-xs);color:var(--text-faint)}.concert-row__shared-from{color:var(--text-muted);font-weight:700}.concert-row__shared-dice{vertical-align:-.2em;color:var(--text-muted);display:inline-grid}.concert-row__shared-dice svg{width:14px;height:14px}.concert-row__more{margin-top:var(--space-1);padding-left:calc(var(--space-2) + 2px);font-size:var(--text-xs);color:var(--text-faint);display:block}.concert-row__vote{place-items:center;gap:var(--space-1);width:1.75rem;display:grid}.concert-row__thumb,.concert-row__dice{display:grid}.concert-row__thumb--up{color:var(--accent)}.concert-row__thumb--down{color:var(--down)}.concert-row__dice{color:var(--text-muted)}.concert-row[data-status=ferdig] .concert-row__link{opacity:.55}.concert-row[data-status=paagaar] .concert-row__link:before{content:"";background:var(--now);width:3px;position:absolute;top:0;bottom:0;left:0}.concert-row[data-status=paagaar] .concert-row__name{color:var(--text)}.concert-row[data-status=paagaar] .concert-row__time{color:var(--now)}.shared{margin:0 0 var(--space-3);padding:var(--space-4);background:color-mix(in srgb, var(--accent) 8%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));border-radius:var(--radius-lg)}.shared--placeholder,.shared--failed{align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:var(--text-sm);display:flex}.shared--failed{background:color-mix(in srgb, var(--down) 10%, var(--surface));border-color:color-mix(in srgb, var(--down) 35%, var(--line))}.shared__retry,.shared__signin-button{min-height:var(--tap);padding-inline:var(--space-4);border-radius:var(--radius-full);background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:var(--text-sm)}.shared__signin-text{margin:0 0 var(--space-3);color:var(--text-muted);font-size:var(--text-sm)}.shared__from{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--accent);font-weight:700}.shared__vote{align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:600;display:flex}.shared__vote--up{color:var(--accent)}.shared__vote--down{color:var(--down)}.shared__dice{align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--text-muted);font-weight:600;display:flex}.shared__note{font-size:var(--text-base);line-height:var(--leading-normal);margin:0}.shared-row{border-bottom:1px solid var(--line);list-style:none}.shared-row__link{padding:var(--space-3);color:inherit;min-height:var(--tap);gap:2px;text-decoration:none;display:grid}.shared-row__name{font-size:var(--text-lg);letter-spacing:-.02em;font-weight:700}.shared-row__from{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--accent);display:flex}.shared-row__dice{color:var(--text);display:inline-grid}.shared-row__dice svg{width:14px;height:14px}.shared-row__note{font-size:var(--text-sm);color:var(--text-muted);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.thumbs{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.thumbs__button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);color:var(--text-muted);font-weight:700;font-size:var(--text-sm);transition:background .12s,color .12s,border-color .12s;display:inline-flex}.thumbs__button--up[data-active]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.thumbs__button--down[data-active]{background:var(--down);border-color:var(--down);color:var(--accent-ink)}.concert{--concert-accent:var(--accent);padding:var(--space-3) var(--space-3) var(--space-8)}.concert__head{padding-top:var(--space-4)}.concert__name{font-size:var(--text-3xl);letter-spacing:-.03em;overflow-wrap:anywhere}.concert__when{align-items:center;gap:var(--space-2) var(--space-3);margin:var(--space-3) 0 0;color:var(--text-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.concert__time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}.concert__time-link{color:inherit;padding-block:var(--space-1);text-decoration:none}.concert__time-link .concert__time{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:color-mix(in srgb, var(--concert-accent) 70%, transparent);text-decoration-color:color-mix(in srgb, var(--concert-accent) 70%, transparent);text-underline-offset:4px;text-decoration-thickness:2px}.concert__time-link:active .concert__time{color:var(--concert-accent)}.concert__stage{align-items:center;gap:var(--space-1);display:inline-flex}.concert__stage-dot{border-radius:var(--radius-full);width:8px;height:8px}.concert__simultaneous{margin:var(--space-2) 0 0;color:var(--text-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.concert__simultaneous-link{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--concert-accent) 70%, transparent);text-decoration-color:color-mix(in srgb, var(--concert-accent) 70%, transparent);text-underline-offset:3px;padding-block:var(--space-1);font-weight:600;text-decoration-thickness:2px}.concert__simultaneous-link:active{color:var(--concert-accent)}.concert__live{margin:var(--space-3) 0 0;padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--now);color:var(--accent-ink);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:800;display:inline-block}.concert__genres{gap:var(--space-2);margin:var(--space-4) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.concert__genre{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid color-mix(in srgb, var(--concert-accent) 45%, var(--line));color:var(--text);font-size:var(--text-sm);font-weight:600}.concert__annotate,.concert__note{gap:var(--space-4);margin:var(--space-6) 0;padding:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);border-left:3px solid var(--concert-accent);display:grid}.concert__text{color:var(--text);font-size:var(--text-base);line-height:var(--leading-normal)}.concert__ingress{font-size:var(--text-lg);color:var(--text);font-weight:600}.concert__text p{margin:0 0 var(--space-4);color:var(--text-muted)}.concert__text .concert__ingress{color:var(--text)}.concert-search{padding:var(--space-3) var(--space-3) 0}.concert-search__field{align-items:center;gap:var(--space-2);min-height:var(--tap);padding-inline:var(--space-3);border-radius:var(--radius-full);border:1px solid var(--line-strong);background:var(--surface);display:flex}.concert-search__field:focus-within{border-color:var(--accent)}.concert-search__icon{color:var(--text-faint);flex:none}.concert-search__input{min-width:0;font-size:var(--text-base);background:0 0;border:none;outline:none;flex:1;align-self:stretch}.concert-search__input::placeholder{color:var(--text-faint)}.concert-search__input::-webkit-search-cancel-button{display:none}.concert-search__clear{width:var(--tap);height:var(--tap);margin-right:calc(var(--space-3) * -1);color:var(--text-muted);font-size:var(--text-sm);flex:none;justify-content:center;align-items:center;display:inline-flex}.concert-search__results{margin-top:var(--space-2);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.concert-search__hit{min-height:var(--tap);padding:var(--space-2) var(--space-3);color:var(--text);flex-direction:column;justify-content:center;gap:2px;text-decoration:none;display:flex}.concert-search__hit+.concert-search__hit{border-top:1px solid var(--line)}.concert-search__name{font-weight:700;line-height:var(--leading-tight)}.concert-search__meta{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-sm);display:flex}.concert-search__day{color:var(--accent);font-weight:700}.concert-search__time{font-variant-numeric:tabular-nums}.concert-search__stage{align-items:center;gap:var(--space-1);text-overflow:ellipsis;white-space:nowrap;min-width:0;display:inline-flex;overflow:hidden}.concert-search__dot{border-radius:var(--radius-full);background:var(--stage-default);flex:none;width:6px;height:6px}.concert-search__empty{padding:var(--space-3);color:var(--text-muted);font-size:var(--text-sm);margin:0}.day-tabs{top:calc(var(--safe-top) + var(--header-height));z-index:15;background:color-mix(in srgb, var(--ground) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky}.day-tabs__list{gap:var(--space-1);padding:var(--space-2) var(--space-3);margin:0;grid-auto-columns:1fr;grid-auto-flow:column;max-width:46rem;margin-inline:auto;list-style:none;display:grid}.day-tabs__tab{min-height:var(--tap);padding:var(--space-1);border-radius:var(--radius);color:var(--text-muted);border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:1px;text-decoration:none;display:flex;position:relative}.day-tabs__tab[data-active]{background:var(--accent);color:var(--accent-ink)}.day-tabs__weekday{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:700}.day-tabs__date{font-size:var(--text-lg);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.day-tabs__today{border-radius:var(--radius-full);background:var(--now);width:4px;height:4px;position:absolute;bottom:4px}.day-tabs__tab[data-active] .day-tabs__today{background:var(--accent-ink)}.now-marker{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-3);scroll-margin-top:calc(var(--header-height) + 4rem);grid-template-columns:3.25rem 1fr auto;list-style:none;display:grid}.now-marker__time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-sm);color:var(--now);letter-spacing:-.02em;font-weight:700}.now-marker__line{background:linear-gradient(to right, var(--now), color-mix(in srgb, var(--now) 15%, transparent));border-radius:var(--radius-full);height:2px}.now-marker__label{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);background:var(--now);padding:2px var(--space-2);border-radius:var(--radius-full);font-weight:800}.stage-filter{gap:var(--space-2);padding:0 var(--space-3) var(--space-3);overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.stage-filter::-webkit-scrollbar{display:none}.stage-filter__chip{align-items:center;gap:var(--space-2);min-height:2.25rem;padding-inline:var(--space-3);border-radius:var(--radius-full);border:1px solid var(--line-strong);background:var(--surface);color:var(--text-muted);font-size:var(--text-sm);white-space:nowrap;flex:none;font-weight:700;display:inline-flex}.stage-filter__chip[data-on]{border-color:var(--stage,var(--accent));background:color-mix(in srgb, var(--stage,var(--accent)) 22%, var(--ground));color:var(--text)}.stage-filter__chip--all[data-on]{border-color:var(--line-strong);background:var(--surface-raised);color:var(--text)}.stage-filter__chip[data-empty]{opacity:.45}.stage-filter__dot{border-radius:var(--radius-full);background:var(--stage,var(--stage-default));flex:none;width:8px;height:8px}.stage-filter__count{font-variant-numeric:tabular-nums;color:var(--text-faint)}.stage-filter__chip[data-on] .stage-filter__count{color:inherit}.day-view__head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-3) var(--space-3);display:flex}.day-view__title{font-size:var(--text-2xl)}.day-view__count{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--text-sm)}.day-view__filter{align-items:center;gap:var(--space-2);min-height:var(--tap);padding-inline:var(--space-3);border-radius:var(--radius-full);border:1px solid var(--line-strong);color:var(--text-muted);font-size:var(--text-sm);white-space:nowrap;flex:none;font-weight:700;display:inline-flex}.day-view__filter[data-on]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.day-view__filter-icon{font-size:1rem;line-height:1}.day-view__filter-count{font-variant-numeric:tabular-nums;background:color-mix(in srgb, currentColor 18%, transparent);border-radius:var(--radius-full);padding:0 var(--space-2);text-align:center;min-width:1.5rem}.day-view__swipe{touch-action:pan-y}.day-view__list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.day-view__empty{padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-muted)}.day-view__empty-action{min-height:var(--tap);margin-top:var(--space-3);padding-inline:var(--space-5);border-radius:var(--radius-full);background:var(--surface-raised);border:1px solid var(--line-strong);color:var(--text);align-items:center;font-weight:700;display:inline-flex}.map-page{--map-budget:calc(100dvh - var(--header-height) - var(--safe-top) - 7rem);flex-direction:column;padding:0;display:flex}.map-page__frame{aspect-ratio:var(--map-ratio);max-height:var(--map-budget);min-height:min(22rem, var(--map-budget));background:var(--surface);cursor:grab;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);place-items:center;display:grid;position:relative;overflow:hidden}.map-page__frame[data-zoomed]{cursor:move}.map-page__frame:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.map-page__image{transform-origin:50%;width:auto;max-width:100%;height:auto;max-height:100%;image-rendering:crisp-edges;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.map-page__bar{padding:var(--space-3) max(var(--space-3), var(--safe-left)) calc(var(--space-3) + var(--safe-bottom)) max(var(--space-3), var(--safe-right));gap:var(--space-2);flex-direction:column;align-items:flex-start;display:flex}.map-page__controls{align-items:center;gap:var(--space-2);display:flex}.map-page__control,.map-page__reset{min-height:var(--tap);border-radius:var(--radius-full);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--text);font:inherit;font-size:var(--text-sm);font-weight:600}.map-page__control{min-width:var(--tap);place-items:center;display:grid}.map-page__reset{padding-inline:var(--space-4)}.map-page__control:disabled,.map-page__reset:disabled{opacity:.4}.map-page__hint,.map-page__credit{font-size:var(--text-xs);color:var(--text-faint);margin:0}.map-page__credit a{color:var(--text-muted)}.friends-page{padding:var(--space-5) var(--space-3) var(--space-8)}.friends-page__title{font-size:var(--text-2xl);margin-bottom:var(--space-4)}.friends-page__add{padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.friends-page__add-title{font-size:var(--text-lg);margin:0}.friends-page__add-help{margin:var(--space-2) 0 var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.friends-page__form{gap:var(--space-2);flex-wrap:wrap;display:flex}.friends-page__input{min-height:var(--tap);padding-inline:var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--ground);color:var(--text);font:inherit;font-size:var(--text-base);flex:12rem}.friends-page__submit{min-height:var(--tap);padding-inline:var(--space-4);border-radius:var(--radius);background:var(--accent);color:var(--accent-ink);font:inherit;border:none;font-weight:700}.friends-page__submit:disabled{background:var(--accent-dim)}.friends-page__status{margin:var(--space-3) 0 0;font-size:var(--text-sm)}.friends-page__status--ok{color:var(--accent)}.friends-page__status--error{color:var(--down)}.friends-page__hint{padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);color:var(--text-muted);font-size:var(--text-sm)}.friends-page__group{margin-top:var(--space-6)}.friends-page__group-title{font-size:var(--text-lg);margin:0 0 var(--space-2)}.friends-page__group-help{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.friends-page__list,.friends-page__entries,.friends-page__shared{margin:0;padding:0;list-style:none}.friends-page__shared{border-top:1px solid var(--line)}.friends-page__person{padding:var(--space-4) 0;border-top:1px solid var(--line)}.friends-page__name{font-size:var(--text-base);margin:0;font-weight:700}.friends-page__address{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--text-faint);overflow-wrap:anywhere}.friends-page__disclosure{margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--text-muted)}.friends-page__warning{margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--down)}.friends-page__awaiting{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--text-muted)}.friends-page__none{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--text-faint)}.friends-page__actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.friends-page__primary,.friends-page__secondary,.friends-page__danger{min-height:var(--tap);padding-inline:var(--space-4);border-radius:var(--radius);border:1px solid var(--line-strong);color:var(--text);font:inherit;background:0 0;font-weight:600}.friends-page__primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.friends-page__danger{border-color:var(--down);color:var(--down)}.friends-page__entries{margin-top:var(--space-3)}.friend-entry{align-items:baseline;gap:var(--space-2);border-top:1px solid var(--line);display:flex}.friend-entry__link{min-height:var(--tap);padding:var(--space-2) 0;color:var(--text);flex-direction:column;flex:auto;gap:2px;text-decoration:none;display:flex}.friend-entry__name{font-weight:600}.friend-entry__by{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);display:flex}.friend-entry__dice{color:var(--text);display:inline-grid}.friend-entry__dice svg{width:14px;height:14px}.friend-entry__note{font-size:var(--text-sm);color:var(--text-faint)}.friend-entry__mark{padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--surface-raised);color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap;flex:none;align-self:center;font-weight:600}.friends-page__empty{padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-muted)}.friends-page__empty-help{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--text-faint)}:root{--ground:#0a0a0c;--surface:#14141a;--surface-raised:#1e1e28;--line:#2b2b38;--line-strong:#3d3d4d;--text:#f4f4f7;--text-muted:#a3a3b2;--text-faint:#7b7b8c;--accent:#d4ff3f;--accent-dim:#a8cc2f;--accent-ink:#0a0a0c;--now:#ff2d6f;--down:#ff7a7a;--stage-amfiet:#ff9a5c;--stage-sirkus:#5cd6ff;--stage-vindfruen:#cba0ff;--stage-hagen:#7dffab;--stage-klubben:#ffd447;--stage-biblioteket:#ff96d8;--stage-default:#b9b9c8;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.5rem;--leading-tight:1.15;--leading-normal:1.5;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-8:3rem;--radius-sm:6px;--radius:12px;--radius-lg:18px;--radius-full:999px;--tap:44px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--header-height:3.5rem}*,:before,:after{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-text-size-adjust:100%}body{background:var(--ground);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;overflow-x:hidden}h1,h2,h3{line-height:var(--leading-tight);letter-spacing:-.02em;margin:0;font-weight:800}p{margin:0 0 var(--space-4)}a{color:var(--accent);text-underline-offset:2px;text-decoration-thickness:1px}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0}input,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--space-3);top:calc(var(--safe-top) + var(--space-2));z-index:100;background:var(--accent);color:var(--accent-ink);padding:var(--space-2) var(--space-4);border-radius:var(--radius);font-weight:700;position:absolute;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}#root{flex-direction:column;min-height:100dvh;display:flex}.app-main{padding-left:var(--safe-left);padding-right:var(--safe-right);padding-bottom:calc(var(--safe-bottom) + var(--space-8));flex:1}.page{width:100%;max-width:46rem;margin-inline:auto}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
