:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f0f2f5;--text:#16181d;--muted:#69707d;--border:#dde1e7;--accent:#3158d4;--accent-soft:#e8edff;--success:#16784a;--success-soft:#e7f6ee;--warning:#9a6100;--warning-soft:#fff3d8;--danger:#b42318;--danger-soft:#fdecea;--shadow:0 12px 32px #181f2b14}*{box-sizing:border-box}html{background:var(--bg)}body{color:var(--text);background:var(--bg);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{min-height:100%}.topbar{z-index:20;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;justify-content:space-between;align-items:center;gap:16px;padding:14px 22px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;align-items:center;gap:10px;font-weight:800;display:flex}.brand-mark{background:var(--text);color:#fff;border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.nav{flex-wrap:wrap;gap:6px;display:flex}.nav a{color:var(--muted);border-radius:9px;padding:9px 11px;font-size:14px;font-weight:650}.nav a:hover{background:var(--surface-2);color:var(--text)}.main{width:min(1180px,100% - 28px);margin:26px auto 56px}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-head h1{letter-spacing:-.04em;margin:0 0 6px;font-size:clamp(28px,4vw,42px)}.page-head p{color:var(--muted);max-width:720px;margin:0}.grid{gap:16px;display:grid}.grid.stats{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:0 1px 2px #00000005}.card h2,.card h3{margin-top:0}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:700}.stat-value{letter-spacing:-.04em;margin-top:8px;font-size:34px;font-weight:800}.table-wrap{border:1px solid var(--border);background:var(--surface);border-radius:14px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:13px 14px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;background:#fafbfc;font-size:12px}tr:last-child td{border-bottom:0}.pill{border-radius:999px;align-items:center;gap:7px;padding:6px 9px;font-size:12px;font-weight:750;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.pill.inside{color:var(--success);background:var(--success-soft)}.pill.break{color:var(--warning);background:var(--warning-soft)}.pill.out{color:var(--danger);background:var(--danger-soft)}.pill.waiting{color:#5c6572;background:#eef0f3}.btn{background:var(--text);color:#fff;border:0;border-radius:10px;min-height:42px;padding:11px 14px;font-weight:750}.btn.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn.accent{background:var(--accent)}.btn.danger{background:var(--danger)}.btn:disabled{opacity:.5;cursor:not-allowed}.field{gap:7px;display:grid}.field label{color:#3f4651;font-size:13px;font-weight:750}.input,.select,.textarea{border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:10px;outline:none;min-height:44px;padding:10px 12px}.textarea{resize:vertical;min-height:150px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.muted{color:var(--muted)}.small{font-size:13px}.notice{border-radius:11px;padding:12px 14px;font-weight:650}.notice.good{background:var(--success-soft);color:var(--success)}.notice.warn{background:var(--warning-soft);color:var(--warning)}.notice.bad{background:var(--danger-soft);color:var(--danger)}.login-wrap{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--border);width:min(430px,100%);box-shadow:var(--shadow);background:#fff;border-radius:20px;padding:28px}.login-card h1{letter-spacing:-.04em;margin:12px 0 6px;font-size:31px}.scanner-layout{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px;display:grid}.scanner-panel{overflow:hidden}#reader{background:#101318;border-radius:14px;width:100%;min-height:340px;overflow:hidden}.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.mode-btn{border:1px solid var(--border);background:#fff;border-radius:11px;min-height:48px;font-weight:750}.mode-btn.active{background:var(--accent-soft);color:var(--accent);border-color:#bdcaff}.scan-result{text-align:center;background:var(--surface-2);border-radius:16px;place-items:center;min-height:230px;padding:20px;display:grid}.scan-result .icon{font-size:42px}.scan-result .name{margin-top:8px;font-size:25px;font-weight:850}.scan-result .message{color:var(--muted);margin-top:6px}.badge-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.badge{border:1px solid var(--border);text-align:center;background:#fff;border-radius:16px;padding:18px}.badge img{width:190px;max-width:100%;height:auto}.badge-name{margin-top:8px;font-size:20px;font-weight:800}.badge-code{color:var(--muted);word-break:break-all;margin-top:5px;font-size:12px}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (max-width:900px){.grid.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.scanner-layout,.grid.two{grid-template-columns:1fr}.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.topbar{flex-direction:column;align-items:flex-start}.main{width:min(100% - 20px,1180px);margin-top:18px}.grid.stats,.form-row,.badge-grid{grid-template-columns:1fr}.page-head{flex-direction:column}.mode-grid{grid-template-columns:1fr}}@media print{.topbar,.page-head .actions,.no-print{display:none!important}body{background:#fff}.main{width:100%;margin:0}.badge-grid{grid-template-columns:repeat(3,1fr)}.badge{break-inside:avoid;box-shadow:none}}.event-list,.event-stack{gap:12px;display:grid}.event-row{grid-template-columns:minmax(0,2fr) minmax(90px,.45fr) minmax(120px,.65fr) auto;align-items:center;gap:18px;display:grid}.event-row h2{margin-top:0}.event-meta{gap:2px;display:grid}.event-meta strong{font-size:20px}.event-meta span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:700}.event-details{border:1px solid var(--border);background:var(--surface);border-radius:16px;overflow:hidden}.event-details>summary{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:18px;padding:17px 19px;list-style:none;display:flex}.event-details>summary::-webkit-details-marker{display:none}.event-details>summary:after{content:"⌄";color:var(--muted);font-size:22px;transition:transform .15s}.event-details[open]>summary:after{transform:rotate(180deg)}.event-details[open]>summary{border-bottom:1px solid var(--border);background:#fbfcfd}.event-summary-main{gap:4px;min-width:0;display:grid}.event-summary-main strong{font-size:18px}.event-summary-counts{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.event-summary-counts span{border:1px solid var(--border);color:var(--muted);background:#fff;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:700}.event-summary-counts .summary-live{color:var(--success);background:var(--success-soft);border-color:#0000}.event-detail-body{padding:16px}.event-actions{margin-bottom:14px}.empty-state{color:var(--muted);text-align:center;padding:24px}.event-selector-card{padding:14px 18px}@media (max-width:780px){.event-row{grid-template-columns:1fr 1fr}.event-row>div:first-child,.event-row .actions{grid-column:1/-1}.event-details>summary{flex-wrap:wrap;align-items:flex-start}.event-summary-counts{justify-content:flex-start;width:100%;margin-left:0}}.event-panel{border:1px solid var(--border);background:var(--surface);border-radius:16px;overflow:hidden}.event-panel-head{grid-template-columns:minmax(0,1.4fr) auto auto;align-items:center;gap:14px;padding:17px 19px;display:grid}.event-panel-actions{justify-content:flex-end}.guest-details{border-top:1px solid var(--border)}.guest-details>summary{cursor:pointer;background:#fbfcfd;align-items:center;gap:6px;padding:12px 19px;font-weight:700;list-style:none;display:flex}.guest-details>summary::-webkit-details-marker{display:none}.guest-details>summary:after{content:"⌄";color:var(--muted);margin-left:auto;font-size:20px;transition:transform .15s}.guest-details[open]>summary:after{transform:rotate(180deg)}@media (max-width:760px){.event-panel-head{grid-template-columns:1fr;align-items:start}.event-panel-actions{justify-content:flex-start}}.public-shell,.guest-portal{width:min(860px,100% - 28px);margin:0 auto;padding:32px 0 64px}.public-head,.guest-hero{gap:14px;margin-bottom:24px;display:grid}.public-head h1,.guest-hero h1{letter-spacing:-.045em;margin:0;font-size:clamp(30px,7vw,48px)}.public-head p,.guest-hero p{color:var(--muted);margin:0}.public-brand{letter-spacing:-.02em;width:max-content;color:var(--accent);font-weight:850;display:inline-flex}.public-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:20px}.public-btn{background:var(--accent);color:#fff;border:0;border-radius:11px;min-height:46px;padding:11px 15px;font-weight:800}.public-btn.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.public-btn:disabled{opacity:.4;cursor:not-allowed}.day-switcher{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);background:#f6f7f9f0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:20px;padding:12px;display:grid;position:sticky;top:0}.day-switcher>div{text-align:center;min-width:0;display:grid}.day-switcher strong{overflow-wrap:anywhere}.timeline{display:grid;position:relative}.timeline:before{content:"";background:var(--border);width:2px;position:absolute;top:4px;bottom:4px;left:111px}.timeline-item{grid-template-columns:88px 22px minmax(0,1fr);align-items:start;gap:12px;min-height:108px;display:grid}.timeline-time{font-variant-numeric:tabular-nums;text-align:right;padding-top:13px;font-weight:850}.timeline-time span{color:var(--muted);font-size:12px;font-weight:650;display:block}.timeline-dot{background:var(--accent);border:3px solid var(--bg);outline:2px solid var(--accent-soft);z-index:1;border-radius:50%;width:13px;height:13px;margin-top:17px;margin-left:4px}.timeline-card{background:var(--surface);border:1px solid var(--border);border-radius:15px;margin-bottom:14px;padding:16px}.timeline-card h2{margin:0 0 5px;font-size:19px}.timeline-card p{color:var(--muted);margin:8px 0 0}.timeline-location{color:var(--accent);font-size:13px;font-weight:750}.schedule-admin-list{gap:14px;display:grid}.schedule-admin-row{border-top:1px solid var(--border);grid-template-columns:100px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 0;display:grid}.schedule-admin-row:first-of-type{border-top:0}.schedule-admin-time{font-variant-numeric:tabular-nums;font-weight:800}.page-head.compact{margin-bottom:14px}.page-head.compact h2{margin-bottom:5px}.guest-portal{align-content:center;min-height:100vh;display:grid}.guest-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;display:grid}.guest-action-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;flex-direction:column;justify-content:flex-end;gap:7px;min-height:190px;padding:22px;transition:border-color .15s,transform .15s;display:flex}.guest-action-card:hover{border-color:#b8c5ef;transform:translateY(-2px)}.guest-action-icon{background:var(--surface-2);border-radius:14px;place-items:center;width:46px;height:46px;margin-bottom:auto;font-size:24px;display:grid}.guest-action-card strong{letter-spacing:-.025em;font-size:22px}.guest-action-card span:last-child{color:var(--muted);line-height:1.45}.public-footnote{color:var(--muted);text-align:center;margin-top:20px;font-size:13px}.guest-identify{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;display:grid}.guest-reader{background:#101318;border-radius:14px;width:100%;min-height:280px;margin-top:14px;overflow:hidden}.poll-stack{gap:14px;margin-top:18px;display:grid}.poll-card{border-top:1px solid var(--border);padding-top:16px}.poll-card:first-child{border-top:0;padding-top:0}.poll-card h3{margin:0 0 6px;font-size:20px}.poll-card p{color:var(--muted);margin:0 0 12px}.vote-options{gap:8px;display:grid}.vote-option{text-align:left;border:1px solid var(--border);background:#fff;border-radius:12px;width:100%;padding:14px;font-weight:750}.vote-option:hover{border-color:var(--accent);background:var(--accent-soft)}.poll-options{min-height:110px}.badge-manual-code{letter-spacing:.06em;white-space:nowrap;font-weight:800}@media (max-width:700px){.day-switcher{grid-template-columns:1fr 1fr}.day-switcher>div{grid-area:1/1/auto/-1}.timeline:before{left:83px}.timeline-item{grid-template-columns:61px 22px minmax(0,1fr);gap:10px}.timeline-time{font-size:13px}.guest-actions,.guest-identify,.schedule-admin-row{grid-template-columns:1fr}}.congress-portal{min-height:100vh}.vote-identification-card{max-width:720px;margin:0 auto}.manual-badge-fallback{border-top:1px solid var(--border);margin-top:16px;padding-top:14px}.manual-badge-fallback summary{cursor:pointer;color:var(--muted);font-weight:700}.voter-identity{border-bottom:1px solid var(--border);padding-bottom:16px}.voter-identity h2{letter-spacing:-.03em;margin:3px 0 2px;font-size:28px}.poll-rule{margin:8px 0 12px;font-weight:700}.vote-choice{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:12px;align-items:flex-start;gap:11px;width:100%;padding:14px;font-weight:700;display:flex}.vote-choice input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin-top:2px}.vote-choice.selected{border-color:var(--accent);background:var(--accent-soft)}.vote-submit-row{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}@media (max-width:620px){.vote-submit-row{flex-direction:column;align-items:stretch}}.grid.stats.four-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.icon-btn{min-width:42px;padding:8px 12px;font-size:20px;line-height:1}@media (max-width:900px){.grid.stats.four-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.grid.stats.four-stats{grid-template-columns:1fr}}.checkout-event-control{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.checkout-event-control .btn:disabled{opacity:.55;cursor:not-allowed}.role-lines{gap:2px;line-height:1.2;display:grid}.role-lines span{font-size:13px;font-weight:800;display:block}.role-editor-view{align-items:flex-start;gap:8px;min-width:180px;display:flex}.role-edit-btn{min-height:32px;margin-left:auto;padding:5px 8px}.role-editor-form{gap:6px;min-width:220px;display:grid}.role-editor-form .select{min-height:36px;padding:7px 9px}.role-badge-grid{align-items:start}.badge-display-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;justify-items:center;gap:14px;padding:16px;display:grid}.badge-card-info{gap:6px;width:100%;display:grid}.badge-card-info>strong{font-size:18px}.badge-card-info .btn{width:max-content;margin-top:4px}.badge-design{aspect-ratio:150.15/243.64;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;flex:none;width:min(360px,100%);position:relative;overflow:hidden;container-type:inline-size}.badge-role-stack{z-index:2;justify-items:start;gap:.55cqw;width:80%;display:grid;position:absolute;top:29.96%;left:9.99%}.badge-role-stack span{letter-spacing:-.02em;white-space:nowrap;justify-content:center;align-items:center;width:max-content;max-width:100%;padding:.09em .12em;font-family:SuperX Sans,NaN SuperX Sans Display,Arial Black,Arial,sans-serif;font-size:8cqw;font-style:normal;font-weight:700;line-height:.9;display:inline-flex}.badge-person-name{z-index:2;color:#131c17;letter-spacing:-.02em;overflow-wrap:normal;word-break:normal;width:79.92%;font-family:SuperX Sans,NaN SuperX Sans Display,Arial Black,Arial,sans-serif;font-size:10.66cqw;font-style:normal;font-weight:700;line-height:1;position:absolute;top:43.1%;left:9.99%}.badge-design-qr{z-index:2;image-rendering:pixelated;top:59.51%;left:9.99%;width:37.3%!important;max-width:none!important;height:auto!important;position:absolute!important}@media (max-width:620px){.role-editor-view{min-width:150px}}.site-brand-link{padding:0}.site-brand-logo{object-fit:contain;width:145px;height:auto;display:block}.site-brand-logo.compact{width:128px}@media (max-width:620px){.site-brand-logo.compact{width:118px}}.public-brand .site-brand-logo{width:170px}.login-brand{flex-wrap:wrap;align-items:center}.login-brand .site-brand-logo{width:155px}.timeline-item.past{--timeline-state:#8a929e;--timeline-state-soft:#eef0f3}.timeline-item.current{--timeline-state:#168451;--timeline-state-soft:#e4f6ec}.timeline-item.upcoming{--timeline-state:#3158d4;--timeline-state-soft:#e8edff}.timeline-item .timeline-dot{background:var(--timeline-state);outline-color:var(--timeline-state-soft);transition:background-color .2s,outline-color .2s,transform .2s;position:relative}.timeline-item.current .timeline-dot:after{content:"";border:2px solid var(--timeline-state);opacity:.55;border-radius:50%;animation:1.6s ease-out infinite timeline-current-pulse;position:absolute;inset:-7px}.timeline-item.past .timeline-card{opacity:.72}.timeline-item.current .timeline-card{border-color:#a9dbc1;box-shadow:0 0 0 3px #16845114}.timeline-status{width:max-content;color:var(--timeline-state);background:var(--timeline-state-soft);border-radius:999px;margin-bottom:7px;padding:3px 7px;font-size:11px;font-weight:800;line-height:1.2;display:inline-flex}.timeline-item .timeline-time,.timeline-item .timeline-location{color:var(--timeline-state)}@keyframes timeline-current-pulse{0%{opacity:.7;transform:scale(.75)}70%,to{opacity:0;transform:scale(1.65)}}@media (prefers-reduced-motion:reduce){.timeline-item.current .timeline-dot:after{opacity:.35;animation:none;transform:scale(1.25)}}.mobile-nav-toggle,.mobile-nav-menu{display:none}.scan-result-panel,.scanner-panel{scroll-margin-top:88px}.scan-event-name{margin-top:4px}.scan-result-time{margin-top:10px;font-weight:800}.scan-ok-btn{min-width:150px;margin-top:18px}.scanner-help{margin-bottom:0}@media (max-width:900px){.topbar{flex-direction:row;align-items:center;min-height:58px;padding:8px 12px}.topbar .site-brand-logo.compact{width:auto;max-height:38px}.desktop-nav{display:none}.mobile-nav-toggle{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--text);border-radius:10px;justify-content:center;align-items:center;gap:7px;margin-left:auto;padding:7px 11px;font-weight:800;display:inline-flex}.mobile-nav-toggle span:first-child{font-size:20px;line-height:1}.mobile-nav-menu{z-index:30;border:1px solid var(--border);background:var(--surface);width:min(300px,100vw - 20px);box-shadow:var(--shadow);border-radius:12px;padding:9px;display:none;position:absolute;top:calc(100% + 1px);right:10px}.mobile-nav-menu.open{gap:4px;display:grid}.mobile-nav-menu a,.mobile-nav-menu .btn{border-radius:8px;justify-content:flex-start;align-items:center;width:100%;min-height:42px;padding:9px 11px;font-size:14px;font-weight:750;display:flex}.mobile-nav-menu a:hover{background:var(--surface-2)}.mobile-nav-menu .btn{margin-top:4px}.main{margin-top:18px}.scan-result-panel,.scanner-panel{scroll-margin-top:68px}}.fast-qr-reader{aspect-ratio:4/3;background:#101318;border-radius:14px;width:100%;margin-top:14px;position:relative;overflow:hidden}.fast-qr-video{object-fit:cover;background:#101318;width:100%;height:100%;display:block}.fast-qr-reader .scan-region-highlight{z-index:3}.fast-qr-reader .scan-region-highlight-svg{stroke:#fff!important;stroke-width:3px!important}.fast-qr-reader .code-outline-highlight{stroke:#20a464!important;stroke-width:5px!important}@media (max-width:700px){.fast-qr-reader{aspect-ratio:3/4;min-height:390px}}
