:root { color-scheme: light; --ink:#111827; --muted:#667085; --line:#e5e7eb; --surface:#fff; --canvas:#f8fafc; --red:#c52222; --orange:#c4320a; --green:#047857; --blue:#1473e6; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
* { box-sizing:border-box; }
html { min-height:100%; background:var(--canvas); color:var(--ink); }
body { min-height:100vh; margin:0; background:var(--canvas); }
.navigation-open { overflow:hidden; }
a { color:inherit; }
button, input, textarea, select { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
.auth-page { min-height:100vh; display:grid; place-items:center; padding:48px 20px 96px; }
.auth-stack { width:min(100%, 470px); display:grid; gap:28px; }
.wordmark { justify-self:center; text-decoration:none; font-size:31px; line-height:1; font-weight:900; letter-spacing:-1.6px; background:linear-gradient(90deg,#a91d22,#ff7611); color:transparent; background-clip:text; -webkit-background-clip:text; }
.auth-card, .state-card { width:100%; background:var(--surface); border:1px solid #e7e9ed; border-radius:16px; box-shadow:0 1px 3px rgba(15,23,42,.08); padding:40px; }
.auth-card h1, .auth-card h2, .state-card h1 { margin:0 0 30px; text-align:center; font-size:25px; line-height:1.25; }
.auth-card h2 { font-size:20px; margin-bottom:18px; }
.auth-card p { color:var(--muted); line-height:1.55; }
.auth-choice { display:grid; gap:14px; }.auth-choice [hidden] { display:none; }.auth-capability-state { min-height:82px; display:grid; justify-items:center; align-content:center; gap:9px; color:var(--muted); font-size:14px; line-height:1.45; text-align:center; }.auth-capability-state .spinner { width:30px; height:30px; border-width:5px; }.auth-capability-state .button { margin-top:2px; }
.auth-choice + .auth-choice { margin-top:26px; }
.divider { display:flex; align-items:center; gap:18px; margin:32px 0; color:#667085; font-size:12px; font-weight:800; }
.divider::before, .divider::after { content:""; height:1px; flex:1; background:var(--line); }
.button { min-height:48px; border:0; border-radius:9px; padding:0 22px; display:inline-flex; align-items:center; justify-content:center; gap:10px; text-decoration:none; font-weight:700; cursor:pointer; transition:transform .15s, box-shadow .15s, opacity .15s; }
.button:hover { transform:translateY(-1px); box-shadow:0 5px 15px rgba(15,23,42,.12); }
.button:disabled { cursor:not-allowed; opacity:.62; transform:none; box-shadow:none; }
.button.primary { color:#fff; background:linear-gradient(100deg,var(--red),var(--orange)); }
.button.secondary { color:#354052; background:#fff; border:1px solid #8a94a4; }
.button.dark { color:#fff; background:#111827; }
.button.danger { color:#fff; background:var(--red); }
.button.compact { min-height:39px; padding:0 18px; }
.microsoft-mark { width:20px; height:20px; display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.microsoft-mark i:nth-child(1){background:#f25022}.microsoft-mark i:nth-child(2){background:#7fba00}.microsoft-mark i:nth-child(3){background:#00a4ef}.microsoft-mark i:nth-child(4){background:#ffb900}
.auth-note, .auth-footer { text-align:center; font-size:14px; }
.auth-footer { margin:22px 0 0; color:var(--muted); }
.text-link { color:var(--red); font-weight:600; text-decoration:none; }
.field { display:grid; gap:7px; margin-bottom:18px; }
.field label { color:#354052; font-weight:650; font-size:15px; }
.field input { width:100%; min-height:48px; padding:0 14px; border:1px solid #8a94a4; border-radius:8px; color:var(--ink); background:#fff; box-shadow:0 1px 2px rgba(15,23,42,.05); }
.field input::placeholder { color:#667085; }
.field input[aria-invalid="true"] { border-color:var(--red); box-shadow:0 0 0 3px rgba(237,36,36,.1); }
.field-help, .field-error { min-height:18px; margin:0; font-size:12px; }
.field-help { color:#667085; }p.field-error { color:#bd1d24; }
.form-error { padding:11px 13px; margin:0 0 18px; border-radius:8px; background:#fff1f1; color:#a91d22; font-size:14px; }
.form-submit { width:100%; margin-top:2px; }
.success-card { text-align:center; padding-block:32px; }
.success-mark, .error-mark, .state-icon { width:48px; height:48px; margin:0 auto 14px; border-radius:50%; display:grid; place-items:center; font-size:26px; font-weight:800; }
.success-mark { color:var(--green); background:#ccf7e6; }.error-mark { color:#b91c1c; background:#fee2e2; }
.success-card h1 { margin-bottom:18px; }.success-card p { margin:0; }
.callback-page { min-height:100vh; display:grid; place-items:center; padding:20px; }
.callback-state { display:grid; justify-items:center; gap:14px; text-align:center; color:#354052; }
.callback-state h1 { margin:0; font-size:19px; }.callback-state p { margin:0; color:var(--muted); }
.spinner { width:42px; height:42px; border:7px solid #f7cacc; border-top-color:#e94b52; border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.site-header { background:#fff; border-bottom:1px solid var(--line); }
.nav-shell { width:min(100% - 36px, 1120px); min-height:74px; margin:auto; display:flex; align-items:center; gap:40px; }
.brand-lockup { display:grid; text-decoration:none; color:#ad1e22; line-height:1; }
.brand-lockup strong { font-size:20px; letter-spacing:-.5px; }.brand-lockup small { margin-top:7px; color:#5f6b7c; font-size:8px; letter-spacing:2.3px; font-weight:750; }
.nav-items { margin-left:auto; display:flex; align-items:center; gap:30px; }
.nav-items>a:not(.button) { padding:10px 0; color:#384354; text-decoration:none; font-size:14px; }
.nav-items>a.active { padding-inline:16px!important; border-radius:999px; background:#f3f4f6; font-weight:700; }
.user-badge { margin-left:18px; padding:6px 14px 6px 7px; display:flex; align-items:center; gap:9px; border:1px solid #e0e4ea; border-radius:999px; color:#374151; font-size:12px; font-weight:650; text-decoration:none; }
.user-badge:hover,.user-badge:focus-visible { border-color:#b51f25; color:#8f1820; }
.admin-site-link { font-weight:750; color:#8f1820; }
.password-control { position:relative; display:flex; align-items:center; }
.password-control>input { width:100%; padding-right:72px; }
.password-toggle { position:absolute; right:7px; min-width:52px; padding:7px 8px; border:0; border-radius:6px; background:transparent; color:#475467; font:inherit; font-size:12px; font-weight:750; cursor:pointer; }
.password-toggle:hover { background:#f2f4f7; }.password-toggle:focus-visible { outline:3px solid rgba(181,31,37,.22); outline-offset:1px; }
.nav-signout { display:none; }
.avatar { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:var(--orange); color:#fff; font-size:11px; }
.menu-toggle { display:none; margin-left:auto; width:42px; height:42px; border:0; background:transparent; color:#1f2937; font-size:28px; cursor:pointer; }
.page-shell { width:min(100% - 36px, 740px); margin:34px auto 90px; }
.page-title { margin:0 0 20px; font-size:25px; }
.account-card { min-height:400px; background:#fff; border:1px solid #e6e9ee; border-radius:13px; padding:28px; display:flex; flex-direction:column; box-shadow:0 1px 2px rgba(15,23,42,.04); }
.account-card h2 { margin:0 0 10px; font-size:18px; }
.detail-row { min-height:54px; display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--line); color:#4b5563; font-size:14px; }
.detail-row strong { color:#374151; text-align:right; }.detail-row:last-of-type { border-bottom:0; }
.pill { padding:6px 15px; border-radius:999px; background:#c9f6df; color:#087c62!important; }.pill.blue { background:#d8e9ff; color:#106fd8!important; }
.account-actions { margin-top:auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:flex-end; }.account-actions .button { min-width:165px; }
.modal-root { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px; }
.modal-backdrop { position:absolute; inset:0; background:rgba(248,250,252,.86); backdrop-filter:blur(2px); }
.modal-card { position:relative; width:min(100%, 430px); overflow:hidden; padding:32px 32px 0; background:#fff; border:1px solid #e7e9ed; border-radius:15px; box-shadow:0 20px 50px rgba(15,23,42,.12); text-align:center; }
.modal-card h2 { margin:0 0 10px; }.modal-card p { margin:0 0 28px; color:var(--muted); line-height:1.55; }
.modal-icon { width:54px; height:54px; margin:0 auto 18px; display:grid; place-items:center; border-radius:50%; color:var(--red); background:#fee2e2; font-size:30px; }
.modal-actions { margin:0 -32px; padding:16px 32px; display:grid; grid-template-columns:1fr 1fr; gap:16px; background:#fafafa; }
.state-page { min-height:calc(100vh - 75px); display:grid; place-items:center; padding:30px 20px; }
.state-card { width:min(100%, 460px); text-align:center; }.state-card h1 { margin-bottom:14px; }.state-card p { margin:0 0 28px; color:var(--muted); line-height:1.55; }
.toast-region { position:fixed; top:20px; right:20px; z-index:200; display:grid; gap:10px; }
.toast { min-width:280px; padding:14px 18px; border-radius:10px; color:#fff; box-shadow:0 10px 30px rgba(15,23,42,.2); }.toast.success{background:var(--green)}.toast.error{background:#b91c1c}
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.discovery-main { min-height:calc(100vh - 75px); }
.discovery-main h1,.discovery-main h2,.discovery-main h3,.discovery-main strong { font-weight:800; }
.discovery-shell { width:min(100% - 40px, 1120px); margin:0 auto; padding:58px 0 100px; }
.discovery-loading { min-height:70vh; display:grid; place-items:center; align-content:center; gap:18px; text-align:center; }
.discovery-loading h1 { margin:0; font-size:18px; color:var(--muted); }
.catalog-page { background:var(--canvas); }
.festival-hero { min-height:360px; padding:70px max(24px,calc((100% - 1120px)/2)); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:22px; border-bottom:1px solid var(--line); background:radial-gradient(circle at 70% 0,rgba(237,36,36,.10),transparent 36%),linear-gradient(135deg,#fff,#f8fafc 65%); }
.event-directory-hero { color:#fff; background:linear-gradient(135deg,#7f1119 0%,#a91d22 52%,#c2410c 100%); }
.event-directory-hero .status-pill { color:#fff; border-color:rgba(255,255,255,.72); background:rgba(255,255,255,.12); }.event-directory-hero .status-pill::before { background:#fff; }.event-directory-hero .festival-title,.event-directory-hero .lead { color:#fff; }.event-directory-hero .lead { opacity:.94; }
.status-pill,.eyebrow { display:inline-flex; align-items:center; border-radius:999px; padding:7px 13px; color:#087c68; background:#e8fff8; border:1px solid #82e7d1; font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.status-pill::before { content:""; width:7px; height:7px; margin-right:8px; border-radius:50%; background:#12b993; }
.status-pill.sold-out,.eyebrow { color:#d7262e; border-color:transparent; background:#fff0f1; }
.status-pill.sold-out::before { background:var(--red); }
.festival-title { max-width:760px; margin:0; font-size:clamp(42px,5vw,70px); line-height:.98; font-weight:850!important; letter-spacing:-.055em; }
.festival-title>span { display:block; }.festival-title-accent { color:transparent; background:linear-gradient(90deg,#b51f25,#ed2f24 52%,#f5b800); background-clip:text; -webkit-background-clip:text; }
.event-detail-hero .festival-title::first-line { color:var(--ink); }
.event-meta { display:flex; flex-wrap:wrap; gap:24px; color:#4d596a; font-weight:600; }
.festival-description { max-width:780px; margin:0; color:#667085; line-height:1.6; }
.catalog-section { width:min(100% - 40px,1120px); margin:0 auto; padding:64px 0 90px; }
.event-directory-hero .lead { max-width:720px; margin:0; font-size:17px; line-height:1.65; }
.event-discovery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.event-discovery-card { min-width:0; min-height:100%; padding:0 0 30px; display:flex; flex-direction:column; align-items:flex-start; gap:15px; overflow:hidden; border:1px solid var(--line); border-radius:16px; color:inherit; background:#fff; box-shadow:0 7px 22px rgba(15,23,42,.06); text-decoration:none; transition:transform .15s, box-shadow .15s, border-color .15s; }
.event-discovery-card:hover { border-color:#f4a2a6; box-shadow:0 12px 28px rgba(15,23,42,.1); transform:translateY(-2px); }.event-discovery-card:focus-visible { outline-offset:5px; }.event-discovery-card h2,.event-discovery-card p { margin:0 30px; }.event-discovery-card h2 { font-size:25px; line-height:1.2; }.event-discovery-card .muted { flex:1; line-height:1.6; }
.event-discovery-card>.eyebrow { margin:30px 30px 0; }.event-discovery-meta { color:#475467; font-size:13px; font-weight:800; }.event-card-action { width:calc(100% - 60px); margin:4px auto 0; align-self:center; justify-content:center; text-align:center; }
.section-heading { margin-bottom:24px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.section-heading h2,.tiers>h2,.event-clusters>h2,.cluster-films>h2,.cluster-schedules>h2,.feedback-section>h2 { margin:0; font-size:25px; }
.section-heading>span { color:var(--muted); }
.cluster-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.cluster-card { overflow:hidden; display:flex; flex-direction:column; background:#fff; border:1px solid #e1e5eb; border-radius:15px; box-shadow:0 1px 2px rgba(15,23,42,.04); }
.cluster-card.is-sold-out { filter:saturate(.35); }
.cluster-visual { height:220px; background:linear-gradient(180deg,#8f97a6,#f2f3f5); }
.cluster-visual img { width:100%; height:100%; object-fit:cover; opacity:.7; }
.cluster-card-body { flex:1; padding:22px; display:flex; flex-direction:column; align-items:flex-start; }
.cluster-card h2 { margin:0 0 8px; font-size:20px; }.cluster-card p { margin:2px 0; line-height:1.45; }
.muted { color:var(--muted); }.unavailable-copy { margin:20px 0!important; color:#b42318; font-weight:700; }
.cluster-availability { width:100%; margin-top:auto; padding-top:22px; display:flex; align-items:center; justify-content:space-between; gap:12px; color:#667085; font-size:12px; font-weight:650; }
.availability-badge { white-space:nowrap; display:inline-flex; align-items:center; padding:7px 12px; border-radius:999px; color:#087c62; background:#d9faea; font-size:12px; font-weight:800; }
.availability-badge::before { content:""; width:7px; height:7px; margin-right:7px; border-radius:50%; background:#10b981; }
.availability-badge.sold-out { color:#b42318; background:#fee4e2; }.availability-badge.sold-out::before { background:#ef4444; }
.availability-badge.unavailable { color:#667085; background:#eef0f3; }.availability-badge.unavailable::before { background:#98a2b3; }
.capacity-track { width:100%; height:7px; margin:14px 0 20px; overflow:hidden; border-radius:999px; background:#edf0f3; }
.capacity-track>span { display:block; height:100%; border-radius:inherit; background:var(--green); }
.cluster-card.is-sold-out .capacity-track>span,.schedule-details-card.sold-out .capacity-track>span { background:var(--red); }
.cluster-card .button { width:100%; }
.feature-strip { margin-top:52px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.feature-strip article { display:flex; gap:15px; padding:22px; border:1px solid #e1e5eb; border-radius:13px; background:#fff; }
.feature-strip strong { display:block; margin-bottom:5px; }.feature-strip p { margin:0; color:var(--muted); line-height:1.45; }
.feature-icon { flex:0 0 38px; width:38px; height:38px; display:grid; place-items:center; border-radius:9px; background:#fff1f1; }
.inline-empty { min-height:280px; padding:48px 24px; display:grid; place-items:center; align-content:center; text-align:center; border:1px solid #e4e7ec; border-radius:14px; background:#fff; }
.inline-empty.large { margin-top:52px; }.inline-empty h2,.inline-empty h3 { margin:0 0 12px; }.inline-empty p { margin:0; color:var(--muted); }
.event-page { display:grid; gap:52px; }.event-page>.festival-hero { min-height:0; padding:34px 38px; overflow:hidden; border:1px solid #e4e7ec; border-radius:14px; background:#fff; }.event-detail-hero>.event-banner { width:calc(100% + 76px); margin:-34px -38px 0; border-radius:13px 13px 0 0; }
.event-page .festival-title { font-size:38px; max-width:780px; }
.tiers { display:grid; justify-items:center; gap:24px; }.tier-grid { width:min(100%,760px); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.tier-card { position:relative; padding:30px; border:1px solid #dfe3e9; border-radius:13px; background:#fff; }
.tier-card.featured { border:2px solid #ff4a45; }.tier-card h3 { margin:12px 0 6px; font-size:22px; }.tier-card p { line-height:1.5; }
.tier-price { margin:8px 0; font-size:34px; font-weight:850; letter-spacing:-.04em; }.tier-card.featured .tier-price { color:#f04438; }
.tier-card ul { margin:22px 0 0; padding:0; display:grid; gap:10px; list-style:none; color:#566273; }.tier-card li::before { content:"✓"; margin-right:9px; color:#12b981; font-weight:800; }
.tier-card .booking-entry { width:100%; margin-top:24px; }
.event-clusters { display:grid; gap:18px; }.event-cluster { position:relative; padding:26px; display:grid; gap:22px; border:1px solid #e4e7ec; border-radius:14px; background:#fff; transition:transform .15s, box-shadow .15s, border-color .15s; }.event-cluster:hover { border-color:#f4a2a6; box-shadow:0 8px 22px rgba(15,23,42,.07); transform:translateY(-1px); }
.event-cluster.is-sold-out .movie-grid { filter:grayscale(1); opacity:.62; }.event-cluster-head { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid #eef0f3; padding-bottom:18px; color:inherit; text-decoration:none; }.event-cluster-head:hover { color:inherit; }.event-cluster-hit-area { position:absolute; inset:0; z-index:0; border-radius:inherit; text-decoration:none; }.event-cluster-hit-area:focus-visible { outline:3px solid var(--blue); outline-offset:-5px; }
.event-cluster h3 { margin:10px 0 5px; font-size:23px; }.event-cluster p { margin:0; }.event-cluster>.button { position:relative; z-index:1; justify-self:start; }.event-cluster .movie-grid { position:relative; z-index:1; pointer-events:none; }.event-cluster .movie-card { position:relative; pointer-events:auto; }
.cluster-movie-strip-controls { display:none; }
.movie-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.movie-card { min-width:0; display:flex; flex-direction:column; text-decoration:none; color:inherit; }
.movie-card:focus-visible { border-radius:10px; }.movie-card h3 { margin:10px 0 3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }.movie-card p,.movie-card small { margin:0; color:var(--muted); font-size:12px; }
.poster-placeholder { overflow:hidden; display:grid; place-items:center; background:#e3e6eb; color:#98a2b3; font-size:12px; font-weight:850; letter-spacing:.14em; }
.poster-placeholder img { width:100%; height:100%; object-fit:cover; }.movie-poster { aspect-ratio:3/4; border-radius:9px; }.movie-poster-large { width:100%; aspect-ratio:3/4; border-radius:14px; box-shadow:0 4px 14px rgba(15,23,42,.12); }
.booking-guidance { margin:-8px 0 0; color:var(--muted); line-height:1.55; }.event-clusters>.booking-guidance { margin:-8px auto 0; text-align:center; }.feedback-summary-copy { margin:-8px 0 0; color:var(--muted); line-height:1.55; }.feedback-anchor { justify-self:start; padding:11px 15px; border:1px solid #f4a2a6; border-radius:999px; color:#a91d22; background:#fff1f1; font-weight:800; text-decoration:none; }.feedback-anchor:hover { background:#ffe3e5; }#event-feedback { scroll-margin-top:24px; }
.feedback-section { display:grid; gap:20px; }.feedback-section>.text-link { justify-self:start; }
.rating-panel { padding:30px; display:grid; grid-template-columns:220px 1fr; gap:36px; border:1px solid #e1e5eb; border-radius:15px; background:#fff; }
.rating-panel.compact { padding:24px; }.rating-score { display:grid; align-content:center; justify-items:center; border-right:1px solid #e5e7eb; }.rating-score h2 { margin:0; font-size:56px; }.rating-score p { margin:8px 0 0; color:var(--muted); text-align:center; }.stars { color:#9a5b00; font-size:25px; letter-spacing:3px; }
.rating-distribution { display:grid; align-content:center; gap:10px; }.rating-row { display:grid; grid-template-columns:16px 1fr 42px; gap:10px; align-items:center; color:#667085; font-size:12px; }.rating-row>span:last-child { text-align:right; }
.rating-track { height:9px; overflow:hidden; border-radius:999px; background:#edf0f3; }.rating-track span { display:block; height:100%; border-radius:inherit; background:#9a5b00; }
.privacy-notice { padding:18px 20px; display:flex; flex-wrap:wrap; gap:5px 14px; border:1px solid #b7d7ff; border-radius:12px; color:#2459ad; background:#eff6ff; line-height:1.5; }
.privacy-main { min-height:calc(100vh - 75px); }.privacy-page { width:min(100% - 40px,840px); margin:0 auto; padding:56px 0 96px; }.privacy-header { padding:30px 34px; border-radius:16px; color:#fff; background:linear-gradient(135deg,#111827,#a91d22 68%,#c2410c); }.privacy-header h1 { margin:10px 0 7px; font-size:36px; }.privacy-header p { margin:0; color:rgba(255,255,255,.82); }.privacy-introduction { margin:28px 0 0; color:#344054; font-size:17px; line-height:1.7; }.privacy-section { margin-top:24px; padding:25px 28px; border:1px solid #e1e5eb; border-radius:13px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.04); }.privacy-section h2 { margin:0 0 12px; font-size:19px; }.privacy-section p { margin:0 0 12px; color:#475467; line-height:1.65; }.privacy-section p:last-child { margin-bottom:0; }.privacy-section ul { margin:0; padding-left:21px; color:#475467; line-height:1.65; }.privacy-section li+li { margin-top:7px; }.privacy-acknowledgment-note { margin-top:24px; }.privacy-back-link { margin:26px 0 0; }.privacy-loading { min-height:70vh; display:grid; place-items:center; align-content:center; gap:16px; color:var(--muted); text-align:center; }.privacy-loading h1 { margin:0; font-size:18px; }
.event-banner { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,#111827,#a91d22 62%,#c2410c); }.event-banner img { width:100%; height:100%; display:block; object-fit:cover; }.event-banner.is-fallback { align-content:center; gap:9px; padding:24px; text-align:center; }.media-fallback-brand { font-size:clamp(18px,3vw,30px); font-weight:900; letter-spacing:.07em; }.media-fallback-copy { color:rgba(255,255,255,.86); font-size:13px; font-weight:700; }.poster-placeholder.is-fallback { align-content:center; gap:5px; }.poster-fallback-label { color:inherit; }
.movie-page { display:grid; grid-template-columns:320px 1fr; gap:36px; }.movie-aside { display:grid; align-content:start; gap:18px; }.movie-facts { margin:0; padding:22px; display:grid; gap:6px; border:1px solid #e1e5eb; border-radius:12px; background:#fff; }.movie-facts dt { margin-top:10px; color:#98a2b3; font-size:11px; font-weight:800; letter-spacing:.12em; }.movie-facts dd { margin:0; font-weight:700; }
.movie-details { display:flex; flex-direction:column; align-items:flex-start; gap:20px; }.movie-details h1 { margin:0; font-size:42px; }.movie-details h2 { margin:12px 0 -8px; font-size:18px; }.movie-details .rating-panel { width:100%; }.synopsis { margin:0; color:#566273; line-height:1.65; }.trailer-link { min-width:230px; }
.cluster-page { display:grid; gap:48px; }.cluster-detail-header { position:relative; padding-right:180px; }.cluster-detail-header h1 { margin:12px 0 6px; font-size:38px; }.cluster-detail-header p { margin:5px 0; }.cluster-detail-header>.availability-badge { position:absolute; right:0; top:18px; }
.cluster-films,.cluster-schedules { display:grid; gap:20px; }.cluster-films h2,.cluster-schedules h2 { color:#8c96a8; font-size:15px; letter-spacing:.1em; text-transform:uppercase; }
.schedule-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.schedule-card { padding:18px; display:flex; align-items:center; justify-content:space-between; gap:18px; border:1px solid #e1e5eb; border-radius:12px; background:#fff; text-decoration:none; }.schedule-card>div { display:grid; gap:5px; }.schedule-card span:not(.availability-badge) { color:var(--muted); font-size:13px; }
.schedule-page { display:grid; gap:26px; }.schedule-header { position:relative; }.schedule-header h1 { margin:14px 0 8px; }.schedule-header p { margin:0; }.schedule-header>.availability-badge { position:absolute; right:0; top:8px; }.sold-out-notice { margin-top:26px; padding:20px; display:grid; gap:5px; border:1px solid #fda29b; border-radius:12px; color:#b42318; background:#fff1f0; }
.schedule-details-card { padding:26px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; border:1px solid #e1e5eb; border-radius:14px; background:#fff; }.schedule-details-card.sold-out { color:#98a2b3; background:#fffafa; }.schedule-detail-row { padding:0 20px; display:grid; gap:12px; border-right:1px solid #e7e9ed; }.schedule-detail-row:first-child { padding-left:0; }.schedule-detail-row:last-of-type { border:0; }.schedule-detail-row span { color:#98a2b3; font-size:12px; font-weight:800; letter-spacing:.08em; }.schedule-detail-row strong { font-size:18px; }.schedule-details-card>.capacity-track { grid-column:1/-1; margin:28px 0 0; }
.schedule-card-title { display:none; }
.schedule-actions { display:flex; flex-wrap:wrap; gap:14px; }
.aggregate-page { display:grid; gap:26px; }.aggregate-page>h1 { margin:0; }.lead { margin:-16px 0 8px; }.feedback-breakdown { display:grid; border:1px solid #e1e5eb; border-radius:15px; background:#fff; overflow:hidden; }.feedback-breakdown h2 { padding:22px 26px 10px; margin:0; }.feedback-movie-row { padding:18px 26px; display:grid; grid-template-columns:48px 1fr auto; gap:18px; align-items:center; border-top:1px solid #edf0f3; text-decoration:none; }.feedback-movie-row>div:nth-child(2) { display:grid; gap:4px; }.feedback-movie-row span { color:var(--muted); font-size:13px; }.feedback-poster { width:48px; height:60px; border-radius:6px; }

/* Phase 14.3 attendee checkout and receipt lifecycle */
.checkout-main { min-height:calc(100vh - 75px); }
.checkout-loading { min-height:70vh; display:grid; place-items:center; align-content:center; gap:16px; color:var(--muted); text-align:center; }
.checkout-loading h1 { margin:0; font-size:18px; }
.checkout-shell { width:min(100% - 40px,1080px); margin:0 auto; padding:38px 0 96px; }
.checkout-steps { width:min(100%,720px); margin:0 auto 42px; padding:0; display:grid; grid-template-columns:repeat(3,1fr); list-style:none; }
.checkout-steps li { position:relative; display:flex; align-items:center; justify-content:center; gap:9px; color:#98a2b3; font-size:13px; }
.checkout-steps li:not(:last-child)::after { content:""; position:absolute; left:calc(50% + 70px); right:calc(-50% + 70px); top:15px; height:2px; background:#e4e7ec; }
.checkout-steps li>span { width:31px; height:31px; display:grid; place-items:center; border-radius:50%; background:#edf0f3; font-weight:800; }
.checkout-steps li.complete { color:var(--green); }.checkout-steps li.complete>span { background:#d1fae5; }.checkout-steps li.complete::after { background:#20bf92; }
.checkout-steps li.active { color:var(--red); }.checkout-steps li.active>span { color:#fff; background:linear-gradient(135deg,var(--red),var(--orange)); }
.checkout-back { display:inline-flex; margin:0 0 28px; color:#596579; border:0; padding:0; background:transparent; text-decoration:none; font-weight:700; cursor:pointer; }
.checkout-heading { margin-bottom:28px; }.checkout-heading h1 { margin:12px 0 7px; font-size:32px; letter-spacing:-.025em; }.checkout-heading p { margin:0; }
.checkout-card { padding:28px; border:1px solid #e1e5eb; border-radius:15px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.06); }
.checkout-selection-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:28px; align-items:start; }.checkout-selection-grid.single { grid-template-columns:1fr; }
.checkout-selection-grid.single .booking-summary,.checkout-selection-grid.single .checkout-action { width:min(100%,760px); justify-self:center; }
.selection-summary { position:relative; padding:22px; border-radius:13px; background:#f8fafc; }.selection-summary .availability-badge { position:absolute; right:20px; top:20px; }.selection-summary h2 { margin:10px 170px 8px 0; font-size:23px; }.selection-summary p { margin:4px 0; }
.amount-row { margin-top:24px; padding-top:22px; border-top:1px solid #e7e9ed; display:flex; align-items:center; justify-content:space-between; gap:20px; }.amount-row strong { font-size:29px; color:#e83225; }
.checkout-action { display:grid; gap:18px; }.checkout-primary { width:100%; min-height:54px; }
.checkout-notice { padding:18px 20px; display:grid; gap:6px; border:1px solid #f5c84c; border-radius:13px; color:#8a4813; background:#fff9e9; line-height:1.5; font-size:14px; }
.pass-summary { display:grid; gap:8px; border:2px solid #ff4a45; }.pass-summary h2 { margin:8px 0; font-size:24px; }.pass-summary .checkout-notice { margin-top:8px; }
.schedule-selection h2,.receipt-form h2 { margin:0 0 24px; font-size:22px; }.schedule-selection select { width:100%; min-height:50px; padding:0 42px 0 14px; border:1px solid #8a94a4; border-radius:9px; background:#fff; color:#1f2937; }.schedule-selection select[aria-invalid="true"] { border-color:var(--red); box-shadow:0 0 0 3px rgba(197,34,34,.16); }
.checkout-alert { margin:0 0 22px; padding:14px 16px; border-radius:10px; line-height:1.5; }.checkout-alert.error { color:#b42318; border:1px solid #fecaca; background:#fff1f1; }
.receipt-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:34px; align-items:start; }.payment-panel { display:grid; justify-items:center; text-align:center; gap:12px; }.payment-panel h2 { margin:0 0 10px; font-size:36px; }.gcash-qr { width:min(100%,280px); aspect-ratio:1; object-fit:contain; border:1px solid #e1e5eb; border-radius:14px; }.qr-unavailable { width:min(100%,310px); min-height:220px; padding:28px; display:grid; place-items:center; align-content:center; gap:8px; border:1px dashed #c7ced8; border-radius:14px; color:#7b8798; background:#f8fafc; }.receipt-note { width:100%; margin:10px 0 0; text-align:left; line-height:1.5; font-size:13px; }
.receipt-form { position:relative; }.receipt-drop { min-height:170px; margin-bottom:8px; display:grid; place-items:center; align-content:center; gap:8px; border:2px dashed #8a94a4; border-radius:13px; background:#fbfcfd; cursor:pointer; text-align:center; }.receipt-drop>span { font-size:27px; }.receipt-drop small { color:#667085; }.receipt-form .field { margin-top:18px; }.receipt-form .field input { min-height:50px; }.receipt-form [aria-invalid="true"] + .receipt-drop,.receipt-form input[aria-invalid="true"] { border-color:var(--red); background:#fffafa; }
.upload-progress-card { grid-column:1/-1; min-height:300px; padding:42px; display:grid; justify-items:center; align-content:center; gap:13px; border:1px solid #e1e5eb; border-radius:16px; background:#fff; text-align:center; }.upload-progress-card h2 { margin:0; font-size:28px; }.upload-progress-card p { margin:0 0 14px; }.upload-mark { width:62px; height:62px; display:grid; place-items:center; border-radius:50%; color:#2563eb; background:#eff6ff; font-size:31px; font-weight:900; }.upload-progress-meta { width:min(100%,580px); display:flex; justify-content:space-between; gap:20px; font-size:13px; }.upload-progress-track { width:min(100%,580px); height:10px; overflow:hidden; border-radius:999px; background:#e9edf2; }.upload-progress-track>span { display:block; width:0; height:100%; border-radius:inherit; background:#2563eb; transition:width .12s linear; }.upload-progress-track.indeterminate>span { width:35%; animation:upload-indeterminate 1s ease-in-out infinite; }
@keyframes upload-indeterminate { from { transform:translateX(-110%); } to { transform:translateX(310%); } }
.receipt-success { width:min(100%,760px); margin:0 auto; display:grid; justify-items:center; text-align:center; }.receipt-success h1 { margin:8px 0 10px; font-size:34px; }.receipt-success>p { margin:0 0 22px; max-width:590px; line-height:1.55; }.receipt-facts { width:100%; margin:4px 0 24px; padding:22px; display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; border-radius:12px; background:#f8fafc; text-align:left; }.receipt-facts dt { color:#8893a5; }.receipt-facts dd { margin:0; text-align:right; font-weight:800; text-transform:capitalize; }.receipt-success h2 { justify-self:start; margin:0 0 10px; font-size:18px; }.server-disclaimers { width:100%; margin:8px 0 24px; text-align:left; }
.policy-acknowledgments { margin:22px 0 0; padding:18px 16px 4px; border:1px solid #d8dee8; border-radius:12px; }.policy-acknowledgments legend { padding:0 6px; color:#344054; font-size:14px; font-weight:850; }.policy-check { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:start; gap:10px; margin-top:15px; }.policy-check input { width:19px; height:19px; margin-top:2px; accent-color:var(--red); }.policy-check label { color:#344054; font-size:13px; line-height:1.5; }.policy-check input[aria-invalid="true"] { outline:3px solid rgba(197,34,34,.2); outline-offset:2px; }.policy-notice-link { font-size:12px; line-height:1.5; white-space:nowrap; }.policy-acknowledgments .field-error { margin:4px 0 0 29px; }.policy-status { margin:0 0 12px; padding:11px 13px; border-radius:8px; color:#a91d22; background:#fff1f1; font-size:13px; line-height:1.45; }.policy-status[hidden] { display:none; }.pending-next-steps { margin-top:-10px!important; }
.selection-list { width:100%; margin:0 0 20px; padding:0; display:grid; gap:10px; list-style:none; text-align:left; }.selection-list li { padding:13px 15px; display:grid; grid-template-columns:1fr auto; gap:3px 14px; border:1px solid #e4e7ec; border-radius:10px; }.selection-list span,.selection-list small { color:#667085; }.selection-list small { grid-column:1/-1; }
.reupload-grid { width:min(100%,820px); margin:0 auto; display:grid; gap:22px; }.rejection-reason { padding:22px; display:grid; gap:8px; border-left:4px solid var(--red); border-radius:0 13px 13px 0; color:#a91d22; background:#fff0f1; line-height:1.5; }.retained-booking .amount-row { margin:0 0 18px; padding:0 0 18px; }.retained-booking .amount-row strong { color:var(--ink); font-size:20px; }
@media (max-width: 720px) {
  .auth-page { align-items:start; padding:46px 18px; }.auth-stack { gap:26px; }.wordmark { font-size:27px; }.auth-card { padding:30px 22px; }.auth-card h1 { font-size:23px; }
  .nav-shell { min-height:66px; }.menu-toggle { display:block; }.nav-items { position:absolute; top:66px; left:0; right:0; z-index:20; display:none; margin:0; padding:18px 18px 24px; background:#fff; align-items:stretch; flex-direction:column; gap:4px; }.menu-open { position:fixed; inset:0 54px 0 0; z-index:50; border:0; box-shadow:10px 0 28px rgba(15,23,42,.18); }.menu-open::after { content:""; position:fixed; inset:0 0 0 calc(100% - 54px); z-index:-1; background:rgba(55,65,81,.43); }.menu-open .nav-shell { width:100%; padding:0 18px; }.menu-open .nav-items { bottom:0; display:flex; border-top:1px solid var(--line); }.nav-items>a:not(.button) { padding:13px 14px; }.nav-items>a.active { border-radius:8px; }.user-badge { order:-1; margin:0 0 8px; border-radius:10px; }.nav-items .button { width:100%; margin-top:6px; }.nav-signout { display:flex; margin-top:auto!important; }
  .page-shell { margin-top:25px; }.page-title { font-size:22px; }.account-card { min-height:460px; padding:22px 18px; }.detail-row { min-height:68px; align-items:flex-start; flex-direction:column; justify-content:center; gap:6px; }.detail-row strong { text-align:left; }.account-actions .button { width:100%; }
  .modal-actions { grid-template-columns:1fr; }.modal-actions .danger { order:-1; }
  .discovery-shell { width:min(100% - 28px,1120px); padding:40px 0 72px; }.festival-hero { min-height:0; padding:48px 28px; align-items:center; text-align:center; gap:18px; }.festival-title { font-size:36px; }.event-meta { justify-content:center; gap:12px 20px; font-size:14px; }
  .catalog-section { width:min(100% - 28px,1120px); padding:36px 0 70px; }.section-heading { align-items:flex-end; }.section-heading h2 { font-size:24px; }.section-heading>span { display:none; }.event-discovery-grid,.cluster-grid,.feature-strip,.tier-grid { grid-template-columns:1fr; }.event-discovery-grid,.cluster-grid { gap:22px; }.event-discovery-card { padding-bottom:24px; }.event-discovery-card h2,.event-discovery-card p { margin-left:20px; margin-right:20px; }.event-discovery-card>.eyebrow { margin:24px 20px 0; }.event-card-action { width:calc(100% - 40px); }.cluster-visual { height:320px; }.cluster-card-body { padding:22px 20px; }.feature-strip { margin-top:32px; }
  .event-page { gap:36px; }.event-page>.festival-hero { padding:24px; align-items:flex-start; text-align:left; }.event-detail-hero>.event-banner { width:calc(100% + 48px); margin:-24px -24px 0; border-radius:13px 13px 0 0; }.event-page .festival-title { font-size:31px; }.event-page .event-meta { justify-content:flex-start; }.tiers>h2 { font-size:22px; }.tier-card { padding:26px 22px; }.event-cluster { min-width:0; padding:22px 16px; }.event-cluster-head { align-items:flex-start; }.event-cluster-head>.availability-badge { margin-top:4px; }.movie-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.event-cluster .cluster-movie-strip { width:100%; max-width:100%; min-width:0; padding:2px 2px 12px; display:flex; gap:16px; overflow-x:auto; overflow-y:hidden; overscroll-behavior-inline:contain; scroll-snap-type:x proximity; scrollbar-width:thin; -webkit-overflow-scrolling:touch; pointer-events:auto; touch-action:pan-x; cursor:grab; }.event-cluster .cluster-movie-strip:active { cursor:grabbing; }.event-cluster .cluster-movie-strip:focus-visible { outline:3px solid var(--blue); outline-offset:3px; border-radius:9px; }.event-cluster .movie-card { flex:0 0 148px; scroll-snap-align:start; }.cluster-movie-strip-controls { position:relative; z-index:1; display:flex; align-items:center; gap:8px; }.cluster-movie-strip-controls span { margin-right:auto; color:var(--muted); font-size:11px; }.cluster-movie-strip-controls button { width:38px; height:38px; display:grid; place-items:center; border:1px solid #cfd5de; border-radius:50%; color:#344054; background:#fff; cursor:pointer; font-size:18px; }
  .rating-panel,.rating-panel.compact { padding:22px 16px; grid-template-columns:1fr; gap:22px; }.rating-score { padding-bottom:20px; border-right:0; border-bottom:1px solid #e5e7eb; }.rating-score h2 { font-size:44px; }.privacy-notice { align-items:flex-start; }
  .movie-page { display:flex; flex-direction:column; gap:28px; }.movie-aside,.movie-details { display:contents; }.movie-poster-large { order:1; width:min(100%,330px); align-self:center; }.movie-details h1 { order:2; width:100%; text-align:center; font-size:38px; }.movie-facts { order:3; }.movie-details .rating-panel { order:4; }.movie-details h2 { order:5; display:block; margin:4px 0 -14px; }.synopsis { order:6; display:block; }.trailer-link { order:7; width:100%; }.movie-details>.button.secondary { order:8; width:100%; }
  .cluster-detail-header { padding:52px 0 0; }.cluster-detail-header h1 { font-size:34px; }.cluster-detail-header>.availability-badge { left:0; right:auto; top:0; }.cluster-films .movie-grid { grid-template-columns:1fr; }.cluster-films .movie-card { min-height:160px; padding:14px; display:grid; grid-template-columns:115px 1fr; grid-template-rows:auto auto auto; column-gap:22px; align-content:center; border-radius:14px; background:#fff; }.cluster-films .movie-poster { grid-row:1/4; }.cluster-films .movie-card h3 { white-space:normal; font-size:19px; }.schedule-grid { grid-template-columns:1fr; }.schedule-card { align-items:flex-start; flex-direction:column; }
  .schedule-header { padding-top:0; }.schedule-header h1,.schedule-header p,.schedule-header>.availability-badge { display:none; }.schedule-details-card { grid-template-columns:1fr; padding:30px 22px 22px; }.schedule-card-title { display:block; margin:0 0 22px; font-size:28px; }.schedule-detail-row,.schedule-detail-row:first-child { min-height:66px; padding:0; display:flex; align-items:center; justify-content:space-between; border-right:0; border-bottom:1px solid #edf0f3; }.schedule-details-card>.capacity-track { margin-top:20px; }
  .schedule-actions { display:grid; }.schedule-actions .button { width:100%; }
  .feedback-movie-row { padding:16px; grid-template-columns:44px 1fr auto; gap:12px; }.feedback-poster { width:44px; height:56px; }
  .checkout-shell { width:min(100% - 28px,1080px); padding:26px 0 70px; }.checkout-steps { margin-bottom:30px; }.checkout-steps li { gap:5px; font-size:11px; }.checkout-steps li strong { display:none; }.checkout-steps li:not(:last-child)::after { left:calc(50% + 22px); right:calc(-50% + 22px); }.checkout-heading h1 { font-size:27px; }.checkout-selection-grid,.receipt-grid { grid-template-columns:1fr; gap:22px; }.checkout-card { padding:22px 18px; }.selection-summary .availability-badge { position:static; margin-bottom:8px; }.selection-summary h2 { margin:8px 0; font-size:21px; }.amount-row strong { font-size:27px; }.pass-summary { order:1; }.schedule-selection { order:2; }.payment-panel { order:1; }.receipt-form { order:2; }.qr-unavailable { min-height:190px; }.upload-progress-card { min-height:260px; padding:30px 20px; }.upload-progress-card h2 { font-size:23px; }.upload-progress-meta { align-items:flex-start; flex-direction:column; gap:7px; text-align:left; }.receipt-facts { grid-template-columns:1fr; }.receipt-facts dd { margin-bottom:8px; text-align:left; }.selection-list li { grid-template-columns:1fr; }.selection-list small { grid-column:auto; }.policy-check { grid-template-columns:auto minmax(0,1fr); }.policy-notice-link { grid-column:2; white-space:normal; }.policy-acknowledgments .field-error { margin-left:29px; }.privacy-page { width:min(100% - 28px,840px); padding:38px 0 72px; }.privacy-header { padding:25px 22px; }.privacy-header h1 { font-size:29px; }.privacy-section { padding:21px 19px; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }

/* Phase 14.4 attendee tickets, feedback, and certificates */
.attendee-main { min-height:calc(100vh - 75px); }
.attendee-shell { width:min(100% - 40px,1040px); margin:0 auto; padding:52px 0 96px; }
.attendee-loading { min-height:70vh; display:grid; place-items:center; align-content:center; gap:18px; color:var(--muted); text-align:center; }
.attendee-loading h1 { margin:0; font-size:18px; }
.attendee-title { margin:0 0 28px; font-size:29px; letter-spacing:-.025em; }
.ticket-list { display:grid; gap:16px; }
.ticket-list-card { width:100%; min-height:116px; padding:22px 24px; display:flex; align-items:center; justify-content:space-between; gap:28px; border:1px solid #dfe4eb; border-left:5px solid #98a2b3; border-radius:14px; color:inherit; background:#fff; text-align:left; text-decoration:none; cursor:pointer; font:inherit; box-shadow:0 1px 3px rgba(15,23,42,.05); }
.ticket-list-card:hover { box-shadow:0 8px 22px rgba(15,23,42,.08); transform:translateY(-1px); }
.ticket-list-card.status-pending { border-left-color:#f2b91e; }.ticket-list-card.status-approved { border-left-color:#10b981; }.ticket-list-card.status-rejected { border-left-color:#ef4444; }.ticket-list-card.status-checked-in { border-left-color:#94a3b8; background:#fbfcfd; }
.ticket-card-copy { min-width:0; display:grid; justify-items:start; gap:7px; }.ticket-card-copy h2 { margin:0; overflow-wrap:anywhere; font-size:21px; }.ticket-card-copy code { color:var(--muted); overflow-wrap:anywhere; }
.ticket-status { display:inline-flex; padding:5px 12px; border-radius:999px; color:#475467; background:#eef1f4; font-size:12px; font-weight:800; }
.ticket-status.status-pending { color:#9a5b00; background:#fff2bf; }.ticket-status.status-approved { color:#06785a; background:#c9f8e3; }.ticket-status.status-rejected { color:#b42318; background:#fee4e2; }.ticket-status.status-checked-in { color:#475467; background:#eaecf0; }
.ticket-card-action { flex:0 0 auto; color:#344054; font-size:13px; font-weight:800; }
.ticket-empty { min-height:300px; padding:50px 24px; display:grid; place-items:center; align-content:center; gap:12px; border:1px solid #e1e5eb; border-radius:15px; background:#fff; text-align:center; }.ticket-empty h2,.ticket-empty p { margin:0; }.ticket-empty p { color:var(--muted); }.ticket-empty .button { margin-top:10px; }.ticket-empty-icon { font-size:34px; }
.back-link { padding:0; display:inline-flex; margin-bottom:26px; border:0; color:#5d697b; background:transparent; text-decoration:none; cursor:pointer; font:inherit; font-size:14px; font-weight:750; }
.ticket-detail-page { width:min(100% - 40px,780px); }
.ticket-pass { overflow:hidden; border:1px solid #dfe4eb; border-radius:18px; background:#fff; box-shadow:0 4px 16px rgba(15,23,42,.07); }
.ticket-pass-header { min-height:64px; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:18px; color:#fff; background:#111827; }.ticket-pass-header>span:first-child { overflow-wrap:anywhere; font-weight:850; }.ticket-pass-header .ticket-status { flex:0 0 auto; }
.ticket-state-copy,.ticket-approved-copy { padding:38px 30px 28px; display:grid; justify-items:center; gap:12px; text-align:center; }.ticket-state-copy h1,.ticket-approved-copy h1 { margin:0; font-size:30px; }.ticket-state-copy p,.ticket-approved-copy p { max-width:560px; margin:0; color:var(--muted); line-height:1.55; }
.ticket-state-icon { width:68px; height:68px; margin-bottom:5px; display:grid; place-items:center; border-radius:50%; font-size:34px; font-weight:700; }.ticket-state-icon.pending { color:#a65c00; background:#fff4c6; }.ticket-state-icon.rejected { color:#dc2626; background:#fee2e2; }.ticket-state-icon.checked-in { color:#078965; background:#ccf7e6; }
.ticket-facts { margin:0 30px 26px; padding:20px 22px; display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; border:1px solid #e4e7ec; border-radius:13px; background:#f8fafc; }.ticket-facts dt { color:#667085; }.ticket-facts dd { margin:0; text-align:right; overflow-wrap:anywhere; font-weight:800; text-transform:capitalize; }
.ticket-pass>h2 { margin:24px 30px 12px; font-size:17px; }.ticket-selections { margin:0 30px 28px; padding:0; display:grid; gap:10px; list-style:none; }.ticket-selections li { padding:14px 16px; display:grid; grid-template-columns:1fr auto; gap:4px 14px; border:1px solid #e4e7ec; border-radius:11px; }.ticket-selections span,.ticket-selections small { color:#667085; }.ticket-selections small,.ticket-selections em { grid-column:1/-1; }.ticket-selections em { color:#078965; font-size:12px; font-style:normal; font-weight:700; }
.ticket-rejection { margin:0 30px 24px; padding:18px 20px; border:1px solid #fda29b; border-radius:13px; color:#b42318; background:#fff1f0; }.ticket-rejection p { margin:7px 0 0; line-height:1.5; }.ticket-wide-action { width:calc(100% - 60px); margin:0 30px 30px; }
.legacy-policy-action { margin:0 30px 28px; padding:22px; border:1px solid #f4c7c9; border-radius:13px; background:#fff8f8; }.legacy-policy-action>h2 { margin:0 0 8px; font-size:19px; }.legacy-policy-action>p { margin:0; color:#475467; line-height:1.5; }.legacy-policy-form>.button { width:100%; margin-top:18px; }.legacy-policy-form .policy-acknowledgments { background:#fff; }.legacy-policy-form .policy-check .field-error { grid-column:2/-1; margin:0; }
.ticket-approved-copy .eyebrow { margin-bottom:2px; }.ticket-qr-region { min-height:320px; padding:20px; display:grid; place-items:center; align-content:center; gap:16px; border-top:1px solid #edf0f3; border-bottom:1px solid #edf0f3; text-align:center; }.ticket-qr-image { width:min(100%,280px); aspect-ratio:1; object-fit:contain; border:10px solid #111827; border-radius:18px; }.qr-loading { min-height:260px; display:grid; place-items:center; align-content:center; gap:16px; color:var(--muted); }.qr-error { width:min(100%,360px); min-height:250px; padding:28px; display:grid; place-items:center; align-content:center; gap:12px; border:2px solid #fecaca; border-radius:16px; color:#b42318; background:#fff5f5; }.qr-error>span { font-size:36px; }.qr-error h3,.qr-error p { margin:0; }.qr-error p { line-height:1.45; text-align:center; }
.certificate-action { padding:22px 30px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; align-items:center; border-top:1px solid #e4e7ec; background:#f7f8fa; }.certificate-action.is-available { border-color:#a7f3d0; background:#ecfdf5; }.certificate-action-main { min-width:0; display:flex; align-items:center; gap:14px; }.certificate-action-copy { min-width:0; }.certificate-action-icon { flex:0 0 auto; font-size:30px; }.certificate-action h3,.certificate-action p { margin:0; }.certificate-action h3 { margin-bottom:4px; font-size:17px; }.certificate-action p { color:#667085; font-size:13px; }.certificate-button { color:#fff; background:#07966f; }.certificate-action>.certificate-note { width:100%; grid-column:1/-1; }
.certificate-page { width:min(100% - 40px,900px); }.certificate-state-card { width:min(100%,600px); margin:0 auto; padding:48px 42px; display:grid; justify-items:center; gap:14px; border:1px solid #e1e5eb; border-radius:17px; background:#fff; text-align:center; box-shadow:0 1px 3px rgba(15,23,42,.06); }.certificate-state-card h1,.certificate-state-card p { margin:0; }.certificate-state-card p { color:var(--muted); line-height:1.55; }.certificate-state-card aside { margin-top:10px; padding:16px; border:1px solid #f5d166; border-radius:11px; color:#985e12; background:#fff9e9; }.certificate-state-card.error { color:#b42318; }.certificate-state-icon { width:62px; height:62px; display:grid; place-items:center; border-radius:50%; background:#f2f4f7; font-size:30px; }
.certificate-view-card { display:grid; justify-items:center; gap:14px; text-align:center; }.certificate-view-card>h1 { max-width:720px; margin:0; font-size:32px; }.certificate-label { color:var(--red); }.certificate-preview { width:min(100%,780px); min-height:1px; margin-top:14px; display:grid; place-items:center; overflow:hidden; border:1px solid #dfe4eb; border-radius:15px; background:#fff; }.certificate-preview-loading { min-height:440px; align-content:center; gap:17px; color:var(--muted); }.certificate-preview-canvas { display:block; max-width:100%; height:auto; background:#fff; }.certificate-preview-error { min-height:300px; align-content:center; gap:14px; padding:28px; color:#b42318; }.certificate-preview-error p { max-width:520px; margin:0; line-height:1.5; }.certificate-note { width:min(100%,780px); padding:15px 18px; border:1px solid #b7d7ff; border-radius:11px; color:#2459ad; background:#eff6ff; text-align:left; }.certificate-download-button { width:min(100%,330px); min-height:56px; margin-top:6px; }.certificate-download-status { min-height:20px; margin:0; color:#667085; font-size:13px; }
.feedback-heading { margin-bottom:24px; }.feedback-heading h1 { margin:0 0 8px; font-size:31px; }.feedback-heading p { margin:0; color:var(--muted); }.feedback-card-list { margin-top:26px; display:grid; gap:24px; }.feedback-movie-card { overflow:hidden; border:1px solid #e1e5eb; border-radius:16px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.05); }.feedback-movie-card>header { display:grid; grid-template-columns:120px minmax(0,1fr); align-items:center; gap:22px; padding:24px 26px; border-bottom:1px solid #edf0f3; }.feedback-movie-poster { width:120px; aspect-ratio:3/4; border-radius:10px; }.feedback-movie-card header h2,.feedback-movie-card header h3 { margin:10px 0 5px; font-size:23px; }.feedback-movie-card header p { margin:0; }.feedback-form { padding:26px; }.feedback-alert { margin:0 0 20px; padding:14px 16px; border-left:4px solid var(--red); border-radius:0 10px 10px 0; color:#a91d22; background:#fff1f1; }.feedback-rating { margin:0 0 22px; padding:0; border:0; }.feedback-rating legend { margin-bottom:12px; color:#354052; font-weight:750; }.star-choices { display:flex; gap:10px; }.star-choices label { width:54px; height:54px; display:grid; place-items:center; border:1px solid #667085; border-radius:11px; color:#667085; background:#f8fafc; cursor:pointer; font-size:31px; }.star-choices input:focus-visible+label { outline:3px solid var(--blue); outline-offset:3px; }.star-choices input:checked+label,.star-choices label:has(~ input:checked) { color:#9a5b00; border-color:#9a5b00; background:#fff9e9; }.star-choices:has(input:focus) label { color:#667085; border-color:#667085; background:#f8fafc; }.star-choices:has(input:focus) input:focus+label,.star-choices:has(input:focus) label:has(~ input:focus) { color:#9a5b00; border-color:#9a5b00; background:#fff9e9; }.star-choices:has(label:hover) label { color:#667085; border-color:#667085; background:#f8fafc; }.star-choices:has(label:hover) label:hover,.star-choices:has(label:hover) label:has(~ label:hover) { color:#9a5b00; border-color:#9a5b00; background:#fff9e9; }.feedback-rating[aria-invalid="true"] .star-choices { padding:6px; border:2px solid var(--red); border-radius:13px; }.feedback-comment textarea { width:100%; min-height:112px; resize:vertical; padding:13px 14px; border:1px solid #8a94a4; border-radius:9px; color:var(--ink); background:#fff; }.feedback-comment textarea[aria-invalid="true"] { border-color:var(--red); box-shadow:0 0 0 3px rgba(197,34,34,.16); }.feedback-submit { width:100%; min-height:54px; }
.feedback-movie-card.is-submitted,.feedback-movie-card.is-ineligible { border-color:#d6dbe3; background:#f4f5f7; filter:grayscale(1); }.feedback-movie-card.is-submitted .feedback-movie-poster,.feedback-movie-card.is-ineligible .feedback-movie-poster { opacity:.62; }.feedback-movie-card.is-submitted .eyebrow,.feedback-movie-card.is-ineligible .eyebrow { color:#667085; background:#e7e9ed; }.feedback-submitted-state { min-height:122px; padding:25px 26px; display:grid; align-content:center; gap:7px; color:#475467; background:#f4f5f7; }.feedback-submitted-state strong { color:#344054; font-size:16px; }.feedback-submitted-state span { color:#667085; font-size:13px; line-height:1.5; }.feedback-locked-state { color:#8a5700; background:#fff9e9; }.feedback-locked-state strong { color:#8a5700; }
.feedback-search { display:grid; gap:8px; }.feedback-search label { color:#354052; font-size:13px; font-weight:800; }.feedback-search input { width:100%; min-height:48px; padding:12px 14px; border:1px solid #8a94a4; border-radius:10px; color:var(--ink); background:#fff; }.feedback-refresh-message:empty { display:none; }.feedback-refresh-message { padding:12px 14px; border-radius:9px; color:#17633a; background:#edf9f1; font-size:13px; }.feedback-filtered-list { display:grid; gap:24px; }
.platform-evaluation-section,.film-feedback-section { display:grid; gap:18px; }.film-feedback-section { margin-top:52px; }.feedback-section-heading h2 { margin:0 0 7px; font-size:25px; }.feedback-section-heading p { margin:0; color:var(--muted); line-height:1.55; }.platform-privacy-notice { border-color:#bfd5f6; background:#f4f8ff; }.platform-evaluation-list { display:grid; gap:20px; }.platform-loading,.platform-inline-state,.feedback-inline-state { min-height:118px; padding:24px; display:grid; align-content:center; gap:9px; border:1px solid #dfe4eb; border-radius:14px; color:#475467; background:#fff; }.platform-loading { grid-template-columns:auto 1fr; align-items:center; }.platform-inline-state strong,.feedback-inline-state strong { color:#263246; font-size:17px; }.platform-inline-state.error,.feedback-inline-state.error { border-color:#fda29b; color:#9f241d; background:#fff6f5; }.platform-inline-state .button { justify-self:start; margin-top:7px; }.platform-evaluation-card { overflow:hidden; border:1px solid #dfe4eb; border-radius:16px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.05); }.platform-evaluation-card>header { padding:23px 26px; border-bottom:1px solid #edf0f3; }.platform-evaluation-card>header h3 { margin:9px 0 0; font-size:22px; }.platform-evaluation-form { padding:26px; display:grid; gap:25px; }.platform-alert { padding:14px 16px; border-left:4px solid var(--red); border-radius:0 10px 10px 0; color:#a91d22; background:#fff1f1; }.platform-question { min-width:0; margin:0; padding:0; border:0; }.platform-question legend { margin-bottom:13px; color:#263246; font-weight:800; line-height:1.45; }.platform-score-options { display:grid; grid-template-columns:repeat(5,minmax(48px,1fr)); gap:10px; }.platform-score-options input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }.platform-score-options label { min-height:50px; display:grid; place-items:center; border:1px solid #667085; border-radius:10px; color:#475467; background:#f8fafc; cursor:pointer; font-size:17px; font-weight:850; }.platform-score-options input:checked+label { border-color:#a91d22; color:#a91d22; background:#fff0f1; box-shadow:inset 0 0 0 1px #a91d22; }.platform-score-options input:focus-visible+label { outline:3px solid var(--blue); outline-offset:3px; }.platform-question[aria-invalid="true"] .platform-score-options { padding:5px; border:2px solid var(--red); border-radius:13px; }.platform-endpoints { margin-top:8px; display:flex; justify-content:space-between; gap:18px; color:#667085; font-size:12px; line-height:1.35; }.platform-endpoints span:last-child { text-align:right; }.platform-submit { min-height:54px; }.platform-result { min-height:116px; padding:26px; display:grid; align-content:center; gap:7px; color:#475467; }.platform-result strong { color:#263246; font-size:17px; }.platform-result p { margin:0; line-height:1.5; }.platform-evaluation-card.is-complete { border-color:#b7e4d4; background:#f2fbf7; }.platform-evaluation-card.is-ineligible { border-color:#ead7a1; background:#fffaf0; }.feedback-inline-state h2 { margin:0; font-size:21px; }.feedback-inline-state span { line-height:1.5; }

@media (max-width: 720px) {
  .attendee-shell { width:min(100% - 28px,1040px); padding:30px 0 72px; }.attendee-title { font-size:27px; }.ticket-list-card { min-height:126px; padding:20px; align-items:flex-start; }.ticket-card-action { display:none; }.ticket-card-copy h2 { font-size:20px; }.ticket-detail-page,.certificate-page { width:min(100% - 28px,900px); }.ticket-pass-header { min-height:62px; padding:14px 18px; align-items:flex-start; flex-direction:column; gap:8px; }.ticket-pass-header .ticket-status { align-self:flex-start; }.ticket-state-copy,.ticket-approved-copy { padding:30px 20px 24px; }.ticket-state-copy h1,.ticket-approved-copy h1 { font-size:27px; }.ticket-facts { margin:0 18px 22px; grid-template-columns:1fr; }.ticket-facts dd { margin:0 0 6px; text-align:left; }.ticket-pass>h2 { margin:22px 18px 10px; }.ticket-selections { margin:0 18px 24px; }.ticket-selections li { grid-template-columns:1fr; }.ticket-selections small,.ticket-selections em { grid-column:auto; }.ticket-rejection,.legacy-policy-action { margin:0 18px 22px; }.ticket-wide-action { width:calc(100% - 36px); margin:0 18px 24px; }.ticket-qr-region { min-height:300px; padding:18px; }.ticket-qr-image { width:min(100%,250px); }.certificate-action { padding:20px 18px; grid-template-columns:1fr; }.certificate-action-main { align-items:flex-start; }.certificate-action .button { width:100%; }.certificate-state-card { padding:38px 22px; }.certificate-view-card>h1 { font-size:27px; }.certificate-preview-loading { min-height:320px; }.certificate-preview-error { min-height:260px; padding:22px; }.feedback-heading h1 { font-size:28px; }.feedback-movie-card>header { grid-template-columns:88px minmax(0,1fr); gap:16px; padding:20px 18px; }.feedback-movie-poster { width:88px; }.feedback-movie-card header h2,.feedback-movie-card header h3 { font-size:20px; }.feedback-form { padding:20px 18px; }.star-choices { justify-content:space-between; gap:5px; }.star-choices label { width:48px; height:50px; font-size:28px; }.film-feedback-section { margin-top:40px; }.platform-evaluation-card>header,.platform-evaluation-form,.platform-result { padding:20px 18px; }.platform-score-options { gap:6px; }.platform-score-options label { min-height:48px; }.platform-endpoints { font-size:11px; }
}

/* Phase 14.5 persistent administration shell and authorized management modules */
.skip-link { position:fixed; left:16px; top:-80px; z-index:500; padding:12px 16px; border-radius:8px; color:#fff; background:#111827; font-weight:800; }
.skip-link:focus { top:16px; }
.admin-body { overflow-x:hidden; background:#f8fafc; }
.admin-bootstrap { min-height:100vh; display:grid; place-items:center; align-content:center; gap:16px; color:var(--muted); text-align:center; }
.admin-bootstrap h1,.admin-loading h1 { margin:0; font-size:17px; }
.admin-shell { min-height:100vh; display:grid; grid-template-columns:224px minmax(0,1fr); }
.admin-sidebar { position:sticky; top:0; z-index:40; width:224px; max-width:100%; min-width:0; height:100vh; padding:28px 18px 20px; display:flex; flex-direction:column; overflow-x:hidden; border-right:1px solid #e4e7ec; background:#fff; }
.admin-brand { display:grid; padding:0 8px 24px; color:#b51f25; line-height:1; text-decoration:none; }
.admin-brand strong { font-size:20px; letter-spacing:-.6px; }.admin-brand small { margin-top:7px; color:#5f6b7c; font-size:7px; letter-spacing:2px; font-weight:800; }
.admin-identity { color:inherit; text-decoration:none; }.admin-identity:hover strong,.admin-identity:focus-visible strong { color:#b51f25; }
.admin-identity { width:calc(100% - 10px); max-width:100%; min-width:0; margin:0 5px 18px; padding:13px 12px; display:grid; justify-items:center; gap:4px; overflow:hidden; border-radius:10px; background:#f8fafc; text-align:center; }
.admin-identity strong,.admin-identity span { width:100%; min-width:0; max-width:100%; overflow:hidden; overflow-wrap:anywhere; text-align:center; text-overflow:ellipsis; }.admin-identity strong { font-size:13px; }.admin-identity span { color:#667085; font-size:11px; }
.admin-nav { width:100%; max-width:100%; min-width:0; display:grid; gap:3px; }.admin-nav a { width:100%; max-width:100%; min-width:0; min-height:37px; padding:9px 11px; overflow:hidden; border-radius:7px; color:#516072; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; font-size:12px; font-weight:650; }
.admin-nav a:hover,.admin-nav a.active { color:#c52228; background:#fff0f1; }.admin-nav a.active { font-weight:800; }
.admin-secondary-link { width:100%; max-width:100%; min-width:0; margin-top:auto; padding:10px; overflow:hidden; color:#667085; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }.admin-signout { width:100%; max-width:100%; min-width:0; min-height:38px; margin-top:8px; }
.admin-stage { min-width:0; }.admin-mobile-header { display:none; }
.admin-workspace { width:min(100% - 64px,1160px); margin:0 auto; padding:42px 0 100px; }
.admin-loading { min-height:100vh; display:grid; place-items:center; align-content:center; gap:16px; color:var(--muted); text-align:center; }
.admin-page-header { margin-bottom:24px; display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.admin-page-header h1 { margin:0 0 6px; font-size:27px; letter-spacing:-.025em; }.admin-page-header p { margin:0; color:var(--muted); line-height:1.5; }
.admin-overview-card { min-height:110px; padding:24px; border:1px solid #e4e7ec; border-radius:12px; background:#fff; }.admin-overview-card h2 { margin:0 0 8px; font-size:18px; }.admin-overview-card p { margin:0; color:var(--muted); }
.admin-state { min-height:100vh; display:grid; place-items:center; }.admin-state-card { width:min(100%,430px); padding:38px 32px; display:grid; justify-items:center; gap:13px; border:1px solid #e4e7ec; border-radius:15px; background:#fff; text-align:center; box-shadow:0 3px 12px rgba(15,23,42,.05); }
.admin-state-card h1,.admin-state-card p { margin:0; }.admin-state-card p { color:var(--muted); line-height:1.55; }.admin-state-card .button { margin-top:10px; }
.admin-table-wrap { overflow-x:auto; border:1px solid #e4e7ec; border-radius:12px; background:#fff; box-shadow:0 1px 2px rgba(15,23,42,.04); }
.admin-table { width:100%; border-collapse:collapse; min-width:760px; }.admin-table th { padding:12px 16px; color:#667085; background:#f8fafc; text-align:left; font-size:11px; letter-spacing:.04em; text-transform:uppercase; }.admin-table td { padding:16px; border-top:1px solid #edf0f3; color:#465264; font-size:13px; vertical-align:middle; }
.admin-table td strong,.admin-table td small { display:block; }.admin-table td strong { color:#172033; font-size:14px; }.admin-table td small { margin-top:4px; color:#667085; }
.admin-row-actions { display:flex; align-items:center; gap:11px; white-space:nowrap; }.admin-action { padding:0; border:0; color:#465264; background:transparent; font-size:12px; font-weight:800; text-decoration:none; cursor:pointer; }.admin-action:hover { color:#111827; text-decoration:underline; }.admin-action.danger { color:#df2c33; }
.admin-status { display:inline-flex; padding:5px 10px; border-radius:999px; font-size:11px; font-weight:800; }.admin-status.published { color:#087c62; background:#d9faea; }.admin-status.draft { color:#9a5b00; background:#fff2bf; }
.admin-empty { min-height:300px; padding:48px 24px; display:grid; place-items:center; align-content:center; gap:11px; border:1px solid #e4e7ec; border-radius:13px; background:#fff; text-align:center; }.admin-empty>span { font-size:32px; }.admin-empty h2,.admin-empty p { margin:0; }.admin-empty p { color:var(--muted); }.admin-empty .button { margin-top:9px; }
.admin-back-link { margin-bottom:17px; display:inline-flex; color:#667085; text-decoration:none; font-size:13px; font-weight:750; }
.admin-form-card { width:min(100%,720px); padding:28px; display:grid; gap:2px; border:1px solid #e4e7ec; border-radius:14px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.04); }
.admin-field { min-width:0; margin-bottom:17px; display:grid; gap:7px; }.admin-field[hidden] { display:none; }.admin-field label { color:#344054; font-size:13px; font-weight:750; }
.admin-field input,.admin-field textarea,.admin-field select { width:100%; min-height:44px; padding:10px 12px; border:1px solid #8a94a4; border-radius:8px; color:#172033; background:#fff; }.admin-field textarea { resize:vertical; }.admin-field input[type=file] { padding:7px; }
.admin-media-field { min-width:0; margin-bottom:15px; display:grid; gap:2px; }.admin-media-preview { width:100%; overflow:hidden; display:grid; place-items:center; border:1px dashed #8a94a4; border-radius:11px; color:#667085; background:#f8fafc; text-align:center; }.admin-media-preview-banner { aspect-ratio:16/9; }.admin-media-preview-poster { width:min(100%,260px); aspect-ratio:3/4; justify-self:start; }.admin-media-preview img { width:100%; height:100%; object-fit:cover; background:#fff; }.admin-media-fallback { padding:24px; font-size:12px; font-weight:750; }.admin-media-preview.is-fallback { background:#f8fafc; }
.admin-field [aria-invalid=true] { border-color:#e52d35; box-shadow:0 0 0 3px rgba(229,45,53,.16); }.admin-field-help,.admin-field-error { min-height:16px; margin:0; font-size:11px; }.admin-field-help { color:#5f6b7c; }.admin-field-error { color:#bd1d24; }
.admin-field-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.admin-check { margin:2px 0 20px; display:flex; align-items:center; gap:9px; color:#354052; font-size:13px; font-weight:700; }.admin-check input { width:17px; height:17px; }
.admin-form-alert { margin:0 0 18px; padding:12px 14px; border-left:4px solid #e52d35; border-radius:0 8px 8px 0; color:#a91d22; background:#fff0f1; font-size:13px; }.admin-form-alert[hidden] { display:none; }
.admin-form-actions { margin-top:8px; display:flex; justify-content:flex-end; gap:12px; }.admin-parent-label { margin:0 0 20px; padding:12px 14px; border-radius:8px; color:#516072; background:#f8fafc; font-size:13px; }
.admin-settings-card { width:min(100%,760px); padding:26px; display:grid; grid-template-columns:250px 1fr; gap:28px; border:1px solid #e4e7ec; border-radius:14px; background:#fff; }.admin-settings-card h2 { margin:0 0 8px; font-size:19px; }.admin-settings-card>div>p { margin:0 0 20px; color:var(--muted); line-height:1.5; }
.admin-qr-preview { min-height:250px; display:grid; place-items:center; overflow:hidden; border:1px dashed #8a94a4; border-radius:11px; color:#667085; background:#f8fafc; text-align:center; }.admin-qr-preview img { width:100%; height:100%; object-fit:contain; background:#fff; }.admin-settings-form { display:grid; }
.admin-lookup-form { width:min(100%,760px); padding:22px; display:grid; grid-template-columns:1fr auto; align-items:end; gap:14px; border:1px solid #e4e7ec; border-radius:12px; background:#fff; }.admin-lookup-form .admin-field { margin:0; }.admin-lookup-result { width:min(100%,760px); margin-top:20px; }
.admin-director-card { width:min(100%,760px); margin-bottom:28px; padding:24px; display:grid; gap:10px; border:1px solid #e4e7ec; border-radius:12px; background:#fff; }.admin-director-card h2,.admin-director-card p { margin:0; }.admin-director-card>p { color:var(--muted); line-height:1.5; }.admin-director-form { margin-top:8px; display:grid; grid-template-columns:1fr auto; align-items:end; gap:14px; }.admin-director-form .admin-form-alert { grid-column:1/-1; margin:0; }.admin-director-form .admin-field { margin:0; }.admin-director-warning { padding:12px 14px; border-left:4px solid #e5a000; border-radius:0 8px 8px 0; color:#8a5700; background:#fff8df; font-size:13px; }.admin-section-heading { width:min(100%,760px); margin:0 0 12px; font-size:19px; }
.admin-result-card { padding:24px; border:1px solid #e4e7ec; border-radius:12px; background:#fff; }.admin-result-card.success { border-color:#6ee7b7; background:#f0fdf8; }.admin-result-card.error { border-color:#fca5a5; color:#a91d22; background:#fff7f7; }.admin-result-card h2 { margin:0 0 16px; font-size:18px; }.admin-result-card p { margin:0; }
.admin-certificate-facts { margin:0; display:grid; grid-template-columns:1fr 1fr; gap:11px 24px; }.admin-certificate-facts dt { color:#667085; }.admin-certificate-facts dd { margin:0; overflow-wrap:anywhere; font-weight:800; }
.admin-filter-bar { margin-bottom:18px; padding:16px; display:grid; grid-template-columns:minmax(220px,1fr) 220px auto; align-items:end; gap:14px; border:1px solid #e4e7ec; border-radius:11px; background:#fff; }.admin-filter-bar .admin-field { margin:0; }.admin-filter-bar .admin-field-error { display:none; }
.admin-catalog-filter-bar { grid-template-columns:minmax(220px,1.5fr) repeat(4,minmax(130px,1fr)) auto; }.admin-filter-actions { display:flex; align-items:center; gap:10px; }.admin-filter-actions .button { white-space:nowrap; }
.admin-success-banner { margin-bottom:18px; padding:13px 15px; border-left:4px solid #10b981; border-radius:0 8px 8px 0; color:#087c62; background:#ecfdf5; font-size:13px; font-weight:750; }.admin-pagination { margin-top:18px; display:flex; align-items:center; justify-content:flex-end; gap:14px; color:#667085; font-size:13px; }
.admin-role-dialog { text-align:left; }.admin-role-dialog>p { margin-bottom:18px; }.admin-role-dialog .admin-form-actions { margin:4px -32px 0; padding:16px 32px; background:#fafafa; }.admin-role-dialog .admin-form-actions .button { flex:1; }

@media (max-width: 1100px) and (min-width: 781px) {
  .admin-catalog-filter-bar { grid-template-columns:repeat(2,minmax(0,1fr)); }.admin-catalog-filter-bar .admin-field:first-child,.admin-catalog-filter-bar .admin-filter-actions { grid-column:1/-1; }.admin-catalog-filter-bar .admin-filter-actions { justify-content:flex-end; }
}

@media (max-width: 780px) {
  .admin-navigation-open { overflow:hidden; }.admin-shell { display:block; }.admin-sidebar { position:fixed; top:0; right:auto; bottom:0; left:env(safe-area-inset-left,0px); z-index:80; width:224px; max-width:calc(100vw - 54px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)); height:auto; max-height:none; min-height:0; padding-top:max(28px,env(safe-area-inset-top,0px)); padding-bottom:max(20px,env(safe-area-inset-bottom,0px)); overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; scroll-padding-block:16px; scrollbar-gutter:stable; -webkit-overflow-scrolling:touch; transform:translateX(calc(-105% - env(safe-area-inset-left,0px))); box-shadow:14px 0 35px rgba(15,23,42,.2); transition:transform .18s ease; }.admin-sidebar > * { max-width:100%; min-width:0; flex:0 0 auto; }.admin-sidebar.is-open { transform:translateX(0); }.admin-sidebar.is-open::after { content:""; position:fixed; inset:0 0 0 calc(224px + env(safe-area-inset-left,0px)); z-index:-1; background:rgba(55,65,81,.45); }
  .admin-mobile-header { position:sticky; top:0; z-index:30; min-height:64px; padding:0 18px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #e4e7ec; background:#fff; }.admin-mobile-brand { color:#b51f25; font-weight:900; }.admin-menu-toggle { width:42px; height:42px; border:0; background:transparent; font-size:25px; cursor:pointer; }
  .admin-workspace { width:min(100% - 28px,1160px); padding:28px 0 72px; }.admin-loading,.admin-state { min-height:calc(100vh - 64px); }.admin-page-header { align-items:stretch; flex-direction:column; gap:16px; }.admin-page-header .button { width:100%; }.admin-page-header h1 { font-size:24px; }
  .admin-table-wrap { overflow:visible; border:0; background:transparent; box-shadow:none; }.admin-table { min-width:0; display:block; }.admin-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }.admin-table tbody { display:grid; gap:13px; }.admin-table tr { padding:16px; display:grid; gap:10px; border:1px solid #e4e7ec; border-radius:11px; background:#fff; }.admin-table td { padding:0; display:grid; grid-template-columns:105px 1fr; align-items:start; gap:12px; border:0; }.admin-table td::before { color:#5f6b7c; font-size:10px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }.admin-table td:nth-child(1)::before { content:"Record"; }.admin-table td:nth-child(2)::before { content:"Context"; }.admin-table td:nth-child(3)::before { content:"Details"; }.admin-table td:nth-child(4)::before { content:"Status"; }.admin-table td:nth-child(5)::before { content:"Actions"; }
  .admin-field-grid { grid-template-columns:1fr; gap:0; }.admin-form-card { padding:20px 17px; }.admin-form-actions { flex-direction:column; }.admin-form-actions .button { width:100%; }.admin-form-actions .button.dark { order:-1; }
  .admin-settings-card { padding:18px; grid-template-columns:1fr; }.admin-qr-preview { min-height:260px; }.admin-director-form,.admin-lookup-form { grid-template-columns:1fr; }.admin-director-form .button,.admin-lookup-form .button { width:100%; }.admin-certificate-facts { grid-template-columns:1fr; }.admin-certificate-facts dd { margin-bottom:6px; }
  .admin-filter-bar,.admin-catalog-filter-bar { grid-template-columns:1fr; }.admin-filter-bar .button { width:100%; }.admin-filter-actions { display:grid; grid-template-columns:1fr 1fr; }.admin-filter-actions .button { width:100%; }.admin-pagination { justify-content:center; flex-wrap:wrap; }
}

/* Phase 14.7 authorized gate scanner, camera lifecycle, outcomes, and statistics */
.scanner-body { min-width:320px; margin:0; color:#131b2b; background:#e7eaf0; }
.scanner-bootstrap { width:min(100%,430px); min-height:100vh; margin:0 auto; display:grid; place-items:center; align-content:center; gap:16px; color:#697386; background:#fff; text-align:center; }
.scanner-bootstrap h1 { margin:0; font-size:17px; }
.scanner-shell { width:min(100%,430px); min-height:100vh; margin:0 auto; background:#f8fafc; box-shadow:0 0 28px rgba(15,23,42,.12); }
.scanner-stage { min-width:0; }
.scanner-admin-sidebar { display:none; }
.scanner-header { position:sticky; top:0; z-index:50; min-height:68px; padding:0 18px; display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:11px; border-bottom:1px solid #e7eaf0; background:#fff; }
.scanner-brand { min-width:0; display:grid; color:#b51f25; line-height:1; text-decoration:none; }
.scanner-brand strong { overflow:hidden; font-size:20px; letter-spacing:-.6px; text-overflow:ellipsis; white-space:nowrap; }
.scanner-brand small { margin-top:7px; overflow:hidden; color:#5f6b7c; font-size:7px; font-weight:850; letter-spacing:2px; text-overflow:ellipsis; white-space:nowrap; }
.scanner-connectivity { min-width:68px; padding:6px 10px; border:1px solid currentColor; border-radius:999px; font-size:10px; font-weight:850; text-align:center; }
.scanner-connectivity::before { content:""; width:6px; height:6px; margin-right:6px; display:inline-block; border-radius:50%; background:currentColor; vertical-align:1px; }
.scanner-connectivity.online { color:#087c62; background:#ecfdf5; }.scanner-connectivity.offline { color:#b42318; background:#fff1f0; }
.scanner-menu-toggle { width:40px; height:40px; padding:0; border:0; color:#172033; background:transparent; cursor:pointer; font-size:25px; }
.scanner-menu { position:absolute; top:58px; right:14px; width:210px; padding:8px; display:grid; gap:3px; border:1px solid #dfe4eb; border-radius:11px; background:#fff; box-shadow:0 14px 35px rgba(15,23,42,.18); }
.scanner-menu[hidden] { display:none; }.scanner-menu a,.scanner-menu button { min-height:42px; padding:9px 11px; border:0; border-radius:7px; color:#344054; background:transparent; text-align:left; text-decoration:none; cursor:pointer; font:inherit; font-size:13px; font-weight:750; }.scanner-menu a:hover,.scanner-menu button:hover { color:#b51f25; background:#fff1f1; }
.scanner-workspace { min-height:calc(100vh - 68px); outline:none; }
.scanner-setup { padding:28px 20px 72px; background:#f8fafc; }
.scanner-setup-form { display:grid; gap:19px; }.scanner-setup-heading { margin-bottom:8px; }.scanner-setup-heading h1 { margin:9px 0 8px; font-size:27px; letter-spacing:-.03em; }.scanner-setup-heading p { margin:0; color:#697386; line-height:1.55; }
.scanner-field { display:grid; gap:7px; }.scanner-field label,.scanner-manual-form label { color:#3c485a; font-size:12px; font-weight:850; letter-spacing:.035em; text-transform:uppercase; }
.scanner-field select,.scanner-manual-form input { width:100%; min-height:49px; padding:11px 14px; border:1px solid #8a94a4; border-radius:11px; color:#172033; background:#fff; font:inherit; font-size:14px; }
.scanner-field select:focus-visible,.scanner-manual-form input:focus-visible { outline:3px solid var(--red); outline-offset:2px; border-color:var(--red); }
.scanner-form-error { margin:0; color:#b42318; font-size:12px; }.scanner-form-error[hidden] { display:none; }
.scanner-start-button { min-height:58px; margin-top:18px; color:#fff; border:0; background:linear-gradient(100deg,var(--red),var(--orange)); font-weight:850; box-shadow:0 8px 17px rgba(197,34,34,.24); }
.scanner-schedule-banner { min-height:42px; padding:10px 16px; display:flex; align-items:center; justify-content:space-between; gap:14px; border:1px solid #e3e7ed; border-radius:999px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.04); font-size:12px; }.scanner-schedule-banner strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.scanner-schedule-banner span { flex:0 0 auto; color:#566174; }
.scanner-schedule-banner.is-interactive { width:100%; color:inherit; font:inherit; cursor:pointer; text-align:left; }.scanner-schedule-banner.is-interactive:hover { border-color:#ef7379; }.scanner-schedule-banner.is-interactive:focus-visible { outline:3px solid rgba(239,68,68,.28); outline-offset:2px; }
.scanner-state-page { min-height:calc(100vh - 68px); padding:42px 20px 72px; display:grid; align-content:start; gap:28px; background:#fff; }
.scanner-state-panel { min-height:560px; display:grid; place-items:center; align-content:center; gap:13px; text-align:center; }.scanner-state-panel h1,.scanner-state-panel p { margin:0; }.scanner-state-panel h1 { font-size:29px; letter-spacing:-.025em; }.scanner-state-panel p { max-width:350px; color:#697386; line-height:1.55; }.scanner-state-icon { width:76px; height:76px; margin-bottom:10px; display:grid; place-items:center; border:1px solid #e0e4ea; border-radius:50%; color:#667085; background:#f5f6f8; font-size:32px; font-weight:900; }.scanner-state-panel.danger .scanner-state-icon { color:#d92d20; border-color:#fecaca; background:#fff1f0; }
.scanner-wide-action { width:100%; min-height:55px; margin-top:25px; }.scanner-text-action { min-height:42px; padding:8px 18px; border:0; color:#697386; background:transparent; cursor:pointer; font-weight:800; }
.scanner-forbidden { color:#fff; background:#111827; }.scanner-forbidden .scanner-state-panel p { color:#cbd5e1; }.scanner-expired { background:#fff; }
.scanner-active { padding:28px 20px 70px; display:grid; align-content:start; gap:20px; background:#f8fafc; }
.scanner-camera-card { position:relative; min-height:470px; overflow:hidden; border:5px solid #233044; border-radius:24px; background:#111827; box-shadow:inset 0 0 0 1px #4a5568; }
.scanner-camera-reader { position:absolute; inset:0; overflow:hidden; background:#111827; }.scanner-camera-reader video { width:100%!important; height:100%!important; object-fit:cover; }.scanner-camera-reader>div:first-child { border:0!important; }
.scanner-reticle { position:absolute; inset:34px; z-index:2; pointer-events:none; }.scanner-reticle span { position:absolute; width:38px; height:38px; border-color:#f8fafc; border-style:solid; border-width:0; }.scanner-reticle span:nth-child(1) { left:0; top:0; border-left-width:4px; border-top-width:4px; border-radius:10px 0 0; }.scanner-reticle span:nth-child(2) { right:0; top:0; border-right-width:4px; border-top-width:4px; border-radius:0 10px 0 0; }.scanner-reticle span:nth-child(3) { right:0; bottom:42px; border-right-width:4px; border-bottom-width:4px; border-radius:0 0 10px; }.scanner-reticle span:nth-child(4) { left:0; bottom:42px; border-left-width:4px; border-bottom-width:4px; border-radius:0 0 0 10px; }.scanner-reticle i { position:absolute; left:5%; right:5%; top:42%; height:3px; border-radius:999px; background:#ef3d44; box-shadow:0 0 10px #ef3d44; animation:scanner-line 2.2s ease-in-out infinite alternate; }
@keyframes scanner-line { from { transform:translateY(-55px); } to { transform:translateY(75px); } }
.scanner-camera-help { position:absolute; left:0; right:0; bottom:0; z-index:3; min-height:43px; margin:0; padding:12px 15px; color:#5f6b7d; background:rgba(255,255,255,.96); text-align:center; font-size:12px; }
.scanner-stats-slot { min-height:82px; }.scanner-live-stats { padding:18px; display:grid; grid-template-columns:1fr auto; gap:6px 14px; border:1px solid #e4e7ec; border-radius:14px; background:#fff; box-shadow:0 1px 4px rgba(15,23,42,.05); }.scanner-live-stats>span:first-child { grid-column:1/-1; color:#5f6b7c; font-size:10px; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }.scanner-live-stats>span:last-child { grid-column:1/-1; color:#667085; font-size:12px; }.scanner-stats-inline-error { width:100%; min-height:54px; border:1px solid #fda29b; border-radius:11px; color:#b42318; background:#fff1f0; cursor:pointer; font-weight:750; }
.scanner-processing-page .scanner-camera-card { min-height:430px; }.scanner-processing { min-height:230px; padding:32px 22px; display:grid; place-items:center; align-content:center; gap:12px; border-radius:24px 24px 0 0; background:#fff; text-align:center; box-shadow:0 -12px 30px rgba(15,23,42,.08); }.scanner-processing h1,.scanner-processing p { margin:0; }.scanner-processing h1 { font-size:20px; }.scanner-processing p { color:#697386; }
.scanner-result-page { min-height:calc(100vh - 68px); padding:32px 24px; display:grid; place-items:center; background:#eef1f5; }.scanner-result-page.accepted { background:var(--green); }.scanner-result-page.duplicate,.scanner-result-page.tampered { background:var(--red); }.scanner-result { width:100%; min-height:650px; display:grid; justify-items:center; align-content:center; gap:14px; color:#172033; text-align:center; }.scanner-result h1,.scanner-result p { margin:0; }.scanner-result h1 { font-size:31px; letter-spacing:-.03em; }.scanner-result>p { max-width:350px; color:#596579; line-height:1.5; }.scanner-result-page.accepted .scanner-result,.scanner-result-page.duplicate .scanner-result,.scanner-result-page.tampered .scanner-result { color:#fff; }.scanner-result-page.accepted .scanner-result>p,.scanner-result-page.duplicate .scanner-result>p,.scanner-result-page.tampered .scanner-result>p { color:#fff; }
.scanner-result-icon { width:84px; height:84px; margin-bottom:9px; display:grid; place-items:center; border:5px solid rgba(255,255,255,.42); border-radius:50%; color:#111827; background:#fff; font-size:42px; font-weight:900; }.scanner-result-page:not(.accepted):not(.duplicate):not(.tampered) .scanner-result-icon { color:#fff; border-color:#98a2b3; background:#344054; }
.scanner-result-facts { width:100%; margin:20px 0 0; padding:20px; display:grid; grid-template-columns:1fr 1fr; gap:11px 18px; border:1px solid rgba(255,255,255,.55); border-radius:14px; background:rgba(15,23,42,.38); text-align:left; }.scanner-result-facts dt { color:#fff; font-size:11px; }.scanner-result-facts dd { margin:0; overflow-wrap:anywhere; font-weight:850; text-align:right; }.scanner-result-metrics { width:100%; display:grid; grid-template-columns:1fr 1fr; gap:14px; }.scanner-result-metrics>div { min-height:74px; display:grid; place-items:center; align-content:center; gap:4px; border-radius:12px; color:#172033; background:#fff; }.scanner-result-metrics strong { font-size:22px; }.scanner-result-metrics span { color:#5f6b7c; font-size:10px; font-weight:750; }.scanner-result-action { width:100%; min-height:58px; margin-top:28px; color:#172033; background:#fff; font-weight:850; }.scanner-result-page:not(.accepted):not(.duplicate):not(.tampered) .scanner-result-action { color:#fff; background:#111827; }
.scanner-stats-page { min-height:calc(100vh - 68px); padding:25px 20px 70px; display:grid; align-content:start; gap:24px; background:#f8fafc; }.scanner-stats-loading { min-height:560px; display:grid; place-items:center; align-content:center; gap:15px; text-align:center; }.scanner-stats-loading h1 { margin:0; font-size:17px; }.scanner-stats-card { display:grid; gap:25px; outline:none; }.scanner-stats-card>h1 { margin:0; font-size:27px; }.scanner-stats-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.scanner-stats-grid>div { min-height:118px; display:grid; place-items:center; align-content:center; gap:7px; border:1px solid #e1e5eb; border-radius:14px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.05); }.scanner-stats-grid strong { font-size:36px; }.scanner-stats-grid span { color:#5f6b7c; font-size:11px; font-weight:750; }.scanner-stats-empty { margin:0; padding:28px 20px; border:1px solid #e1e5eb; border-radius:14px; color:#697386; background:#fff; text-align:center; line-height:1.5; }.scanner-capacity { padding:23px; display:grid; gap:13px; border:1px solid #e1e5eb; border-radius:14px; background:#fff; }.scanner-capacity>div:first-child { display:flex; justify-content:space-between; gap:20px; }.scanner-capacity small { color:#5f6b7c; text-align:center; }.scanner-capacity-track { height:11px; overflow:hidden; border-radius:999px; background:#eef1f4; }.scanner-capacity-track span { height:100%; display:block; border-radius:inherit; background:var(--green); }.scanner-stats-back { min-height:57px; margin-top:24px; color:#fff; background:var(--red); }.scanner-stats-error .scanner-state-panel { min-height:500px; }
.scanner-desktop-page { width:min(100% - 64px,1160px); margin:0 auto; padding:48px 0 100px; }.scanner-desktop-fallback { max-width:760px; }.scanner-desktop-fallback>h1 { margin:0 0 8px; font-size:31px; }.scanner-desktop-fallback>p { margin:0 0 28px; color:#697386; }.scanner-desktop-fallback>.scanner-schedule-banner { margin-bottom:18px; }.scanner-desktop-notice { margin-bottom:18px; padding:17px 20px; border:1px solid #b7d7ff; border-radius:11px; color:#2459ad; background:#eff6ff; line-height:1.5; }.scanner-manual-form { padding:28px; display:grid; gap:11px; border:1px solid #e1e5eb; border-radius:15px; background:#fff; box-shadow:0 2px 7px rgba(15,23,42,.05); }.scanner-manual-form .button { width:max-content; min-width:250px; min-height:54px; margin-top:9px; }
@media (min-width: 900px) {
  .scanner-shell { width:100%; max-width:none; box-shadow:none; }.scanner-shell.has-admin-sidebar { display:grid; grid-template-columns:224px minmax(0,1fr); }.scanner-admin-sidebar { display:flex; }.scanner-header { padding:0 32px; }.scanner-brand { max-width:230px; }.scanner-workspace { min-height:calc(100vh - 68px); }.scanner-setup { width:min(100% - 64px,760px); margin:0 auto; padding-top:48px; }.scanner-state-page { padding-left:max(24px,calc((100% - 760px)/2)); padding-right:max(24px,calc((100% - 760px)/2)); }.scanner-state-page>.scanner-schedule-banner { margin-top:0; }.scanner-result-page { padding-left:max(24px,calc((100% - 520px)/2)); padding-right:max(24px,calc((100% - 520px)/2)); }.scanner-stats-page { padding-left:max(24px,calc((100% - 680px)/2)); padding-right:max(24px,calc((100% - 680px)/2)); }
}
@media (max-width: 380px) {
  .scanner-header { padding:0 12px; gap:7px; }.scanner-brand strong { font-size:17px; }.scanner-connectivity { min-width:0; padding:6px 8px; font-size:0; }.scanner-connectivity::before { margin:0; }.scanner-setup,.scanner-active,.scanner-state-page,.scanner-result-page,.scanner-stats-page { padding-left:14px; padding-right:14px; }.scanner-camera-card { min-height:420px; }.scanner-result-facts { grid-template-columns:1fr; }.scanner-result-facts dd { text-align:left; }.scanner-manual-form { padding:20px 16px; }.scanner-manual-form .button { width:100%; min-width:0; }
}

/* Phase 14.6 receipt verification and notification recovery */
.verification-workspace { width:min(100% - 48px,1460px); }
.verification-layout { min-height:650px; display:grid; grid-template-columns:minmax(330px,.78fr) minmax(500px,1.22fr); overflow:hidden; border:1px solid #e3e7ed; border-radius:14px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.05); }
.verification-queue { min-width:0; padding:22px 18px; border-right:1px solid #e4e7ec; background:#fbfcfd; }
.verification-queue>header { margin:0 4px 18px; display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }.verification-queue>header h2,.verification-queue>header p { margin:0; }.verification-queue>header h2 { font-size:19px; }.verification-queue>header p { color:#667085; font-size:12px; text-align:right; }
.verification-queue-list { display:grid; gap:11px; }
.verification-queue-item { width:100%; min-height:82px; padding:15px 16px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px; border:1px solid #e5e8ed; border-radius:11px; color:#344054; background:#fff; text-align:left; cursor:pointer; }
.verification-queue-item:hover { border-color:#f4a2a6; }.verification-queue-item.selected { border-color:#ef7379; background:#fff3f3; box-shadow:0 0 0 2px rgba(239,68,68,.06); }
.verification-queue-context,.verification-queue-amount { min-width:0; display:grid; gap:5px; }.verification-queue-context strong { overflow-wrap:anywhere; color:#172033; font-size:14px; }.verification-queue-context small { overflow:hidden; color:#667085; text-overflow:ellipsis; white-space:nowrap; }.verification-queue-amount { justify-items:end; text-align:right; }.verification-queue-amount small { color:#9a5b00; font-size:10px; }.verification-queue-amount strong { color:#172033; font-size:13px; }
.verification-pagination { margin:18px -18px -22px; padding:17px 18px; display:grid; justify-items:center; gap:9px; border-top:1px solid #e4e7ec; background:#f6f7f9; }.verification-load-more { width:100%; }.verification-pagination-status { min-height:17px; margin:0; color:#a91d22; font-size:12px; text-align:center; }
.verification-detail { min-width:0; padding:24px; background:#f8fafc; }.verification-detail-content { display:grid; gap:18px; }.verification-detail-content>header h2,.verification-detail-content>header p { margin:0; }.verification-detail-content>header h2 { font-size:22px; }.verification-detail-content>header p { margin-top:5px; color:#667085; }
.verification-detail-state { min-height:590px; display:grid; place-items:center; align-content:center; gap:12px; text-align:center; }.verification-detail-state>span { font-size:38px; }.verification-detail-state h2,.verification-detail-state p { margin:0; }.verification-detail-state p { max-width:460px; color:#667085; line-height:1.55; }.verification-detail-state .button { margin-top:8px; }
.verification-preview { min-height:320px; overflow:hidden; display:grid; place-items:center; align-content:center; gap:13px; border-radius:13px; color:#dbe2ed; background:#111827; text-align:center; }.verification-preview.loading p,.verification-preview.error p { max-width:430px; margin:0; padding:0 22px; line-height:1.5; }.verification-preview.error>span { font-size:38px; }.verification-preview.error .button { margin-top:6px; }.verification-preview img { width:100%; height:420px; display:block; object-fit:contain; background:#111827; }.verification-preview iframe { width:100%; height:520px; border:0; background:#fff; }
.verification-facts { margin:0; padding:20px; display:grid; grid-template-columns:minmax(120px,.5fr) minmax(0,1fr); gap:11px 22px; border:1px solid #e4e7ec; border-radius:12px; background:#fff; }.verification-facts dt { color:#667085; }.verification-facts dd { margin:0; overflow-wrap:anywhere; font-weight:800; text-align:right; text-transform:none; }
.verification-flags { padding:19px; display:grid; grid-template-columns:1fr 1fr; gap:11px; border:1px solid #e4e7ec; border-radius:12px; background:#fff; }.verification-flags h3,.verification-flags>p { grid-column:1/-1; margin:0; }.verification-flags h3 { font-size:15px; }.verification-flags>p { color:#667085; font-size:12px; }.verification-flag { padding:12px; display:grid; gap:3px; border-radius:9px; }.verification-flag strong { font-size:12px; }.verification-flag span { font-size:11px; }.verification-flag.warning { color:#9a5b00; background:#fff7da; }.verification-flag.clear { color:#087c62; background:#ecfdf5; }
.verification-checklist { padding:20px; border:1px solid #e4e7ec; border-radius:12px; background:#fff; }.verification-checklist fieldset { margin:0; padding:0; border:0; }.verification-checklist legend { margin-bottom:14px; color:#172033; font-weight:800; }.verification-checklist .admin-check { min-height:54px; margin:0 0 10px; padding:13px 14px; border:1px solid #e4e7ec; border-radius:9px; background:#fbfcfd; }.verification-checklist fieldset[aria-invalid=true] { padding:10px; border:2px solid #ef4444; border-radius:10px; }
.verification-actions { margin-top:17px; display:grid; grid-template-columns:minmax(0,2fr) minmax(170px,.8fr); gap:14px; }.verification-approve { color:#fff; background:var(--green); }.verification-reject { color:#c52222; border:2px solid #c52222; background:#fff1f1; }
.verification-outcome { min-height:590px; padding:40px; display:grid; justify-items:center; align-content:center; gap:13px; border:1px solid #e4e7ec; border-radius:14px; background:#fff; text-align:center; }.verification-outcome.approve { border-color:#86efc4; }.verification-outcome.reject { border-color:#fca5a5; }.verification-outcome h2,.verification-outcome p { margin:0; }.verification-outcome>p { color:#667085; }.verification-outcome-icon { width:68px; height:68px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--green); font-size:36px; font-weight:900; }.verification-outcome.reject .verification-outcome-icon { background:var(--red); }.verification-notification-status { margin:8px 0!important; padding:12px 15px; border-radius:9px; line-height:1.5; }.verification-notification-status.sent { color:#087c62!important; background:#ecfdf5; }.verification-notification-status.unsent { color:#9a5b00!important; background:#fff7da; }.verification-notification-status.investigation { color:#9f1239!important; background:#fff1f2; }.verification-delivery-facts { width:min(100%,520px); margin:3px 0 5px; padding:15px 17px; display:grid; grid-template-columns:minmax(130px,.8fr) minmax(0,1.2fr); gap:8px 16px; border:1px solid #e4e7ec; border-radius:10px; color:#475467; background:#f8fafc; text-align:left; }.verification-delivery-facts dt { color:#667085; }.verification-delivery-facts dd { margin:0; overflow-wrap:anywhere; color:#172033; font-weight:750; text-align:right; }.verification-outcome .button { min-width:230px; }
.verification-reject-dialog { text-align:left; }.verification-reject-dialog h2 { text-align:center; }.verification-reject-dialog .modal-icon { text-align:center; }.verification-reject-dialog .admin-field { margin-top:18px; }.verification-reject-dialog .admin-form-alert { margin-top:12px; }.verification-reject-dialog .modal-actions { margin-top:8px; }

@media (max-width: 1050px) {
  .verification-layout { grid-template-columns:1fr; }.verification-queue { border-right:0; border-bottom:1px solid #e4e7ec; }.verification-queue-list { grid-template-columns:1fr 1fr; }.verification-detail-state { min-height:320px; }
}
@media (max-width: 780px) {
  .verification-workspace { width:min(100% - 28px,1460px); }.verification-queue,.verification-detail { padding:17px 14px; }.verification-queue-list { grid-template-columns:1fr; }.verification-queue>header { align-items:flex-start; flex-direction:column; }.verification-queue>header p { text-align:left; }.verification-pagination { margin:17px -14px -17px; }.verification-detail-content>header h2 { font-size:20px; }.verification-preview { min-height:250px; }.verification-preview img { height:310px; }.verification-preview iframe { height:390px; }.verification-facts { grid-template-columns:1fr; }.verification-facts dd { margin-bottom:5px; text-align:left; }.verification-flags { grid-template-columns:1fr; }.verification-actions { grid-template-columns:1fr; }.verification-reject { min-height:52px; }.verification-outcome { min-height:420px; padding:32px 20px; }.verification-outcome .button { width:100%; min-width:0; }.verification-reject-dialog { padding:24px 20px 0; }.verification-reject-dialog .modal-actions { margin-left:-20px; margin-right:-20px; padding-left:20px; padding-right:20px; }
}

/* Phase 14.8 Faculty and IT aggregate analytics */
.analytics-workspace { width:min(100% - 48px,1320px); }
.analytics-workspace .admin-page-header { align-items:center; }
.analytics-refresh { display:flex; align-items:center; justify-content:flex-end; gap:14px; }
.analytics-refresh-status { display:grid; justify-items:end; gap:3px; color:#667085; font-size:11px; }
.analytics-filter { margin-bottom:28px; padding:17px 18px; display:grid; grid-template-columns:minmax(260px,1fr) auto; align-items:end; gap:16px; border:1px solid #e1e5eb; border-radius:13px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.04); }
.analytics-filter-title { display:none; }
.analytics-filter .admin-field { margin:0; }.analytics-filter .admin-field-error { display:none; }.analytics-filter .button { min-height:44px; }
.analytics-section { margin-top:30px; }.analytics-section>h2 { margin:0 0 14px; color:#667085; font-size:13px; letter-spacing:.035em; }
.analytics-metrics { margin:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.analytics-metric { min-height:118px; padding:22px; display:grid; align-content:center; gap:9px; border:1px solid #e1e5eb; border-radius:14px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.05); }
.analytics-metric dt { color:#667085; font-size:12px; font-weight:800; }.analytics-metric dd { margin:0; color:#111827; font-size:34px; font-weight:900; letter-spacing:-.035em; }
.analytics-metric.warning dt { color:#9a5b00; }.analytics-metric.success dt,.analytics-metric.success dd { color:var(--green); }.analytics-metric.danger dt { color:#d92d20; }.analytics-metric.accent dd { color:#2463dd; }
.analytics-metric.dark { border-color:#111827; background:#111827; }.analytics-metric.dark dt { color:#aab4c4; }.analytics-metric.dark dd { color:#fff; }
.analytics-breakdowns { margin-top:28px; display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.analytics-panel { min-width:0; overflow:hidden; border:1px solid #e1e5eb; border-radius:14px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.04); }
.analytics-panel>h2 { margin:0; padding:19px 20px; border-bottom:1px solid #e9ecf1; font-size:16px; }
.analytics-panel .admin-table-wrap { border:0; border-radius:0; box-shadow:none; }.analytics-panel .admin-table { min-width:620px; }
.analytics-table td:last-child { color:var(--green); font-weight:850; }.analytics-table td small { display:block; margin-top:4px; color:#667085; }
.analytics-feedback-panel { margin-top:28px; padding:25px 28px; border:1px solid #e1e5eb; border-radius:14px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.04); }
.analytics-feedback-panel>header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }.analytics-feedback-panel h2,.analytics-feedback-panel p { margin:0; }.analytics-feedback-panel h2 { font-size:19px; }.analytics-feedback-panel p { margin-top:5px; color:#667085; font-size:12px; }
.analytics-feedback-count { padding:7px 12px; border-radius:999px; color:#2459ad; background:#eff6ff; font-size:12px; white-space:nowrap; }
.analytics-feedback-layout { margin-top:25px; display:grid; grid-template-columns:180px minmax(0,1fr); align-items:center; gap:28px; }
.analytics-average { min-height:130px; display:grid; place-items:center; align-content:center; gap:8px; border-right:1px solid #e4e7ec; }.analytics-average strong { font-size:48px; letter-spacing:-.05em; }.analytics-average span { color:#667085; font-size:11px; font-weight:800; }
.analytics-distribution { display:grid; gap:10px; }.analytics-rating-row { display:grid; grid-template-columns:55px minmax(0,1fr) 45px; align-items:center; gap:12px; color:#667085; font-size:11px; font-weight:800; }.analytics-rating-count { text-align:right; }
.analytics-meter { height:9px; overflow:hidden; border-radius:999px; background:#f0f2f5; }.analytics-meter span { height:100%; display:block; border-radius:inherit; background:#9a5b00; }
.analytics-platform-panel,.analytics-demand-panel { margin-top:28px; padding:25px 28px; border:1px solid #e1e5eb; border-radius:14px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.04); }
.analytics-platform-panel>header,.analytics-demand-panel>header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }.analytics-platform-panel h2,.analytics-demand-panel h2,.analytics-platform-panel p,.analytics-demand-panel p { margin:0; }.analytics-platform-panel h2,.analytics-demand-panel h2 { font-size:19px; }.analytics-platform-panel header p,.analytics-demand-panel header p { margin-top:5px; color:#667085; font-size:12px; line-height:1.5; }
.platform-evaluation-metrics { margin-top:24px; grid-template-columns:repeat(3,minmax(0,1fr)); }.analytics-inline-empty { margin-top:22px; padding:23px; border:1px dashed #cbd2dc; border-radius:11px; background:#f8fafc; }.analytics-inline-empty h3,.analytics-inline-empty p { margin:0; }.analytics-inline-empty h3 { color:#172033; font-size:16px; }.analytics-inline-empty p { margin-top:6px; color:#667085; font-size:13px; line-height:1.5; }
.analytics-demand-panel .admin-table-wrap { margin-top:22px; }.analytics-demand-table { min-width:900px; }.analytics-demand-table td:nth-child(4) { min-width:230px; }.analytics-film-list { margin:0; padding-left:18px; display:grid; gap:4px; color:#465264; }.analytics-demand-panel .analytics-order-note { margin-bottom:0; }
.analytics-comments-panel { margin-top:28px; padding:25px 28px; border:1px solid #e1e5eb; border-radius:14px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.04); }.analytics-comments-panel>header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }.analytics-comments-panel h2,.analytics-comments-panel p { margin:0; }.analytics-comments-panel h2 { font-size:19px; }.analytics-comments-panel header p { margin-top:5px; color:#667085; font-size:12px; line-height:1.5; }.analytics-comments-panel .admin-table-wrap { margin-top:22px; }.analytics-comments-table { min-width:760px; }.analytics-comments-table td:last-child { min-width:280px; color:#465264; font-weight:400; white-space:normal; }.analytics-comments-pagination { margin-top:16px; display:flex; align-items:center; justify-content:center; gap:14px; }.analytics-comments-pagination span { min-width:90px; color:#667085; text-align:center; font-size:13px; font-weight:800; }
.analytics-retention-warning { margin-top:28px; padding:19px 22px; border:1px solid #f0c36d; border-left:5px solid #d28a00; border-radius:12px; color:#704b00; background:#fff9e8; }.analytics-retention-warning h2,.analytics-retention-warning p,.analytics-retention-warning ul { margin:0; }.analytics-retention-warning h2 { color:#704b00; font-size:17px; }.analytics-retention-warning p { margin-top:6px; line-height:1.5; }.analytics-retention-warning ul { margin-top:12px; padding-left:20px; display:grid; gap:7px; }.analytics-retention-warning li { display:grid; gap:2px; }.analytics-retention-warning li span { color:#8a650e; font-size:13px; }
.analytics-leaderboard-link { min-height:70px; margin-top:28px; display:grid; place-items:center; border:1px solid #e1e5eb; border-radius:13px; color:#172033; background:#f3f4f6; text-align:center; text-decoration:none; font-weight:850; }.analytics-leaderboard-link:hover { color:#b51f25; background:#fff0f1; }
.analytics-state { min-height:470px; padding:42px 28px; display:grid; place-items:center; align-content:center; gap:13px; border:1px solid #e1e5eb; border-radius:15px; background:#fff; text-align:center; }.analytics-state.error { border:2px solid #ef4444; }.analytics-state h2,.analytics-state p { margin:0; }.analytics-state p { max-width:520px; color:#667085; line-height:1.55; }.analytics-state .button { margin-top:10px; }.analytics-state-icon { width:62px; height:62px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#ef4444; font-size:32px; font-weight:900; }
.analytics-leaderboard-table { min-width:820px; }.analytics-leaderboard-table td { height:82px; }.analytics-leaderboard-table td:last-child { color:#111827; font-size:18px; }.analytics-rank { width:38px; height:38px; display:grid!important; place-items:center; border-radius:50%; color:#8a5b00!important; background:#fff1b8; }
.analytics-order-note { margin:16px 4px 0; color:#667085; font-size:11px; text-align:center; }

@media (max-width: 1100px) {
  .analytics-breakdowns { grid-template-columns:1fr; }
}
@media (max-width: 780px) {
  .analytics-workspace { width:min(100% - 28px,1320px); }.analytics-workspace .admin-page-header { align-items:stretch; }
  .analytics-refresh { align-items:stretch; flex-direction:column; }.analytics-refresh-status { justify-items:start; }.analytics-refresh .button { width:100%; }
  .analytics-filter { padding:20px 17px; grid-template-columns:1fr; }.analytics-filter-title { margin:0; display:block; color:#172033; font-size:22px; font-weight:900; }.analytics-filter .button { width:100%; min-height:54px; }
  .analytics-metrics { grid-template-columns:1fr 1fr; }.analytics-metric { min-height:106px; padding:18px; }.analytics-metric dd { font-size:29px; }
  .analytics-breakdowns { gap:15px; }.analytics-panel { overflow:visible; border:0; background:transparent; box-shadow:none; }.analytics-panel>h2 { padding:0 0 12px; border:0; }
  .analytics-panel .admin-table { min-width:0; }.analytics-table td::before { content:attr(data-label)!important; }.analytics-table td:last-child { color:var(--green); }
  .analytics-feedback-panel { padding:21px 17px; }.analytics-feedback-panel>header { flex-direction:column; }.analytics-feedback-layout { grid-template-columns:1fr; gap:18px; }.analytics-average { min-height:100px; border-right:0; border-bottom:1px solid #e4e7ec; }.analytics-average strong { font-size:41px; }.analytics-rating-row { grid-template-columns:48px minmax(0,1fr) 36px; gap:8px; }
  .analytics-platform-panel,.analytics-demand-panel,.analytics-comments-panel { padding:21px 17px; }.analytics-platform-panel>header,.analytics-demand-panel>header,.analytics-comments-panel>header { flex-direction:column; }.platform-evaluation-metrics { grid-template-columns:1fr; }.analytics-demand-table,.analytics-comments-table { min-width:0; }.analytics-demand-table td:nth-child(4),.analytics-comments-table td:last-child { min-width:0; }.analytics-retention-warning { padding:18px 16px; }
  .analytics-leaderboard-link { padding:14px 18px; }.analytics-state { min-height:390px; padding:34px 20px; }
  .analytics-leaderboard-table { min-width:0; }.analytics-leaderboard-table td:last-child { font-size:14px; }
}
@media (max-width: 390px) {
  .analytics-metrics { grid-template-columns:1fr; }.analytics-filter { padding:17px 14px; }.analytics-feedback-count { white-space:normal; }
}
