@import url('https://fonts.googleapis.com/css2?family=DynaPuff:wght@600;700&family=Space+Grotesk:wght@400;500;600;700&family=Permanent+Marker&display=swap');
/* Reference identity: acid lime, ink, editorial grid and rounded display type. */
:root { --brand-lime:#d8ff36; --brand-ink:#10110e; --brand-paper:#f5f7f2; --brand-display:'DynaPuff','Arial Black',sans-serif; --font-sans:'Space Grotesk',Arial,sans-serif; --bg-app:var(--brand-paper); --bg-card:#fff; --bg-subtle:#f1f3ed; --primary:#171914; --primary-hover:#363a2c; --primary-light:#e8ff9c; --text-main:#171914; --text-muted:#64695c; --text-light:#737968; --border-color:#d8dcd0; --border-color-focus:#8a9f35; --primary-gradient:linear-gradient(0deg,#d8ff36,#d8ff36); --shadow-md:0 3px 0 #17191406; }
body { font-family:var(--font-sans); color:var(--brand-ink); }
.workspace-heading h1,.welcome-copy h1,.ticket-page-heading h1 { font-family:var(--brand-display); font-weight:700; line-height:1.15; letter-spacing:-1.4px; color:#10110e; }
.workspace-heading h1 { font-size:clamp(28px,3vw,42px); }
.eyebrow { color:#555c45; letter-spacing:1.2px; }
.workspace-page header { border-bottom:1px solid #d8dcd0; background:#f5f7f2; }
.workspace-page .brand-badge { background:#d8ff36; color:#10110e; box-shadow:none; border-radius:7px; border:1px solid #c5e928; }
.brand-title { letter-spacing:-.8px; color:#10110e; }
.workspace-page .nav-tabs-wrapper { background:#f5f7f2; border-color:#d8dcd0; }
.workspace-page .nav-tab.active { background:#d8ff36; color:#10110e; box-shadow:none; }
.workspace-page .nav-tab { font-weight:600; font-size:12px; }
.workspace-page .card,.workspace-page .table-responsive { border-color:#dce0d4; box-shadow:none; background:#fff; }
.workspace-page .btn-primary,.public-ticket-page .ticket-actions .btn-primary { background:#d8ff36; color:#10110e; border:1px solid #c6e832; box-shadow:none; font-weight:700; }
.workspace-page .btn-primary:hover,.public-ticket-page .ticket-actions .btn-primary:hover { background:#c9ed30; color:#10110e; }
.workspace-page .btn-dark { background:#10110e; color:#fff; box-shadow:none; }
.workspace-page .btn-secondary { background:#fff; border-color:#d6dacd; color:#424837; }
.workspace-page .btn-secondary:hover { border-color:#b9c39e; background:#f4f7ed; }
.workspace-page .form-label { color:#525a44; }
.workspace-page .quota-hero-card { background:#10110e; color:#fff; position:relative; overflow:hidden; }
.workspace-page .quota-hero-number { color:#d8ff36; }
.workspace-page .quota-hero-sub { color:#afb69e; }
.workspace-page .quota-bar-fill { background:#d8ff36; }
.workspace-page .quick-actions button>span { color:#626e3c; }
.workspace-page .quick-actions button:hover { border-color:#b5ce56; background:#f8ffe5; }
.workspace-page th { background:#f2f5eb; color:#697454; }
.workspace-page tr:hover td { background:#f8fbf1; }
.welcome-copy h1 { font-size:clamp(40px,5vw,72px); text-transform:uppercase; }
.welcome-copy h1 span { color:#10110e; background:#d8ff36; box-shadow:8px 0 #d8ff36,-8px 0 #d8ff36; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
.welcome-preview { background:#d8ff36; border-color:#c7e832; border-radius:24px; }
.preview-ticket { background:#10110e; color:white; box-shadow:0 16px 0 #10110e12; transform:rotate(-2deg); }
.preview-ticket h2 { font-family:var(--brand-display); font-size:48px; font-weight:700; }
.preview-ticket .eyebrow,.preview-ticket-meta { color:#d8ff36; }
.preview-ticket-stub { border-color:#696f56; }
.preview-caption,.preview-topline { color:#485223; }
.ui-select-trigger { border-color:#d8dcd0; color:#353d2b; }
.ui-select-trigger:hover,.ui-select-trigger[aria-expanded=true] { border-color:#adb98b; background:#f6f9ef; }
.ui-select-popover { border-color:#d8dcd0; background:#fff; box-shadow:0 8px 24px #10110e12; }
.ui-select-search { color:#87936d; border-color:#e7ebdf; }
.ui-select-option { color:#343c29; }
.ui-select-option:hover,.ui-select-option:focus-visible { background:#f1f7e2; color:#171914; }
.ui-select-option[aria-selected=true] { background:#edffb6; border-color:#d8ef98; color:#343e1d; }
.ui-select-option[aria-selected=true]::after { color:#4e6419; }
.ui-select-option-detail,.ui-select-option[aria-selected=true] .ui-select-option-detail { color:#7b8866; }
.ui-select-group { color:#879471; }
* { scrollbar-color:#b9c49f transparent; }
*::-webkit-scrollbar-thumb { background:#b9c49f; }
.ui-select-options::-webkit-scrollbar-thumb { background:#b9c49f; }
:focus-visible { outline-color:#879b43; }
.fs-shell { --fs-accent:#728d19; --fs-border:#e1e5d8; font-family:var(--font-sans); color:#22271b; }
#pane_editor .fs-topbar { background:#fafcf6; }
.fs-publish { background:#d8ff36; color:#10110e; border-color:#c9e935; }
.fs-save { color:#38412a; border-color:#d6deca; }
.fs-layer.selected { background:#eaffaf; border-color:#d8efa4; }
.fs-layer.selected .fs-layer-select { color:#46591e; }
.fs-layer-toggle[aria-pressed=true] { color:#6c852d; }
.fs-context .ui-select-trigger { background:#f8faf3; border-color:#dde3d2; }
.fs-field { background:#f3f6ed; }
.fs-field:focus-within { background:#edf4df; border-color:#cfdbb8; }
#pane_editor .fs-dock .fs-icon[aria-pressed=true] { background:#d8ff36; color:#10110e; }
.fs-inspector-tabs .active { border-color:#778a3f; }
.fs-popover button:hover,.fs-layer-menu button:hover { background:#f0f6e1; }
.fs-text-action { color:#71863d; }
.issue-step-number { background:#efffc2; color:#556925; border-color:#dceba9; }
.issue-count-badge { color:#617736; border-color:#dce7c4; background:#f7fbea; }
.issue-text-button { color:#698137; }
.issue-import { background:#f6fbe9; border-color:#c6d6a4; }
.issue-import svg { color:#839956; }
.issue-import strong { color:#516434; }
.issue-import div>span,.issue-field-note,.issue-step-heading p { color:#818c70; }
.issue-import-tag { color:#697d47; border-color:#d0ddbb; }
.issue-import.dragover { background:#eaffab; border-color:#a8c244; }
.issue-preview-card { background:#10110e; border-color:#10110e; }
.issue-preview-title>span { color:#bcc8a7; }
.issue-preview-title .issue-text-button { color:#d8ff36; }
.issue-preview-caption { background:#1b2015; color:#abb59a; border-color:#32392a; }
.issue-sample-dot { background:#d8ff36; }
.issue-total strong { color:#10110e; font-family:var(--brand-display); }
.issue-total span,.issue-ready-hint,.issue-summary-details dt { color:#84916d; }
.issue-summary-details dd { color:#4b5937; }
#pane_issuing #btnStartIssue { background:#d8ff36; color:#10110e; border-color:#c5e82b; }
#pane_issuing #btnStartIssue:hover:not(:disabled) { background:#c9ed30; }
#pane_issuing #btnStartIssue:disabled { background:#edf3df; color:#99a784; border-color:#e4ebd6; }
body.public-ticket-page { background:#f5f7f2; color:#10110e; }
.public-ticket-page .ticket-page-header { border-bottom:1px solid #d6dbce; }
.ticket-brand { color:#10110e; font-size:22px; letter-spacing:-1px; }
.ticket-brand span,.ticket-header-note { color:#7b866c; }
.ticket-eyebrow { color:#788866; }
.ticket-page-heading h1 { text-transform:uppercase; font-size:clamp(32px,4vw,58px); max-width:760px; }
.ticket-page-heading p { color:#7d8a6d; }
.ticket-status { background:#eaffb0; color:#5c701e; border-color:#d4e997; }
.ticket-status.voided { background:#fae4e4; color:#a54646; border-color:#efc9c9; }
.ticket-design-section { background:#10110e; border:1px solid #10110e; border-radius:24px; }
.ticket-design-top { color:#b0bc9b; letter-spacing:1px; text-transform:uppercase; }
.ticket-link-button { color:#d8ff36; }
.ticket-design-stage { background:#10110e; color:#b5c39b; padding:8px 28px 28px; }
#fullOfficialCanvas { box-shadow:none; border-radius:5px; }
.ticket-design-caption { background:#1a1f13; border-color:#303725; color:#a5b48d; }
.ticket-info-card { background:#d8ff36; border:1px solid #cce82e; border-radius:20px; }
.ticket-info-card .ticket-eyebrow { color:#6b781e; }
.ticket-info-card h2 { font-family:var(--brand-display); font-size:34px; line-height:1.15; text-transform:uppercase; color:#10110e; margin:12px 0 26px; }
.ticket-details dt { color:#6d7a2d; }
.ticket-details dd { color:#26300a; font-weight:500; }
.ticket-code { background:#cbed32; border-color:#96ad27; color:#4a5a15; }
.ticket-code strong { color:#10110e; }
.public-ticket-page .ticket-actions .btn-primary { background:#10110e; color:#d8ff36; border-color:#10110e; }
.public-ticket-page .ticket-actions .btn-primary:hover { background:#303823; color:#d8ff36; }
.public-ticket-page .ticket-actions .btn-secondary { background:transparent; border-color:#9fb52b; color:#415113; }
.ticket-offline-note,.ticket-qr-details,.ticket-qr-details p { color:#6d7d25; }
.ticket-qr-details { border-color:#b4cc36; }
.ticket-page-footer { color:#859271; }
.ticket-page-footer strong { color:#56653e; }
.ticket-state { background:#fff; border-color:#d8dfcb; }
.ticket-state h1 { font-family:var(--brand-display); }
.ticket-state p { color:#7c8a69; }
.ticket-loader { border-color:#edf4db; border-top-color:#90a446; }
.ticket-expanded { background:#10110e; border-color:#383f2a; }
.ticket-close { color:#d8ff36; }
.ticket-message { background:#10110e; color:#d8ff36; }
@media(max-width:760px) { .ticket-page-heading h1 { font-size:34px; } .ticket-info-card h2 { font-size:30px; } .ticket-design-stage { padding:6px 14px 18px; } }

.public-ticket-page .ticket-actions .btn-primary:disabled { background:#afc631; color:#69781c; border-color:#afc631; cursor:not-allowed; }
.fs-shell .studio-recovery { background:#f3ffcf; border-color:#d9e9a8; }
.fs-shell .studio-recovery button { color:#617a21; }
.fs-canvas-top .studio-zoom-controls { border-color:#dce3d0; }
.ticket-status-notice { color:#7e6a39; background:#fbf7e8; border-color:#e5dcb9; }

/* Issued tickets: restrained card list, one primary action per row. */
.workspace-page .issued-section { padding:26px; overflow:visible; }
.issued-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:22px; }
.issued-heading h2 { font-size:21px; letter-spacing:-.6px; margin:7px 0; font-weight:600; }
.issued-heading p { font-size:11px; color:#83906d; }
.issued-bulk-actions { display:flex; align-items:center; gap:8px; }
.issued-filters { display:flex; gap:12px; margin-bottom:18px; padding-bottom:20px; border-bottom:1px solid #e6eadf; }
.issued-search { display:flex; align-items:center; gap:10px; flex:1; background:#f8faf5; border:1px solid #dfe5d5; border-radius:9px; padding:0 14px; color:#8e9b77; }
.workspace-page .issued-search input { border:0 !important; background:transparent; padding:12px 0; font-size:12px; width:100%; min-width:0; }
.issued-filter-status { min-width:180px; display:flex; align-items:center; }
.issued-ticket-list { display:grid; gap:10px; }
.issued-ticket-list[aria-busy=true] { cursor:progress; }
.issued-ticket-card { display:flex; align-items:center; gap:16px; padding:18px; border:1px solid #e4e9dc; border-radius:12px; background:#fff; transition:border-color .15s; }
.issued-ticket-card:hover { border-color:#c4d29f; }
.issued-avatar { display:grid; place-items:center; flex-shrink:0; width:42px; height:42px; border-radius:10px; background:#f0f5e5; color:#839761; font-size:12px; font-weight:600; }
.issued-person { flex:1; min-width:0; }
.issued-person h3 { font-size:14px; font-weight:600; color:#354029; margin-bottom:6px; overflow-wrap:anywhere; }
.issued-ticket-meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.issued-code { color:#899575; font-family:var(--font-mono); font-size:10px; }
.issued-type { color:#72835b; font-size:10px; padding-left:10px; border-left:1px solid #dde5d0; }
.issued-person p { font-size:10px; color:#99a386; margin-top:5px; overflow-wrap:anywhere; }
.issued-state { display:grid; gap:6px; min-width:150px; }
.issued-status { font-size:10px; font-weight:500; width:fit-content; color:#738751; background:#f5f8ee; border:1px solid #e3ebd4; padding:5px 9px; border-radius:6px; }
.issued-status.ready { background:#f3ffd6; border-color:#e2efbb; color:#637f2e; }
.issued-status.used { background:#eff3e7; color:#7e8c69; border-color:#e0e7d4; }
.issued-status.voided { color:#8d9085; background:#f4f4f1; border-color:#e8e8e1; text-decoration:line-through; }
.issued-time { font-size:10px; color:#9aa589; }
.issued-actions { display:flex; align-items:center; gap:8px; }
.issued-download { display:flex; gap:7px; align-items:center; min-height:36px; padding:8px 11px; border:1px solid #dce5cc; border-radius:7px; background:#f8fbf2; color:#647b42; cursor:pointer; font-size:11px; }
.issued-download:hover { background:#edffc1; border-color:#d1e99f; }
.issued-menu { position:relative; }
.issued-menu>summary { list-style:none; cursor:pointer; width:34px; height:36px; display:flex; align-items:center; justify-content:center; color:#84966a; border:1px solid #e3e9da; border-radius:7px; background:#fff; }
.issued-menu>summary::-webkit-details-marker { display:none; }
.issued-menu>summary:hover,.issued-menu[open]>summary { background:#f0f6e5; }
.issued-menu .issued-manage-summary { width:auto; gap:12px; padding:8px 12px; font-size:11px; }
.issued-menu-content { position:absolute; right:0; top:calc(100% + 6px); width:235px; z-index:30; padding:7px; background:#fff; border:1px solid #dce5ce; border-radius:10px; box-shadow:0 8px 25px #1d311312; }
.issued-menu-content>span { display:block; padding:8px 9px; font-size:9px; color:#9aa78a; }
.issued-menu-content button { display:block; text-align:left; width:100%; border:0; background:none; color:#62774b; padding:9px; border-radius:5px; font-size:11px; cursor:pointer; }
.issued-menu-content button:hover,.issued-menu-content button:focus-visible { background:#f1f8e4; }
.issued-menu-content hr { border:0; height:1px; background:#ecf0e5; margin:5px 7px; }
.issued-empty { text-align:center; padding:40px 20px; border:1px dashed #dfe7d2; border-radius:12px; background:#fcfdf9; }
.issued-empty-symbol { display:block; color:#b0bf95; font-size:28px; }
.issued-empty h3 { font-size:15px; font-weight:500; color:#718458; margin:8px 0; }
.issued-empty p { font-size:11px; line-height:1.8; color:#9caa8a; }
@media(max-width:900px) { .issued-heading { align-items:flex-start; flex-direction:column; } .issued-state { min-width:130px; } .issued-ticket-card { gap:12px; padding:15px; } }
@media(max-width:620px) { .workspace-page .issued-section { padding:18px; } .issued-filters { flex-direction:column; } .issued-ticket-card { flex-wrap:wrap; } .issued-person { flex-basis:calc(100% - 64px); } .issued-state { margin-left:54px; flex:1; min-width:0; } .issued-avatar { align-self:flex-start; } .issued-actions { margin-left:auto; } .issued-download { font-size:10px; padding:8px; } .issued-bulk-actions { flex-wrap:wrap; } }

/* Shared lists throughout the workspace and event dialogs. */
.system-card-list { display:grid; gap:12px; }
.system-card { display:flex; align-items:center; gap:22px; padding:20px; border:1px solid #e4e9dc; border-radius:14px; background:#fff; transition:border-color .15s; }
.system-card:hover { border-color:#c4d29f; }
.system-card-main { flex:1; min-width:0; }
.system-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.system-card-heading h3 { margin:0; font-size:15px; font-weight:600; color:#354029; overflow-wrap:anywhere; }
.system-card-heading p { margin:5px 0 0; font-size:11px; color:#899575; overflow-wrap:anywhere; }
.system-facts { display:flex; flex-wrap:wrap; gap:14px 32px; margin:16px 0 0; }
.system-facts div { min-width:90px; max-width:100%; }
.system-facts dt { margin-bottom:4px; font-size:10px; color:#919d7e; }
.system-facts dd { margin:0; font-size:12px; color:#566747; overflow-wrap:anywhere; }
.system-template-label { display:block; max-width:430px; margin-top:16px; font-size:11px; color:#899575; }
.system-template-label select,.system-template-label .ui-select { margin-top:7px; }
.issued-menu-content a { display:block; padding:9px; font-size:11px; color:#62774b; text-decoration:none; border-radius:5px; }
.issued-menu-content a:hover { background:#f1f8e4; }
.system-card .issued-download { white-space:nowrap; }
.system-card button:disabled { opacity:.55; cursor:wait; }
@media(max-width:620px) {
 .system-card { flex-direction:column; align-items:stretch; gap:16px; padding:16px; }
 .system-card>.issued-actions { justify-content:flex-end; }
 .system-card-heading { flex-wrap:wrap; }
 .system-facts { gap:14px 24px; }
}

/* Guided event creation: one next step with optional settings tucked away. */
.creation-start { display:flex; align-items:center; justify-content:space-between; gap:28px; border:1px solid #d5e0bb; background:#f2f9e3; border-radius:20px; padding:28px; margin-bottom:24px; }
.creation-start h2 { font-size:22px; letter-spacing:-.6px; margin:0 0 22px; }
.creation-start ol { display:flex; list-style:none; padding:0; margin:0; gap:26px; }
.creation-start li { display:flex; gap:10px; }
.creation-start li>span { color:#8b9a6b; font-size:11px; padding-top:3px; }
.creation-start strong { font-size:12px; font-weight:600; }
.creation-start p { color:#83906d; font-size:11px; margin-top:6px; line-height:1.6; }
.creation-start>.btn { flex-shrink:0; }
.creation-overview { margin-bottom:24px; }
.creation-overview>summary,.sidebar-secondary>summary { cursor:pointer; color:#7b8865; font-size:12px; padding:12px 0; }
.creation-overview[open]>summary { margin-bottom:12px; }
.sidebar-secondary { border-top:1px solid #d8dcd0; margin-top:16px; }
.sidebar-secondary>summary { padding:16px 12px; }
.sidebar-secondary-links { display:flex; flex-direction:column; gap:8px; }
.creation-flow { display:flex; align-items:center; justify-content:space-between; gap:20px; border:1px solid #dfe6d2; border-radius:12px; padding:14px 18px; background:#fff; margin-bottom:24px; }
.creation-flow-label { min-width:0; }
.creation-flow-label>span { display:block; font-size:9px; color:#93a079; letter-spacing:1px; margin-bottom:5px; }
.creation-flow-label strong { display:block; font-size:12px; font-weight:500; color:#53663b; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.creation-flow ol { display:flex; gap:12px; margin:0; padding:0; list-style:none; flex-shrink:0; }
.creation-flow button { display:flex; align-items:center; gap:8px; background:none; border:0; border-radius:8px; padding:7px; font:inherit; font-size:11px; color:#94a17e; cursor:pointer; }
.creation-flow button>span { display:grid; place-items:center; height:24px; width:24px; border:1px solid #dfe6d1; border-radius:50%; font-size:10px; }
.creation-flow button.is-current { color:#485c2c; background:#f4f9e9; }
.creation-flow button.is-current>span { background:#d8ff36; color:#10110e; border-color:#c6e82e; }
.creation-flow button.is-complete>span { background:#f0f6e3; color:#637b3e; }
.creation-flow button:disabled { opacity:.45; cursor:default; }
.creation-options-body { padding-top:16px; }
.issue-options>summary>span { color:#98a584; font-size:10px; font-weight:400; margin-left:6px; }
.studio-mode .creation-flow { margin:0; border-radius:0; border:0; border-bottom:1px solid #dfe6d2; min-height:74px; padding:12px 20px; }
.studio-mode .fs-shell { height:calc(100dvh - 74px); min-height:500px; }
@media(max-width:1050px) { .creation-start { align-items:stretch; flex-direction:column; } .creation-start>.btn { align-self:flex-start; } }
@media(max-width:700px) {
 .creation-start { padding:22px; } .creation-start ol { flex-direction:column; gap:16px; }
 .creation-flow { flex-direction:column; align-items:stretch; gap:12px; padding:12px; }
 .creation-flow ol { justify-content:space-between; gap:2px; }
 .creation-flow button { font-size:10px; gap:5px; padding:5px 2px; }
 .studio-mode .creation-flow { min-height:110px; } .studio-mode .fs-shell { height:calc(100dvh - 110px); }
 .sidebar-secondary { margin:0; border-top:0; position:relative; }
 .sidebar-secondary-links { padding:10px; }
}

.creation-studio-hint { font-size:11px; color:#8a9875; line-height:1.7; margin:12px 0; }
.creation-studio-context { margin-bottom:16px; }
.creation-studio-context>summary { font-size:11px; color:#7d8c66; cursor:pointer; padding:7px 0; }
.creation-studio-context[open]>summary { margin-bottom:12px; }

@media(max-width:760px) {
 .studio-mode .fs-shell { height:auto; min-height:calc(100dvh - 110px); }
 #pane_editor .fs-topbar { flex-wrap:wrap; height:auto; min-height:56px; padding:8px 10px; }
 .fs-top-actions { margin-left:auto; flex-wrap:wrap; }
}

/* Capacitor keeps controls clear of display cutouts and the system gesture area. */
.native-app { padding-top:env(safe-area-inset-top); padding-bottom:env(safe-area-inset-bottom); }
.native-app>header { padding-left:env(safe-area-inset-left); padding-right:env(safe-area-inset-right); }
.native-app .fs-shell { padding-bottom:env(safe-area-inset-bottom); }
.native-app .btn,.native-app .issued-download,.native-app .nav-tab { min-height:44px; }
.native-app input,.native-app textarea { font-size:16px; }

/* Mobile workspace: one primary action per screen, always within reach. */
.mobile-dock,.studio-mobile-controls,.studio-mobile-backdrop { display:none; }
.mobile-sheet { width:min(480px,calc(100% - 24px)); margin:auto auto 12px; border:1px solid #dce2d2; border-radius:28px; padding:24px; background:#f5f7f2; color:#10110e; box-shadow:0 16px 60px #10110e22; }
.mobile-sheet::backdrop { background:#10110e66; }
.mobile-sheet[open] { animation:ticket-sheet-in .22s ease-out; }
.mobile-sheet-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.mobile-sheet h2 { margin:6px 0; font-size:22px; }
.mobile-sheet>button { display:flex; align-items:center; justify-content:space-between; width:100%; border:0; border-top:1px solid #dce2d2; padding:18px 4px; background:none; color:inherit; text-align:left; font:600 15px var(--font-sans); cursor:pointer; }
.mobile-sheet>button[hidden] { display:none; }
.mobile-sheet>button span { font-size:11px; font-weight:400; color:#69725e; }
.tab-pane:not(.hidden) { animation:ticket-view-in .18s ease-out; }
.btn,.mobile-dock button { transition:background .15s ease,transform .15s ease; }
.btn:active,.mobile-dock button:active { transform:scale(.97); }
@keyframes ticket-view-in { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
@keyframes ticket-sheet-in { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:translateY(0); } }
@keyframes ticket-result-in { from { opacity:0; transform:scale(.98); } to { opacity:1; transform:scale(1); } }
.access-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin:8px 0 24px; }
.access-heading h1 { font-size:clamp(24px,3vw,36px); margin:8px 0; letter-spacing:-1px; }
.access-heading p { color:#69725e; margin:0; font-size:14px; }
.access-event { width:min(320px,100%); flex-shrink:0; }
.access-event label { display:block; margin-bottom:8px; font-size:12px; font-weight:600; }
.access-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr); gap:20px; align-items:start; }
.access-camera { padding:20px; position:relative; }
.access-camera-heading { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:16px; font-size:11px; }
.access-camera-heading>button { margin-left:auto; }
.access-viewfinder { aspect-ratio:1; max-height:460px; background:#10110e; color:#d8ff36; border-radius:22px; overflow:hidden; position:relative; margin-bottom:16px; }
#pane_scanner #reader { width:100%; height:100%; border:0 !important; }
#pane_scanner #reader video { width:100% !important; height:100% !important; object-fit:cover; border-radius:22px; }
#pane_scanner #camPlaceholder { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; padding:24px; text-align:center; }
#pane_scanner #camPlaceholder.hidden { display:none; }
#pane_scanner #camPlaceholder strong { color:#f5f7f2; font-size:18px; }
#pane_scanner #camPlaceholder p { color:#a8b29c; font-size:12px; margin:0; }
.access-settings { display:grid; gap:16px; }
.access-counters { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:18px 0; }
.access-counters div { display:flex; flex-direction:column; gap:6px; }
.access-counters strong { font-size:28px; letter-spacing:-1px; }
.access-counters span { font-size:10px; color:#69725e; }
.access-settings .text-muted { font-size:12px; line-height:1.6; }
.access-options>summary,.access-team>summary { cursor:pointer; font-size:14px; font-weight:600; min-height:24px; }
.access-team { margin-top:20px; }
.access-team>summary span { font-size:12px; font-weight:400; color:#69725e; margin-left:12px; }
.access-options-body { display:grid; gap:14px; padding-top:20px; }
.access-options-body label { font-size:12px; }
.access-audio { display:flex; align-items:center; gap:10px; min-height:44px; }
.access-audio input { width:18px; height:18px; accent-color:#10110e; }
#pane_scanner .result-card { position:absolute; inset:70px 20px auto; z-index:5; padding:24px; background:#f5f7f2; border:1px solid #dce2d2; border-radius:22px; box-shadow:0 12px 40px #10110e33; color:#10110e; animation:ticket-result-in .18s ease-out; }
#pane_scanner .result-card.valid { background:#d8ff36; border-color:#d8ff36; }
#pane_scanner .result-card.duplicate { background:#f5f7f2; border-color:#10110e; }
#pane_scanner .result-card.invalid { background:#fff; border-color:#b54835; }
#pane_scanner .result-card.hidden { display:none; }
#pane_scanner #resStatus { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:1px; }
#pane_scanner #resHolder { font-size:28px; margin:20px 0 10px; overflow-wrap:anywhere; }
#pane_scanner #resDetails { font-size:13px; line-height:1.6; overflow-wrap:anywhere; margin-bottom:20px; }
#pane_scanner #resetActionBox { margin-bottom:12px; }
@media(max-width:800px) {
 .workspace-page #appContent { display:block; padding-bottom:calc(94px + env(safe-area-inset-bottom)); }
 .workspace-page .nav-tabs-wrapper { display:none; }
 .mobile-dock { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); position:fixed; z-index:90; left:max(12px,env(safe-area-inset-left)); right:max(12px,env(safe-area-inset-right)); bottom:calc(10px + env(safe-area-inset-bottom)); max-width:540px; margin:0 auto; padding:6px; background:#fff; border:1px solid #dce2d2; border-radius:24px; box-shadow:0 6px 30px #10110e14; }
 .mobile-dock button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-height:58px; padding:6px 2px; border:0; border-radius:18px; background:transparent; color:#69725e; font:500 10px var(--font-sans); cursor:pointer; }
 .mobile-dock svg { width:22px; height:22px; }
 .mobile-dock button.active { background:#eef2e7; color:#10110e; }
 .mobile-dock button[data-mobile-tab=scanner] { background:#d8ff36; color:#10110e; }
 .mobile-dock button[data-mobile-tab=scanner].active { background:#10110e; color:#d8ff36; }
 .mobile-dock button:focus-visible { outline:2px solid #10110e; outline-offset:2px; }
 #toastContainer { bottom:calc(96px + env(safe-area-inset-bottom)) !important; right:12px !important; left:12px; }
 .access-heading { flex-direction:column; align-items:stretch; gap:18px; }
 .access-event { width:100%; }
 .access-layout { grid-template-columns:1fr; }
 .access-camera { padding:14px; }
 #pane_scanner .result-card { inset:68px 14px auto; }
 .access-team>summary span { display:block; margin:8px 0 0; }
 .user-profile-chip { max-width:100%; }
 .user-profile-chip>div:not(.avatar-circle),.user-profile-chip>.badge { display:none; }
}
@media(max-width:760px) {
 .studio-mode #appContent { padding-bottom:calc(90px + env(safe-area-inset-bottom)); }
 .studio-mode .creation-flow { min-height:0; padding:8px 12px; }
 .studio-mode .creation-flow>div { display:none; }
 .studio-mode .fs-shell { height:calc(100dvh - 146px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); min-height:350px; padding-bottom:0; }
 #pane_editor .fs-topbar { flex-wrap:nowrap; padding:8px; gap:8px; }
 .fs-top-actions { flex-wrap:nowrap; gap:3px; }
 .fs-top-actions .fs-separator,.fs-top-actions #studioPreviewToggle,.fs-file .fs-breadcrumb,.fs-file #studioSaveStatus { display:none; }
 .fs-file { flex:1; min-width:0; }
 .fs-file #studioDocumentName { max-width:90px; font-size:11px; }
 #pane_editor .fs-top-actions .fs-publish { font-size:0; min-width:44px; padding:8px; }
 #pane_editor .fs-top-actions .fs-publish::after { content:'Seguir'; font-size:11px; }
 .fs-top-actions .fs-save { padding:8px; font-size:11px; }
 .fs-body { grid-template-columns:minmax(0,1fr); min-height:0; }
 #pane_editor .fs-canvas { min-height:0; height:100%; }
 #pane_editor .fs-left,#pane_editor .fs-right { display:none; }
 .studio-mobile-controls { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 10px; border-bottom:1px solid #dce2d2; background:#fff; }
 .studio-mobile-controls button { border:1px solid #dce2d2; border-radius:12px; padding:10px; min-height:44px; background:#f5f7f2; font:600 11px var(--font-sans); color:#10110e; }
 .studio-mobile-controls button[aria-expanded=true] { background:#d8ff36; border-color:#d8ff36; }
 .studio-mobile-controls span { font-size:9px; color:#69725e; text-align:center; }
 #pane_editor .fs-canvas .studio-artboard-wrapper { padding:20px 12px 85px; min-height:0; }
 #pane_editor .fs-canvas-top { padding:8px 12px; min-height:38px; }
 #pane_editor .fs-dock { bottom:12px; max-width:calc(100% - 20px); }
 #pane_editor .fs-dock .fs-icon,#pane_editor .fs-dock .fs-menu>summary { min-width:38px; min-height:44px; }
 .fs-canvas-hint { display:none; }
 body[data-studio-panel=layers] #pane_editor .fs-left,body[data-studio-panel=properties] #pane_editor .fs-right { display:flex; flex-direction:column; position:fixed; z-index:110; left:8px; right:8px; bottom:calc(94px + env(safe-area-inset-bottom)); max-height:55dvh; width:auto; background:#fff; border:1px solid #dce2d2; border-radius:22px; overflow:auto; box-shadow:0 -8px 40px #10110e22; padding:12px; animation:ticket-sheet-in .2s ease-out; }
 body[data-studio-panel=layers] .studio-mobile-backdrop,body[data-studio-panel=properties] .studio-mobile-backdrop { display:block; position:fixed; inset:0 0 calc(86px + env(safe-area-inset-bottom)); z-index:100; background:#10110e44; border:0; border-radius:0; }
}
@media(prefers-reduced-motion:reduce) {
 .tab-pane:not(.hidden),.mobile-sheet[open],#pane_scanner .result-card,body[data-studio-panel] #pane_editor .fs-left,body[data-studio-panel] #pane_editor .fs-right { animation:none; }
 .btn,.mobile-dock button { transition:none; }
}

@media(max-width:760px) {
 #pane_editor .fs-top-actions .fs-icon,#pane_editor .fs-top-actions .fs-save,#pane_editor .fs-top-actions .fs-publish { min-height:44px; }
 #pane_editor .fs-top-actions .fs-icon { width:32px; }
 #pane_editor .fs-top-actions .fs-separator { display:none; }
}
