:root{--forest:#123f2d;--pine:#0b2f22;--emerald:#15945b;--lime:#9bdc68;--sun:#ffbf4a;--mist:#f3faf5;--ice:#e6f6f5;--paper:#fffefa;--line2:#d9eadf;--muted2:#648073}
body{background:radial-gradient(circle at 80% -10%,#d9f7cc 0,transparent 25%),linear-gradient(180deg,#f5fbf5,#edf7f1 60%,#f8fbf6);color:var(--forest)}
.app-shell{grid-template-columns:250px 1fr}.sidebar{background:linear-gradient(180deg,#103f2c,#0a2f22);border:0;color:#fff;padding:28px 20px}.brand{color:#fff}.brand img{filter:none}.nav-title{color:#8bcfa6}.sidebar nav a{color:#cce5d5;border:1px solid transparent}.sidebar nav a:hover{background:#ffffff10;color:#fff}.sidebar nav a.active{background:linear-gradient(135deg,#22a666,#15864f);box-shadow:0 10px 24px #001a0e55}.trail-note{background:#ffffff0b;border-color:#ffffff1c}.trail-note p,.logout button{color:#b8d7c4}.topbar{height:76px;background:#fffffff0;backdrop-filter:blur(15px);padding:0 38px}.user-chip{display:flex;align-items:center;gap:10px}.user-chip i{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--lime),var(--emerald));color:#fff;font-style:normal;font-weight:800}.user-chip span{display:grid}.user-chip strong{font-size:.84rem}.user-chip small{font-size:.68rem;color:var(--muted2)}
.workspace{padding:36px 42px 60px}.v2-head{align-items:center}.v2-head h1{font-size:clamp(2rem,3vw,3.2rem);letter-spacing:-.045em;margin:5px 0}.v2-head p{font-size:.95rem}.head-actions{display:flex;gap:9px;flex-wrap:wrap}.button{border-radius:12px;padding:10px 17px}.button.primary{background:linear-gradient(135deg,#1da565,#11824e);border-color:#13834f;box-shadow:0 8px 20px #16834b2e}.button.soft{background:#fff;border-color:var(--line2)}
.panel{border-color:var(--line2);border-radius:20px;box-shadow:0 12px 38px #17482c0b;background:#fff}.hero-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.metric{background:#fff;border:1px solid var(--line2);border-radius:18px;padding:18px;display:flex;align-items:center;gap:13px;box-shadow:0 8px 24px #17482c08}.metric-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(145deg,#e4f7de,#dff5ec);color:var(--emerald);font-weight:900;font-size:1.25rem}.metric div{display:grid}.metric small{color:var(--muted2);font-size:.74rem;text-transform:uppercase;letter-spacing:.07em}.metric strong{font-size:1.32rem;line-height:1.3}.metric em{font-size:.68rem;color:#83a292;font-style:normal}.sensor-strip{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 19px}.sensor-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#e8f7ee;color:#28724d;font-size:.72rem;font-weight:700;border:1px solid #cfead9}.sensor-badge i{width:7px;height:7px;border-radius:50%;background:#21a563;box-shadow:0 0 0 3px #21a5631e}.sensor-badge.off{background:#f3f5f3;color:#809087;border-color:#e1e7e2}.sensor-badge.off i{background:#aab5ae;box-shadow:none}
.map-card{margin-bottom:20px}.panel-head.rich{align-items:center;padding:20px 23px}.panel-head.rich h2{font-size:1.24rem;margin:4px 0 0}.panel-head.rich>div:last-child{display:flex;align-items:center;gap:12px;color:var(--muted2);font-size:.78rem}.panel-head.rich p{margin:0;color:var(--muted2);font-size:.8rem}.mini-button{background:#eef8f1;border:1px solid #d1e9d9;border-radius:9px;padding:7px 10px;color:var(--forest);font-weight:700;cursor:pointer}.route-map{position:relative;width:100%!important;height:490px;background:#dcefe5;isolation:isolate}.route-map.leaflet-container{width:100%!important}.leaflet-control-layers,.leaflet-control-zoom{border:0!important;box-shadow:0 6px 25px #123f2d24!important;border-radius:11px!important;overflow:hidden}.leaflet-control-attribution{font-size:10px!important}.poi-marker span{width:32px;height:32px;border-radius:10px;background:#fff;border:2px solid var(--emerald);box-shadow:0 4px 12px #123f2d44;display:grid;place-items:center;font-weight:900;color:var(--forest)}
.elevation-card{margin-bottom:20px;overflow:hidden}.chart-readout{display:grid;grid-template-columns:repeat(4,1fr);margin:0 23px;border-bottom:1px solid #edf3ef}.chart-readout span{padding:13px 8px;display:grid}.chart-readout small{font-size:.7rem;color:var(--muted2);text-transform:uppercase;letter-spacing:.07em}.chart-readout b{font-size:.95rem}.elevation-card svg{width:100%;height:auto;display:block;padding:8px 20px 7px;touch-action:none;user-select:none}.chart-grid line{stroke:#dfe9e2;stroke-width:1;stroke-dasharray:4 5}.chart-area{fill:#7da16d1d}.chart-line{fill:none;stroke:#7c976e;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.chart-axis text{font-size:12px;fill:var(--muted2)}.chart-cursor{stroke:#f2a01f;stroke-width:2;stroke-dasharray:4 4;opacity:0;transition:opacity .12s}.chart-dot{fill:#ffb02e;stroke:#fff;stroke-width:4;filter:drop-shadow(0 3px 5px #99630055);opacity:0;transition:opacity .12s}.elevation-card.is-hovering .chart-cursor,.elevation-card.is-hovering .chart-dot{opacity:1}.chart-hit{fill:transparent;cursor:crosshair}.elevation-summary{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #e8efea;padding:0 23px}.elevation-summary span{padding:15px 8px;display:flex;align-items:baseline;gap:10px}.elevation-summary small{font-size:.72rem;color:var(--muted2)}.elevation-summary b{font-size:.84rem;color:var(--forest)}
.analytics-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);gap:20px}.insight .panel-head a{color:var(--emerald);font-weight:700}.insight-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:18px}.insight-grid .metric{box-shadow:none;background:#f8fcf8}.climb-preview{padding-bottom:10px}.climb-row{display:grid;grid-template-columns:58px 1fr 90px 75px;align-items:center;gap:10px;padding:13px 20px;border-bottom:1px solid #edf3ef}.climb-row>b{font-size:.72rem;background:#173e2b;color:#fff;padding:7px;border-radius:8px;text-align:center}.climb-row div,.climb-row span{display:grid}.climb-row small{font-size:.68rem;color:var(--muted2)}.missing-data{padding:44px 22px;text-align:center;color:var(--muted2)}.missing-data.compact{padding:28px 18px}
.activity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.activity-card{display:grid;grid-template-columns:170px 1fr;min-height:205px;transition:.18s}.activity-card:hover{transform:translateY(-3px);box-shadow:0 18px 45px #17482c18}.activity-art{padding:18px;background:linear-gradient(150deg,#bee9a5,#4fc889 55%,#158e5a);display:flex;flex-direction:column;justify-content:space-between;color:#0b3825}.activity-art span{font-size:.72rem;font-weight:700}.activity-art b{font-size:1.25rem}.activity-copy{padding:22px}.activity-copy small{color:var(--emerald);font-weight:800}.activity-copy h2{margin:6px 0;font-size:1.25rem}.activity-copy p{color:var(--muted2);margin:0}.activity-copy>div{display:flex;gap:15px;margin-top:28px;padding-top:14px;border-top:1px solid #e6efe9;font-size:.78rem}
.analytics-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px}.climb-list{padding:8px 0}.method-note{margin:18px;padding:14px;background:#fff8e7;border:1px solid #f1dfb1;border-radius:12px;color:#735d23;font-size:.76rem}.sensor-summary{padding:24px;background:linear-gradient(160deg,#e7f7f3,#f9fff9)}.sensor-summary h2{font-size:1.5rem}.sensor-summary dl div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #cee6dc}.sensor-summary dd{font-weight:800}.sensor-summary p{font-size:.75rem;color:var(--muted2)}.module-roadmap{margin-top:24px}.module-roadmap>div{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.module-roadmap article{background:#fff;border:1px dashed #b9d6c4;border-radius:16px;padding:17px}.module-roadmap span{font-size:.65rem;text-transform:uppercase;background:#fff1ce;color:#745817;padding:4px 7px;border-radius:999px}.module-roadmap h3{margin:13px 0 5px}.module-roadmap p{font-size:.76rem;color:var(--muted2);margin:0}
.waypoint-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.waypoint{padding:19px;display:flex;gap:14px}.poi-symbol{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#e6f7ed;color:var(--emerald);font-size:1.3rem}.waypoint small{color:var(--emerald);font-weight:800;text-transform:uppercase}.waypoint h2{font-size:1.05rem;margin:4px 0}.waypoint p,.waypoint span{font-size:.76rem;color:var(--muted2)}
.cues{margin-top:20px}.cue-list{display:grid;grid-template-columns:repeat(2,1fr);padding:12px}.cue-list article{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:11px;padding:12px;border-bottom:1px solid #edf3ef}.cue-list article>b{width:30px;height:30px;border-radius:9px;background:#e4f5eb;color:var(--emerald);display:grid;place-items:center}.cue-list article div{display:grid}.cue-list article small{color:var(--muted2);font-size:.7rem}.cue-list article>span{font-size:.75rem;font-weight:800;color:var(--muted2)}
.device-v2-grid{display:grid;grid-template-columns:1fr 330px;gap:20px}.device-main{padding:10px 22px}.device-unit{display:grid;grid-template-columns:64px 1fr auto;gap:17px;align-items:center;padding:22px 0;border-bottom:1px solid #e8f0eb}.device-unit:last-child{border:0}.device-orb{width:64px;height:64px;border-radius:20px;background:linear-gradient(145deg,#aee68b,#20a969);color:#fff;display:grid;place-items:center;font-weight:900;font-size:1.5rem}.device-unit small{color:var(--emerald);font-weight:700}.device-unit h2{margin:2px 0}.device-unit p{margin:0;color:var(--muted2)}.device-unit .sensor-strip{margin:10px 0 0}.status-pill{padding:6px 10px;border-radius:999px;background:#e5f7eb;color:#197347;font-size:.7rem;font-weight:800}.sync-principle{padding:25px;background:linear-gradient(150deg,#153f2e,#0b2f22);color:#fff}.sync-principle .eyebrow{color:#8fd0a8}.sync-principle h2{font-size:1.8rem}.sync-principle ol{padding-left:20px;color:#d3e8dc}.sync-principle p{font-size:.75rem;color:#a9c7b5}
.share-card .share-body{padding:20px 23px;display:grid;gap:14px}.share-card label{font-weight:750;font-size:.82rem;display:grid;gap:6px;max-width:220px}.share-card input[type=number]{border:1px solid #c8ddd0;border-radius:10px;padding:10px 12px;font:inherit;background:#fbfefb}.share-card input[type=number]:disabled{opacity:.6}.share-card .token-box{word-break:break-all}.share-shell{max-width:900px;margin:0 auto;padding:40px 20px 60px}
.modal{border:0;background:transparent;padding:0;max-width:min(500px,calc(100% - 30px));width:100%}.modal::backdrop{background:#072418a8;backdrop-filter:blur(4px)}.modal-card{background:#fff;border-radius:22px;padding:28px;display:grid;gap:14px;position:relative;box-shadow:0 30px 80px #001a0f66}.modal-card h2{font-size:1.6rem;margin:0}.modal-card p{color:var(--muted2);margin:0}.modal-card label{font-size:.8rem;font-weight:750}.modal-card input,.modal-card select,.modal-card textarea{display:block;width:100%;margin-top:6px;border:1px solid #c8ddd0;border-radius:11px;padding:11px 12px;background:#fbfefb;font:inherit}.modal-x{position:absolute;right:17px;top:14px;border:0;background:transparent;font-size:1.6rem;color:#668174;cursor:pointer}.token-box{padding:14px;word-break:break-all;background:#0b2f22;color:#b9efcf;border-radius:12px;font-size:.78rem}.google-button{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #ccdcd1;border-radius:11px;padding:11px;background:#fff;font-weight:750;margin-top:20px}.google-button span{font-size:1.2rem;color:#4285f4}.login-or{display:flex;align-items:center;gap:10px;color:#8a9c91;font-size:.72rem;margin:14px 0}.login-or:before,.login-or:after{content:"";height:1px;background:#e0e9e3;flex:1}.login-card form{margin-top:0}.empty-orbit{font-size:2rem;color:var(--emerald)}
@media(max-width:1150px){.hero-metrics{grid-template-columns:repeat(2,1fr)}.analytics-grid,.analytics-layout{grid-template-columns:1fr}.module-roadmap>div{grid-template-columns:repeat(2,1fr)}.waypoint-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.workspace{padding:24px 16px 45px}.topbar{padding:0 16px}.user-chip span{display:none}.head-actions{width:100%}.head-actions .button{flex:1}.hero-metrics{grid-template-columns:1fr 1fr}.route-map{height:390px}.chart-readout{grid-template-columns:1fr 1fr}.analytics-grid,.device-v2-grid{grid-template-columns:1fr}.activity-grid{grid-template-columns:1fr}.module-roadmap>div,.waypoint-grid,.cue-list{grid-template-columns:1fr}.climb-row{grid-template-columns:54px 1fr 72px}.climb-row>span:last-child{display:none}}
@media(max-width:500px){.hero-metrics{grid-template-columns:1fr}.activity-card{grid-template-columns:110px 1fr}.activity-copy>div{display:grid;gap:4px}.route-map{height:330px}.elevation-card svg{padding:5px}.elevation-summary{grid-template-columns:1fr;padding:7px 17px}.elevation-summary span{justify-content:space-between;padding:7px}.panel-head.rich{align-items:flex-start;flex-direction:column;gap:8px}}
