:root{
  --ground:#EDF1F4; --surface:#FFFFFF; --surface-2:#F6F8FA; --ink:#15202B; --ink-2:#4A5866; --ink-3:#7C8995;
  --line:#D6DEE5; --accent:#2446D8; --accent-ink:#FFFFFF; --accent-soft:#E3E8FC;
  --orl:#138A68; --orl-soft:#DDF1EA; --trans:#6A55C8; --trans-soft:#ECE8FA;
  --t1:#C8322B; --t2:#2446D8; --t3:#138A68; --t4:#7C8995; --danger:#B42318;
  /* Letra padrão do aparelho (San Francisco no iPhone, Roboto no Android, Segoe no Windows) - decidido em 01/10/2026 */
  --display:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --body:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--ground);color:var(--ink);font:15px/1.5 var(--body);font-variant-numeric:tabular-nums;padding-inline:16px;padding-block:calc(20px + env(safe-area-inset-top,0px)) calc(48px + env(safe-area-inset-bottom,0px))}
img{max-width:100%}
[hidden]{display:none!important}
.wrap{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

header.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.brand h1{font:800 clamp(28px,6vw,40px)/1 var(--display);letter-spacing:-.02em;margin:0;text-wrap:balance}
.brand p{margin:6px 0 0;color:var(--ink-2)}
.legend{display:flex;gap:8px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:6px;font:600 12px/1 var(--body);padding:6px 10px;border-radius:999px;letter-spacing:.02em}
.pill i{width:8px;height:8px;border-radius:50%;background:currentColor}

.strip-wrap{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--ground);padding-block:8px;margin-inline:-16px;padding-inline:16px}
.strip{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;padding-bottom:6px}
.day{flex:0 0 auto;width:74px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:8px 6px 7px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;position:relative}
.day .wd{font:600 11px/1 var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}
.day .dn{font:700 22px/1.05 var(--display)}
.day .mo{font:500 11px/1 var(--mono);color:var(--ink-3)}
.day .bar{position:absolute;left:10px;right:10px;bottom:-1px;height:3px;border-radius:3px 3px 0 0}
.day .cnt{position:absolute;top:5px;right:6px;font:700 10px/1 var(--mono);color:var(--ink-3)}
.day[aria-pressed="true"]{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.day[aria-pressed="true"] .wd,.day[aria-pressed="true"] .mo,.day[aria-pressed="true"] .cnt{color:var(--ground);opacity:.75}
.day.all{width:auto;padding-inline:14px;justify-content:center}
.day.all .dn{font-size:15px}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:18px}
.dayhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px}
.dayhead .date{font:500 13px/1 var(--mono);color:var(--ink-3);letter-spacing:.02em}
.dayhead h2{font:700 clamp(24px,5vw,32px)/1.1 var(--display);margin:6px 0 8px;letter-spacing:-.01em;text-wrap:balance}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.btn{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;padding:8px 12px;font-weight:600;font-size:14px;text-decoration:none;color:var(--ink);display:inline-flex;align-items:center;gap:6px}
.btn:hover{border-color:var(--ink-3)}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.danger{color:var(--danger)}
.btn.small{padding:5px 9px;font-size:13px}
.btn.big{padding:12px 18px;font-size:16px;border-radius:12px}
.linkbtn{background:none;border:0;padding:2px 4px;color:var(--ink-3);font-size:13px;font-weight:600}
.linkbtn:hover{color:var(--accent)}
.linkbtn.del:hover{color:var(--danger)}

h3.sec{font:600 12px/1 var(--body);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);margin:0 0 10px}
.sechead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.sechead h3.sec{margin:0}
.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ev{display:grid;grid-template-columns:62px 1fr auto;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.ev:first-child{border-top:0}
.ev .time{font:700 14px/1.4 var(--mono);color:var(--accent);font-variant-numeric:tabular-nums}
.ev .time .ate{font-weight:500;color:var(--ink-3)}
.ev .time .end{display:block;font:700 14px/1.4 var(--mono);color:var(--accent);margin-top:2px}
.dayhead .saida{display:inline-flex;align-items:center;gap:6px;font:600 13px/1 var(--body);color:var(--accent);background:var(--accent-soft);border-radius:8px;padding:6px 9px;margin-left:8px;vertical-align:1px}
.dayhead .saida b{font:700 13px/1 var(--mono)}
.ev .time.none{color:var(--ink-3);font-weight:500}
.ev .t{font-weight:600}
.ev .place{color:var(--ink-2);font-size:14px}
.ev .notes{color:var(--ink-2);font-size:14px;margin-top:4px;white-space:pre-wrap}
.ev .ops,.step .ops{display:flex;gap:2px;align-items:flex-start;flex-wrap:wrap}
.mapl{float:right;clear:right;margin:0 0 4px 10px;display:inline-flex;align-items:center;gap:4px;font:600 12px/1 var(--body);color:var(--accent);background:var(--accent-soft);border:1px solid transparent;border-radius:999px;padding:5px 9px;text-decoration:none;white-space:nowrap}
.mapl:hover{border-color:var(--accent)}
.mapl .md{font-weight:500;color:var(--ink-2)}
.mapl.uber{clear:right;background:#000;color:#fff}
.mapl.uber:hover{border-color:#fff}
.mapl.walk{float:none;margin:0 4px 4px 0;height:28px}
.btn.walkbtn{text-decoration:none;color:var(--accent);background:var(--surface);border-color:var(--accent)}
.ev.done .t{text-decoration:line-through;color:var(--ink-3)}

.tiers{display:grid;gap:14px}
.tier h4{margin:0 0 6px;font:700 13px/1 var(--body);display:flex;align-items:center;gap:8px}
.tier h4 .dot{width:10px;height:10px;border-radius:3px}
.rides{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px}
.ride{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border-radius:10px;background:var(--surface-2);border:1px solid transparent}
.ride input{margin-top:3px;width:17px;height:17px;accent-color:var(--accent);flex:0 0 auto}
.ride label{flex:1;min-width:0;cursor:pointer}
.ride .rn{font-weight:600;font-size:14px}
.ride .rm{font-size:12.5px;color:var(--ink-2)}
.ride.done .rn,.ride.done .rm{text-decoration:line-through;color:var(--ink-3)}
.tag{display:inline-block;font:700 10.5px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;padding:3px 6px;border-radius:5px;background:var(--accent-soft);color:var(--accent);margin-left:4px;vertical-align:1px}
.progress{font:500 12px/1 var(--mono);color:var(--ink-3);margin-left:auto}

.empty{color:var(--ink-3);padding:16px;border:1px dashed var(--line);border-radius:12px;text-align:center}
.status{font-size:13px;color:var(--ink-3);margin:0}
.status.err{color:var(--danger)}

form.edit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:14px}
form.edit .full{grid-column:1/-1}
form.edit label,form.edit .lbl2{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--ink-2);letter-spacing:.02em}
form.edit input:not([type=checkbox]),form.edit select,form.edit textarea{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 10px;font-size:15px;font-weight:400;width:100%}
form.edit textarea{min-height:64px;resize:vertical}
form.edit .row{grid-column:1/-1;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
form.edit label.ck{flex-direction:row;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--ink)}
form.edit label.ck input{width:18px;height:18px;accent-color:var(--accent)}
form.edit fieldset{grid-column:1/-1;border:1px solid var(--line);border-radius:10px;padding:12px;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;background:var(--surface)}
form.edit fieldset legend{font:700 12px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);padding:0 6px}
form.edit .hint{grid-column:1/-1;font-size:12.5px;color:var(--ink-3);margin:0}
@media (max-width:520px){form.edit,form.edit fieldset{grid-template-columns:1fr}.wz form.edit{grid-template-columns:minmax(0,1fr)}.ev{grid-template-columns:52px 1fr}.ev .ops{grid-column:2}}

