/* Tipos de letra alojados localmente (sem pedidos a servidores externos). Licença OFL em assets/fonts. */
@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/atkinson-hyperlegible-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/atkinson-hyperlegible-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:200 800;font-display:swap;src:url(fonts/bricolage-grotesque-latin-wght-normal.woff2) format("woff2")}
:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  --bg:#F1F4FA; --surface:#FFFFFF; --surface-2:#E8EDF7; --ink:#0F1B3D; --ink-2:#4B5778; --line:#D3DBEB;
  --cobalt:#1D3FA6; --cobalt-ink:#FFFFFF; --cobalt-soft:#E2E9FB; --cobalt-text:#1D3FA6;
  --amber:#FFB703; --amber-ink:#231A00; --amber-soft:#FFF0C7; --amber-text:#7A5200;
  --ok:#17764D; --ok-soft:#DCF2E7; --err:#B3261E; --err-soft:#FBE4E2;
  --hero:#1D3FA6; --hero-ink:#FFFFFF;
  --display:"Bricolage Grotesque","Trebuchet MS","Segoe UI",system-ui,sans-serif;
  --body:"Atkinson Hyperlegible","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --r:14px; --r-sm:10px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0A1024; --surface:#121A36; --surface-2:#1B2548; --ink:#EAF0FF; --ink-2:#A7B3D6; --line:#2B3762;
    --cobalt:#8FA9FF; --cobalt-ink:#0A1024; --cobalt-soft:#1C2858; --cobalt-text:#A9BDFF;
    --amber:#FFB703; --amber-ink:#231A00; --amber-soft:#3B2F08; --amber-text:#FFD466;
    --ok:#5DD3A0; --ok-soft:#10301F; --err:#FF8F86; --err-soft:#3C1613;
    --hero:#16307F; --hero-ink:#FFFFFF;
  }
}
:root[data-theme="dark"]{
  --bg:#0A1024; --surface:#121A36; --surface-2:#1B2548; --ink:#EAF0FF; --ink-2:#A7B3D6; --line:#2B3762;
  --cobalt:#8FA9FF; --cobalt-ink:#0A1024; --cobalt-soft:#1C2858; --cobalt-text:#A9BDFF;
  --amber:#FFB703; --amber-ink:#231A00; --amber-soft:#3B2F08; --amber-text:#FFD466;
  --ok:#5DD3A0; --ok-soft:#10301F; --err:#FF8F86; --err-soft:#3C1613;
  --hero:#16307F; --hero-ink:#FFFFFF;
}
*,*::before,*::after{box-sizing:border-box}
html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%}
body{height:100%;margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.5 var(--body);overflow-x:hidden}
h1,h2,h3,p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
img{max-width:100%}
a{color:var(--cobalt-text);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
[hidden]{display:none!important}

/* layout */
.wrap{max-width:34rem;margin:0 auto;padding:0 1rem}
.wrap.wide{max-width:62rem}
#view{padding-bottom:6.5rem}
.stack>*+*{margin-top:1rem}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:.75rem;max-width:62rem;margin:0 auto;padding:.6rem 1rem}
.brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;font:800 1.375rem/1 var(--display);letter-spacing:-.02em;background:none;border:0;padding:.25rem 0;color:var(--ink)}
.brand svg{width:1.6rem;height:1.6rem;flex:none}
.seg{display:inline-flex;background:var(--surface-2);border-radius:999px;padding:3px}
.seg a{border:0;background:none;padding:.4rem .85rem;border-radius:999px;font-weight:700;font-size:.875rem;color:var(--ink-2);min-height:2.25rem}
.seg a[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(15,27,61,.18)}

/* bottom tabs */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.tabs-in{display:flex;max-width:34rem;margin:0 auto}
.tabs a{flex:1;text-decoration:none;padding:.55rem .25rem .6rem;font-size:.8125rem;font-weight:700;color:var(--ink-2);display:flex;flex-direction:column;align-items:center;gap:.2rem;min-height:3.5rem;position:relative}
.tabs a svg{width:1.4rem;height:1.4rem}
.tabs a.on{color:var(--cobalt-text)}
.tabs a.on::before{content:"";position:absolute;top:-1px;left:25%;right:25%;height:3px;background:var(--cobalt);border-radius:0 0 3px 3px}
.tabs .badge{position:absolute;top:.3rem;left:calc(50% + .55rem);background:var(--amber);color:var(--amber-ink);border-radius:999px;font-size:.6875rem;min-width:1.15rem;height:1.15rem;display:grid;place-items:center;padding:0 .25rem}

