/* Estilos do site do cliente (index.html) */
/* Calendário de Abastecimento Aqua · uma coluna, pensada para celular.
   Ideia visual: cada dia é uma caixa d'água. Cheia = água o dia todo, pela metade = algumas horas, vazia = sem água. */
:root{
  --bg:#eef3f4; --surface:#ffffff; --ink:#0c2b36; --muted:#4f6b76; --line:#d3dee2;
  --water:#1765a8; --on-water:#ffffff; --water-soft:#e2eef7; --fill:#8dbfe6; --fill-ink:#06243a; --fill-deep:#2f86c9;
  --part:#9a6a0e; --maint:#b3463a; --dry:#9daab0;
  --okbd:var(--water); --ptbd:var(--part); --mtbd:var(--maint); --nobd:var(--dry);
  --display:"Bricolage Grotesque",system-ui,sans-serif; --body:"Algarismos","Atkinson Hyperlegible",system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0a1b22; --surface:#11262f; --ink:#e3eff2; --muted:#9ab2bb; --line:#23404b;
  --water:#6db4e8; --on-water:#06202d; --water-soft:#15344a; --fill:#2f6e9e; --fill-ink:#eaf5fc; --fill-deep:#4c9bd6;
  --part:#e0ae4e; --maint:#e58376; --dry:#6b7e86; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0a1b22; --surface:#11262f; --ink:#e3eff2; --muted:#9ab2bb; --line:#23404b;
  --water:#6db4e8; --on-water:#06202d; --water-soft:#15344a; --fill:#2f6e9e; --fill-ink:#eaf5fc; --fill-deep:#4c9bd6;
  --part:#e0ae4e; --maint:#e58376; --dry:#6b7e86; color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:17px/1.55 var(--body);-webkit-text-size-adjust:100%}
.wrap{max-width:600px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}

/* cabeçalho: só a marca */
header.top .wrap{display:flex;align-items:center;padding-block:18px 0}
.brand{display:inline-flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;font:800 18px/1 var(--display);letter-spacing:-.01em}
.brand svg{fill:var(--water)}
.brand small{display:none}
.brand .bt{display:flex;flex-direction:column;gap:4px}
.brand .bsub{font:400 13px/1.2 var(--body);letter-spacing:0;color:var(--muted)}
@media (max-width:400px){.brand .bmid{display:none}}

main{padding-block:0 40px}
/* abertura: telhado com caixas d'água — cada uma num nível, como os dias do rodízio */
.telhado{display:flex;align-items:flex-end;gap:10px;height:58px;margin:0 0 22px;padding-bottom:0;border-bottom:2px solid var(--ink);width:max-content;max-width:100%}
.ht{position:relative;display:block;width:26px;height:36px;border:2.5px solid var(--ink);border-radius:6px 6px 8px 8px;margin-bottom:6px;overflow:hidden;background:var(--surface)}
.ht::before{content:"";position:absolute;left:6px;right:6px;top:-1px;height:3px;background:var(--ink);border-radius:0 0 2px 2px}
.ht i{position:absolute;left:0;right:0;bottom:0;height:var(--lv);background:var(--fill-deep);animation:sobe 1.1s cubic-bezier(.3,.7,.2,1) both;animation-delay:calc(.12s + var(--i)*.09s)}
@keyframes sobe{from{height:0}}
.ht:nth-child(even){height:30px}

h1{font:800 clamp(36px,10.5vw,54px)/1 var(--display);letter-spacing:-.035em;margin:0 0 14px;text-wrap:balance}
h2{font:800 20px/1.2 var(--display);letter-spacing:-.01em;margin:0 0 12px}
#vBusca{padding-top:clamp(36px,9vw,64px)}
.sub{color:var(--muted);margin:0 0 28px;max-width:40ch}

/* busca */
.flabel{display:block;font:700 15px/1.3 var(--body);color:var(--ink);margin-bottom:8px}
.gsearch{position:relative}
.search{width:100%;font:18px var(--body);color:var(--ink);background:var(--surface);border:2px solid var(--ink);border-radius:14px;padding:14px 16px 14px 48px;min-height:60px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%234f6b76' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:15px 50%}
.search::placeholder{color:var(--muted);opacity:1}
.search:focus{outline:0;border-color:var(--water);box-shadow:0 0 0 4px var(--water-soft)}
#cres{position:absolute;top:100%;left:0;right:0;z-index:20;margin:8px 0 0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px -16px rgba(6,32,45,.45);max-height:min(60vh,420px);overflow:auto}
#cres .gh{font:700 13px var(--body);color:var(--muted);padding:10px 10px 4px}
#cres li[role=option]{padding:11px 10px;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:1px}
#cres li[role=option] small{color:var(--muted);font-size:14px}
#cres li[aria-selected="true"],#cres li[role=option]:hover{background:var(--water-soft)}
#cres li.none{color:var(--muted);padding:12px 10px}
.or{display:none}
.btn{font:700 16px var(--body);border:2px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;padding:12px 16px;cursor:pointer;min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none}
.btn:hover{border-color:var(--water)}
.btn.wide{width:100%;margin-top:12px;background:transparent;border-color:var(--line);color:var(--water)}
.btn.primary{background:var(--water);border-color:var(--water);color:var(--on-water)}
.msg{margin:14px 0 0;font-size:15px;color:var(--muted);min-height:1em}
.msg:empty{display:none}
.privacy{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--muted);margin:36px 0 0;padding-top:18px;border-top:1px solid var(--line)}

/* lista de áreas para escolher */
.pick{margin-top:30px}
.pick h2{font-size:19px;line-height:1.3}
.pick .psub{margin:-4px 0 14px;font-size:16px;line-height:1.45;color:var(--muted)}
.week .st:empty::before{content:"\00a0"}
/* mapa no tema escuro: ruas escurecidas, como no painel */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.9) contrast(.88)}}
:root[data-theme="dark"] .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.9) contrast(.88)}
.pick ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.pick li{border-bottom:1px solid var(--line)}
.pick button{width:100%;text-align:left;display:flex;flex-direction:column;gap:3px;font:700 17px var(--body);color:var(--ink);background:none;border:0;padding:14px 32px 14px 2px;cursor:pointer;min-height:60px;position:relative}
.pick button::after{content:"";position:absolute;right:8px;top:50%;width:9px;height:9px;border-top:2.5px solid var(--muted);border-right:2.5px solid var(--muted);transform:translateY(-50%) rotate(45deg)}
.pick button small{font-weight:400;font-size:14px;color:var(--muted)}
.pick button:hover{background:var(--water-soft)}
.pick button:hover::after{border-color:var(--water)}

