:root{--ink:#1c3326;--ink2:#2f5a3f;--gold:#8a6d3b;--paper:#f4eee2;--card:#fffdf8;--line:#ddd3bd;--sand:#ebe2d0;--muted:#6b6a5b;--ok:#2e7d4f;--err:#a3342b;
--serif:'Newsreader',Georgia,serif;--sans:'Source Sans 3',system-ui,sans-serif;--pad:clamp(14px,3.2vw,40px)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.55 var(--sans)}
a{color:var(--ink2)}
img{max-width:100%}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;margin:0 0 .5em}
h1{font-size:clamp(1.6rem,4vw,2.2rem)}h2{font-size:clamp(1.25rem,2.6vw,1.5rem)}
code{background:var(--sand);padding:1px 6px;border-radius:4px;word-break:break-all}
[hidden]{display:none!important}

/* cabeçalho e rodapé */
.top{background:var(--ink);color:#fff}
.bar{max-width:1560px;margin:0 auto;padding:12px var(--pad);display:flex;justify-content:space-between;align-items:center;gap:8px 20px;flex-wrap:wrap}
.brand{color:#fff;text-decoration:none;display:flex;align-items:baseline;gap:12px}
.brand b{font:600 24px var(--serif);letter-spacing:.06em}
.brand span{font-size:14px;opacity:.8}
.site{color:#fff;font-size:15px;opacity:.9;text-decoration:none;padding:6px 0}
.site:hover{text-decoration:underline}
#nav{display:flex;gap:2px 20px;flex-wrap:wrap}
.foot{background:var(--ink);color:#dfe8dd;text-align:center;padding:32px var(--pad);font-size:14px}
.foot p{margin:4px 0}.foot a{color:#fff}
.soli{font:italic 22px var(--serif);color:#fff}

/* páginas públicas */
.hero{background-size:cover;background-position:center;color:#fff}
.hero-in{max-width:1560px;margin:0 auto;padding:clamp(40px,8vw,96px) var(--pad) clamp(32px,6vw,64px)}
.hero h1{font-size:clamp(2rem,6vw,3.6rem);max-width:22ch;margin-bottom:.3em}
.hero p{margin:0;font-size:clamp(16px,2.2vw,19px);opacity:.95}
.wrap{max-width:1560px;margin:0 auto;padding:clamp(20px,3vw,40px) var(--pad) 56px}
.grid{display:grid;gap:clamp(20px,3vw,44px)}
@media(min-width:960px){.grid{grid-template-columns:minmax(0,1fr) minmax(380px,480px);align-items:start}.sticky{position:sticky;top:20px}}
.info dl{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:0 0 24px}
.info dt{color:var(--gold);font-weight:600}.info dd{margin:0}
.desc{font:19px/1.7 var(--serif);white-space:pre-line;max-width:78ch}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:clamp(16px,2.6vw,28px)}
.narrow{max-width:600px;margin-left:auto;margin-right:auto}
fieldset{border:0;padding:0;margin:0 0 22px;min-width:0}
legend{font:600 20px var(--serif);padding:0;margin-bottom:10px}
.ticket{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:10px;background:#fff}
.ticket.on,.roles .ticket:has(input:checked){border-color:var(--ink2);box-shadow:0 0 0 2px rgba(47,90,63,.25);background:#f6faf5}
.ticket.off{opacity:.5}
.roles .ticket{cursor:pointer}
.ticket input{accent-color:var(--ink2);margin-right:10px}
.ticket small{display:block;color:var(--muted)}
.t-price{font-weight:600;white-space:nowrap}

/* formulários */
.field{margin-bottom:14px;min-width:0}
.field>label,.label-row>label{display:block;font-weight:600;font-size:15px;margin-bottom:4px}
.in,select.in,textarea.in{width:100%;border:1px solid #c9c0a8;border-radius:8px;padding:11px 12px;font:inherit;font-size:16px;background:#fff;color:inherit;min-width:0}
.in:focus{outline:2px solid var(--ink2);outline-offset:1px;border-color:var(--ink2)}
.chk{display:flex;gap:8px;align-items:center;font-weight:400!important}
.btn{display:block;width:100%;text-align:center;background:var(--ink2);color:#fff;border:0;border-radius:10px;padding:13px 16px;min-height:46px;font:600 17px var(--sans);cursor:pointer;text-decoration:none}
.btn:hover{background:var(--ink)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--ink2);border:1px solid var(--ink2)}
.btn.ghost:hover{background:var(--sand)}
.btn.sm{width:auto;display:inline-block;padding:8px 16px;min-height:40px;font-size:15px}
.btn.danger{background:var(--err)}
.btn:focus-visible,.in:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.alert{border-color:#e6bcb7;background:#fdf4f3}.alert h1{color:var(--err)}
.summary{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;margin:0 0 20px}
.summary dt{color:var(--muted)}.summary dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.steps{display:flex;list-style:none;padding:0;margin:0 0 24px;gap:6px;font-size:14px;color:var(--muted)}
.steps li{flex:1;border-top:3px solid var(--line);padding-top:6px}
.steps .done,.steps .now{border-color:var(--ink2);color:var(--ink)}.steps .now{font-weight:600}
.pay{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}
.pay img{display:block;margin:8px auto}.pay textarea{font:13px monospace;resize:none}.pay .btn{margin-top:8px}
.muted{color:var(--muted);font-size:14px}.center{text-align:center}
.ok-mark{width:56px;height:56px;border-radius:50%;background:var(--ok);color:#fff;font-size:30px;display:grid;place-items:center;margin:0 auto 14px}

/* check-in */
#app{max-width:640px;margin:0 auto}
#login:not(:empty){padding:0}
.reader{width:100%;max-width:460px;margin:0 auto 16px}
.res{border-radius:12px;padding:20px;margin:16px 0;color:#fff;text-align:center}
.res h2{margin:0 0 4px;color:#fff;font-size:clamp(1.5rem,6vw,1.9rem)}.res p{margin:2px 0}
.good{background:var(--ok)}.warn{background:#a86a12}.bad{background:var(--err)}
.hit{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line);flex-wrap:wrap}

/* painel */
.adm{max-width:1560px;margin:0 auto;padding:clamp(18px,3vw,36px) var(--pad) 60px}
.bar2{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.bar2 h1{margin:0}
.tbl-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:12px}
table{border-collapse:collapse;width:100%;font-size:15px}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600;font-size:13px;white-space:nowrap}
tr:last-child td{border-bottom:0}
td small{display:block;color:var(--muted)}
.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:13px;font-weight:600;background:var(--sand)}
.badge.published,.badge.paid,.badge.free{background:#dcefe2;color:var(--ok)}
.badge.pending,.badge.draft{background:#f6ead0;color:#8a6212}
.badge.cancelled,.badge.closed{background:#f4dcd9;color:var(--err)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:16px 0 22px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.tabs a{flex:0 0 auto}
.tabs a{padding:11px 16px;text-decoration:none;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}
.tabs a.on{color:var(--ink);border-color:var(--gold);font-weight:600}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:12px;margin-bottom:24px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}
.stat b{display:block;font:600 clamp(22px,3vw,30px) var(--serif)}.stat span{color:var(--muted);font-size:14px}
.form2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:0 18px}.form2 .wide{grid-column:1/-1}
.tcard,.frow{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px}
.frow{display:grid;grid-template-columns:2fr 1.2fr auto 2fr auto;gap:10px;align-items:center}
.row-actions{display:flex;gap:6px;flex-wrap:wrap}.row-actions .btn{font-size:13px;padding:6px 10px;min-height:36px}
.dayrow{display:grid;grid-template-columns:90px 1fr 40px;gap:10px;align-items:center;font-size:14px;margin:4px 0}
.dayrow i{display:block;height:14px;background:var(--ink2);border-radius:3px}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 20px;border-radius:10px;z-index:9;max-width:92vw}
.toast.bad{background:var(--err)}
.linkbox{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px 0 0;min-width:0}.linkbox a{overflow-wrap:anywhere}
details summary{cursor:pointer;color:var(--muted);font-size:13px}

/* tablets */
@media(max-width:1100px){.frow{grid-template-columns:1fr 1fr}.frow .row-actions{grid-column:1/-1}}
/* smartphones */
@media(max-width:760px){
  body{font-size:16px}
  .brand span{display:none}
  #nav{width:100%;overflow-x:auto;flex-wrap:nowrap;gap:18px;padding-bottom:4px}#nav a{white-space:nowrap}
  .frow{grid-template-columns:1fr}
  .dayrow{grid-template-columns:70px 1fr 32px}
  .tbl-wrap{background:transparent;border:0;overflow:visible}
  table,tbody,tr,td{display:block;width:100%}
  thead{position:absolute;left:-9999px}
  tr{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:6px 2px}
  td{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;border:0;padding:8px 14px;text-align:right}
  td::before{content:attr(data-l);color:var(--muted);font-weight:600;font-size:13px;text-align:left;flex:0 0 34%}
  td:first-child{display:block;text-align:left;font-size:16px}td:first-child::before{display:none}
  td .row-actions{justify-content:flex-end}
  .steps{font-size:12px}
  .btn.sm{min-height:44px}
  .toast{bottom:14px;width:92vw;text-align:center}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.brand{align-items:center}
.brand img{height:clamp(46px,7vw,64px);width:auto;display:block}
.foot-logo{display:block;height:72px;width:auto;margin:0 auto 12px}

/* ===== polimento ===== */
.wrap,.adm{animation:fadein .45s ease both}
@keyframes fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.site.on{opacity:1;text-decoration:underline;text-underline-offset:7px;text-decoration-color:var(--gold);text-decoration-thickness:2px}
.btn{transition:background .15s,transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(28,51,38,.18)}
.btn:active{transform:none;box-shadow:none}
.intro{max-width:70ch;margin:0 auto 26px;text-align:center}
.ev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:18px}
.ev-card{display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s,border-color .2s}
.ev-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(28,51,38,.13);border-color:var(--ink2)}
.ev-card h2{margin:0 0 6px}
.ev-card p{display:flex;gap:8px;align-items:flex-start;margin:0;color:var(--muted)}
.ev-card svg,.facts svg{flex:none;color:var(--gold);margin-top:3px}
.ev-go{margin-top:auto;padding-top:14px;font-weight:600;color:var(--ink2)}
.facts{list-style:none;padding:0;margin:0 0 22px;display:grid;gap:10px}
.facts li{display:flex;gap:10px;align-items:flex-start;font-size:1.05rem}
.low{color:#a86a12!important;font-weight:600}
.ok-mark{animation:pop .55s cubic-bezier(.2,1.4,.4,1) both}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}

/* ===== estatísticas ===== */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:14px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 18px 16px 22px;position:relative;overflow:hidden}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--line)}
.kpi.main{background:linear-gradient(135deg,#1c3326,#2f5a3f);color:#fff;border-color:transparent}
.kpi.main::before{background:var(--gold)}.kpi.main .kpi-l,.kpi.main small{color:#d9e6dc}
.kpi.warn::before{background:#c9b27a}.kpi.ok::before{background:var(--ok)}
.kpi-l{display:block;color:var(--muted);font-size:14px}
.kpi-v{display:block;font:600 clamp(26px,3.2vw,36px)/1.1 var(--serif);margin:4px 0;font-variant-numeric:tabular-nums}
.kpi small{color:var(--muted)}
.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:16px}
@media(min-width:1100px){.chart-card.span2{grid-column:span 2}}
.chart-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:clamp(14px,2vw,22px);min-width:0}
.chart-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start;margin-bottom:10px}
.chart-head h3{margin:0 0 2px;font-size:1.25rem}.chart-head p{margin:0}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:99px;padding:6px 14px;font:600 14px var(--sans);cursor:pointer;min-height:38px}
.chip.on{background:var(--ink2);border-color:var(--ink2);color:#fff}
.chart{position:relative}
.chart svg,.donut,.mini{display:block;width:100%;height:auto}
svg .gl{stroke:#e9e1cf;stroke-width:1}
svg .ax{fill:var(--muted);font:12px var(--sans)}svg .ax.gold{fill:var(--gold)}svg .ax.val{fill:var(--ink);font-weight:600}
svg .line{stroke:#8a6d3b;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
svg .guide{stroke:var(--ink2);stroke-width:1;stroke-dasharray:4 4}
svg .dot{fill:#fff;stroke:#8a6d3b;stroke-width:3}
.col{transform-box:fill-box;transform-origin:50% 100%;animation:grow .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes grow{from{transform:scaleY(0)}}
.no-anim .col{animation:none}
.arc{transition:stroke-dasharray 1s cubic-bezier(.2,.8,.2,1)}.no-anim .arc{transition:none}
.tip{position:absolute;pointer-events:none;background:var(--ink);color:#fff;border-radius:10px;padding:10px 12px;font-size:13px;display:grid;gap:2px;z-index:3;box-shadow:0 8px 24px rgba(0,0,0,.22);white-space:nowrap}
.tip b{font:600 15px var(--serif)}.tip b::first-letter{text-transform:uppercase}
.legend{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px;font-size:14px}
.legend li{display:flex;align-items:center;gap:10px}
.legend i{width:12px;height:12px;border-radius:4px;flex:none}.legend i.ln{height:3px;border-radius:2px;background:#8a6d3b;width:18px}
.legend b{margin-left:auto}.legend small{color:var(--muted)}
.legend.row{display:flex;flex-wrap:wrap;gap:6px 22px}.legend.row b{margin-left:4px}
.donut-wrap{display:grid;grid-template-columns:minmax(140px,190px) 1fr;gap:18px;align-items:center}
@media(max-width:560px){.donut-wrap{grid-template-columns:1fr}.donut{max-width:210px;margin:0 auto}}
.donut-v{font:600 34px var(--serif);fill:var(--ink)}.donut-l{font:13px var(--sans);fill:var(--muted)}
.ring-row{display:flex;gap:18px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.ring{width:128px;flex:none}
.ring-v{font:600 28px var(--serif);fill:var(--ink)}.big{font:600 26px var(--serif)}
.chart-card h4{font:600 14px var(--sans);margin:14px 0 4px;color:var(--muted)}
.stack{display:flex;height:24px;border-radius:99px;overflow:hidden;background:var(--sand)}.stack i{display:block;transition:width .8s}
.hbars{list-style:none;padding:0;margin:0;display:grid;gap:16px}
.hb-top{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.hb-top small{display:block;color:var(--muted)}.hb-top em{font-style:normal;font-weight:600;white-space:nowrap}
.hb-track{height:10px;border-radius:99px;background:var(--sand);overflow:hidden;margin-top:6px}
.hb-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#2f5a3f,#6f9d7f);transition:width 1s cubic-bezier(.2,.8,.2,1)}
.hb-note{color:var(--muted);font-size:13px}
.chart-empty{color:var(--muted);text-align:center;padding:26px 8px;margin:0}
.live{display:inline-flex;align-items:center;gap:6px;color:var(--ok);font-weight:600;font-size:14px}
.skel{display:grid;gap:14px}.skel i{display:block;height:110px;border-radius:14px;background:linear-gradient(100deg,#ebe2d0 30%,#f6f0e2 50%,#ebe2d0 70%);background-size:200% 100%;animation:shimmer 1.2s infinite linear}
@keyframes shimmer{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.wrap,.adm,.ok-mark,.skel i,.col{animation:none!important}.arc,.hb-track i,.stack i{transition:none!important}}

/* rodapé sempre no fim da tela; botões soltos em células não esticam */
body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
.wrap,.adm{flex:1 0 auto;width:100%}
.top,.foot{flex:none}
td .btn{width:auto;display:inline-block}
.roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px;margin:8px 0 16px}
.roles .ticket{margin:0}
.legend b{white-space:nowrap}
.donut-wrap .legend li{display:grid;grid-template-columns:12px 1fr auto;column-gap:10px;align-items:center}
.donut-wrap .legend small{grid-column:2/-1;margin-top:-4px}
@media(max-width:760px){#nav{flex-wrap:wrap;overflow:visible;gap:2px 16px}}

/* ===== Moedah: cabeçalho claro com a logo ===== */
.top{background:var(--card);color:var(--ink);border-bottom:1px solid var(--line)}
.brand{color:var(--ink);gap:12px;align-items:center}
.brand img{height:40px;width:auto}
.brand .brand-t{display:flex;flex-direction:column;line-height:1.1;opacity:1;font-size:inherit}
.brand-t b{font:600 26px var(--serif);color:var(--ink)}
.brand-t small{font-size:12.5px;color:var(--muted);margin-top:3px}
.site{color:var(--ink2);opacity:1}
@media(max-width:760px){.brand .brand-t{display:flex}.brand-t small{display:none}.brand-t b{font-size:22px}}

/* ===== página do evento ===== */
.ev-h1{font-size:clamp(1.8rem,4vw,2.7rem);margin:0 0 10px}
.evbanner{display:block;width:100%;height:auto;aspect-ratio:1920/1260;object-fit:cover;border-radius:16px;margin:14px 0 20px;box-shadow:0 14px 40px rgba(28,51,38,.18);background:var(--sand)}
.tags{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 8px}
.tag{background:var(--sand);color:var(--ink);border-radius:99px;padding:4px 12px;font-size:14px;font-weight:600}
.rating{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:6px;color:#fff;font:700 14px var(--sans)}
.r-L{background:#3f9b4a}.r-10{background:#2b6cb0}.r-12{background:#f4c13d;color:#1c1c1c}.r-14{background:#e9762b}.r-16{background:#d93636}.r-18{background:#1c1c1c}
.ev-card{padding:0;overflow:hidden;gap:0}
.ev-thumb{width:100%;aspect-ratio:1920/1260;object-fit:cover;display:block;background:var(--sand)}
.ev-body{padding:18px 22px 22px;display:flex;flex-direction:column;gap:6px;flex:1}
.coupon-row{display:flex;gap:8px;align-items:stretch}.coupon-row .in{text-transform:uppercase}.coupon-row .btn{width:auto;flex:none}
.muted.ok{color:var(--ok);font-weight:600}.muted.err{color:var(--err)}
.total{background:var(--sand);border-radius:12px;padding:14px 16px;margin:0 0 16px;display:grid;gap:6px}
.total>div{display:flex;justify-content:space-between;gap:12px}
.t-final{font:600 1.3rem var(--serif);border-top:1px solid var(--line);padding-top:8px;margin-top:2px}
fieldset.fgroup{border:0;padding:0;margin:0 0 22px;min-width:0}

/* ===== painel: menu lateral do evento ===== */
.evlayout{display:grid;gap:22px;margin-top:8px;grid-template-columns:minmax(0,1fr)}
@media(min-width:1024px){.evlayout{grid-template-columns:250px minmax(0,1fr);align-items:start}.side{position:sticky;top:16px}}
.side{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:2px;min-width:0}
.side h4{margin:14px 10px 4px;font:600 12px var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.side h4:first-child{margin-top:4px}
.side a{display:block;padding:9px 12px;border-radius:9px;color:var(--ink);text-decoration:none;font-size:15.5px}
.side a:hover{background:var(--sand)}
.side a.on{background:var(--ink2);color:#fff;font-weight:600}
.sidewrap{display:contents}.sidearrow{display:none}
@media(max-width:1023px){.sidewrap{display:block;position:relative;min-width:0}.sidearrow{display:flex;position:absolute;top:1px;bottom:1px;width:36px;align-items:center;border:0;margin:0;cursor:pointer;font:700 26px/1 var(--sans);color:var(--ink2);opacity:0;pointer-events:none;transition:opacity .15s}.sidearrow.l{left:1px;justify-content:flex-start;padding:0 0 3px 8px;border-radius:13px 0 0 13px;background:linear-gradient(to right,var(--card) 50%,rgba(255,253,248,0))}.sidearrow.r{right:1px;justify-content:flex-end;padding:0 8px 3px 0;border-radius:0 13px 13px 0;background:linear-gradient(to left,var(--card) 50%,rgba(255,253,248,0))}.sidewrap.more-l .sidearrow.l,.sidewrap.more-r .sidearrow.r{opacity:1;pointer-events:auto}}
@media(max-width:1023px){.side{flex-direction:row;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain;padding:6px;gap:4px;scrollbar-width:none}.side::-webkit-scrollbar{display:none}.side h4{display:none}.side a{white-space:nowrap;flex:0 0 auto;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}}
.evcontent{min-width:0}
.evhead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.evhead h1{margin:0}

/* ===== painel: banner, classificação, campos, cupons ===== */
.banner-box{border:2px dashed #cfc5ad;border-radius:14px;padding:14px;background:#fff;text-align:center}
.banner-box img{max-width:100%;border-radius:10px;display:block;margin:0 auto 12px;max-height:340px;object-fit:cover}
.banner-box .row-actions{justify-content:center}
.rate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:8px}
.rate{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;cursor:pointer}
.rate:has(input:checked){border-color:var(--ink2);box-shadow:0 0 0 2px rgba(47,90,63,.25);background:#f6faf5}
.rate .rating{flex:none}.rate small{display:block;color:var(--muted);font-size:13px}.rate input{accent-color:var(--ink2);flex:none}
.qrbox{display:flex;gap:22px;flex-wrap:wrap;align-items:center}
.qrbox img{width:180px;height:180px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:6px}
.fcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px;display:grid;gap:12px}
.fline{display:grid;grid-template-columns:2fr 1.2fr auto auto;gap:10px;align-items:center}
.fline2{display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:12px;align-items:start}
.ftick{display:flex;flex-wrap:wrap;gap:6px 16px}
.ftick .chk{font-size:15px}
@media(max-width:900px){.fline,.fline2{grid-template-columns:1fr 1fr}.fline .row-actions{grid-column:1/-1}}
@media(max-width:560px){.fline,.fline2{grid-template-columns:1fr}}
.cp{display:grid;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px}
.cp-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.cp-code{font:600 20px var(--serif);letter-spacing:.04em}
.sumtbl td:not(:first-child),.sumtbl th:not(:first-child){text-align:right;white-space:nowrap}
.sumtbl tfoot td{font-weight:600;border-top:2px solid var(--line)}

.sumtbl tr.sumtotal td{background:#f4eedd;font-weight:600;border-top:2px solid var(--line)}
.chart-card.wide{margin-top:16px}

td>div{min-width:0;overflow-wrap:anywhere}

.row-actions .btn{width:auto;flex:none}
td>div{overflow-wrap:break-word}
@media(min-width:761px){td>div{min-width:170px}}

.ev-thumb.ph{display:grid;place-items:center;font-size:clamp(44px,8vw,64px);color:#e8f0e6;background:linear-gradient(135deg,#1c3326,#2f5a3f 60%,#8a6d3b)}
@media(max-width:600px){
  .stats,.kpis{grid-template-columns:1fr 1fr;gap:10px}
  .kpis .kpi.main{grid-column:1/-1}
  .kpi{padding:14px 12px 12px 18px}.kpi-v{font-size:clamp(20px,6.4vw,26px)}
  .stat{padding:12px}.stat b{font-size:clamp(18px,5.6vw,24px)}
}

/* ===== compra com vários ingressos, links, política e prazo ===== */
.t-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.qty button{width:42px;height:42px;border:0;background:var(--sand);color:var(--ink);font:600 22px/1 var(--sans);cursor:pointer}
.qty button:hover:not(:disabled){background:#dfd3b9}.qty button:disabled{opacity:.35;cursor:not-allowed}
.qty .qn{width:48px;height:42px;border:0;text-align:center;font:600 17px var(--sans);color:var(--ink);background:transparent;-moz-appearance:textfield;appearance:textfield}
.qty .qn::-webkit-outer-spin-button,.qty .qn::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.qty button:focus-visible,.qty .qn:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.person{border:1px solid var(--line);border-radius:10px;padding:14px;margin:0 0 14px;background:#fff}
.person>legend{font:600 18px var(--serif);padding:0 6px;color:var(--ink2)}
.label-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.linkbtn{background:none;border:0;color:var(--ink2);text-decoration:underline;font:600 14px var(--sans);cursor:pointer;padding:4px 0;min-height:32px}
.evlinks{list-style:none;padding:0;margin:14px 0;display:flex;flex-wrap:wrap;gap:8px}
.evlinks a{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border:1px solid var(--line);border-radius:99px;background:#fff;color:var(--ink2);text-decoration:none;font-weight:600;font-size:15px}
.evlinks a:hover{background:var(--sand)}
.policy-text{max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff;white-space:pre-line;font-size:15px;line-height:1.55;margin-bottom:10px}
.policy-text:focus-visible{outline:3px solid var(--gold)}
.tlist{list-style:none;margin:0;padding:0;font-weight:400}
.tlist li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}
.tlist li:last-child{border-bottom:0}.tlist small{display:block;color:var(--muted)}.tlist li.gone{opacity:.5;text-decoration:line-through}
.tl-r{white-space:nowrap;font-weight:600}
.hold{background:#fbf3dc;border:1px solid #e7d49b;border-radius:10px;padding:10px 14px;margin:0 0 16px}
.hold.urgent{background:#fdeceb;border-color:#e6bcb7;color:var(--err)}
.total small{font-weight:400}
@media (max-width:560px){.ticket{flex-direction:column;align-items:stretch}.t-right{justify-content:space-between}}

.linkrow{display:grid;grid-template-columns:1fr 2fr auto;gap:8px;margin-bottom:8px;align-items:center}
.linkrow .btn{width:auto}
@media(max-width:640px){.linkrow{grid-template-columns:1fr}.linkrow .btn{width:100%}}
.card form h3,form.card h3{margin-top:26px}

.userbar{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin:0 0 14px;color:var(--muted)}
.userbar span{margin-right:auto}

.paychecks{display:grid;gap:8px;margin:8px 0 14px}.paychk{align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}.paychk span{display:block}.paychk small{display:block;color:var(--muted);font-weight:400}

/* etapa 12: responsável financeiro, cronômetro do formulário, termo e anexos */
.buyer legend,.summary dt{white-space:nowrap}
.buyer .small{font-size:14px;margin:-4px 0 12px}
.holdbox{display:flex;gap:12px;align-items:flex-start;background:#fff7ec;border:1px solid #f2d3a6;border-radius:12px;padding:14px 16px;margin:0 0 18px;color:#7a4a0c}
.holdbox[hidden]{display:none}
.holdbox svg{flex:none;margin-top:2px}.holdbox b{font:700 24px var(--serif);display:block;color:#c26a00;font-variant-numeric:tabular-nums}
.holdbox p{margin:4px 0 0;font-size:14.5px;line-height:1.45;color:#5b4a2e}
.holdbox.urgent{background:#fdeceb;border-color:#e6bcb7}.holdbox.urgent b{color:var(--err)}
.filehint{margin:0 0 12px}.termlink{margin:0 0 16px;font-size:15px}
.docs .upl{cursor:pointer;display:inline-block}.docs small.err,.docs .err{color:var(--err)}

.ghead td{background:#efe8d6;border-top:2px solid #d8cfb8;font-size:14px;padding:14px 16px}
.gh{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.gh-main{flex:1 1 420px;min-width:0}
.gh-top{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}
.gh-top small{flex-basis:100%;font:600 11.5px var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.gh-top b{font:600 18px var(--serif);color:var(--ink)}
.gh-st{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted)}
.gh-late{color:var(--err);font-weight:600}
.gh-meta{display:flex;flex-wrap:wrap;gap:8px 8px;margin-top:10px}
.gh-chip{display:inline-flex;gap:6px;align-items:baseline;background:rgba(255,255,255,.65);border:1px solid #ddd3ba;border-radius:8px;padding:4px 10px;font-size:13.5px;overflow-wrap:anywhere}
.gh-chip i{font-style:normal;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.gh-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.gh-acts .btn{width:auto;flex:none;white-space:nowrap}
@media(max-width:700px){.gh-acts{justify-content:flex-start;width:100%}.gh-top b{font-size:17px}}
.res .docwarn{background:#fbf3dc;color:#5c4a14;border:1px solid #e7d49b;border-radius:8px;padding:8px 10px;margin:10px 0 6px;font-size:14px}
.ev-card{position:relative}
.ev-go{text-decoration:none}
.ev-go::after{content:"";position:absolute;inset:0}
.ev-card:focus-within{border-color:var(--ink2);box-shadow:0 0 0 3px rgba(47,90,63,.25)}
.ev-re{position:relative;z-index:2;align-self:flex-start;margin-top:10px;font-size:14px;color:var(--ink2);text-decoration:underline}
/* ---- inscrição em etapas ---- */
.wsteps{display:flex;list-style:none;padding:0;margin:0 0 26px;align-items:center}
.wsteps[hidden]{display:none}
.wsteps li{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14.5px;min-width:0;flex:0 1 auto}
.wsteps li:not(:last-child){flex:1 1 0}
.wsteps li:not(:last-child)::after{content:"";flex:1;height:1px;background:var(--line);margin:0 10px;min-width:8px}
.wsteps .wn{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-weight:600;color:var(--ink);background:#fff}
.wsteps .now{color:var(--ink);font-weight:600}
.wsteps .now .wn{background:var(--ink2);border-color:var(--ink2);color:#fff}
.wsteps .done{color:var(--ink)}
.wsteps .done .wn{background:#e8f0e6;border-color:var(--ink2);color:var(--ink2)}
@media(max-width:640px){.wsteps .wl{display:none}.wsteps .now .wl{display:inline;white-space:nowrap}.wsteps li{min-width:max-content}.wsteps li:not(:last-child){flex:1 1 auto}.wsteps li:not(:last-child)::after{margin:0 6px}}
body.wizard .info,body.wizard .hero{display:none}
body.wizard .grid{display:block;max-width:760px;margin:0 auto}
body.wizard .sticky{position:static}
.whead{margin:0 0 14px}.whead b{display:block;font:600 22px var(--serif);color:var(--ink)}
.stage-h{font-size:1.5rem;margin:0 0 14px}
.wnav{display:flex;gap:10px;margin-top:10px}
.wnav .btn{margin:0}.wnav .btn.ghost{width:auto;flex:0 0 auto;padding-inline:24px}
.sum-h{font:600 17px var(--serif);margin:16px 0 6px;color:var(--ink2)}
.paybtns{display:grid;gap:10px;margin-top:10px}.paybtns .btn{margin:0}

/* etapa 22: pagamento na própria página */
.opts{display:grid;gap:10px;margin-top:10px}
.opt{margin:0;border:1px solid var(--line,#d9d9d9);border-radius:12px;background:#fff}
.opt .optbtn{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:14px 16px;background:none;border:0;font:inherit;color:inherit;cursor:pointer;list-style:none}
.opt summary::-webkit-details-marker{display:none}
.opt .opt-t{font-weight:700;font-size:1.05rem}.opt .opt-d{color:#666;font-size:.9rem}
.opt:hover,.opt[open]{border-color:var(--brand,#1f3a5f)}
.optform{padding:0 16px 16px}
.addr .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dcard h2 small,.pay h2 small{font-weight:400;color:#666;font-size:.9rem}
.how{padding-left:20px;margin:8px 0 14px}.how li{margin:6px 0}
.pixqr{border:1px solid #eee;border-radius:12px;padding:6px}
details.other>summary{cursor:pointer;font-weight:600;padding:4px 0}
details.other[open]>summary{margin-bottom:8px}
.dcard input.in{font:13px monospace}
/* etapa 23: valores altos não saem do card (a fonte acompanha a largura do card) */
.stat,.kpi{container-type:inline-size;min-width:0}
.stat b{font-size:clamp(17px,11cqw,30px);line-height:1.15;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.kpi-v{font-size:clamp(19px,13cqw,36px);overflow-wrap:anywhere}
.stat span,.kpi-l,.kpi small{overflow-wrap:anywhere}
.stats,.kpis{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
/* etapa 24: taxas por forma de pagamento */
.paygroup{margin-bottom:10px}.paybank{margin:14px 0 18px;padding-top:6px}.paybank>h4{margin:0 0 8px;font-size:15px;border-bottom:1px solid var(--line);padding-bottom:4px}
.feerow{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:6px 0 0 34px;padding:8px 12px;background:#faf6ea;border:1px dashed var(--line);border-radius:10px}
.feerow .feeval{display:flex;gap:8px;align-items:center;font-size:14px}.feerow .feeval .in{width:110px;min-height:38px}
/* etapa 25: taxas visíveis na escolha do ingresso */
.t-price{display:flex;flex-direction:column;align-items:flex-end}.t-fee{font-weight:400;color:var(--muted);font-size:13px;white-space:normal;text-align:right}
.fee-note{margin:4px 0 0;font-size:14px}
/* menu Ações dos participantes */
td.acts{white-space:nowrap;width:1%;text-align:right}
.amenu-btn{width:auto;white-space:nowrap;padding:6px 12px;min-height:36px;font-size:14px}
.amenu{position:fixed;z-index:80;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.2);padding:4px;min-width:210px;display:flex;flex-direction:column}
.amenu button{background:none;border:0;text-align:left;padding:11px 12px;font:500 15px var(--sans);border-radius:8px;cursor:pointer;color:var(--ink);min-height:44px}
.amenu button:hover,.amenu button:focus-visible{background:var(--sand);outline:none}
.amenu button.danger{background:none;color:var(--err)}
.amenu button.danger:hover,.amenu button.danger:focus-visible{background:var(--err);color:#fff}
.btn.danger:hover,.btn.danger:focus-visible{background:#8f2218;color:#fff}
/* auditoria */
.audtbl td{vertical-align:top}.audtbl td small{display:block;color:var(--muted,#6b665c);margin-top:2px;word-break:break-word}
.audtbl .nw{white-space:nowrap}.audtbl .aud-detail{max-width:340px;word-break:break-word}
.audtbl tr.audfail td{background:#fbeceb}
.badge.cat{background:var(--sand);color:var(--ink);font-weight:500}
/* janela de edição */
dialog.dlg{border:1px solid var(--line);border-radius:14px;padding:22px;width:calc(100% - 32px);max-width:520px;max-height:90vh;overflow:auto;background:#fff;color:var(--ink)}
dialog.dlg::backdrop{background:rgba(20,30,24,.45)}
.dlg .field{margin:12px 0}.dlg .field>label{display:block;font-weight:600;margin-bottom:4px}
.dlg .row-end{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}
.dlg .err{color:var(--err);margin:10px 0 0}

/* ===== código de verificação: um retângulo por dígito ===== */
.otp{display:flex;justify-content:center;gap:clamp(5px,1.6vw,9px);margin:6px 0 4px}
.otp-d{width:clamp(38px,12vw,48px);height:clamp(48px,14vw,58px);padding:0;text-align:center;font:600 24px var(--sans);color:var(--ink);background:#fff;border:1px solid #cfc6ad;border-radius:10px;caret-color:var(--ink2);outline:none;-moz-appearance:textfield;transition:border-color .15s,box-shadow .15s}
.otp-d.gap{margin-left:clamp(6px,2vw,14px)}
.otp-d:focus{border-color:var(--ink2);box-shadow:0 0 0 3px rgba(47,90,63,.2)}
.otp-d:not(:placeholder-shown),.otp-d:valid{border-color:#a9b9a5}

/* ===== mapa de locais: editor ===== */
.sm{outline:none}
.sm-top{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;margin-bottom:14px;padding:14px 16px;background:var(--card,#fffdf6);border:1px solid var(--line);border-radius:14px}
.sm-switch{display:flex;gap:12px;align-items:flex-start;cursor:pointer;max-width:640px}
.sm-switch input{appearance:none;-webkit-appearance:none;flex:none;width:46px;height:26px;border-radius:99px;background:#cfc8b4;position:relative;transition:background .2s;margin-top:2px;cursor:pointer}
.sm-switch input::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s}
.sm-switch input:checked{background:var(--ink2,#2f5a3f)}
.sm-switch input:checked::after{transform:translateX(20px)}
.sm-switch small{display:block;color:var(--muted);margin-top:2px;line-height:1.4}
.sm-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.sm-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.sm-main{min-width:0}
.sm-floors{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.sm-floor-tab{border:1px solid var(--line);background:#fff;border-radius:99px;padding:7px 16px;font:600 14px var(--sans);cursor:pointer;color:var(--ink)}
.sm-floor-tab.on{background:var(--ink2,#2f5a3f);color:#fff;border-color:transparent}
.sm-floortools{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:10px}
.sm-floortools .sm-f{min-width:0}.sm-floortools .sm-f input{width:110px}.sm-floortools .sm-f:first-child input{width:170px}
.sm-f{display:flex;flex-direction:column;gap:3px;margin:8px 0;font-size:13px}.sm-f>span{color:var(--muted);font-weight:600;font-size:12px}
.sm-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sm-canvas{position:relative;height:min(68vh,640px);min-height:380px;border:1px solid var(--line);border-radius:14px;background:#efe9d8;overflow:hidden;touch-action:none}
.sm-svg{width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none;cursor:default}
.sm-floor{stroke:#cfc7ae;stroke-width:2;fill:#fffdf6}
.sm-seat{cursor:grab}.sm-seat circle{stroke:rgba(0,0,0,.28);stroke-width:1.2}.sm-seat text{font:600 10px var(--sans);text-anchor:middle;pointer-events:none}
.sm-seat.sel circle{stroke:#1d4ed8;stroke-width:3}
.sm-seat.nosec circle{stroke-dasharray:3 2}.sm-seat.blk{opacity:.7}.sm-seat .x{stroke:#6b6655;stroke-width:2;fill:none}
.sm-seat.sold circle:first-child{stroke:#111;stroke-width:2}.sm-seat .dot{fill:#111;stroke:#fff;stroke-width:1.5}.sm-seat.pend .dot{fill:#d97706}
.sm-table{cursor:grab}.sm-table circle,.sm-table rect{fill:color-mix(in srgb,var(--c) 18%,#fffdf6);stroke:var(--c);stroke-width:2}.sm-table.sel circle,.sm-table.sel rect{stroke:#1d4ed8;stroke-width:3.5}
.sm-table text{text-anchor:middle;pointer-events:none;fill:#3a3a32}.sm-table .tl{font:700 13px var(--sans)}.sm-table .ts{font:500 10px var(--sans);fill:#6b6655}
.sm-decor{cursor:grab}.sm-decor rect,.sm-decor path{stroke:#b9b095;stroke-width:1.5}.sm-decor.txt rect{stroke:transparent}.sm-decor text{text-anchor:middle;font:700 15px var(--sans);fill:#5b5646;pointer-events:none;letter-spacing:.08em}.sm-decor.sel rect,.sm-decor.sel path{stroke:#1d4ed8;stroke-width:3;stroke-dasharray:6 3}
.sm-row{font:700 12px var(--sans);fill:#6b6655;text-anchor:middle;pointer-events:none}
.sm-marq{fill:rgba(29,78,216,.12);stroke:#1d4ed8;stroke-width:1.2;stroke-dasharray:4 3;pointer-events:none}
.sm-zoom{position:absolute;right:10px;bottom:10px;display:flex;gap:6px;align-items:center;background:rgba(255,253,246,.92);border:1px solid var(--line);border-radius:12px;padding:5px 8px;flex-wrap:wrap;max-width:calc(100% - 20px)}
.sm-zoom .on{background:var(--ink2,#2f5a3f);color:#fff}.sm-zoomlbl{min-width:42px;text-align:center;font-size:13px;color:var(--muted)}
.sm-hint{font-size:12.5px;color:var(--muted);margin:8px 2px 14px}
.sm-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.sm-card{background:var(--card,#fffdf6);border:1px solid var(--line);border-radius:14px;padding:14px 16px}.sm-card h3{margin:0 0 6px;font-size:16px}
.sm-sector{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:10px;background:#fff}
.sm-sector-h{display:flex;gap:8px;align-items:center}.sm-sector-h .in{flex:1;min-width:0}.sm-sector-h input[type=color]{width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;flex:none}
.sm-sector-p{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:6px}
.sm-add details{border-top:1px solid var(--line);padding:8px 0}.sm-add details:first-child{border-top:0}.sm-add summary{cursor:pointer;font-weight:600;padding:4px 0}
.sm-btns{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.sm-insp hr{border:0;border-top:1px solid var(--line);margin:12px 0}
.sm-warn{color:#9a3412;background:#fff1e6;border-radius:8px;padding:8px 10px;font-size:13px}
.sm-sum{margin-top:6px}.sm-sum table{width:100%;border-collapse:collapse;font-size:14px}.sm-sum th,.sm-sum td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--line)}.sm-sum .tot td{font-weight:700;border-bottom:0}
.sm-dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:7px;vertical-align:middle}
.sm-empty{background:#fff8e8;border:1px dashed #d6c79a;border-radius:12px;padding:14px;margin-bottom:10px}
@media(max-width:1000px){.sm-body{grid-template-columns:minmax(0,1fr)}.sm-canvas{height:58vh}}
.sm .btn{width:auto;flex:none;white-space:nowrap}.sm .sm-actions{margin-left:auto}.sm .sm-sector-h .btn{padding:6px 12px}

/* ===== escolha de lugares (página pública) ===== */
.seatpick{border:0;padding:0;margin:0 0 6px;min-width:0}.seatpick legend{font:600 20px var(--serif);padding:0;margin-bottom:8px}
.sp-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-bottom:10px}
.sp-leg{display:inline-flex;align-items:center;gap:6px;font-size:14px;line-height:1.2}.sp-leg i{width:14px;height:14px;border-radius:50%;flex:none;border:1px solid rgba(0,0,0,.25)}.sp-leg small{color:var(--muted)}
.sp-leg-sel i{background:#f59e0b}.sp-leg-busy i{background:#d8d2bf}
.sp-floors{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.sp-tab{border:1px solid var(--line);background:#fff;border-radius:99px;padding:7px 14px;font:600 14px var(--sans);cursor:pointer;color:var(--ink);min-height:40px;display:inline-flex;align-items:center;gap:6px}
.sp-tab.on{background:var(--ink2,#2f5a3f);color:#fff;border-color:transparent}.sp-badge{background:#f59e0b;color:#1d2a21;border-radius:99px;font-size:12px;padding:1px 7px}
.sp-canvas{position:relative;height:clamp(320px,62vh,620px);border:1px solid var(--line);border-radius:14px;background:#efe9d8;overflow:hidden;touch-action:none}
.sp-svg{width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}.sp-svg:active{cursor:grabbing}
.sp-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);margin:0}
.sp-zoom{position:absolute;right:8px;bottom:8px;display:flex;gap:6px}
.sp-zoom button{min-width:44px;min-height:44px;border-radius:12px;border:1px solid var(--line);background:rgba(255,253,246,.96);font:600 18px var(--sans);cursor:pointer;color:var(--ink);padding:0 12px}
.sp-zoom #sp-fit{font-size:14px}
.sp-seat{cursor:pointer}.sp-seat circle{stroke:rgba(0,0,0,.3);stroke-width:1.2;transition:fill .15s}.sp-seat text{font:600 10px var(--sans);text-anchor:middle;pointer-events:none}.sp-seat .x{display:none;stroke:#8a8470;stroke-width:2;fill:none}
.sp-seat.st-sold circle,.sp-seat.st-held circle{fill:#d8d2bf!important;stroke-dasharray:3 2}.sp-seat.st-sold text,.sp-seat.st-held text{fill:#8a8470!important}.sp-seat.st-sold,.sp-seat.st-held{cursor:not-allowed}
.sp-seat.st-sold .x{display:block}.sp-seat.st-blocked{display:none}
.sp-seat.sel circle{fill:#f59e0b!important;stroke:#7c2d12;stroke-width:2.5}.sp-seat.sel text{fill:#1d2a21!important}
.sp-table circle,.sp-table rect{fill:color-mix(in srgb,var(--c) 16%,#fffdf6);stroke:var(--c);stroke-width:2}.sp-table text{text-anchor:middle;pointer-events:none;fill:#3a3a32}.sp-table .tl{font:700 13px var(--sans)}.sp-table .ts{font:500 9.5px var(--sans);fill:#6b6655}
.sp-decor rect{stroke:#b9b095;stroke-width:1.5}.sp-decor.txt rect{stroke:transparent}.sp-decor text{text-anchor:middle;font:700 15px var(--sans);fill:#5b5646;pointer-events:none;letter-spacing:.08em}
.sp-row{font:700 12px var(--sans);fill:#6b6655;text-anchor:middle;pointer-events:none}
.sp-hint{font-size:13px;margin:8px 2px 4px}.sp-msg{min-height:1.3em;margin:2px 2px 6px}.sp-msg.err{color:var(--err,#b3261e)}
.sp-list{margin:6px 0 12px;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:#fff}.sp-list summary{cursor:pointer;font-weight:600;padding:6px 0}
#sp-listbox{max-height:340px;overflow:auto;padding-top:6px}#sp-listbox h4{margin:12px 0 6px;font-size:14px}
.sp-listrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:6px}.sp-rowname{min-width:84px;font-weight:600;font-size:13px;color:var(--muted)}
.sp-chip{min-width:40px;min-height:40px;border-radius:10px;border:1px solid var(--line);background:#fff;font:600 14px var(--sans);cursor:pointer;color:var(--ink)}.sp-chip.on{background:#f59e0b;border-color:#7c2d12}.sp-chip:disabled{background:#eee8d6;color:#a7a08a;cursor:not-allowed;opacity:.75}
.sp-sel{margin:8px 0}.sp-item{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:8px}
.sp-item>i{width:14px;height:14px;border-radius:50%;flex:none}.sp-item-t{flex:1 1 140px;min-width:0}.sp-item-t b{display:block;font-size:15px;overflow-wrap:anywhere}.sp-item-t small{color:var(--muted)}
.sp-price{font-weight:600;white-space:nowrap}.sp-kind{width:auto;min-width:150px;max-width:none;padding:8px 28px 8px 10px;font-size:14px;text-overflow:clip;flex:none}
.sp-rm{border:0;background:#f3eddc;border-radius:50%;width:34px;height:34px;font-size:20px;line-height:1;cursor:pointer;color:var(--ink);flex:none}
.sp-note{font-size:13px}.sp-count{font-weight:600;margin:6px 0 0}
.sp-hold{display:flex;gap:10px;align-items:center;background:#fff8e8;border:1px solid #ecd9a0;border-radius:12px;padding:10px 12px;margin-top:8px}.sp-hold p{margin:0;font-size:14px}.sp-hold.urgent{background:#fdecea;border-color:#f3b8b2}
.seatlabel{font:600 13px var(--sans);color:var(--muted)}
body.wizard .grid.seatmode{display:block}

/* Etapa 34: formatos de pavimento */
.sm-shape{fill:rgba(47,90,63,.07);stroke:#8a9a86;stroke-width:3;pointer-events:none}
.sm-vh{fill:#fff;stroke:#1d4ed8;stroke-width:2;cursor:grab}.sm-vh.sel{fill:#1d4ed8}
.sm-vm{fill:rgba(29,78,216,.25);stroke:#1d4ed8;stroke-width:1;cursor:copy}
.sm-shapebar{margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.sm-shapebar>b{display:block;font:700 13px var(--sans);margin-bottom:8px}
.sm-shapes{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.sm-shape-btn{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:4px;width:84px;padding:8px 4px;border:1px solid var(--line);border-radius:10px;background:#faf8f1;cursor:pointer;font:600 12px var(--sans);color:var(--ink)}
.sm-shape-btn svg path{fill:#dfe8dc;stroke:#2f5a3f;stroke-width:2}
.sm-shape-btn.on{border-color:#2f5a3f;box-shadow:0 0 0 2px #2f5a3f inset;background:#eef4ec}
.sm-shapex{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}

/* Etapa 34: escolha de assentos em tela cheia (setores -> lugares) */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.seatpick .sp-intro{margin:0 0 12px}.seatpick>.btn{width:100%}.sp-change{margin-top:6px}
.sp-none .total,.sp-none>.btn[data-next],.sp-none .sp-count{display:none}
body.sp-lock{overflow:hidden}
.spx{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;background:#faf7ee;color:var(--ink)}
.spx[hidden]{display:none}
.spx-h{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fffdf6}
.spx-t{flex:1;min-width:0}.spx-t h2{margin:0;font:700 20px var(--serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spx-t p{margin:2px 0 0;font-size:13px}
.spx-back,.spx-close{min-height:44px;border-radius:99px;border:1px solid var(--line);background:#fff;padding:0 16px;font:600 14px var(--sans);cursor:pointer;color:var(--ink);white-space:nowrap}
.spx-close{width:44px;padding:0;font-size:18px}
.spx .sp-floors{padding:10px 16px 0;margin:0}
.spx .sp-canvas{flex:1;min-height:200px;height:auto;margin:10px 0 0;border-radius:0;border-left:0;border-right:0}
.spx .sp-legend{padding:10px 16px 0;margin:0;justify-content:center}
.spx .sp-msg{padding:0 16px;margin:4px 0 0;min-height:1.2em}
.spx .sp-list{margin:6px 16px;max-height:34vh;overflow:auto}
.spx-f{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffdf6}
.spx-f b{display:block;font-size:20px}.spx-f small{color:var(--muted)}.spx-f .btn{width:auto;min-width:200px}
@media(max-width:560px){.spx-f .btn{min-width:0;flex:1}.spx-back{padding:0 12px}}
.sp-leg-sec i{background:conic-gradient(#2f5a3f,#b8860b,#2563a8,#a23b5a,#2f5a3f)}.sp-leg-off i{background:#8a8a8a}
.sp-leg i{width:16px;height:16px}.sp-leg b{font-weight:600}
.sp-shape{fill:rgba(255,253,246,.7);stroke:#b9b095;stroke-width:3;pointer-events:none}
.sp-blk{cursor:pointer;outline:none;--f:color-mix(in srgb,var(--c) 16%,#fffdf6)}.sp-blk path{stroke-linejoin:round;stroke-linecap:round;fill:none;pointer-events:stroke}
.sp-blk .bd{stroke:var(--c)}.sp-blk .s{pointer-events:all}.sp-blk .bd.s{fill:var(--c)}.sp-blk .fl.s{fill:var(--f);transition:fill .15s,stroke .15s}.sp-blk .fl{stroke:var(--f);transition:stroke .15s}
.sp-blk:hover,.sp-blk:focus-visible{--f:color-mix(in srgb,var(--c) 30%,#fffdf6)}
.sp-blk.off{cursor:not-allowed;--f:#8a8a8a}.sp-blk.off .bd{stroke:#6d6d6d}.sp-blk.off .bd.s{fill:#6d6d6d}
.sp-blabel{pointer-events:none;text-anchor:middle;fill:#1d2a21}.sp-blabel .n{font:700 15px var(--sans)}.sp-blabel .p{font:600 13px var(--sans)}.sp-blabel .a{font:500 12px var(--sans);fill:#4a5548}
.sp-blabel.off text{fill:#fff}
.sp-seat circle{stroke-width:1}
.seatpick>.sp-loading{position:static;display:block;color:var(--err,#b3261e);margin:8px 0}
.sp-item>i{order:0}.sp-item-t{order:1}.sp-item .sp-price,.sp-item .sp-rm{order:2}.sp-item .sp-kind{order:3;flex:1 1 100%;min-width:0}.sp-item-t{flex:1 1 120px}

.sm-sale b{display:block}.sm-sale small{color:var(--muted);display:block;max-width:60ch;margin-top:2px}
.salecards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0 4px}
@media(max-width:700px){.salecards{grid-template-columns:1fr}}
.salecard{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}
.salecard:has(input:checked){border-color:#2f5a3f;box-shadow:0 0 0 2px #2f5a3f inset;background:#eef4ec}
.salecard input{margin-top:4px;width:auto}.salecard b{display:block;font-size:16px}.salecard small{display:block;color:var(--muted);margin-top:4px;line-height:1.4}
.savebar{margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}.savebar .btn{min-width:240px;min-height:48px}

/* capa sem imagem: degradê da paleta com a marca d'água do Moedah */
.hero-plain{position:relative;overflow:hidden;background:radial-gradient(120% 140% at 85% 0%,#3d6e4d 0%,#2f5a3f 38%,#1d3a2a 100%)}
.hero-plain::before{content:"";position:absolute;right:max(4%,calc(50% - 740px));top:50%;width:min(34vw,340px);aspect-ratio:814/444;transform:translateY(-50%) rotate(-4deg);background:url(/img/moedah.png) center/contain no-repeat;filter:brightness(0) invert(1);opacity:.07;pointer-events:none}
.hero-plain::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:linear-gradient(90deg,#8cc63f,rgba(140,198,63,0))}
.hero-plain .hero-in{position:relative;z-index:1}
.hero-plain .hero-in h1::before{content:"";display:block;width:56px;height:4px;border-radius:2px;background:#8cc63f;margin-bottom:18px}

/* lista de eventos centralizada; capa sem imagem com a marca d'água do Moedah */
.ev-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:20px}
.ev-grid>.ev-card{flex:0 1 380px;width:min(100%,380px)}
.ev-thumb.ph{position:relative;overflow:hidden;font-size:0;background:radial-gradient(120% 140% at 85% 0%,#3d6e4d 0%,#2f5a3f 40%,#1d3a2a 100%)}
.ev-thumb.ph::before{content:"";position:absolute;left:50%;top:50%;width:46%;aspect-ratio:814/444;transform:translate(-50%,-50%);background:url(/img/moedah.png) center/contain no-repeat;filter:brightness(0) invert(1);opacity:.16}

.sm-tpls{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.sm-tpls li{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;display:grid;gap:8px}
.sm-tpls b{display:block}.sm-tpls small{color:var(--muted)}
.sm-card.flash{box-shadow:0 0 0 3px #8cc63f;transition:box-shadow .3s}
.sm-tplpick{display:grid;gap:8px;margin-top:8px}.sm-tplpick label{font:600 13px var(--sans)}

/* Etapa 43: cadastros em tabela com janela de edição */
dialog.dlg.dlg-wide{max-width:780px}
.dlg .tcard,.dlg .cp{border:0;padding:0;margin:0;background:none}
.fcard-in{display:grid;gap:12px}
.bar2 + .tbl-wrap{margin-top:12px}
.tbl-wrap td small{display:block;color:var(--muted)}
.tbl-wrap + .row-actions,.tbl-wrap + p{margin-top:12px}
.fields-actions{margin-top:16px}

/* Etapa 45: setores na lateral, modelos acima do mapa e "Adicionar" abaixo, na horizontal */
.sm-models{margin:0 0 12px;padding:10px 14px}
.sm-tplbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.sm-tplbar .in{width:auto;min-width:200px;max-width:280px}
.sm-tplbar .sm-btns{display:flex;gap:6px;margin:0}
.sm-tplbar .sm-tplsave{margin-left:auto}
.sm-addbox{margin-top:12px}
.sm-addbox .sm-add{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;align-items:start}
.sm-addbox .sm-add details{border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:#fffdf8}
.sm-addbox .sm-add details:first-child{border-top:1px solid var(--line)}
.sm-addbox>p{margin:0}

/* Etapa 45: Configurações */
.cfg-card h2{margin-top:0}
.cfg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px;margin-top:10px}
.cfg-row{min-width:0;display:flex;flex-direction:column;gap:5px}
.cfg-row label{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cfg-bool{grid-column:1/-1}
.cfg-inline{display:flex;gap:8px;align-items:center}.cfg-inline .in{flex:1;min-width:0}
.cfg-unit{color:var(--muted);font-size:13px;white-space:nowrap}
.cfg-help{display:block;line-height:1.4}
.cfg-src{font-size:11px;padding:2px 8px}
.cfg-btns{display:flex;gap:6px;flex:none}
.cfg-ok{color:#1f5a33;font-size:13px}
.cfg-adv{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}.cfg-adv summary{cursor:pointer;font-weight:600;margin-bottom:12px}
.cfg-result{margin-top:12px;padding:0;font-size:14px}.cfg-result.ok,.cfg-result.bad{padding:10px 14px;border-radius:10px}
.cfg-result.ok{background:#e3f1e6;color:#1f5a33}.cfg-result.bad{background:#f8e4e1;color:#a33a2e}
.cfg-card .savebar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:20px}
.wiz-steps{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}
.wiz-step{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:#fffdf8;font-size:14px}
.wiz-step i{font-style:normal;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--line);font-size:12px;font-weight:700}
.wiz-step.on{color:var(--ink);border-color:var(--gold);font-weight:600}.wiz-step.on i{background:var(--green,#2f5d3f);color:#fff}.wiz-step.done i{background:#8cc63f;color:#fff}
@media(max-width:720px){.cfg-grid{grid-template-columns:1fr}}
.cfg-card .savebar{border-top:0;padding-top:0;background:none;position:static}
.cfg-card .savebar .btn{width:auto;flex:none;padding:11px 22px}
.cfg-grid{align-items:start}

/* Etapa 46: Adicionar e Resumo em largura total; só a lista de setores rola */
.sm-sectors{max-height:min(68vh,640px);overflow-y:auto;overscroll-behavior:contain}
.sm-addbox .sm-add{grid-template-columns:repeat(4,minmax(0,1fr))}
.sm-addbox{margin-top:16px}
.sm-sum{margin-top:16px}
@media(max-width:1100px){.sm-addbox .sm-add{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.sm-addbox .sm-add{grid-template-columns:1fr}}

/* Etapa 47: setores em toda a altura do mapa, alças de forma (girar/redimensionar) */
.sm-body{align-items:stretch}
.sm-side{position:relative;min-height:0}
.sm-side-in{position:absolute;inset:0;display:flex;flex-direction:column;gap:12px;min-height:0}
.sm-side-in .sm-sectors{flex:1 1 auto;min-height:120px;max-height:none;overflow-y:auto}
.sm-side-in .sm-card:not(.sm-sectors){flex:none;max-height:40%;overflow-y:auto}
@media(max-width:1000px){.sm-side{position:static}.sm-side-in{position:static}.sm-side-in .sm-sectors{max-height:50vh}}
.sm-dbox{fill:none;stroke:#1d4ed8;stroke-dasharray:5 3;pointer-events:none}
.sm-dline{stroke:#1d4ed8;pointer-events:none}
.sm-hd{fill:#fff;stroke:#1d4ed8;stroke-width:1.5;vector-effect:non-scaling-stroke}
.sm-hd.rot{fill:#1d4ed8;cursor:grab}
.sm-hd.cor[data-h=nw],.sm-hd.cor[data-h=se]{cursor:nwse-resize}.sm-hd.cor[data-h=ne],.sm-hd.cor[data-h=sw]{cursor:nesw-resize}
.sm-hd.edge[data-h=n],.sm-hd.edge[data-h=s]{cursor:ns-resize}.sm-hd.edge[data-h=e],.sm-hd.edge[data-h=w]{cursor:ew-resize}
.sm-shapex .btn.on{background:#2f5a3f;color:#fff;border-color:#2f5a3f}
.cfg-extras{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.cfg-info{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#faf8f1;font-size:.92rem}
.cfg-info>b{display:block;margin-bottom:6px}.cfg-info ol{margin:0;padding-left:18px}.cfg-info li{margin:4px 0}
.feetab{width:100%;border-collapse:collapse;margin:4px 0 6px}.feetab td{padding:3px 0;vertical-align:top}.feetab td:first-child{color:var(--muted);padding-right:10px;white-space:nowrap}
tr.on td{background:#eef4ec}
@media(max-width:760px){.cfg-extras{grid-template-columns:1fr}}

.cfgrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px 20px;align-items:start;margin-bottom:6px}.cfgrow .field{margin:0}.cfgrow .hint{display:block;margin-top:6px;font-size:.82rem;line-height:1.4}
details.how{margin:8px 0 14px;border:1px solid var(--line);border-radius:10px;padding:8px 14px;background:#fff}details.how>summary{cursor:pointer;font-weight:600;font-size:.92rem}details.how p{margin:8px 0 0;font-size:.88rem;line-height:1.5}
.cfgrow .wide{grid-column:1/-1}
.cfgrow.c2{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:640px){.cfgrow.c2{grid-template-columns:1fr}}
.cfgrow.c3{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:820px){.cfgrow.c3{grid-template-columns:1fr}}
.feeset[hidden],.boletobox[hidden]{display:none!important}.boletobox{margin-top:8px}

.gh-parc { margin-top: 8px; font-size: .86rem; }
.gh-parc summary { cursor: pointer; color: var(--green, #2f5a3f); font-weight: 600; }
.gh-parc ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 3px; }
.gh-parc li.ok { color: #2f6b3d; } .gh-parc li.late { color: var(--err, #b3261e); font-weight: 600; }

.venue { margin-top: 20px; padding: 22px 24px; border: 1px solid var(--line, #ddd6c6); border-radius: 12px; background: var(--card, #fffdf8); }
.venue h2 { margin: 0 0 10px; font-size: 1.15rem; }
.venue p { margin: 0 0 16px; line-height: 1.5; }
.venue .btn { display: inline-flex; align-items: center; gap: 8px; width: auto; }
.venue .btn svg { width: 18px; height: 18px; }

.venue-add { display: inline-block; margin-top: 8px; font-size: .9rem; }
.venue-info { margin: 6px 0 0; font-size: .88rem; }
.venue-text { margin-top: 10px; display: grid; gap: 4px; } .venue-text[hidden] { display: none; }
.drawer-bg { position: fixed; inset: 0; background: rgba(20,20,20,.45); z-index: 80; display: flex; justify-content: flex-end; }
.drawer { width: min(480px, 100%); height: 100%; background: var(--card, #fffdf8); display: flex; flex-direction: column; box-shadow: -8px 0 30px rgba(0,0,0,.2); }
.drawer-top { display: flex; justify-content: space-between; align-items: center; padding: 18px 24px 8px; }
.drawer-top h2 { margin: 0; font-size: 1.3rem; }
.drawer-x { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line, #ccc); background: none; font-size: 1.3rem; cursor: pointer; line-height: 1; }
.drawer-body { flex: 1; overflow: auto; padding: 8px 24px 16px; display: grid; gap: 12px; align-content: start; }
.drawer-foot { display: flex; justify-content: space-between; gap: 10px; padding: 14px 24px; border-top: 1px solid var(--line, #e5dfd0); }

.sm-legend { margin-top: 10px; border: 1px solid var(--line, #ddd6c6); border-radius: 10px; padding: 10px 14px; background: var(--card, #fffdf8); }
.sm-legend summary { cursor: pointer; font-weight: 600; }
.sm-leg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px 18px; margin-top: 10px; }
.sm-leg { display: flex; gap: 10px; align-items: center; }
.sm-leg svg { flex: none; background: #f7f3e8; border-radius: 8px; }
.sm-leg span { display: grid; gap: 1px; } .sm-leg small { color: var(--muted, #6b6655); line-height: 1.3; }
.sm-leg b { font-size: .92rem; } .sm-leg small { font-size: .8rem; display: block; }

.lg-seat circle{stroke:rgba(0,0,0,.28);stroke-width:1.2}.lg-seat text{font:600 10px var(--sans);text-anchor:middle}
.lg-seat.sel circle{stroke:#1d4ed8;stroke-width:3}.lg-seat.nosec circle{stroke-dasharray:3 2}.lg-seat.blk{opacity:.7}.lg-seat .x{stroke:#6b6655;stroke-width:2;fill:none}
.lg-seat.sold circle:first-child{stroke:#111;stroke-width:2}.lg-seat .dot{fill:#111;stroke:#fff;stroke-width:1.5}.lg-seat.pend .dot{fill:#d97706}
.lg-table circle{fill:color-mix(in srgb,var(--c) 18%,#fffdf6);stroke:var(--c);stroke-width:2}
.badge.partial{background:#e3eef6;color:#1f5a85}.badge.late{background:#f8d9d3;color:#a3281b;font-weight:700}
.kpi.err::before{background:#c0392b}.kpi.err .kpi-v{color:#a3281b}

/* etapa 70: cancelar inscrição em vermelho claro, sempre à direita */
.btn.dangersoft{background:#fbeceb;color:var(--err);border:1px solid #e3b4af}
.btn.dangersoft:hover,.btn.dangersoft:focus-visible{background:var(--err);color:#fff;border-color:var(--err)}

.formnote{margin:0 0 16px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--sand)}.formnote img{display:block;max-width:100%;height:auto;margin:0 auto 10px;border-radius:8px}.formnote p{margin:0;white-space:pre-line;overflow-wrap:anywhere;font-size:15.5px}.formnote img:last-child{margin-bottom:0}
.formnote .btn{margin-top:10px}

/* app instalável (PWA) e check-in sem internet */
#install:empty{display:none}
.install{display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:12px;padding:14px 16px;margin:0 auto 16px;max-width:600px;box-shadow:0 4px 14px rgba(28,51,38,.06)}
.install img{width:48px;height:48px;border-radius:11px;flex:none;border:1px solid var(--line)}
.install-t{min-width:0;flex:1}
.install-t>b{display:block;font:600 18px/1.25 var(--serif)}
.install p{margin:3px 0 0;font-size:15px;line-height:1.4;color:var(--muted)}
.install p.ios{color:var(--ink)}
.install .acts{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.install-float{position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:50}
.install-float .install{margin:0 auto;box-shadow:0 10px 30px rgba(28,51,38,.22)}
.net{max-width:600px;margin:0 auto 14px;border-radius:10px;padding:9px 14px;font-size:15px;font-weight:600;text-align:center}
.net.off{background:#5c4a14;color:#fff}
.net.on{background:#e3f1e8;color:var(--ok);border:1px solid #b9dcc6}
.offbox{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 auto 16px;max-width:460px;font-size:15px}
.offbox p{margin:0 0 8px;display:flex;flex-direction:column;gap:2px}
.offbox .off-ok{color:var(--ok);font-weight:600}
.offbox .off-warn{color:#7a5a12;font-weight:600}
.off-acts{display:flex;gap:8px;flex-wrap:wrap}
.off-issues{margin-top:10px;padding:10px 12px;border-radius:8px;background:#fbf3dc;border:1px solid #e7d49b;color:#5c4a14}
.off-issues ul{margin:6px 0 8px;padding-left:18px}
.res .offnote{background:rgba(255,255,255,.18);border-radius:8px;padding:6px 10px;margin-top:10px;font-size:15px}
.evpick small{display:block;font-weight:400;font-size:13px;color:var(--ok)}
@media(display-mode:standalone){.top .site:not(.mine){display:none}}

/* Etapa 89: menu do evento com submenus recolhíveis */
.sidegrp{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:0;border-radius:9px;margin:6px 0 0;padding:9px 12px;font:600 15.5px var(--sans);color:var(--ink);cursor:pointer;text-align:left}
.sidegrp:first-child{margin-top:0}
.sidegrp:hover{background:var(--sand)}
.sidegrp:focus-visible{outline:2px solid var(--ink2);outline-offset:1px}
.sidegrp .chev{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:-4px 4px 0 10px;transition:transform .15s;flex:none;opacity:.7}
.sidegrp[aria-expanded="true"] .chev{transform:rotate(-135deg);margin-top:4px}
.sidegrp.cur{color:var(--ink2)}
.side .sub{display:flex;flex-direction:column;gap:2px;margin:2px 0 4px 12px;padding-left:8px;border-left:2px solid var(--line)}
.side .sub a{font-size:15px;padding:8px 12px}
.side .sub a.on{background:transparent;color:var(--ink2);font-weight:700;box-shadow:inset 3px 0 0 var(--ink2);border-radius:0 9px 9px 0;background:#eef3ec}
@media(min-width:1024px){.side .sub.closed{display:none}}
@media(max-width:1023px){.sidegrp{display:none}.side .sub{display:contents}.side .sub a.on{background:var(--ink2);color:#fff;box-shadow:none;border-radius:9px}}
.parttitle{margin-top:0}
.cfgpart > h3:first-of-type{margin-top:18px}

/* crachás */
.badgegrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start;margin-bottom:10px}
@media(max-width:760px){.badgegrid{grid-template-columns:1fr}}
.bprev{width:100%;max-width:330px;aspect-ratio:95/69;border:1px dashed #b9b3a3;border-radius:6px;background:#fff;display:flex;flex-direction:column;overflow:hidden;margin-top:6px;box-shadow:0 4px 14px rgba(28,51,38,.08)}
.bprev-top{background:var(--ink);color:#fff;font:700 12px var(--sans);text-align:center;padding:8px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bprev-body{flex:1;display:flex;align-items:center;gap:10px;padding:8px 14px;min-height:0}
.bprev-txt{flex:1;display:flex;flex-direction:column;gap:4px;text-align:center;min-width:0}
.withqr .bprev-txt{text-align:left}
.bprev-txt b{font:700 20px/1.15 var(--sans);color:var(--ink);overflow-wrap:anywhere}
.bprev-txt span{font-size:14px;color:var(--ink)}
.bprev-txt small{font-size:12px;color:var(--muted)}
.bprev-qr{width:31%;aspect-ratio:1;flex:none;border:2px solid var(--ink);border-radius:4px;display:flex;align-items:center;justify-content:center;font:700 11px var(--sans);color:var(--ink);background:repeating-linear-gradient(45deg,#fff 0 4px,#eef0ec 4px 8px)}
.bprev-qr::after{content:'QR Code';background:#fff;padding:2px 4px}
.bprev-foot{height:5px;background:var(--gold)}
.imgdrop{border:1.5px dashed #cfc5ad;border-radius:12px;background:#f8f5ee;padding:18px;text-align:center}
.imgdrop p{color:var(--ink2);margin:6px 0 14px}
.imgdrop img{max-width:100%;max-height:140px;display:block;margin:0 auto 12px;border-radius:8px;object-fit:contain;background:#fff}
.imgdrop .row-actions{justify-content:center}

/* importação */
.impsteps{padding-left:22px;margin:6px 0 14px}
.impsteps li{margin-bottom:12px;line-height:1.45}
.impout{margin-top:12px}
.impout .imp-ok{background:#e9f4ec;border:1px solid #b9dcc6;color:var(--ok);border-radius:10px;padding:10px 12px;font-weight:600}
.impout .imp-bad{background:#fbeceb;border:1px solid #e9bdb8;color:var(--err);border-radius:10px;padding:10px 12px;font-weight:600}
.implist{margin-top:10px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:#fff}
.implist summary{cursor:pointer;font-weight:600}
.implist.err summary{color:var(--err)}.implist.warn summary{color:#7a5a12}.implist.skip summary{color:var(--muted)}
.implist ul{margin:8px 0 2px;padding-left:18px;font-size:14px;max-height:220px;overflow:auto}
table.mini{font-size:14px}table.mini small{display:block;color:var(--muted)}

/* Etapa 90: atalho "Meus ingressos" no topo e a tela do participante */
.topnav{display:flex;gap:18px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.topnav .mine{font-weight:600}
#wList{max-width:760px;margin:0 auto}
.whead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.whead h1{margin:0 0 2px}
.wevent{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:18px;box-shadow:0 4px 14px rgba(28,51,38,.06)}
.wevent-h{background:var(--ink);color:#fff;padding:14px 18px}
.wevent-h h2{margin:0;font-size:21px;color:#fff}
.wevent-h p{margin:4px 0 0;opacity:.85;font-size:15px}
.wtickets{display:flex;flex-direction:column}
.wticket{display:flex;gap:16px;align-items:center;padding:16px 18px;border-top:1px solid var(--line)}
.wticket:first-child{border-top:0}
.wqr{flex:none;width:132px;height:132px;padding:6px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:zoom-in}
.wqr img{width:100%;height:100%;display:block;image-rendering:pixelated}
.wt-info{display:flex;flex-direction:column;gap:3px;min-width:0}
.wt-info b{font:600 19px/1.25 var(--serif);overflow-wrap:anywhere}
.wt-info code{font-size:15px;letter-spacing:.04em;color:var(--ink2)}
.wt-links{display:flex;gap:14px;margin-top:6px;font-size:15px}
.wticket.used .wqr{opacity:.45}
.usedtag{color:#7a5a12;font-weight:600}
.wpend{background:#fbf3dc;border:1px solid #e7d49b;border-radius:12px;padding:12px 16px;margin-bottom:16px;color:#5c4a14}
.wpend p{margin:4px 0}.wpend ul{margin:6px 0 0;padding-left:18px}
.code-in{font-size:28px;letter-spacing:.35em;text-align:center;font-variant-numeric:tabular-nums}
.okmsg{color:var(--ok);font-weight:600}
.small{font-size:14px}
dialog.qrzoom{border:0;border-radius:18px;padding:22px;max-width:min(420px,92vw);text-align:center;display:flex;flex-direction:column;gap:6px;align-items:center}
dialog.qrzoom:not([open]){display:none}
dialog.qrzoom::backdrop{background:rgba(28,51,38,.6)}
dialog.qrzoom b{font:600 22px var(--serif)}
dialog.qrzoom img{width:min(320px,78vw);height:auto;image-rendering:pixelated;margin:8px 0}
dialog.qrzoom code{font-size:18px;letter-spacing:.06em}
dialog.qrzoom small{color:var(--muted);margin-bottom:8px}
@media(max-width:520px){.wqr{width:112px;height:112px}.wticket{gap:12px;padding:14px}.topnav{gap:12px}}
#wLogin .err,#wList .err{color:var(--err);font-weight:600}
.imphelp{margin-top:8px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:#fff}
.imphelp summary{cursor:pointer;font-weight:600;color:var(--ink2)}
.imphelp table{margin-top:8px}.imphelp td{vertical-align:top;font-size:14px;line-height:1.4}.imphelp td code{white-space:nowrap}
.imphelp small.req{display:block;color:var(--err);font-weight:600}
