:root{--bg: #f6f7f9;--surface: #ffffff;--line: #d8dde3;--fg: #1a1d21;--muted: #5c6672;--accent: #1f6feb;--accent-fg: #ffffff;--error: #c92a2a;--radius: .6rem}@media(prefers-color-scheme:dark){:root{--bg: #0f1216;--surface: #171b21;--line: #2b323b;--fg: #e8eaed;--muted: #9aa4b0;--accent: #4c8dff}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.page{max-width:42rem;margin:0 auto;padding:2rem 1rem 4rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.75rem}.card+.card{margin-top:1rem}h1{margin:0 0 .5rem;font-size:1.5rem;line-height:1.25}.lead{margin:0 0 .25rem}.muted{color:var(--muted);font-size:.9rem}.notice{padding:.8rem 1rem;border-radius:var(--radius);border:1px solid var(--line)}.notice--error{border-color:var(--error);color:var(--error)}.pf-form{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.5rem}.pf-section{border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem 1.2rem;margin:0;display:flex;flex-direction:column;gap:1rem}.pf-section__title{font-size:.8rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:0 .35rem}.pf-section__description{margin:0;color:var(--muted);font-size:.9rem}.pf-field{display:flex;flex-direction:column;gap:.35rem}.pf-label{font-weight:600;font-size:.95rem}.pf-required{color:var(--error)}.pf-input{width:100%;font:inherit;padding:.7rem .8rem;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:.45rem}.pf-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.pf-field--invalid .pf-input{border-color:var(--error)}.pf-textarea{resize:vertical;line-height:1.5}.pf-checks{display:flex;flex-wrap:wrap;gap:.5rem}.pf-check,.pf-consent{display:flex;align-items:flex-start;gap:.6rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:.45rem;cursor:pointer;font-size:.95rem}.pf-check:has(input:checked),.pf-consent:has(input:checked){border-color:var(--accent)}.pf-consent{align-items:flex-start;line-height:1.5}.pf-check input,.pf-consent input,.pf-checkbox{width:1.15rem;height:1.15rem;margin:.15rem 0 0;accent-color:var(--accent);flex:none}.pf-hint{margin:0;font-size:.85rem;color:var(--muted)}.pf-hint--warn{color:var(--error)}.pf-error{margin:0;font-size:.85rem;color:var(--error);font-weight:500}.pf-static{margin:0;color:var(--muted)}.pf-submit{font:inherit;font-weight:600;padding:.85rem 1.2rem;border:none;border-radius:.45rem;background:var(--accent);color:var(--accent-fg);cursor:pointer}.pf-submit:disabled{opacity:.6;cursor:default}.pf-secondary{font:inherit;font-weight:600;padding:.85rem 1.2rem;border:1px solid var(--line);border-radius:.45rem;background:transparent;color:var(--fg);cursor:pointer}.pf-secondary:hover:not(:disabled){border-color:var(--fg)}.pf-secondary:disabled{opacity:.6;cursor:default}.pf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem}.field{display:flex;flex-direction:column;gap:.35rem;margin:.9rem 0;min-width:0}.field__label{font-weight:600;font-size:.95rem}.field__hint{font-size:.85rem;color:var(--muted)}.field>input,.field>select,.field>textarea{width:100%;max-width:100%;font:inherit;padding:.7rem .8rem;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:.45rem}.field>input:focus-visible,.field>select:focus-visible,.field>textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.field>textarea{resize:vertical;line-height:1.5}.shop__list{list-style:none;margin:1rem 0;padding:0}.shop__item{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line, #d0d7de)}.shop__item>:first-child{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.shop__qty{width:4.5rem;flex:0 0 auto;text-align:right;font:inherit;padding:.5rem .6rem;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--fg)}.shop__totals{margin:1rem 0}.shop__totals>div{display:flex;justify-content:space-between;padding:.2rem 0}.shop__totals dt,.shop__totals dd{margin:0}.shop__total{border-top:1px solid var(--line, #d0d7de);margin-top:.4rem;padding-top:.5rem!important;font-weight:700}.notice{padding:.6rem .8rem;border-radius:6px;background:#fff8c5;border:1px solid #d4a72c}.shop__card-element{margin:1rem 0 1.25rem;min-height:3rem}.error{margin:.75rem 0;padding:.65rem .85rem;border:1px solid #f2b8b5;border-left:3px solid #b3261e;border-radius:6px;background:#fcefee;color:#7f1d1a;font-size:.9rem}.portal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.portal-header h1{margin:0}.link-button{background:none;border:none;padding:0;font:inherit;color:var(--accent, #0969da);cursor:pointer;text-decoration:underline}.link-button:disabled{color:var(--muted, #57606a);cursor:default}.event-list{list-style:none;margin:0;padding:0}.event-list__item{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line, #d0d7de)}.event-list__item:last-child{border-bottom:none}.event-list__item p{margin:.2rem 0 0}.event-list__meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex:0 0 auto;text-align:right}.held-pass{padding:.85rem 0;border-bottom:1px solid var(--line, #d0d7de)}.held-pass:last-child{border-bottom:none}.held-pass header{display:flex;align-items:center;gap:.6rem}.held-pass p{margin:.3rem 0 0}.held-pass__actions,.apply__actions{display:flex;align-items:center;gap:1rem;margin-top:.75rem}.apply{padding:.85rem 0;border-bottom:1px solid var(--line, #d0d7de)}.apply:last-child{border-bottom:none}.apply-choices{list-style:none;margin:0;padding:0}.apply-choice{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line, #d0d7de)}.apply-choice:last-child{border-bottom:none}.apply-choice__about p{margin:.2rem 0 0}.apply-choice__name{margin:0;font-size:1.05rem}@media(max-width:560px){.apply-choice{flex-direction:column;align-items:stretch}}.apply h3{margin:0 0 .5rem}.badge{padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--line, #eaeef2);color:var(--muted, #57606a)}.badge--draft{background:#fff8c5;color:#7a5c00}.badge--pending{background:#ddf4ff;color:#0a4a6e}.badge--active{background:#dafbe1;color:#0f5323}.badge--suspended{background:#fcefee;color:#7f1d1a}.allocation-table{width:100%;border-collapse:collapse;font-size:.9rem}.allocation-table th,.allocation-table td{padding:.45rem .6rem;text-align:left;border-bottom:1px solid var(--line, #d0d7de)}.allocation-table th:not(:first-child):not(:nth-child(2)),.allocation-table td:not(:first-child):not(:nth-child(2)){text-align:right;font-variant-numeric:tabular-nums}.invite-link{display:block;margin-top:.5rem;padding:.5rem .65rem;border-radius:6px;background:#fff;border:1px solid var(--line, #d0d7de);font-size:.8rem;word-break:break-all}.pf-check--standalone{display:inline-flex;margin:.75rem 0}.chosen-list{margin:.4rem 0 0;padding-left:1.1rem}.pf-check--full{opacity:.55}.card--warning{border-color:#d4a72c;background:#fffbeb}.faq{margin:0}.faq dt{font-weight:600;margin-top:1rem}.faq dd{margin:.25rem 0 0;color:var(--muted, #57606a)}.grid-scroll{overflow-x:auto;max-width:100%;margin:.5rem 0 1rem;-webkit-overflow-scrolling:touch}.booking-grid{border-collapse:collapse;font-size:.9rem;min-width:100%}.booking-grid th,.booking-grid td{padding:.4rem .55rem;border:1px solid var(--line, #d0d7de);text-align:center;vertical-align:top;white-space:nowrap}.booking-grid th[scope=row]{text-align:left;font-weight:600}.slot{min-width:4.5rem;padding:.35rem .5rem;font-size:.85rem;font-variant-numeric:tabular-nums}.slot--chosen{outline:2px solid var(--accent, #0969da);outline-offset:1px}.portal-root{min-height:100vh;background:var(--bg);color:var(--fg);font-family:var(--font, inherit);display:flex;flex-direction:column}.portal-preview-banner{background:#fff3cd;color:#664d03;font-size:.85rem;padding:.4rem 1rem;text-align:center}.portal-header{display:flex;align-items:center;gap:1rem;padding:.9rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap}.portal-header__brand{font-weight:700;font-size:1.1rem;color:var(--fg);text-decoration:none}.portal-header__viewer{margin-left:auto;font-size:.85rem}.portal-nav{display:flex;gap:.25rem;flex-wrap:wrap}.portal-nav__item{padding:.35rem .6rem;border-radius:var(--radius);color:var(--fg);text-decoration:none}.portal-nav__item.is-current,.portal-nav__item:hover{background:var(--bg)}.portal-main{flex:1;width:min(60rem,100%);margin:0 auto;padding:1.25rem 1rem 2.5rem;box-sizing:border-box}.portal-footer{padding:1.25rem;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem;text-align:center}.portal-columns{display:grid;gap:1rem;margin:1rem 0}@media(min-width:40rem){.portal-columns--2{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-columns--3{grid-template-columns:repeat(3,minmax(0,1fr))}}.portal-button{display:inline-block;padding:.55rem 1rem;border-radius:var(--radius);text-decoration:none;font-weight:600}.portal-button--primary{background:var(--accent);color:var(--accent-fg)}.portal-button--secondary{border:1px solid var(--line);color:var(--fg)}.portal-divider{border:0;border-top:1px solid var(--line);margin:1.25rem 0}.portal-spacer--s{height:.5rem}.portal-spacer--m{height:1.25rem}.portal-spacer--l{height:2.5rem}.portal-cards{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.75rem}@media(min-width:40rem){.portal-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.portal-card{padding:.9rem 1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.portal-card a{color:var(--fg);text-decoration:none}.portal-signin{max-width:28rem}.pf-steps{display:flex;flex-wrap:wrap;gap:.35rem 1rem;list-style:none;margin:0 0 1rem;padding:0;counter-reset:step;font-size:.9rem;color:var(--muted)}.pf-steps__item:before{counter-increment:step;content:counter(step) ". "}.pf-steps__item.is-current{color:var(--fg);font-weight:600}.pf-steps__item.is-done{text-decoration:line-through}.pf-steps__nav{display:flex;gap:.75rem;align-items:center;margin-top:1rem}.pf-back{background:transparent;border:1px solid var(--line);color:var(--fg)}.portal-honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.portal-image{margin:0 0 1rem}.portal-image img{display:block;max-width:100%;height:auto;border-radius:var(--radius)}.portal-image--s img{max-width:240px}.portal-image--m img{max-width:480px}.portal-image--l img{max-width:800px}.portal-image--full img{width:100%}.portal-image figcaption{margin-top:.4rem;font-size:.9rem}.portal-header__logo{display:block;height:2.4rem;width:auto;max-width:240px}.portal-embed{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}.portal-embed>*{min-width:0}.portal-richtext blockquote{border-left:3px solid var(--line);margin:1rem 0;padding-left:1rem;color:var(--muted)}.portal-richtext pre{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.75rem;overflow-x:auto}.portal-richtext code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}.portal-root--styled{--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);--shadow-lg: 0 10px 30px rgba(16, 24, 40, .08);-webkit-font-smoothing:antialiased}.portal-root--styled .portal-header{padding:.85rem 1.5rem;gap:1.5rem;box-shadow:var(--shadow);border-bottom:0;position:sticky;top:0;z-index:5}.portal-root--styled .portal-header__brand{font-size:1.15rem;letter-spacing:-.01em}.portal-root--styled .portal-nav__item{padding:.45rem .8rem;font-weight:500;color:var(--muted);transition:background .12s ease,color .12s ease}.portal-root--styled .portal-nav__item:hover{color:var(--fg)}.portal-root--styled .portal-nav__item.is-current{color:var(--fg);background:color-mix(in srgb,var(--accent) 12%,transparent)}.portal-root--styled .portal-main{padding:2rem 1.25rem 3.5rem}.portal-root--styled .card{box-shadow:var(--shadow);padding:clamp(1.25rem,3vw,2.25rem)}.portal-root--styled .card+.card{margin-top:1.25rem}.portal-root--styled h1{font-size:clamp(1.6rem,3.5vw,2.1rem);letter-spacing:-.02em;margin-bottom:.35rem}.portal-root--styled h2{font-size:1.25rem;letter-spacing:-.01em;margin:1.75rem 0 .6rem}.portal-root--styled h3{font-size:1.05rem;margin:1.25rem 0 .4rem}.portal-root--styled .lead{font-size:1.05rem;color:var(--muted);margin-bottom:1rem}.portal-root--styled p{max-width:68ch}.portal-root--styled .pf-input,.portal-root--styled input[type=text],.portal-root--styled input[type=email],.portal-root--styled input[type=tel],.portal-root--styled input[type=number],.portal-root--styled input[type=date],.portal-root--styled input[type=search],.portal-root--styled select,.portal-root--styled textarea{width:100%;min-height:2.9rem;padding:.65rem .85rem;font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:inset 0 1px 2px #1018280a;transition:border-color .12s ease,box-shadow .12s ease}.portal-root--styled textarea{min-height:7rem;line-height:1.5}.portal-root--styled .shop__qty{width:5.5rem;flex:0 0 5.5rem}.portal-root--styled .pf-input:hover,.portal-root--styled input:hover,.portal-root--styled select:hover,.portal-root--styled textarea:hover{border-color:color-mix(in srgb,var(--fg) 30%,var(--line))}.portal-root--styled .pf-input:focus-visible,.portal-root--styled input:focus-visible,.portal-root--styled select:focus-visible,.portal-root--styled textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}.portal-root--styled .pf-field--invalid .pf-input{border-color:var(--error);box-shadow:0 0 0 4px color-mix(in srgb,var(--error) 18%,transparent)}.portal-root--styled .pf-label{font-size:.9rem;letter-spacing:.01em}.portal-root--styled .pf-hint{font-size:.85rem}.portal-root--styled .pf-check,.portal-root--styled .pf-consent{padding:.75rem .95rem;background:var(--surface);border-radius:var(--radius);transition:border-color .12s ease,background .12s ease}.portal-root--styled .pf-check:hover,.portal-root--styled .pf-consent:hover{border-color:color-mix(in srgb,var(--fg) 30%,var(--line))}.portal-root--styled .pf-check:has(input:checked),.portal-root--styled .pf-consent:has(input:checked){background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.portal-root--styled .field{display:flex;flex-direction:column;gap:.35rem;margin:.75rem 0}.portal-root--styled .field__label{font-weight:600;font-size:.9rem;letter-spacing:.01em}.portal-root--styled .pf-submit,.portal-root--styled .portal-button,.portal-root--styled button.button,.portal-root--styled button:not([class]),.portal-root--styled .pf-back{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.9rem;padding:.65rem 1.25rem;font:inherit;font-weight:600;border-radius:var(--radius);cursor:pointer;text-decoration:none;transition:transform 80ms ease,box-shadow .12s ease,background .12s ease}.portal-root--styled .pf-submit,.portal-root--styled button:not([class]),.portal-root--styled .portal-button--primary{background:var(--accent);color:var(--accent-fg);border:1px solid transparent;box-shadow:0 1px 2px #1018281f}.portal-root--styled .pf-submit:hover:not(:disabled),.portal-root--styled button:not([class]):hover:not(:disabled),.portal-root--styled .portal-button--primary:hover{filter:brightness(1.06);box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 35%,transparent)}.portal-root--styled .pf-submit:active:not(:disabled),.portal-root--styled .portal-button:active{transform:translateY(1px)}.portal-root--styled .portal-button--secondary,.portal-root--styled .pf-back{background:var(--surface);color:var(--fg);border:1px solid var(--line)}.portal-root--styled .portal-button--secondary:hover,.portal-root--styled .pf-back:hover{border-color:color-mix(in srgb,var(--fg) 30%,var(--line))}.portal-root--styled .pf-submit:focus-visible,.portal-root--styled button:not([class]):focus-visible,.portal-root--styled .portal-button:focus-visible{outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 30%,transparent)}.portal-root--styled .pf-submit:disabled,.portal-root--styled button:not([class]):disabled{opacity:.6;cursor:default;box-shadow:none}.portal-root--styled .event-list{list-style:none;margin:.5rem 0 0;padding:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.portal-root--styled .event-list__item{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.85rem 1rem;background:var(--surface)}.portal-root--styled .event-list__item+.event-list__item{border-top:1px solid var(--line)}.portal-root--styled .portal-card{background:var(--surface);box-shadow:var(--shadow);transition:transform .12s ease,box-shadow .12s ease}.portal-root--styled .portal-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}.portal-root--styled .notice{background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-color:color-mix(in srgb,var(--accent) 30%,var(--line));color:var(--fg)}.portal-root--styled .notice--error{background:color-mix(in srgb,var(--error) 8%,var(--surface));border-color:var(--error);color:var(--error)}.portal-root--styled .portal-footer{padding:1.5rem 1.25rem 2rem;border-top:1px solid var(--line)}.portal-rota__day+.portal-rota__day{margin-top:1rem}.portal-rota__date{margin:.75rem 0 .35rem;font-size:.95rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.impersonation-banner{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;padding:.55rem 1rem;background:#1f1a3d;color:#fff;font-size:.9rem;line-height:1.35;border-bottom:3px solid #f5a524}.impersonation-banner strong{color:#ffd27a}.impersonation-banner__end{font:inherit;font-weight:600;padding:.3rem .8rem;border-radius:999px;border:1px solid #ffd27a;background:transparent;color:#ffd27a;cursor:pointer}.impersonation-banner__end:hover:not(:disabled){background:#ffd27a;color:#1f1a3d}.impersonation-banner__end:disabled{opacity:.6;cursor:default}.form-list h2{margin-top:0}.form-list .event-list__item p{margin:.15rem 0 0}.form-list__open-link{align-self:center;white-space:nowrap;text-decoration:none;padding:.55rem .9rem}.form-list__open>p:first-child{margin-top:0}.booking-chosen{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.75rem}.booking-chosen__item{border:1px solid var(--line);border-radius:.6rem;padding:.75rem .9rem}.booking-chosen__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.booking-chosen__item .field{margin-bottom:0}
