.public-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--color-canvas);color:var(--color-ink)}.shell-notice{padding:max(var(--space-3),env(safe-area-inset-top)) max(var(--space-4),env(safe-area-inset-right)) var(--space-3) max(var(--space-4),env(safe-area-inset-left));background:var(--color-warning-soft);color:var(--color-warning);font-family:var(--font-label);font-weight:var(--weight-semibold);font-size:var(--text-sm);text-align:center}.shell-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--color-surface-translucent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--color-line)}@supports not (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))){.shell-header,.shell-menu-drawer{background:var(--color-surface)}}.shell-header-inner{max-width:var(--container);margin:0 auto;padding:var(--space-2) max(var(--space-4),env(safe-area-inset-right)) var(--space-2) max(var(--space-4),env(safe-area-inset-left));display:flex;flex-wrap:nowrap;align-items:center;gap:var(--space-2) var(--space-4)}.shell-logo{display:flex;align-items:center;min-height:44px;flex:0 0 auto;text-decoration:none}.shell-logo,.shell-logo:hover{color:var(--color-ink)}.shell-nav{display:none;align-items:center;gap:2px;list-style:none;margin-left:var(--space-2)}.shell-nav-link{position:relative;flex:0 0 auto;display:flex;align-items:center;min-height:44px;padding:0 var(--space-2);border-radius:var(--radius-control);color:var(--color-ink-muted);font-family:var(--font-label);font-weight:var(--weight-semibold);font-size:var(--text-sm);white-space:nowrap;text-decoration:none;transition:color var(--duration-fast) var(--ease-standard)}.shell-nav-link:hover,.shell-nav-link[data-active=true]{color:var(--color-brand)}.shell-nav-indicator{position:absolute;inset:0;z-index:-1;border-radius:var(--radius-control);background:var(--color-brand-soft)}.shell-cta{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--space-4);border:1px solid var(--color-brand);border-radius:var(--radius-control);background:var(--color-brand);color:var(--color-on-brand);font-family:var(--font-label);font-weight:var(--weight-semibold);font-size:var(--text-sm);white-space:nowrap;text-decoration:none;transition:background var(--duration-fast) var(--ease-standard),transform var(--duration-instant)}.shell-cta:hover{background:var(--color-brand-hover);color:var(--color-on-brand)}.shell-cta:active{transform:scale(.98)}.shell-header-inner .shell-locales{display:none}.shell-locales{display:flex;align-items:center;gap:var(--space-1)}.shell-locale-link{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:var(--radius-control);color:var(--color-ink-muted);font-family:var(--font-label);font-weight:var(--weight-semibold);font-size:var(--text-label-compact);text-decoration:none}.shell-locale-link[data-active=true]{background:var(--color-brand);color:var(--color-on-brand)}.shell-locale-link:hover:not([data-active=true]){color:var(--color-brand)}.shell-menu-toggle{margin-left:auto;display:grid;place-items:center;grid-gap:var(--space-1);gap:var(--space-1);width:44px;height:44px;border:0;border-radius:var(--radius-control);background:transparent;transition:background-color var(--duration-fast) var(--ease-standard),transform var(--duration-instant) var(--ease-standard)}.shell-menu-toggle:hover{background:var(--color-brand-soft)}.shell-menu-toggle:active{transform:scale(var(--interaction-press-scale))}.shell-menu-bar{display:block;width:18px;height:2px;border-radius:2px;background:var(--color-ink);transform-origin:center}.shell-menu-drawer{overflow:hidden;border-top:1px solid var(--color-line);background:var(--color-surface-translucent)}.shell-menu-nav{display:flex;flex-direction:column;padding:var(--space-2) max(var(--space-4),env(safe-area-inset-right)) var(--space-2) max(var(--space-4),env(safe-area-inset-left));max-width:var(--container);margin:0 auto}.shell-menu-link{display:flex;align-items:center;min-height:48px;padding:0 var(--space-2);border-radius:var(--radius-control);color:var(--color-ink);font-family:var(--font-label);font-weight:var(--weight-semibold);font-size:var(--text-md);text-decoration:none}.shell-menu-link[data-active=true]{color:var(--color-brand)}.shell-menu-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) max(var(--space-4),env(safe-area-inset-right)) max(var(--space-5),env(safe-area-inset-bottom)) max(var(--space-4),env(safe-area-inset-left));max-width:var(--container);margin:0 auto}.shell-locales-menu{gap:var(--space-2)}.shell-locales-menu .shell-locale-link{min-width:44px;min-height:44px}@media (min-width:900px){.shell-nav{display:flex}.shell-header-inner .shell-locales{display:flex;margin-left:auto}.shell-header-inner .shell-cta{margin-left:0}.shell-menu-drawer,.shell-menu-toggle{display:none!important}}@media (max-width:899.98px){.shell-header-inner>.shell-cta{display:none}}.shell-main{flex:1 1;max-width:var(--container);margin:0 auto;width:100%;padding:var(--space-6) max(var(--space-4),env(safe-area-inset-right)) max(var(--space-12),env(safe-area-inset-bottom)) max(var(--space-4),env(safe-area-inset-left))}.shell-footer{border-top:1px solid var(--color-line);padding:var(--space-6) max(var(--space-4),env(safe-area-inset-right)) max(var(--space-8),env(safe-area-inset-bottom)) max(var(--space-4),env(safe-area-inset-left))}.shell-footer-inner{max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(180px,2fr) minmax(180px,1fr);grid-gap:var(--space-6);gap:var(--space-6);font-family:var(--font-label);font-weight:var(--weight-semibold);font-size:var(--text-label-compact);color:var(--color-ink-muted)}.shell-footer-brand,.shell-footer-meta{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.shell-footer-brand img{height:24px;width:auto}.shell-footer-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--space-6);gap:var(--space-6)}.shell-footer-heading{display:block;width:100%;margin-bottom:var(--space-stack-tight);color:var(--color-ink);font-weight:var(--weight-semibold);font-size:var(--text-label-compact);text-transform:none;letter-spacing:0}.shell-footer-nav{display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;column-gap:var(--space-6)}.shell-footer-meta a,.shell-footer-nav>:not(.shell-footer-heading){min-height:var(--touch-target);display:inline-flex;align-items:center}.shell-footer-meta a:hover,.shell-footer-nav a:hover{color:var(--color-brand)}.booking-submit:focus-visible,.calendar-project:focus-visible,.page-back:focus-visible,.region-filter:focus-visible,.section-link:focus-visible,.shell-cta:focus-visible,.shell-footer a:focus-visible,.shell-locale-link:focus-visible,.shell-logo:focus-visible,.shell-menu-link:focus-visible,.shell-menu-toggle:focus-visible,.shell-nav-link:focus-visible{outline:0;box-shadow:var(--shadow-focus)}.roster-search{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:var(--space-2);gap:var(--space-2);max-width:680px;margin:var(--space-6) 0 var(--space-4);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-field);background:var(--color-surface)}.roster-search input{min-width:0;min-height:44px;border:0;outline:0;background:transparent;color:var(--color-ink);font:inherit}.roster-search:focus-within{border-color:var(--color-focus);box-shadow:var(--shadow-focus)}.roster-search button{min-height:44px;padding:0 var(--space-4);border:0;border-radius:var(--radius-control);background:var(--color-brand);color:var(--color-on-brand);font-family:var(--font-label);font-weight:var(--weight-semibold)}.roster-result-count{margin:calc(var(--space-3) * -1) 0 var(--space-5);color:var(--color-ink-muted);font-family:var(--font-mono);font-size:var(--text-xs)}.roster-empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-top:var(--space-5)}@media (max-width:767.98px){.shell-main{padding-top:var(--space-5)}.shell-footer-inner{grid-template-columns:1fr}.shell-footer-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}}@media (max-width:389.98px){.roster-search{grid-template-columns:auto minmax(0,1fr)}.roster-search button{grid-column:1/-1}}.page-back{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--space-3) 0 0;color:var(--color-ink-muted);font-family:var(--font-label);font-weight:var(--weight-semibold);font-size:var(--text-sm)}.page-back:hover{color:var(--color-brand)}.page-title{font-family:var(--font-display);font-weight:var(--weight-display);font-size:clamp(26px,7.5vw,52px);letter-spacing:-.04em;overflow-wrap:normal;-webkit-hyphens:manual;hyphens:manual;line-height:var(--leading-tight);margin:var(--space-2) 0 var(--space-3);color:var(--color-ink)}.page-sub{color:var(--color-ink-muted);font-size:var(--text-md);margin:0 0 var(--space-5);max-width:56ch}.card{border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.region-filters{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-8)}.region-filter{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-control);background:transparent;color:var(--color-ink-muted);font-family:var(--font-label);font-weight:var(--weight-semibold);font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast)}.region-filter:hover{color:var(--color-brand)}.region-filter[data-active=true]{border-color:var(--color-brand);background:var(--color-brand-soft);color:var(--color-brand)}.empty-state{padding:var(--space-10) 0;text-align:center;color:var(--color-ink-muted)}.empty-state p:first-child{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-xl);color:var(--color-ink);margin:0 0 var(--space-2)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));grid-gap:var(--space-4);gap:var(--space-4)}.info-card{padding:var(--space-5) 0 0;border-top:1px solid var(--color-line-strong)}.contact-card-label{font-size:var(--text-label-compact);color:var(--color-ink-muted);margin-bottom:var(--space-2)}.contact-card-label,.contact-card-value{font-family:var(--font-label);font-weight:var(--weight-semibold)}.contact-card-value{font-size:var(--text-md)}.contact-card-note{margin:0 0 var(--space-4);font-size:var(--text-sm);color:var(--color-ink-muted)}.calendar-card{border-radius:var(--radius-card);background:var(--color-surface);padding:var(--space-2) var(--space-4) var(--space-3)}.calendar-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--color-line)}.calendar-row:first-child{border-top:0}.calendar-date{flex:0 0 88px;font-family:var(--font-label);font-weight:var(--weight-semibold);font-size:var(--text-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.calendar-place{flex:1 1 160px;min-width:0}.calendar-city{display:block;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-lg);letter-spacing:-.02em}.calendar-project{display:flex;align-items:center;min-height:44px;font-family:var(--font-label);font-weight:var(--weight-semibold);font-size:var(--text-label-compact);color:var(--color-ink-muted)}.calendar-project:hover{color:var(--color-ink);text-decoration:underline}.page-placeholder{padding:var(--space-8) 0}.page-placeholder h1{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-bold);margin:0 0 var(--space-4);color:var(--color-ink)}.page-placeholder p{color:var(--color-ink-muted);font-size:var(--text-md);line-height:var(--leading-body)}