/*
 * ORGAVIO PUBLIC SHELL — Phase 1
 * Visual-only integration layer for existing public surfaces.
 * No API, route, data, permission, booking, live, tournament or wallet logic.
 */

body.orgavio-public-surface {
  color-scheme: dark;
  --orgavio-bg: #041127;
  --orgavio-bg-deep: #020817;
  --orgavio-panel: rgba(8, 28, 62, .78);
  --orgavio-panel-strong: rgba(10, 35, 78, .94);
  --orgavio-panel-soft: rgba(255, 255, 255, .055);
  --orgavio-text: #f6f8ff;
  --orgavio-muted: #a9b8d6;
  --orgavio-muted-strong: #c6d2e9;
  --orgavio-line: rgba(157, 188, 235, .18);
  --orgavio-line-strong: rgba(151, 197, 255, .3);
  --orgavio-blue: #2289ff;
  --orgavio-cyan: #3edcf8;
  --orgavio-violet: #8b63ff;
  --orgavio-purple: #b66cff;
  --orgavio-green: #42d7aa;
  --orgavio-gold: #ffbd4a;
  --orgavio-danger: #ff6477;
  --orgavio-shadow: 0 30px 84px rgba(0, 0, 0, .34);
  min-width: 320px;
  min-height: 100vh;
  background:
    radial-gradient(circle at 76% 8%, rgba(40, 86, 255, .18), transparent 30rem),
    radial-gradient(circle at 13% 34%, rgba(62, 220, 248, .075), transparent 29rem),
    radial-gradient(circle at 84% 72%, rgba(139, 99, 255, .09), transparent 34rem),
    linear-gradient(180deg, var(--orgavio-bg) 0%, #031027 52%, var(--orgavio-bg-deep) 100%);
  color: var(--orgavio-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

body.orgavio-public-surface::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(91, 139, 205, .03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(91, 139, 205, .03) 1px, transparent 1px);
  background-size: 58px 58px;
  mask-image: linear-gradient(to bottom, #000 0%, rgba(0, 0, 0, .7) 52%, transparent 100%);
}

body.orgavio-public-surface a { color: inherit; }
body.orgavio-public-surface button,
body.orgavio-public-surface input,
body.orgavio-public-surface textarea,
body.orgavio-public-surface select { font: inherit; }

body.orgavio-public-surface :is(a, button, input, textarea, select):focus-visible {
  outline: 3px solid rgba(62, 220, 248, .88);
  outline-offset: 3px;
}

body.orgavio-public-surface :is(.site-header, .topbar, .live-header, .guest-header) {
  position: relative;
  z-index: 20;
  border-color: var(--orgavio-line);
  color: var(--orgavio-text);
}

body.orgavio-public-surface :is(.site-header, .topbar) {
  background: rgba(3, 13, 32, .78);
  box-shadow: 0 14px 44px rgba(0, 0, 0, .2);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

body.orgavio-public-surface :is(.brand, .brand strong) { color: var(--orgavio-text); }
body.orgavio-public-surface .brand small { color: var(--orgavio-muted); }
body.orgavio-public-surface .brand img {
  box-shadow: 0 0 0 1px rgba(255,255,255,.13), 0 10px 28px rgba(34,137,255,.18);
}

body.orgavio-public-surface footer,
body.orgavio-public-surface .public-legal-footer {
  color: var(--orgavio-muted);
}

body.orgavio-public-surface footer a,
body.orgavio-public-surface .public-legal-footer a {
  color: var(--orgavio-muted-strong);
  text-decoration: none;
}

body.orgavio-public-surface footer a:hover,
body.orgavio-public-surface .public-legal-footer a:hover { color: var(--orgavio-cyan); }

/* -------------------------------------------------------------------------- */
/* Existing booking engine — visual shell only                                */
/* -------------------------------------------------------------------------- */
body.public-booking {
  --ink: var(--orgavio-text);
  --muted: var(--orgavio-muted);
  --brand: var(--orgavio-blue);
  --brand-dark: #4169ff;
  --accent: var(--orgavio-green);
  --surface: var(--orgavio-panel);
  --soft: rgba(255, 255, 255, .055);
  --line: var(--orgavio-line);
  --danger: #ff7183;
  --warning: #ffd477;
  --shadow: var(--orgavio-shadow);
}

body.public-booking .site-header {
  position: sticky;
  top: 0;
  border-bottom: 1px solid var(--orgavio-line);
}

body.public-booking .page-shell { width: min(980px, calc(100% - 28px)); }
body.public-booking :is(.hero, .panel, .state-card) {
  border-color: var(--orgavio-line);
  background: linear-gradient(155deg, rgba(12, 37, 82, .9), rgba(5, 20, 47, .95));
  box-shadow: var(--orgavio-shadow);
}
body.public-booking .hero {
  background:
    radial-gradient(circle at 88% 18%, rgba(62,220,248,.18), transparent 14rem),
    linear-gradient(135deg, rgba(22, 66, 148, .98), rgba(58, 66, 190, .92) 62%, rgba(24, 140, 117, .78) 140%);
}
body.public-booking .hero::after { background: rgba(255,255,255,.07); }
body.public-booking .eyebrow { color: #8fa9d1; }
body.public-booking .hero .eyebrow { color: #bfeeff; }
body.public-booking .panel { box-shadow: 0 18px 52px rgba(0,0,0,.22); }
body.public-booking .section-heading > strong,
body.public-booking .ticket-price { color: #8bdfff; }

body.public-booking :is(
  .ticket-type,
  .choice,
  .info-box,
  .summary-box,
  .seat-group,
  .saved-card,
  .ticket-card,
  .booking-benefit-card,
  .booking-how-card,
  .booking-link-note,
  .catalog-panel,
  .provider-grid > *,
  .offer-grid > *
) {
  border-color: var(--orgavio-line);
  background: rgba(255,255,255,.05);
  color: var(--orgavio-text);
}

body.public-booking .choice:has(input:checked) {
  border-color: rgba(62,220,248,.72);
  background: rgba(34,137,255,.14);
}
body.public-booking :is(.info-box, .summary-box) { color: #d8e7ff; }
body.public-booking label > span { color: var(--orgavio-muted-strong); }
body.public-booking input {
  border-color: var(--orgavio-line-strong);
  background: rgba(2, 12, 31, .72);
  color: var(--orgavio-text);
}
body.public-booking input:focus {
  outline: 3px solid rgba(62,220,248,.15);
  border-color: var(--orgavio-cyan);
}
body.public-booking :is(.counter, .secondary-button, .ghost-button) {
  border-color: var(--orgavio-line);
  background: rgba(255,255,255,.06);
  color: var(--orgavio-text);
}
body.public-booking .danger-button {
  border-color: rgba(255,100,119,.28);
  background: rgba(255,100,119,.1);
  color: #ff9aaa;
}
body.public-booking .pill { background: rgba(255,255,255,.06); }
body.public-booking .seat-legend .available,
body.public-booking .seat,
body.public-booking .qr-box {
  border-color: #c9d6ea;
  background: #fff;
  color: #14213d;
}
body.public-booking .seat.selected { background: var(--orgavio-blue); color: #fff; }
body.public-booking .seat:disabled,
body.public-booking .seat-legend .occupied { background: #cbd2de; color: #677184; }
body.public-booking .status-banner { background: rgba(34,137,255,.14); color: #bdddff; }
body.public-booking .status-banner.success { background: rgba(66,215,170,.12); color: #8cf1d1; }
body.public-booking .status-banner.warning { background: rgba(255,189,74,.12); color: #ffd683; }
body.public-booking .status-banner.danger { background: rgba(255,100,119,.12); color: #ff9cab; }
body.public-booking .state-icon { background: rgba(255,100,119,.12); color: #ff93a5; }
body.public-booking .spinner { border-color: rgba(255,255,255,.13); border-top-color: var(--orgavio-cyan); }
body.public-booking footer { border-top: 1px solid rgba(157,188,235,.1); }

/* -------------------------------------------------------------------------- */
/* Existing holiday registration — visual shell only                         */
/* -------------------------------------------------------------------------- */
body.public-holiday {
  --paper: var(--orgavio-panel);
  --ink: var(--orgavio-text);
  --muted: var(--orgavio-muted);
  --line: var(--orgavio-line);
  --violet: var(--orgavio-violet);
  --violet-deep: #c7b8ff;
  --cyan: var(--orgavio-cyan);
  --mint: var(--orgavio-green);
  --rose: #ff83ad;
}

body.public-holiday .topbar {
  position: sticky;
  top: max(8px, env(safe-area-inset-top));
  border: 1px solid var(--orgavio-line);
  border-radius: 18px;
  padding: 10px 12px;
}
body.public-holiday :is(.home-link, .topbar button) {
  border-color: var(--orgavio-line);
  background: rgba(255,255,255,.06);
  color: var(--orgavio-text);
}
body.public-holiday .hero {
  border-color: rgba(185, 204, 255, .18);
  background:
    radial-gradient(circle at 82% 20%, rgba(62,220,248,.2), transparent 18rem),
    linear-gradient(135deg, rgba(83,55,190,.94), rgba(91,68,197,.9) 45%, rgba(18,130,153,.85));
  box-shadow: var(--orgavio-shadow);
}
body.public-holiday :is(.state-card, .program-card, .offer-card, .privacy-card) {
  border-color: var(--orgavio-line);
  background: linear-gradient(155deg, rgba(12,37,82,.9), rgba(5,20,47,.94));
  color: var(--orgavio-text);
  box-shadow: 0 20px 58px rgba(0,0,0,.24);
}
body.public-holiday .offer-card { background: rgba(255,255,255,.045); }
body.public-holiday .program-contact,
body.public-holiday .section-heading .eyebrow,
body.public-holiday .offer-date { color: #b8a7ff; }
body.public-holiday .program-date {
  background: rgba(139,99,255,.13);
  color: #c8bcff;
}
body.public-holiday .place-pill {
  background: rgba(66,215,170,.12);
  color: #8df0d1;
}
body.public-holiday .offer-facts span,
body.public-holiday .consent {
  background: rgba(255,255,255,.055);
  color: var(--orgavio-muted-strong);
}
body.public-holiday .capacity-bar { background: rgba(255,255,255,.1); }
body.public-holiday .register-button:disabled { background: rgba(255,255,255,.09); color: #7d8ba8; }
body.public-holiday .privacy-card { border-color: rgba(66,215,170,.25); }
body.public-holiday .privacy-icon { background: rgba(66,215,170,.12); color: #8df0d1; }
body.public-holiday dialog {
  border: 1px solid var(--orgavio-line);
  background: #071a3b;
  color: var(--orgavio-text);
  box-shadow: 0 35px 110px rgba(0,0,0,.56);
}
body.public-holiday dialog::backdrop { background: rgba(1, 6, 18, .78); }
body.public-holiday .icon-button,
body.public-holiday .secondary {
  border-color: var(--orgavio-line);
  background: rgba(255,255,255,.06);
  color: var(--orgavio-text);
}
body.public-holiday .form-grid label { color: var(--orgavio-muted-strong); }
body.public-holiday .form-grid :is(input, textarea) {
  border-color: var(--orgavio-line-strong);
  background: rgba(2,12,31,.72);
  color: var(--orgavio-text);
}
body.public-holiday .form-grid :is(input, textarea):focus {
  border-color: var(--orgavio-cyan);
  box-shadow: 0 0 0 3px rgba(62,220,248,.12);
}
body.public-holiday .success-state > span { background: rgba(66,215,170,.12); color: #8df0d1; }

/* -------------------------------------------------------------------------- */
/* Already-dark public engines — normalize shell without changing internals    */
/* -------------------------------------------------------------------------- */
body.public-live-network,
body.public-tournament-live,
body.public-guest-wallet {
  --bg: var(--orgavio-bg);
  --text: var(--orgavio-text);
  --muted: var(--orgavio-muted);
  --line: var(--orgavio-line);
  --blue: var(--orgavio-blue);
  --cyan: var(--orgavio-cyan);
  --violet: var(--orgavio-violet);
  --green: var(--orgavio-green);
}

body.public-live-network :is(.topbar, .live-header, .guest-header),
body.public-tournament-live :is(.topbar, .live-header, .guest-header),
body.public-guest-wallet :is(.topbar, .live-header, .guest-header) {
  border: 1px solid var(--orgavio-line);
  border-radius: 18px;
  background: rgba(3,13,32,.72);
  box-shadow: 0 14px 44px rgba(0,0,0,.2);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  padding-left: .8rem;
  padding-right: .8rem;
}

body.public-live-network :is(.state-card, .event-card, .match-card, .stream-card, .privacy-note),
body.public-tournament-live :is(.state-card, .hero-card, .match-card, .section-card, .privacy-note),
body.public-guest-wallet :is(.state-card, .wallet-card, .pass-note, .empty-card, .order-card, .product-card) {
  border-color: var(--orgavio-line);
  box-shadow: 0 22px 62px rgba(0,0,0,.25);
}

@media (max-width: 640px) {
  body.public-booking .page-shell { width: min(100% - 18px, 980px); }
  body.public-holiday .topbar { top: max(4px, env(safe-area-inset-top)); }
}

@media (prefers-reduced-motion: reduce) {
  body.orgavio-public-surface *,
  body.orgavio-public-surface *::before,
  body.orgavio-public-surface *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}
