:root{color-scheme:light;--surface-base: #f9fafb;--surface-card: #ffffff;--surface-muted: #f3f4f6;--surface-selected: #faf5ff;--text-primary: #111827;--text-secondary: #374151;--text-muted: #6b7280;--text-on-accent: #ffffff;--accent-primary: #9333ea;--accent-primary-hover: #7c3aed;--accent-focus-ring: rgba(147, 51, 234, .2);--accent-subtle: #f3e8ff;--accent-border: #c4b5fd;--accent-indigo: #6a6ff5;--state-success: #059669;--state-success-bg: #059669;--state-danger: #dc2626;--state-danger-bg: #fef2f2;--state-danger-text: #991b1b;--state-danger-border: #fecaca;--state-warning: #d97706;--state-warning-bg: #fffbeb;--state-warning-text: #92400e;--state-warning-border: #fde68a;--border-default: #e5e7eb;--border-input: #d1d5db;--shadow-card: 0 1px 3px 0 rgba(0, 0, 0, .1);--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--bg: var(--surface-base);--bg-elevated: var(--surface-muted);--surface: var(--surface-card);--surface-hover: var(--surface-muted);--border: var(--border-default);--border-strong: var(--border-input);--text: var(--text-primary);--muted: var(--text-muted);--accent: var(--accent-primary);--accent-strong: var(--accent-primary-hover);--focus-ring: var(--accent-focus-ring);--danger: var(--state-danger);--success: var(--state-success);--warn: var(--state-warning);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;background:var(--surface-base);color:var(--text-primary);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--surface-base);color:var(--text-primary)}a{color:var(--accent-primary)}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em}.app{min-height:100dvh;display:flex;flex-direction:column;background:var(--surface-base)}.app__body{flex:1}.page{max-width:440px;margin:0 auto;padding:0 1rem 2rem;width:100%}.page-head{margin-bottom:1rem}.writer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}h1{font-size:1.5rem;margin:0 0 .35rem;color:var(--text-primary)}.muted{color:var(--text-muted);margin:0 0 .75rem}.small{font-size:.875rem}.card{background:var(--surface-card);border-radius:var(--radius-md);box-shadow:var(--shadow-card);border:1px solid var(--border-default);padding:1.5rem;margin-bottom:1rem}.form label{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.form-input,input,.field-input{width:100%;padding:.5rem .75rem;border:1px solid var(--border-input);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-primary);font-size:16px;outline:none;transition:border-color .2s,box-shadow .2s}.form-input:focus,input:focus,.field-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-focus-ring)}input:focus-visible,.field-input:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.form-label,.field-label{display:flex;flex-direction:column;gap:.4rem;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.85rem}.field-input--code{font-size:1.35rem;letter-spacing:.2em;text-align:center;font-weight:600}.field-error{color:var(--state-danger);font-size:.875rem;margin:0 0 .75rem}.field-hint{margin:-.35rem 0 .85rem;font-size:.875rem;color:var(--text-muted);line-height:1.45}.field-input--code::placeholder{color:var(--text-muted);font-weight:400;letter-spacing:normal;font-size:1rem}button{font:inherit;cursor:pointer;border:none;border-radius:var(--radius-sm)}.touch-target{min-height:44px;min-width:44px}.btn-primary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--text-on-accent);font-weight:600;transition:background-color .2s}.btn-primary:hover:not(:disabled):not([aria-disabled=true]){background-color:var(--accent-primary-hover)}.btn-primary:disabled,.btn-primary[aria-disabled=true],.event-tile__cta.is-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.5rem 1rem;background-color:var(--surface-muted);color:#1f2937;font-weight:600;transition:background-color .2s}.btn-secondary:hover:not(:disabled){background-color:#e5e7eb}a.btn-primary,a.btn-secondary{text-decoration:none;text-align:center}.btn-compact{min-height:44px;padding:.5rem .85rem;font-size:.875rem}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border-default);min-height:44px;padding:.5rem 1rem}.btn-block{width:100%;margin-top:.35rem}.status-chip{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:6px;font-size:.7rem;font-weight:600;letter-spacing:.02em;line-height:1.3}.status-chip--accent{background:var(--accent-subtle);color:#7c3aed;border:1px solid var(--accent-border)}.status-chip--neutral{background:var(--surface-muted);color:var(--text-secondary)}.status-chip--success{background:#d1fae5;color:var(--state-success)}.status-chip--warn{background:var(--state-warning-bg);color:var(--state-warning-text)}.status-chip--danger{background:var(--state-danger-bg);color:var(--state-danger-text)}.status-chip--muted{background:var(--surface-muted);color:var(--text-muted);font-weight:500}.direct-links{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.section-title{font-size:1rem;margin:0 0 .65rem}.event-context-card .event-context__name{font-size:1.15rem;font-weight:600;margin:0 0 .35rem}.qr-wrap{width:100%;margin-top:.5rem}.qr-region{width:100%;min-height:260px;border-radius:var(--radius-md);overflow:hidden;background:#111827;border:1px solid var(--border-default)}.qr-region video,.qr-region canvas{width:100%!important;max-width:100%;height:auto!important;min-height:200px;object-fit:cover;border-radius:var(--radius-md);display:block}.error{color:var(--state-danger)}.warn{color:var(--state-warning)}.success-banner{border-left:4px solid var(--state-success);padding-left:.75rem}.success-banner--amber{border-left-color:var(--state-warning)}.error-banner{border-left:4px solid var(--state-danger);padding-left:.75rem}.break-all{word-break:break-all}.mt-1{margin-top:.75rem}.form-error{margin:0 0 .5rem}.session-email strong{font-weight:600;color:var(--text-primary)}.form-alt{margin:.75rem 0 0;text-align:center}.btn-link{background:none;border:none;padding:0;color:var(--accent-primary);text-decoration:underline;cursor:pointer;font:inherit;min-height:44px}.btn-link:hover{color:var(--accent-primary-hover)}.event-list{list-style:none;padding:0;margin:0}.event-card{display:flex;flex-direction:column;gap:.25rem;padding:1rem;margin-bottom:.65rem;border-radius:var(--radius-md);background:var(--surface-card);text-decoration:none;color:inherit;border:2px solid transparent;box-shadow:var(--shadow-card)}.event-card--active{border-color:var(--accent-primary);background:var(--surface-selected)}.event-card__name{font-weight:600}.event-card__slug{font-size:.85rem;color:var(--text-muted)}.event-card__actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.65rem}.event-card__badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}.event-card .badge{display:inline-block;font-size:.7rem;font-weight:600;padding:.15rem .45rem;border-radius:6px;background:var(--accent-subtle);color:#7c3aed}.event-card .badge--off{background:var(--surface-muted);color:var(--text-muted);font-weight:500}.direct-link{font-weight:600}.app-shell__header{margin-bottom:1.25rem}.app-shell__back{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;font-weight:500;text-decoration:none;margin-bottom:.25rem;color:var(--text-muted)}.app-shell__back:hover{color:var(--accent-primary)}.app-shell__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.app-shell__title{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin:0;line-height:1.2;color:var(--text-primary)}.app-shell__subtitle{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.page-intro{color:var(--text-muted);font-size:.9rem;margin:0 0 1.25rem;line-height:1.45}.event-pill{display:inline-block;max-width:100%;padding:.2rem .55rem;border-radius:999px;background:var(--accent-subtle);border:1px solid var(--accent-border);font-size:.8rem;font-weight:600;color:#7c3aed}.session-chip{display:inline-block;padding:.2rem .55rem;border-radius:999px;background:var(--surface-muted);border:1px solid var(--border-default);font-size:.75rem;color:var(--text-muted)}.state-message{color:var(--text-muted);text-align:center;padding:1.5rem 0}.empty-state{text-align:center;padding:2rem 1rem;color:var(--text-muted)}.step-indicator{display:flex;gap:.35rem;list-style:none;padding:0;margin:0 0 1.25rem}.step-indicator__item{flex:1;display:flex;flex-direction:column;align-items:center;gap:.35rem;text-align:center}.step-indicator__dot{width:1.75rem;height:1.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border-default)}.step-indicator__item--current .step-indicator__dot{background:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-primary)}.step-indicator__item--done .step-indicator__dot{background:#d1fae5;color:var(--state-success);border-color:#6ee7b7}.step-indicator__label{font-size:.65rem;color:var(--text-muted);font-weight:500}.step-indicator__item--current .step-indicator__label{color:var(--text-primary)}.flow-card{background:var(--surface-card);border-radius:var(--radius-lg);padding:1rem 1.05rem 1.1rem;margin-bottom:.85rem;border:1px solid var(--border-default);box-shadow:var(--shadow-card)}.flow-card--active{border-color:var(--accent-border);background:var(--surface-selected)}.flow-card--muted{opacity:.65}.flow-card__head{display:flex;align-items:center;gap:.65rem;margin-bottom:.65rem}.flow-card__step{width:1.5rem;height:1.5rem;border-radius:8px;background:var(--surface-muted);border:1px solid var(--border-default);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;flex-shrink:0;color:var(--text-muted)}.flow-card--active .flow-card__step{background:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-primary)}.flow-card__title{font-size:1rem;font-weight:600;margin:0;color:var(--text-primary)}.flow-card__hint{font-size:.875rem;color:var(--text-muted);margin:0 0 .75rem;line-height:1.45}.alert{border-radius:var(--radius-md);padding:.75rem .85rem;margin-bottom:.85rem}.alert__title{font-weight:600;margin:0 0 .25rem}.alert__detail{font-size:.875rem;margin:0;line-height:1.4}.alert--success{background:#ecfdf5;border:1px solid #a7f3d0;border-left:3px solid var(--state-success);color:#065f46}.alert--success .alert__detail{color:#047857}.alert--warn{background:var(--state-warning-bg);border:1px solid var(--state-warning-border);border-left:3px solid var(--state-warning);color:var(--state-warning-text)}.alert--warn .alert__detail{color:var(--state-warning-text)}.alert--error{background:var(--state-danger-bg);border:1px solid var(--state-danger-border);border-left:3px solid var(--state-danger);color:var(--state-danger-text)}.alert--error .alert__detail{color:#b91c1c}.verify-outcome{border-radius:var(--radius-xl);padding:1.5rem 1.25rem;margin-bottom:.85rem;box-shadow:0 10px 15px -3px #0000001a;color:var(--text-on-accent)}.verify-outcome .alert__title{font-size:1.125rem;color:inherit}.verify-outcome .alert__detail{color:#ffffffeb;margin-top:.35rem}.verify-outcome--success{background:var(--state-success-bg)}.verify-outcome--warn{background:var(--state-warning)}.verify-outcome--error{background:var(--state-danger)}.admission-outcome{text-align:center}.admission-outcome__title{font-size:1.35rem;font-weight:700;margin:0;color:inherit}.admission-outcome__detail{font-size:.9rem;margin:.5rem 0 0;color:#ffffffeb;line-height:1.45}.admission-outcome__details{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.25);text-align:left;font-size:.8rem;line-height:1.5;color:#fffffff2}.admission-outcome__label{font-weight:600}.admission-outcome__mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.admission-outcome__window{margin-top:.75rem;font-size:.75rem;padding:.5rem .65rem;border-radius:var(--radius-sm);background:#00000026;color:#fffffff2}.admission-outcome__next{margin-top:1.25rem;width:100%;background:#fff!important;color:#111827!important;border:none!important}.admission-listening{text-align:center;font-weight:600;color:var(--accent-primary);margin:0 0 .75rem}.admission-actions{display:flex;flex-direction:column;gap:.5rem}.badge--accent{background:var(--accent-subtle)}.badge--muted{background:var(--surface-muted);font-weight:500}.brand-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border-default);background:var(--surface-card);position:sticky;top:0;z-index:20}.brand-bar__mark{display:flex;align-items:center;gap:.5rem;min-width:0}.brand-bar__logo{height:1.75rem;width:auto;display:block;object-fit:contain}.brand-bar__tag{font-size:.75rem;font-weight:600;color:var(--text-muted);letter-spacing:.02em;flex-shrink:0}.brand-bar__name{font-size:.95rem;font-weight:600;letter-spacing:-.02em;color:var(--text-primary)}.brand-bar__signout{font:inherit;font-size:.875rem;font-weight:500;color:var(--accent-primary);background:none;border:none;min-height:44px;padding:.35rem .65rem;cursor:pointer;border-radius:var(--radius-sm)}.brand-bar__signout:hover{color:var(--accent-primary-hover);background:var(--accent-subtle)}.events-hero{margin:1.25rem 0 1.5rem}.events-hero__eyebrow{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-primary);margin:0 0 .4rem}.events-hero__title{font-size:1.5rem;font-weight:700;letter-spacing:-.03em;margin:0 0 .5rem;line-height:1.15;color:var(--text-primary)}.events-hero__lead{color:var(--text-muted);font-size:.95rem;margin:0;line-height:1.5;max-width:34ch}.events-hero__lead strong{color:var(--text-primary);font-weight:600}.events-hero__user{margin:.75rem 0 0;font-size:.8rem;color:var(--text-muted)}.events-count{font-size:.8rem;font-weight:500;color:var(--text-muted);margin:0 0 .85rem}.event-tile-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.85rem}.event-tile{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-card)}.event-tile--highlight{border-color:var(--accent-border);background:var(--surface-selected)}.event-tile__header{display:flex;gap:.85rem;align-items:flex-start;margin-bottom:1rem}.event-tile__avatar{width:2.75rem;height:2.75rem;border-radius:var(--radius-md);background:var(--accent-subtle);border:1px solid var(--accent-border);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;color:#7c3aed;flex-shrink:0}.event-tile__meta{flex:1;min-width:0}.event-tile__subtitle{margin:.15rem 0 0;font-size:.8rem;color:var(--text-muted)}.event-tile__tools{display:flex;flex-direction:column;gap:.65rem}.event-tool-card{display:block;text-decoration:none;color:inherit;margin-bottom:0;transition:border-color .15s ease,box-shadow .15s ease}.event-tool-card:hover:not(.event-tool-card--disabled){border-color:var(--accent-border);box-shadow:0 2px 8px #9333ea1f}.event-tool-card--disabled{pointer-events:none;cursor:not-allowed}.event-tool-card__cta{margin-top:.25rem;pointer-events:none}.event-tile__no-access{margin:.5rem 0 0;text-align:center}.event-tile__cta{margin-top:0}.event-tile__title{font-size:1.05rem;font-weight:600;margin:0 0 .2rem;letter-spacing:-.02em;line-height:1.3;color:var(--text-primary)}.event-tile__secondary{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.65rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;color:var(--text-muted);text-decoration:none;border-radius:var(--radius-sm)}.event-tile__secondary:hover{color:var(--accent-primary);background:var(--surface-muted)}.login-screen{min-height:100dvh;background:var(--surface-base)}.login-screen__body{display:flex;align-items:flex-start;justify-content:center;padding-top:1.5rem}.login-card{width:100%;max-width:400px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:1.35rem 1.25rem 1.5rem;box-shadow:var(--shadow-card)}.login-card__eyebrow{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-primary);margin:0 0 .35rem}.login-card__title{font-size:1.5rem;font-weight:700;letter-spacing:-.03em;margin:0 0 .35rem;color:var(--text-primary)}.login-card__lead{color:var(--text-muted);font-size:.9rem;margin:0 0 1.25rem;line-height:1.45}.login-form{display:flex;flex-direction:column}.login-page__brand{margin-bottom:1.5rem}.login-page__eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-primary);margin:0 0 .35rem}.login-page__title{font-size:1.75rem;font-weight:700;margin:0 0 .35rem;letter-spacing:-.02em}.login-page__lead{color:var(--text-muted);margin:0;font-size:.95rem}.skeleton{background:linear-gradient(90deg,var(--surface-muted) 0%,#e5e7eb 50%,var(--surface-muted) 100%);background-size:200% 100%;animation:shimmer 1.2s ease-in-out infinite;border-radius:8px}.skeleton--line{height:.75rem;margin-bottom:.45rem}.skeleton--short{width:55%!important}.skeleton--avatar{width:2.75rem;height:2.75rem;border-radius:var(--radius-md);flex-shrink:0}.skeleton--button{height:3rem;margin-top:.5rem;border-radius:var(--radius-md)}.event-list-skeleton{display:flex;flex-direction:column;gap:.85rem}.event-tile--skeleton{pointer-events:none}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state--card{background:var(--surface-card);border:1px dashed var(--border-input);border-radius:var(--radius-lg);padding:2.5rem 1.5rem;box-shadow:var(--shadow-card)}.empty-state__icon{width:3rem;height:3rem;margin:0 auto 1rem;border-radius:50%;border:2px dashed var(--border-input);display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:var(--text-muted)}.empty-state__title{font-size:1.1rem;margin:0 0 .35rem;color:var(--text-primary)}.empty-state__text{color:var(--text-muted);font-size:.9rem;margin:0;line-height:1.45}.empty-state__text strong{color:var(--text-primary);font-weight:500}
