:root{--navy:#142a53;--blue:#2554a4;--amber:#ecaa42;--ink:#142238;--muted:#627289;--paper:#f4f7fb;--line:#dce4ee;--white:#fff}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:15px/1.48 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,sans-serif}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:default}a{color:inherit;text-decoration:none}.hidden{display:none!important}
.topbar{height:68px;display:flex;align-items:center;gap:28px;padding:0 24px;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:750;letter-spacing:-.04em}.brand-mark{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--navy);color:var(--amber);font-size:23px}.top-label{font-size:11px;font-weight:760;letter-spacing:.16em;color:#687a92}.quiet{margin-left:auto;border:0;background:transparent;color:var(--muted)}
.auth-wrap{min-height:calc(100vh - 68px);display:grid;grid-template-columns:1fr minmax(320px,420px);align-items:center;gap:8vw;width:min(1100px,100%);padding:50px 26px;margin:auto}.auth-copy h1{font-size:clamp(42px,5.5vw,72px);line-height:1.02;letter-spacing:-.055em;max-width:11ch;margin:16px 0}.auth-copy p{font-size:19px;color:var(--muted);max-width:38ch}.eyebrow{font-size:11px;font-weight:780;letter-spacing:.19em;color:var(--blue)}.auth-card{padding:34px;border-radius:22px;background:#fff;box-shadow:0 22px 60px #152e5014;border:1px solid var(--line)}.auth-card h2{font-size:21px;letter-spacing:-.03em;margin:0 0 25px}.auth-card label{display:block;font-weight:650;font-size:13px;margin:14px 0}.auth-card input,.text-input,.search-box input{display:block;width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);outline:none}.auth-card input{margin-top:7px}.auth-card input:focus,.text-input:focus,.search-box input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2554a420}.primary{background:var(--navy);color:#fff;border:0;border-radius:11px;padding:13px 18px;font-weight:720}.primary:hover:not(:disabled){background:var(--blue)}.auth-card .primary{width:100%;margin-top:13px}.fine{font-size:12px;color:var(--muted)}.error{color:#ba3f43;min-height:1em}
.auth-card .fine{margin:0 0 22px}.provider-button{min-height:48px;display:flex;justify-content:center;margin-bottom:12px}.google-placeholder{width:100%;min-height:44px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);font-weight:650}.apple-button{width:100%;min-height:44px;border:0;border-radius:6px;background:#111;color:#fff;font-weight:650}.auth-message{font-size:12px;color:var(--muted);min-height:18px;margin:16px 0 0}
.auth-divider{display:flex;align-items:center;gap:12px;margin:22px 0 16px;color:var(--muted);font-size:12px}.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:var(--line)}
.studio{height:calc(100vh - 68px);display:grid;grid-template-columns:minmax(340px,390px) 1fr}.sidebar{min-height:0;display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--line);z-index:500;box-shadow:10px 0 24px #172b4510}.sidebar-head{padding:24px 24px 13px}.sidebar-head h1{font-size:32px;letter-spacing:-.05em;line-height:1.1;margin:7px 0}.sidebar-head p{color:var(--muted);font-size:13px;margin:0}.sidebar-scroll{padding:4px 24px 24px;min-height:0;overflow-y:auto}.field-label{display:block;font-size:12px;font-weight:750;margin:12px 0 6px}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:25px 0 9px}.section-head h2{margin:0;font-size:16px;letter-spacing:-.02em}.section-head span{color:var(--muted);font-size:12px}.search-box{display:flex;gap:6px}.search-box input{min-width:0}.search-box button,.secondary-actions button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 12px;font-weight:650}.search-box button:hover,.secondary-actions button:hover{border-color:var(--blue)}.results{margin-top:6px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.results button{display:block;width:100%;padding:10px 12px;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--line);font-size:13px}.results button:hover{background:#edf4ff}.stops{padding:0;margin:12px 0;list-style:none}.stop{display:flex;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #edf1f5}.stop-number{flex:0 0 24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:11px;font-weight:800}.stop-main{flex:1;min-width:0}.stop-main strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stop-main small{color:var(--muted)}.stop button{border:0;background:#edf2f8;border-radius:6px;color:var(--ink);width:25px;height:25px}.route-summary{display:flex;gap:12px;background:#ecf3ff;color:var(--navy);padding:11px 12px;border-radius:10px;font-weight:750}.status{color:var(--muted);font-size:12px;min-height:17px}.saved-head{border-top:1px solid var(--line);padding-top:20px}.text-button{background:transparent;border:0;color:var(--blue);font-weight:700}.saved-route{display:flex;align-items:center;gap:8px;padding:11px 0;border-bottom:1px solid #edf1f5}.saved-route button:first-child{flex:1;text-align:left;border:0;background:none;color:var(--ink);font-weight:650}.saved-route small{display:block;color:var(--muted);font-weight:400}.saved-route .delete{border:0;background:transparent;color:#a84a4a}.sidebar-actions{padding:16px 24px 22px;border-top:1px solid var(--line);box-shadow:0 -8px 20px #152d4a08}.sidebar-actions .primary{width:100%}.secondary-actions{display:flex;gap:8px;margin-top:9px}.secondary-actions button{flex:1}.map-area{position:relative;min-width:0;background:#dbe5e6}#map{height:100%;width:100%}.leaflet-container{background:#dbe5e6}.map-banner{position:absolute;left:22px;top:20px;z-index:400;background:#fff;box-shadow:0 6px 24px #17305520;border-radius:11px;padding:10px 14px;font-weight:680;font-size:13px}.map-banner-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--amber);margin-right:8px}.map-key{position:absolute;bottom:24px;right:18px;z-index:400;background:#fff;border-radius:10px;padding:10px 14px;box-shadow:0 4px 20px #17305520;font-size:12px}.key-line{display:inline-block;width:25px;height:4px;border-radius:2px;background:var(--blue);vertical-align:middle;margin-right:5px}.key-pin{display:inline-block;width:9px;height:9px;background:var(--amber);border:2px solid var(--navy);border-radius:50%;margin:0 5px 0 13px}.stop-pin{background:var(--navy);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 9px #12274480;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:750;width:30px;height:30px}
.stop-pin.is-stop{background:var(--amber)}.stop-pin.is-shape{background:var(--blue);width:20px;height:20px;font-size:9px}.stop-role{width:auto!important;padding:0 7px!important;white-space:nowrap;font-size:11px;font-weight:700}.stop-role.is-stop{background:#fff0d6;color:#744700}.stop-role.is-shape{background:#e8f0ff;color:var(--blue)}.key-shape{display:inline-block;width:9px;height:9px;background:var(--blue);border:2px solid #fff;border-radius:50%;margin:0 5px 0 13px}
.order-hint{color:var(--muted);font-size:11px;margin:0 0 10px}.route-options{border:1px solid var(--line);border-radius:12px;padding:10px 13px 12px;margin:17px 0 4px}.route-options legend{font-weight:750;font-size:13px;padding:0 5px}.route-choice{display:flex;align-items:center;gap:9px;font-size:13px;margin:4px 0 9px}.route-choice input{accent-color:var(--blue);width:17px;height:17px}.route-options .field-label{margin:10px 0 5px}.route-options select{width:100%;background:#fff}.option-hint{font-size:11px;color:var(--muted);line-height:1.45;margin:8px 0 0}.route-tools{display:flex;gap:8px;margin:10px 0}.route-tools button{flex:1;border:1px solid var(--line);border-radius:8px;padding:7px 5px;background:#fff;color:var(--blue);font-size:12px;font-weight:700}.route-tools button:hover{border-color:var(--blue)}
@media(max-width:780px){.auth-wrap{grid-template-columns:1fr;gap:20px}.auth-copy h1{font-size:42px}.studio{height:auto;min-height:calc(100vh - 68px);display:flex;flex-direction:column-reverse}.sidebar{min-height:650px;box-shadow:none}.map-area{height:42vh;min-height:300px}.top-label{margin-left:auto}.quiet{margin-left:0}.map-banner{display:none}}
.pane{display:contents}
.studio-tabs{display:flex;gap:6px;padding:16px 24px 0}
.studio-tabs button{flex:1;border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 10px;font-weight:700;color:var(--muted);cursor:pointer}
.studio-tabs button.is-active{background:var(--navy);border-color:var(--navy);color:#fff}
.ride-editor{padding-bottom:6px;border-bottom:1px solid var(--line);margin-bottom:4px}
.range-label{display:block;font-size:12px;color:var(--muted);margin:10px 0 2px}
.trim-range{width:100%;accent-color:var(--blue)}
.secondary-actions .danger{color:#a84a4a}
.secondary-actions .danger:hover:not(:disabled){border-color:#a84a4a}
.saved-route.is-open button:first-child{color:var(--blue)}
