/* TapBios — playful neo-brutalism. Shared presentation for every PHP layout.
   Existing page sheets retain layout and interaction contracts; this sheet owns
   surfaces, controls and motion. Per-business colours and shapes stay editable. */
:root {
    --neo-cream: #FFF7E8;
    --neo-ink: #111111;
    --neo-lime: #B6F542;
    --neo-yellow: #FFE45C;
    --neo-pink: #FF3890;
    --neo-orange: #FF792B;
    --neo-white: #FFFFFF;
    --neo-border: 3px solid var(--neo-ink);
    --neo-shadow: 5px 5px 0 var(--neo-ink);
    --neo-shadow-lg: 8px 8px 0 var(--neo-ink);
    --neo-radius: 16px;
    --neo-space: 8px;
}
body { background: var(--tb-bg); color: var(--tb-text); }
h1,h2,h3,h4 { font-family: var(--font-display); font-weight: 800; text-wrap: balance; }
p { text-wrap: pretty; }
button,input,select,textarea { font: inherit; }
a { color: inherit; }
a:hover { color: inherit; }
main a:not([class]), .muted a, .detail-list a { text-decoration: underline; text-underline-offset: 3px; }
::selection { background: var(--neo-yellow); color: var(--neo-ink); }
:focus-visible { outline: 3px solid var(--neo-ink) !important; outline-offset: 5px; }
html[data-theme="dark"] :focus-visible { outline-color: var(--neo-yellow) !important; }
[hidden] { display: none !important; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 1200; padding: 12px 20px; background: var(--neo-yellow); color: var(--neo-ink); border: var(--neo-border); }
.skip-link:focus { top: 12px; }
.muted,.text-body-secondary,.text-muted { color: var(--tb-muted) !important; }
.btn,.bio-btn,.game-link,.menu-contact-btn,.public-social,.share-open-btn,.share-action,.quiz-answer,.quiz-option,.menu-tab,.pagination a,.pagination button,.neo-press,.qrs-tile,.qrs-preset,.qrs-chip,.qrs-shape,.menu-style-card {
    --press-depth: 4px;
    border: var(--neo-border) !important;
    border-radius: 10px;
    box-shadow: var(--press-depth) var(--press-depth) 0 var(--neo-ink) !important;
    font-weight: 800 !important;
    text-decoration: none;
    transition: transform 140ms ease-out !important;
    filter: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}
.btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 10px 20px; }
.btn-primary,.btn-primary:hover,.btn-success { background: var(--neo-lime) !important; color: var(--neo-ink) !important; }
.btn-secondary,.btn-secondary:hover,.btn-outline-primary,.btn-light { background: var(--neo-white) !important; color: var(--neo-ink) !important; }
.btn-danger,.btn-danger:hover { background: var(--neo-pink) !important; color: var(--neo-ink) !important; }
.btn-warning { background: var(--neo-yellow) !important; color: var(--neo-ink) !important; }
.btn-sm { min-height: 36px; padding: 6px 12px; font-size: .8rem; }
.btn-lg { padding: 15px 26px; font-size: 1rem; }
/* admin.css `button.btn { font: inherit }` would otherwise make <button> sizes larger than <a> ones. */
button.btn.btn-sm { font-size: .8rem; }
button.btn.btn-lg { font-size: 1rem; }
.btn-block { display: flex; width: 100%; }
@media (hover: hover) {
    :is(.btn,.bio-btn,.game-link,.menu-contact-btn,.public-social,.share-open-btn,.share-action,.quiz-answer,.quiz-option,.menu-tab,.neo-press,.qrs-tile,.qrs-preset,.qrs-chip,.qrs-shape,.menu-style-card):not(:disabled):hover { transform: translate(2px,2px); box-shadow: 2px 2px 0 var(--neo-ink) !important; }
}
:is(.btn,.bio-btn,.game-link,.menu-contact-btn,.public-social,.share-open-btn,.share-action,.quiz-answer,.quiz-option,.menu-tab,.neo-press,.qrs-tile,.qrs-preset,.qrs-chip,.qrs-shape,.menu-style-card):not(:disabled):active { transform: translate(4px,4px); box-shadow: 0 0 0 var(--neo-ink) !important; }
button:disabled,.btn.disabled { opacity: .5; cursor: not-allowed; transform: none !important; box-shadow: none !important; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=color]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]),select,textarea,.form-control,.form-select,.ts-control {
    background-color: var(--tb-surface) !important;
    color: var(--tb-text) !important;
    border: var(--neo-border) !important;
    border-radius: 9px !important;
    box-shadow: none !important;
    min-height: 48px;
}
input::placeholder,textarea::placeholder { color: var(--tb-muted); opacity: 1; }
input[type=checkbox],input[type=radio] { accent-color: var(--neo-ink); width: 24px; height: 24px; min-width: 24px; min-height: 24px; flex-shrink: 0; }
label,.form-label { font-weight: 700; }
.field-error,.invalid-feedback { color: var(--tb-danger); font-weight: 600; }
.is-invalid,[aria-invalid=true] { outline: 2px solid #A2183B; outline-offset: 2px; }
.panel,.card,.entity-panel,.entity-hero,.entity-metric-card,.filter-bar,.metric-strip,.stat-card,.game-card,.game-hero-card,.onboarding-panel,.empty-state,.empty-state-panel,.builder-wrap,.builder-panel,.builder-section,.qr-panel,.qr-studio-panel,.request-demo-panel,.cta-band,.faq-item,.install-card,.install-panel,.tb-audience,.tb-showcase,.tb-analytics,.tb-rail,.share-modal__dialog,.dashboard-panel,.section-slab,.kpi-card,.health-card,.nested-panel {
    border: var(--neo-border) !important;
    border-radius: var(--neo-radius) !important;
    background: var(--tb-surface);
    color: var(--tb-text);
    box-shadow: var(--neo-shadow) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}
.card-grid,.entity-metric-grid { gap: 20px; }
.card h2,.stat-card h3,.metric-value,.entity-metric-value { font-variant-numeric: tabular-nums; }
.badge,.status-badge,.role-badge,.menu-badge,.metric-strip-label { border: 2px solid var(--neo-ink); border-radius: 6px; font-weight: 800; }
.badge,.status-badge,.role-badge { background: var(--neo-yellow); color: var(--neo-ink); }
.badge { background: var(--neo-yellow) !important; color: var(--neo-ink) !important; }
.badge-error,.badge-inactive { background: #FFD5E6 !important; }
.badge-active,.badge-ok { background: var(--neo-lime) !important; }
.btn-link { color: var(--tb-text) !important; text-decoration: underline; text-underline-offset: 3px; font-weight: 700; }
.entity-kicker,.game-eyebrow { color: var(--page-text,var(--tb-text)) !important; }
.text-warning { color: var(--tb-warning) !important; }
.alert { border: var(--neo-border) !important; border-radius: 10px; color: var(--neo-ink) !important; box-shadow: 3px 3px 0 var(--neo-ink); }
.alert-success { background: var(--neo-lime) !important; }
.alert-error,.alert-danger { background: #FFD5E6 !important; }
.alert-warning,.alert-info { background: var(--neo-yellow) !important; }
.modal-content,.swal2-popup,.ts-dropdown,.flatpickr-calendar,.driver-popover,.pcr-app { border: var(--neo-border) !important; border-radius: 16px !important; background: var(--tb-surface) !important; color: var(--tb-text) !important; box-shadow: var(--neo-shadow-lg) !important; }
.modal-header,.modal-footer { border-color: var(--neo-ink) !important; }
.swal2-styled.swal2-confirm,.driver-popover-next-btn,.flatpickr-day.selected { background: var(--neo-lime) !important; color: var(--neo-ink) !important; border: 2px solid var(--neo-ink) !important; box-shadow: 3px 3px 0 var(--neo-ink) !important; }
.swal2-styled.swal2-cancel,.driver-popover-prev-btn,.driver-popover-close-btn { background: var(--neo-white) !important; color: var(--neo-ink) !important; border: 2px solid var(--neo-ink) !important; border-radius: 6px; }
.ts-dropdown .active,.ts-dropdown .selected { background: var(--neo-lime) !important; color: var(--neo-ink) !important; }
.btn-close { filter: none !important; opacity: 1; }
.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; }
thead,thead th { background: var(--neo-yellow) !important; color: var(--neo-ink) !important; font-weight: 800; }
th,td { border-color: var(--neo-ink) !important; }
tbody tr:hover { background: var(--tb-surface-2); }
.tapbios-brand { display: inline-flex; align-items: center; gap: 10px; }
.tapbios-mark { display: block; width: 36px; height: 36px; flex: 0 0 36px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; object-fit: contain; }
.tapbios-wordmark { font-family: var(--font-display); font-size: 1.85rem; font-weight: 800; line-height: 1; }
.tapbios-wordmark__tap,.tapbios-wordmark__bios { color: inherit !important; }
.tapbios-brand-suffix { color: inherit; }
.site-header { background: var(--neo-ink) !important; border-bottom: 3px solid var(--neo-ink); color: var(--neo-cream); position: relative; backdrop-filter: none; }
.site-header .container { min-height: 85px; gap: 24px; }
.site-header .nav-link { color: var(--neo-cream) !important; font-size: .9rem; font-weight: 700; }
.site-header .nav-link:hover { text-decoration: underline; text-underline-offset: 6px; }
.site-header .site-nav-actions { display: flex; gap: 16px; }
.navbar-toggler { border: 2px solid var(--neo-cream); background: var(--neo-cream); padding: 8px; }
.site-footer { background: var(--neo-ink) !important; color: var(--neo-cream); border-top: 3px solid var(--neo-ink); padding: 48px 0 28px; }
.site-footer .muted,.site-footer .footer-copy { color: var(--neo-cream) !important; }
.site-footer a { color: inherit; }
.theme-switch { background: var(--neo-white) !important; border: 2px solid var(--neo-ink) !important; box-shadow: 3px 3px 0 var(--neo-ink); color: var(--neo-ink); }
.theme-switch__thumb { background: var(--neo-lime) !important; border: 1px solid var(--neo-ink); }
.theme-switch__side { color: var(--neo-ink) !important; }
/* Keep the builder tabs free of long divider strokes around the outlined tabs. */
.builder-wrap { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.builder-wrap .builder-panel { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.builder-wrap .builder-section { border-width: 2px !important; border-radius: 12px !important; box-shadow: none !important; }
.builder-wrap .builder-header,.builder-wrap .builder-tabs { border-bottom: 0 !important; }
.builder-wrap .builder-save-bar .btn { --press-depth: 2px; border-width: 2px !important; border-radius: 8px; }
.theme-preference select { min-height: 40px; }
/* Workspace: ink navigation, lime active destination, cream working canvas. */
.admin-sidebar { background: var(--neo-ink) !important; border-right: 3px solid var(--neo-ink); color: var(--neo-cream); }
.admin-sidebar .tapbios-brand { display: flex; }
.admin-sidebar .tapbios-wordmark { font-size: 1.6rem; }
.admin-sidebar .tapbios-mark { width: 30px; height: 30px; flex-basis: 30px; }
.admin-nav-section,.admin-brand-sub,.admin-user-email { color: #D8D2C5; }
.admin-nav-link,.admin-nav a { color: var(--neo-cream) !important; border: 2px solid transparent; border-radius: 8px; font-weight: 700; }
.admin-nav-link:hover,.admin-nav a:hover { background: #292929; }
.admin-nav-link.is-active,.admin-nav a.is-active { color: var(--neo-ink) !important; background: var(--neo-lime) !important; border-color: var(--neo-lime); }
.admin-nav-link.is-active .nav-icon { color: var(--neo-ink) !important; }
.admin-nav .admin-nav-label { color: var(--neo-cream) !important; }
.admin-nav .is-active .admin-nav-label { color: var(--neo-ink) !important; font-weight: 800; }
.admin-mobile-offcanvas { background: var(--neo-ink) !important; color: var(--neo-cream); }
.admin-mobile-offcanvas .offcanvas-title { color: var(--neo-cream); }
.admin-topbar-kicker,.admin-topbar .eyebrow,.admin-content .eyebrow,.dash-hero .eyebrow,.section-slab .eyebrow { color: var(--tb-text) !important; font-weight: 800; }
.quick-action-icon { color: var(--neo-ink) !important; background: var(--neo-yellow) !important; border: 2px solid var(--neo-ink); }
.quick-action:hover { background: var(--neo-lime) !important; color: var(--neo-ink) !important; }
.section-slab-head { padding: 24px; }
.dashboard-pill,.status-chip { color: var(--neo-ink) !important; background: var(--neo-lime) !important; border: 2px solid var(--neo-ink); }
.admin-sidebar-footer { border-top: 2px solid #595959; }
.admin-sidebar .admin-user-name { color: var(--neo-cream); }
.sidebar-collapse-toggle,.admin-sidebar-close { background: var(--neo-yellow); color: var(--neo-ink); border: 2px solid var(--neo-ink); }
.admin-topbar { background: var(--tb-bg) !important; border-bottom: 3px solid var(--neo-ink); backdrop-filter: none !important; }
.admin-page-title { font-family: var(--font-display); font-weight: 800; }
.admin-page-kicker { color: var(--tb-text); }
.admin-topbar-start,.admin-topbar-start > div { min-width: 0; }
.admin-topbar-start { flex: 1; }
.admin-page-title { overflow-wrap: anywhere; white-space: normal; }
.form-actions { display: flex; flex-wrap: wrap; gap: 16px; min-width: 0; }
.form-actions .btn { max-width: 100%; }
.entity-panel { min-width: 0; }
.entity-panel > table { display: block; overflow-x: auto; max-width: 100%; }
.admin-live-preview-panel,.form-section,.menu-hours-editor { border: var(--neo-border); border-radius: 14px; }
.admin-live-preview-panel { background: var(--neo-yellow); color: var(--neo-ink); box-shadow: var(--neo-shadow); }
.admin-live-preview-panel :is(h3,p) { color: var(--neo-ink); }
.admin-live-preview-frame-wrap { border: 3px solid var(--neo-ink); border-radius: 12px; }
.form-section > .form-section-head { padding-bottom: 16px; border-bottom: 2px solid var(--neo-ink); }
.qrs-chip,.qrs-shape,.menu-style-card { border: 2px solid var(--neo-ink); border-radius: 10px; }
.qrs-chip.is-active,.qrs-shape.is-active,.menu-style-card.is-active { background: var(--neo-lime); color: var(--neo-ink); box-shadow: 3px 3px 0 var(--neo-ink); }
.lb-row { border-bottom: 3px solid var(--neo-ink) !important; }
.lb-qr { border: var(--neo-border); box-shadow: var(--neo-shadow-lg); }
.lb-kicker,.lb-row--top .lb-rank { color: var(--page-text,var(--tb-text)) !important; }
.page-header h1,.entity-hero h1 { font-size: clamp(2rem,4vw,3.25rem); }
.page-eyebrow,.eyebrow,.hero-kicker,.onboarding-eyebrow { font-weight: 800; color: var(--tb-text); }
.entity-panel-head { border-bottom: 2px solid var(--neo-ink); }
.dash-hero,.onboarding-panel { background: var(--neo-yellow) !important; color: var(--neo-ink) !important; }
.dash-hero :is(h2,p,.eyebrow,.small) { color: var(--neo-ink) !important; }
.dash-hero::before,.entity-hero::before { display: none; }
.dash-hero .muted,.onboarding-panel .muted { color: #383326 !important; }
.dashboard-stats > :nth-child(4n+1),.entity-metric-grid > :nth-child(4n+1) { border-top: 7px solid var(--neo-lime) !important; }
.dashboard-stats > :nth-child(4n+2),.entity-metric-grid > :nth-child(4n+2) { border-top: 7px solid var(--neo-yellow) !important; }
.dashboard-stats > :nth-child(4n+3),.entity-metric-grid > :nth-child(4n+3) { border-top: 7px solid var(--neo-pink) !important; }
.dashboard-stats > :nth-child(4n),.entity-metric-grid > :nth-child(4n) { border-top: 7px solid var(--neo-orange) !important; }
.empty-state { padding: 32px; text-align: center; border-style: dashed !important; }
.admin-login-wrap { width: 100%; padding: 56px 20px; }
.admin-login-card { max-width: 480px; margin: 0 auto; padding: 32px; border-width: 4px !important; box-shadow: var(--neo-shadow-lg) !important; }
.admin-login-card h1 { font-size: clamp(2rem,6vw,2.8rem); }
.admin-login-logo { padding-bottom: 24px; border-bottom: 3px solid var(--neo-ink); }
.layout-admin-login { background: var(--tb-bg); }
.admin-login-card::before { display: none; }
/* Public destinations retain the business's palette and shape selections. */
.layout-bio,.layout-menu,.layout-game { background: var(--tb-bg); }
.bio-page { width: min(100%,39rem); padding: 40px 20px; align-items: flex-start; }
.bio-shell { border: 4px solid var(--neo-ink); border-radius: 24px; box-shadow: var(--neo-shadow-lg); background: var(--page-surface-strong,var(--tb-surface)); padding: clamp(24px,5vw,40px); overflow: visible; }
.bio-header { padding: 16px 0 24px; border-bottom: 3px solid var(--neo-ink); }
.bio-kicker,.menu-kicker { display: inline-block; font-size: .72rem; text-transform: uppercase; font-weight: 800; padding: 5px 10px; background: var(--neo-yellow); color: var(--neo-ink); border: 2px solid var(--neo-ink); border-radius: 6px; margin-bottom: 20px; }
.layout-bio .bio-kicker,.layout-menu .menu-kicker { color: var(--neo-ink) !important; }
.bio-avatar,.bio-avatar-placeholder,.bio-brand-logo,.menu-logo,.menu-logo-placeholder { border: 3px solid var(--neo-ink); box-shadow: 4px 4px 0 var(--neo-ink); }
.bio-avatar-placeholder,.menu-logo-placeholder { background: var(--page-primary,var(--neo-lime)); color: var(--page-button-text,var(--neo-ink)); }
.bio-title { font-size: clamp(2.25rem,8vw,3.75rem); font-weight: 800; }
.bio-link-group { margin-top: 24px; }
.bio-links { gap: 14px; }
.bio-btn { min-height: 58px; justify-content: flex-start; text-align: left; gap: 12px; background: var(--page-surface-strong,var(--neo-white)); color: var(--page-text,var(--neo-ink)); }
.bio-btn--link { background: var(--tb-btn-bg,var(--page-primary,var(--neo-lime))); color: var(--page-button-text,var(--neo-ink)) !important; border-color: var(--tb-btn-border,var(--neo-ink)) !important; }
.bio-btn--social,.bio-btn--contact { background: var(--neo-yellow); color: var(--neo-ink) !important; }
.bio-links .bio-btn--link:nth-child(3n+2) { background: var(--tb-btn-bg,var(--neo-yellow)); color: var(--tb-btn-text,var(--neo-ink)) !important; }
.bio-links .bio-btn--link:nth-child(3n) { background: var(--tb-btn-bg,var(--neo-pink)); color: var(--tb-btn-text,var(--neo-ink)) !important; }
.bio-btn::after { content: '↗'; margin-left: auto; font-size: 1.4rem; font-weight: 800; }
.bio-btn--submit::after { content: '→'; }
.bio-links--pair .bio-btn { font-size: .85rem; }
.bio-page--square .bio-btn { border-radius: 3px; }
.bio-page--rounded .bio-btn { border-radius: 12px; }
.bio-page--pill .bio-btn { border-radius: 999px; }
.public-social { background: var(--neo-lime) !important; color: var(--neo-ink) !important; min-width: 44px; min-height: 44px; border-radius: 10px; }
.public-social:nth-child(2n) { background: var(--neo-pink) !important; }
.public-social:nth-child(3n) { background: var(--neo-orange) !important; }
.public-footer { border-top: 2px solid var(--neo-ink) !important; margin-top: 28px; }
.public-footer a { color: var(--tb-link-text,var(--page-text,var(--tb-text))) !important; text-decoration: underline; text-underline-offset: 3px; }
.layout-game .game-shell .game-card,.layout-game .game-shell .game-hero-card { background: var(--page-surface-strong,var(--tb-surface)); color: var(--page-text,var(--tb-text)); padding: clamp(20px,4vw,32px); }
.game-link,.layout-game .btn-primary { background: var(--tb-btn-bg,var(--page-primary,var(--neo-lime))) !important; color: var(--page-button-text,var(--neo-ink)) !important; border-color: var(--tb-btn-border,var(--neo-ink)) !important; }
.game-link:hover,.layout-game .btn-primary:hover { background: var(--tb-btn-hover-bg,var(--tb-btn-bg,var(--page-primary))) !important; color: var(--tb-btn-hover-text,var(--page-button-text)) !important; }
.game-header h1 { font-size: clamp(2rem,6vw,3.5rem); }
.quiz-answer,.quiz-option { background: var(--page-surface-strong,var(--tb-surface)); color: var(--page-text,var(--tb-text)); }
.layout-game .quiz-option.is-selected { background: var(--page-primary); color: var(--page-button-text); }
.game-progress,.quiz-progress,.install-progress-bar { border: 2px solid var(--neo-ink); background: var(--tb-surface); border-radius: 6px; overflow: hidden; }
.game-progress-fill,.quiz-progress-fill,.install-progress-fill { background: var(--neo-lime); }
.memory-card,.ces-card,.care-card,.referral-card,.leaderboard-row,.results-card { border: var(--neo-border) !important; box-shadow: var(--neo-shadow); border-radius: 12px; }
.memory-card-back,.ces-card-back { background: var(--neo-yellow); color: var(--neo-ink); }
/* Engine class names are shared with their scripts; keep states distinct. */
.layout-game .memory-card { width: 100%; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px; background: var(--neo-yellow); color: var(--neo-ink); font-size: 1.5rem; cursor: pointer; }
.layout-game .memory-card-text { min-height: 3.5rem; text-align: center; line-height: 1.3; overflow-wrap: anywhere; }
.layout-game #memory-grid .memory-card .card-back { color: var(--neo-ink); opacity: 1; }
.layout-game .memory-card.is-flipped { background: var(--page-surface-strong); color: var(--page-text); }
.layout-game .memory-card.is-matched { background: var(--neo-lime); color: var(--neo-ink); opacity: 1; }
.layout-game .memory-card.is-matched .card-face { color: var(--neo-ink); }
.layout-game .cm-item { border: var(--neo-border); box-shadow: 3px 3px 0 var(--neo-ink); background: var(--page-surface-strong); color: var(--page-text); min-height: 48px; }
.layout-game .cm-item.is-selected { background: var(--page-primary); color: var(--page-button-text); }
.layout-game .cm-item.is-matched { background: var(--neo-lime); color: var(--neo-ink); }
.layout-game .cm-item.is-wrong { background: #FFD5E6; color: var(--neo-ink); }
.layout-game #cesm-grid .cesm-face { border: var(--neo-border); box-shadow: 3px 3px 0 var(--neo-ink); }
.layout-game #cesm-grid .cesm-back { background: var(--neo-yellow); color: var(--neo-ink); }
.layout-game #cesm-grid .cesm-back :is(.cesm-back-icon,.cesm-back-text) { color: var(--neo-ink); }
.layout-game #cesm-grid .cesm-front { background: var(--page-surface-strong); }
.layout-game #cesm-grid .cesm-card.matched .cesm-front { background: var(--neo-lime); }
.layout-game #cesm-grid .cesm-card.matched .cesm-front :is(.cesm-cat,.cesm-icon,.cesm-text) { color: var(--neo-ink); }
.layout-game #rr-arena .rr-token { border: var(--neo-border); box-shadow: var(--neo-shadow); }
.layout-game #rr-arena .rr-token.good { background: var(--neo-lime); color: var(--neo-ink); }
.layout-game #rr-arena .rr-token.bad { background: #FFD5E6; color: var(--neo-ink); }
.layout-game #rr-arena .rr-token.bad:not(.popping) { animation: rr-tin .22s ease-out forwards; }
.layout-game #rr-arena .rr-pop { text-shadow: none; }
.layout-game #tap-count { color: var(--page-text) !important; }
.layout-game :is(.cesm-hud,.cm-status-bar) { border: 2px solid var(--neo-ink); border-radius: 10px; background: var(--page-surface-strong); padding: 8px; }
.layout-game #rr-app .rr-hud { border: 2px solid var(--neo-ink); border-radius: 10px; background: var(--page-surface-strong); }
#scratch-prize { border: var(--neo-border) !important; box-shadow: var(--neo-shadow); }
.menu-shell { border: 3px solid var(--neo-ink); border-radius: 20px; box-shadow: var(--neo-shadow-lg); padding: clamp(16px,4vw,32px); }
.menu-hero { border-bottom: 3px solid var(--neo-ink); }
.menu-hero-scrim,.menu-hero-banner-overlay { background: #111111A6 !important; backdrop-filter: none !important; }
.layout-menu .menu-item { border: 2px solid var(--neo-ink); border-radius: var(--menu-card-radius,12px); box-shadow: 3px 3px 0 var(--neo-ink); background: var(--page-surface-strong,var(--tb-surface)); }
.layout-menu .menu-page[data-layout="list"] .menu-items { gap: 16px; padding: 0; border: 0; border-radius: 0; background: transparent; }
.layout-menu [data-layout="list"] .menu-item { padding: 16px; border: 2px solid var(--neo-ink); }
.layout-menu [data-card-shape="rounded"] .menu-item { border-radius: 12px; }
.layout-menu [data-card-shape="sharp"] .menu-item { border-radius: 0; }
.layout-menu [data-card-shape="pill"] .menu-item { border-radius: 28px; padding-inline: 24px; }
.menu-section-title,.menu-item-price { color: var(--page-text,var(--tb-text)) !important; }
.menu-tabs { background: var(--tb-bg); backdrop-filter: none !important; padding: 12px; gap: 12px; }
.menu-tab { background: var(--page-surface-strong,var(--tb-surface)); color: var(--page-text,var(--tb-text)); }
.menu-tab.is-active,.menu-contact-btn { background: var(--page-primary,var(--neo-lime)); color: var(--page-button-text,var(--neo-ink)); }
.layout-menu .menu-page .menu-contact-btn { background: var(--tb-btn-bg,var(--page-primary)); color: var(--page-button-text); border-color: var(--tb-btn-border,var(--neo-ink)) !important; }
.layout-menu .menu-page .menu-contact-btn:hover { background: var(--tb-btn-hover-bg,var(--tb-btn-bg,var(--page-primary))); color: var(--tb-btn-hover-text,var(--page-button-text)); }
.menu-section-toggle { border-bottom: 3px solid var(--neo-ink); }
.event-game-card { border: var(--neo-border); background: var(--page-surface-strong,var(--tb-surface)); box-shadow: var(--neo-shadow); }
.event-game-card:hover { background: var(--neo-yellow); color: var(--neo-ink); }
.event-eyebrow { color: var(--page-text,var(--tb-text)); opacity: 1; }
.dash-hero .dash-live { color: var(--neo-ink); }
.checklist-item.is-done .checklist-mark { background: var(--neo-lime); color: var(--neo-ink); border: 2px solid var(--neo-ink); }
.event-game-card-cta { color: var(--neo-ink); background: var(--neo-lime); border: 2px solid var(--neo-ink); border-radius: 6px; padding: 6px 10px; opacity: 1; }
.event-game-card:hover .event-game-card-body :is(h3,p) { color: var(--neo-ink); }
.qrs-tile,.qrs-preset,.builder-tab,.builder-engine-card,.theme-preset-btn { border: 2px solid var(--neo-ink); border-radius: 9px; background: var(--tb-surface); color: var(--tb-text); }
.template-card,.theme-mini-preview-card { border: var(--neo-border); border-radius: var(--neo-radius); box-shadow: var(--neo-shadow); }
.template-card { min-width: 0; }
.template-card:hover,.template-card:focus-within { border-color: var(--neo-ink); }
.template-card h3 a:hover { color: var(--tb-text); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.template-card-kind { align-self: flex-start; background: var(--neo-yellow); color: var(--neo-ink); border: 2px solid var(--neo-ink); border-radius: 6px; padding: 4px 8px; font-weight: 800; }
.template-card-actions { flex-wrap: wrap; }
.theme-mini-preview-title { font-family: var(--font-display); font-weight: 800; }
.theme-mini-preview-btn { border: 2px solid var(--neo-ink); border-radius: 8px; box-shadow: 3px 3px 0 var(--neo-ink); font-weight: 800; }
.menu-style-card.is-active { border-color: var(--neo-ink); background: var(--neo-lime); color: var(--neo-ink); }
.menu-style-card.is-active .menu-style-desc { color: var(--neo-ink); }
.menu-style-thumb { background: var(--neo-cream); border: 2px solid var(--neo-ink); }
.menu-style-thumb i { background: var(--neo-ink); }
.qrs-tile[aria-checked=true],.qrs-tile.is-active,.builder-tab.is-active,.builder-engine-card.is-selected { background: var(--neo-lime); color: var(--neo-ink); box-shadow: 3px 3px 0 var(--neo-ink); }
.qrs-preset::before { background: var(--sw1) !important; border-radius: 3px; }
.qrs-preview-stage { border: 2px dashed var(--neo-ink); background: var(--neo-cream); }
.menu-modal-panel,.share-modal-panel { border: var(--neo-border); border-radius: 20px; box-shadow: var(--neo-shadow-lg); backdrop-filter: none; }
.share-modal { border: var(--neo-border) !important; border-radius: 20px; box-shadow: var(--neo-shadow-lg); background: var(--neo-cream); color: var(--neo-ink); }
.share-modal__btn,.share-modal__social { border: 2px solid var(--neo-ink); background: var(--neo-lime); color: var(--neo-ink); border-radius: 8px; box-shadow: 3px 3px 0 var(--neo-ink); font-weight: 800; }
.share-modal__link { color: var(--neo-ink); }
.share-modal__btn:active { transform: translate(3px,3px); box-shadow: none; }
.layout-bio :is(input,textarea,select),.layout-game :is(input,textarea,select) { background-color: var(--tb-input-bg,var(--tb-surface)) !important; color: var(--tb-input-text,var(--tb-text)) !important; border-color: var(--tb-input-border,var(--neo-ink)) !important; }
.admin-topbar p { color: var(--tb-text); }
.share-open-btn { background: var(--neo-yellow) !important; color: var(--neo-ink) !important; }
.panel-error { max-width: 680px; margin: 64px auto; padding: 40px; }
.panel-error h1 { font-size: clamp(4rem,15vw,8rem); color: var(--tb-text); }
.install-step-current { background: var(--neo-lime); color: var(--neo-ink); border: 2px solid var(--neo-ink); }
.install-step-current .install-step-num { color: var(--neo-ink); background: var(--neo-lime); border: 2px solid var(--neo-ink); }
.site-header .install-version { color: var(--neo-cream) !important; }
code { overflow-wrap: anywhere; }
.image-field,.image-field-inputs,.form-section-grid > * { min-width: 0; max-width: 100%; }
.image-field-inputs { width: 100%; }
.image-field input { max-width: 100%; width: 100%; }
.skeleton { background: var(--tb-surface-2); border: 2px solid var(--neo-ink); animation: neo-loading 1s ease-out alternate infinite; }
@keyframes neo-loading { from { opacity: .45; } to { opacity: 1; } }
/* Shared editor proportions: one frame, quiet inner sections, inset actions. */
.layout-admin .admin-edit-layout { width: 100%; max-width: 90rem; margin-inline: auto; }
.layout-admin .admin-content > .panel:has(> .admin-form),
.layout-admin .admin-content > .panel.admin-form { max-width: 70rem; margin-inline: auto; }
.layout-admin .admin-edit-form-panel,
.layout-admin .panel:has(> .admin-form),
.layout-admin .panel.admin-form { padding: clamp(1rem, 3vw, 1.5rem); }
.layout-admin .admin-live-preview-panel { background: var(--tb-surface); color: var(--tb-text); border-width: 2px !important; box-shadow: none !important; }
.layout-admin .admin-live-preview-panel h3 { color: var(--tb-text); }
.layout-admin .admin-live-preview-panel p { color: var(--tb-muted); }
.layout-admin .admin-form :is(.form-section,.builder-section) { border-width: 2px !important; border-radius: 12px !important; box-shadow: none !important; }
.layout-admin .admin-form .form-section > .form-section-head { border-bottom-width: 1px; padding-bottom: 0.75rem; }
.layout-admin .admin-form .form-actions {
    position: static; margin: 1rem 0 0; padding: 1rem 0 0;
    border-top: 1px solid var(--color-border); justify-content: flex-end; gap: 0.75rem; flex-direction: row;
}
.layout-admin .admin-form .form-actions .btn { --press-depth: 2px; min-height: 44px; padding: 0.5rem 1rem; font-size: 0.875rem; border-width: 2px !important; border-radius: 8px; }
.layout-admin .admin-form .form-actions .btn-primary { order: 1; }
.editor-step { min-width: 0; display: flex; flex-direction: column; gap: 1rem; }
.editor-step > .builder-section { margin: 0; }
.editor-step-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.editor-step > .form-section { min-width: 0; }
.editor-step details.builder-section-divider > summary { cursor: pointer; min-height: 44px; padding-block: 0.625rem; font-weight: 600; font-size: 0.875rem; }
.editor-steps { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.editor-steps button { flex: 1 1 9rem; min-height: 44px; padding: 0.625rem 0.75rem; border: 2px solid var(--neo-ink); border-radius: 8px; color: var(--tb-text); background: var(--tb-surface); text-align: left; font-size: 0.875rem; font-weight: 600; }
.editor-steps button[aria-pressed="true"] { background: var(--neo-lime); color: var(--neo-ink); }
.editor-step-summary { margin: 0; font-size: 0.875rem; color: var(--tb-muted); }
.editor-disclosure { border: 1px solid var(--color-border); border-radius: 10px; }
.editor-disclosure > summary { padding: 0.625rem 1rem; min-height: 44px; font-weight: 600; font-size: 0.875rem; cursor: pointer; }
.editor-disclosure > :not(summary) { margin: 0 1rem 1rem; }
.editor-disclosure .qr-link-section { padding: 0; border: 0; background: transparent; }
.editor-disclosure .qr-link-section > .form-section-head { border: 0; }
.editor-feedback { color: var(--tb-danger); font-size: 0.875rem; font-weight: 600; }
.admin-nav-group { margin-bottom: 0.5rem; }
.admin-nav-group > summary.admin-nav-section { display: list-item; min-height: 44px; padding: 0.75rem 0.5rem; margin: 0; cursor: pointer; }
.is-sidebar-collapsed .admin-sidebar .admin-nav-group > summary { display: none; }
.brand-font-preview { border: 1px solid var(--color-border); border-radius: 10px; padding: 1rem; font-family: var(--font-body); }
.brand-font-preview strong { font-family: var(--font-display); font-size: 1.5rem; }
.brand-font-preview p { margin: 0.5rem 0 0; }
#qrs-form { max-width: 70rem; margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
#qrs-form .qrs-details { grid-row: 1; margin: 0; }
#qrs-form .qrs-details .admin-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#qr-studio.qrs { display: contents; }
.qrs-customize { min-width: 0; border: 1px solid var(--color-border); border-radius: 12px; }
.qrs-customize { grid-row: 3; }
.qrs-customize > summary { min-height: 44px; padding: 0.75rem 1rem; font-weight: 600; cursor: pointer; }
.qrs-customize > .qrs-controls { padding: 0 1rem 1rem; }
#qr-studio .qrs-stage { grid-row: 2; width: 100%; max-width: 24rem; margin-inline: auto; position: static; }
#qr-studio .qrs-section { border-width: 2px !important; box-shadow: none !important; padding: 1rem; }
#qr-studio .qrs-preview-card { padding: 1.25rem; }
#qr-studio .qrs-downloads { gap: 0.75rem; }
#qr-studio .qrs-downloads .btn { min-height: 44px; padding: 0.5rem 0.75rem; font-size: 0.875rem; border-width: 2px !important; --press-depth: 2px; }
#qr-studio .qrs-downloads .btn-primary { order: 1; }
@media (min-width: 1200px) {
    #qrs-form { grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem); align-items: start; }
    #qrs-form .qrs-details { grid-column: 1; }
    #qr-studio .qrs-customize { grid-column: 1; grid-row: 2; }
    #qr-studio .qrs-stage { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: 1.5rem; }
}
.dashboard-more { margin-block: 1.25rem; }
.dashboard-more > summary { min-height: 44px; padding: 0.75rem 1rem; border: 1px solid var(--color-border); border-radius: 10px; font-weight: 600; cursor: pointer; }
.dashboard-more[open] > summary { margin-bottom: 1rem; }
.dashboard-more .dash-columns { margin-block: 0 1rem; }
@media (max-width: 768px) {
    .editor-step-grid { grid-template-columns: minmax(0, 1fr); }
    .layout-admin .admin-table[data-mobile-cards] tbody tr { border: 0; border-bottom: 1px solid var(--color-border); border-radius: 0; margin: 0; padding: 0.75rem 1rem; background: var(--tb-surface); }
    .layout-admin .admin-table[data-mobile-cards] td { gap: 0.5rem; min-width: 0; overflow-wrap: anywhere; border-color: var(--color-border); }
    .layout-admin .admin-table[data-mobile-cards] td::before { flex: 0 0 7rem; margin: 0; font-size: 0.75rem; overflow-wrap: normal; }
    .layout-admin .admin-table .empty-state-cell::before { display: none; }
    .layout-admin .admin-form .form-actions .btn { flex: 1 1 7rem; min-width: 0; }
    .layout-admin .admin-form .form-actions { padding-bottom: env(safe-area-inset-bottom); }
}
@media (max-width: 600px) {
    #qrs-form .qrs-details .admin-form-grid { grid-template-columns: minmax(0, 1fr); }
    .layout-admin .admin-form .form-actions .btn { padding-inline: 0.625rem; }
    .layout-admin .admin-form .form-actions .btn-primary { flex-basis: 100%; }
}
@media (max-width: 991px) {
    .site-header .container { min-height: 72px; }
    .site-header .navbar-collapse { padding: 16px 0 24px; }
    .site-header .site-nav-actions { margin-left: 0 !important; }
    .admin-sidebar { padding-bottom: env(safe-area-inset-bottom); }
}
@media (max-width: 575px) {
    .btn { white-space: normal; }
    .admin-login-card { padding: 24px; }
    .bio-page { padding: 20px 16px; }
    .bio-shell { padding: 24px 18px; }
    .page-header,.entity-hero { overflow-wrap: anywhere; }
    .panel-error { margin: 32px 16px; padding: 24px; }
    .admin-topbar-inner { flex-wrap: wrap; }
    .admin-topbar-start { flex-basis: 100%; }
    .admin-topbar-end { margin-left: auto; max-width: 100%; }
    .admin-form-grid,.form-grid,.form-section-grid { grid-template-columns: minmax(0,1fr); }
    .admin-form-grid > *,.form-grid > *,.builder-section,.image-field-preview { min-width: 0; }
    .admin-form .form-actions,.panel.admin-form > .form-actions { margin-inline: 0; padding-inline: 0; }
    .admin-form :is(input,textarea,select) { max-width: 100%; }
    .analytics-filters .filter-actions { flex: 1 1 100%; max-width: 100%; flex-wrap: wrap; white-space: normal; min-width: 0; }
    .form-row,.form-row.cols-2,.form-row.cols-3 { grid-template-columns: minmax(0,1fr); }
    .form-row > * { min-width: 0; }
    .field-list { grid-template-columns: minmax(0,1fr) !important; }
    .menu-category-head { flex-wrap: wrap; }
    .layout-install :is(li,code) { overflow-wrap: anywhere; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    :root body *,:root body *::before,:root body *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    .tb-reveal { opacity: 1 !important; transform: none !important; }
}
