@layer patterns{.app-boot,.app-loading{place-items:center;min-height:60dvh;display:grid}.app-boot,.app-public{min-height:100dvh}.p-app{grid-template:"demo""top""main"1fr"bottom"/1fr;min-height:100dvh;display:grid}.app-demo{padding:6px var(--gutter);background:var(--brand-accent);color:var(--brand-night);font-size:var(--text-xs);text-align:center;grid-area:demo;justify-content:center;align-items:center;gap:8px;font-weight:650;display:flex}.app-topbar{z-index:var(--z-nav);align-items:center;gap:var(--space-3);height:56px;padding-inline:var(--space-4);border-bottom:1px solid var(--divider);background:color-mix(in srgb, var(--bg) 86%, transparent);backdrop-filter:saturate(1.4)blur(12px);grid-area:top;display:flex;position:sticky;top:0}.app-topbar__logo{color:inherit;text-decoration:none}.app-topbar__ctx{flex:auto;justify-content:center;min-width:0;display:flex}.app-topbar__ctx .ctx-switch{background:0 0;border:0;max-width:220px;padding:4px 8px}.app-topbar__ctx .ctx-switch__icon{display:none}.app-topbar__actions{align-items:center;gap:6px;display:flex}.app-icon-btn{border-radius:var(--radius-md);width:40px;height:40px;color:var(--text);place-items:center;font-size:22px;display:grid;position:relative}.app-icon-btn:hover{background:var(--surface-3)}.app-icon-btn__dot{border:2px solid var(--bg);background:var(--action);border-radius:50%;width:9px;height:9px;position:absolute;top:9px;right:9px}.app-avatar-btn{background:0 0;border:0;border-radius:50%;padding:2px}.ctx-switch{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);text-align:start;align-items:center;gap:10px;width:100%;min-width:0;padding:8px 10px;display:flex}.ctx-switch:disabled{cursor:default}.ctx-switch:not(:disabled):hover{background:var(--surface-2)}.ctx-switch__icon{border-radius:var(--radius-sm);background:var(--action);width:32px;height:32px;color:var(--on-action);flex:none;place-items:center;font-size:18px;display:grid}.p-app[data-area=venue] .ctx-switch__icon{background:var(--brand-pitch);color:var(--brand-chalk)}.p-app[data-area=league] .ctx-switch__icon{background:var(--brand-accent);color:var(--brand-night)}.p-app[data-area=admin] .ctx-switch__icon{background:var(--brand-night);color:var(--brand-accent)}.ctx-switch__text{flex-direction:column;flex:auto;min-width:0;line-height:1.2;display:flex}.ctx-switch__kicker{font-size:var(--text-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);font-weight:650}.ctx-switch__name{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.app-sidebar{display:none}.app-nav{gap:2px;display:grid}.app-nav__item{border-radius:var(--radius-md);height:40px;color:var(--text-muted);font-size:var(--text-sm);transition:background-color var(--dur-1), color var(--dur-1);align-items:center;gap:12px;padding-inline:12px;font-weight:620;text-decoration:none;display:flex}.app-nav__item .p-icon{font-size:20px}.app-nav__item:hover{background:var(--surface-3);color:var(--text)}.app-nav__item[aria-current=page]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1), var(--ring-inset)}.app-nav__item[aria-current=page] .p-icon{color:var(--action)}.app-nav__item .p-badge{margin-inline-start:auto}.app-sidebar__foot{padding-top:var(--space-4);border-top:1px solid var(--divider);gap:2px;margin-top:auto;display:grid}.app-sidebar__me{align-items:center;gap:10px;min-width:0;padding:10px 6px 0;display:flex}.app-main{width:100%;max-width:1080px;padding:var(--space-5) var(--space-4) calc(var(--bottom-nav-h) + var(--space-8) + env(safe-area-inset-bottom));view-transition-name:app-main;grid-area:main;margin-inline:auto}::view-transition-old(app-main){animation:.14s var(--ease-in) both vt-out}::view-transition-new(app-main){animation:.24s var(--ease-out) both vt-in}@keyframes vt-out{to{opacity:0;transform:translateY(-6px)}}@keyframes vt-in{0%{opacity:0;transform:translateY(8px)}}.app-bottom-nav{z-index:var(--z-nav);height:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--divider);background:color-mix(in srgb, var(--surface) 92%, transparent);backdrop-filter:saturate(1.4)blur(14px);grid-area:bottom;grid-auto-columns:1fr;grid-auto-flow:column;align-items:center;display:grid;position:fixed;inset:auto 0 0}.app-bottom-nav__item{color:var(--text-subtle);font-size:var(--text-2xs);flex-direction:column;align-items:center;gap:3px;padding-block:8px;font-weight:650;text-decoration:none;display:flex}.app-bottom-nav__item .p-icon{transition:transform var(--dur-2) var(--ease-spring);font-size:24px}.app-bottom-nav__item[aria-current=page]{color:var(--text)}.app-bottom-nav__item[aria-current=page] .p-icon{color:var(--action);transform:translateY(-1px)scale(1.06)}.app-bottom-nav__fab{background:var(--action);width:52px;height:52px;color:var(--on-action);box-shadow:0 10px 24px -8px color-mix(in srgb, var(--brand-primary) 70%, transparent), inset 0 1px 0 #ffffff40;transition:transform var(--dur-2) var(--ease-spring);border-radius:18px;justify-self:center;place-items:center;margin-top:-22px;font-size:26px;display:grid}.app-bottom-nav__fab:active{transform:scale(.94)}@media (width>=1024px){.p-app{grid-template:"demo demo""side main"1fr/264px 1fr}.app-topbar,.app-bottom-nav{display:none}.app-sidebar{gap:var(--space-5);height:100dvh;padding:var(--space-5) var(--space-4);border-right:1px solid var(--divider);background:var(--bg-sunken);flex-direction:column;grid-area:side;display:flex;position:sticky;top:0;overflow-y:auto}.app-sidebar__logo{color:inherit;padding-inline:6px;text-decoration:none}.app-main{padding:var(--space-7) clamp(var(--space-6), 3vw, var(--space-9)) var(--space-10)}}.screen{gap:var(--space-6);animation:p-fade-up var(--dur-3) var(--ease-out) both;display:grid}.screen__head{align-items:flex-start;gap:var(--space-3);display:flex}.screen__titles{flex:auto;min-width:0}.screen__title{font-size:var(--text-3xl);text-transform:uppercase;font-weight:850;font-stretch:74%;line-height:1}.screen__subtitle{color:var(--text-muted);font-size:var(--text-sm);margin-top:6px}.screen__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.section-title{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.section-title h2{font-size:var(--text-xl)}.section-title a{font-size:var(--text-sm);color:var(--action-text);font-weight:650;text-decoration:none}.room-card{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:inherit;box-shadow:var(--shadow-1);transition:transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out), border-color var(--dur-2);gap:12px;text-decoration:none;display:grid}.room-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-2);transform:translateY(-2px)}.room-card__when{font-family:var(--font-display);font-weight:850;font-stretch:70%;font-size:var(--text-xl);text-transform:uppercase;line-height:1}.room-card__title{font-size:var(--text-md);font-weight:720;line-height:1.2}.room-card__meta{font-size:var(--text-xs);color:var(--text-muted);flex-wrap:wrap;gap:4px 12px;display:flex}.room-card__meta span{align-items:center;gap:4px;display:inline-flex}.room-card__foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.room-card__price{font-variant-numeric:tabular-nums;font-weight:760}.room-card__reasons{flex-wrap:wrap;gap:6px;display:flex}.room-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));display:grid}.person-row{align-items:center;gap:12px;min-width:0;padding:10px 0;display:flex}.person-row+.person-row{border-top:1px solid var(--divider)}.person-row__main{flex:auto;min-width:0}.person-row__name{font-weight:680;font-size:var(--text-sm)}.person-row__meta{font-size:var(--text-xs);color:var(--text-muted);flex-wrap:wrap;gap:4px 8px;margin-top:2px;display:flex}.detail-hero{gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-xl);background:var(--brand-night);color:var(--brand-chalk);--text:var(--brand-chalk);--text-muted:#b6c2b9;--text-subtle:#8a988e;--surface:#12291f;--surface-2:#163024;--surface-3:#1d3a2c;--border:#f4f1ea1f;--border-strong:#f4f1ea33;--divider:#f4f1ea1f;display:grid;position:relative;overflow:hidden}.detail-hero:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(60% 70% at 100% 0,#ffecaa1a,#0000 70%),repeating-linear-gradient(90deg,#ffffff05 0 48px,#0000 48px 96px);position:absolute;inset:0}.detail-hero>*{position:relative}.detail-hero__when{font-family:var(--font-display);font-weight:880;font-stretch:66%;font-size:var(--text-4xl);text-transform:uppercase;line-height:.9}.kv{font-size:var(--text-sm);grid-template-columns:auto 1fr;gap:8px 14px;display:grid}.kv dt{color:var(--text-muted);align-items:center;gap:6px;display:flex}.kv dd{margin:0;font-weight:600}.two-col{gap:var(--space-5);display:grid}@media (width>=900px){.two-col{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start}}.sticky-cta{bottom:calc(var(--bottom-nav-h) + 12px + env(safe-area-inset-bottom));z-index:var(--z-sticky);border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface) 94%, transparent);backdrop-filter:blur(10px);box-shadow:var(--shadow-3);padding:12px;position:sticky}@media (width>=1024px){.sticky-cta{bottom:var(--space-5)}}.signin{min-height:100dvh;display:grid}.signin__brand{display:none}.signin__panel{padding:var(--space-6) var(--space-4) var(--space-9);place-items:center;display:grid}.signin__card{width:min(460px,100%)}.signin__kicker{font-size:var(--text-2xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-subtle);font-weight:750}.signin__explore{justify-content:space-between;align-items:center;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--divider);font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;display:flex}.signin__aside{font-size:var(--text-sm);color:var(--text-muted)}.signin__forgot{margin-top:calc(var(--space-2) * -1);align-self:flex-end}.signin__links{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}@media (width>=960px){.signin{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.signin__brand{justify-content:space-between;gap:var(--space-8);padding:var(--space-9);background:radial-gradient(ellipse 60% 45% at 10% -5%, #ffecaa24, transparent 70%), repeating-linear-gradient(90deg, #ffffff05 0 64px, transparent 64px 128px), var(--brand-night);color:var(--brand-chalk);flex-direction:column;display:flex}}.quick{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.quick__item{min-height:116px;padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);color:inherit;transition:transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2);flex-direction:column;gap:6px;text-decoration:none;display:flex}.quick__item:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}.quick__item[data-primary]{background:var(--action);color:var(--on-action);border-color:#0000}.quick__item .p-icon{font-size:26px}.quick__title{font-family:var(--font-display);font-weight:850;font-stretch:72%;font-size:var(--text-xl);text-transform:uppercase;margin-top:auto;line-height:1}.quick__desc{font-size:var(--text-xs);opacity:.78;line-height:1.3}@media (width<=520px){.quick__desc{display:none}.quick__item{min-height:92px}}.task-card{align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--accent-soft);color:inherit;text-decoration:none;display:flex}.task-card>.p-icon:first-child{color:var(--accent-text);flex:none;font-size:28px}.task-card[data-tone=action]{background:var(--action-soft)}.task-card[data-tone=action]>.p-icon:first-child{color:var(--action-text)}.filters-bar{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.filters-bar .p-chip-row{flex:auto}.wizard{gap:var(--space-6);max-width:760px;display:grid}.wizard__foot{justify-content:space-between;gap:var(--space-2);display:flex}.format-cards{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(104px,1fr));display:grid}.format-card{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);text-align:start;transition:border-color var(--dur-1), background-color var(--dur-1), color var(--dur-1);flex-direction:column;align-items:flex-start;gap:4px;padding:14px;display:flex}.format-card[aria-checked=true]{border-color:var(--text);background:var(--text);color:var(--bg)}.format-card__code{font-family:var(--font-display);font-size:30px;font-weight:880;font-stretch:66%;line-height:1}.format-card__meta{font-size:var(--text-xs);opacity:.75}.venue-pick{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);align-items:center;display:flex}.venue-pick__art{border-radius:var(--radius-sm);flex:none;width:72px;height:54px;overflow:hidden}.summary-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.summary-list li{font-size:var(--text-sm);gap:10px;display:flex}.summary-list .p-icon{color:var(--text-subtle);flex:none;margin-top:2px}.venue-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:inherit;transition:transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2);grid-template-rows:132px auto;text-decoration:none;display:grid;overflow:hidden}.venue-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}.venue-card__cover{position:relative;overflow:hidden}.venue-card__cover img{object-fit:cover;width:100%;height:100%}.venue-card__badges{gap:6px;display:flex;position:absolute;top:10px;left:10px}.venue-card__body{padding:var(--space-4);gap:8px;display:grid}.venue-cover{border-radius:var(--radius-xl);height:clamp(160px,26vw,260px);overflow:hidden}.hours-table{font-size:var(--text-sm);grid-template-columns:auto 1fr;gap:6px 16px;display:grid}.hours-table dt{color:var(--text-muted)}.hours-table dd{font-variant-numeric:tabular-nums;margin:0}.hours-table [data-today]{color:var(--text);font-weight:750}.map-box{border-radius:var(--radius-lg);border:1px solid var(--border);height:min(60dvh,520px);overflow:hidden}.profile-head{gap:var(--space-4);grid-template-columns:auto 1fr;align-items:center;display:grid}.profile-name{font-family:var(--font-display);font-weight:870;font-stretch:70%;font-size:var(--text-4xl);text-transform:uppercase;line-height:.92}.profile-rating{align-items:baseline;gap:6px;display:flex}.profile-rating strong{font-family:var(--font-display);font-weight:880;font-stretch:66%;font-size:var(--text-3xl);font-variant-numeric:tabular-nums;line-height:1}.stats-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(110px,1fr));display:grid}.stats-grid .p-stat{padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface-2)}.medal-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));display:grid}.medal-item{text-align:center;font-size:var(--text-xs);justify-items:center;gap:6px;display:grid}.medal-item[data-locked]{opacity:.35;filter:grayscale()}.survey{gap:var(--space-6);max-width:640px;margin-inline:auto;display:grid}.pick-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(92px,1fr));display:grid}.pick{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-xs);text-align:center;transition:border-color var(--dur-1), background-color var(--dur-1), transform var(--dur-2) var(--ease-spring);justify-items:center;gap:6px;padding:12px 6px;font-weight:620;display:grid}.pick[aria-checked=true]{border-color:var(--action);background:var(--action-soft);transform:scale(1.03)}.score-input{justify-content:center;align-items:center;gap:var(--space-5);display:flex}.score-input__side{font-size:var(--text-sm);justify-items:center;gap:8px;font-weight:650;display:grid}.timeline{gap:2px;margin:0;padding:0;list-style:none;display:grid}.timeline li{border-bottom:1px solid var(--divider);font-size:var(--text-sm);grid-template-columns:44px 24px 1fr;align-items:center;gap:8px;padding:8px 0;display:grid}.timeline__minute{font-variant-numeric:tabular-nums;color:var(--text-muted);font-weight:750}.timeline .p-icon[data-kind=yellow]{color:var(--card-yellow)}.timeline .p-icon[data-kind=red],.timeline .p-icon[data-kind=second_yellow]{color:var(--card-red)}.timeline .p-icon[data-kind=goal],.timeline .p-icon[data-kind=penalty_goal]{color:var(--success)}.chat{gap:var(--space-3);display:grid}.chat__list{height:min(56dvh,520px);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-2);overscroll-behavior:contain;flex-direction:column;gap:6px;display:flex;overflow-y:auto}.chat__row{align-items:flex-end;gap:8px;max-width:84%;display:flex}.chat__row[data-mine]{flex-direction:row-reverse;align-self:flex-end}.chat__avatar{flex:none;width:24px}.chat__bubble{background:var(--surface);box-shadow:var(--shadow-1);font-size:var(--text-sm);animation:p-fade-up var(--dur-2) var(--ease-out) both;border-radius:14px 14px 14px 4px;gap:2px;padding:8px 12px;line-height:1.4;display:grid}.chat__row[data-mine] .chat__bubble{background:var(--brand-night);color:var(--brand-chalk);border-radius:14px 14px 4px}.chat__author{font-size:var(--text-xs);color:var(--action-text);font-weight:700}.chat__time{font-size:var(--text-2xs);opacity:.6;font-variant-numeric:tabular-nums;justify-self:end}.chat__flag{font-size:var(--text-2xs);color:var(--warning);align-items:center;gap:4px;display:inline-flex}.chat__system{border-radius:var(--radius-pill);background:var(--surface-3);font-size:var(--text-xs);color:var(--text-muted);align-self:center;padding:4px 10px}.chat__composer{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);align-items:flex-end;gap:6px;padding:6px;display:flex}.chat__composer:focus-within{border-color:var(--focus)}.chat__composer textarea{resize:none;field-sizing:content;background:0 0;border:0;outline:0;flex:auto;min-height:40px;max-height:140px;padding:9px 6px;font-size:max(16px,1em);line-height:1.35}.checkin-qr{border-radius:var(--radius-lg);width:min(280px,72vw);box-shadow:var(--shadow-2);background:#fff;padding:8px}.checkin-qr svg{width:100%;height:auto}.formalize__why{gap:var(--space-3);font-size:var(--text-sm);color:var(--text-muted);margin:0;padding:0;list-style:none;display:grid}.formalize__why li{grid-template-columns:auto 1fr;align-items:start;gap:10px;display:grid}.formalize__why .p-icon{color:var(--text-subtle);margin-top:1px;font-size:18px}.feed{gap:var(--space-4);max-width:680px;display:grid}.feed__filters{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.feed__filters>.p-field{flex:220px}.feed__composer{gap:var(--space-3);display:grid}.feed__medals{gap:6px;display:grid}.feed__medal{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-sm);transition:border-color var(--dur-1), background-color var(--dur-1);align-items:center;gap:8px;padding:4px 12px 4px 6px;font-weight:620;display:inline-flex}.feed__medal:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-2)}.feed__list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.post{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);display:grid}.post__head{align-items:center;gap:var(--space-3);display:flex}.post__who{flex:auto;min-width:0;display:grid}.post__who .p-icon{vertical-align:-2px}.post__body{white-space:pre-line;overflow-wrap:anywhere;line-height:var(--leading-normal)}.post__ref{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface-2);color:inherit;text-decoration:none;display:flex}.post__ref>div{flex:auto;min-width:0}.post__ref>.p-icon:last-child{color:var(--text-subtle)}a.post__ref:hover{background:var(--surface-3)}.post__ref[data-type=achievement]{background:radial-gradient(ellipse 60% 120% at 0% 50%, color-mix(in srgb, var(--brand-accent) 18%, transparent), transparent 70%), var(--surface-2)}.post__ref-kicker{font-size:var(--text-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-subtle);font-weight:750}.post__ref-title{font-weight:700}.post__score{border-radius:var(--radius-sm);background:var(--brand-night);min-width:72px;height:48px;color:var(--brand-chalk);font-family:var(--font-display);place-items:center;padding-inline:10px;font-size:24px;font-weight:860;font-stretch:70%;display:grid}.post__ref-icon{border-radius:var(--radius-sm);background:var(--brand-night);width:48px;height:48px;color:var(--brand-accent);place-items:center;font-size:24px;display:grid}.post__foot{justify-content:space-between;align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--divider);display:flex}.post__reactions{align-items:center;gap:2px;display:inline-flex}.post__react{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-muted);transition:background-color var(--dur-1), color var(--dur-1), scale var(--dur-2) var(--ease-out);background:0 0;border:0;place-items:center;font-size:19px;display:grid}.post__react:hover{background:var(--surface-3);color:var(--text)}.post__react[aria-pressed=true]{background:var(--action-soft);color:var(--action-text)}.post__react:active{scale:.9}.post__count{font-size:var(--text-sm);margin-inline-start:6px;font-weight:700}.post__comments{gap:var(--space-3);display:grid}.post__comment{grid-template-columns:auto 1fr;align-items:start;gap:10px;display:grid}.post__reply{align-items:flex-end;gap:var(--space-2);display:flex}.post__reply .p-control{flex:auto}.post__reply textarea{min-height:40px}.legal-update{margin-bottom:var(--space-5)}.legal-update__list{margin:var(--space-2) 0 0;gap:4px;padding-inline-start:18px;display:grid}}
