/* Shared screen design. Printed tickets and exported artwork retain their templates. */
@font-face { font-family: "Kanit"; src: url("../assets/fonts/Kanit-Regular.ttf") format("truetype"); font-style: normal; font-weight: 400 500; font-display: swap; }
@font-face { font-family: "Kanit"; src: url("../assets/fonts/Kanit-Semibold.ttf") format("truetype"); font-style: normal; font-weight: 600 900; font-display: swap; }

@media screen {
  :root {
    --studio-ink: #1b2c46;
    --studio-muted: #54657b;
    --studio-page: #e9eef5;
    --studio-paper: #f8fafd;
    --studio-line: #cbd5e2;
    --studio-blue: #3155ad;
    --studio-deep: #132541;
    --studio-sky: #dce6f6;
    --studio-focus: #3155ad;
    --bg: var(--studio-page);
    --panel: var(--studio-paper);
    --panel-2: #e0e8f3;
    --text: var(--studio-ink);
    --ink: var(--studio-ink);
    --muted: var(--studio-muted);
    --line: var(--studio-line);
    --line-2: #a9b9cf;
    --accent: var(--studio-blue);
    --cyan: var(--studio-blue);
    --lime: var(--studio-blue);
    --violet: #6555a2;
    --warning: #855411;
    --danger: #a52f43;
    --pay-bg: var(--studio-page);
    --pay-surface: var(--studio-paper);
    --pay-surface2: #e0e8f3;
    --pay-line: var(--studio-line);
    --pay-text: var(--studio-ink);
    --pay-muted: var(--studio-muted);
    --pay-accent: var(--studio-blue);
    --admin-v317-bg: var(--studio-page);
    --admin-v317-surface: var(--studio-paper);
    --admin-v317-line: var(--studio-line);
    --admin-v317-accent: var(--studio-blue);
    color-scheme: light;
  }
  html { background: var(--studio-page); scrollbar-color: #96a7c1 var(--studio-page); }
  body {
    background: var(--studio-page) !important;
    color: var(--studio-ink) !important;
    font-family: "Kanit", "Noto Sans Thai", system-ui, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }
  ::selection { color: #fff; background: #3656a8; }
  :is(input, textarea) { caret-color: var(--studio-blue); }
  body :is(button, input, select, textarea) { font-family: inherit; }
  body :is(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid var(--studio-focus) !important;
    outline-offset: 3px;
  }
  body :is(a, button) { -webkit-tap-highlight-color: transparent; }
  /* Safari focuses fragment destinations after anchor navigation. These are
     reading regions, not controls: avoid framing the entire content region. */
  body.sos-public-home :is(main, section, .festival-showcase-block)[tabindex="-1"]:focus {
    outline: none !important;
    box-shadow: none !important;
  }
  body :is(a, button):not(:disabled) { transition: color 160ms ease-out, background-color 160ms ease-out, border-color 160ms ease-out; }
  body a { text-underline-offset: 4px; }
  body :is(h1, h2, h3) { color: inherit; text-wrap: balance; letter-spacing: -.025em; }
  body h1, body h2 { font-family: "Kanit", "Noto Sans Thai", sans-serif; font-weight: 600; }
  body :is(p, li) { line-height: 1.65; }
  body :is(.eyebrow, .section-label, .account-kicker, .pay-kicker, .scan-kicker, .dashboard-eyebrow) { display: none; }
  body :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]) {
    background: #fff !important;
    color: var(--studio-ink) !important;
    border: 1px solid #aab9cd;
    border-radius: 8px;
    box-shadow: none;
    font-size: 15px;
    padding: 10px 12px;
  }
  body input::placeholder, body textarea::placeholder { color: #64748b; opacity: 1; }
  body select option { background: #fff; color: var(--studio-ink); }
  body :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--studio-blue); }
  body :is(.button, .primary-button, .secondary-button, .pay-button, .primary, .secondary, .ta-button, .scan-button) {
    min-height: 44px;
    border-radius: 8px !important;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    text-shadow: none !important;
    box-shadow: none !important;
  }
  body :is(.primary-button, .primary, .button.primary, .pay-button:not(.secondary):not(.danger), .shop-buy, .order-submit) {
    background: var(--studio-blue) !important;
    border-color: var(--studio-blue) !important;
    color: #fff !important;
  }
  body :is(.secondary-button, .secondary, .button.secondary, .ta-button, .scan-button.secondary) {
    background: #fff !important;
    border-color: #b9c6d8 !important;
    color: var(--studio-ink) !important;
  }
  body :is(.primary-button, .primary, .pay-button, .secondary-button, .secondary):hover:not(:disabled) { filter: brightness(.97); transform: none !important; }
  body :is(button, input[type="submit"]):disabled { opacity: .55; cursor: not-allowed; }
  body :is(.text-button, .account-link-button) { color: var(--studio-blue); font-size: 14px; letter-spacing: 0; }
  body :is(.account-card, .pay-card, .ta-card, .ta-panel, .surface, .data-card, .merch-card) {
    background: var(--studio-paper) !important;
    border-color: var(--studio-line) !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    color: var(--studio-ink);
  }
  body :is(.account-topbar, .shop-header, .pay-top, .scan-topbar, .ta-topbar, .topbar) {
    position: sticky;
    top: 0;
    min-height: 76px;
    background: var(--studio-deep) !important;
    color: #f6f8ff;
    border-bottom: 1px solid #344764;
    backdrop-filter: none;
    box-shadow: none;
  }
  body :is(.account-brand, .shop-brand, .pay-brand, .scan-brand, .ta-brand, .brand) { color: #fff; text-decoration: none; }
  body :is(.account-brand, .shop-brand, .pay-brand, .scan-brand, .ta-brand) strong { font-size: 14px; letter-spacing: .04em; }
  body :is(.account-brand, .shop-brand, .pay-brand, .scan-brand, .ta-brand) small { font-size: 11px; color: #c4d1e5; letter-spacing: .04em; }
  body :is(.account-home, .back-link, .back) { color: #f1f5ff; border-color: #6c7e99; font-size: 14px; }
  body :is(.global-language-switch, .store-language-switch) { background: #f8fafd; border: 1px solid #b9c6d8; color: var(--studio-ink); border-radius: 8px; box-shadow: none; }
  body .global-language-switch label { font-size: 12px; color: var(--studio-muted); }
  body .global-language-switch select { font-size: 14px; min-height: 36px; }
  body .global-language-switch { z-index: 80; }
  body :is(th, td) { border-bottom-color: var(--studio-line); font-size: 14px; line-height: 1.55; }
  body th { background: #e1e8f2; color: #43556e; font-size: 13px; font-weight: 600; text-transform: none; letter-spacing: 0; }
  body td { color: var(--studio-ink); }
  body tbody tr:hover { background: #eaf0f9; }
  body :is(.table-wrap, .ta-table-wrap, .pay-table-wrap, .count-table-wrap) { border-color: var(--studio-line); border-radius: 10px; }
  body :is(.account-empty, .shop-empty, .empty, .pay-empty, .ta-empty) { color: var(--studio-muted); background: #e4ebf5; border: 0; border-radius: 10px; padding: 28px; font-size: 15px; }
  body :is(.account-status, .pay-status, .ta-status, .notice) { color: #33578c; }
  body :is(.notice.error, .account-status.error, .pay-status.error) { color: #a52f43; }
  body :is(.account-muted, .account-note, .pay-muted, .hint, .fine-print) { color: var(--studio-muted); font-size: 14px; letter-spacing: 0; }
  body :is(.sos-store-surface, .sos-organizer-surface) { background: var(--studio-page); }
  body dialog:not(.event-detail-dialog):not(.pc-poster-editor) { background: var(--studio-paper); color: var(--studio-ink); border-color: var(--studio-line); border-radius: 14px; }
  body dialog::backdrop { background: rgb(13 28 49 / 72%); backdrop-filter: none; }
  body dialog :is(label, .hint) { color: var(--studio-muted); }

  /* Public pages: artwork, with a clear frame and a calm reading surface. */
  body.sos-public-home { --studio-focus: #3155ad; background: #dfe6f1 !important; }
  .sos-public-home :is(#site-header, #home) { --studio-focus: #c7d7ff; }
  .sos-public-home #site-header { position: sticky; top: 0; background: #162b4a !important; border-color: #3e5271; }
  .sos-public-home #site-header .reference-header-inner { display: flex; flex-wrap: nowrap; justify-content: space-between; gap: 20px; width: 100%; max-width: 1380px; min-height: 80px; padding: 10px 32px; box-sizing: border-box; }
  .sos-public-home #site-header .header-actions { flex: 0 0 auto; width: auto; margin: 0; grid-column: auto; }
  .sos-public-home #site-header :is(a, strong, small) { color: #f3f6ff; }
  .sos-public-home #site-header .reference-brand img { width: 52px; height: 52px; object-fit: contain; }
  .sos-public-home #site-header .reference-brand strong { font-size: 14px; letter-spacing: .04em; }
  .sos-public-home #site-header .reference-brand small { font-size: 11px; letter-spacing: .04em; color: #c2cfe2; }
  .sos-public-home #site-header .reference-desktop-nav a { font-size: 14px; font-weight: 500; letter-spacing: 0; text-transform: none; }
  .sos-public-home #site-header .reference-desktop-nav a.active { border-color: #cfdc9d; }
  .sos-public-home #language-button { min-width: 122px; min-height: 44px; border-radius: 8px; background: #243b5d; border-color: #6d809f; padding: 4px 8px; }
  .sos-public-home #language-button label { color: #dce5f4; font-size: 12px; }
  .sos-public-home #language-button select { background: #243b5d !important; color: #fff !important; border: 0; padding: 6px; min-height: 36px; }
  .sos-public-home #menu-button { border: 1px solid #6d809f; width: 46px; height: 46px; border-radius: 8px; background: transparent; }
  .sos-public-home #home.coded-psy-hero { position: relative; height: auto; min-height: 0; padding: 0; isolation: isolate; background: #1d3558 !important; overflow: hidden; }
  .sos-public-home #home .studio-atmosphere { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 58%; z-index: -2; opacity: .52; }
  .sos-public-home #home::after { content: ""; display: block; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #192f51 5%, rgb(25 47 81 / 90%) 34%, rgb(25 47 81 / 8%) 100%); }
  .sos-public-home #home .coded-hero-content { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; grid-template-rows: auto auto; align-items: center; gap: 16px 36px; min-height: 300px; max-width: 1380px; margin: auto; padding: 20px 32px !important; }
  .sos-public-home #home .hero-intro { grid-area: 1 / 1; text-align: left; width: 100%; max-width: 760px; align-self: end; margin: 0; opacity: 1 !important; transform: none !important; }
  .sos-public-home #home .hero-intro h2 { font-family: "Kanit", "Noto Sans Thai", sans-serif; font-size: clamp(38px, 3.6vw, 58px); line-height: 1.1; letter-spacing: -.025em; font-weight: 600; margin: 0 0 12px; color: #f7f9ff; max-width: 18ch; }
  .sos-public-home #home .hero-intro > p { font-size: 16px; line-height: 1.6; color: #d6e3f5; max-width: 52ch; margin: 0; }
  .sos-public-home #home .coded-brand-composition { grid-area: 1 / 2 / 3 / 3; width: min(300px, 100%); justify-self: center; align-self: center; margin: 0; transform: none !important; opacity: 1 !important; }
  .sos-public-home #home .coded-logo-art { width: 100%; margin: 0; }
  .sos-public-home #home .coded-logo-art img { display: block; width: 100%; height: auto; max-height: 260px; object-fit: contain; filter: none !important; mix-blend-mode: normal; }
  .sos-public-home #home .coded-event-focus-group { grid-area: 2 / 1; justify-self: start; align-self: start; width: auto; margin: 0; padding: 0; transform: none !important; opacity: 1 !important; }
  .sos-public-home #home .coded-event-focus-primary { min-width: 0; min-height: 52px; padding: 13px 22px; border: 0; border-radius: 8px; background: #d7e69c !important; color: #1c2c39 !important; box-shadow: none; }
  .sos-public-home #home .coded-event-focus-primary strong { font-size: 16px; font-weight: 600; color: inherit !important; letter-spacing: 0; }
  .sos-public-home #home :is(.psy-background, .hero-depth-field, .coded-brand-line, .hero-scroll-progress, .coded-hero-footer) { display: none !important; }
  .sos-public-home .experience-quick-nav { display: none; }
  .sos-public-home .experience-quick-nav-inner { max-width: 1316px; background: #dfe6f1; border: 0; border-radius: 0; gap: 32px; backdrop-filter: none; filter: none; }
  .sos-public-home .experience-quick-nav a { color: #314967; padding: 14px 0; min-height: 54px; background: transparent; border: 0; }
  .sos-public-home .experience-quick-nav a:first-child { border-bottom: 2px solid #3155ad; }
  .sos-public-home .experience-quick-nav a strong { font-size: 14px; text-transform: none; letter-spacing: 0; }
  .sos-public-home .section { background: #dfe6f1 !important; color: var(--studio-ink); padding-block: 32px; content-visibility: visible; contain-intrinsic-size: none; }
  .sos-public-home :is(.reveal, .fx-reveal) { opacity: 1 !important; transform: none !important; transition: none !important; }
  .sos-public-home .container { max-width: 1380px; }
  .sos-public-home .section-heading { display: block; margin-bottom: 20px; }
  .sos-public-home .section-heading h2 { font-size: clamp(28px, 2.4vw, 36px); line-height: 1.25 !important; margin: 0 0 8px; }
  .sos-public-home .section-heading p { color: #52647c; font-size: 15px; margin: 0; opacity: 1; }
  .sos-public-home #collaborations .section-heading > p:not(.section-label) { color: #435773; font-size: 15px; opacity: 1; }
  .sos-public-home #upcoming-events > .section-heading { max-width: 1180px; margin-inline: auto; }
  .sos-public-home #event-grid, .sos-public-home #current-event-grid { display: grid; width: 100%; max-width: 1180px; margin-inline: auto; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: auto; gap: 28px; perspective: none; }
  .sos-public-home .event-card { border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; min-height: 0; height: auto; align-self: start; transform: none !important; transform-style: flat; }
  .sos-public-home .scroll-spatial-item,
  .sos-public-home .scroll-spatial-item:hover,
  .sos-public-home .scroll-spatial-item :is(.event-image img, .ticket-market-cover img) { translate: none; scale: 1; will-change: auto; }
  /* Equal preview frames, with complete artwork and its original proportions. */
  .sos-public-home .event-card-image { aspect-ratio: 4 / 5; height: auto !important; min-height: 0 !important; border-radius: 12px; overflow: hidden; background: transparent; }
  .sos-public-home .event-card-image .event-poster-track { position: absolute; inset: 0; height: 100%; min-height: 0; width: 100%; align-items: stretch; }
  .sos-public-home .event-card-image .event-poster-frame { display: flex; align-items: center; justify-content: center; flex: 0 0 100%; min-width: 100%; height: 100%; scroll-snap-align: start; scroll-snap-stop: always; }
  .sos-public-home .event-card-image .event-poster-frame > img { display: block; width: auto; height: auto; min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; border-radius: 12px; object-fit: contain !important; object-position: center !important; }
  .sos-public-home .event-content { flex: 0 0 auto; padding: 14px 0 0; gap: 8px; color: var(--studio-ink); transform: none; }
  .sos-public-home .event-card h3 { font-size: clamp(22px, 1.8vw, 26px); line-height: 1.35; margin: 0; letter-spacing: -.02em; }
  .sos-public-home .event-status { color: #3155ad; font-size: 12px; font-weight: 600; text-transform: none; border: 0; padding: 0; letter-spacing: 0; }
  .sos-public-home .event-meta-line, .sos-public-home .event-countdown { font-size: 14px; color: #51627a; line-height: 1.65; }
  .sos-public-home .event-card :is(.event-meta-line, .event-countdown) { margin: 0; }
  .sos-public-home .event-card dl { margin: 4px 0; }
  .sos-public-home .event-action-list { margin-top: 0 !important; padding-top: 4px; gap: 8px; }
  .sos-public-home .event-countdown i { background: #507657; box-shadow: none; }
  .sos-public-home .event-card :is(dl, .event-role-note) { font-size: 14px; border-color: #b9c7d8; }
  .sos-public-home .event-card :is(dt, dd) { color: #51627a; }
  .sos-public-home .event-card .event-map-trigger { background: transparent; color: #3155ad; border: 0; border-radius: 0; padding: 4px 0; }
  .sos-public-home .event-map-trigger small { color: #3155ad; font-size: 12px; letter-spacing: 0; }
  .sos-public-home .event-detail-open { color: #3155ad; font-size: 14px; font-weight: 600; padding: 0; }
  .sos-public-home .event-calendar-trigger { border-radius: 8px; background: #cdd9eb; color: #234376; border: 0; font-size: 14px; }
  .sos-public-home .event-link { color: #3155ad; font-size: 14px; letter-spacing: 0; }
.sos-public-home .event-link.event-ticket-link { display: flex; align-items: center; justify-content: space-between; min-height: 48px; margin-top: 8px; padding: 0 16px; border: 1px solid #e4fc69; border-radius: 7px; background: #e4fc69; color: #142342; font-size: 14px; font-weight: 700; text-decoration: none; }
.sos-public-home .event-link.event-ticket-link:hover { background: #d8f34f; border-color: #d8f34f; }
.sos-public-home .event-link.event-ticket-link:focus-visible { outline: 3px solid #3155ad; outline-offset: 3px; }
  .sos-public-home .event-empty-state { background: #d3ddec; border: 0; color: #415773; padding: 24px; border-radius: 12px; }
  html:not([data-public-events="ready"]) .sos-public-home #event-empty-state { display: none; }
  .sos-public-home .studio-events-status { color: #435b7a; font-size: 15px; }
  .sos-public-home .studio-events-retry { margin-top: 12px; }
  .sos-public-home .festival-showcase-divider { background: #b8c6d9; margin-block: 42px; }
  .sos-public-home #contact { background: #cdd9e9 !important; }
  .sos-public-home .contact-grid { gap: 16px; }
  .sos-public-home .contact-grid article { background: #e8eef7; border: 0; border-radius: 12px; padding: 20px; }
  .sos-public-home .contact-grid :is(a, strong) { color: #244575; }
  .sos-public-home .contact-grid :is(p, small) { color: #52647c; }
  .sos-public-home .contact-card { background: #e8eef7; color: #244575; border: 0; border-radius: 12px; padding: 22px; box-shadow: none; }
  .sos-public-home .contact-card :is(span, p, small) { color: #435a78; font-size: 13px; letter-spacing: 0; }
  .sos-public-home .contact-card strong { color: #244575; font-size: 18px; }
  .sos-public-home .contact-card:hover :is(span, strong) { color: #213f70; }
  .sos-public-home .event-empty-state p { color: #435773; }
  .sos-public-home #contact .section-heading h2 { letter-spacing: -.025em; }
  .sos-public-home #public-contact-grid [data-contact-link] span { color: #435a78; font-size: 12px; letter-spacing: 0; opacity: 1; }
  .sos-public-home #public-contact-grid [data-contact-link] strong { color: #244575; font-size: 18px; }
  .sos-public-home footer { background: #162b4a; color: #d1def0; border: 0; font-size: 13px; }
  .sos-public-home footer a { color: #edf3ff; font-size: 13px; }
  .sos-public-home #site-menu { background: #162b4a; color: #f6f8ff; }
  .sos-public-home #site-menu :is(a, button, strong) { color: #f6f8ff; }
  .sos-public-home #site-menu :is(p, small, a > span:first-child, button > span:first-child) { display: none; }
  .sos-public-home #site-menu .menu-inner { padding-block: 100px 30px; }
  /* Ordinals are hidden above: remove their old 48px/38px grid track too. */
  .sos-public-home #site-menu .menu-inner > a { grid-template-columns: minmax(0, 1fr); }
  .sos-public-home #site-menu .menu-inner > .menu-system-action { grid-template-columns: minmax(0, 1fr) auto; gap: 16px; }
  .sos-public-home #site-menu .menu-system-action-copy { min-width: 0; }
  .sos-public-home #site-menu .menu-inner > a > strong,
  .sos-public-home #site-menu .menu-system-action-copy strong { display: block; min-width: 0; line-height: 1.35; word-break: normal; overflow-wrap: normal; }
  .sos-public-home #site-menu strong { font-size: clamp(24px, 3.6vw, 44px); }
  .sos-public-home #site-menu::before, .sos-public-home #site-menu::after { display: none; }
  .sos-public-home .event-detail-dialog { color: #1b2c46; background: #edf2f9; }
  .sos-public-home .event-detail-toolbar { background: #162b4a; color: #f5f8ff; border-color: #3a4f6d; }
  .sos-public-home .event-detail-layout { color: #1b2c46; }
  .sos-public-home .event-detail-copy .event-content { color: #1b2c46; }
  .sos-public-home .event-detail-copy .event-content :is(p, dd, dt, .event-meta-line) { color: #51627a; }
  .sos-public-home .event-detail-copy .event-action-list a.event-link { color: #fff; background: #3155ad; border-color: #3155ad; }
  .sos-public-home .event-detail-controls button[aria-pressed="true"] { color: #fff; background: #3155ad; border-color: #3155ad; }
  .sos-public-home .past-event-card { background: transparent; border-color: #b8c6d9; color: #1b2c46; }
  .sos-public-home #past-events .past-event-card h3 { color: #294464; font-size: 20px; }
  .sos-public-home #past-events :is(.past-event-badge, .past-date, .past-location) { color: #435773; font-size: 13px; letter-spacing: 0; background: transparent; }
  .sos-public-home :is(.feedback-panel, .collaboration-panel, .calendar-choice-panel, .map-choice-panel, .qr-tools-panel, .setup-check-panel, .content-tools-panel) { background: #f8fafd; color: #1b2c46; border-color: #cbd5e2; box-shadow: 0 20px 70px rgb(12 28 49 / 20%); }
  .sos-public-home :is(.feedback-panel, .collaboration-panel, .calendar-choice-panel, .map-choice-panel) :is(p, label, small) { color: #54657b; letter-spacing: 0; }
  .sos-public-home :is(.feedback-panel, .collaboration-panel) :is(h2, h3, strong) { color: #1b2c46; }
  .sos-public-home :is(.feedback-panel, .collaboration-panel) .primary-button { color: #fff !important; }
  /* Map choices retained dark-theme text after the panel became light. */
  .sos-public-home .map-choice-panel > header > div > span { display: none; }
  .sos-public-home .map-choice-panel #map-choice-location { color: #54657b; }
  .sos-public-home .map-choice-panel .map-choice-link { background: #fff; border-color: #aab9cd; color: #1b2c46; }
  .sos-public-home .map-choice-panel .map-choice-link > strong { color: #1b2c46; font-size: 16px; }
  .sos-public-home .map-choice-panel .map-choice-link > span:last-child { color: #3155ad; }
  .sos-public-home .map-choice-panel .map-choice-logo { background: #e5ecf7; color: #234376; font-size: 11px; }
  .sos-public-home .map-choice-panel .map-choice-link:is(:hover, :focus-visible) { background: #edf2fb; border-color: #3155ad; }
  .sos-public-home .map-choice-panel .map-choice-close { background: #fff; color: #1b2c46; border-color: #aab9cd; }

  /* Customer account and merchandise use the same programme family. */
  .sos-account-surface .account-shell { max-width: 1120px; padding-block: 42px 72px; }
  .sos-account-surface .account-hero h1 { font-size: clamp(34px, 4vw, 54px); line-height: 1.2; margin: 0 0 12px; }
  .sos-account-surface .account-hero > p:last-child { color: var(--studio-muted); font-size: 16px; }
  .sos-account-surface .account-auth-portal { max-width: 700px; margin: auto; }
  .sos-account-surface .account-auth-tabs { background: transparent; border-bottom: 1px solid #b6c5da; gap: 24px; }
  .sos-account-surface .account-auth-tab { color: #54657b; font-size: 16px; }
  .sos-account-surface .account-auth-tab[aria-selected="true"] { color: #3155ad; border-bottom-color: #3155ad; }
  .sos-account-surface .account-auth-primary { padding: clamp(22px, 4vw, 40px); }
  .sos-account-surface .account-provider { background: #fff; border: 1px solid #b9c6d8; color: #1b2c46; font-size: 15px; }
  .sos-account-surface .account-provider:hover { background: #e8eef9; }
  .sos-account-surface .account-auth-divider span { background: #f8fafd; color: #54657b; font-size: 13px; }
  .sos-account-surface .account-form label { color: #43556d; font-size: 14px; }
  .sos-account-surface .account-form button[type="submit"], .sos-account-surface #account-open-operations { background: #3155ad !important; color: #fff !important; border-color: #3155ad; }
  .sos-account-surface .account-toolbar { padding-block: 18px 26px; border-bottom: 1px solid #bdcada; }
  .sos-account-surface #account-user-email { font-size: clamp(19px, 2.6vw, 28px); overflow-wrap: anywhere; }
  .sos-account-surface .account-wallet-card { margin-top: 24px; padding: 28px; }
  .sos-account-surface .account-wallet-count { background: #dce6f6; color: #3155ad; border: 0; font-size: 22px; }
  .sos-account-surface .account-details { margin-top: 16px; padding: 0; }
  .sos-account-surface .account-details summary { padding: 22px 26px; }
  .sos-account-surface .account-details summary small { color: #54657b; font-size: 14px; }
  .sos-account-surface .account-details summary b { color: #3155ad; font-size: 14px; }
  .sos-account-surface .account-details summary:hover { background: #e4ecf8; }
  .sos-account-surface .account-details-body { padding: 0 26px 26px; }
  .sos-merch-surface .shop-header nav a { color: #d7e3f7; font-size: 14px; border-radius: 6px; }
  .sos-merch-surface .shop-header nav a.active { color: #fff; background: #365183; }
  .sos-merch-surface main { max-width: 1380px; }
  .sos-merch-surface .shop-hero { padding: 48px 0 32px !important; }
  .sos-merch-surface .shop-hero > p { display: none; }
  .sos-merch-surface .shop-hero h1 { font-size: clamp(36px, 4.5vw, 66px); line-height: 1.12; letter-spacing: -.025em; margin-top: 0; }
  .sos-merch-surface .shop-hero > div span { font-size: 14px; color: #54657b; border: 0; border-radius: 0; padding: 0 16px 0 0; }
  .sos-merch-surface :is(.shop-shell, .shop-orders) { background: transparent; border: 0; border-radius: 0; padding: 24px 0; border-top: 1px solid #bdcada; }
  .sos-merch-surface .shop-categories button { color: #43556d; background: transparent; border-color: #b2c1d6; font-size: 14px; }
  .sos-merch-surface .shop-categories button.active { color: #fff; background: #3155ad; border-color: #3155ad; }
  .sos-merch-surface .shop-search span { color: #54657b; font-size: 13px; letter-spacing: 0; }
  .sos-merch-surface .shop-card { background: #f8fafd; border-color: #cbd5e2; border-radius: 12px; }
  .sos-merch-surface .shop-card-media { background: #dce6f3; }
  .sos-merch-surface .shop-card-body :is(small, p, .shop-stock) { font-size: 13px; color: #54657b; letter-spacing: 0; }
  .sos-merch-surface .shop-card-body h2 { font-size: 21px; }
  .sos-merch-surface .shop-orders header p { display: none; }
  .sos-merch-surface .shop-orders header a { color: #3155ad; font-size: 14px; }
  .sos-merch-surface .order-card :is(label, p, .order-summary) { color: #43556d; font-size: 14px; }
  .sos-merch-surface .order-heading h2 { font-size: 28px; }
  .sos-merch-surface footer { color: #54657b; font-size: 13px; }

  /* Operational tools: light data surfaces, compact navigation, stable hierarchy. */
  .sos-admin-surface #admin-dashboard { --workbench-surface: #f8fafd; --workbench-line: #cbd5e2; --workbench-accent: #3155ad; background: #e9eef5; }
  .sos-admin-surface #admin-dashboard::before { display: none; }
  .sos-admin-surface #admin-dashboard #admin-sidebar { width: 244px; background: #162b4a !important; border-right: 0; box-shadow: none; color: #e1e9f8; }
  .sos-admin-surface #admin-dashboard :is(.admin-sidebar, .dashboard-header, .sidebar-link)::before,
  .sos-admin-surface #admin-dashboard :is(.admin-sidebar, .dashboard-header, .sidebar-link)::after { display: none; }
  .sos-admin-surface #admin-sidebar .sidebar-brand { height: 100px; min-height: 100px; padding: 18px 24px; display: flex; justify-content: flex-start; border-bottom: 1px solid #304764; }
  .sos-admin-surface #admin-sidebar .sidebar-brand img { width: 76px; height: 68px; object-fit: contain; }
  .sos-admin-surface #admin-sidebar .sidebar-navigation { padding: 4px 12px 20px; }
  .sos-admin-surface #admin-sidebar .sidebar-nav-group { border: 0; margin: 0 0 16px; padding: 0; }
  .sos-admin-surface #admin-sidebar .sidebar-nav-group-header { display: block; position: static; min-height: 0; height: auto; margin: 0; padding: 12px 10px 6px; border: 0; background: transparent; box-shadow: none; line-height: 1.5; opacity: 1; }
  .sos-admin-surface #admin-sidebar .sidebar-nav-group-header > span, .sos-admin-surface #admin-sidebar .sidebar-nav-group-header small { display: none; }
  .sos-admin-surface #admin-sidebar .sidebar-nav-group-header strong { color: #aebfda; font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; }
  .sos-admin-surface #admin-sidebar .sidebar-link { display: flex; align-items: center; min-height: 44px; height: auto; margin: 2px 0; padding: 9px 10px; color: #e1e9f8; border: 0; border-radius: 7px; background: transparent; box-shadow: none; font-size: 14px; line-height: 1.5; letter-spacing: 0; text-decoration: none; gap: 8px; }
  .sos-admin-surface #admin-sidebar .sidebar-link > span:nth-child(2) { flex: 1; min-width: 0; white-space: normal; }
  .sos-admin-surface #admin-sidebar .sidebar-link > span:first-child[aria-hidden] { display: none; }
  .sos-admin-surface #admin-sidebar .sidebar-link :is(span, strong) { color: inherit; font-size: inherit; }
  .sos-admin-surface #admin-sidebar .sidebar-link > strong { background: #304a70; color: #dbe6fa; padding: 2px 7px; min-width: 23px; font-size: 11px; }
  .sos-admin-surface #admin-sidebar .sidebar-link:is(.active, .is-active, [aria-current="page"]) { color: #fff; background: #385681; box-shadow: none; }
  .sos-admin-surface #admin-sidebar .sidebar-link:hover { background: #294364; }
  .sos-admin-surface #admin-sidebar .admin-v31-nav-search { margin: 16px 18px 8px; }
  .sos-admin-surface #admin-sidebar .admin-v31-nav-search input { min-height: 44px; border: 1px solid #577092; background: #213c5f !important; color: #fff !important; font-size: 13px; }
  .sos-admin-surface #admin-sidebar .admin-v31-nav-search input::placeholder { color: #c1cee2; }
  .sos-admin-surface #admin-sidebar .sidebar-footer { background: #162b4a; border-top: 1px solid #304764; }
  .sos-admin-surface #admin-sidebar .sidebar-footer :is(span, strong, a) { color: #c5d4ea; font-size: 12px; letter-spacing: 0; }
  .sos-admin-surface #admin-sidebar .sidebar-project { padding: 12px; background: #213b5c; border: 0; border-radius: 8px; }
  .sos-admin-surface #admin-dashboard .dashboard-main { width: calc(100% - 244px); margin-left: 244px; padding: 0 32px 48px; color: #1b2c46; background: #e9eef5; }
  .sos-admin-surface #admin-dashboard .dashboard-header { position: sticky; top: 0; width: calc(100% + 64px); max-width: none; min-height: 100px; margin: 0 -32px 24px; padding: 18px 32px; background: #f8fafd !important; color: #1b2c46; border-bottom: 1px solid #cbd5e2; box-shadow: none; backdrop-filter: none; align-items: center; gap: 16px; }
  .sos-admin-surface #admin-dashboard .dashboard-title h1 { font-size: clamp(25px, 2.6vw, 34px); line-height: 1.2; color: #1b2c46; margin: 0; }
  .sos-admin-surface #dashboard-eyebrow { display: none; }
  .sos-admin-surface #admin-dashboard .admin-header-tools { gap: 8px; }
  .sos-admin-surface #admin-dashboard .admin-account { gap: 8px; }
  .sos-admin-surface #admin-dashboard .admin-account button { min-height: 40px; padding: 8px 12px; font-size: 13px; }
  .sos-admin-surface #admin-dashboard .admin-user-chip { background: transparent; border: 0; padding: 4px 8px; color: #1b2c46; }
  .sos-admin-surface #admin-dashboard .admin-user-chip strong { color: #1b2c46; font-size: 13px; }
  .sos-admin-surface #admin-dashboard .admin-user-chip span { color: #54657b; font-size: 12px; }
  .sos-admin-surface #admin-dashboard .admin-language-switch { border-radius: 8px; border: 1px solid #bcc9db; background: #e7edf7; padding: 3px; }
  .sos-admin-surface #admin-dashboard .admin-language-switch button { min-height: 36px; min-width: 40px; border-radius: 5px; color: #54657b; background: transparent; font-size: 13px; }
  .sos-admin-surface #admin-dashboard .admin-language-switch button[aria-pressed="true"] { background: #3155ad; color: #fff; }
  .sos-admin-surface #admin-dashboard :is(.mobile-sidebar-button, .admin-notification-button, .admin-v31-quick-nav-button) { background: #edf2fa; border: 1px solid #bac8db; color: #3155ad; border-radius: 8px; box-shadow: none; min-height: 40px; }
  .sos-admin-surface #admin-access-scope { background: transparent; border: 0; padding: 0; margin: 0 0 20px; color: #54657b; font-size: 13px; letter-spacing: 0; }
  .sos-admin-surface #admin-dashboard :is(.summary-grid, .system-summary-grid) { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; border: 0; margin-bottom: 24px; }
  .sos-admin-surface #admin-dashboard :is(.summary-grid, .system-summary-grid) article { background: #f8fafd !important; border: 0; border-radius: 10px !important; padding: 20px; box-shadow: none !important; }
  .sos-admin-surface #admin-dashboard :is(.summary-grid, .system-summary-grid) article > span { color: #54657b; font-size: 13px; letter-spacing: 0; font-weight: 500; }
  .sos-admin-surface #admin-dashboard :is(.summary-grid, .system-summary-grid) article > strong { color: #234a8b; font-family: "Kanit", sans-serif; font-size: 38px; line-height: 1.2; font-weight: 500; }
  .sos-admin-surface #admin-dashboard :is(.summary-grid, .system-summary-grid) article p { color: #54657b; font-size: 13px; }
  .sos-admin-surface #admin-dashboard :is(.panel, .form-card, .records-panel, .system-check-card, .content-panel, .security-card, .brand-panel, .artist-editor) { background: #f8fafd; border: 1px solid #cbd5e2; border-radius: 12px; color: #1b2c46; box-shadow: none; }
  .sos-admin-surface #admin-dashboard .records-toolbar { padding: 20px; background: #f8fafd; border-color: #cbd5e2; }
  .sos-admin-surface #admin-dashboard .records-toolbar label { color: #54657b; font-size: 13px; }
  .sos-admin-surface #admin-dashboard .records-meta { background: #edf2fa; color: #54657b; font-size: 13px; padding: 12px 20px; border-color: #cbd5e2; }
  .sos-admin-surface #admin-records-empty { min-height: 240px; padding: 36px; color: #54657b; }
  .sos-admin-surface #admin-records-empty h2 { font-size: 25px; color: #294464; }
  .sos-admin-surface #admin-records-empty > span { display: none; }
  .sos-admin-surface #admin-dashboard .dashboard-main :is(p, label, small, dt) { color: #54657b; letter-spacing: 0; text-transform: none; }
  .sos-admin-surface #admin-dashboard .dashboard-main :is(h2, h3, dd) { color: #1b2c46; }
  .sos-admin-surface #admin-dashboard .dashboard-main h2 { font-size: clamp(23px, 2.6vw, 32px); line-height: 1.3; }
  .sos-admin-surface #admin-dashboard .dashboard-main h3 { font-size: 19px; line-height: 1.4; }
  .sos-admin-surface #admin-dashboard .dashboard-main :is(label, small) { font-size: 13px; }
  .sos-admin-surface #admin-dashboard .dashboard-main label > span { color: #43556d; font-size: 13px; letter-spacing: 0; }
  .sos-admin-surface #admin-dashboard .dashboard-main .pc-grid label > span { font-size: 13px; line-height: 1.45; }
  .sos-admin-surface #admin-dashboard .dashboard-main button :is(span, strong, b) { color: inherit; }
  .sos-admin-surface #admin-dashboard .dashboard-main :is([class$="-hero"], [class$="-toolbar"]) { background: transparent; box-shadow: none; border-color: #cbd5e2; }
  .sos-admin-surface #admin-dashboard .dashboard-main :is([class$="-hero"], [class$="-head"]) > div > span:first-child { color: #54657b; letter-spacing: 0; font-size: 13px; }
  .sos-admin-surface #admin-dashboard .admin-v31-hub { padding: 0 0 24px; margin-bottom: 24px; border: 0; border-bottom: 1px solid #c1cddd; border-radius: 0; background: transparent; box-shadow: none; }
  .sos-admin-surface #admin-dashboard .admin-v31-hub-head > div > span { display: none; }
  .sos-admin-surface #admin-dashboard .admin-v31-market-link { display: none; }
  .sos-admin-surface #admin-dashboard .admin-v31-hub-head h2 { font-size: 22px; }
  .sos-admin-surface #admin-dashboard .admin-v31-hub-grid { display: flex; flex-wrap: wrap; gap: 10px; }
  .sos-admin-surface #admin-dashboard .admin-v31-hub-grid :is(a, button) { min-height: 44px; border-radius: 7px; padding: 10px 14px; border: 1px solid #b6c5d9; background: #f8fafd; color: #3155ad; box-shadow: none; }
  .sos-admin-surface #admin-dashboard .admin-v31-hub-grid :is(a, button) strong { color: #3155ad; font-size: 14px; }
  .sos-admin-surface #admin-dashboard .admin-v31-hub-grid span { display: none; }
  .sos-admin-surface #admin-dashboard :is(.admin-notification-panel, .admin-v31-quick-nav, .drawer, .drawer-content) { background: #f8fafd; color: #1b2c46; border-color: #cbd5e2; }
  .sos-admin-surface #admin-dashboard .dashboard-main :is([class$="-card"], [class$="-surface"], [class$="-panel"], [class$="-summary"], [class$="-grid"] > article, .role-guide-security, .role-guide-map) { background: #f8fafd; color: #1b2c46; border-color: #cbd5e2; box-shadow: none; }
  .sos-admin-surface #admin-dashboard .dashboard-main :is([class$="-card"], [class$="-surface"], [class$="-panel"], [class$="-summary"], [class$="-grid"] > article) :is(strong, b) { color: #294b80; }
  .sos-admin-surface #admin-dashboard .dashboard-main :is(.tab-button, .content-tab-button, .artist-stage-tabs button, .system-section-navigation a, .organizer-native-tabs button) { color: #43556d; font-size: 14px; letter-spacing: 0; }
  .sos-admin-surface #admin-dashboard .dashboard-main :is(.tab-button.is-active, .content-tab-button.is-active, .artist-stage-tabs button.active, .organizer-native-tabs button.is-active) { background: #dce6f6; color: #3155ad; border-color: #7892be; }
  .sos-admin-surface #admin-dashboard :is(.public-content-hero, .system-hero) > div:first-child > span { display: none; }
  .sos-admin-surface #admin-dashboard :is(.pc-section, .pc-save-bar) { color: #1b2c46; background: #f8fafd !important; border: 1px solid #cbd5e2; border-radius: 12px; box-shadow: none; backdrop-filter: none; }
  .sos-admin-surface #admin-dashboard .pc-section > header :is(span, strong) { color: #294b80; font-size: 14px; line-height: 1.5; letter-spacing: 0; }
  .sos-admin-surface #admin-dashboard .pc-section-toggle { min-height: 44px; color: #1b2c46; background: #fff; border-color: #aab9cd; font-size: 14px; }
  .sos-admin-surface #admin-dashboard :is(.pc-help, .pc-save-bar span) { color: #54657b; font-size: 14px; }
  .sos-admin-surface #admin-dashboard .pc-help code { color: #294b80; background: #e3ebf7; }
  .sos-admin-surface #admin-dashboard .pc-save-bar strong { color: #294b80; font-size: 14px; }

  .sos-store-surface .overview > div { background: #f8fafd; border: 0; border-radius: 10px; }
  .sos-store-surface .overview small { color: #54657b; font-size: 13px; }
  .sos-store-surface .overview strong { color: #3155ad; font-size: 32px; }
  .sos-store-surface :is(.store-list, .inventory) { background: #f8fafd; border: 1px solid #cbd5e2; border-radius: 12px; padding: 22px; }
  .sos-store-surface .intro h1 { font-size: 36px; line-height: 1.2; }
  .sos-store-surface :is(.intro p, .section-heading small, .filters label, .item-name small, .movement-item small, .purchase p) { color: #54657b; font-size: 14px; }
  .sos-store-surface .store-button { background: #edf2fa; color: #1b2c46; border: 1px solid #cbd5e2; border-radius: 8px; }
  .sos-store-surface .store-button.active { background: #dce6f8; border-color: #6483bb; }
  .sos-store-surface .store-button small { color: #54657b; }
  .sos-store-surface :is(.low, .purchase-item strong) { color: #805211; }
  .sos-store-surface .qty-unknown { color: #41638b; }
  .sos-store-surface .store-language-switch button { color: #43556d; }
  .sos-store-surface .store-language-switch button.is-active { background: #3155ad; color: #fff; }
  .sos-store-surface .gate { color: #54657b; }
  .sos-store-surface :is(#item-more summary, .import-content p, .import-preview span, .pdf-picker) { color: #43556d; font-size: 14px; }
  .sos-organizer-surface .orb { display: none; }
  .sos-organizer-surface .organizer-shell { max-width: 1440px; }
  .sos-organizer-surface .workspace-head h1 { font-size: clamp(30px, 3.2vw, 46px); line-height: 1.25; }
  .sos-organizer-surface :is(.event-meta, .workspace-controls label, .metrics-grid p, .metrics-grid small, .brief, .section-head p) { color: #54657b; font-size: 14px; }
  .sos-organizer-surface .metrics-grid article { background: #f8fafd; border: 1px solid #cbd5e2; color: #1b2c46; border-radius: 12px; box-shadow: none; }
  .sos-organizer-surface .metrics-grid span { color: #54657b; font-size: 13px; letter-spacing: 0; }
  .sos-organizer-surface .metrics-grid strong { color: #3155ad; font-size: 38px; }
  .sos-organizer-surface .tabbar { background: transparent; border-color: #b7c6d9; }
  .sos-organizer-surface .tabbar button { color: #54657b; font-size: 15px; letter-spacing: 0; }
  .sos-organizer-surface .tabbar button.active { color: #3155ad; background: #dce6f6; border-color: #3155ad; }
  .sos-organizer-surface .surface header { border-color: #cbd5e2; }
  .sos-organizer-surface :is(.task-column, .task-card, .registry-card, .data-card, .transaction-item) { color: #1b2c46; background: #f8fafd; border-color: #cbd5e2; box-shadow: none; }
  .sos-organizer-surface .load-row label { color: #43556d; font-size: 14px; line-height: 1.5; }
  .sos-organizer-surface :is(.topbar-title span, .sync-state[data-kind="ok"]) { color: #d7e3f7; font-size: 12px; letter-spacing: 0; }
  .sos-organizer-surface .brief > div { border-left: 0; padding-left: 0; }
  .sos-ticket-ops-surface .ta-hero h1 { font-size: clamp(32px, 3.5vw, 48px); line-height: 1.2; }
  .sos-ticket-ops-surface :is(.ta-hero p, .ta-kicker, .ta-panel p, .ta-panel label, .ta-note) { color: #54657b; letter-spacing: 0; font-size: 14px; }
  .sos-ticket-ops-surface .ta-nav { border-color: #bac8db; background: #e1e9f5; border-radius: 10px; padding: 5px; gap: 4px; }
  .sos-ticket-ops-surface .ta-nav button { background: transparent; color: #43556d; font-size: 14px; padding: 10px 14px; min-height: 44px; border: 0; border-radius: 7px; }
  .sos-ticket-ops-surface .ta-nav button:is(.active, .is-active) { background: #3155ad; color: #fff; }
  .sos-ticket-ops-surface :is(.ta-metric, .ta-overview-card) { background: #f8fafd; color: #1b2c46; border-color: #cbd5e2; box-shadow: none; }
  .sos-ticket-ops-surface { --ta-bg: #e9eef5; --ta-surface: #f8fafd; --ta-panel: #f8fafd; --ta-panel-2: #e0e8f3; --ta-card: #f8fafd; --ta-text: #1b2c46; --ta-muted: #54657b; --ta-line: #cbd5e2; --ta-accent: #3155ad; --ta-success: #196141; --ta-warn: #855411; --ta-danger: #a52f43; --ta-shadow: none; }
  .sos-ticket-ops-surface :is(.ta-row, .ta-customer-lookup, .ta-ai-status, .ta-auth-block) { background: #edf2fa; color: #1b2c46; border-color: #cbd5e2; }
  .sos-ticket-ops-surface .ta-metrics article { background: #f8fafd; color: #1b2c46; border-color: #cbd5e2; }
  .sos-ticket-ops-surface .ta-metrics strong { color: #3155ad; }
  .sos-ticket-ops-surface :is(.ta-form label > span, .ta-field > span) { color: #54657b; font-size: 13px; letter-spacing: 0; }
  .sos-ticket-ops-surface .ta-status { position: static; margin-block: 16px; background: #dce6f6; color: #315581; border-color: #c0cfe4; }
  .sos-ticket-ops-surface .ta-nav { position: static; }
  .sos-ticket-ops-surface :is(.ta-kicker, .ta-hero-badges, .ta-auth-block > p:first-child) { display: none; }
  .sos-ticket-ops-surface .ta-metrics span { color: #54657b; font-size: 13px; letter-spacing: 0; }
  .sos-ticket-ops-surface .ta-metrics small { color: #54657b; font-size: 13px; }
  .sos-ticket-ops-surface .ta-guide button { color: #1b2c46; background: #edf2fa; border: 1px solid #b9c7da; border-radius: 8px; min-height: 76px; padding: 12px; }
  .sos-ticket-ops-surface .ta-guide button strong { color: #1b2c46; font-size: 14px; }
  .sos-ticket-ops-surface .ta-guide button small { color: #54657b; font-size: 13px; }
  .sos-ticket-ops-surface :is(.v32-readiness, #ticket-sales-master-status) { color: #294b80; font-size: 14px; }
  .sos-ticket-ops-surface .v32-readiness .is-blocked { color: var(--ta-warn); }
  .sos-ticket-ops-surface .v32-readiness .is-ready { color: var(--ta-success); }
  .payment-page .pay-hero h1 { font-size: clamp(32px, 3.5vw, 48px); line-height: 1.2; }
  .payment-page :is(.pay-label, .pay-row, .pay-form label) { color: #43556d; font-size: 14px; }
  .payment-page .pay-badge { background: #dce6f6; color: #3155ad; font-size: 12px; }
  .payment-page .pay-status { background: #dce6f6; color: #33578c; border-color: #b6c7e0; }
  .payment-page .pay-card a:not(.pay-button) { color: #3155ad; }
  .payment-page .pay-card > h1 { font-size: clamp(30px, 4vw, 44px); line-height: 1.25; margin: 0 0 20px; }
  .payment-page .pay-card h2 { font-size: 24px; line-height: 1.35; margin-top: 28px; }
  .payment-page .pay-card p { font-size: 16px; color: #43556d; }
  body:has(.scan-shell) { --studio-page: #14243c; --studio-paper: #1d3453; --studio-ink: #f2f6ff; --studio-muted: #c4d2e8; --studio-line: #49617f; --studio-blue: #bed4f2; color-scheme: dark; }
  body:has(.scan-shell) .scan-card { background: #1d3453; color: #f2f6ff; border-color: #49617f; box-shadow: none; border-radius: 12px; }
  body:has(.scan-shell) :is(.scan-muted, .scan-help, label) { color: #c4d2e8; }
  body.sos-scanner-surface #scanner-app :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]) { background: #10263f !important; color: #f2f6ff !important; border-color: #6c819d; }
  body:has(.scan-shell) :is(.scan-fields label > span, .scan-session span, .scan-network, .scan-camera-state, .scan-result-label) { font-size: 12px; color: #c4d2e8; letter-spacing: 0; }
  body.sos-scanner-surface .global-language-switch { background: #1d3453 !important; border-color: #6c819d; }
  body.sos-scanner-surface .global-language-switch label { color: #d7e3f7; }
  body.sos-scanner-surface :is(#scan-result-message, .scan-manual summary, .scan-manual label > span, .scan-recent, .scan-recent-empty, #scan-clear-history) { color: #c4d2e8; font-size: 14px; }
  body.sos-scanner-surface .scan-result-kicker { display: none; }
  body.sos-error-surface main { background: #f8fafd; color: #1b2c46; border: 0; border-radius: 16px; backdrop-filter: none; box-shadow: none; }
  body.sos-error-surface main > span { display: none; }
  body.sos-error-surface main > img { width: 180px; filter: none; }
  body.sos-error-surface main > h1 { color: #3155ad; font-size: 76px; line-height: 1.1; letter-spacing: -.025em; }
  body.sos-error-surface main > p { color: #54657b; }
  body.sos-error-surface main > a { background: #3155ad; color: #fff; border: 0; border-radius: 8px; font-size: 15px; letter-spacing: 0; }

  @media (max-width: 1180px) {
    .sos-public-home #site-header .reference-desktop-nav { gap: 18px; }
    .sos-public-home #site-header .reference-brand span { display: none; }
    .sos-admin-surface #admin-dashboard .dashboard-header { align-items: flex-start; }
    .sos-admin-surface #admin-dashboard .admin-header-tools { align-items: flex-end; }
    .sos-admin-surface #admin-dashboard .admin-account { flex-wrap: wrap; justify-content: flex-end; }
    .sos-admin-surface #admin-dashboard .admin-user-chip { max-width: 190px; }
  }
  @media (max-width: 980px) {
    .sos-public-home #event-grid, .sos-public-home #current-event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sos-admin-surface #admin-dashboard .dashboard-main { margin-left: 0; width: 100%; }
    .sos-admin-surface #admin-dashboard .dashboard-header { min-height: 84px; }
    .sos-admin-surface #admin-dashboard .admin-user-chip { display: none; }
    .sos-admin-surface #admin-dashboard .admin-v31-hub-grid { display: flex; }
    .sos-public-home #site-header .reference-header-inner { padding-inline: 24px; }
    .sos-public-home #home .coded-hero-content { min-height: 320px; padding: 28px 24px !important; gap: 20px; }
    .sos-public-home #home .hero-intro h2 { font-size: 48px; }
    .sos-public-home #home .coded-brand-composition { width: min(300px, 100%); }
  }
  @media (min-width: 981px) {
    .sos-public-home #site-header .reference-desktop-nav { display: flex; }
  }
  @media (max-width: 760px) {
    body :is(.account-topbar, .shop-header, .pay-top, .scan-topbar, .ta-topbar, .topbar) { min-height: 68px; padding: 12px 16px; }
    body :is(.account-brand, .shop-brand, .pay-brand, .scan-brand, .ta-brand) strong { font-size: 12px; }
    body :is(.account-brand, .shop-brand, .pay-brand, .scan-brand, .ta-brand) small { font-size: 11px; }
    .sos-public-home #site-header .reference-header-inner { min-height: 72px; padding: 8px 18px; }
    .sos-public-home #site-header .reference-brand img { width: 48px; height: 48px; }
    .sos-public-home #language-button { min-width: 105px; }
    .sos-public-home #language-button label { display: none; }
    .sos-public-home #home .coded-hero-content { min-height: 0; grid-template-columns: 1fr; grid-template-rows: auto auto; padding: 38px 20px !important; gap: 20px; }
    .sos-public-home #home .hero-intro { grid-area: 1 / 1; max-width: 540px; z-index: 1; }
    .sos-public-home #home .hero-intro h2 { max-width: 11ch; font-size: clamp(38px, 9.4vw, 56px); margin-bottom: 16px; }
    .sos-public-home #home .hero-intro > p { max-width: 33ch; font-size: 15px; color: #e0e9f7; }
    .sos-public-home #home .coded-brand-composition { display: none; }
    .sos-public-home #home .coded-event-focus-group { grid-area: 2 / 1; z-index: 1; justify-self: start; }
    .sos-public-home #home .coded-event-focus-primary { min-height: 50px; padding: 12px 18px; }
    .sos-public-home #home::after { background: rgb(18 38 68 / 65%); }
    .sos-public-home .experience-quick-nav-inner { gap: 22px; padding-inline: 20px; }
    .sos-public-home .experience-quick-nav a { flex: 0 0 auto; min-height: 50px; }
    .sos-public-home .experience-quick-nav a strong { font-size: 13px; }
    .sos-public-home .section { padding-block: 32px; }
    .sos-public-home .section-heading { margin-bottom: 22px; }
    .sos-public-home .section-heading h2 { font-size: 31px; }
    .sos-public-home .section-heading p { font-size: 14px; }
    .sos-public-home #event-grid, .sos-public-home #current-event-grid { grid-template-columns: 1fr; gap: 32px; }
    .sos-public-home .event-content { padding-top: 16px; }
    .sos-public-home .event-card h3 { font-size: 24px; }
    .sos-public-home .event-detail-dialog { --studio-focus: #3155ad; }
    .sos-public-home #site-menu .menu-inner { padding-top: 88px; }
    .sos-public-home #site-menu strong { font-size: 28px; }
    .sos-admin-surface #admin-dashboard .dashboard-main { padding: 0 16px 32px; }
    .sos-admin-surface #admin-dashboard .dashboard-header { width: calc(100% + 32px); margin: 0 -16px 20px; padding: 14px 16px; flex-direction: column; gap: 12px; }
    .sos-admin-surface #admin-dashboard .dashboard-title { width: 100%; }
    .sos-admin-surface #admin-dashboard .dashboard-title h1 { font-size: 27px; }
    .sos-admin-surface #admin-dashboard .admin-header-tools { width: 100%; flex-direction: row; justify-content: space-between; align-items: center; }
    .sos-admin-surface #admin-dashboard .admin-account { gap: 6px; flex-wrap: nowrap; }
    .sos-admin-surface #admin-dashboard .admin-data-refresh { display: none; }
    .sos-admin-surface #admin-dashboard .admin-account button { font-size: 12px; padding: 8px; }
    .sos-admin-surface #admin-dashboard :is(.summary-grid, .system-summary-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .sos-admin-surface #admin-dashboard :is(.summary-grid, .system-summary-grid) article { padding: 16px; }
    .sos-admin-surface #admin-dashboard :is(.summary-grid, .system-summary-grid) article > strong { font-size: 32px; }
    .sos-admin-surface #admin-dashboard .records-toolbar { padding: 16px; }
    .sos-admin-surface #admin-records-empty { padding: 24px 16px; min-height: 200px; }
    .sos-account-surface .account-shell { padding-top: 28px; }
    .sos-account-surface .account-wallet-card { padding: 22px 18px; }
    .sos-account-surface .account-toolbar-actions { gap: 8px; }
    .sos-merch-surface .shop-hero h1 { font-size: 42px; }
    .sos-merch-surface .shop-header nav a { font-size: 13px; }
    .sos-store-surface .intro h1 { font-size: 30px; }
    .sos-store-surface :is(.store-list, .inventory) { padding: 16px; }
    .sos-organizer-surface .workspace-head h1 { font-size: 30px; }
    .sos-organizer-surface .workspace-controls label { flex: 0 0 100%; width: 100%; min-width: 0; }
    .sos-organizer-surface .workspace-controls select { display: block; width: 100%; min-width: 0; }
  }
  @media (prefers-reduced-motion: reduce) {
    body :is(a, button) { transition: none; }
    .sos-public-home .reveal { transform: none !important; opacity: 1 !important; }
  }
}

body.sos-admin-surface .pc-note-ai-tools {
  display: flex;
  align-items: center;
  gap: 10px 14px;
  flex-wrap: wrap;
  margin-top: 10px;
}
body.sos-admin-surface .pc-note-ai-tools button,
body.sos-admin-surface .pc-note-summary-preview button {
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid #aab9cd;
  border-radius: 7px;
  background: #fff;
  color: #294b80;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}
body.sos-admin-surface .pc-note-ai-tools button:disabled { opacity: .55; cursor: not-allowed; }
body.sos-admin-surface .pc-note-count { color: #54657b; font-size: 13px; font-variant-numeric: tabular-nums; }
body.sos-admin-surface .pc-note-count[data-over-limit="true"] { color: #9d2937; font-weight: 700; }
body.sos-admin-surface .pc-note-status { flex-basis: 100%; color: #43556d; font-size: 13px; }
body.sos-admin-surface .pc-note-ai-disclosure { margin: 7px 0 0; color: #54657b; font-size: 12px; line-height: 1.5; }
body.sos-admin-surface .pc-note-summary-preview {
  display: grid;
  gap: 12px;
  margin-top: 12px;
  padding: 14px;
  border: 1px solid #aab9cd;
  border-radius: 9px;
  background: #edf2fa;
}
body.sos-admin-surface .pc-note-summary-preview[hidden] { display: none !important; }
body.sos-admin-surface .pc-note-summary-preview p { margin: 0; color: #1b2c46; font-size: 14px; line-height: 1.55; }
body.sos-admin-surface .pc-note-summary-preview > div { display: flex; gap: 8px; flex-wrap: wrap; }

/* Admin navigation: a persistent shell with one task pane, never another page
   header or a fullscreen overlay inside it. Standalone tool styling is intact. */
@media screen {
  .sos-admin-surface #admin-dashboard[data-workspace]:not([data-workspace=""]) .dashboard-main { padding-bottom: 16px; }
  .sos-admin-surface #admin-workspace-panel {
    display: grid;
    grid-template-rows: auto auto auto minmax(0, 1fr);
    height: max(360px, calc(100dvh - var(--admin-workspace-top, 220px) - 16px));
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    content-visibility: visible;
  }
  .sos-admin-surface #admin-workspace-status { grid-row: 1; margin: 0; padding: 12px 0; color: #54657b; font-size: 15px; }
  .sos-admin-surface #admin-workspace-recovery { grid-row: 2; padding-bottom: 12px; }
  .sos-admin-surface .admin-workspace-leave { grid-row: 3; padding: 16px; margin-bottom: 12px; background: #fff4db; color: #68430f; border-radius: 8px; }
  .sos-admin-surface .admin-workspace-leave p { margin: 0 0 12px; font-size: 15px; }
  .sos-admin-surface .admin-workspace-leave > div { display: flex; gap: 8px; flex-wrap: wrap; }
  .sos-admin-surface .admin-workspace-mount { grid-row: 4; min-height: 0; min-width: 0; overflow: hidden; }
  .sos-admin-surface #admin-workspace-frame { display: block; width: 100%; height: 100%; border: 0; background: #e9eef5; }
  .sos-admin-surface #operational-analytics-panel .operational-analytics-hero { padding: 0 0 20px; box-shadow: none; border: 0; background: transparent; }
  .sos-admin-surface #operational-analytics-panel .operational-analytics-hero p { margin-top: 0; }
  html.admin-workspace-embedded, html.admin-workspace-embedded body { min-height: 0; }
  html.admin-workspace-embedded body { margin: 0; }
  html.admin-workspace-embedded :is(.ta-topbar, .topbar, .scan-topbar, .pay-top, .global-language-switch, .interface-skip-link) { display: none !important; }
  html.admin-workspace-embedded :is(.ta-shell, .pay-shell, .scan-shell, .shell) { width: 100%; max-width: none; margin: 0; padding: 0 0 24px; }
  html.admin-workspace-embedded :is(.ta-hero, .pay-hero h1, .pay-hero > .pay-kicker, .intro h1, .intro .eyebrow, .scan-setup h1, .scan-setup .scan-kicker) { display: none; }
  html.admin-workspace-embedded :is(.intro, .pay-hero) { padding: 0 0 16px; margin: 0; }
  html.admin-workspace-embedded :is(.ta-status, .ta-nav) { position: static; top: auto; }
  html.admin-workspace-embedded :is(.ta-auth-block, .scan-auth, #gate) { margin: 24px auto; min-height: 0; }
  html.admin-workspace-embedded .scan-shell { padding: 16px; }
  html.admin-workspace-embedded .scan-shell > .scan-network { display: inline-block; margin-bottom: 12px; }
  @media (max-width: 620px) {
    .sos-admin-surface #admin-workspace-panel { height: max(360px, calc(100dvh - var(--admin-workspace-top, 260px) - 12px)); }
    html.admin-workspace-embedded .ta-guide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    html.admin-workspace-embedded .scan-shell { padding: 12px; }
  }

  /* Homepage feature: real published artwork leads, while the programme remains easy to scan. */
  .sos-public-home #home.coded-psy-hero { background: #10254a !important; }
  .sos-public-home #home .studio-atmosphere { inset: 0 0 0 40%; width: 60%; opacity: .42; object-position: center; }
  .sos-public-home #home::after { background: linear-gradient(90deg, #2259df 0 40%, rgb(6 23 50 / 55%) 40%, rgb(6 23 50 / 35%) 100%); }
  .sos-public-home #home .coded-hero-content { grid-template-columns: minmax(0, 40%) minmax(0, 60%); grid-template-rows: 1fr auto; max-width: none; min-height: clamp(430px, 43vw, 650px); gap: 0; padding: 0 !important; }
  .sos-public-home #home .hero-intro { grid-area: 1 / 1; align-self: end; padding: 50px clamp(26px, 3.6vw, 64px) 16px; box-sizing: border-box; }
  .sos-public-home #home .hero-intro h2 { max-width: 9ch; font-size: clamp(56px, 7.4vw, 96px); line-height: 1.02; text-wrap: balance; color: #fff; }
  .sos-public-home #home .hero-intro > p { max-width: 37ch; color: #f2f5ff; font-size: clamp(15px, 1.1vw, 18px); }
  .sos-public-home #home .coded-event-focus-group { grid-area: 2 / 1; align-self: start; padding: 12px clamp(26px, 3.6vw, 64px) 50px; }
  .sos-public-home #home .coded-event-focus-primary { background: #e4fc69 !important; color: #142342 !important; min-height: 56px; }
  .sos-public-home #home .home-featured-poster { grid-area: 1 / 2 / 3 / 3; position: relative; display: grid; place-items: center; min-width: 0; min-height: 0; padding: 28px 28px 80px; box-sizing: border-box; }
  .sos-public-home #home .home-featured-poster img { display: block; width: auto; max-width: 100%; height: 100%; max-height: 525px; object-fit: contain; filter: drop-shadow(0 16px 24px rgb(4 13 29 / 45%)); }
  .sos-public-home #home .home-featured-caption { position: absolute; right: 24px; bottom: 18px; left: 24px; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 20px; padding: 14px 18px; background: rgb(9 25 54 / 91%); color: #fff; }
  .sos-public-home #home .home-featured-caption strong { font-size: clamp(17px, 1.5vw, 23px); line-height: 1.3; }
  .sos-public-home #home .home-featured-caption span { color: #d5e3ff; font-size: 13px; }
  .sos-public-home #home .home-community-strip { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 32px; padding: 22px clamp(26px, 3.6vw, 64px); background: #102241; border-top: 1px solid #4b638b; }
  .sos-public-home #home .home-community-strip p { margin: 0; color: #fff; font-size: clamp(19px, 1.8vw, 27px); line-height: 1.4; font-weight: 500; }
  .sos-public-home #home .home-community-strip p + p { color: #c3d5f7; font-size: 15px; font-weight: 400; }
  .sos-public-home #home .home-featured-poster[hidden], .sos-public-home #home .coded-brand-composition[hidden] { display: none !important; }
  .sos-admin-surface .pc-featured-choice { grid-column: 1 / -1; padding: 12px 16px; background: #e5edfb; border-radius: 8px; color: #1b3764; font-size: 14px; }
  @media (max-width: 760px) {
    .sos-public-home #home .studio-atmosphere { inset: 0; width: 100%; opacity: .35; }
    .sos-public-home #home::after { background: linear-gradient(180deg, rgb(25 63 145 / 88%), rgb(11 32 69 / 88%)); }
    .sos-public-home #home .coded-hero-content { display: flex; flex-direction: column; align-items: stretch; min-height: 0; }
    .sos-public-home #home .hero-intro { order: 1; padding: 32px 20px 10px; }
    .sos-public-home #home .hero-intro h2 { max-width: 11ch; font-size: clamp(42px, 10vw, 62px); }
    .sos-public-home #home .coded-event-focus-group { order: 2; padding: 10px 20px 18px; }
    .sos-public-home #home .home-featured-poster { order: 3; display: flex; flex-direction: column; height: auto; padding: 10px 20px 0; }
    .sos-public-home #home .home-featured-poster img { width: auto; max-width: 100%; height: auto; max-height: 450px; }
    .sos-public-home #home .home-featured-caption { position: static; width: 100%; box-sizing: border-box; padding: 10px 12px; }
    .sos-public-home #home .home-featured-caption span { font-size: 11px; }
    .sos-public-home #home .home-community-strip { gap: 5px; padding: 18px 20px; }
    .sos-public-home #home .home-community-strip p { flex-basis: 100%; font-size: 21px; }
    .sos-public-home #home .home-community-strip p + p { font-size: 14px; }

  }
}

/* Shared customer language choice: both destinations are always visible. */
@media screen {
  body .sos-language-switch,
  body #language-button.sos-language-switch,
  body .account-topbar .global-language-switch.sos-language-switch {
    display: inline-flex; align-items: center; flex: 0 0 auto; gap: 2px;
    width: auto; min-width: 0; padding: 4px; border: 1px solid #6c7e99;
    border-radius: 8px; background: #132541; box-shadow: none; backdrop-filter: none;
    color: #fff;
  }
  body .sos-language-switch [hidden] { display: none !important; }
  body .sos-language-switch [data-language-choice] {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 54px; min-height: 44px; margin: 0; padding: 8px 12px;
    border: 0; border-radius: 5px !important; background: transparent !important;
    color: #d5e3f5 !important; font: inherit; font-size: 14px; line-height: 1.2;
    font-weight: 500; letter-spacing: 0; text-transform: none; box-shadow: none; cursor: pointer;
  }
  body .sos-language-switch [data-language-choice]:hover { background: #29436a !important; color: #fff !important; }
  body .sos-language-switch [data-language-choice][aria-pressed='true'] { background: #f8fafd !important; color: #1b2c46 !important; }
  body .sos-language-switch [data-language-choice]:focus-visible { outline: 2px solid #bed4f2 !important; outline-offset: 1px; }
  @media (max-width: 480px) {
    body .sos-language-switch [data-language-choice] { padding-inline: 10px; min-width: 48px; }
  }
}
