:root{font-family:system-ui,sans-serif;color:#153f49;background:#f1f6f5;font-size:17px}*{box-sizing:border-box}body{margin:0}header{background:#073f4b;color:#eef7f4;padding:2rem max(1rem,calc((100vw - 960px)/2));display:flex;flex-direction:column;gap:.6rem}a{color:inherit}.brand{text-decoration:none;letter-spacing:.12em;font-size:1.4rem}.brand strong{color:#62d5bf}nav{display:flex;flex-wrap:wrap;gap:.5rem;max-width:1000px;margin:auto;padding:1rem}nav a{padding:.6rem .8rem;text-decoration:none;border-radius:2rem;background:#fff}main{max-width:960px;margin:1rem auto;padding:0 1rem;min-height:60vh}h1{font-size:clamp(1.8rem,6vw,3rem);line-height:1.1}h2{font-size:1.2rem}.card,form{background:#fff;border:1px solid #d4e4e1;border-radius:1rem;padding:1.3rem;margin:1rem 0;overflow-wrap:anywhere}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.8rem}.stats .card{margin:0}.value{font-size:2rem;font-weight:700;display:block;color:#067a70}label{display:block;margin:1rem 0}input,select,button{font:inherit;padding:.7rem;border-radius:.5rem;border:1px solid #adc8c2;max-width:100%}input,select{display:block;width:100%;margin-top:.4rem}button{cursor:pointer;background:#086b64;color:white;border:0;margin:.5rem .5rem .5rem 0}button:disabled{opacity:.5;cursor:wait}.warn{border-left:5px solid #ba7c19;padding:1rem;background:#fff6df}.error{color:#8b251e}progress{width:100%;height:1.3rem}footer{max-width:960px;margin:2rem auto;padding:1rem;color:#4b686c;font-size:.9rem}table{width:100%;border-collapse:collapse;font-size:.85rem}td,th{text-align:left;padding:.5rem .3rem;border-bottom:1px solid #dae6e2}small{display:block;line-height:1.5}.actions{display:flex;flex-wrap:wrap}#status{white-space:pre-line}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #c9901d;outline-offset:3px}

.route-map{width:100%;background:#e0eff2;border-radius:1rem}
