:root{color:#edf3f6;background:#071018;font-family:Segoe UI,Arial,sans-serif;font-synthesis:none;--ink: #071018;--panel: #0d1922;--panel-raised: #111f29;--line: #22313b;--muted: #8fa1aa;--signal: #ef3e36;--lime: #b8d430;--post: var(--lime);--mono: Consolas, "Cascadia Mono", monospace}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 80% 0,#152732 0,transparent 40%),var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}small{color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.12em}.app{width:min(100%,640px);min-height:100vh;margin:0 auto;display:flex;flex-direction:column}.post-finish{--post: var(--signal)}.topbar{position:sticky;top:0;z-index:5;padding:max(14px,env(safe-area-inset-top)) 16px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);background:#071018f0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbar-title{display:flex;align-items:center;gap:11px;min-width:0}.topbar-title img{flex:none;object-fit:contain}.topbar-title>div{display:grid;gap:2px;min-width:0}.brand{color:var(--post);font-size:.66rem;font-weight:800;letter-spacing:.18em}.topbar strong{overflow:hidden;color:#fff;font-size:1.1rem;text-overflow:ellipsis;white-space:nowrap}.topbar .topbar-actions{display:flex;align-items:center;gap:8px}.install-button{padding:7px 11px;border:1px solid #394852;border-radius:8px;color:#fff;background:transparent;font-size:.72rem;font-weight:700}.network{display:inline-flex;align-items:center;gap:7px;color:#b9c6cc;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.network:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--signal);box-shadow:0 0 10px var(--signal)}.network.online:before{background:var(--lime);box-shadow:0 0 10px var(--lime)}.app main{flex:1;padding:14px 14px 28px}.context-strip{margin-bottom:14px;padding:12px 14px;display:grid;grid-template-columns:1.3fr 1fr auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.context-strip div{display:grid;gap:2px;min-width:0}.context-strip b{overflow:hidden;color:#fff;font-size:.95rem;text-overflow:ellipsis;white-space:nowrap}.context-strip button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;color:var(--muted);background:transparent;font-size:1.15rem}.notice{margin:0 0 14px;padding:11px 13px;border-left:3px solid var(--lime);border-radius:8px;color:#dbe7b0;background:#b8d4301a;font-size:.85rem}.notice.error,.form-error{border-left:3px solid var(--signal);color:#ffb3ae;background:#ef3e361f}.form-error{margin:10px 0;padding:10px 12px;border-radius:8px;font-size:.82rem}.capture-panel,.queue-panel,.history-panel,.stage-control{margin-bottom:14px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.capture-panel{border-top:3px solid var(--post)}.post-label{margin:0 0 14px;color:var(--post);font-size:.72rem;font-weight:800;letter-spacing:.16em}.official-terrain-clock{margin-bottom:16px;padding:14px 16px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;border:1px solid var(--line);border-left:3px solid var(--lime);border-radius:10px;background:#09141c}.official-terrain-clock small{color:var(--lime)}.official-terrain-clock strong{grid-row:1 / 3;grid-column:2;color:#fff;font:800 clamp(2rem,11vw,3.2rem)/1 var(--mono);letter-spacing:.02em;font-variant-numeric:tabular-nums}.official-terrain-clock span{color:var(--muted);font-size:.7rem}.official-terrain-clock.unavailable{border-left-color:var(--signal)}.official-terrain-clock.unavailable small{color:#ff918b}label{color:#b9c6cc;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}input,select,textarea{width:100%;border:1px solid #2c3d48;border-radius:10px;color:#fff;background:#071018}input::placeholder{color:#4d5f69}input:focus,select:focus,textarea:focus{border-color:var(--lime);outline:2px solid rgba(184,212,48,.35);outline-offset:1px}.lookup>label{display:block;margin-bottom:7px}.lookup>div{display:grid}.lookup input{min-width:0;padding:12px 14px;font:800 2.2rem/1 var(--mono);text-align:center}.lookup-hint{margin:7px 0 0;color:var(--muted);font-size:.75rem}.competitor-card{margin:14px 0;padding:12px;display:grid;grid-template-columns:54px 1fr;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-raised)}.competitor-card>span{width:54px;height:54px;display:grid;place-items:center;border-radius:10px;color:var(--ink);background:var(--post);font:800 1.45rem/1 var(--mono)}.post-finish .competitor-card>span{color:#fff}.competitor-card h2,.competitor-card p{margin:0}.competitor-card h2{color:#fff;font-size:1.1rem}.competitor-card p{color:var(--muted);font-size:.8rem}.capture-form{margin-top:16px}.time-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:36px}.time-heading button{padding:8px 13px;border:1px solid #394852;border-radius:8px;color:#fff;background:var(--panel-raised);font-size:.8rem;font-weight:700}.time-fields{display:flex;align-items:center;gap:6px;margin-top:7px}.time-fields input{padding:12px 8px;font:800 clamp(2.1rem,13vw,3.3rem)/1 var(--mono);letter-spacing:.03em;text-align:center;font-variant-numeric:tabular-nums}.time-fields b{color:var(--muted);font-size:2rem}.time-fields .millis{width:36%}.time-hint,.clock{margin:7px 0 0;color:var(--muted);font-size:.74rem}.clock.warning{padding:8px 10px;border-radius:8px;color:#ffb3ae;background:#ef3e361f;font-weight:700}.cancel-edit{margin:12px 0 0;padding:9px 12px;border:1px solid #394852;border-radius:8px;color:#b9c6cc;background:transparent}.primary{width:100%;min-height:58px;margin-top:16px;border:0;border-radius:12px;color:var(--ink);background:var(--post);font-size:1.1rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.post-finish .primary{color:#fff}.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.section-title h2{margin:2px 0 0;color:#fff;font-size:1.05rem}.send-button{padding:9px 13px;border:0;border-radius:8px;color:var(--ink);background:var(--lime);font-size:.8rem;font-weight:800}.queue-panel{border-color:#6b5a1c;background:#16170f}.record-list{display:grid;gap:6px}.record-row{padding:9px 11px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 10px;border:1px solid var(--line);border-radius:10px;background:#09141c}.record-row>span{padding:3px 7px;border-radius:5px;color:#f5d565;background:#f5d5651f;font-size:.62rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.record-row>span.sent{color:#c9e25a;background:#b8d4301f}.record-row>span.error{color:#ff918b;background:#ef3e3624}.record-row b{color:#fff;font-size:.95rem}.record-row time{color:#fff;font:800 1.05rem/1 var(--mono)}.record-row small{grid-column:2 / -1;font-size:.58rem;font-weight:600;letter-spacing:.06em}.edit-record{grid-column:3;grid-row:2;justify-self:end;padding:4px 10px;border:1px solid #394852;border-radius:6px;color:#b9c6cc;background:transparent;font-size:.72rem;font-weight:700}.empty{margin:0;color:var(--muted);font-size:.82rem}.stage-control{border-left:3px solid var(--lime)}.stage-control>label{display:block;margin-bottom:7px}.stage-control>select{padding:11px 12px;font-size:1.05rem;font-weight:700}.missing-confirmation{margin-top:14px;padding:14px;border:1px solid rgba(239,62,54,.5);border-radius:10px;background:#ef3e3614}.missing-confirmation>strong{color:#fff;font-size:1rem}.missing-confirmation>p{color:#b9c6cc;font-size:.8rem}.missing-confirmation>label{margin-top:9px;display:grid;grid-template-columns:1fr 150px;align-items:center;gap:8px;text-transform:none;letter-spacing:0}.missing-confirmation select{padding:8px}.missing-confirmation>div{margin-top:14px;display:flex;justify-content:flex-end;gap:8px}.missing-confirmation button{padding:9px 12px;border:1px solid #394852;border-radius:8px;color:#fff;background:transparent;font-weight:700}.missing-confirmation button:last-child{border-color:var(--lime);color:var(--ink);background:var(--lime)}.app-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);color:#566873;background:#09141c;font-size:.66rem}.app-footer div{display:flex;gap:14px}.app-footer button{border:0;color:var(--muted);background:transparent;text-decoration:underline}.station-change-backdrop{position:fixed;z-index:50;top:0;right:0;bottom:0;left:0;padding:20px;display:grid;place-items:center;background:#03080ccc}.station-change{width:min(100%,440px);padding:22px;border:1px solid var(--line);border-top:3px solid var(--signal);border-radius:14px;background:var(--panel)}.station-change>small,.station-change>strong{display:block}.station-change>strong{color:#fff;font-size:1.05rem}.station-change h2{margin:16px 0 6px;color:#fff;font-size:1.4rem}.station-change>p{color:var(--muted);font-size:.85rem}.station-change label{display:block;margin-bottom:6px}.station-change input{padding:13px;font:800 1.9rem/1 var(--mono);letter-spacing:.2em;text-align:center}.station-change form>div{margin-top:16px;display:flex;justify-content:flex-end;gap:9px}.station-change form>div button{padding:10px 14px;border:1px solid #394852;border-radius:8px;color:#fff;background:transparent;font-weight:700}.station-change form>div button:last-child{border-color:var(--signal);background:var(--signal)}.pairing,.boot{width:min(100%,520px);min-height:100vh;margin:auto;padding:max(40px,env(safe-area-inset-top)) 22px 30px;display:flex;flex-direction:column;justify-content:center}.pair-mark{height:64px;display:flex;align-items:end;gap:7px}.pair-mark i{width:16px;height:42px;display:block;border-radius:3px;transform:skew(-20deg);background:var(--lime)}.pair-mark i:nth-child(2){height:60px;background:var(--signal)}.pair-mark i:nth-child(3){height:30px}.pairing .eyebrow{margin:22px 0 6px;color:var(--lime);font-size:.72rem;font-weight:800;letter-spacing:.18em}.pairing h1{margin:0;color:#fff;font-size:clamp(1.9rem,8vw,2.6rem);line-height:1.1}.pairing>p:not(.eyebrow){color:var(--muted);line-height:1.6}.pairing-install{padding:11px 14px;border:1px solid #394852;border-radius:10px;color:#fff;background:transparent;font-weight:700}.pairing form{margin:20px 0;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.pairing form label{display:block;margin-bottom:7px}.pairing form input{padding:13px;font:800 1.9rem/1 var(--mono);letter-spacing:.2em;text-align:center}.pairing form button{width:100%;margin-top:12px;padding:14px;border:0;border-radius:10px;color:var(--ink);background:var(--lime);font-weight:800;letter-spacing:.04em;text-transform:uppercase}.pairing>small{font-weight:600;letter-spacing:.04em}.boot{align-items:center;gap:18px;color:var(--muted);text-align:center}.boot button{padding:10px 16px;border:1px solid #394852;border-radius:8px;color:#fff;background:transparent}.signal{width:36px;height:36px;border:4px solid var(--line);border-top-color:var(--lime);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:600px){.app main{padding:20px 20px 32px}.capture-panel,.queue-panel,.history-panel,.stage-control{padding:20px}}@media(max-width:480px){.missing-confirmation>label{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.signal{animation-duration:3s}}.post-finish .time-fields input{min-width:0;font-size:clamp(1.6rem,8.6vw,2.6rem)}.post-finish .time-fields .millis{flex:none;width:29%}.pairing-brand{display:flex;align-items:center;gap:14px}.pairing-brand img{object-fit:contain}.pairing-brand>div{display:grid;gap:3px}.pairing-brand strong{color:#fff;font-size:1.3rem;letter-spacing:.15em}.pairing-brand small{font-size:.62rem;letter-spacing:.18em}.boot-logo{object-fit:contain;opacity:.9}.control-picker{margin-bottom:14px;padding:12px 14px;display:grid;gap:8px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.control-picker small{color:var(--muted);font-weight:800;letter-spacing:.12em;font-size:.7rem}.control-picker div{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.control-picker button{display:grid;gap:2px;min-height:56px;padding:10px 12px;text-align:left;color:#fff;border:1px solid var(--line);border-radius:10px;background:transparent;font:inherit;font-weight:700}.control-picker button span{color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.1em}.control-picker button.active{color:var(--ink);border-color:var(--post);background:var(--post)}.control-picker button.active span{color:inherit}.control-picker button:disabled{opacity:.5}.post-rally{--post: #53a8ff}.post-rally.with-seconds .time-fields input{min-width:0;font-size:clamp(1.6rem,8.6vw,2.6rem)}.planned-start{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}.planned-fields{display:grid;grid-template-columns:64px 1fr 64px;gap:8px;align-items:stretch}.planned-fields input{min-width:0;padding:12px;text-align:center;color:#fff;border:1px solid var(--line);border-radius:12px;background:var(--ink);font:800 clamp(1.6rem,7vw,2.4rem)/1 var(--mono)}.planned-fields button{color:#fff;border:1px solid var(--line);border-radius:12px;background:transparent;font:800 1.2rem/1 var(--mono)}.summary-toggle{width:100%;margin-bottom:14px;padding:12px;color:#fff;border:1px solid var(--line);border-radius:12px;background:var(--panel);font:inherit;font-weight:800;letter-spacing:.04em}.summary-toggle.active{border-color:var(--post)}.summary-panel{display:grid;gap:14px}.summary-group{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.summary-group h3{margin:0 0 10px;font-size:.95rem}.summary-group h3 span{color:var(--muted);font-size:.75rem;font-weight:600}.summary-rows{display:grid;gap:6px}.summary-row{display:grid;grid-template-columns:44px 1fr auto auto auto;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;background:var(--ink)}.summary-row b{font:800 1.1rem/1 var(--mono)}.summary-row span{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.summary-row time{font:800 1rem/1 var(--mono)}.summary-row time small{color:var(--muted);font-size:.75rem}.summary-row em{font-style:normal;font-size:.7rem;font-weight:800;text-transform:uppercase;color:var(--lime)}.summary-row em.pending,.summary-row em.error{color:#ffd166}.summary-row button{padding:8px 12px;color:#fff;border:1px solid var(--line);border-radius:8px;background:transparent;font:inherit;font-weight:700}.messages-button{position:relative;padding:7px 12px;color:#fff;border:1px solid var(--line);border-radius:8px;background:transparent;font:inherit;font-size:.8rem;font-weight:800}.messages-button.unread{color:var(--ink);border-color:#ffd166;background:#ffd166;animation:messages-pulse 1.2s ease-in-out infinite}.messages-button b{margin-left:6px;padding:1px 6px;border-radius:999px;color:#ffd166;background:var(--ink)}@keyframes messages-pulse{50%{box-shadow:0 0 0 6px #ffd16640}}.messages-panel{max-width:560px}.messages-thread{display:grid;gap:8px;max-height:50vh;overflow-y:auto;margin:10px 0}.messages-thread .message{max-width:85%;padding:9px 12px;border-radius:12px;background:var(--ink)}.messages-thread .message.mine{justify-self:end;background:#53a8ff33}.messages-thread .message p{margin:0 0 4px;white-space:pre-wrap}.messages-thread .message small{color:var(--muted);font-size:.7rem}.messages-form{display:flex;gap:8px;margin-bottom:10px}.messages-form input{flex:1;min-width:0;padding:12px;color:#fff;border:1px solid var(--line);border-radius:10px;background:var(--ink);font:inherit}.messages-form input{letter-spacing:normal;font-size:1rem}.messages-form button,.messages-close{padding:12px 16px;color:var(--ink);border:0;border-radius:10px;background:var(--post);font:inherit;font-weight:800}.messages-form button:disabled{opacity:.45}.messages-close{width:100%;color:#fff;border:1px solid var(--line);background:transparent}.photo-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.photo-buttons button{padding:12px;color:#fff;border:1px solid var(--line);border-radius:10px;background:transparent;font:inherit;font-weight:800}.photo-draft{position:relative;margin-bottom:8px}.photo-draft img{display:block;max-width:100%;max-height:220px;border-radius:10px;border:1px solid var(--post)}.photo-draft button{position:absolute;top:6px;right:6px;width:32px;height:32px;color:#fff;border:0;border-radius:50%;background:#000000b3;font-size:1.2rem}.message-photo{display:block;max-width:100%;max-height:200px;margin-bottom:6px;border-radius:8px}.message-photo.loading{color:var(--muted);font-size:.8rem}