/* área escolhida */
#vArea{padding-top:16px}
.back{border:0;background:none;color:var(--water);font:700 16px var(--body);cursor:pointer;padding:8px 0;margin:0 0 14px;min-height:44px}
.eyebrow{display:block;font:400 15px/1.4 var(--body);color:var(--muted)}
.aname{font:800 clamp(28px,8vw,38px)/1.05 var(--display);letter-spacing:-.03em;margin:4px 0 6px}
.acal{color:var(--muted);font-size:15px;margin:0 0 22px}

/* hoje: a caixa d'água grande */
.today{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:center;background:var(--surface);border:2px solid var(--ink);border-radius:20px 20px 0 0;padding:22px 20px}
.today:last-child{border-radius:20px}
.today .ic{display:block;width:72px}
.tank{display:block;width:72px;height:auto;overflow:visible}
.tank .tk-o{fill:none;stroke:var(--ink);stroke-width:2.5}
.tank .lid{fill:var(--ink)}
.tank .wv{fill:var(--fill-deep)}
.tank .wl{animation:enche 1.4s cubic-bezier(.3,.7,.2,1) both .15s}
@keyframes enche{from{transform:translateY(56px)}}
.today.M .tk-o,.today.X .tk-o{stroke:var(--maint)}.today.M .lid,.today.X .lid{fill:var(--maint)}
.today.N .tk-o{stroke-dasharray:5 4}
.tank .sign{fill:none;stroke:var(--maint);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.today .lbl{display:block;font:700 15px/1.3 var(--body);color:var(--muted)}
.today b{display:block;font:800 clamp(25px,7.4vw,32px)/1.08 var(--display);letter-spacing:-.025em;margin:4px 0 8px;text-wrap:balance}
.today p{margin:0;font-size:16px;color:var(--ink)}
.today.M b,.today.X b{color:var(--maint)}
.next{background:var(--ink);color:var(--bg);border-radius:0 0 20px 20px;padding:16px 20px 18px}
.next .lbl{display:block;font:700 15px/1.3 var(--body);opacity:.75}
.next b{display:block;font:800 23px/1.15 var(--display);letter-spacing:-.015em;margin:3px 0 2px}
.next p{margin:0;font-size:15px;opacity:.85}

/* próximos 7 dias: uma fila de caixinhas */
.card{margin-top:30px}
/* mapa */
.map{height:clamp(260px,46vh,360px);border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--bg);position:relative;z-index:0}
.mapcard h2{margin-bottom:8px}
.mapnote{font-size:14px;color:var(--muted);margin:8px 0 0}
.mkey2{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--muted);margin:8px 0 0}
.mkey2 span{display:inline-flex;align-items:center;gap:6px}
.mkey2 i{width:14px;height:14px;border-radius:3px;flex:none}
select.search{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding:12px 40px 12px 16px;margin-bottom:10px;cursor:pointer}
.leaflet-container{font:14px/1.4 var(--body)}
.leaflet-tooltip{font:600 13px/1.3 var(--body);max-width:260px;white-space:normal}
.card+.card{margin-top:26px;padding-top:24px;border-top:1px solid var(--line)}
.week{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.week li{padding:10px 0 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;border-radius:12px}
.week li.hoje{background:var(--surface);box-shadow:inset 0 0 0 2px var(--ink)}
.week .wd{font:700 13px var(--body);color:var(--muted)}
.week li.hoje .wd{color:var(--ink)}
.week .dd{font:800 18px/1 var(--display);font-variant-numeric:tabular-nums}
.week .st{font-size:12px;line-height:1.2;color:var(--muted);overflow-wrap:anywhere}
/* caixinha: forma de tanque, nível = quanta água */
.sd{display:inline-block;width:22px;height:30px;border:2px solid var(--ink);border-radius:5px 5px 7px 7px;flex:none;background:var(--surface);position:relative}
.sd.F{background:linear-gradient(to top,var(--fill-deep) 88%,var(--surface) 88%)}
.sd.P{background:linear-gradient(to top,var(--fill-deep) 45%,var(--surface) 45%)}
.sd.M{border-color:var(--maint);background:repeating-linear-gradient(135deg,var(--maint) 0 2px,var(--surface) 2px 6px)}
.sd.N{border-color:var(--dry)}
.sd.U{border-style:dashed;border-color:var(--dry)}
.wkey{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:14px;color:var(--muted);margin-top:14px}
.wkey span{display:inline-flex;align-items:center;gap:7px}
.wkey .sd{width:13px;height:17px;border-width:1.5px;border-radius:3px 3px 4px 4px}

/* mês inteiro */
details.month summary{cursor:pointer;font:800 19px/1.25 var(--display);letter-spacing:-.01em;padding:6px 0;min-height:44px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;list-style:none}
details.month summary::-webkit-details-marker{display:none}
details.month summary::before{content:"";width:9px;height:9px;flex:none;border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:rotate(-45deg);transition:transform .2s}
details.month[open] summary::before{transform:rotate(45deg)}
.cgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;font:600 16px/1 var(--display);margin-top:12px;font-variant-numeric:tabular-nums}
.cgrid .dw{font:700 13px var(--body);color:var(--muted);text-align:center;padding:4px 0}
.cgrid .d{aspect-ratio:1/1;display:grid;place-items:center;border-radius:8px;background:var(--surface);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.cgrid .d.F{background:var(--fill);color:var(--fill-ink);font-weight:800;box-shadow:none}
.cgrid .d.P{background:linear-gradient(to top,var(--fill) 50%,var(--surface) 50%);color:var(--ink);font-weight:700}
.cgrid .d.M{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--maint) 30%,var(--surface)) 0 3px,var(--surface) 3px 8px);color:var(--maint);font-weight:700;box-shadow:inset 0 0 0 1.5px var(--maint)}
.cgrid .d.now{box-shadow:inset 0 0 0 2.5px var(--ink)}
.mkey{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:14px;color:var(--muted);margin-top:14px}
.mkey span{display:flex;align-items:center;gap:8px}
.mkey i{width:16px;height:16px;border-radius:4px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);flex:none}
.mkey i.F{background:var(--fill);box-shadow:none}
.mkey i.P{background:linear-gradient(to top,var(--fill) 50%,var(--surface) 50%)}
.mkey i.M{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--maint) 30%,var(--surface)) 0 2px,var(--surface) 2px 5px);box-shadow:inset 0 0 0 1.5px var(--maint)}
.hours{font-size:14px;color:var(--muted);margin:12px 0 0}
.bairros{font-size:16px;color:var(--ink);margin:0}
.meta{font-size:14px;color:var(--muted);margin-top:28px}
.meta b{color:var(--ink);font:800 1.05em var(--display)}
.msum{flex-basis:100%;padding-left:19px;font:400 15px var(--body);color:var(--muted)}
.loading{display:flex;align-items:center;gap:12px;padding:28px 4px;color:var(--muted)}
.spin{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--line);border-top-color:var(--water);animation:sp .8s linear infinite;flex:none}
@keyframes sp{to{transform:rotate(360deg)}}
.err{padding:18px;border:2px solid var(--maint);border-radius:16px;background:var(--surface)}
footer{color:var(--muted);font-size:13px;line-height:1.5;padding-block:8px 36px;border-top:1px solid var(--line);margin-top:8px;padding-top:18px}
footer a{color:var(--water)}
button:focus-visible,input:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--water);outline-offset:3px}
.search:focus-visible{outline:0}
[tabindex="-1"]:focus{outline:none}
@media (max-width:380px){.week{gap:3px}.week .st{font-size:11px}.sd{width:19px;height:26px}.today{gap:14px;padding:18px 16px}.tank,.today .ic{width:58px}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-delay:0s!important;transition:none!important;scroll-behavior:auto!important}}
.leaflet-control-attribution a{color:#00577a}

/* níveis das caixas d'água da abertura */
.telhado .ht:nth-child(1){--lv:0%;--i:0}
.telhado .ht:nth-child(2){--lv:90%;--i:1}
.telhado .ht:nth-child(3){--lv:0%;--i:2}
.telhado .ht:nth-child(4){--lv:45%;--i:3}
.telhado .ht:nth-child(5){--lv:90%;--i:4}
.telhado .ht:nth-child(6){--lv:0%;--i:5}
.telhado .ht:nth-child(7){--lv:90%;--i:6}
/* legenda do mapa e ícone do aviso de privacidade */
.mkey2 i.mk-area{background:#8fd0f0;border:1px solid #2b7bb0}
.mkey2 i.mk-dest{background:#1f8fd0;border:1px solid #0b4f7a}
.privacy .pv-ic{flex:none;margin-top:2px}
