*{box-sizing:border-box}body{margin:0;background:#eef3f7;color:#142333;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.topbar{height:82px;background:#0b5cab;color:#fff;padding:15px max(18px,calc((100vw - 1100px)/2));display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:800;opacity:.76}.topbar h1{font-size:24px;margin:3px 0}.status-dot{width:12px;height:12px;border-radius:50%;background:#71e6a0;box-shadow:0 0 0 5px #ffffff20}.demo-banner{max-width:1100px;margin:14px auto 0;padding:10px 16px;background:#fff3cd;border:1px solid #e8c46a;border-radius:10px;color:#6b4b00;font-size:13px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.demo-banner span{font-weight:500}main{max-width:1100px;margin:22px auto;padding:0 14px}.card{background:#fff;border-radius:16px;box-shadow:0 5px 20px #19344b12;padding:20px}.setup-card{max-width:560px;margin:32px auto}.step{display:flex;gap:13px;margin-bottom:24px}.step>span{background:#dceeff;color:#0b5cab;border-radius:50%;min-width:30px;height:30px;text-align:center;padding-top:5px;font-weight:800}.step h2,.route-head h2{margin:0;font-size:21px}.step p,.route-head p{color:#667788;margin:5px 0 0;font-size:14px}label{display:block;font-size:13px;font-weight:700;margin:17px 0;color:#405467}select{display:block;width:100%;margin-top:7px;border:1px solid #d5e0e8;border-radius:10px;background:#fff;padding:13px;font-size:16px;color:#142333}button{cursor:pointer;border:0;font:inherit}.primary{width:100%;margin-top:8px;background:#0b5cab;color:#fff;padding:14px;border-radius:10px;font-weight:800;font-size:16px}.primary span{float:right;font-size:20px}.hidden{display:none}.route-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.icon-btn{background:#edf4fa;color:#0b5cab;border-radius:10px;padding:10px;font-size:19px}.tour-overview{margin-bottom:14px}.overview-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.overview-head h2{margin:4px 0;font-size:21px}.overview-head p{color:#667788;margin:5px 0 0;font-size:14px}.overview-badge{background:#fff3cd;color:#8a5b00;border-radius:12px;padding:6px 9px;font-size:11px;font-weight:800}.legend{display:flex;gap:16px;flex-wrap:wrap;margin:17px 0 12px;color:#405467;font-size:13px;font-weight:700}.legend span{display:flex;align-items:center;gap:7px}.legend-line{display:inline-block;width:34px;border-top:5px solid;border-radius:5px}.legend-line.empty{border-color:#7c8b99}.legend-line.spread{border-color:#f29f05}.legend-line.clear{border-color:#8b4cc2}.route-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:14px 0}.route-info-item{border-left:5px solid;padding:10px 11px;background:#f4f7f9;border-radius:8px}.route-info-item strong,.route-info-item span{display:block}.route-info-item span{color:#667788;font-size:12px;margin-top:3px}.route-info-item.empty{border-color:#7c8b99}.route-info-item.spread{border-color:#f29f05}.route-info-item.clear{border-color:#8b4cc2}.route-info-item.danger{border-color:#d9534f}#map{height:70vh;min-height:560px;border-radius:16px;overflow:hidden;box-shadow:0 5px 20px #19344b18;margin-bottom:12px}.next-card{padding:17px 20px}.next-label{font-size:11px;letter-spacing:.1em;font-weight:800;color:#6b7d8b}.pulse{display:inline-block;width:9px;height:9px;border-radius:50%;background:#ec8b2c;margin-right:6px}.next-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.next-row h2{font-size:19px;margin:8px 0 3px}.next-row p{margin:0;color:#607486;font-size:14px}.next-row strong{color:#0b5cab;white-space:nowrap}.progress{height:7px;background:#e6edf2;border-radius:9px;margin:16px 0 7px}.progress div{height:100%;width:0;background:#ec8b2c;border-radius:9px;transition:width .3s}.progress-meta{display:flex;justify-content:space-between;color:#718393;font-size:12px;margin-bottom:12px}.quick-actions{display:flex;gap:10px;margin-top:12px}.quick-actions button{background:#fff;color:#0b5cab;border-radius:10px;padding:11px;flex:1;box-shadow:0 3px 12px #19344b10;font-size:13px;font-weight:700}footer{text-align:center;color:#8798a5;font-size:11px;padding:20px}.leaflet-control-attribution{font-size:9px}@media(max-width:700px){.route-info-grid{grid-template-columns:1fr}#map{height:64vh;min-height:480px}}@media(min-width:700px){.next-card{margin-top:0}.quick-actions{justify-content:flex-end}.quick-actions button{flex:0 0 180px}}