:root{font-family:system-ui,sans-serif;color:#e5e7eb;background:#111827}*{box-sizing:border-box}body{margin:0}main{max-width:1000px;margin:auto;padding:24px}header{padding:14px 0 24px}h1{font-size:clamp(2rem,7vw,4rem);margin:4px 0}header p{color:#9ca3af}.badge{font-size:.75rem;letter-spacing:.15em;color:#fbbf24}.card{background:#1f2937;border:1px solid #374151;border-radius:16px;padding:18px;margin-bottom:16px}.controls{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{font-weight:700}input{display:block;width:100%;margin-top:7px;padding:11px;border-radius:8px;border:1px solid #4b5563;background:#111827;color:white}label span{display:flex;gap:8px}.benchmarks{grid-column:1/-1;display:flex;gap:8px}button,.primary{border:0;border-radius:9px;padding:12px 16px;font-weight:750;cursor:pointer;text-decoration:none;text-align:center}.benchmarks button{background:#374151;color:#e5e7eb}.primary{background:#f59e0b;color:#111827}.controls>.primary{grid-column:1/-1;font-size:1rem}#status{grid-column:1/-1;color:#fca5a5;margin:0}#result{display:flex;align-items:center;justify-content:space-between;gap:15px}#result div{display:flex;gap:14px;align-items:center;flex-wrap:wrap}#result small,#result span{color:#9ca3af}#comfort{color:#111827;border-radius:999px;padding:6px 10px;font-size:.82rem}#map{height:52vh;min-height:380px;border-radius:16px}.warning{font-size:.8rem;color:#9ca3af}.hidden{display:none!important}@media(max-width:650px){main{padding:14px}.controls{grid-template-columns:1fr}#result{align-items:stretch;flex-direction:column}.benchmarks{flex-direction:column}}
.address-box{position:relative}.suggestions{position:absolute;z-index:1001;top:100%;left:0;right:0;margin-top:4px;background:#fff;border:1px solid #d1d5db;border-radius:10px;box-shadow:0 12px 28px #0006;overflow:hidden}.suggestions button{display:block;width:100%;border:0;border-radius:0;padding:11px 13px;background:#fff;color:#111827;text-align:left;font-weight:500;border-bottom:1px solid #e5e7eb}.suggestions button:last-child{border-bottom:0}.suggestions button:hover,.suggestions button:focus{background:#fef3c7}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:4px 4px 10px;color:#9ca3af;font-size:.78rem}.legend strong{color:#d1d5db}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:18px;height:5px;border-radius:3px}.legend .green{background:#22c55e}.legend .yellow{background:#eab308}.legend .red{background:#ef4444}.legend .unknown{background:#64748b}
.route-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.route-actions .primary{font-size:1rem}.secondary{background:#374151;color:#e5e7eb;border:1px solid #4b5563}
.text-button{margin-top:7px;padding:3px 1px;background:transparent;color:#fbbf24;text-align:left;font-size:.82rem}.advanced-toggle{grid-column:1/-1;margin:0;width:max-content}.waypoint-field{grid-column:1/-1}.waypoint-field .address-box{max-width:100%}#safer{padding:8px 11px;font-size:.8rem}
@media(max-width:650px){main{padding:12px}header{padding:6px 2px 16px}h1{font-size:2.65rem}.card{padding:14px;border-radius:13px}.controls{grid-template-columns:1fr;gap:12px}input{font-size:16px;min-height:48px}.route-actions{grid-template-columns:1fr}.route-actions button,#osmand{min-height:48px;width:100%}.text-button{min-height:36px}.advanced-toggle{width:100%}#result{align-items:stretch;flex-direction:column}#result div{gap:9px}#safer{width:100%;min-height:44px}#map{height:58vh;min-height:350px;border-radius:13px}.legend{gap:9px;align-items:flex-start}.legend strong{width:100%}}

.account-actions{display:flex;gap:10px;align-items:center;margin-top:12px}.account-actions form{margin:0}.account-actions .text-button{display:inline-flex;align-items:center;text-decoration:none}.login-page{min-height:100vh;display:grid;place-items:center}.login-shell{width:min(460px,100%);padding:20px}.login-shell header{text-align:center}.login-shell h1{font-size:3rem}.login-card h2{margin-top:0}.login-card form,.admin-card form{display:grid;gap:16px}.login-card label,.admin-card label{display:grid;gap:7px}.login-card input,.admin-card input{width:100%;box-sizing:border-box}.login-error{color:#fecaca;background:#7f1d1d;padding:10px 12px;border-radius:8px}.admin-shell{width:min(760px,100%)}.admin-card{margin-bottom:16px}.user-list{display:grid;gap:10px}.user-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px;border:1px solid #475569;border-radius:9px}
