:root{--ink:#151836;--text:#272b47;--muted:#5d6172;--faint:#8a8fa3;--bg:#f4f5fa;--surface:#ffffff;--surface-2:#f8f9fc;--line:#e7e9f3;--border:#d2d6e3;--accent:#0720f7;--accent-hover:#0518c9;--accent-soft:#eef0fe;--accent-soft-border:#d9defc;--accent-deep:#1e2560;--gold:#f7c600;--gold-soft:#fff6d9;--gold-shadow:rgba(247,198,0,0.35);--ok:#157f3d;--ok-bg:#e9f6ee;--warn:#8a5b06;--warn-bg:#fdf3dd;--err:#b42318;--err-bg:#fdecea;--err-border:#f3c3bd;--radius:12px;--radius-sm:8px;--shadow:0 1px 2px rgba(21,24,54,0.05),0 8px 24px rgba(21,24,54,0.05);--z-sticky:10}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:-apple-system,system-ui,Segoe UI,Roboto,sans-serif;margin:0;font-size:14px;line-height:1.5;color:var(--text);background:var(--bg)}main{max-width:1100px;margin:0 auto;padding:24px 20px 64px}h1{font-size:21px;font-weight:650;letter-spacing:-.01em;margin:8px 0 16px;text-wrap:balance}h1,h2{color:var(--ink)}h2{font-size:15px;font-weight:600;margin:28px 0 10px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code{font-size:13px;background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:1px 5px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}::selection{background:var(--accent-soft);color:var(--accent-deep)}header.admin{position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-sticky);background:var(--surface);border-bottom:1px solid var(--line)}header.admin .bar{max-width:1100px;margin:0 auto;padding:10px 20px 0;display:flex;align-items:center;gap:10px;min-width:0}header.admin .brand{flex:none}header.admin .brand:hover{text-decoration:none;opacity:.8}.logo-mark{display:inline-flex;align-items:center;gap:7px;line-height:1}.logo-word{font-weight:800;font-size:15px;letter-spacing:-.02em;color:var(--ink)}.logo-word b{color:var(--gold);font-weight:800}header.admin .event-name{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}header.admin .event-name:before{content:"·";margin-right:10px;color:var(--faint)}header.admin .home-link{margin-left:auto;font-size:13px;flex:none}nav.tabs{max-width:1100px;margin:0 auto;padding:0 20px;display:flex;gap:20px;overflow-x:auto;scrollbar-width:none}nav.tabs::-webkit-scrollbar{display:none}nav.tabs a{padding:9px 1px 10px;font-size:13.5px;color:var(--muted);border-bottom:2.5px solid transparent;white-space:nowrap;transition:color .15s ease-out}nav.tabs a:hover{color:var(--ink);text-decoration:none}nav.tabs a.active{color:var(--ink);border-bottom-color:var(--gold);font-weight:650}button,input,select,textarea{font:inherit;font-size:14px;color:var(--text);padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);max-width:100%;transition:border-color .15s ease-out,box-shadow .15s ease-out,background-color .15s ease-out}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=checkbox]{width:16px;height:16px;padding:0;accent-color:var(--accent);vertical-align:-3px}input[type=file]{border:none;padding:4px 0;background:none}textarea{vertical-align:top;resize:vertical}label{color:var(--text)}button{cursor:pointer;background:var(--gold);color:var(--ink);border-color:var(--gold);font-weight:700;padding:6px 16px;border-radius:999px;box-shadow:0 1px 5px var(--gold-shadow);transition:transform .15s ease-out,box-shadow .15s ease-out,background-color .15s ease-out,border-color .15s ease-out}button:hover{transform:translateY(-1px);box-shadow:0 5px 14px var(--gold-shadow)}button:active{transform:translateY(0);box-shadow:0 1px 3px var(--gold-shadow)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.secondary{background:var(--surface);color:var(--ink);border:1.5px solid var(--border);font-weight:600;box-shadow:none}button.secondary:hover{background:var(--surface-2);border-color:var(--faint);box-shadow:none}button.danger{background:var(--surface);color:var(--err);border:1.5px solid var(--border);font-weight:600;box-shadow:none}button.danger:hover{background:var(--err-bg);border-color:var(--err-border);box-shadow:none}button.big{padding:12px 22px;font-size:15px;min-height:48px}button:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}.msg{padding:9px 12px;margin:12px 0;background:var(--accent-soft);border:1px solid var(--accent-soft-border);color:var(--accent-deep);border-radius:var(--radius-sm);font-size:13.5px}.msg.err{background:var(--err-bg);border-color:var(--err-border);color:var(--err)}.empty{padding:28px 16px;text-align:center;font-size:13.5px;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);margin:12px 0}.empty,.loading{color:var(--muted)}.loading{animation:fade-pulse 1.4s ease-in-out infinite}@keyframes fade-pulse{0%,to{opacity:1}50%{opacity:.45}}.hint{font-size:13px;color:var(--muted)}.row,form.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0}.field{display:block;margin:0 0 14px}.field>span{display:block;font-size:12.5px;font-weight:550;color:var(--muted);margin-bottom:4px}.field input,.field select,.field textarea{width:100%}.field textarea.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12.5px;line-height:1.55}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto;margin:12px 0}table{border-collapse:collapse;width:100%;font-size:13.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td,th{padding:8px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}th{font-size:12.5px;font-weight:600;color:var(--muted);background:var(--surface-2);white-space:nowrap}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background-color .15s ease-out}tbody tr:hover{background:#fafbfe}td input,td select,td textarea{font-size:13px;padding:4px 8px}.scan-ok{color:var(--ok);font-weight:550}.scan-warn{color:var(--warn);font-weight:550}.scan-err{color:var(--err);font-weight:550}.scanner-video{width:100%;max-width:480px;border-radius:var(--radius);border:1px solid var(--line);background:var(--ink);margin:4px 0 8px}.auth{max-width:400px;margin:12vh auto 0;padding:0 20px}.auth .card{padding:28px 24px}.auth h1{margin-top:0}.auth .logo-mark{margin-bottom:16px}.auth .logo-word{font-size:17px}.auth form{display:flex;flex-direction:column;gap:10px;margin:16px 0 0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.cards{display:flex;flex-direction:column;gap:14px;max-width:680px}.cards .card h2{margin:0 0 10px}.card.hero{max-width:440px}.pulse-num{font-size:64px;font-weight:700;line-height:1;letter-spacing:-.02em;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.verdict{font-size:14px;margin-top:6px}.good{color:var(--ok);font-weight:600}.insight{font-size:14px;margin:10px 0 0}.sub{font-size:13px;color:var(--muted);margin:4px 0 0}.lines p{font-size:13.5px;margin:5px 0}.updated{font-size:12px;color:var(--faint);margin:10px 0 0}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gold);margin-right:6px;vertical-align:1px;animation:live-pulse 2s ease-out infinite}@keyframes live-pulse{0%{box-shadow:0 0 0 0 rgba(247,198,0,.5)}70%{box-shadow:0 0 0 7px rgba(247,198,0,0)}to{box-shadow:0 0 0 0 rgba(247,198,0,0)}}.wave{display:block;width:100%;height:72px}.wave .bar{fill:var(--ink)}.wave .tick{fill:var(--faint)}.wave .now{stroke:var(--accent)}.wave .base{stroke:var(--line)}.wave-hours{position:relative;height:14px}.wave-hours span{position:absolute;transform:translateX(-50%);font-size:10.5px;color:var(--faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.steps{list-style:none;padding:0;margin:0}.steps li{display:flex;gap:12px;align-items:center;padding:9px 0}.step-n{width:22px;height:22px;border:1.5px solid var(--border);border-radius:50%;font-size:12px;font-weight:600;color:var(--muted);text-align:center;line-height:20px;flex:none}.step-done .step-n{border-color:var(--ok);color:var(--ok);background:var(--ok-bg)}.step-done .step-label{text-decoration:line-through;color:var(--muted)}.report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.report-head .sub{margin-top:2px}.report .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px;margin:12px 0}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.stat .n{font-size:30px;font-weight:700;line-height:1.1;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat .k{font-size:12.5px;color:var(--muted);margin-top:2px}.comment{padding:10px 0;border-bottom:1px solid var(--line)}.comment:last-child{border-bottom:none}.comment .meta{font-size:12px;color:var(--faint);margin-bottom:2px}.comment .text{font-size:13.5px;white-space:pre-wrap}@media print{.no-print,header.admin{display:none!important}main{max-width:none;margin:0;padding:0}body{background:#fff;color:#000}h1{font-size:20px}.card,.stat,.table-wrap{box-shadow:none;border-color:#bbb;page-break-inside:avoid;break-inside:avoid}.pulse-num,.stat .n,h1,h2{color:#000}.stat,section,tr{page-break-inside:avoid;break-inside:avoid}a{color:inherit;text-decoration:none}}@media (max-width:640px){main{padding:16px 14px 56px}header.admin .bar,nav.tabs{padding-left:14px;padding-right:14px}.auth{margin-top:6vh}button,input,select,textarea{min-height:40px}input[type=checkbox]{min-height:0}td input,td select,td textarea{min-height:34px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.live-dot,.loading{animation:none}}