@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;-webkit-font-smoothing:antialiased;--forest-950:#081c14;--forest-900:#0e2c20;--forest-800:#163b2a;--forest-700:#1f5138;--forest-600:#2c6d4a;--forest-500:#3b8a5e;--forest-400:#6fa385;--forest-200:#bad6c5;--forest-100:#ddece2;--forest-50:#eef5f0;--clay-800:#7b3216;--clay-700:#98401d;--clay-600:#b94b23;--clay-500:#cf5f2e;--clay-400:#e2895a;--clay-100:#f8e2d4;--clay-50:#fdf2ea;--sand-0:#fffdf8;--sand-50:#fbf9f1;--sand-100:#f4f2e9;--sand-200:#ece9dd;--sand-300:#dbd8c8;--ink-900:#14201a;--ink-700:#2b382f;--ink-500:#5c6a61;--ink-400:#838f86;--bg:var(--sand-100);--surface:var(--sand-0);--surface-2:var(--sand-50);--surface-3:var(--sand-200);--text:var(--ink-900);--text-muted:var(--ink-500);--text-subtle:var(--ink-400);--border:#e4e1d4;--border-strong:#d2cfbe;--accent:var(--clay-600);--accent-hover:var(--clay-700);--accent-soft:var(--clay-50);--danger:#9b3529;--danger-soft:#fbeeeb;--ring:#b94b234d;--radius-sm:.55rem;--radius:.8rem;--radius-lg:1.1rem;--radius-xl:1.4rem;--pill:999px;--shadow-xs:0 1px 2px #0e2c200d;--shadow-sm:0 1px 2px #0e2c200d, 0 3px 8px -3px #0e2c2012;--shadow-md:0 2px 4px #0e2c200a, 0 12px 26px -14px #0e2c2029;--shadow-lg:0 4px 10px #0e2c200d, 0 26px 50px -22px #0e2c2042;--ridge:polygon(0 100%, 0 62%, 18% 30%, 32% 57%, 48% 13%, 63% 54%, 78% 31%, 100% 68%, 100% 100%);--forest:var(--forest-800);--orange:var(--accent);--cream:var(--bg);--paper:var(--surface);--muted:var(--text-muted);color:var(--text);background:var(--bg);font-family:DM Sans,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(1100px 520px at 8% -12%, #ffffffd9, transparent 62%), radial-gradient(820px 460px at 102% -4%, #e2895a17, transparent 58%), var(--bg);background-attachment:fixed;min-width:320px;min-height:100dvh;margin:0;overflow-x:hidden}button,input,textarea,select{font:inherit;color:inherit}button,.button{cursor:pointer;border:0;min-height:44px}a{color:inherit;text-decoration:none}svg{display:block}:focus-visible{outline:3px solid var(--ring);outline-offset:2px;border-radius:6px}h1,h2,h3,p{margin-top:0}h1,h2,h3,strong{font-family:Manrope,sans-serif}h1{letter-spacing:-.04em;margin-bottom:.5rem;font-size:clamp(1.9rem,2.6vw,2.7rem);line-height:1.05}h2{letter-spacing:-.02em;margin-bottom:.35rem;font-size:1.12rem}h3{letter-spacing:-.01em;font-size:.95rem}.eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin-bottom:.55rem;font-size:.7rem;font-weight:800;display:inline-block}.tabular{font-variant-numeric:tabular-nums}.app-shell{grid-template-columns:252px minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{background:linear-gradient(168deg, var(--forest-700), var(--forest-900) 58%, var(--forest-950));color:#eef4ee;flex-direction:column;height:100dvh;padding:1.6rem 1.1rem 1.2rem;display:flex;position:sticky;top:0;overflow:hidden}.sidebar:before{content:"";opacity:.35;pointer-events:none;background-image:radial-gradient(#ffffff1a 1px,#0000 1px);background-size:16px 16px;position:absolute;inset:0}.sidebar:after{content:"";height:30%;clip-path:var(--ridge);pointer-events:none;background:#ffffff0d;position:absolute;inset:auto -14% -14%}.sidebar>*{z-index:1;position:relative}.brand{border-radius:var(--radius);align-items:center;gap:.75rem;margin-bottom:2.2rem;padding:.35rem .55rem;display:flex}.brand:hover{background:#ffffff0f}.brand div{flex-direction:column;min-width:0;display:flex}.brand strong{letter-spacing:-.02em;font-size:1.05rem}.brand small{color:#9dbaa8;letter-spacing:.04em;font-size:.68rem}.brand-mark{color:#f0a95d;flex:none;width:30px;height:30px}.brand-mark.large{width:40px;height:40px;color:var(--accent);margin-bottom:1.1rem}.nav-label{color:#8aa899;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.5rem;padding:0 .65rem;font-size:.64rem;font-weight:800}.sidebar nav{flex-direction:column;gap:.2rem;display:flex}.sidebar nav a{border-radius:var(--radius-sm);color:#b6cdbf;align-items:center;gap:.7rem;min-height:44px;padding:.7rem .65rem;font-size:.9rem;font-weight:600;transition:background .16s,color .16s;display:flex;position:relative}.sidebar nav a svg{opacity:.8;flex:none;width:18px;height:18px}.sidebar nav a:hover{color:#fff;background:#ffffff12}.sidebar nav a.active{color:#fff;background:#ffffff1f}.sidebar nav a.active svg{color:#f0a95d;opacity:1}.sidebar nav a.active:before{content:"";background:#f0a95d;border-radius:0 3px 3px 0;width:3px;height:20px;position:absolute;top:50%;left:-1.1rem;transform:translateY(-50%)}.sidebar-footer{border-top:1px solid #ffffff1a;margin-top:auto;padding-top:1rem}.sign-out{border-radius:var(--radius-sm);color:#a9c2b2;text-align:left;background:0 0;align-items:center;gap:.7rem;width:100%;padding:.7rem .65rem;font-size:.87rem;font-weight:600;display:flex}.sign-out svg{flex:none;width:18px;height:18px}.sign-out:hover{color:#fff;background:#ffffff12}.main-content{min-width:0;padding:clamp(1.4rem,3.2vw,2.8rem) clamp(1.2rem,3.2vw,3rem)}.main-content>section,.main-content>.empty,.main-content>.alert,.main-content>.loading-block{width:min(100%,1400px);margin-inline:auto;container:page/inline-size}.page-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1.4rem;display:flex}.page-header>div:first-child{min-width:0}.page-header p{max-width:62ch;color:var(--text-muted);margin-bottom:0;font-size:.92rem}.page-header.compact,.page-header.compact .header-actions{align-items:center}.header-actions{flex:none;align-items:flex-end;gap:.7rem;display:flex}.configure-route-button{white-space:nowrap;flex:none;padding:.7rem 1.05rem;line-height:1}.back-link{color:var(--text-muted);align-items:center;gap:.35rem;margin-bottom:.6rem;font-size:.84rem;font-weight:600;display:inline-flex}.back-link:hover{color:var(--accent)}.route-filter{color:var(--text-subtle);letter-spacing:.08em;text-transform:uppercase;flex-direction:column;gap:.35rem;font-size:.68rem;font-weight:800;display:flex}.route-filter select,.route-filter input[type=date]{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background-color:var(--surface);min-width:200px;min-height:44px;color:var(--text);font:inherit;text-transform:none;letter-spacing:0;box-shadow:var(--shadow-xs);padding:.6rem .8rem;font-size:.9rem;transition:border-color .16s,box-shadow .16s}.route-filter select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c6a61' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9.5 6 6 6-6'/%3E%3C/svg%3E");background-position:right .7rem center;background-repeat:no-repeat;background-size:15px;padding-right:2.2rem}.route-filter select:hover,.route-filter input[type=date]:hover{border-color:var(--forest-400)}.route-filter input[type=date]{width:100%;min-width:0}.button,button.primary,button.secondary,button.danger{border-radius:var(--radius-sm);white-space:nowrap;justify-content:center;align-items:center;gap:.45rem;padding:.72rem 1.1rem;font-size:.9rem;font-weight:700;transition:background .16s,box-shadow .16s,transform .16s,border-color .16s;display:inline-flex}.primary{background:linear-gradient(180deg, var(--clay-500), var(--clay-600));color:#fff;box-shadow:0 1px 2px #7b32164d,0 8px 18px -8px #7b321680}.primary:hover{background:linear-gradient(180deg, var(--clay-600), var(--clay-700));transform:translateY(-1px);box-shadow:0 1px 2px #7b32164d,0 12px 22px -8px #7b321680}.primary:active{transform:none}.primary:disabled{background:var(--clay-400);box-shadow:none;opacity:.65;cursor:not-allowed;transform:none}.secondary{background:var(--surface);border:1px solid var(--border-strong);color:var(--forest-800);box-shadow:var(--shadow-xs)}.secondary:hover{border-color:var(--forest-400);background:var(--forest-50)}.secondary[aria-pressed=true]{border-color:var(--forest-500);background:var(--forest-50);box-shadow:0 0 0 3px #3b8a5e1f}.danger{background:var(--danger-soft);color:var(--danger);border:1px solid #ecd5cf}.danger:hover{background:#f6e2dd;border-color:#e0bdb4}.danger:disabled,.secondary:disabled{opacity:.55;cursor:not-allowed}.link-button{color:var(--accent);border-radius:var(--radius-sm);background:0 0;padding:.5rem;font-size:.88rem;font-weight:700}.link-button:hover{color:var(--accent-hover)}.danger-link{color:var(--danger)}.icon-button{border-radius:var(--radius-sm);width:40px;height:40px;min-height:40px;color:var(--text-subtle);background:0 0;place-items:center;font-size:1.25rem;line-height:1;display:grid}.icon-button:hover{background:var(--danger-soft);color:var(--danger)}.wide{width:100%}.row{align-items:center;gap:.65rem;display:flex}.between{justify-content:space-between}.actions{margin-top:1rem}.row.actions{flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.section-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.1rem;display:flex}.section-heading h2{margin-bottom:.15rem}.section-heading p{color:var(--text-muted);margin:0;font-size:.84rem}.section-heading>a{color:var(--accent);white-space:nowrap;flex:none;align-items:center;gap:.25rem;font-size:.82rem;font-weight:700;display:inline-flex}.section-heading>a svg{width:13px;height:13px}.section-heading>a:hover{color:var(--accent-hover)}.badge{border-radius:var(--pill);background:var(--surface-3);width:fit-content;color:var(--text-muted);align-items:center;gap:.35rem;padding:.28rem .6rem;font-size:.72rem;font-weight:800;display:inline-flex}.badge:before{content:"";opacity:.7;background:currentColor;border-radius:50%;width:6px;height:6px}.status-completed{background:var(--forest-100);color:var(--forest-700)}.status-cancelled{background:var(--danger-soft);color:var(--danger)}.status-active{color:#7f5a13;background:#fbedcd}.alert{border-radius:var(--radius-sm);border:1px solid #0000;margin:1rem 0;padding:.8rem 1rem;font-size:.88rem}.alert.error{background:var(--danger-soft);color:var(--danger);border-color:#ecd5cf}.alert.warning{color:#7f5a13;background:#fdf3d9;border-color:#f0e0b4}.empty{text-align:center;max-width:560px;margin:2.5rem auto;padding:3.5rem 2rem}.empty h1,.empty h2{margin-bottom:.5rem}.empty p{color:var(--text-muted);margin-bottom:1.5rem}.empty-icon{width:44px;height:44px;color:var(--forest-200)}.empty>.empty-icon{margin:0 auto 1.1rem}.empty-chart,.empty-small,.loading-block{color:var(--text-muted);text-align:center;place-items:center;gap:.5rem;padding:2.5rem 1.5rem;font-size:.9rem;display:grid}.center-screen{text-align:center;min-height:100dvh;color:var(--text-muted);place-content:center;gap:.8rem;display:grid}.spinner{border:3px solid var(--surface-3);border-top-color:var(--accent);border-radius:50%;width:30px;height:30px;margin:auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hero-grid{grid-template-columns:minmax(270px,.82fr) minmax(0,1.6fr);gap:1rem;margin-bottom:1rem;display:grid}.hero-card{border-radius:var(--radius-xl);background:linear-gradient(158deg, var(--forest-700), var(--forest-900) 62%);color:#f1f6f1;box-shadow:var(--shadow-lg);flex-direction:column;padding:1.5rem;display:flex;position:relative;overflow:hidden}.hero-card:before{content:"";opacity:.4;background-image:radial-gradient(#ffffff1f 1px,#0000 1px);background-size:15px 15px;position:absolute;inset:0}.hero-card:after{content:"";height:52%;clip-path:var(--ridge);background:#ffffff0f;position:absolute;inset:auto -12% -16%}.hero-card>*{z-index:1;position:relative}.hero-icon{color:#f5c48c;background:#ffffff21;border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.hero-icon svg{width:20px;height:20px}.hero-label{color:#a4c0af;letter-spacing:.12em;text-transform:uppercase;margin-top:1.3rem;font-size:.7rem;font-weight:800}.hero-value{letter-spacing:-.045em;font-variant-numeric:tabular-nums;margin:.5rem 0 .4rem;font-family:Manrope,sans-serif;font-size:clamp(2.3rem,3.6vw,3.1rem);font-weight:800;line-height:1}.hero-route{color:#c2d6c8;align-items:center;gap:.4rem;margin:0;font-size:.88rem;display:flex}.hero-route svg{opacity:.8;flex:none;width:15px;height:15px}.hero-footer{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:auto;padding-top:1.6rem;display:flex}.hero-footer small{color:#9dbaa8;font-size:.78rem}.delta{border-radius:var(--pill);font-variant-numeric:tabular-nums;align-items:center;gap:.35rem;padding:.34rem .68rem;font-size:.84rem;font-weight:800;display:inline-flex}.delta svg{width:15px;height:15px}.delta.faster{color:#92dcb1;background:#7ed6a32e}.delta.slower{color:#f2bd8e;background:#f0a95d29}.delta.neutral{color:#c2d6c8;background:#ffffff1a}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);align-items:flex-start;gap:.85rem;padding:1.15rem 1.2rem;transition:box-shadow .18s,border-color .18s;display:flex}.metric:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.metric-icon{background:var(--forest-100);width:36px;height:36px;color:var(--forest-700);border-radius:10px;flex:none;place-items:center;display:grid}.metric-icon svg{width:19px;height:19px}.metric-icon.warm{background:var(--clay-50);color:var(--clay-600)}.metric-body{flex-direction:column;min-width:0;display:flex}.metric-body span{color:var(--text-muted);font-size:.78rem;font-weight:700}.metric-body strong{letter-spacing:-.035em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:.3rem 0 .1rem;font-family:Manrope,sans-serif;font-size:clamp(1.3rem,1.9vw,1.65rem);font-weight:800}.metric-body small{color:var(--text-subtle);font-size:.74rem}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem;display:grid}.stats-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);flex-direction:column;padding:1.25rem;display:flex}.stat-card span{color:var(--text-muted);font-size:.78rem;font-weight:700}.stat-card strong{letter-spacing:-.035em;font-variant-numeric:tabular-nums;margin:.45rem 0 .15rem;font-size:clamp(1.35rem,2.1vw,1.85rem);font-weight:800}.stat-card small{color:var(--text-subtle);font-size:.74rem}.stat-card.accent{background:linear-gradient(158deg, var(--forest-700), var(--forest-900));border-color:var(--forest-900);color:#f1f6f1;box-shadow:var(--shadow-md)}.stat-card.accent span{color:#a4c0af}.stat-card.accent small{color:#9dbaa8}.dashboard-grid{grid-template-columns:minmax(0,1.65fr) minmax(290px,.85fr);align-items:start;gap:1rem;display:grid}.chart-card,.recent-card,.segments{min-width:0;padding:1.35rem}.chart-card{container-type:inline-size}.chart-heading{flex-wrap:wrap;align-items:flex-start;margin-bottom:.9rem}.chart-range{flex-direction:column;align-items:flex-end;gap:.6rem;display:flex}.chart-range-presets{border:1px solid var(--border);border-radius:var(--pill);background:var(--surface-2);gap:2px;padding:3px;display:inline-flex}.chart-preset{border-radius:var(--pill);min-height:32px;color:var(--text-muted);background:0 0;padding:.3rem .8rem;font-size:.78rem;font-weight:700;transition:background .16s,color .16s}.chart-preset:hover{color:var(--text)}.chart-preset.active{background:var(--surface);color:var(--forest-800);box-shadow:var(--shadow-xs)}.chart-range-inputs{grid-template-columns:repeat(2,minmax(9rem,1fr));gap:.55rem;display:grid}.chart-legend{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.2rem;padding-bottom:1rem;display:flex}.chart-legend-items{flex-wrap:wrap;gap:.4rem;min-width:0;display:flex}.chart-views{flex:none}.chart-views .chart-preset{font-size:.74rem}.chart-legend-item{border:1px solid var(--border);border-radius:var(--pill);background:var(--surface-2);min-height:32px;color:var(--text-muted);align-items:center;gap:.5rem;padding:.3rem .7rem;font-size:.78rem;font-weight:700;transition:opacity .16s,border-color .16s,color .16s;display:inline-flex}.chart-legend-item:hover{border-color:var(--border-strong);color:var(--text)}.chart-legend-item[aria-pressed=true]{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.chart-legend-item[aria-pressed=false]{opacity:.5}.chart-legend-item.total{font-weight:800}.chart-swatch{border-top-width:3px;border-radius:2px;flex:none;width:18px;height:0}.chart-hint{color:var(--text-subtle);text-align:right;margin:.85rem 0 0;font-size:.74rem}.chart-tooltip{border:1px solid var(--border-strong);border-radius:var(--radius);min-width:190px;box-shadow:var(--shadow-lg);background:#fffdf8f7;padding:.7rem .8rem}.chart-tooltip-date{color:var(--text-subtle);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.55rem;font-size:.68rem;font-weight:800;display:block}.chart-tooltip-row{grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.16rem 0;font-size:.83rem;display:grid}.chart-tooltip-row span:nth-child(2){color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-tooltip-row strong{font-variant-numeric:tabular-nums;font-family:DM Sans,sans-serif;font-weight:700}.chart-tooltip-row.total{border-bottom:1px solid var(--border);margin-bottom:.35rem;padding-bottom:.45rem}.recent-list{flex-direction:column;gap:.1rem;display:flex}.recent-row{border-radius:var(--radius);grid-template-columns:34px minmax(0,1fr) auto 14px;align-items:center;gap:.75rem;padding:.8rem .55rem;transition:background .16s;display:grid}.recent-row+.recent-row{border-top:1px solid var(--border);border-radius:var(--radius)}.recent-row:hover{background:var(--surface-2)}.recent-index{background:var(--forest-100);width:34px;height:34px;color:var(--forest-800);border-radius:10px;place-items:center;font-size:.8rem;font-weight:800;display:grid}.recent-main{flex-direction:column;min-width:0;display:flex}.recent-main strong{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;overflow:hidden}.recent-time{text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;display:flex}.recent-time strong{font-size:.92rem}.recent-main small,.recent-time small{color:var(--text-muted);font-size:.74rem}.recent-row>svg{width:14px;height:14px;color:var(--text-subtle)}.segment-records{margin-top:1rem;padding:1.35rem}.segment-record-head,.segment-record-row{grid-template-columns:minmax(0,1.7fr) 4.5rem minmax(5rem,.9fr) minmax(5rem,.9fr) minmax(92px,.8fr);align-items:center;gap:1rem;padding:.7rem .85rem;display:grid}.segment-record-head{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-subtle);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:800}.segment-record-row{border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;font-size:.88rem}.segment-record-row:last-child{border-bottom:0}.segment-name{font-variant-numeric:normal;align-items:center;gap:.7rem;min-width:0;display:flex}.segment-name strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.segment-swatch{width:11px;height:11px;box-shadow:0 0 0 3px var(--surface-2);border-radius:50%;flex:none}.pill-count{border-radius:var(--pill);background:var(--surface-3);color:var(--text-muted);padding:.2rem .55rem;font-size:.74rem;font-weight:800;display:inline-flex}.record-time{color:var(--accent);font-weight:800}.segment-bar{border-radius:var(--pill);background:var(--surface-3);height:6px;display:block;overflow:hidden}.segment-bar span{border-radius:var(--pill);background:linear-gradient(90deg, var(--forest-600), var(--forest-400));height:100%;display:block}.route-grid{grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:1rem;display:grid}.route-card{transition:box-shadow .18s,transform .18s;overflow:hidden}.route-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.route-card.muted{opacity:.68}.route-card-art{background:linear-gradient(150deg, var(--forest-600), var(--forest-900));color:#f5c48cf2;place-items:center;height:116px;display:grid;position:relative;overflow:hidden}.route-card-art:before{content:"";opacity:.5;background-image:radial-gradient(#ffffff24 1px,#0000 1px);background-size:14px 14px;position:absolute;inset:0}.route-card-art:after{content:"";height:66%;clip-path:var(--ridge);background:#ffffff12;position:absolute;inset:auto -10% -26%}.route-card-art svg{z-index:1;width:40px;height:40px;position:relative}.route-card-body{padding:1.15rem}.route-card-body h2{margin:0;font-size:1.05rem}.route-card-body p{color:var(--text-muted);min-height:2.4rem;margin-bottom:0;font-size:.86rem}.route-card-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin-top:1.1rem;display:grid}.route-card-actions .button,.route-card-actions .link-button{border-radius:var(--radius-sm);width:100%;min-width:0;min-height:42px;padding:.55rem .3rem;font-size:.82rem;line-height:1}.route-card-actions .link-button{border:1px solid var(--border);color:var(--forest-800);background:0 0}.route-card-actions .link-button:hover{border-color:var(--forest-400);background:var(--forest-50)}.route-card-actions .danger-link{background:var(--danger-soft);color:var(--danger);border-color:#ecd5cf}.route-card-actions .danger-link:hover{background:#f6e2dd;border-color:#e0bdb4}.route-card-actions button:disabled{opacity:.5;cursor:not-allowed}.inline-stats{border-top:1px solid var(--border);gap:1.6rem;margin:1.1rem 0 0;padding-top:1rem;display:flex}.inline-stats div{flex-direction:column;display:flex}.inline-stats dt{color:var(--text-subtle);letter-spacing:.06em;text-transform:uppercase;font-size:.7rem;font-weight:700}.inline-stats dd{font-variant-numeric:tabular-nums;margin:.3rem 0 0;font-family:Manrope,sans-serif;font-weight:800}.editor-layout{grid-template-columns:374px minmax(0,1fr);gap:1rem;min-height:680px;display:grid}.editor-panel{max-height:calc(100vh - 160px);padding:1.25rem;overflow-y:auto}.editor-panel label,.login-card label{color:var(--text-muted);flex-direction:column;gap:.4rem;margin-bottom:1rem;font-size:.78rem;font-weight:700;display:flex}.editor-panel input,.editor-panel textarea,.login-card input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);outline:none;padding:.72rem .8rem;font-size:.92rem;font-weight:500;transition:border-color .16s,box-shadow .16s}.editor-panel input:focus,.editor-panel textarea:focus,.login-card input:focus{border-color:var(--forest-500);box-shadow:0 0 0 3px #3b8a5e26}.metric-banner{border-radius:var(--radius);background:linear-gradient(158deg, var(--forest-700), var(--forest-900));color:#f1f6f1;flex-direction:column;margin:1.2rem 0;padding:1rem 1.1rem;display:flex;position:relative;overflow:hidden}.metric-banner:after{content:"";height:70%;clip-path:var(--ridge);background:#ffffff0f;position:absolute;inset:auto -12% -30%}.metric-banner span,.metric-banner small{z-index:1;color:#a4c0af;font-size:.74rem;position:relative}.metric-banner strong{z-index:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:.3rem 0 .15rem;font-size:1.45rem;position:relative}.editor-tools{border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;gap:.7rem;padding-bottom:1.2rem;display:flex}.editor-tools p{color:var(--text-muted);margin:0;font-size:.84rem}.editor-tools .wide{white-space:normal;line-height:1.25}.editor-tools .link-button{align-self:flex-start;min-height:0;padding-inline:0}.checkpoint-list h3{margin:1.2rem 0 .6rem}.checkpoint-item{border-top:1px solid var(--border);grid-template-columns:28px minmax(0,1fr) 40px;align-items:center;gap:.6rem;padding:.5rem 0;display:grid}.checkpoint-item input{background:0 0;border:0;border-radius:4px;padding:.15rem 0;font-weight:700}.checkpoint-item input:focus{box-shadow:none}.checkpoint-item small{color:var(--text-muted);font-size:.72rem;display:block}.checkpoint-dot{color:#2c1f05;background:#d9a115;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:.72rem;font-weight:800;display:inline-grid}.checkpoint-dot.start{background:var(--forest-600);color:#fff}.checkpoint-dot.finish{color:#fff;background:#b23f52}.checkpoint-dot.segment{color:#fff}.editor-map-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);min-height:680px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.editor-map-wrap>.editor-map{width:100%;height:100%;position:absolute;inset:0}.editor-map.mode-draw,.editor-map.mode-checkpoint{cursor:crosshair}.vertex-marker{background:var(--forest-800);border:2px solid #fff;border-radius:50%;width:13px;height:13px;padding:0;box-shadow:0 1px 5px #00000059}.checkpoint-marker{color:#2c1f05;background:#d9a115;border:2px solid #fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:.7rem;font-weight:800;display:grid;box-shadow:0 2px 7px #0000004d}.checkpoint-marker.checkpoint-start{background:var(--forest-600);color:#fff}.checkpoint-marker.checkpoint-finish{color:#fff;background:#b23f52}.candidate-dialog{z-index:4;width:min(350px,100% - 2rem);box-shadow:var(--shadow-lg);flex-direction:column;gap:.45rem;padding:1rem;display:flex;position:absolute;bottom:1rem;left:1rem}.candidate-dialog p{color:var(--text-muted);margin:0;font-size:.84rem}.candidate-dialog button{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);text-align:left;padding:.6rem .7rem;font-size:.86rem;font-weight:600}.candidate-dialog button:hover{border-color:var(--forest-400);background:var(--forest-50)}.validation-list{border-radius:var(--radius-sm);color:#7f5a13;background:#fdf3d9;border:1px solid #f0e0b4;margin-top:1rem;padding:.85rem 1rem;font-size:.82rem}.validation-list ul{margin-bottom:0;padding-left:1.15rem}.table-card{overflow:hidden}.table-head,.table-row{grid-template-columns:1.4fr 1.3fr .8fr .8fr .8fr .9fr;align-items:center;gap:1rem;padding:.85rem 1.15rem;display:grid}.table-head{background:var(--surface-2);border-bottom:1px solid var(--border);color:var(--text-subtle);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:800}.table-row{border-top:1px solid var(--border);font-variant-numeric:tabular-nums;font-size:.87rem;transition:background .14s}.table-row:first-of-type{border-top:0}.table-row:hover{background:var(--surface-2)}.table-row strong{font-variant-numeric:normal}.detail-grid{grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);align-items:start;gap:1rem;display:grid}.detail-grid>.card:first-child{padding:.4rem}.detail-map{border-radius:var(--radius);height:520px;overflow:hidden}.segments h2{margin-bottom:.9rem}.segment-row{border-top:1px solid var(--border);grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.85rem 0;display:grid}.segment-row div{flex-direction:column;min-width:0;display:flex}.segment-row div:last-child{text-align:right;font-variant-numeric:tabular-nums}.segment-row strong{font-size:.92rem}.segment-row small{color:var(--text-muted);font-size:.74rem}.login-page{background:var(--surface);grid-template-columns:1.2fr .8fr;min-height:100dvh;display:grid}.login-visual{background:linear-gradient(170deg,#e5eadd 0%,#f2dcb6 65%,#eec994 100%);align-items:center;padding:8vw;display:flex;position:relative;overflow:hidden}.login-visual:before{content:"";background-image:radial-gradient(#163b2a12 1px,#0000 1px);background-size:18px 18px;position:absolute;inset:0}.ridge{height:56%;clip-path:var(--ridge);position:absolute;bottom:-10%;left:-10%;right:-10%}.ridge-back{background:var(--forest-400);opacity:.55;transform:translateY(-9%)}.ridge-front{background:var(--forest-800)}.login-copy{z-index:2;color:var(--forest-800);align-self:flex-start;margin-top:11vh;position:relative}.login-copy h1{font-size:clamp(2.8rem,5.4vw,5rem)}.login-copy p{max-width:34ch;color:var(--forest-700);font-size:1.08rem}.login-card{place-self:center;width:min(384px,82%)}.login-card h2{margin-bottom:.25rem;font-size:1.85rem}.login-card>p,.login-card>small{color:var(--text-muted)}.login-card>p{margin-bottom:1.6rem;font-size:.92rem}.login-card button{margin-top:.5rem}.login-card>small{text-align:center;margin-top:1.1rem;font-size:.78rem;display:block}@container page (width<=980px){.dashboard-grid,.detail-grid,.hero-grid,.editor-layout{grid-template-columns:1fr}.editor-panel{max-height:none}}@container (width<=640px){.chart-heading{flex-direction:column}.chart-range{align-items:stretch;width:100%}.chart-range-presets{width:100%}.chart-legend{flex-direction:column;align-items:stretch}.chart-views{width:100%}}@media (width<=1100px){.hero-grid,.dashboard-grid,.detail-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-layout{grid-template-columns:1fr}.editor-panel{max-height:none}.editor-map-wrap{min-height:520px}.segment-record-head,.segment-record-row{grid-template-columns:minmax(0,1.6fr) 4rem minmax(4.5rem,.9fr) minmax(4.5rem,.9fr)}.segment-record-head span:last-child,.segment-record-row>.segment-bar{display:none}}@media (width<=1280px),(orientation:portrait){.dashboard-grid{grid-template-columns:1fr}}@media (orientation:portrait){.editor-layout{grid-template-columns:1fr}.editor-panel{max-height:none}.editor-map-wrap{min-height:520px}}@media (width<=760px){.app-shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.sidebar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand signout""nav nav";align-items:center;gap:.5rem 1rem;width:100%;height:auto;min-height:0;padding:.7rem 1rem .6rem;display:grid;position:static}.sidebar:after,.nav-label{display:none}.brand{grid-area:brand;min-width:0;margin:0;padding:.2rem}.brand small{display:none}.sidebar nav{grid-area:nav;grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem;width:100%;display:grid}.sidebar nav a{white-space:nowrap;justify-content:center;min-width:0;padding:.55rem .3rem;font-size:.8rem}.sidebar nav a svg,.sidebar nav a.active:before{display:none}.sidebar-footer{border:0;grid-area:signout;margin:0;padding:0}.sign-out{white-space:nowrap;padding:.55rem .5rem;font-size:.82rem}.sign-out span{display:none}.main-content{padding:1.2rem}.page-header{flex-direction:column;align-items:stretch}.metric-grid{gap:.75rem}.editor-layout{grid-template-columns:1fr}.editor-panel{max-height:none}.editor-map-wrap{min-height:460px}.table-head{display:none}.table-row{grid-template-columns:repeat(2,minmax(0,1fr))}.table-row span:before{content:attr(data-label);color:var(--text-subtle);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.15rem;font-size:.66rem;font-weight:800;display:block}.login-page{grid-template-columns:1fr}.login-visual{align-items:flex-start;min-height:290px;padding:2rem}.login-visual .ridge{height:26%;bottom:-4%}.login-copy{margin:0}.login-copy h1{max-width:9ch;margin-top:.35rem;font-size:clamp(2.3rem,11vw,2.8rem);line-height:1}.login-copy p{max-width:260px;font-size:1rem}.login-card{width:min(390px,100% - 2rem);padding:2.2rem 0 2rem}}@media (width<=560px){.header-actions{flex-direction:column;align-items:stretch;width:100%}.route-filter select,.route-filter input[type=date]{width:100%;min-width:0}.page-header .button,.page-header button{width:100%}.metric-grid,.stats-grid,.stats-grid.three{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.metric{flex-direction:column;gap:.7rem;padding:.9rem}.metric-icon{width:32px;height:32px}.metric-body strong{font-size:1.2rem}.stat-card{padding:1rem}.stat-card strong{overflow-wrap:anywhere;font-size:clamp(1.2rem,6vw,1.6rem)}.chart-card,.recent-card,.segments,.segment-records{padding:1.1rem}.chart-range,.chart-range-presets{align-items:stretch;width:100%}.chart-range-presets{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.chart-preset{padding:.3rem .2rem;font-size:.74rem}.chart-range-inputs{grid-template-columns:1fr}.chart-hint{text-align:left}.main-content{padding:1rem}.table-row>span:first-child{grid-column:1/-1}.segment-record-head{display:none}.segment-record-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;padding:.9rem .2rem}.segment-record-row>.segment-name{grid-column:1/-1}.segment-record-row>span:not(.segment-name):before{content:attr(data-label);color:var(--text-subtle);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.2rem;font-size:.62rem;font-weight:800;display:block}.editor-map-wrap{min-height:400px}.recent-row{align-items:flex-start}}@media (width<=380px){.sidebar nav{gap:.2rem}.sidebar nav a{padding-inline:.2rem;font-size:.73rem}.editor-tools .row{flex-direction:column;align-items:stretch}.editor-tools .row button{width:100%}.login-visual{min-height:270px;padding:1.5rem}.login-copy h1{font-size:2.2rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
