:root{
  --bg:#f7f1e8; --surface:#fffaf3; --surface-2:#f3e8dc; --ink:#221b19; --muted:#766a64;
  --burgundy:#741c2b; --burgundy-2:#922d3c; --gold:#c19a45; --gold-soft:#f5dfaa;
  --green:#2f7855; --blue:#2f648c; --danger:#a73e46; --line:#e5d7c9;
  --shadow:0 12px 34px rgba(53,34,27,.09); --shadow-soft:0 6px 18px rgba(53,34,27,.06);
  --radius:22px; --safe-bottom:max(14px,env(safe-area-inset-bottom));
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;min-height:100dvh;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
button,input,select,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}input,select,textarea{font-size:16px}a{color:inherit}
.app{max-width:860px;margin:0 auto;min-height:100dvh;padding-bottom:calc(90px + var(--safe-bottom))}
.hero{position:relative;overflow:hidden;color:white;padding:max(18px,env(safe-area-inset-top)) 17px 22px;background:radial-gradient(circle at 88% 18%,rgba(244,214,139,.22),transparent 25%),radial-gradient(circle at 12% 85%,rgba(255,255,255,.09),transparent 28%),linear-gradient(150deg,#641522 0%,#7f2030 55%,#9a3443 100%);border-radius:0 0 30px 30px}
.hero:before{content:"";position:absolute;inset:0;opacity:.12;pointer-events:none;background-image:linear-gradient(30deg,transparent 48%,rgba(255,255,255,.18) 49%,transparent 51%);background-size:36px 36px}
.hero-top{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;position:relative;z-index:2}.hero-copy{min-width:0}.eyebrow{text-transform:uppercase;letter-spacing:.095em;font-size:11px;font-weight:760;opacity:.78}
h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,"Times New Roman",serif;font-size:28px;line-height:1.08;margin:6px 0 6px}h2{font-size:19px;margin-bottom:7px}h3{font-size:16px;margin-bottom:6px}.hero-sub{font-size:13px;line-height:1.42;opacity:.9;max-width:600px}
.icon-btn{flex:0 0 auto;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-size:19px;backdrop-filter:blur(8px)}
.phase-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:14px;position:relative;z-index:2}.hero-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.11);font-size:12px;font-weight:650}
.hero-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px;position:relative;z-index:2}.hero-metric{padding:10px;border-radius:16px;background:rgba(255,255,255,.105);border:1px solid rgba(255,255,255,.14);min-width:0}.hero-metric strong{display:block;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-metric span{font-size:10.5px;opacity:.78}
.content{padding:14px 13px 28px}.panel{display:none;animation:fadeIn .18s ease}.panel.active{display:block}@keyframes fadeIn{from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:none}}
.card,.smart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:16px;margin-bottom:12px}.smart-card{background:linear-gradient(160deg,#fffaf3 0%,#f9efe4 100%);box-shadow:var(--shadow);border-color:#dfc9b7}.card-flat{box-shadow:none}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.row.start{align-items:flex-start}.small{font-size:12.5px;line-height:1.45;color:var(--muted)}.muted{color:var(--muted)}.big-value{font-family:Georgia,serif;font-size:29px;line-height:1}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.metric{background:#fff;border:1px solid var(--line);border-radius:17px;padding:12px;min-width:0}.metric .label{font-size:11px;color:var(--muted)}.metric .value{font-family:Georgia,serif;font-size:22px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:6px 9px;font-size:11.5px;font-weight:650;background:#efe3d7;color:#674925;white-space:nowrap}.pill.green{background:#e2f0e7;color:#285b40}.pill.blue{background:#e3edf5;color:#2d5877}.pill.red{background:#f5e2e2;color:#87323c}.pill.gold{background:#f5ead1;color:#73581d}
.btn{min-height:48px;border:0;border-radius:15px;padding:11px 14px;background:var(--burgundy);color:#fff;font-weight:730;transition:transform .08s ease,opacity .15s ease}.btn:active{transform:scale(.985)}.btn.secondary{background:#eee2d5;color:var(--ink)}.btn.ghost{background:transparent;color:var(--burgundy);border:1px solid #d7c3b0}.btn.green{background:var(--green)}.btn.full{width:100%}.btn.small-btn{min-height:38px;padding:8px 11px;font-size:12px;border-radius:12px}
.smart-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--gold);font-weight:800}.smart-title{font-family:Georgia,serif;font-size:22px;margin:4px 0 5px}.smart-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.quick{min-height:70px;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:12px;color:var(--ink)}.quick strong{display:block;font-size:14px;margin-bottom:3px}.quick span{display:block;color:var(--muted);font-size:11.5px;line-height:1.3}
.timeline{display:grid;gap:8px}.timeline-day{display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--line)}.timeline-day:last-child{border-bottom:0}.day-badge{border-radius:13px;background:var(--surface-2);padding:7px 4px;text-align:center;color:var(--burgundy)}.day-badge strong{display:block;font-size:15px}.day-badge span{font-size:9.5px;text-transform:uppercase}.timeline-day.current .day-badge{background:var(--burgundy);color:#fff}
.progress{height:10px;background:#eaded2;border-radius:999px;overflow:hidden}.progress>i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--burgundy),var(--gold));transition:width .25s ease}.ring{--p:0;width:96px;height:96px;border-radius:50%;background:conic-gradient(var(--burgundy) calc(var(--p)*1%),#eaded2 0);display:grid;place-items:center}.ring:after{content:attr(data-label);width:72px;height:72px;background:var(--surface);border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-size:21px;font-weight:700}
.bottom{position:fixed;left:0;right:0;bottom:0;z-index:1000;padding:7px 9px calc(7px + env(safe-area-inset-bottom));background:rgba(247,241,232,.94);backdrop-filter:blur(18px);border-top:1px solid rgba(118,92,75,.16)}.tabs{max-width:860px;margin:auto;display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.tab{border:0;background:transparent;border-radius:14px;color:var(--muted);padding:6px 2px;font-size:10px;min-height:55px}.tab b{display:block;font-size:20px;line-height:1.15;margin-bottom:2px}.tab.active{background:#eadfd3;color:var(--burgundy);font-weight:750}
#map{height:390px;border-radius:20px;overflow:hidden;background:#e9e0d7;border:1px solid var(--line)}.map-tools{display:flex;gap:7px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}.map-tools::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 11px;font-size:11px;color:var(--ink)}.chip.active{background:var(--burgundy);color:#fff;border-color:var(--burgundy)}
.poi-list{display:grid;gap:9px}.poi{border:1px solid var(--line);background:#fff;border-radius:17px;padding:12px}.poi-name{font-weight:750;font-size:14px}.distance{color:var(--blue);font-weight:750;font-size:11.5px}.marker{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fff9f0;border:2px solid var(--burgundy);box-shadow:0 4px 12px rgba(0,0,0,.18);font-size:18px}.marker.done{background:#e3f1e8;border-color:var(--green)}.loc-dot{width:20px;height:20px;border-radius:50%;background:#2279cf;border:4px solid white;box-shadow:0 0 0 3px rgba(34,121,207,.25)}
.quest{border-left:4px solid var(--gold)}.quest.done{border-left-color:var(--green);opacity:.82}.quest-points{font-family:Georgia,serif;color:#8a6a22;font-size:19px}
.segment{display:grid;grid-template-columns:1fr 1fr;background:#eee2d6;padding:4px;border-radius:15px;margin-bottom:12px}.segment button{border:0;background:transparent;min-height:42px;border-radius:12px;color:var(--muted);font-weight:700}.segment button.active{background:#fff;color:var(--burgundy);box-shadow:0 2px 8px rgba(0,0,0,.06)}.subpanel{display:none}.subpanel.active{display:block}
.memory{border:1px solid var(--line);background:#fff;border-radius:17px;padding:12px;margin-bottom:8px}.memory .meta{font-size:10.5px;color:var(--muted);margin-bottom:5px}.expense-form{display:grid;grid-template-columns:100px 1fr;gap:9px}label{font-size:11.5px;color:var(--muted);display:block}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:13px;padding:11px;color:var(--ink);margin-top:5px;min-height:46px}textarea{min-height:82px;resize:vertical}
.expense-list{display:grid;gap:7px}.expense{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:9px 0}.expense:last-child{border-bottom:0}.expense-amount{font-family:Georgia,serif;font-size:17px}.trash{border:0;background:transparent;color:var(--muted);width:36px;height:36px;border-radius:50%}.category-bars{display:grid;gap:9px}.cat-row{display:grid;grid-template-columns:88px 1fr 50px;gap:8px;align-items:center;font-size:11px}.cat-track{height:8px;background:#eadfd5;border-radius:999px;overflow:hidden}.cat-track i{display:block;height:100%;background:var(--burgundy)}
.toast{position:fixed;left:50%;bottom:calc(93px + var(--safe-bottom));transform:translateX(-50%);z-index:4000;background:#201a18;color:#fff;border-radius:13px;padding:10px 14px;max-width:88%;font-size:12.5px;display:none;text-align:center}.update-banner{position:fixed;left:12px;right:12px;top:max(10px,env(safe-area-inset-top));z-index:5000;max-width:600px;margin:auto;display:none;align-items:center;justify-content:space-between;gap:9px;background:#201a18;color:#fff;border-radius:15px;padding:10px 12px;box-shadow:0 10px 30px rgba(0,0,0,.22)}.update-banner button{min-height:38px;border:0;border-radius:10px;background:var(--gold-soft);color:#442f13;font-weight:750;padding:7px 11px}
dialog{border:0;padding:0;background:var(--surface);color:var(--ink);box-shadow:0 22px 70px rgba(0,0,0,.27)}dialog::backdrop{background:rgba(25,18,17,.52);backdrop-filter:blur(2px)}.sheet{width:100%;max-width:860px;max-height:91vh;margin:auto 0 0;border-radius:26px 26px 0 0;overflow:auto}.sheet-head{position:sticky;top:0;z-index:2;background:rgba(255,250,243,.96);backdrop-filter:blur(14px);display:flex;justify-content:space-between;align-items:center;padding:14px 15px;border-bottom:1px solid var(--line)}.sheet-body{padding:14px 14px calc(24px + env(safe-area-inset-bottom))}.close-btn{border:0;width:40px;height:40px;border-radius:50%;background:#eee2d5;font-size:18px}.story-dialog{width:calc(100% - 26px);max-width:560px;border-radius:23px}.dialog-body{padding:18px}.story-text{font-size:14px;line-height:1.58}.sync-row{display:flex;align-items:center;gap:7px}.sync-dot{width:9px;height:9px;border-radius:50%;background:#9d8d85}.sync-dot.ok{background:#3d8b60}.sync-dot.busy{background:var(--gold)}.privacy-note{background:#e9f0f6;border-radius:14px;padding:10px;color:#35556e;font-size:11.5px;line-height:1.4}.empty{text-align:center;color:var(--muted);padding:22px 12px;font-size:12.5px}.leaflet-popup-content-wrapper{border-radius:15px}.leaflet-popup-content{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif}
/* Unidades: mantener una separación mínima, pero visualmente más compacta */
.hero-metric strong,.metric .value,.expense-amount,.cat-row{word-spacing:-.14em}
.ring:after{letter-spacing:.01em}
@media(max-width:480px){.content{padding-left:11px;padding-right:11px}h1{font-size:25px}.hero-metric{padding:9px 7px}.hero-metric strong{font-size:15px}.grid3{grid-template-columns:1fr}.smart-actions,.grid2{grid-template-columns:1fr 1fr}#map{height:360px}}
@media(max-width:350px){.hero-metrics{grid-template-columns:1fr 1fr}.hero-metric:last-child{display:none}.quick-grid{grid-template-columns:1fr}}
