@import "https://fonts.googleapis.com/css2?family=Rajdhani:wght@500;600;700&family=Share+Tech+Mono&display=swap";:root{--bg-1:#04101e;--bg-2:#0a1c33;--card:#0d1e33d1;--card-border:#009fff29;--text:#eef5fb;--text-dim:#87a0b8;--brand:#009fff;--brand-bright:#33b5ff;--brand-deep:#07c;--red:#e63946;--red-bright:#ff4d5a;--gold:#ffd60a;--mono:"Share Tech Mono", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}body{color:var(--text);background:linear-gradient(135deg, var(--bg-1) 0%, var(--bg-2) 45%, #05223d 100%);background-attachment:fixed;font-family:Rajdhani,system-ui,sans-serif;overflow-x:hidden}body:before,body:after{content:"";filter:blur(110px);opacity:.35;z-index:-1;pointer-events:none;border-radius:50%;position:fixed}body:before{background:radial-gradient(circle,#009fff55,#0000 70%);width:520px;height:520px;animation:14s ease-in-out infinite alternate drift1;top:-140px;left:-120px}body:after{background:radial-gradient(circle,#00e0ff44,#0000 70%);width:460px;height:460px;animation:18s ease-in-out infinite alternate drift2;bottom:-120px;right:-100px}@keyframes drift1{0%{transform:translate(0)scale(1)}to{transform:translate(90px,60px)scale(1.2)}}@keyframes drift2{0%{transform:translate(0)scale(1.15)}to{transform:translate(-80px,-50px)scale(.95)}}#root{min-height:100vh}.app{max-width:1180px;margin:0 auto;padding:24px 20px 40px;position:relative}.app>*{z-index:1;position:relative}.racetrack{pointer-events:none;z-index:0;opacity:.6;position:fixed;inset:0}.racetrack svg{width:100%;height:100%;display:block}.header{z-index:20;flex-wrap:wrap;align-items:center;gap:18px;padding:8px 4px 16px;display:flex;position:relative}.logo-wrap{filter:drop-shadow(0 0 14px #009fff8c);animation:3.5s ease-in-out infinite alternate logoFloat}@keyframes logoFloat{0%{transform:translateY(0)rotate(-2deg)}to{transform:translateY(-6px)rotate(2deg)}}.header-title h1{letter-spacing:2px;text-transform:uppercase;margin:0;font-size:2.2rem;font-weight:700}.accent{color:var(--brand);text-shadow:0 0 18px #009fff99}.company-logo{filter:drop-shadow(0 0 10px #009fff59);width:auto;height:42px}.header .company-logo{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (width<=980px){.header .company-logo{display:none}}.subtitle{color:var(--text-dim);letter-spacing:1px;margin:2px 0 0;font-size:.95rem}.header-actions{flex-wrap:wrap;gap:10px;margin-left:auto;display:flex}.menu{position:relative}.btn-menu{color:var(--brand-bright);background:#009fff1a;border-color:#009fff66}.btn-menu:hover:not(:disabled){background:#009fff38}.menu-dropdown{z-index:40;background:#0e2138;border:1px solid #009fff40;border-radius:12px;min-width:230px;padding:6px;animation:.16s menuPop;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 44px #0000008c}@keyframes menuPop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.menu-item{text-align:left;letter-spacing:.5px;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:Rajdhani,sans-serif;font-size:.95rem;font-weight:600;transition:background .15s;display:flex}.menu-item:hover:not(:disabled){background:#ffffff12}.menu-item:disabled{opacity:.4;cursor:not-allowed}.menu-item-danger{color:var(--red-bright)}.menu-item-danger:hover:not(:disabled){background:#e6394624}.menu-item-icon{text-align:center;width:20px}.menu-divider{background:#ffffff1a;height:1px;margin:6px 8px}.checker-divider{opacity:.85;background-image:linear-gradient(45deg,#e8e8e8 25%,#0000 25% 75%,#e8e8e8 75%),linear-gradient(45deg,#e8e8e8 25%,#15151b 25% 75%,#e8e8e8 75%);background-position:0 0,7px 7px;background-size:14px 14px;border-radius:4px;height:14px;margin:4px 0 22px;animation:1.6s linear infinite checkerScroll}@keyframes checkerScroll{0%{background-position:0 0,7px 7px}to{background-position:14px 0,21px 7px}}.card{background:var(--card);border:1px solid var(--card-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px;margin-bottom:22px;padding:20px 22px;box-shadow:0 10px 32px #00000059}.card h2{letter-spacing:1.5px;text-transform:uppercase;color:var(--text);margin:0 0 16px;font-size:1.25rem}.empty-hint{color:var(--text-dim);margin:6px 0;font-style:italic}.podium{justify-content:center;align-items:flex-end;gap:26px;padding-top:8px;display:flex}.podium-slot{flex-direction:column;align-items:center;gap:4px;min-width:130px;display:flex}.podium-winner .podium-helmet{filter:drop-shadow(0 0 16px #ffd60a8c);animation:2.2s ease-in-out infinite winnerBounce}@keyframes winnerBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.podium-name{letter-spacing:.5px;text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-size:1.1rem;font-weight:700;overflow:hidden}.podium-time{font-family:var(--mono);color:var(--brand-bright);margin-bottom:8px;font-size:1.05rem}.podium-block{color:#000000a6;border-radius:10px 10px 0 0;justify-content:center;align-items:flex-start;width:100%;padding-top:8px;font-size:1.7rem;font-weight:700;display:flex}.podium-gold{background:linear-gradient(#ffd60a,#b8930a);box-shadow:0 0 26px #ffd60a59}.podium-silver{background:linear-gradient(#d8dde6,#8d97a8)}.podium-bronze{background:linear-gradient(#d09a5b,#8c5e2a)}.podium-empty{box-shadow:none;color:#ffffff38;background:#ffffff0d;border:1.5px dashed #ffffff2e;border-bottom:none}.time-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field label{text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);font-size:.78rem}.field input{color:var(--text);font-family:var(--mono);background:#060a16b3;border:1px solid #ffffff24;border-radius:10px;width:86px;padding:10px 12px;font-size:1.05rem;transition:border-color .2s,box-shadow .2s}.field-name input{width:230px;font-family:Rajdhani,sans-serif;font-weight:600}.field input:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #009fff40}.time-sep{font-family:var(--mono);color:var(--text-dim);padding-bottom:10px;font-size:1.4rem}.form-error{color:var(--red-bright);margin:10px 0 0;font-weight:600}.btn{letter-spacing:1px;text-transform:uppercase;color:var(--text);cursor:pointer;background:#ffffff12;border:1px solid #ffffff29;border-radius:10px;padding:10px 16px;font-family:Rajdhani,sans-serif;font-size:.95rem;font-weight:700;transition:transform .15s,box-shadow .2s,background .2s}.btn:hover:not(:disabled){background:#ffffff21;transform:translateY(-2px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--brand), var(--brand-deep));border-color:#0000;box-shadow:0 4px 18px #009fff66}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, var(--brand-bright), var(--brand));box-shadow:0 6px 24px #009fff8c}.btn-export{color:var(--brand-bright);background:#009fff1f;border-color:#009fff80}.btn-export:hover:not(:disabled){background:#009fff40}.btn-danger{color:var(--red-bright);background:#e639461f;border-color:#e6394680}.btn-danger:hover:not(:disabled){background:#e6394647}.btn-icon{background:0 0;border-color:#0000;padding:5px 9px;font-size:.95rem}.btn-icon:hover{background:#ffffff1f}.columns{grid-template-columns:5fr 7fr;align-items:start;gap:22px;display:grid}@media (width<=900px){.columns{grid-template-columns:1fr}}.bestlist{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.bestlist li{background:#ffffff0a;border:1px solid #ffffff0f;border-radius:12px;transition:transform .15s}.bestlist li:hover{border-color:#009fff73;transform:translate(4px)}.bestlist-row{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;padding:8px 14px;display:flex}.bestlist-delta{font-family:var(--mono);color:var(--text-dim);white-space:nowrap;font-size:.85rem}.bestlist-chevron{opacity:0;font-size:.85rem;transition:opacity .15s}.bestlist li:hover .bestlist-chevron{opacity:.9}.bestlist-hint{color:var(--text-dim);letter-spacing:.4px;margin:10px 2px 0;font-size:.82rem}.bestlist li.top-1{background:#009fff1a;border-color:#009fff8c}.bestlist li.top-2{border-color:#d8dde659}.bestlist li.top-3{border-color:#d09a5b66}.rank{font-family:var(--mono);color:var(--text-dim);text-align:center;width:26px;font-size:1.1rem}.top-1 .rank{color:var(--brand-bright)}.bestlist-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:1.05rem;font-weight:700;overflow:hidden}.bestlist-laps{color:var(--text-dim);white-space:nowrap;font-size:.85rem}.bestlist-time{font-family:var(--mono);color:var(--brand-bright);font-size:1.05rem}.table-wrap{max-height:480px;overflow:auto}.entries-table{border-collapse:collapse;width:100%}.entries-table th{text-align:left;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);-webkit-user-select:none;user-select:none;background:#0d2238;border-bottom:1px solid #ffffff1f;padding:8px 10px;font-size:.8rem;position:sticky;top:0}.entries-table th.sortable{cursor:pointer}.entries-table th.sortable:hover{color:var(--text)}.entries-table td{border-bottom:1px solid #ffffff0d;padding:7px 10px}.entries-table tbody tr:hover{background:#ffffff0a}.cell-driver{align-items:center;gap:8px;font-weight:600;display:inline-flex}.cell-time{font-family:var(--mono)}.cell-time-best{color:var(--brand-bright)}.best-badge{letter-spacing:.5px;background:#009fff29;border:1px solid #009fff80;border-radius:20px;margin-left:8px;padding:2px 7px;font-family:Rajdhani,sans-serif;font-size:.72rem;font-weight:700}.cell-date{color:var(--text-dim);font-size:.88rem}.cell-actions{gap:4px;display:inline-flex}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#040710b8;justify-content:center;align-items:center;animation:.18s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:#0e2138;border:1px solid #009fff40;border-radius:16px;width:calc(100% - 40px);max-width:560px;padding:24px 26px;animation:.2s popIn;box-shadow:0 24px 60px #0009}@keyframes popIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.modal h3{letter-spacing:1px;margin:0 0 16px;font-size:1.2rem}.modal-form{flex-wrap:wrap}.modal-form .field-name{flex:100%}.modal-form .field-name input{width:100%}.modal-form .field input{width:72px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{z-index:1;background:var(--card);border:1px solid var(--card-border);text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;width:100%;max-width:380px;padding:40px 44px;position:relative;box-shadow:0 20px 60px #00000080}.login-logo{filter:drop-shadow(0 0 18px #009fff8c);margin-bottom:8px;animation:3.5s ease-in-out infinite alternate logoFloat}.login-card h1{letter-spacing:2px;text-transform:uppercase;margin:0 0 14px;font-size:1.7rem}.login-company{height:30px;margin-bottom:26px}.login-card .field{text-align:left}.login-card .field input{letter-spacing:2px;width:100%;font-family:Rajdhani,sans-serif;font-weight:600}.login-btn{width:100%;margin-top:18px;padding:12px 16px;font-size:1.05rem}.login-shake{animation:.4s shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-9px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}.footer{text-align:center;color:var(--text-dim);letter-spacing:1px;margin-top:10px;font-size:.85rem}.cell-delta{font-family:var(--mono);color:var(--text-dim);white-space:nowrap;font-size:.9rem}.connection-banner{letter-spacing:.4px;background:#e6394624;border:1px solid #e6394673;border-radius:12px;margin-bottom:18px;padding:10px 16px;font-weight:600;animation:2s ease-in-out infinite bannerPulse}@keyframes bannerPulse{0%,to{opacity:1}50%{opacity:.65}}.modal-stats{width:min(560px,94vw);max-height:86vh;overflow-y:auto}.stats-head{align-items:center;gap:14px;display:flex}.stats-head h3{letter-spacing:1px;margin:0;font-size:1.45rem}.stats-sub{color:var(--text-dim);margin:2px 0 0;font-size:.88rem}.stats-close{margin-left:auto;font-size:1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:18px 0 14px;display:grid}.stat{background:#ffffff0a;border:1px solid #ffffff12;border-radius:12px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.stat-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;font-size:.78rem}.stat-value{font-family:var(--mono);font-size:1.15rem}.stat-best{color:var(--brand-bright)}.sparkline{background:#ffffff08;border:1px solid #ffffff0f;border-radius:12px;width:100%;height:auto;margin:6px 0 12px}.laps-wrap{border-radius:10px;max-height:260px;overflow-y:auto}.laps-table{border-collapse:collapse;width:100%;font-size:.92rem}.laps-table th{text-align:left;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;background:#0e2138;padding:6px 10px;font-family:Rajdhani,sans-serif;font-size:.78rem;position:sticky;top:0}.laps-table td{border-top:1px solid #ffffff0d;padding:7px 10px}.laps-table .lap-best td{background:#009fff14}.tv{flex-direction:column;min-height:100vh;padding:26px clamp(20px,4vw,60px) 30px;display:flex;position:relative}.tv>:not(.racetrack){z-index:1;position:relative}.tv-header{align-items:center;gap:18px;margin-bottom:8px;display:flex}.tv-title{align-items:center;gap:14px;display:flex}.tv-title h1{letter-spacing:2px;text-transform:uppercase;margin:0;font-size:clamp(1.6rem,3vw,2.4rem)}.tv .tv-corner-logo{z-index:5;opacity:.9;filter:drop-shadow(0 0 10px #009fff59);pointer-events:none;width:auto;height:clamp(30px,3.5vw,46px);position:fixed;bottom:clamp(18px,3vh,36px);left:auto;right:clamp(20px,4vw,60px)}.live-badge{letter-spacing:2px;color:#2ecc71;background:#2ecc711a;border:1px solid #2ecc7173;border-radius:999px;align-items:center;gap:9px;margin-left:auto;padding:6px 16px;font-family:Rajdhani,sans-serif;font-size:1.05rem;font-weight:700;display:flex}.live-dot{background:#2ecc71;border-radius:50%;width:10px;height:10px;animation:1.6s ease-in-out infinite livePulse}@keyframes livePulse{0%,to{opacity:1;box-shadow:0 0 #2ecc7180}50%{opacity:.55;box-shadow:0 0 0 7px #2ecc7100}}.live-offline{color:var(--red-bright);background:#e639461f;border-color:#e6394680}.live-offline .live-dot{background:var(--red-bright);animation:none}.tv-empty{color:var(--text-dim);margin:auto;font-size:clamp(1.3rem,3vw,2rem);font-style:italic}.tv-board li.tv-slot-empty{background:#ffffff06;border:1.5px dashed #ffffff1f;min-height:44px}.tv-slot-empty .tv-rank{color:#ffffff38}.tv-slot-line{border-top:1.5px dashed #ffffff1a;flex:1}.tv-main{flex-direction:row;flex:1;align-items:flex-start;gap:clamp(20px,3vw,50px);margin-top:10px;display:flex}.tv-podium-col{flex:0 0 clamp(320px,34vw,480px);justify-content:center;align-self:flex-start;align-items:center;height:calc(100vh - 130px);display:flex;position:sticky;top:0}.tv-podium{width:100%}@media (width<=1100px){.tv-main{flex-direction:column-reverse;align-items:stretch}.tv-podium-col{flex:none;align-self:stretch;height:auto;position:static}.tv-board{justify-content:flex-start;min-height:0}}.tv-podium .podium-name{font-size:clamp(1.1rem,2.2vw,1.6rem)}.tv-podium .podium-time{font-size:clamp(1rem,2vw,1.4rem)}.tv-board{flex-direction:column;flex:1;justify-content:center;gap:10px;min-width:0;min-height:calc(100vh - 130px);margin:0;padding:0;list-style:none;display:flex}.tv-board li{background:#0d1e33c7;border:1px solid #ffffff12;border-radius:14px;align-items:center;gap:clamp(12px,2vw,22px);padding:clamp(8px,1.2vh,14px) clamp(14px,2vw,26px);display:flex}.tv-board li.top-1{background:#009fff24;border-color:#009fff99}.tv-board li.top-2{border-color:#d8dde666}.tv-board li.top-3{border-color:#d09a5b73}.tv-rank{font-family:var(--mono);color:var(--text-dim);text-align:center;width:2ch;font-size:clamp(1.2rem,2.4vw,1.8rem)}.tv-board .top-1 .tv-rank{color:var(--brand-bright)}.tv-name{letter-spacing:.5px;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:clamp(1.15rem,2.4vw,1.8rem);font-weight:700;overflow:hidden}.tv-laps{color:var(--text-dim);white-space:nowrap;font-size:clamp(.85rem,1.5vw,1.05rem)}.tv-delta{font-family:var(--mono);color:var(--text-dim);text-align:right;min-width:7ch;font-size:clamp(.9rem,1.7vw,1.2rem)}.tv-time{font-family:var(--mono);color:var(--brand-bright);font-size:clamp(1.15rem,2.4vw,1.8rem)}
