:root{
  --bg:#080b0d;--surface:#0d1114;--surface2:#12181c;--surface3:#171e23;--line:#293238;--line2:#364249;
  --text:#eef3f4;--muted:#94a0a6;--green:#78d51f;--green2:#9aea4f;--red:#ff4242;--yellow:#f6c344;--purple:#a966ff;--blue:#5ea3ff;
  --shadow:0 20px 50px rgba(0,0,0,.26);--radius:12px;--topbar:58px;--sidebar:216px;--scroll-thumb:#49545b;--scroll-track:#111619;
  color-scheme:dark;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text)}body{font-size:13px;letter-spacing:.01em}
button,input,select,textarea{font:inherit}button{cursor:pointer}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:99px}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:99px;border:2px solid var(--scroll-track)}::-webkit-scrollbar-thumb:hover{background:#65727a}
*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}
body.day{color-scheme:light;--bg:#f3f5f5;--surface:#ffffff;--surface2:#f8faf9;--surface3:#eef2f1;--line:#d3dcda;--line2:#bdc9c6;--text:#14191b;--muted:#5f6b6f;--shadow:0 15px 40px rgba(20,45,35,.12);--scroll-thumb:#9ca9a5;--scroll-track:#e7ecea}
body.custom-theme{--bg:var(--user-bg);--text:var(--user-text)}
.hidden{display:none!important}.mono{font-family:"Cascadia Mono",Consolas,monospace}.muted{color:var(--muted)}.green{color:var(--green)}.red{color:var(--red)}.yellow{color:var(--yellow)}.purple{color:var(--purple)}
#auth-layer{position:fixed;inset:0;z-index:10000;background:radial-gradient(circle at 50% 38%,#151c20,#050708 60%);display:flex;align-items:center;justify-content:center;color:#edf3f4}
.auth-card{width:min(430px,calc(100% - 34px));background:#0c1114;border:1px solid #283238;border-radius:18px;padding:28px;box-shadow:0 30px 90px #0009}.auth-brand{display:flex;gap:14px;align-items:center;margin-bottom:26px}.wolfmark{width:42px;height:42px;border:2px solid #dce7e8;border-radius:50%;position:relative;display:grid;place-items:center;font-size:18px}.wolfmark:before,.wolfmark:after{content:"";position:absolute;background:#dce7e8;width:2px;height:34px;transform:rotate(45deg)}.wolfmark:after{transform:rotate(-45deg)}.brandname{font-size:24px;font-weight:800;letter-spacing:.05em}.brandversion{font-size:10px;color:#93a0a6;margin-top:1px}.auth-card h2{margin:0 0 6px}.auth-card p{color:#94a0a6;line-height:1.5}.field{display:flex;flex-direction:column;gap:6px;margin:10px 0}.field label,.small-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.input,.select,.textarea{width:100%;background:var(--surface2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 10px;outline:none;min-height:36px}.input:focus,.select:focus,.textarea:focus{border-color:var(--green);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 18%,transparent)}.textarea{min-height:96px;resize:vertical}.auth-card .input{background:#12191d;color:#fff;border-color:#313c42}.auth-card .input:focus{border-color:#79d528}
.btn{border:1px solid var(--line);background:var(--surface3);color:var(--text);border-radius:8px;padding:8px 11px;min-height:34px;font-weight:650;transition:.15s}.btn:hover{border-color:var(--line2);filter:brightness(1.08)}.btn.primary{background:linear-gradient(#83db2d,#63bf11);color:#071004;border-color:#8ee93a}.btn.danger{border-color:#753333;color:#ff7777}.btn.ghost{background:transparent}.btn.icon{width:36px;padding:0;display:grid;place-items:center}.btn.slim{min-height:29px;padding:5px 8px;font-size:12px}.button-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
#app{height:100%;display:grid;grid-template-columns:var(--sidebar) 1fr;grid-template-rows:var(--topbar) 1fr;background:var(--bg)}
.topbar{grid-column:1/3;grid-row:1;display:flex;align-items:center;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(14px);z-index:50}.brand{width:var(--sidebar);height:100%;display:flex;align-items:center;gap:10px;padding:0 15px;border-right:1px solid var(--line)}.brand .wolfmark{width:34px;height:34px;border-color:var(--text)}.brand .wolfmark:before,.brand .wolfmark:after{background:var(--text);height:28px}.brand .brandname{font-size:17px}.brand .brandversion{font-size:8px}.top-title{font-size:14px;color:var(--muted);padding-left:18px;white-space:nowrap}.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px;padding-right:12px}.top-chip{height:32px;display:flex;align-items:center;gap:7px;padding:0 10px;border-left:1px solid var(--line);color:var(--muted);white-space:nowrap}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 10px color-mix(in srgb,var(--green) 60%,transparent)}.live-dot.stale{background:var(--yellow)}.live-dot.offline{background:var(--red)}#top-time{font-family:"Cascadia Mono",Consolas,monospace;font-weight:800;color:var(--red);font-size:14px}
.find-track{border-color:#446224!important}.find-track .pin{color:var(--green)}
.sidebar{grid-column:1;grid-row:2;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}.nav{padding:10px 8px;overflow-y:auto;flex:1}.navbtn{width:100%;height:39px;border:1.5px solid transparent;background:transparent;color:var(--muted);border-radius:9px;margin:2px 0;padding:0 10px;display:flex;align-items:center;gap:10px;text-align:left;font-size:12px;font-weight:650}.navbtn:hover{background:var(--surface3);color:var(--text)}.navbtn.active{border-color:var(--green);background:color-mix(in srgb,var(--green) 9%,var(--surface));color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 15%,transparent)}.navico{width:19px;text-align:center;font-size:16px}.sidebar-status{border-top:1px solid var(--line);padding:10px 11px;font-size:11px;color:var(--muted);display:grid;gap:5px}.sidebar-status b{color:var(--text);font-weight:650}
.main{grid-column:2;grid-row:2;overflow:auto;position:relative;padding:13px;background:radial-gradient(circle at 70% 0%,color-mix(in srgb,var(--green) 3%,transparent),transparent 42%),var(--bg)}.page{display:none;min-height:100%}.page.active{display:block}.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin:2px 2px 12px}.page-title{font-size:22px;font-weight:800;letter-spacing:.02em}.page-sub{color:var(--muted);font-size:11px;margin-top:4px}.grid{display:grid;gap:10px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.span2{grid-column:span 2}.span3{grid-column:span 3}.card{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface2) 87%,var(--surface)));border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 0 color-mix(in srgb,#fff 3%,transparent) inset;overflow:hidden}.card-head{height:38px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 12px;font-weight:750;font-size:11px;letter-spacing:.04em}.card-head .right{margin-left:auto}.card-body{padding:12px}.metric{font-size:27px;font-weight:700;letter-spacing:-.03em}.metric-label{font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.08em}.statline{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent)}.statline:last-child{border:0}.statline span:first-child{color:var(--muted)}
.data-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:11px}.data-table th{position:sticky;top:0;z-index:2;background:var(--surface2);color:var(--muted);font-size:9.5px;letter-spacing:.07em;text-align:left;padding:8px;border-bottom:1px solid var(--line)}.data-table td{padding:8px;border-bottom:1px solid color-mix(in srgb,var(--line) 62%,transparent)}.data-table tbody tr:hover{background:color-mix(in srgb,var(--green) 5%,transparent)}.table-wrap{overflow:auto;max-height:520px}.badge{display:inline-flex;align-items:center;justify-content:center;border-radius:5px;padding:2px 5px;font-size:10px;font-weight:800;background:#345ed7;color:#fff}.status-track{color:var(--green)}.status-pit{color:var(--yellow)}.bestlap{color:var(--purple)}
.switch{width:39px;height:21px;border-radius:99px;background:var(--line2);border:1px solid var(--line2);position:relative;display:inline-block;vertical-align:middle;cursor:pointer;flex:none}.switch:after{content:"";width:15px;height:15px;border-radius:50%;background:#f4f7f7;position:absolute;left:2px;top:2px;transition:.16s;box-shadow:0 1px 3px #0008}.switch.on{background:var(--green);border-color:var(--green)}.switch.on:after{transform:translateX(18px);background:white}.switch-row{display:flex;align-items:center;gap:8px}
/* Race wall */
#page-racewall{height:calc(100vh - var(--topbar) - 26px);min-height:650px}.racewall-shell{height:100%;position:relative}.racewall-toolbar{height:46px;display:flex;align-items:center;gap:7px;padding:5px 7px;margin-bottom:8px}.racewall-canvas{position:relative;height:calc(100% - 54px);min-height:560px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(120deg,var(--bg),color-mix(in srgb,var(--surface) 80%,var(--bg)));overflow:hidden}.rw-widget{position:absolute;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;min-width:150px;min-height:110px;box-shadow:0 12px 32px #0002}.rw-widget.editing{border-color:var(--green)}.rw-head{height:34px;padding:0 10px;display:flex;align-items:center;border-bottom:1px solid var(--line);font-size:10.5px;font-weight:800;letter-spacing:.05em;user-select:none}.rw-head .rw-actions{margin-left:auto}.rw-body{height:calc(100% - 34px);overflow:auto;padding:8px}.rw-widget.editing .rw-head{cursor:move}.rw-resize{display:none;position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 50%,var(--green) 51%)}.rw-widget.editing .rw-resize{display:block}.racewall-settings-tab{display:none;position:absolute;left:7px;top:7px;z-index:900}.racewall-drawer{display:none;position:absolute;left:7px;top:50px;width:290px;max-height:calc(100% - 60px);overflow:auto;z-index:899;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px;box-shadow:var(--shadow)}.racewall-drawer.open{display:block}.racewall-fullscreen .topbar,.racewall-fullscreen .sidebar{display:none!important}.racewall-fullscreen #app{display:block}.racewall-fullscreen .main{position:fixed;inset:0;padding:0;overflow:hidden}.racewall-fullscreen #page-racewall{height:100vh}.racewall-fullscreen .page-head,.racewall-fullscreen .racewall-toolbar{display:none}.racewall-fullscreen .racewall-canvas{height:100%;border-radius:0;border:0}.racewall-fullscreen .racewall-settings-tab{display:grid}
.rc-box{display:flex;flex-direction:column;height:100%;gap:7px}.rc-top{display:flex;align-items:center;justify-content:space-between}.rc-flag{font-size:16px;font-weight:900}.ticker{overflow:hidden;white-space:nowrap;border:1px solid var(--line);background:var(--surface2);border-radius:7px;min-height:33px;display:flex;align-items:center}.ticker span{display:inline-block;padding-left:100%;animation:ticker 14s linear infinite}.ticker.static span{padding-left:10px;animation:none}@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-100%)}}
/* Track visual */
.track-svg{width:100%;height:100%;min-height:200px;display:block}.track-line{fill:none;stroke:var(--text);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px #0008)}.track-start{fill:var(--green)}.track-meta{display:flex;gap:18px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--line)}
/* Weather/radar */
.weather-current{display:grid;grid-template-columns:1.3fr 1fr;gap:12px}.weather-main{display:flex;align-items:center;gap:12px}.weather-icon{font-size:37px}.forecast-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.forecast-cell{background:var(--surface2);border:1px solid var(--line);border-radius:8px;padding:8px;text-align:center;font-size:10px}.forecast-cell b{display:block;font-size:14px;margin:4px 0}.map{height:360px;border-radius:10px;overflow:hidden;background:#192329;border:1px solid var(--line);position:relative}.radar-widget-map{height:100%;min-height:130px}.map-status{position:absolute;left:8px;top:8px;z-index:700;background:#0a0d0edc;color:#e9f2f2;border:1px solid #405057;border-radius:6px;padding:5px 7px;font-size:10px}.map-time{position:absolute;right:8px;top:8px;z-index:700;background:#0a0d0edc;color:#e9f2f2;border:1px solid #405057;border-radius:6px;padding:5px 7px;font-size:10px}.leaflet-control-attribution{font-size:8px!important}
/* Forms */
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-group{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface2)}.form-group h3{font-size:11px;margin:0 0 8px;text-transform:uppercase;letter-spacing:.07em}.garage-grid{display:grid;grid-template-columns:300px 1fr;gap:10px;height:calc(100vh - 105px)}.garage-left,.garage-right{overflow:auto}.setup-dual{display:grid;grid-template-columns:1fr 1fr;gap:10px;height:560px}.setup-scroll{overflow:auto;padding-right:3px}.file-drop{border:1px dashed var(--line2);border-radius:10px;padding:16px;text-align:center;color:var(--muted);background:var(--surface2)}
/* schedule */.schedule-preview{max-height:380px;overflow:auto}.confidence-HIGH{color:var(--green)}.confidence-REVIEW{color:var(--yellow)}.confidence-LOW{color:var(--red)}
/* settings */.settings-layout{display:grid;grid-template-columns:230px 1fr;gap:10px}.settings-nav .btn{width:100%;margin-bottom:6px;text-align:left}.hue-slider{width:100%;appearance:none;height:16px;border-radius:99px;background:linear-gradient(to right,hsl(0 80% 50%),hsl(60 80% 50%),hsl(120 80% 45%),hsl(180 80% 45%),hsl(240 80% 55%),hsl(300 80% 50%),hsl(360 80% 50%));border:1px solid var(--line)}.hue-slider::-webkit-slider-thumb{appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid #111;box-shadow:0 1px 5px #0008}.color-preview{width:54px;height:32px;border:1px solid var(--line);border-radius:7px}.contrast-warning{color:var(--yellow);font-size:11px;margin-top:6px}
/* toast/modals */#toast-host{position:fixed;right:14px;bottom:14px;z-index:99999;display:grid;gap:7px}.toast{min-width:280px;max-width:430px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-left:3px solid var(--green);border-radius:9px;padding:10px 12px;box-shadow:var(--shadow);animation:toastin .2s}.toast.error{border-left-color:var(--red)}@keyframes toastin{from{transform:translateY(10px);opacity:0}}
.modal{position:fixed;inset:0;z-index:9000;background:#0009;display:grid;place-items:center;padding:20px}.modal-card{width:min(760px,100%);max-height:90vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.modal-head{height:46px;padding:0 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;font-weight:800}.modal-head .btn{margin-left:auto}.modal-body{padding:14px}
/* external displays */body.external .sidebar,body.external .top-title,body.external .brand{display:none}body.external #app{grid-template-columns:1fr;grid-template-rows:45px 1fr}body.external .topbar{grid-column:1}.external .main{grid-column:1;padding:5px}.external .top-actions{width:100%;justify-content:flex-end}.external .nav{display:none}
@media(max-width:1150px){:root{--sidebar:180px}.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.garage-grid{grid-template-columns:1fr;height:auto}.setup-dual{height:auto}.setup-scroll{max-height:560px}.top-chip.hide-small{display:none}}
@media(max-width:760px){#app{grid-template-columns:1fr;grid-template-rows:var(--topbar) 1fr}.brand{width:auto;border:0}.top-title{display:none}.sidebar{position:fixed;z-index:80;left:-220px;top:var(--topbar);bottom:0;width:210px;transition:.2s}.sidebar.open{left:0}.main{grid-column:1}.g2,.g3,.g4,.form-grid,.form-grid.two,.form-grid.three,.settings-layout,.setup-dual{grid-template-columns:1fr}.top-chip{display:none}.find-track{display:flex!important}.forecast-row{grid-template-columns:repeat(3,1fr)}.garage-grid{display:block}.racewall-canvas{overflow:auto}.rw-widget{min-width:260px}.page-title{font-size:18px}}
