:root{--night: #12150e;--pine: #1a2116;--bark: #24301d;--moss: #4d5e3a;--copper: #c46a2b;--ember: #e0893c;--paper: #eadcc2;--paper-dim: #cfc2a6;--ink: #16130e;--fog: #8d917f;--go: #86a35a;--warn: #d4a017;--line: rgba(234, 220, 194, .12);--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:var(--night);color:var(--paper);font-family:IBM Plex Sans,system-ui,sans-serif}body{-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}.app{min-height:100dvh;max-width:480px;margin:0 auto;display:flex;flex-direction:column;background:radial-gradient(1200px 500px at 50% -10%,rgba(196,106,43,.12),transparent 50%),var(--night);position:relative}.app.is-desk{max-width:1280px}.app.is-standalone{min-height:100dvh}.desk{display:flex;flex-direction:column;flex:1;min-height:0}.topbar{padding:calc(14px + var(--safe-t)) 18px 10px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.brand{font-family:Fraunces,Georgia,serif;font-weight:700;letter-spacing:.14em;font-size:15px;margin:0}.brand span{display:block;font-family:IBM Plex Sans,sans-serif;font-weight:500;letter-spacing:.08em;font-size:10px;color:var(--fog);text-transform:uppercase;margin-top:3px}.score-chip{text-align:right;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--paper-dim)}.score-chip strong{display:block;font-family:Fraunces,Georgia,serif;font-size:18px;letter-spacing:0;color:var(--paper);font-weight:700}.main{flex:1;overflow:auto;padding:0 14px 96px}.panel{background:var(--pine);border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:12px}.panel h2,.sheet h2{font-family:Fraunces,Georgia,serif;font-size:22px;font-weight:500;margin:0 0 6px}.kicker{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--copper);margin:0 0 8px}.lede{margin:0;color:var(--paper-dim);line-height:1.45;font-size:14px}.map-wrap{height:400px;border-radius:16px;overflow:hidden;border:1px solid var(--line);margin-bottom:12px;position:relative}.map-wrap .maplibregl-map,.map-wrap .mapboxgl-map{height:100%}.map-legend{position:absolute;left:10px;bottom:10px;z-index:2;display:flex;gap:6px;flex-wrap:wrap}.pill{background:#12150ed1;border:1px solid var(--line);color:var(--paper);border-radius:999px;padding:5px 9px;font-size:11px}.pin-card{margin-top:0}.badge{display:inline-block;border-radius:999px;padding:3px 8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600}.badge.go{background:#86a35a33;color:var(--go)}.badge.hard{background:#c46a2b2e;color:var(--ember)}.seg-list{display:grid;gap:8px;margin-top:12px}.seg{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:10px;border-radius:12px;background:var(--bark);border:1px solid transparent;text-align:left;width:100%}.seg.active{border-color:var(--copper)}.seg.planned{opacity:1}.seg.locked{opacity:.55}.seg.done .num{color:var(--go)}.alert-card{border-color:#c46a2b73}.alert-line{margin:8px 0 0;color:var(--ember);font-size:13px;line-height:1.4}.seg .num{font-family:Fraunces,Georgia,serif;font-size:20px;color:var(--copper)}.seg small{display:block;color:var(--fog);font-size:12px}.plan-switch{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}.plan-switch button{flex:1 1 30%;background:var(--bark);border:1px solid var(--line);border-radius:12px;padding:10px;font-size:13px}.plan-switch button.on{border-color:var(--copper);background:#2a2318}.meter{height:8px;background:#221c14;border-radius:999px;overflow:hidden;margin:8px 0 10px}.meter-fill{height:100%;background:var(--go)}.meter-fill.over{background:var(--copper)}.timeline{list-style:none;margin:12px 0 0;padding:0}.timeline li{display:grid;grid-template-columns:72px 1fr 42px;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);align-items:start}.timeline time{color:var(--ember);font-size:12px;font-weight:600}.timeline strong{display:block;font-size:14px}.timeline small{display:block;color:var(--fog);font-size:12px;margin-top:2px}.timeline span{color:var(--fog);font-size:11px;text-align:right}.day{border-left:2px solid var(--copper);padding:0 0 12px 12px;margin-left:6px}.day h3{margin:0 0 4px;font-size:16px}.meta{color:var(--fog);font-size:12px;margin-bottom:8px}.day li{margin:0 0 6px;color:var(--paper-dim);line-height:1.4}.check{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}.check:last-child{border-bottom:0}.check input{margin-top:3px;accent-color:var(--copper)}.group-title{margin:16px 0 4px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--copper)}.log-form textarea{width:100%;min-height:90px;background:#221c14;border:1px solid var(--line);border-radius:12px;padding:10px;resize:vertical}.log-form .row{display:flex;gap:8px;margin-top:8px}.log-form button,.file-btn{background:var(--copper);color:var(--ink);border:0;border-radius:10px;padding:10px 14px;font-weight:600}.file-btn{background:var(--bark);color:var(--paper);border:1px solid var(--line)}.entry{background:var(--paper);color:var(--ink);border-radius:14px;padding:12px;margin-top:10px}.entry time{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6b5d45;margin-bottom:6px}.entry p{margin:0;font-family:Fraunces,Georgia,serif;font-size:16px;line-height:1.4}.entry img{width:100%;border-radius:10px;margin-top:8px}.crew-card{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.turn{background:transparent;border:1px solid var(--copper);color:var(--ember);border-radius:999px;padding:4px 8px;font-size:11px}.eta{width:100%;background:#221c14;border:1px solid var(--line);border-radius:10px;padding:10px;margin-top:8px}.install-hint{margin:0 14px 10px;padding:8px 10px;border:1px dashed var(--line);border-radius:10px;color:var(--paper-dim);font-size:12px;line-height:1.4}.install-hint code{color:var(--ember)}.primary-btn{margin-top:12px;background:var(--copper);color:var(--ink);border:0;border-radius:10px;padding:10px 14px;font-weight:600}.day-gauge{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:end;background:#221c14;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0 10px}.day-gauge span{font-size:15px;font-weight:600;color:var(--paper)}.day-gauge span:last-child{text-align:right}.day-gauge small{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--copper);font-weight:600;margin-bottom:2px}.day-gauge strong{font-family:Fraunces,Georgia,serif;font-size:22px;color:var(--ember)}.verse{margin:12px 0 0;padding:10px 0 0;border-top:1px solid var(--line)}.verse p{margin:0;font-family:Fraunces,Georgia,serif;font-size:16px;line-height:1.4;color:var(--paper)}.verse cite{display:block;margin-top:6px;font-style:normal;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--copper)}.pill.ghost{background:#c46a2b33;border:0}.map-pin.live{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #e0893c40}50%{box-shadow:0 0 0 7px #e0893c14}}.nav{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:min(480px,100%);display:grid;grid-template-columns:repeat(5,1fr);background:#12150ef0;border-top:1px solid var(--line);padding:8px 6px calc(10px + var(--safe-b));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav button{background:none;border:0;color:var(--fog);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:6px 0}.nav button.on{color:var(--paper)}.nav button.on:before{content:"";display:block;width:6px;height:6px;background:var(--copper);border-radius:50%;margin:0 auto 4px}.maplibregl-popup-content{background:var(--pine)!important;color:var(--paper)!important;border-radius:10px!important;padding:8px 10px!important;font-size:12px!important}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{border-top-color:var(--pine)!important}.maplibregl-ctrl-attrib,.mapboxgl-ctrl-attrib{font-size:10px}@media(min-width:960px){.desk{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(380px,.85fr);gap:16px;padding:0 16px;align-items:start}.map-column{position:sticky;top:8px}.map-wrap{height:calc(100dvh - 128px);margin-bottom:0}.main{padding:0 0 96px;max-height:calc(100dvh - 128px)}.nav{width:min(1280px,100%)}.install-hint{display:none}}@media(display-mode:standalone){.install-hint{display:none}.nav{padding-bottom:calc(14px + var(--safe-b))}}
