:root{
  /* Tema: painéis marrons translúcidos sobre fundo dourado desfocado */
  --p:#e0a63c; --p-d:#c88d24; --p-l:rgba(224,166,60,.20); --on-p:#2a1b0b;
  --bg:#b9822e; --card:rgba(46,34,22,.84); --card-s:rgba(34,25,16,.92);
  --tx:#f4ecdc; --mut:#bfae92; --line:rgba(255,236,200,.16);
  --ok:#6fbf73; --warn:#f0b84a; --bad:#d9534f;
  --soft:#fff3d6; --soft-sh:0 1px 4px rgba(0,0,0,.5); --h1:#fff7e6;
  --li:rgba(46,34,22,.55); --li-t:#f3e6c9; --pressed:#4d3a1f; --okt:#10200f;
  --tiles:sepia(.55) saturate(.85) brightness(.82) contrast(1.05); --mapbg:#3a2c1c;
  --shadow:0 2px 10px rgba(0,0,0,.25);
  --ring-track:rgba(255,236,200,.16);
  --r:6px; --tabs:64px;
}
:root[data-theme="light"]{
  --ring-track:#eadfca;
  --p:#d08a12; --p-d:#b87608; --p-l:rgba(208,138,18,.14); --on-p:#1f1407;
  --card:#fff; --card-s:#fff; --tx:#2a1f12; --mut:#7a6b57; --line:#e4ddcf;
  --ok:#2e8b3a; --warn:#c77d0a; --bad:#d9534f;
  --soft:#5b4a33; --soft-sh:none; --h1:#2a1f12;
  --li:#fff; --li-t:#4a3a25; --pressed:#fbeccd; --okt:#fff;
  --tiles:none; --mapbg:#e8e4da; --shadow:0 1px 3px rgba(42,31,18,.1);
}
:root[data-theme="light"] body{background:#f6f4ef}
:root[data-theme="light"] .card,:root[data-theme="light"] .pt{backdrop-filter:none;-webkit-backdrop-filter:none}
:root[data-theme="light"] .hero{background:#fff7e3}
:root[data-theme="light"] .hero .big{color:#2a1f12}
:root[data-theme="light"] .navlist li.cur{color:var(--tx)}
:root[data-theme="light"] .ibtn.danger,:root[data-theme="light"] .navlist li.cur .n{color:#fff}
:root[data-theme="light"] .navlist li.cur .n{color:var(--on-p)}
:root[data-theme="light"] .ibtn{color:var(--p-d)}
:root[data-theme="light"] .ibtn.primary,:root[data-theme="light"] .ibtn.on{color:var(--on-p)}
:root[data-theme="light"] .ibtn.danger{color:#fff}
:root[data-theme="light"] .ibtn[aria-pressed="true"].muted{color:var(--mut)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;margin:0}
body{font:16px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--tx);
  background:
    radial-gradient(60% 45% at 18% 12%,#f2cf6e 0%,transparent 70%),
    radial-gradient(55% 45% at 85% 30%,#d79a3b 0%,transparent 70%),
    radial-gradient(70% 55% at 30% 85%,#a8742a 0%,transparent 70%),
    radial-gradient(50% 40% at 90% 90%,#7a5a3a 0%,transparent 70%),
    #c28d34;
  background-attachment:fixed}
small{color:var(--mut);font-size:.8rem}
.strong{font-weight:600}
.grow{flex:1;min-width:0}
[hidden]{display:none!important}

main{position:fixed;inset:0 0 calc(var(--tabs) + env(safe-area-inset-bottom)) 0;overflow:hidden}
.tab{position:absolute;inset:0;overflow-y:auto;padding:14px 14px 110px;display:none;max-width:720px;margin:0 auto}
.tab.active{display:block}
#tab-mapa{padding:0;max-width:none}
#tab-mapa.active{display:block}

.top{display:flex;align-items:center;gap:10px;margin:2px 0 14px}
.top h1{font-size:1.35rem;margin:0;color:var(--h1);text-shadow:var(--soft-sh)}
.logo{display:grid;place-items:center;width:38px;height:38px;border-radius:6px;background:var(--p);color:var(--on-p)}
.sum{margin-left:auto;color:var(--soft);text-shadow:var(--soft-sh);font-size:.85rem;text-align:right}

.card{background:var(--card);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin-bottom:10px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow)}
.chip{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--p-l);color:var(--p)}
.chip.warn{background:rgba(240,184,74,.2);color:var(--warn)}
.empty-card{color:var(--mut)}

/* Botões só com ícone */
.ibtn{display:inline-grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--card-s);color:var(--tx);cursor:pointer;padding:0;transition:transform .08s,background .15s}
.ibtn:hover{background:var(--p-l)}
.ibtn:active{transform:scale(.92)}
.ibtn.primary{background:var(--p);border-color:var(--p);color:var(--on-p)}
.ibtn.primary:hover{background:var(--p-d)}
.ibtn.danger{background:var(--bad);border-color:var(--bad);color:#fff}
.ibtn.big{width:54px;height:54px}
.ibtn[aria-pressed="true"]{background:var(--pressed);border-color:var(--p);color:var(--p)}
.ibtn[aria-pressed="true"].muted{color:var(--mut)}
.lembrete{border-left:4px solid var(--warn)}
.ibtn.sm{width:34px;height:34px}
.ibtn.round{box-shadow:0 2px 8px rgba(0,0,0,.4)}
.ibtn.on{background:var(--p);color:var(--on-p);border-color:var(--p)}

.search{padding:8px 8px 8px 14px}
.search input{flex:1;min-width:0;border:0;outline:0;font:inherit;background:transparent;color:var(--tx)}
.search input::placeholder,.note::placeholder{color:var(--mut)}
.results{list-style:none;margin:-4px 0 10px;padding:0;background:var(--card-s);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.results li{padding:11px 14px;border-bottom:1px solid var(--line);cursor:pointer;font-size:.92rem}
.results li:last-child{border-bottom:0}
.results li:hover{background:var(--p-l)}

.points{list-style:none;margin:0;padding:0}
.pt{display:flex;align-items:center;gap:10px;background:var(--card);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:var(--shadow);border:1px solid var(--line);border-radius:var(--r);padding:10px 10px 10px 12px;margin-bottom:10px}
.pt.done{opacity:.55}
.pt.done .pname{text-decoration:line-through}
.badge{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--p);color:var(--on-p);font-weight:700}
.pt.done .badge{background:var(--ok);color:var(--okt)}
.pbody{flex:1;min-width:0}
.pname{display:flex;align-items:center;gap:6px;font-weight:600}
.pname svg{color:var(--p);flex:none}
.note{width:100%;border:0;border-bottom:1px dashed var(--line);outline:0;font:inherit;font-size:.85rem;color:var(--mut);padding:3px 0;background:transparent}
.note:focus{border-color:var(--p);color:var(--tx)}
.empty{color:var(--soft);text-shadow:var(--soft-sh);text-align:center;padding:24px 10px}

.fab{position:fixed;right:max(18px,calc(50% - 340px));bottom:calc(var(--tabs) + 18px + env(safe-area-inset-bottom));width:62px;height:62px;border-radius:50%;border:0;background:var(--p);color:var(--on-p);display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.45);cursor:pointer;z-index:5}
.fab:active{transform:scale(.94)}
.fab.busy{animation:spin 1s linear infinite;opacity:.8}
@keyframes spin{to{transform:rotate(360deg)}}
#tab-mapa:not(.active)~.fab{display:none}
body:has(#tab-pontos:not(.active)) .fab{display:none}

/* Mapa */
#map{position:absolute;inset:0;background:var(--mapbg)}
.leaflet-tile-pane{filter:var(--tiles)}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--card-s);color:var(--tx)}
.leaflet-bar a{background:var(--card-s);color:var(--tx);border-color:var(--line)}
.mapchip{position:absolute;top:12px;left:50%;transform:translateX(-50%);background:var(--card-s);color:var(--tx);border:1px solid var(--line);border-radius:6px;padding:8px 16px;font-weight:700;font-size:1.05rem;box-shadow:0 2px 8px rgba(0,0,0,.4);z-index:500;white-space:nowrap}
.mapbtns{position:absolute;right:12px;bottom:18px;display:flex;flex-direction:column;gap:10px;z-index:500}
.pm{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--p);color:var(--on-p);font-weight:700;font-size:.85rem;border:2px solid #fff7e6;box-shadow:0 1px 5px rgba(0,0,0,.5)}
.pm.origin{background:#2e2216;color:#fff7e6}
.pm.done{background:var(--ok);color:var(--okt)}
.me{width:18px;height:18px;border-radius:50%;background:#2563eb;border:3px solid #fff;box-shadow:0 0 0 6px rgba(37,99,235,.25)}

/* Navegar */
.hero{align-items:center;gap:14px;padding:14px;background:var(--card-s);color:var(--tx);border-color:var(--p);border-left:4px solid var(--p)}
.hero small{color:var(--p)}
.hero .big{font-size:1.5rem;font-weight:700}
.ringbox{flex:none;display:grid;place-items:center}
.rnum{font-size:34px;font-weight:800;fill:var(--tx)}
.runit{font-size:14px;font-weight:600;fill:var(--mut)}
.herotxt{display:flex;flex-direction:column;gap:2px}
.stats{display:flex;gap:18px;flex-wrap:wrap;margin-top:6px}
.stat b{display:block;font-size:1.25rem;font-weight:800;line-height:1.1;color:var(--tx)}
.stat small{font-size:.72rem;color:var(--mut)}
.sumcard{gap:14px;padding:12px 14px}
.sumcard .ringbox svg{width:104px;height:104px}
.actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:14px 0}
.navlist{list-style:none;margin:0;padding:0}
.navlist li{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:6px;color:var(--li-t);background:var(--li)}
.navlist li+li{margin-top:4px}
.navlist li.cur{background:var(--card-s);outline:1px solid var(--p);color:#fff;font-weight:600}
.navlist li.ok{color:var(--ok)}
.navlist .n{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(255,236,200,.18);font-size:.8rem;font-weight:700;color:var(--tx)}
.navlist li.cur .n{background:var(--p);color:var(--on-p)}
.navlist li.ok .n{background:var(--ok);color:var(--okt)}

/* Toast */
#toast{position:fixed;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:2000;background:var(--card-s);color:var(--tx);border:1px solid var(--line);border-radius:6px;padding:12px 16px;max-width:min(92vw,520px);box-shadow:0 6px 24px rgba(0,0,0,.45);font-weight:500}
#toast.warn{background:#5a3a0e;color:#fff3d6;border-color:var(--warn)}
#toast.ok{background:#1f3a22;color:#e6f6e7;border-color:var(--ok)}
#toast.alert{background:var(--card-s);border-color:var(--p)}

/* Abas inferiores */
#tabs{position:fixed;left:0;right:0;bottom:0;height:calc(var(--tabs) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:flex;background:var(--card-s);border-top:1px solid var(--line);z-index:1000}
#tabs button{flex:1;border:0;background:none;color:var(--mut);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer}
#tabs button em{font-style:normal;font-size:.7rem;font-weight:600;display:none}
#tabs button.active{color:var(--p)}
#tabs button.active em{display:block}
#tabs button.active span{background:var(--p-l);border-radius:6px;padding:4px 18px}
#tabs span{display:grid;place-items:center}

.themebtn{margin-left:8px}
