/* Proticket 2.0 — implementation of the supplied design brief.
   Tokens own the palette. These scoped rules replace accumulated workspace variants.
   !important is restricted to the old workspace's important declarations and hidden. */
.pt-ds-icon{display:inline-block;width:20px;height:20px;flex:0 0 20px;background:currentColor;mask:var(--pt-icon) center/contain no-repeat;vertical-align:middle}
body.pt-design-system{background:var(--pt-paper);color:var(--pt-ink);font-family:var(--pt-font-body);font-size:16px;line-height:1.5}
.pt-design-system :is(.pt-portal,.pt-business-shell,.pt-organiser-shell,.pt-admin,.pt-ticket,.pt-booking,.pt-widget-shell){--pt-focus:var(--pt-forest);color:var(--pt-ink)}
.pt-design-system :is(button,input,select,textarea){font-family:var(--pt-font-body);font-size:16px}
.pt-design-system :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--pt-focus,var(--pt-forest))!important;outline-offset:3px!important;box-shadow:none!important}
.pt-design-system [hidden]{display:none!important}
/* Operate: sober type, tabular figures, no decorative fonts in data. */
.pt-design-system :is(.pt-portal,.pt-admin,.woocommerce,.pt-scanner,.pt-ticket,.pt-booking,.pt-widget-shell) :is(h2,h3,h4,table,label,button,input,select,textarea,.pt-stats strong,.pt-hub-stats strong){font-family:var(--pt-font-body)!important;text-transform:none;letter-spacing:normal;font-style:normal}
.pt-design-system :is(.pt-portal,.pt-admin,.woocommerce,.pt-scanner) h1{font:400 var(--pt-display-s)/1.2 var(--pt-font-display)!important;text-transform:uppercase;letter-spacing:.01em!important}
.pt-design-system :is(.pt-portal,.pt-admin,.woocommerce) h2{font-size:24px!important;line-height:1.25!important;font-weight:700!important;margin:0 0 16px}
.pt-design-system :is(.pt-portal,.pt-admin,.woocommerce) h3{font-size:20px!important;line-height:1.3!important;font-weight:700!important}
.pt-design-system :is(.pt-help,.pt-caption,.pt-work-view>header p,.pt-event-meta,.pt-app-heading>div>p:last-child){font-size:14px;color:var(--pt-muted)!important;line-height:1.6}
.pt-design-system :is(.pt-eyebrow,.hero-kicker){font-size:12px!important;font-weight:700;letter-spacing:.14em;color:var(--pt-ticket-ink)!important}
.pt-design-system :is(.pt-stats,.pt-hub-stats,table,.amount,.pt-sale-summary){font-variant-numeric:tabular-nums}
/* Controls: one 48px pill, explicit primary/secondary/danger semantics. */
.pt-design-system :is(.pt-button,.pt-outline,.pt-secondary,.pt-button-secondary,.pt-admin .button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.pt-portal input[type=submit],.login .button-primary){display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px!important;padding:12px 24px!important;border-radius:var(--pt-radius-pill)!important;line-height:1.4!important;font-family:var(--pt-font-body)!important;font-size:16px!important;font-weight:700!important;text-decoration:none!important;letter-spacing:normal!important;box-shadow:none!important;cursor:pointer;white-space:normal;text-align:center;vertical-align:middle;margin-top:0!important}
.pt-design-system :is(.pt-button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.pt-portal input[type=submit],.login .button-primary){background:var(--pt-forest);border:1px solid var(--pt-forest);color:var(--pt-white)}
.pt-design-system :is(.pt-button,.woocommerce a.button,.woocommerce button.button):hover{background:var(--pt-forest-deep);color:var(--pt-white)}
.pt-design-system :is(.pt-outline,.pt-secondary,.pt-button-secondary,.pt-admin .button:not(.button-primary)){background:transparent!important;border:1px solid var(--pt-line-strong)!important;color:var(--pt-ink)!important}
.pt-design-system :is(.pt-outline,.pt-secondary,.pt-button-secondary,.pt-admin .button):hover{background:var(--pt-sand)!important}
.pt-design-system :is(button,input[type=submit]):disabled{opacity:.55;cursor:not-allowed}
.pt-design-system .pt-actions,.pt-design-system .pt-hub-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px}
.pt-design-system :is(.pt-portal,.pt-admin,.woocommerce,.pt-booking,.pt-widget-shell,.login) :is(input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=hidden]),select,textarea){min-height:48px!important;border:1px solid var(--pt-line-strong)!important;border-radius:8px!important;background:var(--pt-white)!important;color:var(--pt-ink)!important;padding:12px 16px!important;max-width:100%;box-sizing:border-box;box-shadow:none}
.pt-design-system :is(.pt-portal,.pt-admin,.woocommerce,.pt-booking) :is(label,legend){font-size:16px;line-height:1.5;font-weight:600}
.pt-design-system :is(.pt-portal,.pt-admin,.woocommerce) label:has(input[type=checkbox]),.pt-design-system label:has(input[type=radio]){min-height:48px;display:flex;align-items:center;gap:12px}
.pt-design-system input:is([type=checkbox],[type=radio]){accent-color:var(--pt-forest);width:20px;height:20px;flex:0 0 20px;margin:0}
.pt-design-system :is(.pt-portal,.pt-admin) fieldset{border:1px solid var(--pt-line);border-radius:16px;padding:16px;margin:24px 0}
.pt-design-system :is(.pt-portal,.pt-admin) legend{padding:0 8px}
.pt-design-system :is(.pt-portal,.pt-admin) textarea{min-height:112px}
.pt-design-system :is(.pt-field-grid,.pt-field-row){gap:16px!important}
/* Common shell and navigation. */
.pt-design-system :is(.pt-organiser-shell,.pt-business-shell,.pt-hub-shell,.pt-admin){max-width:1320px;padding-top:24px;color:var(--pt-ink)!important}
.pt-design-system :is(.pt-organiser-shell,.pt-business-shell)>.pt-app-heading{min-height:144px!important;max-width:none!important;margin:0!important;padding:24px 0!important;display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--pt-line)}
.pt-design-system .pt-app-heading h1{margin:8px 0!important;max-width:32ch}
.pt-design-system .pt-app-heading p{margin:0}
.pt-design-system :is(.pt-home-nav,.pt-admin-tabs,.pt-hub-tabs,.pt-archive-tabs,.pt-settings-tabs){display:flex;align-items:center;gap:8px!important;padding:16px 0!important;margin:0 0 24px!important;border-bottom:1px solid var(--pt-line)!important;background:transparent!important;box-shadow:none!important;flex-wrap:wrap}
.pt-design-system :is(.pt-home-nav,.pt-admin-tabs,.pt-hub-tabs,.pt-archive-tabs,.pt-settings-tabs)>a,.pt-design-system .pt-home-nav>details>summary{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:12px 16px!important;border:1px solid transparent!important;border-radius:999px!important;background:transparent;color:var(--pt-ink)!important;font-size:14px;font-weight:600;text-decoration:none;line-height:1.5}
.pt-design-system :is(.pt-home-nav,.pt-admin-tabs,.pt-hub-tabs,.pt-archive-tabs,.pt-settings-tabs)>a[aria-current=page],.pt-design-system .pt-home-nav>details[open]>summary{background:var(--pt-forest)!important;color:var(--pt-white)!important}
.pt-design-system :is(.pt-home-nav,.pt-admin-tabs,.pt-hub-tabs,.pt-archive-tabs,.pt-settings-tabs)>a:hover:not([aria-current=page]){background:var(--pt-sand)!important}
.pt-design-system .pt-home-nav>details{position:relative;background:transparent!important;border:0!important;border-radius:0!important;margin:0!important;padding:0!important}
.pt-design-system .pt-home-nav summary{list-style:none;cursor:pointer}
.pt-design-system .pt-home-nav summary::-webkit-details-marker{display:none}
.pt-design-system .pt-home-nav>details>div{z-index:30;background:var(--pt-white);border:1px solid var(--pt-line);border-radius:16px;box-shadow:var(--pt-shadow-pop);padding:8px;min-width:220px}
.pt-design-system .pt-home-nav>details>div a{display:block;padding:12px 16px;min-height:48px;border-radius:8px;font-size:14px}
.pt-design-system .pt-home-nav>details>div a:hover{background:var(--pt-sand)}
.pt-design-system .pt-work-layout{grid-template-columns:220px minmax(0,1fr);gap:24px}
.pt-design-system .pt-work-nav{background:var(--pt-sand)!important;padding:8px!important;border-radius:16px!important;box-shadow:none!important}
.pt-design-system .pt-work-nav a{min-height:48px;padding:12px 16px!important;border-radius:999px!important;font-size:14px;color:var(--pt-ink)!important;box-shadow:none!important}
.pt-design-system .pt-work-nav a[aria-current=page]{background:var(--pt-forest)!important;color:var(--pt-white)!important}
.pt-design-system .pt-work-view>header{padding:0 0 24px!important;margin-bottom:24px!important;border-bottom:1px solid var(--pt-line)}
/* Cards and data: one white/cream surface, no coloured dashboards. */
.pt-design-system :is(.pt-portal-panel,.pt-admin-panel,.pt-admin-card,.pt-archive-editor,.pt-review-card,.pt-discovery-editor,.pt-work-view>section,.pt-work-view>details,.pt-event-row,.pt-hub-event){background:var(--pt-surface)!important;border:1px solid var(--pt-line)!important;border-radius:16px!important;padding:24px!important;box-shadow:none!important;margin-bottom:24px;min-width:0}
.pt-design-system :is(.pt-stats,.pt-hub-stats){display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin:24px 0}
.pt-design-system :is(.pt-stats>div,.pt-hub-stats>article){background:var(--pt-white)!important;border:1px solid var(--pt-line);border-radius:16px;padding:24px!important;color:var(--pt-ink)!important}
.pt-design-system :is(.pt-stats strong,.pt-hub-stats strong){font:700 32px/1.25 var(--pt-font-body)!important;letter-spacing:normal!important;margin-top:8px}
.pt-design-system :is(.pt-stats span,.pt-hub-stats span){font-size:14px;color:var(--pt-muted)}
.pt-design-system :is(.pt-message,.pt-notice,.pt-readiness,.pt-context,.pt-hub-next){background:var(--pt-sand);color:var(--pt-ink);border:1px solid var(--pt-line)!important;border-radius:16px!important;border-left-width:1px!important;padding:16px 24px;margin:24px 0;box-shadow:none!important}
.pt-design-system :is(.pt-error,.notice-error){background:var(--pt-danger-bg)!important;color:var(--pt-danger-ink)!important}
.pt-design-system :is(.pt-state,.pt-badge){display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:4px 12px;font:600 12px/1.5 var(--pt-font-body)}
.pt-design-system .pt-state-published{background:var(--pt-success-bg);color:var(--pt-success-ink)}
.pt-design-system .pt-state-historical{background:var(--pt-sand);color:var(--pt-muted)}
.pt-design-system .pt-table-wrap{overflow:auto;max-width:100%}
.pt-design-system :is(.pt-portal,.pt-admin) table{width:100%;border-collapse:collapse;background:var(--pt-white);font-size:14px;line-height:1.5}
.pt-design-system :is(.pt-portal,.pt-admin) :is(td,th){padding:16px!important;border-bottom:1px solid var(--pt-line)!important;vertical-align:top;color:var(--pt-ink)}
.pt-design-system :is(.pt-portal,.pt-admin) th{background:var(--pt-sand);font-weight:700}
.pt-design-system :is(.pt-portal,.pt-admin) table.striped>tbody>:nth-child(odd){background:var(--pt-white)}
.pt-design-system .pt-portal-list li{padding:16px 0;border-color:var(--pt-line)}
.pt-design-system .pt-portal-list:empty:after{content:'Nothing to show yet.';display:block;padding:16px;color:var(--pt-muted);font-size:14px}
/* Guided listing setup: shared steps, visible save state, compact context. */
.pt-design-system .pt-wizard{padding:24px!important;border:1px solid var(--pt-line);border-radius:16px!important;background:var(--pt-surface)!important}
.pt-design-system .pt-steps{gap:8px!important;margin:24px 0!important;border:0!important;overflow:auto}
.pt-design-system .pt-steps>button{border:0!important;border-bottom:3px solid var(--pt-line)!important;border-radius:0!important;background:transparent!important;color:var(--pt-muted)!important;min-height:56px;font-size:14px!important;box-shadow:none!important;padding:12px 16px!important}
.pt-design-system .pt-steps>button[aria-current=step],.pt-design-system .pt-steps>button[aria-selected=true],.pt-design-system .pt-steps>button.is-active{color:var(--pt-forest)!important;border-bottom-color:var(--pt-forest)!important;font-weight:700!important}
.pt-design-system .pt-wizard-step{padding:24px 0!important;max-width:800px;margin:auto}
.pt-design-system .pt-wizard-actions{border-top:1px solid var(--pt-line);padding-top:24px!important;gap:16px}
.pt-design-system .pt-start-cards>article,.pt-design-system .pt-start-cards>div{background:var(--pt-surface)!important;border:1px solid var(--pt-line);border-radius:16px!important;padding:24px!important}
.pt-design-system .pt-option-row{border:1px solid var(--pt-line);border-radius:16px;padding:16px;background:var(--pt-white)}
/* Public: real flyers remain the visual centre, display fonts only here. */
.pt-design-system :is(.section-heading h2,.culture-story h2,.host-band h2,.pt-event-detail h1,.pt-discovery h1){font-family:var(--pt-font-display);font-style:normal;font-weight:400;text-transform:uppercase}
.pt-design-system :is(.section-heading em,.culture-story em,.host-band em){font-family:inherit!important;font-style:normal!important;font-weight:inherit!important}
.pt-design-system .culture-copy h1 em,.pt-design-system .culture-sticker{font-family:var(--pt-font-expression);font-style:normal}
.pt-design-system .culture-story{background:var(--pt-sand);color:var(--pt-ink)}
.pt-design-system .host-band{background:var(--pt-forest-deep);color:var(--pt-paper)}
.pt-design-system .site-preview{font-size:12px;background:var(--pt-sand);color:var(--pt-muted)}
.pt-design-system .site-header{border-color:var(--pt-line)}
.pt-design-system :is(.archive-image,.pt-history-card,.pt-session-card,.pt-event-card){border-radius:16px;box-shadow:none}
.pt-design-system :is(.pt-history-card img,.pt-event-art img){object-fit:contain}
/* Ticket, checkout, embeds and door all consume the same component tokens. */
.pt-design-system .pt-ticket{background:var(--pt-white);border:1px solid var(--pt-line);border-radius:16px;color:var(--pt-ink);max-width:680px;padding:24px}
.pt-design-system :is(.pt-ticket-code,.pt-mono){font-family:var(--pt-font-mono);font-size:14px}
.pt-design-system :is(.woocommerce form.checkout,.woocommerce form.login,.woocommerce form.register,.woocommerce-MyAccount-content){background:var(--pt-surface);border:1px solid var(--pt-line);border-radius:16px;padding:24px}
.pt-design-system .woocommerce :is(.shop_table,.woocommerce-order-details){font-family:var(--pt-font-body);font-variant-numeric:tabular-nums;border-radius:16px}
.pt-design-system .woocommerce-MyAccount-navigation a{display:block;min-height:48px;padding:12px 16px;border-radius:999px}
.pt-design-system .woocommerce-MyAccount-navigation .is-active a{background:var(--pt-forest);color:var(--pt-white)}
.pt-design-system .pt-seat{min-width:48px;min-height:48px;border-radius:8px}
.pt-design-system .pt-scanner{background:var(--pt-forest-deep)!important;color:var(--pt-paper)!important;--pt-focus:var(--pt-lime);border-radius:16px;padding:24px!important;max-width:680px;margin:24px auto}
.pt-design-system .pt-scanner :is(h1,h2,label,p,.pt-eyebrow,.pt-back,.pt-caption){color:var(--pt-paper)!important}
.pt-design-system .pt-scanner .pt-button{background:var(--pt-lime);color:var(--pt-forest-deep);border-color:var(--pt-lime)}
.pt-design-system .pt-scanner .pt-button-secondary{background:transparent!important;color:var(--pt-paper)!important;border-color:var(--pt-paper)!important}
.pt-design-system .pt-scanner :is(input,select){background:var(--pt-white);color:var(--pt-ink);min-height:48px;border-radius:8px;padding:12px 16px;font-size:16px}
.pt-design-system .pt-scan-result{border-radius:16px;padding:24px;margin:24px 0;font:700 24px/1.35 var(--pt-font-body);background:var(--pt-sand);color:var(--pt-ink)}
.pt-design-system .pt-scan-result[data-result=valid],.pt-design-system .pt-scan-result[data-result=admitted]{background:var(--pt-success-bg);color:var(--pt-success-ink)}
.pt-design-system .pt-scan-result[data-result=error]{background:var(--pt-danger-bg);color:var(--pt-danger-ink)}
@media(max-width:700px){
 .pt-design-system :is(.pt-organiser-shell,.pt-business-shell)>.pt-app-heading{min-height:0!important;align-items:flex-start;flex-direction:column;padding:24px 0!important;gap:16px}
 .pt-design-system .pt-app-heading h1{font-size:28px!important}
 .pt-design-system :is(.pt-hub-tabs,.pt-admin-tabs,.pt-archive-tabs,.pt-settings-tabs){flex-wrap:nowrap!important;overflow:auto;max-width:100%;scrollbar-width:thin}
 .pt-design-system :is(.pt-hub-tabs,.pt-admin-tabs,.pt-archive-tabs,.pt-settings-tabs)>a{flex-shrink:0;white-space:nowrap}
 .pt-design-system .pt-home-nav{gap:4px!important;position:relative}
 .pt-design-system .pt-home-nav>a,.pt-design-system .pt-home-nav>details>summary{padding:12px!important}
 .pt-design-system .pt-home-nav>details>div{max-width:calc(100vw - 48px)}
 .pt-design-system :is(.pt-portal-panel,.pt-admin-panel,.pt-admin-card,.pt-archive-editor,.pt-review-card,.pt-discovery-editor,.pt-work-view>section,.pt-event-row,.pt-wizard){padding:16px!important}
 .pt-design-system .pt-work-layout{display:block}.pt-design-system .pt-work-nav{margin-bottom:24px}
 .pt-design-system :is(.pt-stats,.pt-hub-stats){grid-template-columns:repeat(2,minmax(0,1fr))}
 .pt-design-system :is(.pt-stats>div,.pt-hub-stats>article){padding:16px!important}
 .pt-design-system .pt-ds-responsive thead{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
 .pt-design-system .pt-ds-responsive,.pt-design-system .pt-ds-responsive tbody,.pt-design-system .pt-ds-responsive tr,.pt-design-system .pt-ds-responsive td{display:block;width:100%}
 .pt-design-system .pt-ds-responsive tr{border:1px solid var(--pt-line);border-radius:16px;margin-bottom:16px;padding:8px}
 .pt-design-system .pt-ds-responsive td{padding:8px!important;border:0!important;overflow-wrap:anywhere}
 .pt-design-system .pt-ds-responsive td::before{content:attr(data-column);display:block;font-weight:700;font-size:12px;color:var(--pt-muted);margin-bottom:4px}
 .pt-design-system .pt-ds-responsive td:empty{display:none}
 .pt-design-system .pt-scanner{margin:16px 0;padding:16px!important}
 .pt-design-system .pt-scanner .pt-actions{display:grid;grid-template-columns:1fr 1fr}
}
@media(prefers-reduced-motion:reduce){.pt-design-system *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.pt-design-system .pt-ticket{border:0;box-shadow:none}.pt-design-system .pt-ds-icon{display:none}}

.pt-design-system .pt-scan-result:is([data-result=cancelled],[data-result=already_used],[data-result=not_found],[data-result=expired]){background:var(--pt-danger-bg);color:var(--pt-danger-ink)}
.pt-design-system .pt-scan-result:is([data-result=review_required],[data-result=payment_review],[data-result=physical_not_activated]){background:var(--pt-warning-bg);color:var(--pt-warning-ink)}

.pt-design-system .pt-business-shell:has(.pt-hub-tabs) .pt-work-layout{display:block}
.pt-design-system .pt-business-shell:has(.pt-hub-tabs) .pt-work-nav,.pt-design-system .pt-business-shell:has(.pt-hub-tabs) .pt-work-actions{display:none}
.pt-design-system .pt-hub-tabs{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:thin}
.pt-design-system .pt-hub-tabs>a{flex-shrink:0;white-space:nowrap}

/* The panel title is provided by the persistent workspace view heading. */
.pt-design-system .pt-work-view > .pt-portal-panel > h2:first-child{display:none}
body.pt-design-system .pt-scanner.pt-scanner .pt-button{background:var(--pt-lime)!important;color:var(--pt-forest-deep)!important;border:1px solid var(--pt-lime)!important}
body.pt-design-system .pt-scanner.pt-scanner .pt-button-secondary{background:transparent!important;color:var(--pt-paper)!important;border-color:var(--pt-paper)!important}
body.pt-design-system .pt-scanner.pt-scanner :is(.pt-caption,.pt-eyebrow){color:var(--pt-paper)!important}
body.pt-design-system .pt-admin .pt-admin-header .pt-eyebrow{color:var(--pt-lime)!important}
body.pt-design-system .pt-admin .pt-admin-header .pt-button{background:var(--pt-lime)!important;color:var(--pt-forest-deep)!important}
body.pt-design-system .pt-steps>button[aria-current=step]{background:var(--pt-surface)!important;color:var(--pt-forest-deep)!important;border-bottom-color:var(--pt-forest)!important}