.addr{display:flex;flex-direction:column;gap:6px}
.addr .q{display:flex;gap:6px}
.addr .q input{flex:1;min-width:0}
.addr .ok{font-size:12px;color:var(--orl);font-weight:600}
.addr ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.addr ul:empty{display:none}
.addr li button{width:100%;text-align:left;border:0;border-top:1px solid var(--line);background:var(--surface);padding:8px 10px;font-size:13.5px}
.addr li:first-child button{border-top:0}
.addr li button:hover{background:var(--accent-soft)}
.addr li.msg{padding:8px 10px;font-size:13px;color:var(--ink-3)}

.overview{display:flex;flex-direction:column;gap:10px}
.ovday{display:grid;grid-template-columns:132px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line);text-align:left;background:none;border-left:0;border-right:0;border-bottom:0;width:100%}
.ovday:first-child{border-top:0}
.ovday:hover .ovt{color:var(--accent)}
.ovd{font:500 13px/1.4 var(--mono);color:var(--ink-3)}
.ovd .pill{display:flex;width:max-content;max-width:100%;white-space:nowrap;margin-top:6px}
.ovt{font:700 17px/1.3 var(--display)}
.ovs{font-size:13px;color:var(--ink-2)}
.confirm{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--danger);flex-wrap:wrap}
.next{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:14px;padding:14px 16px}
.next .lbl{font:700 11px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.next .nt{font:700 20px/1.2 var(--display);margin-top:4px}
.next .np{font-size:13.5px;color:var(--ink-2);margin-top:2px}
.next .nb{flex:1;min-width:200px}
.next.finished{background:var(--orl-soft);border-color:var(--orl)}
.next.finished .lbl{color:var(--orl)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-left:auto}
.seg button{border:0;background:var(--surface);padding:6px 12px;font-size:13px;font-weight:600;color:var(--ink-2)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--surface)}
.listhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.listhead h3.sec{margin:0}
.route{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.area h4{margin:0 0 6px;font:700 12px/1.2 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);display:flex;align-items:center;gap:8px}
.area h4::after{content:"";flex:1;height:1px;background:var(--line)}
.area ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.step{display:grid;grid-template-columns:28px auto 1fr auto;align-items:start;gap:10px;padding:8px 10px;border-radius:10px;background:var(--surface-2)}
.step .num{font:700 13px/28px var(--mono);text-align:center;width:28px;height:28px;border-radius:50%;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);font-variant-numeric:tabular-nums}
.step.cur{background:var(--accent-soft);outline:1px solid var(--accent)}
.step.cur .num{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.step input{margin-top:6px;width:17px;height:17px;accent-color:var(--accent)}
.step label{cursor:pointer;min-width:0;padding-top:3px}
.step.done .rn,.step.done .rm{text-decoration:line-through;color:var(--ink-3)}
.step.done .num{opacity:.5}
.step .rn{font-weight:700}
.step.stop{background:transparent;border:1px dashed var(--line)}
.step.stop .rn{font-weight:500;color:var(--ink-2)}
.step .ops{justify-content:flex-end;gap:0 2px;max-width:220px}
.mv{width:30px;height:28px;border:1px solid var(--line);background:var(--surface);border-radius:8px;font-size:14px;line-height:1;color:var(--ink-2);padding:0}
.mv:disabled{opacity:.35;cursor:default}
.tt{display:inline-block;font:700 10.5px/1 var(--body);letter-spacing:.05em;text-transform:uppercase;padding:3px 6px;border-radius:5px;margin-left:6px;vertical-align:1px;border:1px solid currentColor}
@media (max-width:520px){.step{grid-template-columns:28px auto 1fr}.step .ops{grid-column:3;justify-content:flex-start;max-width:none}}
.day.pend{width:auto;padding-inline:14px;justify-content:center}
.day.pend .dn{font-size:15px}
.day.pend .cnt{position:static;display:inline-block;margin-top:3px;background:#C8322B;color:#fff;border-radius:999px;padding:3px 7px;font-size:10.5px}
.day.pend[aria-pressed="true"] .cnt{opacity:1;color:#fff}
.plist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.pitem{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:12px;background:#FDE8E6;border:1px solid #F2B8B2;flex-wrap:wrap}
.pitem input{margin-top:3px;width:19px;height:19px;accent-color:#138A68;flex:0 0 auto;cursor:pointer}
.pitem label{flex:1;min-width:0;cursor:pointer}
.pitem .pt{font-weight:600;color:#7A1E17}
.pitem .pd{font:500 12px/1.4 var(--mono);color:#9A4A42;margin-top:2px}
.pitem .pn{font-size:13.5px;color:var(--ink-2);margin-top:2px}
.pitem a{font-size:13px;font-weight:600;color:var(--accent);white-space:nowrap;text-decoration:none;padding-top:2px}
.pitem a:hover{text-decoration:underline}
.pitem .pc{font-weight:700}
.pitem.done{background:#E0F4E8;border-color:#A6D9BA}
.pitem.done .pt,.pitem.done .pn,.pitem.done .pd{text-decoration:line-through;color:#4F7A61}
.pitem .ops{flex-basis:100%;display:flex;justify-content:flex-end;gap:2px}
@media (prefers-reduced-motion:no-preference){.pitem{transition:background .2s,border-color .2s}.day{transition:background .15s,color .15s,border-color .15s}}
.day.today:not([aria-pressed="true"]){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.day.today .wd{color:var(--accent)}
.ev.now{background:var(--accent-soft);border-top-color:transparent;border-radius:12px;margin-inline:-10px;padding-inline:10px}
.ev.now+.ev{border-top-color:transparent}
.ev.past:not(.now) .t,.ev.past:not(.now) .time{color:var(--ink-3)}
.ev.past:not(.now):not(.open) .notes,.ev.past:not(.now):not(.open) .place,.ev.past:not(.now):not(.open) .mapl,.ev.past:not(.now):not(.open) .end{display:none}
.ev.past:not(.now){cursor:pointer}
.ev.past.open .notes,.ev.past.open .place,.ev.past.open .end,.ev.past.open .end .ate{color:var(--ink-3)}
.ev.past.open .mapl{opacity:.6}
.ev.past:not(.now){padding-block:8px}
.ev.now,.ev.nx,.next{scroll-margin-top:100px}
#main.tv{padding-bottom:calc(100vh - 240px)}
.nowtag{display:inline-block;width:max-content;font:700 10px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;border-radius:5px;padding:3px 5px;margin-bottom:4px}
.nowtag.a{background:var(--accent);color:var(--accent-ink)}
.nowtag.n{color:var(--accent);border:1px solid var(--accent)}
.nowtag.c{color:var(--orl);background:var(--orl-soft)}
.cd{align-self:flex-start;width:max-content;max-width:100%;background:var(--trans);color:#fff;border-radius:16px;padding:16px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.cd .lb{font:600 13px/1.3 var(--body);opacity:.85;margin:0}
.cd .nums{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end}
.cd .u{display:flex;flex-direction:column;align-items:flex-start}
.cd .u b{font:800 clamp(34px,9vw,52px)/1 var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.cd .u span{font:600 12px/1 var(--body);opacity:.85;margin-top:4px}
.cd .big{font:800 clamp(22px,7.5vw,46px)/1.05 var(--display);letter-spacing:-.01em;margin:0;white-space:nowrap}
.cd .sub{font:500 13px/1.3 var(--body);opacity:.85;margin:4px 0 0}

/* Produto: edição, link e página inicial */
#foot{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
body.editing{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
.editbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;background:var(--ink);color:var(--ground);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));font-size:14px}
.editbar b{font-weight:700}
.banner{background:var(--surface);border:1px solid var(--accent);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.banner h3{margin:0;font:700 18px/1.2 var(--display)}
.banner p{margin:0;color:var(--ink-2);font-size:14px}
.linkbox{font:500 13px/1.4 var(--mono);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;word-break:break-all;user-select:all}
.hero{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px 20px;display:flex;flex-direction:column;gap:14px}
.hero h2{font:800 clamp(26px,6vw,38px)/1.05 var(--display);letter-spacing:-.02em;margin:0;text-wrap:balance}
.hero p{margin:0;color:var(--ink-2);max-width:56ch}
.feats{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;list-style:none;margin:0;padding:0}
.feats li{background:var(--surface-2);border-radius:12px;padding:12px 14px;font-size:14px;color:var(--ink-2)}
.feats li b{display:block;color:var(--ink);font-size:15px;margin-bottom:2px}
.mine{display:flex;flex-direction:column;gap:6px}
.mine a{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-decoration:none;color:var(--ink);font-weight:600}
.mine a span{font:500 12px/1.6 var(--mono);color:var(--ink-3)}
.cityrow{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}
.swatches{display:flex;gap:6px;flex-wrap:wrap}
.swatches label{position:relative}
.swatches input{position:absolute;opacity:0;pointer-events:none}
.swatches span{display:block;width:26px;height:26px;border-radius:50%;border:3px solid var(--surface);box-shadow:0 0 0 1px var(--line);cursor:pointer}
.swatches input:checked+span{box-shadow:0 0 0 2px var(--ink)}
.addrow{display:flex;gap:8px;flex-wrap:wrap}
.bulk{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.bulk .lbl{font:700 12px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.bulk .hint{margin:0;font-size:12.5px;color:var(--ink-3)}
.bulkrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:14px;color:var(--ink-2)}
.bulkrow select,.edrow select,.edrow input{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 9px;font-size:14px}
.ovday.ed{grid-template-columns:90px 1fr;align-items:center;border-left:4px solid var(--cc);padding-left:10px;border-top:1px solid var(--line)}
.edrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.edrow select{flex:0 0 auto;max-width:150px}
.edrow input{flex:1 1 160px;min-width:0}
@media (max-width:520px){.ovday.ed{grid-template-columns:1fr;gap:6px}}
.sechead{flex-wrap:wrap}.sechead .actions{gap:6px}
/* trajeto calculado */
.traj{display:inline-flex;flex-wrap:wrap;gap:0 4px;align-items:baseline;margin-top:4px;font-size:13px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:3px 8px}
.traj b{font-weight:700}
.traj span{color:var(--ink-3)}
.ev.past:not(.now):not(.open) .traj{display:none}
/* questionário */
.wz{gap:12px}
.wz h2{font:700 clamp(22px,5vw,28px)/1.15 var(--display);margin:0;letter-spacing:-.01em}
.wzbar{height:6px;border-radius:6px;background:var(--surface-2);overflow:hidden}
.wzbar span{display:block;height:100%;background:var(--accent);border-radius:6px}
.wzlist{display:flex;flex-direction:column;gap:8px;min-width:0}
.wzlist:empty{display:none}
.wzrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;justify-content:space-between;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.wzrow .hint{font-size:12.5px;color:var(--ink-3)}
form.edit label.inl{flex-direction:row;align-items:center;gap:8px}
form.edit label.inl input{width:auto}
.wzopts{display:flex;flex-direction:column;gap:8px}
/* criação: cidades, chegada no mesmo dia, dias em cada cidade (05/10/2026) */
form.edit label .wzsub,.wzlab .wzsub{font-size:12.5px;font-weight:400;color:var(--ink-3);letter-spacing:0}
.wzlab{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--ink)}
form.edit .wzlab input{width:auto;min-width:170px;font-size:16px}
.wzcid{flex-wrap:nowrap;gap:8px;padding:10px 10px 10px 12px}
.wzcid b{flex:1 1 0;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.wzcid .wzmv{display:flex;gap:6px;align-items:center;flex:0 0 auto}
.wzcid .wzmv .linkbtn{padding:4px 2px;font-size:13px}
.wzcid .wzmv .mv{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink-2);font-size:15px;padding:0}
.wzcid .wzmv .mv:disabled{opacity:.35}
.wzdot{display:inline-block;width:10px;height:10px;border-radius:99px;margin-right:7px;vertical-align:1px}
.wzadd{font-size:15.5px;font-weight:700;color:var(--ink);margin-bottom:-4px}
.wzadd i{font-style:normal;color:var(--accent);font-size:18px;margin-right:4px}
.wzia{display:flex;gap:12px;align-items:center;text-align:left;width:100%;background:var(--surface);border:1px dashed var(--accent);border-radius:12px;padding:12px 14px;color:var(--accent);font:600 14px/1.35 var(--body);cursor:pointer}
.wzia small{display:block;font-weight:400;color:var(--ink-2);font-size:12.5px;margin-top:2px}
.wzsn{display:flex;gap:8px}
.wzsn button{flex:1;background:var(--surface);border:1.5px solid var(--line);border-radius:10px;padding:11px 10px;font:600 15px/1.2 var(--body);color:var(--ink);cursor:pointer}
.wzsn button.sel{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.wzescolha{display:flex;flex-direction:column;gap:10px}
.wzescolha button{display:flex;flex-direction:column;gap:4px;text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;cursor:pointer;font-family:var(--body);color:var(--ink)}
.wzescolha button b{font-size:16px}
.wzescolha button span{font-size:13.5px;color:var(--ink-2)}
.wzescolha button.sel{border-color:var(--accent);background:var(--accent-soft)}
.wzcaixa{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:9px}
.wzq{font-size:15px;font-weight:700;color:var(--ink)}
/* Pergunta do calendário depois do Não (05/10/2026): vira o título da tela (a tela rola até ela) */
.wzq2{display:block;font-size:21px;line-height:1.25;font-weight:800;color:var(--ink);letter-spacing:-.01em;margin-top:6px;padding-top:14px;border-top:1px solid var(--line)}
.wzcaixa .wzq2{font-size:19px}
/* calendário dentro da caixa "Chegam no mesmo dia?": sem segunda moldura, para caber a semana inteira */
.wzcaixa .cal-aberto{border:0;padding:4px 0 0;background:transparent}
.wzfaixa{display:flex;height:30px;border-radius:8px;overflow:hidden;font-size:11.5px;font-weight:700;color:#fff}
.wzfaixa div{display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;padding:0 4px;min-width:0}
.wzfaixa .vaz{background:repeating-linear-gradient(45deg,#D6DEE5 0 6px,#E6EBEF 6px 12px);color:var(--ink-3)}
.wzleg{position:relative;height:16px;font-size:11.5px;color:var(--ink-3);margin-top:3px}
.wzleg span{position:absolute;transform:translateX(-50%)}
.wzleg span:first-child{transform:none}.wzleg span:last-child{transform:translateX(-100%)}
.wznext{font-size:13.5px;color:var(--accent);font-weight:600;margin:0}
.wzper{font-size:13px;color:var(--ink-2);margin:0}
.wzres{font-size:13.5px;color:var(--ink-2);background:var(--trans-soft);border-radius:8px;padding:9px 12px;margin:0}
.wzres b{color:var(--trans)}
.wzaviso{font-size:13.5px;color:#7A5A00;background:#FFF4D6;border:1px solid #F0D58A;border-radius:10px;padding:10px 12px;margin:0}
.wzlin{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.wzlin b{font-size:15.5px}
.wzlin span{font-size:13px;color:var(--ink-2);white-space:nowrap}
.addr li button b{font-weight:600}
.addr li button span{color:var(--ink-3)}
/* visão geral em edição */
.ovrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.ovrow:first-of-type{border-top:0}
.ovrow>div{flex:1;min-width:0}
.ovrow .hint{font-size:12.5px;color:var(--ink-3)}
.ovrow .dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
/* pendências automáticas */
.pitem.auto{background:#FFF4DE;border-color:#F0CF8A;align-items:center}
.pitem.auto .pt{color:#6B4A00}
.pitem.auto .pbody{flex:1;min-width:0}
.pitem.auto.leve{background:var(--surface-2);border-color:var(--line)}
.pitem.auto.leve .pt{color:var(--ink-2);font-weight:500}
.pitem.auto .hint{font-size:12.5px;color:var(--ink-3)}
/* lista de viagens do aparelho */
.minerow{display:flex;align-items:stretch;gap:6px}
.minerow a{flex:1;min-width:0}
.lixo{flex:0 0 auto;width:42px;border:1px solid var(--line);background:var(--surface);border-radius:10px;color:var(--ink-3);display:flex;align-items:center;justify-content:center;padding:0}
.lixo:hover{color:var(--danger);border-color:var(--danger)}
.minerow.conf{flex-direction:column;gap:8px;border:1px solid var(--danger);border-radius:10px;padding:10px 12px;background:#FDF1EF}
.minerow.conf .cq{display:flex;flex-direction:column;gap:2px;font-size:14px}
.minerow.conf .cq span{font-size:12.5px;color:var(--ink-2)}

/* ---------- assistente (chat) ---------- */
body.has-chat{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
.chat-fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:30;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;padding:12px 18px;background:var(--accent);color:var(--accent-ink);font:600 15px/1 var(--body);box-shadow:0 6px 20px rgba(21,32,43,.22)}
.chat-fab.redondo{width:60px;height:60px;padding:0;justify-content:center;bottom:calc(var(--editbar-h,0px) + 16px)}
body.chat-open .chat-fab{display:none}
.chat{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:31;width:min(420px,calc(100vw - 32px));height:min(640px,calc(100dvh - 32px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 40px rgba(21,32,43,.25);overflow:hidden}
.chat-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}
.chat-top b{font:700 16px/1.2 var(--display)}
.chat-top small{display:block;color:var(--ink-3);font-size:12px;margin-top:2px}
.chat-top small:empty{display:none}
.chat-tag{display:inline-block;margin-left:6px;font:700 10px/1 var(--mono);letter-spacing:.06em;padding:3px 6px;border-radius:6px;background:var(--accent-soft);color:var(--accent);vertical-align:2px}
.chat-x{border:0;background:none;font-size:26px;line-height:1;color:var(--ink-2);padding:2px 6px;border-radius:8px}
.chat-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--surface-2)}
.cm{max-width:88%;padding:9px 12px;border-radius:14px;font-size:14.5px;line-height:1.45;overflow-wrap:anywhere}
.cm.a{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}
.cm.u{align-self:flex-end;background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px}
.cm.err{border-color:var(--danger);color:var(--danger)}
.cm.st{color:var(--ink-3);display:flex;align-items:center;gap:8px}
.cm .cb{color:var(--ink-3)}
.chat-chips{display:flex;gap:8px;flex-wrap:wrap}
.dots{display:inline-flex;gap:3px}
.dots i{width:6px;height:6px;border-radius:50%;background:var(--ink-3);animation:chatdot 1.2s infinite ease-in-out}
.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}
@keyframes chatdot{0%,80%,100%{opacity:.25}40%{opacity:1}}
@media (prefers-reduced-motion:reduce){.dots i{animation:none;opacity:.6}}
.chat-form{display:flex;gap:8px;align-items:flex-end;padding:10px;border-top:1px solid var(--line)}
.chat-form textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:16px;line-height:1.35;background:var(--surface);max-height:140px}
.chat-form .btn:disabled{opacity:.5;cursor:default}
.chat-aviso{margin:0;padding:0 12px 10px;font-size:11.5px;color:var(--ink-3)}
@media (max-width:600px){
  .chat{inset:0;width:auto;height:auto;right:0;bottom:0;border-radius:0;border:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
  body.chat-open{overflow:hidden}
}
/* cards automáticos: saída de trecho e volta ao hotel */
.alerta{margin-top:6px;font-size:13px;font-weight:600;color:var(--danger);background:#FDECEA;border:1px solid #F5C2BD;border-radius:8px;padding:5px 9px}
.aviso{margin-top:6px;font-size:13px;font-weight:600;color:#8A5A00;background:#FFF4DC;border:1px solid #F1D48F;border-radius:8px;padding:5px 9px}
.timeline li.livre{list-style:none;margin:2px 0;padding:7px 12px;border:1px dashed #E0B44C;border-radius:10px;background:#FFF8E8;color:#8A5A00;font-size:13px;font-weight:600;text-align:center}
.timeline li.livre+.ev{border-top:0}
.step .rm.pe{color:var(--accent);font-weight:600}
/* ---------- login e início (fase 1 do PLANO-LOGIN.md) ---------- */
/* "Início" dentro da viagem: botão de verdade, fácil de achar e de tocar (01/10/2026) */
.voltar{display:inline-flex;align-items:center;gap:4px;min-height:40px;margin-bottom:12px;padding:0 16px 0 10px;border-radius:999px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);font:600 15px/1 var(--body);color:var(--accent);text-decoration:none}
.voltar svg{flex:0 0 auto}
.voltar:active{background:color-mix(in srgb,var(--accent) 20%,#fff)}
.legend .quem{font:600 13px/1 var(--body);color:var(--ink-2);align-self:center}
.entrar{gap:16px}
.entrar .gbtn{background:var(--surface);justify-content:center;gap:10px}
.ou{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:13px}
.ou::before,.ou::after{content:"";flex:1;height:1px;background:var(--line)}
.emailf{display:flex;flex-direction:column;gap:8px}
.emailf label{font-weight:600;font-size:14px}
.emailf input{border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:16px;background:var(--surface)}
.entrar .btn.big{justify-content:center}
.hojedata{display:flex;flex-direction:column;gap:2px}
.inicio{display:flex;flex-direction:column;gap:16px}
.hojedata span{font:600 14px/1.2 var(--body);color:var(--ink-2)}
.hojedata b{font:800 clamp(30px,8vw,44px)/1.05 var(--display);letter-spacing:-.02em}
.cardv{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:16px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.cardv .lb{font:700 12px/1.2 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.cardv .nm{font:800 clamp(24px,6.5vw,32px)/1.1 var(--display);letter-spacing:-.01em}
.cardv .dt{color:var(--ink-2)}
.cardv .falta{font:600 15px/1.2 var(--body);color:var(--ink-2);margin-top:6px}
.cardv .falta b{font:800 clamp(34px,9vw,48px)/1 var(--display);color:var(--trans);letter-spacing:-.02em}
.cardv .go{font-weight:700;color:var(--accent);margin-top:6px}
.cardv.agora{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.cardv.agora .lb,.cardv.agora .dt,.cardv.agora .go{color:var(--accent-ink)}
.cardv.agora .dt{font-size:17px;font-weight:600}
.cardv.vazio{border-style:dashed;text-align:center;align-items:center}
.mais{margin:-4px 0 0;text-align:center}
.mais a{color:var(--accent);font-weight:600;text-decoration:none}
.panel .tit{font:800 24px/1.1 var(--display);margin:0}
.guardar{border-color:var(--accent);background:var(--accent-soft)}
.guardar .minerow{align-items:center}
body.com-barra{padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))}
.barra{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;gap:10px;justify-content:space-between;background:var(--surface);border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}
.barra .btn{flex:1;justify-content:center;max-width:420px}
.barra .btn.ativo{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
/* ---------- compartilhar, papéis e lixeira (fase 2 do PLANO-LOGIN.md) ---------- */
.comp .cpbloco{display:flex;flex-direction:column;gap:10px}
.comp .cpbloco+.cpbloco{border-top:1px solid var(--line);padding-top:18px}
.cppapeis{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cppapel{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.cppapel b{font-size:16px}
.cppapel span{font-size:13px;color:var(--ink-2);line-height:1.3}
.cppapel.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}
.cplista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.cplista li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.cplista li>div:first-child{display:flex;flex-direction:column;min-width:0}
.cplista li span{font-size:12.5px;color:var(--ink-3);overflow-wrap:anywhere}
.cplista li.conf{border-color:var(--danger);background:#FDF1EF}
.cplista select{border:1px solid var(--line);border-radius:8px;padding:5px 8px;background:var(--surface)}
.cpchave{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.cpchave input{width:20px;height:20px;margin-top:2px;accent-color:var(--accent)}
.cpchave span{display:flex;flex-direction:column}
.cpchave small{color:var(--ink-2);font-size:13px}
.status.okmsg{color:var(--orl)}
.papelinfo{font-size:13px;color:var(--ink-3);align-self:center}
/* fim da viagem (05/10/2026): frase embaixo dos botões, numa linha só dela */
.papelinfo.fimviagem{flex-basis:100%;text-align:center;margin-top:4px}
.mine .mn{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.papel{font:600 11px/1 var(--body);font-style:normal;letter-spacing:.04em;text-transform:uppercase;padding:4px 7px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
.papel.criador{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.papel.editor{background:var(--orl-soft);color:var(--orl);border-color:transparent}
.mine a.nalixeira{opacity:.75}
.banner.aviso-lixeira{border-color:var(--danger);background:#FDF1EF}
.convlb{font:700 12px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0}
/* quem só vê (visitante pelo link aberto): sem marcar, sem reordenar */
body.so-ver [data-act=toggle],body.so-ver [data-act=ptoggle],body.so-ver .mv{display:none}
.mine a span.mn{font:600 15px/1.3 var(--body);color:var(--ink)}
.mine a.nalixeira span.mn{color:var(--ink-2)}
/* Editar: escolher entre editar à mão ou pedir ao assistente */
.escolha{display:flex;flex-direction:column;gap:10px;width:100%;max-width:520px;margin:0 auto;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.escolha p{margin:0;font-weight:700;font-size:16px}
.escolha .btn.big{flex-direction:column;align-items:flex-start;gap:2px;text-align:left}
.escolha .btn.big small{font-weight:400;font-size:13px;opacity:.85}
.escolha>.btn:not(.big){align-self:center}
.editbar .btn.danger{background:transparent;color:#FF8A80;border-color:#FF8A80}
.editbar .btn.danger.cheio{background:var(--danger);color:#fff;border-color:var(--danger)}
/* Compartilhar: escolher por link ou por e-mail */
.cpmodos{display:flex;flex-direction:column;gap:8px}
.cpmodos .btn.big,.cpcopiar{flex-direction:column;align-items:flex-start;gap:2px;text-align:left}
.cpmodos .btn.big small{font-weight:400;font-size:13px;color:var(--ink-2)}
.cpcopiar{align-items:center;justify-content:center}
.cppergunta{margin:0;font-weight:600}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* Botão Editar de cada programa no modo edição: maior e azul (01/10/2026) */
.linkbtn.editar{color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent);border-radius:8px;padding:6px 12px;font-size:15px;font-weight:700}
.linkbtn.editar:hover{background:var(--accent);color:var(--accent-ink)}
form.edit input[type=time],form.edit input[type=date]{cursor:pointer}

/* App instalável: cartão "Instale o Roteiro" e faixa de nova versão (01/10/2026) */
.instalar{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.instalar img{border-radius:12px}
.instalar .itx{display:flex;flex-direction:column;gap:2px}
.instalar .itx span{font-size:13.5px;color:var(--ink-2)}
.instalar .actions{grid-column:1/-1;justify-content:flex-end}
/* Passo a passo de instalar no iPhone (01/10/2026): botões desenhados como os do iPhone, com o toque certo em destaque */
.lnk{border:0;background:none;padding:0;color:var(--accent);font:inherit;font-weight:600}
.guia{gap:14px}
.guia .voltar{align-self:flex-start;font-size:15px}
.guia p{margin:0}
.guia .hint{font-size:13px;color:var(--ink-3)}
.passos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}
.passos li{display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:start}
.passos li>div{display:flex;flex-direction:column;gap:8px;min-width:0}
.passos .n{width:32px;height:32px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:800}
.passos .btn{align-self:flex-start}
.ico{display:inline-flex;vertical-align:middle;color:#0A84FF}
.ico svg{width:20px;height:20px}
.demo{background:#F2F2F7;border-radius:12px;padding:10px;color:#000;font-size:14px;max-width:320px}
.demo.icone{display:flex;justify-content:center;color:#0A84FF;padding:12px}
.demo.icone svg{width:34px;height:34px;padding:6px;border-radius:10px;box-shadow:0 0 0 3px #0A84FF}
.demo.menu{display:flex;flex-direction:column;padding:4px 0;background:#fff;border:1px solid var(--line)}
.demo.menu span{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-top:1px solid #E5E5EA;color:#8E8E93}
.demo.menu span:first-child{border-top:0}
.demo.menu .alvo{color:#000;font-weight:600;background:#E3EEFF;box-shadow:inset 0 0 0 2px #0A84FF}
.demo.topo{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:13px}
.demo.topo span{color:#0A84FF}
.demo.topo b{text-align:center;font-size:13px}
.demo.topo .alvo{font-weight:700;padding:4px 8px;border-radius:8px;box-shadow:0 0 0 2px #0A84FF}
.demo.app{display:flex;flex-direction:column;align-items:center;gap:4px;background:#1F2937;color:#fff;padding:14px;width:110px}
.demo.app img{border-radius:12px}
.novaversao{position:fixed;left:12px;right:12px;top:calc(10px + env(safe-area-inset-top,0px));z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 16px;border-radius:14px;background:var(--ink);color:var(--ground);font-weight:600;box-shadow:0 6px 24px rgba(0,0,0,.18);max-width:560px;margin:0 auto}

/* ---------- Carregamento (01/10/2026) ----------
   Esqueleto no lugar do "Carregando…": blocos cinza no formato da tela, com um brilho passando (como Instagram e iFood).
   Quando a tela de verdade chega, ela aparece com um esmaecimento curto. Entre páginas, o navegador troca a tela
   suavemente em vez de piscar em branco (Safari 18.2+ e Chrome; nos outros fica como antes). */
.esperando #status{display:none}
.esq{display:flex;flex-direction:column;gap:12px}
.esq i,.esperando.rv #h1::before,.esperando.rv #sub::before{display:block;border-radius:8px;background:linear-gradient(90deg,#DFE6EC 0,#EDF1F5 40%,#DFE6EC 80%) 0 0/300% 100%}
.esq-dias{display:none;gap:8px;overflow:hidden;margin-bottom:8px}
.rv .esq-dias{display:flex}
.esq-dias i{flex:0 0 auto;width:74px;height:62px;border-radius:12px}
.esq-dias i:first-child{width:96px}
.esq-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}
.esq-card i{height:12px}
.esq-card i:nth-child(1){width:35%;height:11px}
.esq-card i:nth-child(2){width:70%;height:18px}
.esq-card i:nth-child(3){width:50%}
.esperando.rv #h1{position:relative;color:transparent}
.esperando.rv #h1::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:min(68vw,340px)}
.esperando.rv #sub::before{content:"";height:14px;margin-top:8px;width:min(40vw,200px)}
@keyframes esq-brilho{from{background-position:100% 0}to{background-position:0 0}}
@keyframes chega{from{opacity:0}}
/* Regra para todo mundo (01/10/2026): vale mesmo com "reduzir movimento" ligado no celular */
.esq i,.esperando.rv #h1::before,.esperando.rv #sub::before{animation:esq-brilho 1.3s linear infinite}
.chegou #main,.chegou header.top,.chegou .strip-wrap,.chegou .cd{animation:chega .25s ease-out}
@view-transition{navigation:auto}
/* Minhas viagens, linha da viagem (opção B, 01/10/2026): calendário à esquerda, nome e papel, período e situação */
.minerow.trip{align-items:center;gap:4px}
.opcoes{flex:0 0 auto;width:32px;height:40px;border:0;background:none;border-radius:10px;color:var(--ink-3);display:flex;align-items:center;justify-content:center;padding:0;margin-left:-6px}
.opcoes:hover,.opcoes:active{background:var(--surface-2);color:var(--ink)}
.mine .minerow.trip a{justify-content:flex-start;align-items:center;gap:12px}
.minerow.trip .cal{flex:0 0 44px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden;text-align:center;background:var(--surface)}
.minerow.trip .cal b{font:700 10.5px/1 var(--body);text-transform:uppercase;letter-spacing:.06em;padding:4px 0 3px;background:var(--accent-soft);color:var(--accent)}
.minerow.trip .cal span{font:700 19px/1 var(--display);color:var(--ink);padding:5px 0 6px}
.minerow.trip .info{display:flex;flex-direction:column;gap:3px;min-width:0}
.mine .minerow.trip .per{font:500 13px/1.35 var(--body);color:var(--ink-3)}
/* acontecendo agora: azul forte, como o cartão do Início e o "Em andamento" */
.minerow.trip.agora a{border-color:var(--accent);background:var(--accent-soft)}
.minerow.trip.agora .cal b{background:var(--accent);color:var(--accent-ink)}
.minerow.trip.agora .cal{border-color:var(--accent)}
.mine .minerow.trip.agora .per{color:var(--accent);font-weight:600}
/* já foram: mais apagado, calendário cinza */
.minerow.trip.foi a{background:var(--surface-2)}
.minerow.trip.foi .cal b{background:var(--line);color:var(--ink-2)}
.minerow.trip.foi .cal span,.mine .minerow.trip.foi span.mn{color:var(--ink-2)}
.mine .minerow.trip .mn{flex-direction:column;align-items:flex-start;gap:5px}
.minerow.trip.agora .papel{background:var(--surface)}
.barra.uma{justify-content:center}
.dcbox input[type=date]{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 10px;font-size:16px;color:var(--ink);width:auto;min-width:170px;font-family:inherit}
.dcbox .wzlab{font-size:13.5px}
/* Aviso antes de sair da criação da viagem (05/10/2026, opção A): janela no meio, fundo escurecido */
.sairnova{position:fixed;inset:0;z-index:60;background:rgba(15,20,30,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.sairnova-caixa{background:var(--surface);border-radius:20px;padding:22px 20px 18px;max-width:360px;width:100%;display:flex;flex-direction:column;gap:10px;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.sairnova-caixa h2{margin:0;font-size:21px}
.sairnova-caixa p{margin:0 0 8px;color:var(--ink-2);font-size:15px;line-height:1.45}
.sairnova-caixa .btn{justify-content:center}

/* Calendário próprio (05/10/2026, calendario.js): aberto na tela nas perguntas da criação, folha que sobe de baixo no resto.
   Dias fora do permitido continuam visíveis, em cinza claro, sem dar para tocar. */
.cal-nativo{position:absolute!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none;overflow:hidden;margin:0!important;padding:0!important;border:0!important}
.cal-campo{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font:inherit;font-size:16px;font-weight:400;color:var(--ink);text-align:left;cursor:pointer;min-height:46px}
.cal-campo .vazio{color:var(--ink-3)}
.cal-campo svg{color:var(--ink-2);flex:none}
.cal-erro{outline:2px solid var(--danger);outline-offset:2px}
.cal-aberto,.cal-campo,.cal-folha{letter-spacing:normal}
.cal-aberto{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 10px 10px;font-weight:400}
.cal-aberto.cal-erro,.cal-campo.cal-erro{border-color:var(--danger)}
.cal-topo{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cal-topo b{font-size:17px;color:var(--ink);white-space:nowrap}
.cal-seta{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.cal-seta:disabled{color:#C3CBD3;cursor:default}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);row-gap:2px}
.cal-s{text-align:center;font-size:12px;font-weight:700;color:var(--ink-3);padding:4px 0}
.cal-c{position:relative;height:44px;min-width:0;display:flex;align-items:center;justify-content:center}
.cal-fx{position:absolute;top:4px;bottom:4px;left:0;right:0}
.cal-fx.e{left:4px;border-top-left-radius:18px;border-bottom-left-radius:18px}
.cal-fx.d{right:4px;border-top-right-radius:18px;border-bottom-right-radius:18px}
.cal-d{position:relative;width:38px;max-width:100%;height:38px;border-radius:50%;border:0;background:transparent;font:inherit;font-size:16px;font-weight:600;color:var(--ink);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}
.cal-d:disabled{color:#C3CBD3;font-weight:400;cursor:default}
.cal-d.hj:not(.sel){box-shadow:inset 0 0 0 1.5px var(--ink-3)}
.cal-d.sel{background:var(--accent);color:var(--accent-ink)}
.cal-d:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cal-pt{position:absolute;bottom:3px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;pointer-events:none}
.cal-leg{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--ink-2);margin:8px 4px 0}
.cal-leg span{display:flex;align-items:center;gap:6px}
.cal-leg i{width:9px;height:9px;border-radius:50%}
.cal-dica{margin:0 4px 8px;font-size:13.5px;color:var(--ink-2)}
.cal-res{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 8px}
.cal-res span{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2)}
.cal-res span.vez{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--surface)}
.cal-res small{font-size:12px;color:var(--ink-3);font-weight:600}
.cal-res b{font-size:15px;color:var(--ink)}
.cal-fundo{position:fixed;inset:0;z-index:70;background:rgba(15,20,30,.45);display:flex;align-items:flex-end;justify-content:center}
.cal-folha{width:100%;max-width:480px;max-height:92vh;overflow:auto;background:var(--surface);border-radius:22px 22px 0 0;padding:10px 16px calc(16px + env(safe-area-inset-bottom,0px));box-shadow:0 -10px 40px rgba(0,0,0,.2)}
.cal-alca{width:40px;height:5px;border-radius:3px;background:var(--line);margin:0 auto 12px}
.cal-tit{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.cal-tit b{font-size:19px;color:var(--ink)}
.cal-tit span{font-size:13px;color:var(--ink-3)}
.cal-bts{display:flex;gap:10px;margin-top:14px}
.cal-bts .btn{flex:1;justify-content:center}
.cal-bts .btn:disabled{opacity:.5}

/* Sem internet (05/10/2026, rede.js): faixa no topo e o que precisa de internet apagado */
.semrede{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:10px;background:#3B4652;color:#fff;font-size:14px;line-height:1.35;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top,0px));margin:calc(-20px - env(safe-area-inset-top,0px)) -16px 16px}
.semrede svg{flex:none}
.semrede b{font-weight:700}
.avisorede{position:fixed;left:16px;right:16px;bottom:calc(120px + env(safe-area-inset-bottom,0px));z-index:80;max-width:440px;margin:0 auto;background:var(--ink);color:#fff;border-radius:12px;padding:12px 16px;font-size:14.5px;line-height:1.4;box-shadow:0 10px 30px rgba(0,0,0,.25)}
body.offline :is(a[href="/nova"],[data-act="home-start"],[data-act="edit-escolher"],[data-act="edit-on"],[data-act="chat-open"],[data-act="chat-reabrir"],[data-act="comp-abrir"],[data-act="in-guardar"],[data-act="in-guardar-todas"],[data-act="in-restaurar"],[data-act="wz-sem-cidades"],[data-act="in-sair"],[data-act="in-apagar"],[data-act="lx-restaurar"]){opacity:.45}
form.edit textarea.wzcontar{min-height:250px;font-size:16px;line-height:1.4}

/* Painel da equipe (05/10/2026, painel.js): classes com prefixo pn- */
.pn{display:flex;flex-direction:column;gap:16px}
.pn-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pn-top .btn{text-decoration:none}
.pn-badge{display:inline-block;flex:0 0 auto;font:700 11px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;padding:5px 8px;border-radius:999px;background:var(--ink);color:#fff}
.pn-badge.eq{background:var(--trans-soft);color:var(--trans)}
.pn-h1{font:800 30px/1 var(--display);margin:4px 0 4px;letter-spacing:-.02em}
.pn-sub{margin:0;color:var(--ink-3);font-size:13px}
.pn-sub .linkbtn{font-size:13px;padding:0 2px}
.pn-tabs{display:flex;gap:6px;overflow-x:auto;margin-inline:-16px;padding:2px 16px 4px;scrollbar-width:none}
.pn-tabs a{flex:0 0 auto;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 14px;font-weight:600;font-size:14px;color:var(--ink);text-decoration:none}
.pn-tabs a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pn-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pn-kpi{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;min-width:0}
.pn-kpi .l{font:600 12px/1.25 var(--body);color:var(--ink-3)}
.pn-kpi .v{font:800 26px/1.1 var(--display);margin-top:6px;letter-spacing:-.01em}
.pn-kpi .d{font-size:12px;font-weight:600;margin-top:2px;line-height:1.3}
.pn-kpi.lock{background:var(--surface-2);border-style:dashed}
.pn-kpi.lock .v{font-size:15px;color:var(--ink-3);font-weight:600;margin-top:10px}
.pn-up{color:var(--orl)} .pn-mute{color:var(--ink-3);font-weight:500}
.pn-box{gap:10px;padding:16px}
.pn-box h3.sec{margin:0}
.pn-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.pn-list li{display:flex;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.pn-list li:first-child{border-top:0;padding-top:0}
.pn-list li:last-child{padding-bottom:0}
.pn-link{cursor:pointer}
.pn-link:hover .pn-main b{color:var(--accent)}
.pn-av{width:38px;height:38px;border-radius:50%;flex:0 0 38px;display:grid;place-items:center;font:700 15px/1 var(--body);color:#fff}
.pn-av.g{width:56px;height:56px;flex-basis:56px;font-size:22px}
.pn-main{flex:1;min-width:0}
.pn-main b{display:block;font-size:15px;overflow-wrap:anywhere}
.pn-main>span{display:block;font-size:13px;color:var(--ink-3);overflow-wrap:anywhere}
.pn-side{text-align:right;font-size:12px;color:var(--ink-3);flex:0 0 auto}
.pn-side b{display:block;font-size:15px;color:var(--ink)}
.pn-chev{color:var(--ink-3);font-size:20px;flex:0 0 auto}
.pn-search{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.pn-filtros{display:flex;gap:6px;flex-wrap:wrap}
.pn-filtros button{font:600 12px/1 var(--body);padding:7px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2)}
.pn-filtros button.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-soft)}
.pn-quem{display:flex;gap:12px;align-items:center}
.pn-nome{font:800 22px/1.15 var(--display);overflow-wrap:anywhere}
.pn-mail{color:var(--ink-3);font-size:14px;margin-top:2px;overflow-wrap:anywhere}
.pn-dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:4px 0 0;font-size:14px}
.pn-dl dt{color:var(--ink-3)} .pn-dl dd{margin:0;font-weight:600;text-align:right}
.pn-dl a{color:var(--accent);text-decoration:none}
.pn-tag{display:inline-block;font:700 10px/1 var(--body);letter-spacing:.04em;text-transform:uppercase;padding:4px 6px;border-radius:999px;vertical-align:1px;margin-right:6px;white-space:nowrap}
.pn-list li>.pn-tag{margin-right:0}
.t-ia{background:var(--trans-soft);color:var(--trans)} .t-man{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
.t-lix{background:#FDE7E5;color:var(--danger)} .t-ag{background:var(--orl-soft);color:var(--orl)} .t-cr{background:var(--accent-soft);color:var(--accent)}
.pn-ver{justify-content:center;margin-top:4px}
.pn-vazio{margin:0;color:var(--ink-3);font-size:14px}
.pn-tbl{width:100%;border-collapse:collapse;font-size:13px}
.pn-tbl th,.pn-tbl td{padding:8px 4px;border-top:1px solid var(--line);text-align:center}
.pn-tbl th:first-child,.pn-tbl td:first-child{text-align:left}
.pn-tbl thead th{border-top:0;color:var(--ink-3);font-weight:600;font-size:12px}
.pn-ok{color:var(--orl);font-weight:800} .pn-no{color:var(--ink-3)}
.pn-bar{display:flex;align-items:flex-end;gap:5px;height:84px}
.pn-bar i{flex:1;background:var(--accent);border-radius:4px 4px 0 0;opacity:.85;position:relative;min-width:0}
.pn-bar i b{position:absolute;top:-15px;left:0;right:0;text-align:center;font:600 10px/1 var(--body);color:var(--ink-3)}
.pn-barl{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-3)}
.pn-add{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.pn-add label{font-weight:600;font-size:14px}
.pn-add input{border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:var(--surface)}
.pn-msg{margin:0;font-size:13px;color:var(--orl);font-weight:600}
.pn-msg.err{color:var(--danger)}
/* Painel: blocos que abrem telas, alertas, funil, Evolução e Gastos (06/10/2026) */
.pn-kpi.pn-link{cursor:pointer;transition:border-color .15s}
.pn-kpi.pn-link:hover{border-color:var(--accent)}
.pn-kpi .l{display:flex;justify-content:space-between;gap:6px}
.pn-kpi .l .pn-chev{font-size:16px;line-height:.8}
.pn-kpi.pn-larga{grid-column:1/-1}
.pn-down{color:var(--danger)}
.pn-sech{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pn-mais{font-size:13px;font-weight:600;color:var(--accent);white-space:nowrap}
.pn-alertas{display:flex;flex-direction:column;gap:8px}
.pn-alerta{display:flex;gap:10px;align-items:center;border-radius:14px;padding:11px 12px;background:#FFF6E0;border:1px solid #F1D48A}
.pn-alerta.alto{background:#FDE7E5;border-color:#F3B9B3}
.pn-alerta .ic{flex:0 0 24px;height:24px;border-radius:50%;display:grid;place-items:center;font:800 14px/1 var(--body);color:#fff;background:#B7791F}
.pn-alerta.alto .ic{background:var(--danger)}
.pn-alerta .pn-main b{font-size:14px}
.pn-funil{display:flex;flex-direction:column;gap:12px}
.pn-fl{display:flex;justify-content:space-between;gap:8px;font-size:14px}
.pn-fl span{color:var(--ink-3);font-weight:600;white-space:nowrap}
.pn-fl em{font-style:normal;color:var(--danger);margin-left:4px}
.pn-ft{height:10px;border-radius:999px;background:var(--surface-2);margin-top:5px;overflow:hidden}
.pn-ft i{display:block;height:100%;border-radius:999px;background:var(--accent)}
.pn-ft.alto i{background:var(--danger)}
.pn-fo{font-size:12px;color:var(--ink-3);margin-top:3px}
.pn-filtros a{font:600 12px/1 var(--body);padding:7px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);text-decoration:none}
.pn-filtros a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pn-per{gap:12px}
.pn-datas{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pn-datas label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--ink-3);min-width:0}
.pn-datas input{border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:var(--surface);color:var(--ink);font:500 15px/1.2 var(--body);min-width:0;width:100%}
.pn-agr{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:600;color:var(--ink-3)}
.pn-seg{display:flex;background:var(--surface-2);border-radius:10px;padding:3px;gap:2px}
.pn-seg button{border:0;background:none;padding:6px 12px;border-radius:8px;font:600 13px/1 var(--body);color:var(--ink-2)}
.pn-seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.12)}
.pn-bar.fino{gap:1px}
.pn-bar.fino i{border-radius:1px 1px 0 0}
.pn-bar i.zero{background:var(--line);opacity:1}
.pn-dets{display:flex;flex-direction:column}
.pn-det,.pn-row{border-top:1px solid var(--line)}
.pn-dets>:first-child{border-top:0}
.pn-det summary,.pn-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;font-size:14px;cursor:pointer;list-style:none}
.pn-row{cursor:default}
.pn-det summary::-webkit-details-marker{display:none}
.pn-det summary::after{content:"›";color:var(--ink-3);font-size:18px;transition:transform .15s;margin-left:-4px}
.pn-det[open] summary::after{transform:rotate(90deg)}
.pn-det summary span,.pn-row span{flex:1}
.pn-det summary b,.pn-row b{text-align:right;font-size:15px}
.pn-det summary b small{display:block;font-weight:500;font-size:12px;color:var(--ink-3)}
.pn-det>.pn-list,.pn-det>.pn-dl{padding:0 0 12px}
.pn-det>.pn-list li:first-child{border-top:1px solid var(--line);padding-top:11px}
.pn-h4{margin:4px 0 0;font-size:13px;color:var(--ink-3)}
.pn-csv{flex:0 0 auto}
.pn-aviso{margin:0;font-size:13px;color:var(--ink-2);background:var(--surface-2);border-radius:10px;padding:9px 11px}
.painelbtn{background:var(--ink);color:#fff;border-color:var(--ink);text-decoration:none}
/* Roteiro aberto pelo painel (?equipe=1): faixa roxa no topo, só leitura */
.pn-ro{position:sticky;top:0;z-index:20;background:var(--trans);color:#fff;font:600 13px/1.35 var(--body);padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;margin:calc(-20px - env(safe-area-inset-top,0px)) -16px 12px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.pn-ro a{background:#fff;color:var(--trans);border-radius:8px;padding:6px 10px;font-weight:700;font-size:12px;flex:0 0 auto;text-decoration:none}

/* Tela do app instalado pelo endereço antigo: "Agora somos Viaje Pronto" (05/10/2026) */
.mudou img{border-radius:16px}
.mudou .btn.big{justify-content:center}
.mudou + .guia{margin-top:14px}
.mudou + .guia .tit{font-size:20px}
.mudou-passos{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}

/* Aviso "Baixe o app" (06/10/2026, aviso-app.js): janela que sobe de baixo, no celular pelo navegador */
.aviso-app{position:fixed;inset:0;z-index:60}
.aviso-fundo{position:absolute;inset:0;background:rgba(21,32,43,.45);opacity:0;transition:opacity .25s}
.aviso-folha{position:absolute;left:0;right:0;bottom:0;max-width:520px;margin:0 auto;background:var(--surface);border-radius:22px 22px 0 0;padding:14px 20px calc(22px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;transform:translateY(100%);transition:transform .25s ease-out}
.aviso-app.aberto .aviso-fundo{opacity:1}
.aviso-app.aberto .aviso-folha{transform:none}
.aviso-alca{width:36px;height:4px;border-radius:2px;background:var(--line);margin-bottom:8px}
.aviso-folha img{border-radius:14px}
.aviso-folha h2{font:800 20px/1.25 var(--display);margin:4px 0 0;text-wrap:balance}
.aviso-folha p{margin:0 0 6px;color:var(--ink-2);font-size:14.5px}
.aviso-folha .btn.big{width:100%;justify-content:center}
.aviso-folha .lnk{color:var(--ink-2);font-weight:500;padding:8px}
