:root{--blue: #0078ff;--dark-blue: #002d4b;--red: #e6001e;--dark-red: #be001e;--ink: #0b1a26;--paper: #f4f6f9;--white: #ffffff;--muted: #6b7c8a;--gradient: linear-gradient(120deg, #0078ff 0%, #002d4b 42%, #be001e 70%, #e6001e 100%);--font: "Proxima Nova", "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font-family:inherit}.screen{min-height:100vh;min-height:100dvh;max-width:620px;margin:0 auto;padding:16px 16px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}.card{background:var(--white);border-radius:18px;padding:20px;box-shadow:0 6px 22px #002d4b14}.btn{border:none;border-radius:14px;padding:15px 18px;font-size:16px;font-weight:700;cursor:pointer;transition:transform .05s ease,filter .15s ease;width:100%}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{filter:brightness(1.05)}.btn-danger{background:var(--red);color:#fff}.btn-ghost{background:#eef2f6;color:var(--dark-blue)}.btn-big{font-size:18px;padding:18px}.btn-link{background:none;border:none;color:#cfe2ff;text-decoration:underline;cursor:pointer;font-size:14px;padding:0}.row-buttons{display:flex;gap:10px;margin-top:14px}.row-buttons .btn{flex:1}.small{font-size:13px}.login-screen{justify-content:flex-start}.brand-hero{background:var(--gradient);border-radius:22px;padding:34px 22px 30px;text-align:center;color:#fff;box-shadow:0 10px 30px #002d4b40}.brand-logo{width:200px;max-width:70%;height:auto}.hero-title{font-size:30px;font-weight:800;letter-spacing:1px;margin:18px 0 4px}.hero-sub{margin:0;opacity:.9;font-weight:600}.login-card h2{margin:0 0 14px;color:var(--dark-blue)}.login-card label{display:block;font-size:14px;font-weight:600;color:var(--dark-blue);margin-bottom:14px}.login-card input{width:100%;margin-top:6px;padding:14px;border:1.5px solid #d7e0e8;border-radius:12px;font-size:16px}.login-card input:focus{outline:none;border-color:var(--blue)}.footnote{text-align:center;color:var(--muted);font-size:13px}.error-text{color:var(--dark-red);font-weight:600;margin:4px 0}.game-header{display:flex;align-items:center;justify-content:space-between;background:var(--gradient);border-radius:16px;padding:12px 16px;color:#fff}.brand-logo-sm{height:26px;width:auto}.header-right{display:flex;align-items:center;gap:10px}.team-name{font-weight:700;font-size:14px}.gps-dot{width:10px;height:10px;border-radius:50%;background:#ffd23f}.gps-dot.on{background:#3ad06a;box-shadow:0 0 0 4px #3ad06a40}.gps-dot.off{background:#ff6b6b}.progress-pill{align-self:center;background:var(--dark-blue);color:#fff;padding:7px 16px;border-radius:999px;font-weight:700;font-size:14px}.clue-card{position:relative;overflow:hidden}.clue-flag{position:absolute;top:0;left:0;width:8px;height:100%;background:var(--gradient)}.clue-name{margin:0 0 10px;color:var(--dark-blue);font-size:22px}.clue-text{font-size:18px;line-height:1.5;font-style:italic;color:#1c2b38}.photo-hint{margin-top:14px;background:#eaf3ff;border-radius:12px;padding:12px 14px;color:var(--dark-blue);font-weight:600;font-size:14px}.cam-emoji{margin-right:4px}.instruction{margin:0 0 14px;color:var(--muted)}.hint-btn{margin-top:14px}.hint-box{margin-top:14px;background:#fff6e5;border:1.5px dashed #e0a500;border-radius:12px;padding:12px 14px;color:#7a5a00;font-size:15px;line-height:1.5}.camera{display:flex;flex-direction:column;align-items:center;gap:12px}.camera-live,.camera-captured{width:100%;position:relative}.camera-video{width:100%;border-radius:14px;background:#000;display:block;max-height:60vh;object-fit:cover}.shutter{position:absolute;bottom:16px;left:50%;transform:translate(-50%);width:68px;height:68px;border-radius:50%;background:#fff;border:5px solid rgba(0,0,0,.25);cursor:pointer;box-shadow:0 4px 14px #00000059}.shutter:active{transform:translate(-50%) scale(.92)}.submit-card .camera-video{max-height:44vh}.gps-readout{text-align:center;font-weight:700;margin:12px 0 0}.gps-readout.ok{color:#1a9c4b}.gps-readout.warn{color:var(--dark-red)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#001628b8;display:flex;align-items:center;justify-content:center;padding:20px;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{max-width:440px;width:100%;text-align:center}.modal-icon{font-size:46px}.modal h2{margin:8px 0 10px;color:var(--dark-blue)}.modal p{color:#33454f;line-height:1.5}.help-block{text-align:left;background:#f2f6fa;border-radius:12px;padding:12px 14px;margin:12px 0}.help-title{font-weight:800;color:var(--dark-blue);margin:8px 0 4px}.help-block ol{margin:0 0 6px;padding-left:20px}.help-block li{margin:4px 0;font-size:14px}.result-pass .modal-icon{animation:pop .4s ease}.result-fail h2{color:var(--dark-red)}@keyframes pop{0%{transform:scale(.4)}70%{transform:scale(1.15)}to{transform:scale(1)}}.finish-card{text-align:center}.finish-card h2{color:var(--dark-blue)}.prerace-card{text-align:center}.prerace-card h2{color:var(--dark-blue);margin:6px 0}.prerace-sub{margin:8px 0 0;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:1px;font-size:12px}.countdown{font-size:44px;font-weight:800;color:var(--blue);font-variant-numeric:tabular-nums;letter-spacing:1px;margin:2px 0}.prerace-when{margin:0;color:var(--muted);font-size:14px}.prerace-note{margin-top:14px;color:#33454f;line-height:1.5}.test-title{margin:0 0 8px;color:var(--dark-blue)}.test-result{margin-top:12px;border-radius:12px;padding:12px 14px;font-weight:600;line-height:1.4}.test-result.ok{background:#dff5e6;color:#1a7a3c}.test-result.bad{background:#fff1e0;color:#8a5a00}.admin-screen{max-width:1000px}.admin-controls{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}.control-item{display:flex;align-items:center;gap:14px}.muted{color:var(--muted)}.pill{background:#eef2f6;color:var(--dark-blue);border-radius:999px;padding:6px 12px;font-weight:700;font-size:13px;white-space:nowrap}.pill.big{font-size:15px;padding:8px 14px}.toggle{position:relative;width:74px;height:36px;border-radius:999px;background:#c6d0d9;border:none;cursor:pointer;display:flex;align-items:center}.toggle.on{background:var(--blue)}.toggle-knob{position:absolute;left:4px;width:28px;height:28px;border-radius:50%;background:#fff;transition:left .15s ease}.toggle.on .toggle-knob{left:42px}.toggle-label{position:absolute;right:10px;color:#fff;font-size:11px;font-weight:800}.toggle.on .toggle-label{right:auto;left:10px}.race-start-bar{margin-top:-6px}.start-input{padding:10px 12px;border:1.5px solid #d7e0e8;border-radius:10px;font-size:15px;font-family:inherit}.tabs{display:flex;gap:8px}.tab{flex:1;padding:12px;border:none;border-radius:12px;background:#e7edf2;color:var(--dark-blue);font-weight:700;cursor:pointer}.tab.active{background:var(--dark-blue);color:#fff}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.team-card.done{outline:2px solid #3ad06a}.team-card-head{display:flex;justify-content:space-between;align-items:baseline}.team-card-head h3{margin:0;color:var(--dark-blue)}.team-status{display:flex;justify-content:space-between;align-items:center;margin:10px 0}.progressbar{height:8px;background:#e7edf2;border-radius:999px;overflow:hidden}.progressbar-fill{height:100%;background:var(--gradient);transition:width .4s ease}.route-list{margin:12px 0;padding-left:20px;font-size:14px;color:#4a5b66}.route-list li{margin:3px 0}.route-done{color:#1a9c4b;text-decoration:line-through}.route-current{color:var(--blue);font-weight:800}.subs-list{display:flex;flex-direction:column;gap:10px}.sub-row{display:flex;gap:14px;align-items:center;padding:12px}.sub-pass{border-left:6px solid #3ad06a}.sub-fail{border-left:6px solid var(--red)}.sub-thumb{width:84px;height:84px;object-fit:cover;border-radius:10px}.sub-meta{flex:1}.sub-top{display:flex;align-items:center;gap:8px;color:var(--dark-blue)}.verdict{margin-left:auto;font-size:12px;font-weight:800;padding:3px 8px;border-radius:6px}.verdict.pass{background:#dff5e6;color:#1a9c4b}.verdict.fail{background:#ffe2e6;color:var(--dark-red)}.answers-list{display:flex;flex-direction:column;gap:12px}.answers-warn{background:#fff6e5;border:1.5px dashed #e0a500;border-radius:10px;padding:10px 12px;color:#7a5a00;margin:0}.answer-card{border-left:6px solid var(--blue)}.answer-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px}.answer-head h3{margin:0;color:var(--dark-blue)}.answer-field{margin-top:10px}.answer-label{display:inline-block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--blue);margin-bottom:2px}.answer-field p{margin:2px 0 0;color:#24333d;line-height:1.45}.answer-clue{font-style:italic}
