:root{color:#152033;background:#f4f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--surface: #ffffff;--surface-soft: #f7f9fc;--ink: #152033;--muted: #64748b;--line: #dce5f2;--nav: #07111f;--nav-soft: #101d2f;--teal: #0f9f8c;--teal-dark: #08796e;--amber: #f59e0b;--red: #dc2626;--blue: #2563eb;--shadow: 0 18px 50px rgba(15, 23, 42, .12)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top left,rgba(15,159,140,.14),transparent 30rem),linear-gradient(180deg,#f7fafc,#eef3f9)}button,input,textarea{font:inherit}button{border:0}a{color:inherit;text-decoration:none}.page{display:grid;gap:1.25rem}.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.page-intro h1,.page-intro h2,.section-title h2{margin:0;color:var(--ink);letter-spacing:0}.page-intro p,.section-title p,.muted{margin:.35rem 0 0;color:var(--muted);line-height:1.5}.grid{display:grid;gap:1rem}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card,.stat-card,.empty-state,.map-placeholder,.editor-panel{background:#fffffff5;border:1px solid rgba(220,229,242,.9);border-radius:8px;box-shadow:var(--shadow)}.card{padding:1.2rem}.card h3{margin:0;color:var(--ink)}.card p{color:var(--muted);line-height:1.55}.quick-actions{display:flex;flex-wrap:wrap;gap:.75rem}.pill{display:inline-flex;align-items:center;gap:.4rem;width:fit-content;border-radius:999px;border:1px solid var(--line);background:var(--surface-soft);color:var(--muted);padding:.35rem .7rem;font-size:.85rem;font-weight:700}.action-button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:2.7rem;border-radius:8px;padding:0 1rem;cursor:pointer;font-weight:800;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.action-button:hover{transform:translateY(-1px)}.action-button.primary{background:linear-gradient(135deg,var(--teal),var(--teal-dark));color:#fff;box-shadow:0 12px 26px #0f9f8c40}.action-button.ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}.action-button.disabled,.action-button:disabled{cursor:not-allowed;opacity:.55;transform:none;box-shadow:none}.stat-card{padding:1rem}.stat-card .label{color:var(--muted);font-size:.8rem;font-weight:800;text-transform:uppercase}.stat-card .value{margin-top:.45rem;color:var(--ink);font-size:1.85rem;font-weight:900}.stat-card .hint{margin-top:.25rem;color:var(--muted);font-size:.9rem}.empty-state{display:grid;gap:.5rem;place-items:start;padding:1.5rem}.empty-state .icon{display:grid;width:2.7rem;height:2.7rem;place-items:center;border-radius:8px;background:#e6f7f4;color:var(--teal-dark)}.empty-state h3{margin:0}.empty-state p{margin:0;color:var(--muted)}.map-placeholder{position:relative;min-height:21rem;overflow:hidden;background:linear-gradient(90deg,rgba(37,99,235,.1) 1px,transparent 1px),linear-gradient(180deg,rgba(37,99,235,.1) 1px,transparent 1px),linear-gradient(135deg,#f8fbff,#e8f3f1);background-size:3.5rem 3.5rem,3.5rem 3.5rem,cover}.map-placeholder:after{content:"";position:absolute;top:18%;right:7%;bottom:22%;left:10%;border-top:5px solid var(--blue);border-right:5px solid var(--blue);border-bottom:5px solid var(--blue);border-radius:42% 18% 36% 22%;opacity:.88;transform:rotate(-5deg)}.map-placeholder .map-copy{position:absolute;right:1rem;bottom:1rem;z-index:1;max-width:20rem;border-radius:8px;background:#07111fe0;color:#fff;padding:.85rem 1rem}.map-placeholder .map-copy strong{display:block}.map-placeholder .map-copy span{color:#cbd5e1;font-size:.9rem}.clean-list{display:grid;gap:.55rem;margin:1rem 0 0;padding:0;list-style:none}.clean-list li{border-left:3px solid var(--teal);color:var(--muted);padding:.2rem 0 .2rem .75rem}.route-markers-panel h3{display:flex;align-items:center;gap:.5rem}.route-marker-display-list{display:grid;gap:.65rem;margin-top:1rem}.route-marker-display-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;padding:.75rem;text-align:left;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.route-marker-display-item:hover,.route-marker-display-item.selected{border-color:#0f9f8ca6;box-shadow:0 10px 24px #0f9f8c1f;transform:translateY(-1px)}.route-marker-display-icon{display:grid;width:2.35rem;height:2.35rem;place-items:center;border:2px solid #fff;border-radius:999px;background:currentColor;box-shadow:0 10px 20px #0f172a2e;font-size:1rem}.route-marker-display-item strong,.route-marker-detail strong{display:block;color:var(--ink)}.route-marker-display-item small{display:block;margin-top:.15rem;color:var(--muted);font-weight:800}.route-marker-detail{margin-top:1rem;border-radius:8px;background:var(--surface-soft);padding:.9rem}.route-marker-detail p{margin:.35rem 0 0}.capability-list{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}.capability{border-radius:999px;padding:.45rem .75rem;font-size:.85rem;font-weight:800}.capability.ready{background:#dcfce7;color:#166534}.capability.placeholder{background:#fff7ed;color:#9a3412}.route-editor-shell{display:grid;grid-template-columns:17rem minmax(0,1fr) 20rem;gap:1rem}.editor-panel{display:grid;align-content:start;gap:1rem;padding:1rem}.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.tool-button{display:grid;min-height:5rem;place-items:center;gap:.35rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.tool-button:hover,.tool-button.active{border-color:#0f9f8c99;box-shadow:0 10px 24px #0f9f8c29;transform:translateY(-1px)}.tool-emoji{display:grid;width:2.15rem;height:2.15rem;place-items:center;border:2px solid #fff;border-radius:999px;box-shadow:0 10px 20px #0f172a2e;font-size:1rem}.route-map-workspace{display:grid;min-height:38rem;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.route-map-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;border-bottom:1px solid var(--line);padding:.75rem 1rem}.route-map-surface{position:relative;min-height:32rem;overflow:hidden;background:linear-gradient(90deg,rgba(148,163,184,.18) 1px,transparent 1px),linear-gradient(180deg,rgba(148,163,184,.18) 1px,transparent 1px),linear-gradient(135deg,#f8fbff,#e6f4f2);background-size:4rem 4rem,4rem 4rem,cover}.route-map-google{min-height:32rem}.route-map-fallback{display:block;width:100%;border:0;color:inherit;cursor:crosshair;padding:0;text-align:left}.route-map-fallback .map-copy{position:absolute;right:1rem;bottom:1rem;z-index:1;max-width:22rem;border-radius:8px;background:#07111fe0;color:#fff;padding:.85rem 1rem}.route-map-fallback .map-copy strong{display:block}.route-map-fallback .map-copy span{color:#cbd5e1;font-size:.9rem}.route-line{position:absolute;top:18%;right:10%;bottom:22%;left:12%;border-top:7px solid var(--blue);border-right:7px solid var(--blue);border-bottom:7px solid var(--blue);border-radius:42% 18% 40% 20%;opacity:.9;transform:rotate(-7deg)}.map-marker{position:absolute;z-index:2;display:grid;width:2.25rem;height:2.25rem;place-items:center;border:2px solid #fff;border-radius:999px;background:currentColor;box-shadow:0 10px 22px #0f172a38}.map-marker svg{color:#fff}.route-marker{cursor:pointer;font-size:1rem}.route-marker.selected{outline:4px solid rgba(15,159,140,.35);transform:translate(-2px,-2px)}.drop-marker-button{position:absolute;right:1rem;bottom:1rem;z-index:3;display:inline-flex;align-items:center;gap:.5rem;border-radius:8px;background:var(--nav);color:#fff;cursor:pointer;padding:.75rem 1rem}.marker-inspector label{display:grid;gap:.4rem;color:var(--muted);font-size:.85rem;font-weight:800}.marker-inspector input,.marker-inspector select,.marker-inspector textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:.65rem .75rem}.route-marker-list{display:grid;gap:.75rem;border-top:1px solid var(--line);padding-top:1rem}.route-marker-list .smart-search{width:100%}.route-marker-list-items{max-height:17rem;overflow-y:auto}.route-marker-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.55rem;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;padding:.6rem .7rem;text-align:left}.route-marker-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-marker-row small{color:var(--muted);font-weight:800}.route-marker-row.selected{border-color:#0f9f8cb3;box-shadow:0 10px 24px #0f9f8c1f}.inspector-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.checkbox-row{display:flex!important;grid-template-columns:none!important;align-items:center;gap:.55rem!important}.checkbox-row input{width:auto}.inspector-summary{display:flex;align-items:baseline;gap:.5rem;border-radius:8px;background:var(--surface-soft);padding:.8rem}.inspector-summary strong{color:var(--teal-dark);font-size:1.7rem}.inspector-summary span{color:var(--muted)}.route-editor-footer{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px dashed rgba(15,159,140,.4);border-radius:8px;background:#0f9f8c0f;padding:1rem}.route-editor-status{color:var(--muted);font-weight:800}.route-editor-status.success{color:#166534}.route-editor-status.warning{color:#9a3412}.route-editor-status.error{color:#b91c1c}@media (max-width: 1000px){.grid.two,.grid.three{grid-template-columns:1fr}.page-intro{align-items:flex-start;flex-direction:column}.route-editor-shell{grid-template-columns:1fr}.route-editor-footer{align-items:flex-start;flex-direction:column}}.app-shell{display:grid;grid-template-columns:18.5rem minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:1rem;overflow-y:auto;background:linear-gradient(180deg,var(--nav),#0b1626);color:#dbeafe;padding:1.1rem}.brand{display:flex;align-items:center;gap:.75rem;padding:.35rem .25rem .85rem}.brand img{width:2.6rem;height:2.6rem;border-radius:8px;object-fit:cover}.brand strong{display:block;font-size:1.1rem}.brand span{color:#94a3b8;font-size:.8rem}.profile-header{display:flex;align-items:center;gap:.75rem;border:1px solid rgba(148,163,184,.2);border-radius:8px;background:#ffffff0d;padding:.75rem}.avatar{display:grid;width:2.4rem;height:2.4rem;min-width:2.4rem;place-items:center;overflow:hidden;border-radius:999px;background:#0f9f8c;color:#fff;font-weight:900}.avatar img{width:100%;height:100%;object-fit:cover}.profile-header .details{min-width:0;flex:1}.profile-header .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-weight:800}.profile-header .email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#94a3b8;font-size:.78rem}.profile-header button,.topbar button{border-radius:8px;background:#ffffff1a;color:inherit;padding:.45rem .65rem;cursor:pointer}.nav-section{display:grid;gap:.35rem}.nav-section-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;border-radius:8px;background:transparent;color:#94a3b8;cursor:pointer;font-size:.78rem;font-weight:900;padding:.55rem;text-transform:uppercase}.nav-section-trigger svg{transition:transform .18s ease}.nav-section-trigger.open svg{transform:rotate(180deg)}.nav-links{display:grid;gap:.25rem;overflow:hidden;transition:max-height .22s ease,opacity .18s ease}.nav-links.open{max-height:30rem;opacity:1}.nav-links.closed{max-height:0;opacity:0}.nav-link{display:flex;align-items:center;gap:.65rem;border-radius:8px;color:#cbd5e1;padding:.7rem .75rem;transition:background .15s ease,color .15s ease,transform .15s ease}.nav-link:hover{background:#ffffff12;color:#fff;transform:translate(2px)}.nav-link.active{background:#0f9f8c2e;color:#fff;box-shadow:inset 3px 0 0 var(--teal)}.shell-main{min-width:0;padding:1.25rem}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:-1.25rem -1.25rem 1.25rem;border-bottom:1px solid rgba(220,229,242,.8);background:#f4f7fbdb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:1rem 1.25rem}.topbar h1{margin:0;font-size:1.25rem}.topbar-actions{display:flex;align-items:center;gap:.75rem}.smart-search{display:grid;gap:.35rem;width:min(100%,34rem)}.smart-search.compact{width:min(30rem,36vw)}.smart-search-input{display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);padding:0 .65rem}.smart-search-input input{width:100%;min-height:2.7rem;border:0;outline:0;background:transparent;color:var(--ink)}.smart-search-input button{display:grid;width:1.9rem;height:1.9rem;place-items:center;border-radius:999px;background:var(--surface-soft);color:var(--muted);cursor:pointer;padding:0}.smart-search-hint{margin:0;color:var(--muted);font-size:.85rem;line-height:1.45}.content-area{max-width:1440px;margin:0 auto}.auth-gate{display:grid;min-height:100vh;place-items:center;background:radial-gradient(circle at top left,rgba(15,159,140,.2),transparent 28rem),linear-gradient(135deg,#07111f,#101d2f 58%,#0f9f8c 160%);padding:1.25rem}.auth-card{display:grid;width:min(100%,28rem);gap:1rem;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#fffffff5;box-shadow:0 24px 70px #0000003d;padding:1.35rem}.auth-card img{width:4rem;height:4rem;border-radius:8px;object-fit:cover}.auth-card h1{margin:0;color:var(--ink);font-size:1.65rem;letter-spacing:0}.auth-card p{margin:.4rem 0 0;color:var(--muted);line-height:1.55}.auth-card label{display:block;margin-bottom:.4rem;color:var(--muted);font-size:.85rem;font-weight:800}.auth-card select{width:100%;min-height:2.7rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:0 .75rem}.auth-card button{min-height:3rem;border-radius:8px;background:linear-gradient(135deg,var(--teal),var(--teal-dark));color:#fff;cursor:pointer;font-weight:900}.auth-card button:disabled{cursor:not-allowed;opacity:.6}.auth-error{border-radius:8px;background:#fee2e2;color:#991b1b!important;padding:.75rem}.auth-links{display:flex;flex-wrap:wrap;gap:.85rem}.auth-links a{color:var(--teal-dark);font-size:.9rem;font-weight:800}@media (max-width: 900px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;max-height:none}.topbar{position:relative}.smart-search.compact{display:none}}
