@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{color:#1c2b22;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;--forest:#173d2b;--orange:#b94b23;--cream:#f4f2ea;--paper:#fffdf7;--muted:#626e65;--border:#dbe0d7;background:#f4f2ea;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--cream);min-width:320px;min-height:100dvh;margin:0;overflow-x:hidden}button,input,textarea,select{font:inherit}button,.button{cursor:pointer;border:0;min-height:44px}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #b94b2359}h1,h2,h3,p{margin-top:0}h1,h2,h3,strong{font-family:Manrope,sans-serif}h1{letter-spacing:-.045em;margin-bottom:.55rem;font-size:clamp(2rem,3vw,3.35rem);line-height:1.02}h2{letter-spacing:-.03em}.eyebrow{color:var(--orange);letter-spacing:.15em;font-size:.75rem;font-weight:800}.app-shell{grid-template-columns:245px 1fr;min-height:100dvh;display:grid}.sidebar{background:var(--forest);color:#f7f3e9;flex-direction:column;height:100vh;padding:2rem 1.4rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.8rem;margin-bottom:3rem;display:flex}.brand div{flex-direction:column;display:flex}.brand small{opacity:.62;font-size:.7rem}.brand-mark{color:#f0a044;font-size:1.8rem;transform:scaleX(.8)}.brand-mark.large{font-size:3.2rem;display:inline-block}.sidebar nav{flex-direction:column;gap:.4rem;display:flex}.sidebar nav a{color:#bdcbbf;border-radius:10px;align-items:center;min-height:44px;padding:.85rem 1rem;font-weight:600;display:flex}.sidebar nav a.active,.sidebar nav a:hover{color:#fff;background:#ffffff1a}.sign-out{text-align:left;margin-top:auto;padding:1rem;color:#bdcbbf!important}.main-content{min-width:0;padding:clamp(1.5rem,4vw,3.5rem)}.main-content>section{width:min(100%,1440px);margin-inline:auto}.page-header{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem;display:flex}.page-header p{color:var(--muted);margin-bottom:0}.header-actions{align-items:end;gap:.8rem;display:flex}.route-filter{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;flex-direction:column;gap:.35rem;font-size:.72rem;font-weight:800;display:flex}.route-filter select{border:1px solid var(--border);background:var(--paper);min-width:190px;color:var(--forest);font:inherit;text-transform:none;letter-spacing:0;border-radius:9px;padding:.72rem .85rem}.page-header.compact{align-items:center}.back-link{color:var(--muted);margin-bottom:.75rem;font-weight:600;display:inline-block}.button,button.primary,button.secondary{border-radius:9px;justify-content:center;align-items:center;padding:.78rem 1.1rem;font-weight:700;transition:all .18s;display:inline-flex}.primary{background:var(--orange);color:#fff;box-shadow:0 6px 18px #b94b232e}.primary:hover{background:#963b1a;transform:translateY(-1px)}.primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.secondary{color:var(--forest);background:#e8ece5}.secondary:hover{background:#dce3d9}.link-button{color:var(--orange);background:0 0;padding:.5rem;font-weight:700}.icon-button{color:#8f3f29;background:0 0;width:44px;height:44px;padding:.2rem;font-size:1.4rem}.wide{width:100%}.row{align-items:center;gap:.7rem;display:flex}.between{justify-content:space-between}.actions{margin-top:1rem}.card{background:var(--paper);border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 30px #1837270b}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.2rem;display:grid}.stats-grid.three{grid-template-columns:repeat(3,1fr)}.stats-grid-six{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{background:var(--paper);border:1px solid var(--border);border-radius:14px;flex-direction:column;padding:1.3rem;display:flex}.stat-card span{color:var(--muted);font-size:.82rem;font-weight:600}.stat-card strong{margin:.5rem 0 .2rem;font-size:clamp(1.4rem,2.3vw,2rem)}.stat-card small{color:#8c968e}.stat-card.accent{background:var(--forest);color:#fff;border-color:var(--forest)}.stat-card.accent span,.stat-card.accent small{color:#b9c8bc}.dashboard-grid{grid-template-columns:minmax(0,1.6fr) minmax(300px,.9fr);gap:1.2rem;display:grid}.chart-card,.recent-card,.segments{padding:1.4rem}.section-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.2rem;display:flex}.section-heading h2{margin-bottom:.2rem}.section-heading p{color:var(--muted);margin:0}.section-heading a{color:var(--orange);font-weight:700}.recent-row{border-top:1px solid var(--border);justify-content:space-between;gap:1rem;padding:1rem 0;display:flex}.recent-row div{flex-direction:column;display:flex}.recent-row div:last-child{text-align:right}.recent-row small{color:var(--muted)}.segment-records{margin-top:1.2rem;padding:1.4rem}.segment-record-head,.segment-record-row{grid-template-columns:1.6fr .6fr 1fr 1fr;align-items:center;gap:1rem;padding:.8rem;display:grid}.segment-record-head{color:var(--muted);text-transform:uppercase;background:#eef0e9;border-radius:8px;font-size:.72rem;font-weight:800}.segment-record-row{border-bottom:1px solid var(--border)}.record-time{color:var(--orange);font-weight:800}.empty-chart,.empty-small,.loading-block{color:var(--muted);text-align:center;padding:2rem}.route-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.route-card{overflow:hidden}.route-card.muted{opacity:.7}.route-card-art{color:#eea454;background:linear-gradient(155deg,#2e6245,#173d2b);place-items:center;height:110px;font-size:3rem;display:grid}.route-card-body{padding:1.2rem}.route-card-body h2{margin:0}.route-card-body p{color:var(--muted);min-height:2.5rem}.inline-stats{gap:2rem;margin:1rem 0;display:flex}.inline-stats div{flex-direction:column;display:flex}.inline-stats dt{color:var(--muted);font-size:.75rem}.inline-stats dd{margin:.2rem 0 0;font-weight:800}.badge{color:#56635a;background:#e9ece7;border-radius:999px;width:fit-content;padding:.3rem .55rem;font-size:.72rem;font-weight:800;display:inline-flex}.status-completed{color:#23633a;background:#dcecdf}.status-cancelled{color:#8b3a2f;background:#f1dfdc}.status-active{color:#87611b;background:#f7e8c7}.empty{text-align:center;max-width:620px;margin:3rem auto;padding:4rem 2rem}.empty p{color:var(--muted)}.editor-layout{grid-template-columns:370px minmax(0,1fr);gap:1rem;min-height:680px;display:grid}.editor-panel{max-height:calc(100vh - 150px);padding:1.25rem;overflow-y:auto}.editor-panel label,.login-card label{flex-direction:column;gap:.45rem;margin-bottom:1rem;font-size:.8rem;font-weight:700;display:flex}.editor-panel input,.editor-panel textarea,.login-card input{background:#fff;border:1px solid #ccd4ca;border-radius:8px;outline:none;width:100%;padding:.78rem .85rem}.editor-panel input:focus,.editor-panel textarea:focus,.login-card input:focus{border-color:#658b70;box-shadow:0 0 0 3px #658b7021}.metric-banner{background:var(--forest);color:#fff;border-radius:10px;flex-direction:column;margin:1.2rem 0;padding:1rem;display:flex}.metric-banner span,.metric-banner small{color:#bdcabe}.metric-banner strong{margin:.25rem 0;font-size:1.5rem}.editor-tools{border-bottom:1px solid var(--border);padding-bottom:1.2rem}.editor-tools p{color:var(--muted);font-size:.85rem}.checkpoint-list h3{margin:1.2rem 0 .7rem}.checkpoint-item{border-top:1px solid #ecefe9;grid-template-columns:30px minmax(0,1fr) 44px;align-items:center;gap:.65rem;padding:.45rem 0;display:grid}.checkpoint-item input{background:0 0;border:0;padding:.2rem 0;font-weight:700}.checkpoint-item small{color:var(--muted);font-size:.72rem;display:block}.checkpoint-dot{color:#243026;background:#f2b84b;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:.72rem;font-weight:800;display:inline-grid}.checkpoint-dot.start{color:#fff;background:#3b8753}.checkpoint-dot.finish{color:#fff;background:#bd4840}.editor-map-wrap{border:1px solid var(--border);border-radius:16px;min-height:680px;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:#173d2b;border:2px solid #fff;border-radius:50%;width:13px;height:13px;padding:0;box-shadow:0 1px 5px #00000059}.checkpoint-marker{background:#f2b84b;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 #00000047}.checkpoint-marker.checkpoint-start{color:#fff;background:#3b8753}.checkpoint-marker.checkpoint-finish{color:#fff;background:#bd4840}.candidate-dialog{z-index:4;flex-direction:column;gap:.5rem;width:min(350px,100% - 2rem);padding:1rem;display:flex;position:absolute;bottom:1rem;left:1rem}.candidate-dialog p{color:var(--muted);margin:0;font-size:.85rem}.candidate-dialog button{text-align:left;background:#e7ece5;border-radius:7px;padding:.65rem}.validation-list{color:#804321;background:#fff1e6;border-radius:9px;margin-top:1rem;padding:.8rem;font-size:.82rem}.validation-list ul{margin-bottom:0;padding-left:1.2rem}.alert{border-radius:9px;margin:1rem 0;padding:.8rem 1rem}.alert.error{color:#8c3028;background:#f6dfdc}.alert.warning{color:#785715;background:#fff0cd}.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:.9rem 1.1rem;display:grid}.table-head{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;background:#eef0e9;font-size:.72rem;font-weight:800}.table-row{border-top:1px solid var(--border);font-size:.85rem}.table-row:hover{background:#f8f8f3}.detail-grid{grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:1rem;display:grid}.detail-grid>.card:first-child{padding:.5rem}.detail-map{border-radius:12px;height:520px;overflow:hidden}.segment-row{border-top:1px solid var(--border);grid-template-columns:30px 1fr auto;align-items:center;gap:.7rem;padding:.9rem 0;display:grid}.segment-row div{flex-direction:column;display:flex}.segment-row div:last-child{text-align:right}.segment-row small{color:var(--muted)}.login-page{background:var(--paper);grid-template-columns:1.25fr .75fr;min-height:100vh;display:grid}.login-visual{background:linear-gradient(#d9e0d1,#f3d8aa);align-items:center;padding:8vw;display:flex;position:relative;overflow:hidden}.ridge{clip-path:polygon(0 100%,0 65%,16% 32%,28% 58%,44% 14%,61% 59%,72% 35%,100% 73%,100% 100%);height:56%;position:absolute;bottom:-10%;left:-10%;right:-10%}.ridge-back{opacity:.6;background:#6c9070;transform:translateY(-8%)}.ridge-front{background:#183f2d}.login-copy{z-index:2;color:var(--forest);align-self:flex-start;margin-top:12vh;position:relative}.login-copy h1{font-size:clamp(3rem,6vw,6rem)}.login-copy p{font-size:1.15rem}.login-card{place-self:center;width:min(390px,80%)}.login-card h2{margin-bottom:.3rem;font-size:2rem}.login-card>p,.login-card>small{color:var(--muted)}.login-card button{margin-top:.6rem}.login-card>small{text-align:center;margin-top:1rem;display:block}.center-screen{text-align:center;min-height:100dvh;color:var(--muted);place-content:center;display:grid}.spinner{border:3px solid #d2d9d0;border-top-color:var(--orange);border-radius:50%;width:32px;height:32px;margin:auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1000px){.stats-grid,.stats-grid-six{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.detail-grid{grid-template-columns:1fr}.editor-layout{grid-template-columns:320px 1fr}}@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:.55rem 1rem;width:100%;height:auto;min-height:0;padding:.75rem 1rem .65rem;display:grid;position:static;overflow:visible}.brand{grid-area:brand;min-width:0;margin:0}.brand small{display:none}.sidebar nav{grid-area:nav;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;width:100%;display:grid}.sidebar nav a{white-space:nowrap;text-align:center;justify-content:center;min-width:0;padding:.6rem .35rem;font-size:.82rem}.sign-out{white-space:nowrap;grid-area:signout;margin:0;padding:.6rem .2rem}.main-content{padding:1.2rem}.page-header{align-items:flex-start}.editor-layout{grid-template-columns:1fr}.editor-panel{max-height:none}.editor-map-wrap{min-height:480px}.table-head{display:none}.table-row{grid-template-columns:repeat(2,minmax(0,1fr))}.table-row span:before{content:attr(data-label);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.15rem;font-size:.68rem;font-weight:700;display:block}.login-page{grid-template-columns:1fr}.login-visual{align-items:flex-start;min-height:300px;padding:2rem}.login-visual .ridge{height:26%;bottom:-4%}.login-copy{margin:0}.login-copy h1{max-width:8ch;margin-top:.35rem;font-size:clamp(2.35rem,12vw,2.8rem);line-height:.98}.login-copy p{max-width:260px;font-size:1rem}.login-card{width:min(390px,100% - 2rem);padding:2.3rem 0 2rem}}@media (width<=520px){.stats-grid,.stats-grid.three,.stats-grid-six{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.stat-card{min-height:118px;padding:1rem}.stat-card strong{overflow-wrap:anywhere;font-size:clamp(1.25rem,6.5vw,1.65rem)}.page-header{flex-direction:column;gap:1.2rem}.header-actions{flex-direction:column;align-items:stretch;width:100%}.route-filter select,.page-header .button,.page-header button{width:100%}.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 span:first-child{grid-column:1/-1}.segment-record-row span:not(:first-child):before{content:attr(data-label);color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.2rem;font-size:.62rem;font-weight:800;display:block}.editor-map-wrap{min-height:420px}.recent-row{align-items:flex-start}}@media (width<=380px){.sidebar{gap:.45rem .75rem}.brand{gap:.45rem}.brand-mark{font-size:1.45rem}.sidebar nav{gap:.2rem}.sidebar nav a{padding-inline:.2rem;font-size:.73rem}.sign-out{font-size:.78rem}.editor-tools .row{flex-direction:column;align-items:stretch}.editor-tools .row button{width:100%}.login-visual{min-height:285px;padding:1.5rem}.login-copy h1{font-size:2.25rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
