.portal-shell{--portal-bg:#f3f6fa;--portal-bg-accent:#e8eef6;--portal-surface:#ffffff;--portal-ink:#0c1b33;--portal-muted:#5a6b82;--portal-faint:#8a9bb0;--portal-border:#d5dee9;--portal-border-strong:#b8c5d6;--portal-accent:#c2410c;--portal-accent-hover:#9a3412;--portal-accent-soft:#fff4ed;--portal-navy:#13294b;--portal-navy-soft:#e8eef8;--portal-ok-bg:#ecfdf5;--portal-ok-ink:#065f46;--portal-err-bg:#fef2f2;--portal-err-ink:#b91c1c;--portal-focus:#c2410c;--portal-radius:0.875rem;--portal-radius-sm:0.625rem;--portal-shadow:0 1px 2px rgba(12,27,51,0.04),0 4px 16px rgba(12,27,51,0.04);--portal-font:var(--font-jakarta),"Segoe UI",system-ui,sans-serif;background:radial-gradient(1200px 500px at 10% -10%,#fff4ed 0,transparent 55%),radial-gradient(900px 420px at 100% 0,#e8eef8 0,transparent 50%),var(--portal-bg);color:var(--portal-ink);color-scheme:light;font-family:var(--portal-font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}.portal-shell .font-heading,.portal-shell h1,.portal-shell h2,.portal-shell h3{font-family:var(--portal-font);letter-spacing:-.02em;color:var(--portal-navy)}.portal-shell main{max-width:72rem;padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));padding-bottom:max(2rem,env(safe-area-inset-bottom))}.portal-shell .portal-auth{display:flex;min-height:calc(100vh - 4.5rem);align-items:flex-start;justify-content:center;padding:1.5rem 0 3rem}@media (min-width:640px){.portal-shell .portal-auth{align-items:center;padding-top:2rem}}.portal-shell .portal-auth-card{width:100%;max-width:26rem;border:1px solid var(--portal-border);background:var(--portal-surface);border-radius:calc(var(--portal-radius) + .125rem);box-shadow:var(--portal-shadow);padding:1.5rem}@media (min-width:640px){.portal-shell .portal-auth-card{padding:2rem}}.portal-shell .portal-eyebrow{font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--portal-accent)}.portal-shell .portal-card{border:1px solid var(--portal-border);background:var(--portal-surface);border-radius:var(--portal-radius);box-shadow:var(--portal-shadow)}.portal-shell .portal-input{width:100%;min-height:2.75rem;border:1px solid var(--portal-border-strong);background:#fff;color:var(--portal-ink);border-radius:var(--portal-radius-sm);padding:.625rem .875rem;font-size:1rem;outline:none;transition:border-color .15s ease,box-shadow .15s ease}@media (min-width:640px){.portal-shell .portal-input{font-size:.9375rem}}.portal-shell select.portal-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235a6b82' d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;padding-right:2.25rem}.portal-shell .portal-input:focus{border-color:var(--portal-focus);box-shadow:0 0 0 3px rgba(194,65,12,.16)}.portal-shell textarea.portal-input{min-height:4.5rem;resize:vertical}.portal-shell .portal-btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-height:2.75rem;border-radius:var(--portal-radius-sm);padding:.625rem 1.125rem;font-size:.9375rem;font-weight:650;background:var(--portal-accent);color:#fffaf7;border:1px solid transparent;transition:background .15s ease,transform .1s ease}.portal-shell .portal-btn:hover{background:var(--portal-accent-hover)}.portal-shell .portal-btn:active{transform:translateY(1px)}.portal-shell .portal-btn:disabled{opacity:.55}.portal-shell .portal-btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-height:2.5rem;border-radius:var(--portal-radius-sm);padding:.5rem .875rem;font-size:.875rem;font-weight:650;background:#fff;color:var(--portal-navy);border:1px solid var(--portal-border-strong);transition:background .15s ease,border-color .15s ease}.portal-shell .portal-btn-ghost:hover{background:var(--portal-navy-soft);border-color:#91a4c0}.portal-shell .portal-btn-danger{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;border-radius:var(--portal-radius-sm);padding:.4rem .75rem;font-size:.875rem;font-weight:650;background:transparent;color:var(--portal-err-ink);border:1px solid #e8c9c9}.portal-shell .portal-btn-danger:hover{background:var(--portal-err-bg)}.portal-shell .portal-muted{color:var(--portal-muted)}.portal-shell .portal-faint{color:var(--portal-faint)}.portal-shell .portal-ok{border-radius:var(--portal-radius-sm);background:var(--portal-ok-bg);color:var(--portal-ok-ink);padding:.625rem .875rem;font-size:.875rem;border:1px solid #a7f3d0}.portal-shell .portal-err{border-radius:var(--portal-radius-sm);background:var(--portal-err-bg);color:var(--portal-err-ink);padding:.625rem .875rem;font-size:.875rem;border:1px solid #fecaca}.portal-shell .portal-chip{display:inline-block;border-radius:999px;background:var(--portal-navy-soft);color:var(--portal-navy);font-weight:650;padding:.2rem .6rem;font-size:.75rem}.portal-shell .portal-kpi{border:1px solid var(--portal-border);background:linear-gradient(180deg,#fff 0,var(--portal-navy-soft) 100%);border-radius:var(--portal-radius-sm);padding:.875rem}.portal-shell .portal-table{width:100%;border-collapse:collapse}.portal-shell .portal-table th{color:var(--portal-muted);font-weight:650;font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--portal-border);padding:.625rem .75rem .625rem 0;text-align:left;white-space:nowrap}.portal-shell .portal-table td{border-bottom:1px solid var(--portal-border);padding:.75rem .75rem .75rem 0;vertical-align:top}.portal-shell .portal-table tr:hover td{background:rgba(232,238,248,.55)}.portal-shell a.portal-link{color:var(--portal-accent);text-decoration:underline;text-underline-offset:2px;font-weight:600}.portal-shell a.portal-link:hover{color:var(--portal-accent-hover)}button.portal-link{color:var(--portal-accent);text-decoration:underline;text-underline-offset:2px;font-weight:600;background:none;border:none;padding:0;cursor:pointer;font-size:inherit}.portal-shell .portal-header{position:sticky;top:0;z-index:40;border-bottom:1px solid var(--portal-border);background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding-top:env(safe-area-inset-top)}.portal-shell .portal-header-inner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;max-width:72rem;margin:0 auto;padding:.75rem max(1rem,env(safe-area-inset-left)) .75rem max(1rem,env(safe-area-inset-right));min-height:3.5rem}.portal-shell .portal-brand{display:flex;flex-direction:column;min-width:0;text-decoration:none;line-height:1.15}.portal-shell .portal-brand-mark{font-size:.625rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase;color:var(--portal-accent)}.portal-shell .portal-brand-title{font-size:1rem;font-weight:750;color:var(--portal-navy);letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width:640px){.portal-shell .portal-brand-title{font-size:1.0625rem}}.portal-shell .portal-nav-desktop{display:none;align-items:center;gap:.25rem}@media (min-width:900px){.portal-shell .portal-nav-desktop{display:flex}}.portal-shell .portal-nav-link{border-radius:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:600;color:var(--portal-ink);text-decoration:none;transition:background .15s ease,color .15s ease}.portal-shell .portal-nav-link:hover{background:var(--portal-navy-soft)}.portal-shell .portal-nav-link[data-active=true]{background:var(--portal-navy);color:#f8fafc}.portal-shell .portal-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.portal-shell .portal-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:.625rem;border:1px solid var(--portal-border-strong);background:#fff;color:var(--portal-navy)}.portal-shell .portal-icon-btn:hover{background:var(--portal-navy-soft)}@media (min-width:900px){.portal-shell .portal-menu-toggle{display:none}}.portal-drawer-root{position:fixed;inset:0;z-index:200}@media (min-width:900px){.portal-drawer-root{display:none!important}}.portal-drawer-backdrop{position:absolute;inset:0;background:rgba(12,27,51,.4);border:none;padding:0;cursor:pointer}.portal-drawer{position:absolute;top:0;right:0;display:flex;flex-direction:column;height:100dvh;width:min(100%,20rem);background:#ffffff;color:#0c1b33;box-shadow:-8px 0 32px rgba(12,27,51,.12);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);font-family:var(--font-jakarta),"Segoe UI",system-ui,sans-serif}.portal-drawer .portal-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:.625rem;border:1px solid #b8c5d6;background:#fff;color:#13294b}.portal-drawer-nav a,.portal-drawer-nav button{width:100%;justify-content:flex-start;text-align:left;min-height:3rem;border-radius:.625rem;padding:.75rem 1rem;font-size:1rem;font-weight:600;text-decoration:none;color:#0c1b33}.portal-drawer-nav .portal-nav-link[data-active=true]{background:#fff4ed;color:#c2410c}.portal-drawer .portal-muted{color:#5a6b82}.portal-drawer .portal-btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-height:2.5rem;border-radius:.625rem;padding:.5rem .875rem;font-size:.875rem;font-weight:650;background:#fff;color:#13294b;border:1px solid #b8c5d6}.portal-shell .portal-book-panel{border-color:rgba(194,65,12,.35);box-shadow:var(--portal-shadow),0 0 0 1px rgba(194,65,12,.08)}.portal-shell .portal-book-summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;list-style:none;cursor:pointer;padding:1rem 1.125rem}.portal-shell .portal-book-summary::-webkit-details-marker{display:none}.portal-shell .portal-book-badge{flex-shrink:0;border-radius:999px;background:var(--portal-accent);color:#fff;font-size:.75rem;font-weight:700;padding:.35rem .75rem}.portal-shell .portal-filter-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.75rem;min-height:3rem;border-radius:var(--portal-radius-sm);border:1px solid var(--portal-border-strong);background:#fff;padding:.75rem 1rem;font-size:.9375rem;font-weight:650;color:var(--portal-navy);margin-bottom:.75rem}@media (min-width:1024px){.portal-shell .portal-filter-toggle{display:none}}.portal-shell .portal-filters{display:none}.portal-shell .portal-filters[data-open=true]{display:block}@media (min-width:1024px){.portal-shell .portal-filters{display:block!important}}.portal-shell .portal-booking-cards{display:flex;flex-direction:column;gap:.75rem}.portal-shell .portal-booking-card{border:1px solid var(--portal-border);border-radius:var(--portal-radius-sm);background:#fff;padding:1rem}.portal-shell .portal-booking-card-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.portal-shell .portal-booking-meta{display:grid;grid-template-columns:auto 1fr;gap:.25rem .75rem;font-size:.875rem}.portal-shell .portal-booking-meta dt{color:var(--portal-faint);font-weight:600}.portal-shell .portal-booking-meta dd{margin:0;color:var(--portal-ink);word-break:break-word}.portal-shell .portal-booking-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.875rem;padding-top:.75rem;border-top:1px solid var(--portal-border)}.portal-shell .portal-table-wrap{display:none}@media (min-width:768px){.portal-shell .portal-booking-cards{display:none}.portal-shell .portal-table-wrap{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (prefers-reduced-motion:reduce){.portal-shell .portal-btn,.portal-shell .portal-input,.portal-shell .portal-nav-link{transition:none}}