/* Shared Nordic identity, aligned with nordic-vtc.de. */
:root {
  --bg:#080f16; --bg2:#0d1720; --bg3:#12212d; --panel:#0d1720;
  --surface:#0d1720; --border:#253845; --border-bright:#304653;
  --ice:#7bbde9; --ice-d:#5aa3d4; --ice-dd:#1a3a52; --ice-glow:#7bbde918;
  --white:#f4f8fb; --text:#f4f8fb; --gray:#98aab7; --gray-l:#b4c3ce;
  --muted:#98aab7; --accent:#7bbde9; --green:#7ed9c5; --online:#7ed9c5;
  --red:#f18b8b; --offline:#f18b8b; --orange:#edb57c; --yellow:#e5ce93;
  --heading:'Barlow Condensed','Arial Narrow',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{color-scheme:dark;scroll-behavior:smooth}
body{min-height:100vh;background:linear-gradient(#7bbde906 1px,transparent 1px),linear-gradient(90deg,#7bbde906 1px,transparent 1px),var(--bg);background-size:72px 72px;color:var(--white);font:14px/1.6 Inter,Arial,sans-serif}
body:before{content:'';position:fixed;top:0;left:0;width:3px;height:100vh;background:linear-gradient(var(--ice),var(--green) 55%,transparent);pointer-events:none;z-index:1100}
a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit;border-radius:0}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}a,button{transition:background .18s,border-color .18s,color .18s}a:hover{color:var(--ice)}:focus-visible{outline:2px solid var(--ice);outline-offset:4px}button:focus-visible{position:relative;z-index:2}
h1,h2{font-family:var(--heading);text-transform:uppercase;font-weight:600;line-height:1}h1{font-size:clamp(48px,6vw,86px);letter-spacing:-.015em}h1 span,h2 span{color:var(--ice)}h2{font-size:36px}img{max-width:100%;object-fit:cover}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;top:-100px;left:16px;z-index:2000;background:var(--ice);color:var(--bg);padding:12px}.skip-link:focus{top:8px}
/* Website navigation and heading */
.site-header{min-height:82px;display:flex;align-items:center;gap:30px;padding:18px max(28px,calc((100vw - 1440px)/2));background:#080f16f5;border-bottom:1px solid var(--border-bright);position:relative;z-index:1000}.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}.brand-mark{display:grid;place-items:center;width:48px;height:35px;background:var(--ice);color:#081018;font:800 20px/1 var(--heading);letter-spacing:.06em;clip-path:polygon(0 0,100% 0,82% 100%,0 100%)}.brand-name{font:700 19px/1 var(--heading);text-transform:uppercase;letter-spacing:.1em}.brand-name small{display:block;color:var(--muted);font:500 9px/1 Inter,sans-serif;letter-spacing:.22em;margin-top:8px}.site-header nav{margin-left:auto;display:flex;align-items:center;gap:28px}.site-header nav a{position:relative;color:var(--muted);font-size:13px;font-weight:600;white-space:nowrap}.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--white)}.site-header nav a[aria-current]:after{content:'';position:absolute;bottom:-29px;left:0;right:0;height:3px;background:var(--ice)}.header-login{font-size:12px;color:var(--ice);border-left:1px solid var(--border);padding-left:28px;white-space:nowrap}.website-link{font-size:12px;color:var(--muted);white-space:nowrap}
.main,.map-main{width:min(1440px,calc(100% - 64px));margin:0 auto}.page-hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:50px 0 35px}.page-hero:after{content:'';position:absolute;right:0;top:22px;width:35%;height:85%;z-index:-1;opacity:.4;background:repeating-linear-gradient(118deg,transparent 0 45px,#7bbde928 46px 47px,transparent 48px 90px);clip-path:polygon(35% 0,100% 0,100% 100%,0 100%)}.eyebrow{color:var(--ice);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin-bottom:14px}.hero-copy{color:var(--muted);max-width:650px;font-size:14px;margin-top:20px;line-height:1.8}.button,.text-link{display:inline-flex;align-items:center;justify-content:center;gap:28px;white-space:nowrap;font-size:12px;font-weight:700}.button{background:var(--ice);color:#07111a;padding:14px 21px;border:1px solid var(--ice);position:relative;overflow:hidden}.button:after{content:'';position:absolute;right:-9px;top:0;width:16px;height:100%;background:#ffffff30;transform:skewX(-16deg)}.button:hover{background:#d7efff;color:#07111a}.text-link{color:var(--ice);border-bottom:1px solid var(--border);padding:12px 0}.network-bar{display:flex;align-items:center;gap:24px;padding:13px 20px;background:var(--bg2);border:1px solid var(--border);color:var(--muted);font-size:10px}.network-bar b{color:var(--white);font-weight:600;margin-right:8px}.network-bar>span:nth-child(2){margin-left:auto;color:var(--ice)}
.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--border);margin-top:24px;background:var(--bg2)}.metrics article{position:relative;padding:24px 28px;border-right:1px solid var(--border)}.metrics article:last-child{border:0}.metrics article:before{content:'';position:absolute;top:-1px;left:0;width:75%;height:2px;background:linear-gradient(90deg,var(--ice),transparent)}.metrics article:nth-child(2):before{background:linear-gradient(90deg,var(--green),transparent)}.metrics article:nth-child(3):before{background:linear-gradient(90deg,#8399ff,transparent)}.metrics article>span{font-size:9px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}.metrics strong{display:block;font:600 50px/1 var(--heading);color:var(--ice);margin:16px 0 10px}.metrics p{font-size:11px;color:var(--muted)}
/* Tour overview */
.online-section,.jobs-section{margin-top:42px}.section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.section-header .eyebrow{margin-bottom:8px}.online-count{display:flex;align-items:center;gap:9px;color:var(--green);font-size:10px;letter-spacing:.05em}.online-dot,.status-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #7ed9c50d}.online-dot.error{background:var(--red)}.online-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.driver-card{display:flex;align-items:center;gap:14px;border:1px solid var(--border);background:var(--bg2);padding:20px;min-width:0;position:relative;color:var(--white)}.driver-card:hover{background:#132635;border-color:#44657a}.hub-page .driver-card{border-left:2px solid var(--green)}.driver-info{min-width:0;flex:1}.driver-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.driver-status,.driver-meta{font-size:10px;color:var(--muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.driver-status.driving{color:var(--ice)}.driver-card-links{display:flex;flex-direction:column;gap:5px}.dlink{border:1px solid var(--border);font-size:8px;letter-spacing:.05em;padding:5px 8px;color:var(--muted);white-space:nowrap}.dlink:hover{border-color:var(--ice);color:var(--ice)}.no-online{grid-column:1/-1;border:1px dashed var(--border);padding:25px;color:var(--muted);font-size:12px;text-align:center}
.jobs-table-wrap{overflow:auto;border:1px solid var(--border);background:var(--bg2)}.jobs-table{width:100%;min-width:1000px;border-collapse:collapse}.jobs-table th{background:var(--bg3);text-align:left;padding:16px 20px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.13em;white-space:nowrap}.job-row{border-top:1px solid var(--border);cursor:pointer}.job-row:hover{background:#12212d}.job-row td{padding:21px 20px;vertical-align:middle}.driver-cell{display:flex;align-items:center;gap:12px;min-width:145px}.driver-cell-name{font-size:13px;font-weight:600;max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.driver-cell img{flex-shrink:0}.city-col{font-size:13px;font-weight:600;line-height:1.4}.company-col{font-size:10px;color:var(--muted);margin-top:5px}.cargo-col{font-size:12px;color:var(--ice);max-width:180px}.dist-col{font:600 24px var(--heading);color:var(--ice);white-space:nowrap}.dist-unit{font-size:9px;color:var(--muted);margin-left:4px}.speed-col{font-size:11px;color:var(--gray-l);white-space:nowrap}.speed-top{font-size:9px;color:var(--muted);margin-top:4px}.hub-page .game-badge,.late-badge,.special-badge{font-size:9px;padding:3px 7px;border:1px solid #7bbde944;color:var(--ice);white-space:nowrap;background:#7bbde909}.hub-page .game-badge.ats{color:var(--green);border-color:#7ed9c544}.special-badge{color:var(--yellow);border-color:#e5ce9344;display:inline-block;margin-top:4px}.late-badge{color:var(--red);border-color:var(--red)}.detail-btn{min-height:36px;padding:8px 12px;border:1px solid var(--border);background:transparent;color:var(--white);font-size:9px;font-weight:600;letter-spacing:.06em}.detail-btn:hover{border-color:var(--ice);color:var(--ice);background:var(--ice-glow)}
/* Tour detail dialog */
.modal-overlay{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;background:#000b;backdrop-filter:blur(5px);padding:24px}.modal-overlay.show{display:flex}.modal{width:100%;max-width:980px;max-height:90vh;overflow:auto;background:var(--bg2);border:1px solid #4e7188;border-top:3px solid var(--ice)}.modal-header{position:sticky;top:0;z-index:1;background:var(--bg2);padding:24px 28px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:20px;justify-content:space-between}.modal-title{font:600 34px/1.1 var(--heading);text-transform:uppercase;overflow-wrap:anywhere}.modal-subtitle{color:var(--muted);font-size:11px;margin-top:8px}.modal-close{width:40px;height:40px;flex-shrink:0;border:1px solid var(--border);background:var(--bg3);font-size:20px;color:var(--ice)}.modal-close:hover{border-color:var(--ice)}.modal-body{padding:24px}.modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.modal-card{background:#101e29;border:1px solid var(--border);padding:20px;min-width:0}.modal-card-title{font-size:10px;color:var(--ice);text-transform:uppercase;letter-spacing:.16em;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.modal-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:9px 0;border-bottom:1px solid #25384580}.modal-row:last-child{border:0}.modal-key{font-size:10px;color:var(--muted);flex-shrink:0}.modal-val{font:500 17px/1.3 var(--heading);text-align:right;min-width:0;overflow-wrap:anywhere}.modal-val.good{color:var(--green)}.modal-val.bad{color:var(--red)}.modal-val.warn{color:var(--orange)}.modal-val.ice{color:var(--ice)}.dmg-bar-wrap{display:flex;align-items:center;gap:8px;min-width:0}.dmg-bar-bg{flex:1;height:4px;background:var(--bg);overflow:hidden}.dmg-bar-fill{height:100%}.dmg-bar-fill.low{background:var(--green)}.dmg-bar-fill.med{background:var(--orange)}.dmg-bar-fill.high{background:var(--red)}
/* Live map: existing Leaflet canvas and original game tile projection. */
.map-main .page-hero{padding:30px 0 25px}.map-main h1{font-size:clamp(42px,4.6vw,64px)}.map-main .hero-copy{margin-top:14px}.app{display:grid;grid-template-columns:310px minmax(0,1fr);grid-template-rows:58px minmax(480px,1fr);height:calc(100dvh - 350px);min-height:560px;border:1px solid var(--border)}.map-toolbar{grid-column:1/-1;display:flex;align-items:center;gap:18px;padding:10px 20px;background:var(--bg2);border-bottom:1px solid var(--border);min-width:0}.toolbar-label{color:var(--ice);font-size:9px;letter-spacing:.17em;font-weight:700;text-transform:uppercase}.map-page .game-badge{display:flex;border:1px solid var(--border)}.game-btn{padding:9px 15px;border:0;background:transparent;color:var(--muted);font-size:10px;font-weight:600;white-space:nowrap}.game-btn.active{background:var(--ice);color:#081018}.game-btn:hover{background:#243f51;color:var(--white)}.header-sep{flex:1}.status-pill{display:flex;align-items:center;gap:9px;font-size:10px;color:var(--muted);white-space:nowrap}.status-dot{background:var(--offline);box-shadow:none}.status-dot.online{background:var(--online);box-shadow:0 0 0 4px #7ed9c50d}.driver-count{font-size:11px;color:var(--ice);white-space:nowrap;border-left:1px solid var(--border);padding-left:16px}
.sidebar{display:flex;flex-direction:column;overflow:auto;background:var(--panel);border-right:1px solid var(--border);min-height:0}.sidebar>.section{padding:23px 20px 17px;border-bottom:1px solid var(--border)}.section-title{font:600 25px/1.1 var(--heading);text-transform:uppercase;color:var(--white)}.driver-list{flex:1;min-height:95px;overflow:auto}.map-page .driver-card{width:100%;text-align:left;padding:16px 18px;border:0;border-bottom:1px solid var(--border);cursor:pointer;gap:10px}.map-page .driver-card.selected{background:#152c3d;border-left:3px solid var(--ice)}.map-page .driver-name{font-size:12px}.driver-speed{font:600 18px var(--heading);color:var(--ice);white-space:nowrap}.driver-avatar,.driver-avatar-placeholder{width:34px;height:34px;flex-shrink:0;border:1px solid var(--border);background:#172e3e;display:grid;place-items:center;font-size:15px}.sel-avatar{width:40px;height:40px;border:1px solid var(--border)}.selected-panel{display:none;padding:20px;border-top:2px solid var(--ice);background:#101e29}.selected-panel.visible{display:block}.selected-panel .section-title{font-size:22px}.info-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #25384580}.info-row:last-child{border:0}.info-label{font-size:10px;color:var(--muted);flex-shrink:0}.info-value{font-size:11px;color:var(--ice);text-align:right;overflow-wrap:anywhere;min-width:0}.map-controls{display:flex;flex-direction:column;gap:8px;padding:16px;border-top:1px solid var(--border)}.ctrl-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:11px;border:1px solid var(--border);background:transparent;font-size:10px;font-weight:600}.ctrl-btn.active{background:#7bbde910;border-color:#44657a;color:var(--ice)}.ctrl-btn:hover{border-color:var(--ice);color:var(--ice)}.map-container{position:relative;overflow:hidden;min-width:0}#map{width:100%;height:100%;background:#0a141d}.leaflet-container{background:#0a141d!important;font-family:Inter,sans-serif}.leaflet-tile{filter:saturate(.65) brightness(.85)}.leaflet-control-zoom{border:1px solid var(--border-bright)!important;border-radius:0!important;box-shadow:0 3px 16px #0005!important}.leaflet-control-zoom a{border-radius:0!important;background:var(--bg2)!important;color:var(--ice)!important;border-color:var(--border)!important;width:36px!important;height:36px!important;line-height:36px!important}.leaflet-control-attribution{background:#080f16dd!important;color:var(--muted)!important;font-size:9px!important}.leaflet-control-attribution a{color:var(--ice)!important}.truck-marker-wrap{display:flex;align-items:center;flex-direction:column}.truck-dot{width:15px;height:15px;border-radius:50%;border:2px solid #d7efff;background:var(--ice);box-shadow:0 0 0 5px #7bbde922,0 2px 8px #000a}.truck-dot.selected{width:19px;height:19px;background:var(--green);border-color:#fff;box-shadow:0 0 0 7px #7ed9c530,0 2px 12px #000}.truck-label{font-size:10px;font-weight:600;white-space:nowrap;color:var(--white);margin-top:7px;padding:3px 7px;border:1px solid #44657a;background:#080f16eb}
#no-data{position:absolute;inset:0;z-index:400;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#080f16cc;backdrop-filter:blur(2px);padding:24px;text-align:center}#no-data.hidden{display:none}.nd-icon{font-size:38px;opacity:.5}.nd-text{font:600 32px/1 var(--heading);color:var(--ice);text-transform:uppercase}.nd-sub{font-size:10px;color:var(--muted);overflow-wrap:anywhere;max-width:100%}.empty-list{padding:25px 18px;color:var(--muted);font-size:12px;text-align:center}.config-panel{display:none;position:absolute;bottom:25px;left:50%;transform:translateX(-50%);z-index:600;width:min(440px,calc(100% - 32px));padding:24px;background:var(--bg2);border:1px solid #4e7188;border-top:2px solid var(--ice);box-shadow:0 10px 50px #0008}.config-panel.open{display:block}.config-title{font:600 27px var(--heading);text-transform:uppercase;margin-bottom:18px}.config-row{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.config-row label{font-size:11px;color:var(--muted)}.config-row input{width:100%;min-width:0;border:1px solid var(--border);background:var(--bg);padding:10px 12px;font-size:12px}.save-btn{width:100%;border:1px solid var(--ice);background:var(--ice);color:var(--bg);font-weight:700;padding:12px;font-size:12px}.save-btn:hover{background:#d7efff}
.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(1440px,calc(100% - 64px));margin:40px auto 0;padding:24px 0;border-top:1px solid var(--border);color:var(--muted);font-size:9px;letter-spacing:.03em}.map-page .footer{margin-top:24px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#365062}
@media(min-width:1800px){.main,.map-main,.footer{width:min(1680px,calc(100% - 96px))}.site-header{padding-inline:max(48px,calc((100vw - 1680px)/2))}}
@media(max-width:1150px){.site-header{gap:22px;padding-inline:24px}.brand-name{font-size:16px}.website-link{display:none}.site-header nav{gap:20px}.online-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar-label{display:none}.app{grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:800px){.site-header{flex-wrap:wrap;gap:15px}.site-header nav{order:3;width:100%;margin-left:0;padding-top:12px;border-top:1px solid var(--border)}.site-header nav a[aria-current]:after{bottom:-18px}.header-login{margin-left:auto;padding-left:0;border:0}.main,.map-main,.footer{width:calc(100% - 32px)}.page-hero{padding:32px 0 26px}.page-hero .button,.page-hero .text-link{gap:12px}.metrics article{padding:20px}.metrics article>span{letter-spacing:.06em;font-size:8px}.metrics strong{font-size:40px}.section-header{align-items:center}.section-header h2{font-size:30px}.section-header>div:last-child:not(:first-child){font-size:9px!important}.app{height:auto;grid-template-columns:1fr;grid-template-rows:auto auto 480px;min-height:0}.map-toolbar{gap:12px;flex-wrap:wrap;padding:12px}.map-page .game-badge{flex:1}.game-btn{flex:1;padding:10px}.header-sep{display:none}.sidebar{max-height:360px;border-right:0;border-bottom:1px solid var(--border)}.sidebar>.section{padding:15px 18px}.driver-list{min-height:95px;flex:1 0 auto;max-height:180px}.map-controls{flex-direction:row;flex-shrink:0}.ctrl-btn{flex:1}.selected-panel{flex-shrink:0}.map-container{min-height:480px}.map-main .page-hero{align-items:start}.modal-overlay{padding:12px}.modal-grid{grid-template-columns:1fr}.modal-header{padding:18px}.modal-body{padding:14px}.modal{max-height:92dvh}.footer{flex-wrap:wrap;gap:12px}.footer>span:last-child{display:none}}
@media(max-width:550px){.brand-name{font-size:14px;letter-spacing:.05em}.brand-mark{width:42px}.header-login{font-size:10px}.site-header{padding-inline:16px}.page-hero{flex-direction:column;align-items:flex-start;gap:20px}.page-hero:after{width:55%;opacity:.3}.hero-copy{font-size:12px}.metrics{grid-template-columns:1fr}.metrics article{display:grid;grid-template-columns:1fr auto;align-items:center;border-right:0;border-bottom:1px solid var(--border);padding:17px 20px}.metrics strong{grid-column:2;grid-row:1/3;margin:0}.metrics p{margin-top:4px}.online-grid{grid-template-columns:1fr}.online-section,.jobs-section{margin-top:32px}.section-header{flex-wrap:wrap;gap:14px}.section-header .eyebrow{font-size:9px}.section-header h2{font-size:31px}.network-bar{gap:12px;padding:12px;font-size:9px}.network-bar b{display:none}.driver-count{margin-left:auto}.map-toolbar .game-badge{width:100%;flex:1 0 100%}.game-btn{font-size:9px}.map-toolbar{gap:10px}.map-main h1{font-size:48px}.map-main .page-hero{padding-top:27px}.modal-card{padding:16px}.modal-title{font-size:28px}.modal-row{gap:10px}.modal-key{font-size:9px}.modal-subtitle{font-size:10px}.footer>span:nth-child(2){font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