/* hero */
.hero{position:relative;background:var(--hero);color:var(--hero-ink);overflow:hidden;padding:2rem 0 5.5rem}
.hero-pat{position:absolute;inset:0;width:100%;height:100%;opacity:.16}
.hero .wrap{position:relative}
.hero h1{font:700 clamp(2.1rem,9.5vw,3.1rem)/1.02 var(--display);letter-spacing:-.03em;max-width:12ch}
.hero p{margin-top:.9rem;max-width:30ch;font-size:1.0625rem;opacity:.92}
.tiles{position:relative;margin-top:-4rem;display:grid;gap:.75rem}
.tile{text-decoration:none;display:grid;grid-template-columns:auto 1fr;column-gap:.9rem;row-gap:.15rem;align-items:center;text-align:left;border:0;border-radius:var(--r);padding:1.1rem 1.1rem 1.15rem;min-height:5.75rem}
.tile-ico{grid-row:1 / span 2;width:3rem;height:3rem}
.tile-t{font:700 1.3125rem/1.15 var(--display);letter-spacing:-.015em;align-self:end}
.tile-d{font-size:.9375rem;line-height:1.35;align-self:start}
.tile-urgent{background:var(--amber);color:var(--amber-ink);box-shadow:0 10px 24px -12px rgba(15,27,61,.55)}
.tile-normal{background:var(--surface);color:var(--ink);border:1.5px solid var(--line)}
.tile-normal .tile-d{color:var(--ink-2)}
.tile:active{transform:translateY(1px)}

.how{margin-top:2rem}
.how h2,.sect-h{font:700 1.25rem/1.2 var(--display);letter-spacing:-.01em}
.how ol{list-style:none;margin:.9rem 0 0;padding:0;display:grid;gap:.85rem}
.how li{display:grid;grid-template-columns:2.1rem 1fr;gap:.9rem;align-items:start}
.dia{width:1.9rem;height:1.9rem;margin:.25rem 0 0 .1rem;transform:rotate(45deg);border:1.5px solid var(--cobalt);border-radius:5px;display:grid;place-items:center}
.dia i{transform:rotate(-45deg);font:700 .95rem var(--display);font-style:normal;color:var(--cobalt-text)}
.how li b{display:block}
.how li div span{color:var(--ink-2);font-size:.9375rem}

/* step pages */
.step{padding-top:1rem}
.back{text-decoration:none;background:none;border:0;padding:.5rem .25rem .5rem 0;color:var(--cobalt-text);font-weight:700;display:inline-flex;align-items:center;gap:.3rem;min-height:2.75rem}
.back svg{width:1.1rem;height:1.1rem}
.step h2,.page-h{font:700 1.75rem/1.1 var(--display);letter-spacing:-.02em;margin-top:.25rem}
.lead{color:var(--ink-2);margin-top:.5rem}
.field{margin-top:1.25rem;border:0;padding:0;min-width:0}
.field>label,.field>.label,.field>legend{display:block;font-weight:700;margin-bottom:.4rem;padding:0}
.field .sub{font-weight:400;color:var(--ink-2)}
input[type=text],input[type=tel],input[type=email],input[type=password],input[type=time],input[type=number],input:not([type]),select,textarea{width:100%;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-sm);padding:.75rem .85rem;font-size:1rem;min-height:3rem}
textarea{resize:vertical;min-height:7.5rem;line-height:1.45}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--cobalt);box-shadow:0 0 0 3px var(--cobalt-soft)}
.err-msg{color:var(--err);font-size:.875rem;margin-top:.35rem;font-weight:700}
.hint{color:var(--ink-2);font-size:.875rem}
.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.row.between{justify-content:space-between}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.or{display:flex;align-items:center;gap:.75rem;color:var(--ink-2);font-size:.875rem;margin:.75rem 0}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1.5px solid transparent;border-radius:12px;padding:.7rem 1.1rem;font-weight:700;min-height:3rem;background:var(--surface-2);color:var(--ink);text-decoration:none;text-align:center}
.btn svg{width:1.2rem;height:1.2rem;flex:none}
.btn.block{display:flex;width:100%}
.btn.primary{background:var(--cobalt);color:var(--cobalt-ink)}
.btn.urgent{background:var(--amber);color:var(--amber-ink)}
.btn.ghost{background:transparent;border-color:var(--line)}
.btn.danger{background:transparent;border-color:var(--line);color:var(--err)}
.btn.sm{min-height:2.5rem;padding:.4rem .8rem;font-size:.9375rem;border-radius:10px}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.rec{background:var(--err-soft);border-color:var(--err);color:var(--err)}
.linkbtn{background:none;border:0;padding:0;color:var(--cobalt-text);font-weight:700;text-decoration:underline;text-underline-offset:3px}

