html{background:#fbf7ef}#root{min-height:100vh}:root{--bg:#fbf7ef;--surface:#fff;--surface-subtle:#fffaf1;--text:#15130f;--muted:#726a5d;--border:#eadfce;--blue:#2f6fbc;--blue-soft:#eaf2ff;--green:#2f965f;--green-soft:#e9f7ef;--amber:#d8a35d;--amber-soft:#fff2dc;--violet:#16130f;--violet-soft:#f1ede6;--danger:#dc2626;--shadow:0 20px 60px #3426141f;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--text);background:var(--bg);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.68}.entry-shell{background:radial-gradient(circle at 12% 12%, #d8a35d38, transparent 28%), linear-gradient(135deg, #2f965f1a, transparent 42%), linear-gradient(180deg, #fff, var(--bg));grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);align-items:center;gap:56px;min-height:100vh;padding:56px clamp(22px,7vw,112px);display:grid}.entry-copy h1,.public-heading h1,.admin-header h1,.login-card h1{color:var(--text);letter-spacing:0;margin:18px 0 0}.entry-copy h1{max-width:640px;font-size:clamp(42px,6vw,74px);font-weight:950;line-height:1}.entry-copy p{max-width:560px;color:var(--muted);margin:24px 0 0;font-size:18px;line-height:1.8}.brand-lockup{color:var(--text);align-items:center;gap:14px;font-weight:950;display:flex}.brand-lockup img{object-fit:contain;mix-blend-mode:multiply;border-radius:14px;width:62px;height:62px}.brand-lockup.compact{margin-bottom:20px}.brand-lockup.compact img{width:48px;height:48px}.brand-lockup span{border-left:4px solid var(--green);padding-left:14px;font-size:18px}.entry-actions,.admin-actions,.table-actions,.modal-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.primary-link,.secondary-link,.primary-button,.ghost-button,.submit-button{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 18px;font-size:15px;font-weight:800;line-height:1;text-decoration:none;transition:transform .18s,border-color .18s,background .18s;display:inline-flex}.primary-link,.primary-button,.submit-button{color:#fff;background:var(--green);box-shadow:0 12px 28px #2f965f38}.secondary-link,.ghost-button{color:var(--text);border-color:var(--border);background:#fff}.primary-link:hover,.secondary-link:hover,.primary-button:hover,.ghost-button:hover,.submit-button:hover{transform:translateY(-1px)}.entry-actions{margin-top:34px}.entry-device{justify-content:center;display:flex}.phone-shell{width:min(360px,100%);min-height:660px;box-shadow:var(--shadow);background:#fff;border:10px solid #15130f;border-radius:38px;padding:18px}.phone-status{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.mini-form{border:1px solid var(--border);background:linear-gradient(180deg, #fff, var(--surface-subtle));border-radius:16px;margin-top:34px;padding:22px}.mini-title{color:var(--text);font-size:24px;font-weight:900;display:block}.mini-roles{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px;display:grid}.mini-roles a{color:var(--green);text-align:center;background:var(--green-soft);border-radius:8px;padding:10px 0;font-size:13px;font-weight:800;text-decoration:none}.mini-line{background:#e9eef6;border-radius:8px;width:72%;height:42px;margin-top:18px}.mini-line.wide{width:100%}.mini-line.short{width:54%}.mini-submit{color:#fff;text-align:center;background:var(--green);border-radius:10px;margin-top:28px;padding:14px;font-weight:900;text-decoration:none;display:block}.public-shell,.login-shell,.state-page{background:radial-gradient(circle at 20% 8%, #d8a35d33, transparent 28%), linear-gradient(140deg, #2f965f1f, transparent 42%), linear-gradient(180deg, #fff, var(--bg));place-items:center;min-height:100vh;padding:24px;display:grid}.public-card,.result-card,.login-card,.state-panel{border:1px solid var(--border);background:#fff;border-radius:12px;width:min(560px,100%);padding:clamp(24px,5vw,42px);box-shadow:0 24px 70px #3426141a}.login-card,.state-panel{width:min(460px,100%)}.state-panel{text-align:center}.state-panel code{background:var(--surface-subtle);border-radius:8px;padding:8px 10px;display:inline-block}.spin{animation:1s linear infinite spin}.back-link{color:var(--muted);align-items:center;gap:7px;font-size:14px;font-weight:800;text-decoration:none;display:inline-flex}.public-heading{margin-top:26px}.public-heading span{color:var(--green);font-weight:900}.public-heading h1{font-size:clamp(30px,4.5vw,42px);line-height:1.12}.public-heading p,.login-card p,.admin-header p,.table-toolbar p,.modal-title p,.muted-line{color:var(--muted);margin:8px 0 0;line-height:1.7}.checkin-form{gap:22px;margin-top:28px;display:grid}.role-selector{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.role-option{min-height:86px;color:var(--text);text-align:left;border:1px solid var(--border);background:#fff;border-radius:10px;gap:6px;padding:14px;display:grid}.role-option span{font-size:16px;font-weight:900}.role-option small{color:var(--muted);font-size:12px;line-height:1.45}.role-option.active{border-color:var(--green);background:var(--green-soft)}.role-option.role-contestant.active{border-color:var(--amber);background:var(--amber-soft)}.role-option.role-judge.active{border-color:var(--violet);background:var(--violet-soft)}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.field-grid.compact{gap:12px}.field{gap:8px;display:grid}.field.full{grid-column:1/-1}.field span{color:var(--text);font-size:13px;font-weight:900}.field em{color:var(--danger);margin-left:4px;font-style:normal}.field input,.field select,.field textarea,.filters select,.search-box input{border:1px solid var(--border);width:100%;min-height:44px;color:var(--text);background:#fff;border-radius:8px;outline:none;padding:0 12px}.field textarea{resize:vertical;min-height:88px;padding-top:12px}.field input:focus,.field select:focus,.field textarea:focus,.filters select:focus,.search-box input:focus{border-color:var(--green);box-shadow:0 0 0 3px #2f965f24}.form-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:0;padding:12px 14px;font-size:14px;font-weight:800}.submit-button{width:100%;min-height:52px}.result-card{text-align:center}.result-icon{color:#fff;background:var(--green);border-radius:20px;place-items:center;width:70px;height:70px;display:inline-grid}.result-icon.duplicate{background:var(--amber)}.result-card h1{margin:20px 0 0;font-size:36px}.result-card>p{color:var(--muted);margin:10px 0 0}.receipt{text-align:left;gap:12px;margin:28px 0;display:grid}.receipt div{border-bottom:1px solid var(--border);justify-content:space-between;gap:16px;padding:13px 0;display:flex}.receipt span{color:var(--muted)}.full-width{width:100%}.admin-shell{background:radial-gradient(circle at 4% 0%, #d8a35d29, transparent 24%), linear-gradient(180deg, #fffdfa, var(--bg));min-height:100vh;padding:28px clamp(18px,4vw,56px) 46px}.admin-header{border:1px solid var(--border);background:#fff;border-radius:12px;justify-content:space-between;gap:24px;padding:22px;display:flex}.admin-header h1{font-size:clamp(26px,3vw,38px);font-weight:950}.admin-actions{align-self:flex-start}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.stat-card{border:1px solid var(--border);background:#fff;border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:6px 12px;min-height:120px;padding:18px;display:grid}.stat-icon{border-radius:10px;place-items:center;width:44px;height:44px;display:grid}.stat-card span{color:var(--muted);font-weight:800}.stat-card strong{color:var(--text);grid-column:1/-1;font-size:38px;line-height:1}.tone-blue .stat-icon,.tone-green .stat-icon{color:var(--green);background:var(--green-soft)}.tone-amber .stat-icon{color:var(--amber);background:var(--amber-soft)}.tone-violet .stat-icon{color:var(--text);background:var(--violet-soft)}.admin-grid{grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);gap:18px;margin-top:18px;display:grid}.qr-panel,.activity-panel,.table-panel{border:1px solid var(--border);background:#fff;border-radius:12px}.qr-panel,.activity-panel{padding:18px}.panel-title{color:var(--text);align-items:center;gap:8px;font-size:16px;font-weight:900;display:flex}.qr-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.qr-card{border:1px solid var(--border);background:linear-gradient(180deg, #fff, var(--surface-subtle));border-radius:8px;gap:10px;padding:12px;display:grid}.qr-card img{background:#fff;border-radius:8px;width:100%;max-width:148px}.qr-card strong{font-size:14px;display:block}.qr-card span{color:var(--muted);margin-top:3px;font-size:12px;line-height:1.45;display:block}.qr-card button{min-height:34px;color:var(--green);border:1px solid var(--border);background:#fff;border-radius:8px;font-size:13px;font-weight:800}.hourly-bars{gap:10px;margin-top:18px;display:grid}.hour-row{color:var(--muted);grid-template-columns:46px 1fr 28px;align-items:center;gap:10px;font-size:13px;font-weight:800;display:grid}.hour-row div{background:#efe5d8;border-radius:99px;height:10px;overflow:hidden}.hour-row i{border-radius:inherit;background:var(--green);height:100%;display:block}.table-panel{margin-top:18px;padding:0;overflow:hidden}.table-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;gap:18px;padding:20px;display:flex}.table-toolbar h2{margin:0;font-size:22px}.filters{border-bottom:1px solid var(--border);background:#fffaf2;grid-template-columns:minmax(260px,1fr) 180px 180px;gap:10px;padding:16px 20px;display:grid}.search-box{align-items:center;display:flex;position:relative}.search-box svg{color:var(--muted);position:absolute;left:12px}.search-box input{padding-left:38px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:880px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:14px 18px}th{color:var(--muted);background:#fffaf2;font-size:12px;font-weight:900}td{color:var(--text);font-size:14px}td span{color:var(--muted);margin-top:4px;font-size:12px;display:block}.role-badge{border-radius:99px;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.role-badge.role-audience{color:var(--green);background:var(--green-soft)}.role-badge.role-contestant{color:var(--amber);background:var(--amber-soft)}.role-badge.role-judge{color:var(--text);background:var(--violet-soft)}.row-actions{gap:8px;display:flex}.row-actions button{width:34px;height:34px;color:var(--muted);border:1px solid var(--border);background:#fff;border-radius:8px;place-items:center;display:grid}.table-empty{color:var(--muted);text-align:center;margin:0;padding:34px 20px;font-weight:800}.compact-empty{text-align:left;padding:18px 0 8px}.modal-backdrop{z-index:20;background:#0f172a75;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.editor-modal{width:min(760px,100%);max-height:92vh;box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:22px;overflow-y:auto}.modal-title{justify-content:space-between;gap:16px;margin-bottom:18px;display:flex}.modal-title h2{margin:0}.modal-title button{min-height:36px;color:var(--muted);border:1px solid var(--border);background:#fff;border-radius:8px;align-self:flex-start;padding:0 12px;font-weight:800}.editor-modal .role-selector{margin-bottom:16px}.modal-actions{justify-content:flex-end;margin-top:18px}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1100px){.entry-shell,.admin-grid{grid-template-columns:1fr}.entry-device{justify-content:flex-start}.stat-grid,.qr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.entry-shell{padding:34px 18px}.entry-copy h1{font-size:42px}.phone-shell{border-width:8px;min-height:520px}.role-selector,.field-grid,.field-grid.compact,.filters,.stat-grid,.qr-grid{grid-template-columns:1fr}.admin-header,.table-toolbar,.modal-title{flex-direction:column}.admin-actions,.table-actions,.modal-actions{width:100%}.admin-actions>*,.table-actions>*,.modal-actions>*{flex:1}.public-shell,.login-shell,.state-page{padding:14px}.public-card,.result-card,.login-card,.state-panel{border-radius:12px}.public-card{padding:22px 22px 24px}.public-heading{margin-top:10px}.public-heading h1{font-size:28px;line-height:1.16}.checkin-form{margin-top:22px}.receipt div{display:grid}}
