@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#123b59;--blue:#136fa0;--cyan:#8cdeef;--ink:#173447;--muted:#627785;--bg:#f3f7fa;--border:#dbe5ec;--green:#187653}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px 'DM Sans',Arial,sans-serif}h1,h2,h3,.brand{font-family:Manrope,Arial,sans-serif}h1{font-size:34px;letter-spacing:-1px;margin:10px 0}h2{font-size:20px;margin:0 0 10px}h3{font-size:17px;margin:0 0 10px}p{line-height:1.6;color:var(--muted);margin:8px 0 16px}button,input{font:inherit}button{border:0;border-radius:10px;padding:12px 18px;font-weight:700;cursor:pointer;transition:background .15s}button:hover{filter:brightness(.95)}button:disabled{opacity:.6;cursor:wait}input{width:100%;border:1px solid var(--border);background:white;padding:12px 14px;border-radius:9px;color:var(--ink)}input:focus{outline:2px solid var(--cyan);border-color:var(--blue)}label{display:block;font-size:13px;font-weight:600}label input{display:block;margin:7px 0 16px}.primary{background:var(--blue);color:white}.outline{background:white;border:1px solid var(--border);color:var(--ink)}.textbutton{background:none;color:var(--blue);padding:14px 0}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;color:var(--blue)}small{color:var(--muted);line-height:1.5}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:800;letter-spacing:.8px}.brandmark{background:var(--cyan);color:var(--navy);font-size:24px;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;font-style:italic}.subbrand{font-size:10px;color:var(--muted);border-left:1px solid var(--border);padding-left:13px;margin-left:4px}.login{min-height:100vh;display:grid;grid-template-columns:1.08fr 1fr;background:white}.loginart{background:linear-gradient(155deg,#102e47,#125575);padding:55px 65px;color:white;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.loginart:after{content:'';position:absolute;width:550px;height:550px;border:90px solid #8cdeef0a;border-radius:50%;right:-220px;top:80px;pointer-events:none}.loginart h1{font-size:46px;line-height:1.2;position:relative;z-index:1}.loginart p{color:#c4d9e8;max-width:400px}.loginart .eyebrow,.loginart small{color:var(--cyan)}.road{height:75px;border-bottom:2px dashed #8cdeef66;position:relative;margin:20px 0}.road span{font-size:70px;position:absolute;left:45%;bottom:-10px;transform:scaleX(-1)}.loginbox{max-width:420px;width:100%;margin:auto;padding:45px}.loginbox h2{font-size:28px;margin-top:14px}.loginbox form{margin-top:30px}.loginbox .primary{width:100%}.loginhelp{display:block;margin-top:25px;font-size:12px}header{padding:18px 5%;background:white;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:15px}header>div:last-child{display:flex;align-items:center;gap:18px}#userName{font-size:13px;color:var(--muted)}main{max-width:1240px;margin:0 auto;padding:40px 30px 60px}.pageheading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:8px 12px;font-size:11px;font-weight:700;background:#e4edf3;color:var(--navy);white-space:nowrap}.badge.good{background:#e3f4e9;color:#246447}.badge.warn{background:#fff0ce;color:#8d5d0e}.badge.bad{background:#fbe7e7;color:#a43030}.tabs{border-bottom:1px solid var(--border);display:flex;gap:12px;margin-bottom:25px}.tabs button{background:none;border-radius:0;color:var(--muted);border-bottom:3px solid transparent}.tabs button.active{color:var(--blue);border-color:var(--blue)}.upload{display:flex;align-items:center;gap:25px;border:1px dashed #9bbdd1;background:#eaf5fa;padding:30px;border-radius:16px}.upload>div:nth-child(2){flex:1}.upload input{max-width:420px;background:white;font-size:13px}.uploadicon{display:grid;place-items:center;background:white;border-radius:14px;width:65px;height:65px;color:var(--blue);font-size:35px}.sectionheading{display:flex;justify-content:space-between;align-items:center;margin:30px 0 18px;gap:15px}.sectionheading h2{margin:0}.sectionheading input{max-width:330px}.cards{display:grid;gap:14px}.card{background:white;border:1px solid var(--border);padding:23px;border-radius:13px}.cardhead{display:flex;gap:15px;align-items:start;justify-content:space-between}.cardhead h3{max-width:850px;line-height:1.5}.card p{font-size:13px}.card .actions{margin-top:15px}.actions{display:flex;gap:9px;flex-wrap:wrap}.actions button{font-size:12px;padding:10px 14px}.driverform{background:white;border:1px solid var(--border);padding:28px;border-radius:15px;display:grid;grid-template-columns:2fr 1.2fr 1.2fr auto;gap:20px;align-items:end}.driverform>div{grid-column:1/-1}.driverform input{margin-bottom:0}.driverform button{height:45px}.person{display:flex;justify-content:space-between;align-items:center;gap:20px}.person h3{margin-bottom:6px}.routesearch{max-width:460px;margin:0 0 25px}.routegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.routecard{background:white;border:1px solid var(--border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.routecover{height:110px;background:linear-gradient(135deg,#123b59,#2689ae);position:relative;color:var(--cyan);display:flex;align-items:center;justify-content:space-between;padding:25px;overflow:hidden}.routecover:after{content:'';position:absolute;left:40%;top:-50px;width:60px;height:220px;border:2px dashed #8cdeef88;transform:rotate(45deg)}.routecover span{font-size:48px}.routecover small{color:#e6f9ff;font-size:10px;font-weight:700;letter-spacing:1px;z-index:1}.routecontent{padding:22px;display:flex;flex-direction:column;flex:1}.routecontent h3{line-height:1.5;min-height:50px}.routecontent p{font-size:13px}.routecontent .primary{margin-top:auto;width:100%}.empty{text-align:center;padding:60px 25px;background:white;border:1px dashed var(--border);border-radius:15px;color:var(--muted);grid-column:1/-1}.candidate{margin:12px 0;padding:15px;border:1px solid var(--border);border-radius:10px}.candidate h4{margin:0 0 10px;font-size:13px}.candidate button{display:block;margin:7px 0;background:#eaf4fa;color:var(--blue);font-size:12px;text-align:left}.round{background:white;box-shadow:0 2px 12px #17344722;border:1px solid var(--border);border-radius:12px;padding:11px 14px}.maptop{position:absolute;z-index:450;top:18px;left:18px;right:18px;display:flex;gap:12px;align-items:center;justify-content:space-between;pointer-events:none}.maptop>*{pointer-events:auto}.maptitle{background:white;padding:12px 18px;border-radius:12px;max-width:60%;font-weight:700;font-size:12px;box-shadow:0 2px 12px #17344722}.instruction{position:absolute;z-index:450;top:80px;left:18px;max-width:420px;background:var(--navy);color:white;padding:20px 24px;border-radius:14px;box-shadow:0 4px 16px #17344733}.instruction span{color:var(--cyan);font-size:11px;font-weight:700}.instruction h2{font-size:23px;line-height:1.35;margin:10px 0}.instruction p{color:#d5e8f1;margin:0;font-size:13px}.instruction.bad{background:#932c37}.instruction.uncertain{background:#795b2b}.mapbottom{position:absolute;z-index:450;bottom:15px;left:18px;right:18px;max-width:720px;margin:auto;border:1px solid var(--border);border-radius:15px;background:white;box-shadow:0 5px 24px #17344733;overflow:hidden}.navsummary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 20px}.navsummary strong{font-size:20px;display:block}.navsummary small{display:block;font-size:10px}.navsummary>div:last-of-type{display:flex;gap:10px;align-items:center}.toggle{display:flex;align-items:center;gap:4px;font-size:11px}.toggle input{width:auto;display:inline;margin:0;accent-color:var(--blue)}.mapnote{font-size:10px;text-align:center;margin:0;padding:9px;background:#f3f7fa}#navigation{position:fixed;inset:0;z-index:500;background:#d9e9ec}#map{height:100%;width:100%}details summary{padding:14px 20px;cursor:pointer;border-top:1px solid var(--border);font-size:13px;font-weight:700}details summary span{float:right}#pointsList{max-height:32vh;overflow:auto;padding:0 15px}.pointrow{padding:15px 5px;border-bottom:1px solid var(--border);display:flex;align-items:start;gap:12px}.pointrow .pointicon{background:#eaf4fa;color:var(--blue);padding:8px;border-radius:8px;min-width:35px;text-align:center}.pointrow b{font-size:12px;display:block;line-height:1.5}.pointrow p{font-size:11px;margin:4px 0}.pointrow button{font-size:10px;padding:7px 10px;white-space:nowrap;margin-left:auto;background:#edf5fa;color:var(--blue)}.pointrow small{font-size:10px;display:block}.filters{display:flex;gap:8px;padding:0 20px 10px}.filters button{font-size:11px;padding:7px 12px;background:#edf3f7;color:var(--muted)}.filters .active{background:var(--blue);color:white}.emergency{background:#fff8ed;padding:14px 20px;font-size:11px;line-height:1.7;max-height:100px;overflow:auto}.pointalert{position:absolute;z-index:460;top:280px;left:18px;max-width:420px;padding:16px 20px;background:#ffedb8;color:#634918;border-radius:12px;font-weight:600;font-size:13px;line-height:1.6}.poi{display:grid;place-items:center;width:30px;height:30px;background:white;border:2px solid var(--blue);border-radius:50%;font-size:15px;box-shadow:0 2px 7px #17344755}.poi.fence{background:#ffe7ab;border-color:#be8b27}.poi.facility{background:var(--cyan)}dialog{border:1px solid var(--border);border-radius:15px;padding:28px;max-width:420px;width:90%}dialog::backdrop{background:#17344788}#message{position:fixed;z-index:2000;top:20px;left:50%;transform:translateX(-50%);background:#173447;color:white;border-radius:12px;padding:16px 22px;max-width:90%;box-shadow:0 4px 20px #17344744;font-size:13px}footer{text-align:center;color:#81929d;font-size:10px;letter-spacing:1.5px;padding:20px}[hidden]{display:none!important}
@media(max-width:1000px){.routegrid{grid-template-columns:repeat(2,1fr)}.driverform{grid-template-columns:1fr 1fr}.loginart{padding:40px}.loginart h1{font-size:36px}.loginbox{padding:30px}.subbrand{display:none}}
@media(max-width:650px){h1{font-size:27px}.login{grid-template-columns:1fr}.loginart{padding:25px;min-height:260px;gap:20px}.loginart h1{font-size:30px}.loginart .road,.loginart>small{display:none}.loginart p{margin-bottom:0;font-size:13px}.loginbox{padding:30px;max-width:480px}.loginbox h2{font-size:24px}header{padding:14px 18px}.brand{font-size:13px}.brandmark{width:30px;height:30px;font-size:20px}#userName{display:none}main{padding:25px 18px}.pageheading{display:block}.pageheading .badge{margin-top:8px}.pageheading p{font-size:13px}.routegrid{grid-template-columns:1fr}.upload{padding:20px;gap:16px;flex-wrap:wrap}.uploadicon{display:none}.upload .primary{width:100%}.driverform{grid-template-columns:1fr;padding:20px;gap:16px}.person{align-items:start;flex-direction:column;gap:0}.sectionheading{flex-wrap:wrap}.sectionheading input{max-width:100%}.maptop{top:10px;left:10px;right:10px;gap:7px}.maptop button{font-size:11px;padding:9px}.maptop .round span{display:none}.maptitle{font-size:10px;padding:9px;max-width:65%}.instruction{top:65px;left:10px;right:10px;max-width:none;padding:15px 18px}.instruction h2{font-size:20px;margin:6px 0}.instruction p{font-size:11px}.mapbottom{left:8px;right:8px;bottom:8px}.navsummary{padding:12px;gap:8px;flex-wrap:wrap}.navsummary strong{font-size:18px}.navsummary button{font-size:12px;padding:11px}.navsummary>div:last-of-type{gap:8px}.pointalert{top:220px;left:10px;right:10px;max-width:none;padding:12px;font-size:12px}.emergency{font-size:10px}.cardhead{flex-wrap:wrap}.card{padding:18px}}