.thumbs{display:flex;gap:.6rem;flex-wrap:wrap}
.thumb{position:relative;width:5.25rem;height:5.25rem;border-radius:var(--r-sm);overflow:hidden;background:var(--surface-2);border:1px solid var(--line)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb button{position:absolute;top:3px;right:3px;width:1.75rem;height:1.75rem;border-radius:50%;border:0;background:rgba(10,16,36,.78);color:#fff;font-size:1rem;line-height:1}
.thumb-add{display:grid;place-items:center;width:5.25rem;height:5.25rem;border-radius:var(--r-sm);border:1.5px dashed var(--line);color:var(--cobalt-text);font-weight:700;font-size:.8125rem;text-align:center;cursor:pointer;background:var(--surface)}
.thumb-add svg{width:1.5rem;height:1.5rem;display:block;margin:0 auto .15rem}
.photos-wide .thumb{width:8rem;height:8rem}

.note{border-radius:var(--r-sm);padding:.8rem .9rem;background:var(--surface-2);font-size:.9375rem}
.note b{display:block}
.note.amber{background:var(--amber-soft);color:var(--ink)}
.note.amber b{color:var(--amber-text)}
.note.ok{background:var(--ok-soft)}
.note.ok b{color:var(--ok)}
.note.err{background:var(--err-soft)}
.note.err b{color:var(--err)}
.note.cobalt{background:var(--cobalt-soft)}
.note .btn{margin-top:.6rem}

.chip{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.15rem .6rem;font-size:.8125rem;font-weight:700;background:var(--surface-2);color:var(--ink-2);white-space:nowrap}
.chip.u{background:var(--amber);color:var(--amber-ink)}
.chip.n{background:var(--cobalt-soft);color:var(--cobalt-text)}
.chip.ok{background:var(--ok-soft);color:var(--ok)}
.chip.wait{background:var(--amber-soft);color:var(--amber-text)}
.chip.err{background:var(--err-soft);color:var(--err)}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1rem}
.panel>h3,.h3{font:700 1.0625rem/1.25 var(--display);letter-spacing:-.005em}
.kv{display:grid;grid-template-columns:auto 1fr;gap:.3rem .9rem;margin:.6rem 0 0;font-size:.9375rem}
.kv dt{color:var(--ink-2)}
.kv dd{margin:0;overflow-wrap:anywhere}

/* quote */
.quote{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.q-head{padding:1rem 1rem .85rem;border-bottom:1px solid var(--line)}
.q-head h3{font:700 1.25rem/1.2 var(--display)}
.q-head p{color:var(--ink-2);font-size:.9375rem;margin-top:.3rem}
.q-spec{padding:.85rem 1rem;border-bottom:1px solid var(--line)}
.q-spec h4{margin:0;font:700 1.0625rem/1.2 var(--display);display:flex;justify-content:space-between;gap:1rem}
.q-sub{font-size:.8125rem;color:var(--ink-2);font-weight:700;margin:.7rem 0 .2rem}
.q-line{display:grid;grid-template-columns:1fr auto;gap:.15rem 1rem;padding:.3rem 0;font-size:.9375rem}
.q-line small{color:var(--ink-2);grid-column:1;font-size:.8125rem}
.q-line .v{grid-column:2;grid-row:1;font-variant-numeric:tabular-nums;white-space:nowrap}
.q-tot{padding:.85rem 1rem 1rem}
.q-tot div{display:flex;justify-content:space-between;gap:1rem;padding:.2rem 0;font-variant-numeric:tabular-nums}
.q-tot .grand{font:700 1.375rem/1.2 var(--display);padding-top:.55rem;margin-top:.4rem;border-top:1.5px solid var(--ink)}
.q-foot{padding:0 1rem 1rem;color:var(--ink-2);font-size:.875rem}
.q-foot ul{margin:.3rem 0 0;padding-left:1.1rem}

/* slots */
.slot-day{margin-top:1.25rem}
.slot-day h3{font:700 1rem/1.2 var(--display)}
.slot-day h3::first-letter,.cap1::first-letter{text-transform:uppercase}
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.25rem,1fr));gap:.5rem;margin-top:.5rem}
.slot{border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:.65rem .5rem;font-weight:700;min-height:3.25rem;font-variant-numeric:tabular-nums;display:flex;flex-direction:column;align-items:center;gap:.1rem}
.slot small{font-weight:400;color:var(--ink-2);font-size:.75rem}
.slot[aria-pressed="true"]{border-color:var(--cobalt);background:var(--cobalt-soft);color:var(--cobalt-text)}
.slot.u[aria-pressed="true"]{border-color:var(--amber-text);background:var(--amber);color:var(--amber-ink)}
.slot.u[aria-pressed="true"] small{color:var(--amber-ink)}

/* progress */
.ai-wait{text-align:center;padding:2.5rem 0 1rem}
.ai-tile{width:4.5rem;height:4.5rem;margin:0 auto 1.25rem;animation:spin 2.4s cubic-bezier(.6,0,.4,1) infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.ai-tile{animation:none}}
.ai-wait h2{font:700 1.5rem/1.15 var(--display)}

/* payment */
.pay-amount{font:800 2.25rem/1 var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.mbref{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;font-variant-numeric:tabular-nums;margin-top:.6rem}
.mbref dt{color:var(--ink-2)}
.mbref dd{margin:0;font-weight:700;letter-spacing:.04em}
.radio-cards{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.radio-cards button{border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:.8rem .6rem;font-weight:700;min-height:3.25rem}
.radio-cards button[aria-pressed="true"]{border-color:var(--cobalt);background:var(--cobalt-soft);color:var(--cobalt-text)}

/* lists */
.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.item{display:grid;grid-template-columns:1fr auto;gap:.2rem .75rem;width:100%;text-align:left;background:none;border:0;color:inherit;text-decoration:none;border-bottom:1px solid var(--line);padding:.85rem 1rem}
.item:last-child{border-bottom:0}
.item .t{font-weight:700;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}
.item .m{color:var(--ink-2);font-size:.875rem;grid-column:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item .r{grid-column:2;grid-row:1 / span 3;display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;justify-content:center;font-variant-numeric:tabular-nums}
.item .r b{font-family:var(--display)}
.empty{padding:1.5rem 1rem;text-align:center;color:var(--ink-2)}
.empty b{display:block;color:var(--ink);font-family:var(--display);font-size:1.0625rem;margin-bottom:.2rem}
.scroller{display:flex;gap:.4rem;overflow-x:auto;padding:.25rem 0 .5rem;scrollbar-width:none}
.scroller::-webkit-scrollbar{display:none}
.fchip{text-decoration:none;display:inline-flex;align-items:center;border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:.4rem .8rem;font-weight:700;font-size:.875rem;white-space:nowrap;min-height:2.5rem;color:var(--ink-2)}
.fchip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.fchip i{font-style:normal;opacity:.75;margin-left:.25rem}
.tracks{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:1rem 0 .5rem}
.tracks a{text-decoration:none;color:inherit;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:.7rem .75rem;text-align:left;font-weight:700;min-height:3.5rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.tracks a b{font:800 1.375rem/1 var(--display)}
.tracks a.on.tu{background:var(--amber);border-color:var(--amber);color:var(--amber-ink)}
.tracks a.on.tn{background:var(--cobalt);border-color:var(--cobalt);color:var(--cobalt-ink)}

/* admin detail */
.detail{display:grid;gap:1rem;margin-top:1rem}
@media (min-width:60rem){.detail{grid-template-columns:minmax(0,22rem) minmax(0,1fr);grid-template-rows:auto 1fr;align-items:start}.d-a{grid-column:1;grid-row:1}.d-b{grid-column:2;grid-row:1 / span 2}.d-c{grid-column:1;grid-row:2}}
.desc{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:.5rem}
.actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}

/* quote editor */
.qspec{border:1px solid var(--line);border-radius:var(--r-sm);padding:.75rem;margin-top:.75rem;background:var(--bg)}
.qspec-h{display:flex;gap:.5rem;align-items:center}
.qspec-h input{font-weight:700;font-family:var(--display)}
.qsub{font-size:.8125rem;font-weight:700;color:var(--ink-2);margin:.8rem 0 .35rem}
.qline{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:.5rem;margin-bottom:.5rem}
.qnums{display:flex;gap:.4rem;align-items:flex-end;margin-top:.4rem;flex-wrap:wrap}
.qnums label{flex:1 1 4.2rem;min-width:3.9rem;max-width:6.5rem}
.qnums label span,.qval span{display:block;font-size:.75rem;color:var(--ink-2);line-height:1.2}
.qnums input{padding:.45rem .5rem;min-height:2.5rem;font-variant-numeric:tabular-nums}
.qline>input{padding:.5rem .6rem;min-height:2.5rem}
.qres{display:flex;justify-content:flex-end;align-items:center;gap:1.1rem;margin-top:.45rem}
.qval{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.qval b{font-size:.9375rem}
.qval.cli b{color:var(--cobalt-text)}
.xbtn{flex:none;width:2.5rem;height:2.5rem;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--err);font-size:1.15rem;line-height:1}
.two-tot{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1rem}
.two-tot>div{border-radius:var(--r-sm);padding:.75rem .85rem;background:var(--surface-2)}
.two-tot>div.cli{background:var(--cobalt-soft)}
.two-tot span{display:block;font-size:.8125rem;color:var(--ink-2)}
.two-tot b{font:800 1.5rem/1.15 var(--display);font-variant-numeric:tabular-nums;display:block;margin-top:.1rem}
.two-tot .cli b{color:var(--cobalt-text)}
.tot-lines{margin-top:.6rem;font-size:.9375rem}
.tot-lines div{display:flex;justify-content:space-between;padding:.15rem 0;font-variant-numeric:tabular-nums}

/* agenda */
.daystrip{display:flex;gap:.4rem;overflow-x:auto;padding:.25rem 0 .6rem;margin-top:.75rem;scrollbar-width:none}
.daystrip::-webkit-scrollbar{display:none}
.day{text-decoration:none;color:inherit;flex:none;width:3.5rem;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:.45rem 0 .4rem;display:flex;flex-direction:column;align-items:center;gap:.05rem;min-height:4.4rem}
.day .dw{font-size:.75rem;color:var(--ink-2)}
.day .dn{font:700 1.25rem/1.1 var(--display)}
.day .dots{display:flex;gap:3px;height:7px;margin-top:.15rem}
.day .dots i{width:7px;height:7px;border-radius:2px;transform:rotate(45deg)}
.day .dots .du{background:var(--amber)}
.day .dots .dc{background:var(--cobalt)}
.day.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.day.on .dw{color:inherit;opacity:.8}
.ag-row{display:grid;grid-template-columns:auto 1fr;gap:.25rem .85rem;padding:.85rem 1rem;border-bottom:1px solid var(--line);align-items:center;border-left:5px solid var(--cobalt)}
.ag-row.u{border-left-color:var(--amber)}
.ag-row:last-child{border-bottom:0}
.ag-time{font:700 1.0625rem/1.2 var(--display);font-variant-numeric:tabular-nums;white-space:nowrap}
.ag-row .actions{grid-column:1 / -1;margin-top:.35rem}
.legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.875rem;color:var(--ink-2);margin-top:.5rem}
.legend i{display:inline-block;width:9px;height:9px;border-radius:2px;transform:rotate(45deg);margin-right:.45rem}

/* switch */
.switch{display:flex;align-items:center;gap:.75rem;font-weight:700;cursor:pointer}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch .tr{flex:none;width:3.1rem;height:1.85rem;border-radius:999px;background:var(--line);position:relative;transition:background .15s}
.switch .tr::after{content:"";position:absolute;top:3px;left:3px;width:calc(1.85rem - 6px);height:calc(1.85rem - 6px);border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.3)}
.switch input:checked+.tr{background:var(--ok)}
.switch input:checked+.tr::after{transform:translateX(1.25rem)}
.switch input:focus-visible+.tr{outline:3px solid var(--amber);outline-offset:2px}

.toast{position:fixed;left:1rem;right:1rem;bottom:calc(5rem + env(safe-area-inset-bottom,0px));z-index:50;max-width:30rem;margin:0 auto;background:var(--ink);color:var(--bg);padding:.8rem 1rem;border-radius:12px;font-weight:700;text-align:center}
.loading{display:grid;place-items:center;height:100%;color:var(--ink-2);text-align:center;padding:2rem}
.banner{background:var(--amber-soft);color:var(--ink);font-size:.875rem;padding:.5rem 1rem;text-align:center}
.mt0{margin-top:0}.mt1{margin-top:.5rem}.mt2{margin-top:1rem}.mt3{margin-top:1.5rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- acrescentos da versão PHP ---------- */
.top-in .row{flex-wrap:nowrap}
.top form{margin:0}
.flash{margin-top:1rem}
.foot{margin:2.5rem auto 0;text-align:center;font-size:.875rem;color:var(--ink-2)}
.check{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;margin-top:1.25rem;cursor:pointer}
.check input{width:1.4rem;height:1.4rem;margin:.1rem 0 0;accent-color:var(--cobalt)}
.code-input{font:700 1.75rem/1.2 var(--display);letter-spacing:.35em;text-align:center}
.policy h3{font:700 1.1875rem/1.25 var(--display);margin-top:1.5rem}
.policy p{margin-top:.5rem;max-width:68ch}
/* vagas: botões de rádio com aspeto de botão */
.slot{position:relative;cursor:pointer}
.slot input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.slot:has(input:checked){border-color:var(--cobalt);background:var(--cobalt-soft);color:var(--cobalt-text)}
.slot.u:has(input:checked){border-color:var(--amber-text);background:var(--amber);color:var(--amber-ink)}
.slot.u:has(input:checked) small{color:var(--amber-ink)}
.slot:has(input:focus-visible){outline:3px solid var(--amber);outline-offset:2px}
.radio-cards label{position:relative;display:grid;place-items:center;text-align:center;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:.8rem .6rem;font-weight:700;min-height:3.25rem;cursor:pointer}
.radio-cards label input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.radio-cards label:has(input:checked){border-color:var(--cobalt);background:var(--cobalt-soft);color:var(--cobalt-text)}
.radio-cards label:has(input:focus-visible){outline:3px solid var(--amber);outline-offset:2px}
.qline label span{display:block;font-size:.75rem;color:var(--ink-2);line-height:1.2}
.qline .grid2{margin-bottom:.4rem;gap:.4rem}
.qline .grid2 input,.qline .grid2 select{padding:.45rem .5rem;min-height:2.5rem}
.users .item{grid-template-columns:1fr}
.inline-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:flex-end;margin-top:.5rem}
.inline-form input{flex:1 1 12rem;min-height:2.5rem;padding:.45rem .6rem}
.tabs-in.five a{font-size:.6875rem}
@media (min-width:40rem){.tabs-in.five{max-width:44rem}.tabs-in.five a{font-size:.8125rem}}
.okline{color:var(--ok);font-weight:700}
.note form{margin:0}
.lg-u{background:var(--amber)}.lg-n{background:var(--cobalt)}
textarea.short{min-height:4.5rem}
.step h2.mt0{margin:0}
.users .item{cursor:default}
.ag-row .actions form{margin:0}
.actions form{margin:0}
.btn.block{box-sizing:border-box}
a.thumb{display:block}
