:root{--bg:#090909;--panel:#141414;--panel2:#1b1b1b;--red:#d71920;--red2:#8f0f14;--text:#f6f6f6;--muted:#a7a7a7;--green:#25b46b;--yellow:#e5aa20;--line:#2b2b2b}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(circle at 70% 0,#2a0b0d 0,transparent 33%),var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.wrap{width:min(1160px,94vw);margin:auto}.nav{position:sticky;top:0;z-index:9;background:#080808e8;backdrop-filter:blur(10px);border-bottom:1px solid #2a1112}.navin{display:flex;align-items:center;justify-content:space-between;min-height:64px}.brand{font-weight:900;letter-spacing:.5px}.brand b{color:var(--red)}.btn,button{border:0;border-radius:10px;padding:11px 16px;background:var(--red);color:white;font-weight:800;cursor:pointer}.btn.alt,button.alt{background:#242424;border:1px solid #444}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;padding:44px 0}.heroimg{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:18px;border:1px solid #3a2222;background:#181818}.eyebrow{color:#ff6b6f;font-size:.8rem;font-weight:900;text-transform:uppercase;letter-spacing:1.5px}.h1{font-size:clamp(2rem,5vw,4.3rem);line-height:.98;margin:10px 0 14px}.muted{color:var(--muted)}.progress{height:12px;border-radius:100px;background:#252525;overflow:hidden;margin:10px 0}.progress>i{display:block;height:100%;background:linear-gradient(90deg,var(--red2),var(--red))}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:8px}.num{height:46px;border-radius:9px;background:#171717;border:1px solid #3b3b3b;display:grid;place-items:center;font-weight:800;cursor:pointer}.num.available{background:#15803d;border-color:#4ade80;color:#fff}.num.available:hover{background:#166534;outline:2px solid #86efac}.num.available.selected{background:#dcfce7;border-color:#fff;color:#14532d;outline:3px solid #fff;outline-offset:1px}.num.reserved{background:#5e4712;border-color:#9a7418;color:#ffe49f;cursor:not-allowed}.num.payment_informed{background:#654500;border-color:#d39600;color:#ffe3a0;cursor:not-allowed}.num.paid{background:#541216;border-color:#9c1f25;color:#ffb9bc;cursor:not-allowed}.legend{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0 20px}.dot{width:10px;height:10px;display:inline-block;border-radius:99px;margin-right:5px}.dot.av{background:var(--green)}.dot.rs{background:var(--yellow)}.dot.pd{background:var(--red)}.panel{background:linear-gradient(180deg,#171717,#111);border:1px solid var(--line);border-radius:16px;padding:18px}.stickybar{position:sticky;bottom:10px;background:#0e0e0ef2;border:1px solid #3a3a3a;border-radius:14px;padding:14px;display:flex;justify-content:space-between;align-items:center;gap:14px;margin:18px 0}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat strong{font-size:1.7rem}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px;border-bottom:1px solid #2b2b2b;text-align:left}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:block;font-weight:800;margin-bottom:6px}input,textarea,select{width:100%;padding:12px;border-radius:10px;border:1px solid #3c3c3c;background:#111;color:white}textarea{min-height:100px}.spacer{height:24px}.alert{padding:12px;border-radius:10px;background:#442427;border:1px solid #8d3338}.success{background:#173528;border-color:#2b865d}.qr{width:240px;background:white;padding:12px;border-radius:12px}.actions{display:flex;gap:8px;flex-wrap:wrap}.small{font-size:.85rem}.admin-layout{display:grid;grid-template-columns:220px 1fr;gap:20px;padding:22px 0}.side{position:sticky;top:82px;height:max-content}.side a{display:block;padding:10px;border-radius:9px;color:#ddd}.side a:hover{background:#222}.rafflecards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.rafflecard img{width:100%;height:190px;object-fit:cover;border-radius:12px;background:#191919}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}.center{text-align:center}
@media(max-width:760px){.hero{grid-template-columns:1fr;padding:24px 0}.cards{grid-template-columns:1fr 1fr}.formgrid{grid-template-columns:1fr}.admin-layout{grid-template-columns:1fr}.side{position:static;display:flex;gap:4px;overflow:auto}.side a{white-space:nowrap}.grid{grid-template-columns:repeat(5,1fr)}.stickybar{bottom:6px}.navin{min-height:56px}.qr{width:210px}}

/* Preserve the edited photo in both public views and at every screen width. */
.heroimg,.rafflecard img{width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;background:#191919}

.raffle-gallery{display:grid;gap:12px}.raffle-gallery video{background:#000}.public-buyer{padding:10px 0;border-bottom:1px solid #444}.media-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:14px 0}.media-admin-grid article{background:#0c0c0c;border:1px solid #333;border-radius:12px;padding:10px}.media-admin-grid img,.media-admin-grid video{width:100%;height:160px;object-fit:contain;background:#000;border-radius:8px}.media-admin-grid form{margin-top:8px}

.home-media-picker{border:1px solid #3c3c3c;border-radius:12px;padding:16px}.home-media-picker legend{font-weight:900;padding:0 8px}.home-media-picker input[type=radio]{width:auto;margin-right:7px}.home-media-picker .media-admin-grid label{margin-top:10px}

.raffle-description{white-space:pre-line;line-height:1.55}

.raffle-card-prizes{display:grid;gap:5px;margin:12px 0;padding:10px;border-left:3px solid var(--red);background:#0b0b0bcc;border-radius:0 8px 8px 0}.raffle-card-prizes span{display:block;color:#ddd;white-space:pre-line;line-height:1.35}.raffle-prizes{margin:18px 0}.raffle-prizes h2{margin-top:0}
.raffle-gallery{display:grid;gap:18px;justify-items:center}.raffle-media-item{position:relative;width:100%;display:grid;place-items:center;overflow:hidden}.raffle-media-item.portrait{width:min(100%,520px)}.raffle-media-item .heroimg{display:block;width:auto;max-width:100%;height:auto;max-height:78vh;aspect-ratio:auto;object-fit:contain;background:#111}.rafflecard-media{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:18px;background:#181818}.media-expand{display:none}.media-lightbox{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:#000e}.media-lightbox img,.media-lightbox video{max-width:100%;max-height:92vh;object-fit:contain}.media-lightbox-close{position:fixed;top:14px;right:14px}.media-lightbox-open{overflow:hidden}@media(max-width:760px){.raffle-media-item,.raffle-media-item.portrait{width:100%}.raffle-media-item .heroimg{width:100%;height:auto;max-height:none;aspect-ratio:16/10;object-fit:contain}.media-expand{display:block;position:absolute;right:10px;bottom:10px;background:#090909dd;border:1px solid #777}}


/* Botões administrativos com medidas consistentes. */
.btn,button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;line-height:1.15}
.actions .btn,.actions button{min-width:160px}
.raffle-prizes-admin>summary{cursor:pointer;padding:8px 0;font-size:1.35rem}.raffle-prizes-admin>summary::marker{color:var(--red)}



/* Cabeçalho da rifa: título separado e ações alinhadas em qualquer resolução. */
.raffle-admin-header{display:grid;gap:14px;margin-bottom:16px}.raffle-admin-header h1{margin:0;overflow-wrap:anywhere}.raffle-admin-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;align-items:stretch}.raffle-admin-buttons form{display:block;margin:0}.raffle-admin-buttons .btn,.raffle-admin-buttons button{width:100%;height:44px;min-width:0;min-height:44px;padding:10px 12px;text-align:center}.raffle-admin-buttons form button{display:flex}@media(max-width:520px){.raffle-admin-buttons{grid-template-columns:1fr 1fr}}

/* Painel administrativo responsivo — evita sobreposição em celulares. */
.admin-layout>section,.admin-layout .panel,.admin-layout form,.admin-layout fieldset{min-width:0;max-width:100%}
.admin-layout h1,.admin-layout h2,.admin-layout h3{overflow-wrap:anywhere}
.admin-layout input,.admin-layout select,.admin-layout textarea{min-width:0;max-width:100%}
.admin-layout table{max-width:100%}
#number-buyer-dialog{width:min(620px,94vw);max-width:94vw;max-height:90vh;overflow:auto;padding:clamp(14px,4vw,24px)}
@media(max-width:760px){
 .admin-layout{width:min(100% - 20px,1160px);padding:12px 0;gap:12px}
 .admin-layout>section{width:100%;overflow:visible}
 .panel{padding:14px}
 .cards{grid-template-columns:1fr 1fr}
 .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;width:100%;gap:8px}
 .actions>*{min-width:0;max-width:100%}
 .actions>form{width:100%;margin:0}
 .actions>.btn,.actions>button,.actions>label.btn,.actions>form>button{width:100%;min-width:0;min-height:44px;height:auto;white-space:normal;text-align:center}
 .actions>input,.actions>select{width:100%;min-width:0}
 .table{display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
 .table th,.table td{min-width:110px;vertical-align:top}
 .table td .actions{min-width:150px;grid-template-columns:1fr}
 .raffle-admin-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}
 .raffle-admin-buttons .btn,.raffle-admin-buttons button{height:auto;min-height:44px}
 .side{max-width:100%;padding:10px}.side form{flex:0 0 auto}.side form button{white-space:nowrap}
 button,.btn{max-width:100%;white-space:normal}
}
@media(max-width:520px){
 .cards{grid-template-columns:1fr}
 .actions{grid-template-columns:1fr}
 .raffle-admin-buttons{grid-template-columns:1fr 1fr}
 .formgrid{grid-template-columns:1fr}
 .stat strong{font-size:1.35rem;overflow-wrap:anywhere}
 #number-buyer-dialog .actions{grid-template-columns:1fr}
}

/* O sorteado fica vermelho vivo; após abrir o WhatsApp passa ao vermelho escuro. */
.num.paid.raffle-winner{background:#d93640;border-color:#ff858d;color:#fff;box-shadow:inset 0 0 0 2px #f05a64}
.dot.raffle-winner{background:#d93640;border:1px solid #ff858d}
.num.paid.raffle-winner.winner-contacted,.num.paid.winner-contacted{background:#8a1019;border-color:#d95760;color:#fff;box-shadow:inset 0 0 0 2px #ad1b25}
.dot.winner-contacted{background:#8a1019;border:1px solid #d95760}

/* Seções administrativas extensas ficam recolhidas por padrão. */
.raffle-prizes-admin>summary,.raffle-reservations-admin>summary,.raffle-counter-sale-admin>summary{cursor:pointer;padding:8px 0;font-size:1.2rem}
.raffle-prizes-admin>summary::marker,.raffle-reservations-admin>summary::marker,.raffle-counter-sale-admin>summary::marker{color:var(--red)}
.raffle-reservations-content,.raffle-counter-sale-content{padding-top:14px}


/* Conteúdo da rifa recolhido, com ação evidente em celular e computador. */
.raffle-heading{grid-template-columns:1fr}
.client-collapsible{padding:0;overflow:hidden}
.client-toggle{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;cursor:pointer;user-select:none}
.client-toggle::-webkit-details-marker{display:none}
.client-toggle-heading{display:flex;align-items:center;gap:16px;min-width:0}
.client-toggle-heading>span:last-child{display:grid;gap:4px}
.client-toggle-heading strong{font-size:1.25rem;color:#fff}
.client-toggle-heading small{color:var(--muted);font-size:.95rem}
.client-toggle-icon{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;border:2px solid var(--red);border-radius:14px;background:#351316;color:#ff5965;font-weight:900}
.client-buyers-icon{font-size:.72rem;letter-spacing:3px}
.client-toggle-action{min-width:300px;text-align:center;padding:16px 22px;border-radius:12px;background:var(--red);color:#fff;font-weight:900;letter-spacing:.25px}
.client-toggle-action b{font-size:1.35em;margin-left:10px}
.client-toggle .toggle-open{display:none}
.client-collapsible[open] .toggle-closed{display:none}
.client-collapsible[open] .toggle-open{display:inline}
.client-collapsible-content{padding:0 20px 20px}
.client-media-panel .raffle-gallery{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.client-buyers-panel{margin:18px 0}
@media(max-width:700px){
 .client-toggle{display:grid;gap:14px;padding:16px}
 .client-toggle-action{min-width:0;width:100%;padding:13px 12px}
 .client-toggle-heading strong{font-size:1.12rem}
 .client-toggle-heading small{font-size:.88rem}
 .client-toggle-icon{width:52px;height:52px;flex-basis:52px}
 .client-collapsible-content{padding:0 14px 14px}
 .client-media-panel .raffle-gallery{grid-template-columns:1fr}
}

/* Situação e horários das rifas na visão geral do painel. */
.client-raffle-card{position:relative;border-left:6px solid #777;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}
.client-raffle-card.is-open{border-left-color:#25c96d;box-shadow:0 0 0 1px #25c96d33}
.client-raffle-card.is-closed{border-left-color:#ed1827;box-shadow:0 0 0 1px #ed182733}
.client-raffle-card.is-future{border-left-color:#d99d2b;box-shadow:0 0 0 1px #d99d2b33}
.client-raffle-card>.admin-raffle-status{margin-bottom:12px}
.admin-rafflecards{grid-template-columns:repeat(auto-fit,minmax(430px,1fr))}
.admin-raffle-card{padding:0;overflow:hidden;border-left:6px solid #777}
.admin-raffle-card.is-open{border-left-color:#25c96d}
.admin-raffle-card.is-closed{border-left-color:#ed1827}
.admin-raffle-card.is-future{border-left-color:#d99d2b}
.admin-raffle-card-link{display:grid;grid-template-columns:minmax(170px,36%) minmax(0,1fr);color:inherit;text-decoration:none}
.admin-raffle-card-media{min-height:230px;background:#090909;display:grid;place-items:center;overflow:hidden}
.admin-raffle-card .admin-raffle-card-media img{width:100%;height:100%;min-height:230px;aspect-ratio:auto;object-fit:cover;border-radius:0;background:#090909}
.admin-raffle-card .admin-raffle-image-empty{width:100%;height:100%;min-height:230px;border:0;border-radius:0}
.admin-raffle-card-body{padding:20px;min-width:0}
.admin-raffle-card-body h3{margin:10px 0 6px;overflow-wrap:anywhere}
.admin-raffle-status{display:inline-flex;padding:6px 11px;border-radius:999px;border:1px solid;font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.8px}
.admin-raffle-status.open{color:#82f0ad;background:#123522;border-color:#25c96d}
.admin-raffle-status.closed{color:#ff9aa1;background:#441216;border-color:#ed1827}
.admin-raffle-status.future{color:#ffd88a;background:#3d2b0d;border-color:#d99d2b}
.admin-raffle-times{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.admin-raffle-times>div{padding:10px;border-radius:10px;background:#0b0b0bc7;border:1px solid #333}
.admin-raffle-times span,.admin-raffle-times strong{display:block}
.admin-raffle-times span{color:#aaa;font-size:.76rem;margin-bottom:4px}
.admin-raffle-times strong{font-size:.9rem;line-height:1.25}
.admin-raffle-card-actions{padding:0 20px 20px}
.admin-raffle-card-actions .btn{flex:1;min-height:44px;display:grid;place-items:center}
.duplicate-source-photo{margin:0 0 20px}.duplicate-source-photo h2{margin-top:0}.duplicate-source-photo img{display:block;width:min(100%,620px);max-height:440px;object-fit:contain;background:#080808;border:1px solid #444;border-radius:12px;margin:10px auto}
.raffle-config-page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.raffle-config-page-heading h1{margin-bottom:5px}.raffle-config-page-heading p{margin:0}.raffle-config-status{background:#391317;color:#ff8d95;border:1px solid #7e222a;padding:7px 11px;border-radius:999px;font-size:.76rem;font-weight:900;white-space:nowrap}.raffle-config-form{display:block}.raffle-config-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.raffle-config-card{background:#181818;border:1px solid #3d3d3d;border-left:6px solid #ed1827;border-radius:13px;padding:18px;min-width:0;box-shadow:0 0 0 1px #ed18271f,0 8px 20px #0005}.raffle-config-card>header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.raffle-config-card>header h2{font-size:1.08rem;margin:0 0 4px}.raffle-config-card>header p{font-size:.8rem;color:#aaa;margin:0}.raffle-config-icon{width:32px;height:32px;border-radius:8px;background:#371115;color:#ff5d68;display:grid;place-items:center;flex:none;font-weight:900}.raffle-config-card-wide{grid-column:1/-1}.raffle-config-card .formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.raffle-config-card .prize-field{background:#101010;margin-top:10px}.raffle-config-media-card .photo-editor-layout{margin-top:0}.raffle-config-media-card .duplicate-source-photo h3{margin:0}.raffle-config-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.raffle-config-actions>*{min-width:170px;text-align:center}
@media(max-width:760px){.raffle-config-page-heading{align-items:flex-start;flex-direction:column}.raffle-config-sections{grid-template-columns:1fr}.raffle-config-card-wide{grid-column:auto}.raffle-config-card{padding:15px}.raffle-config-card .formgrid{grid-template-columns:1fr}.raffle-config-actions{position:sticky;bottom:0;z-index:6;margin:16px -15px -15px;padding:11px 15px;background:#090909f2;border-top:1px solid #3b2022}.raffle-config-actions>*{min-width:0;flex:1}.duplicate-source-photo img{max-height:330px}}
/* Reflexo suave no computador e resposta visual ao toque no celular. */
.client-raffle-card,.admin-raffle-card{isolation:isolate}
.client-raffle-card::after,.admin-raffle-card::after{content:"";position:absolute;inset:-70%;z-index:5;pointer-events:none;background:linear-gradient(115deg,transparent 43%,#ffffff24 50%,transparent 57%);transform:translateX(-65%)}
@media(min-width:761px){
 .client-raffle-card,.admin-raffle-card{transition:transform .6s ease,box-shadow .6s ease}
 .client-raffle-card .rafflecard-media,.client-raffle-card>img,.admin-raffle-card-media img{transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .6s ease}
 .client-raffle-card:hover,.admin-raffle-card:hover{transform:scale(1.01);box-shadow:0 0 18px #ed182722,0 13px 28px #000a}
 .client-raffle-card:hover::after,.admin-raffle-card:hover::after{animation:raffle-card-sweep 1.1s ease}
 .client-raffle-card:hover .rafflecard-media,.client-raffle-card:hover>img,.admin-raffle-card:hover .admin-raffle-card-media img{transform:scale(1.035);filter:saturate(1.06) brightness(1.025)}
}
@keyframes raffle-card-sweep{to{transform:translateX(65%)}}
@media(max-width:760px){
 .admin-rafflecards{grid-template-columns:1fr}
 .admin-raffle-card-link{display:block}
 .admin-raffle-card-media{height:210px;min-height:0}
 .admin-raffle-card .admin-raffle-card-media img{width:100%;height:210px;min-height:0;object-fit:contain}
 .admin-raffle-card .admin-raffle-image-empty{height:210px;min-height:0}
 .admin-raffle-times{grid-template-columns:1fr}
 .admin-raffle-card-actions{grid-template-columns:1fr 1fr;padding:0 16px 16px}
 .client-raffle-card,.admin-raffle-card{transition:transform .18s ease,box-shadow .25s ease}
 .client-raffle-card .rafflecard-media,.client-raffle-card>img,.admin-raffle-card-media img{transition:transform .38s ease}
 .client-raffle-card.raffle-card-tap-active,.admin-raffle-card.raffle-card-tap-active{transform:scale(.965);box-shadow:0 3px 12px #000c}
 .client-raffle-card.raffle-card-tap-active .rafflecard-media,.client-raffle-card.raffle-card-tap-active>img,.admin-raffle-card.raffle-card-tap-active .admin-raffle-card-media img{transform:scale(1.045)}
}
/* Disponibilidade compacta da rifa no painel */
.available-compact{display:grid;grid-template-columns:92px minmax(260px,1fr) auto;gap:18px;align-items:center;margin-bottom:18px}
.available-ring{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:#111;position:relative}
.available-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.available-ring circle{fill:none;stroke-width:9}
.available-ring-base{stroke:#292929}
.available-ring-progress{stroke:#e51b2b;stroke-linecap:round;stroke-dasharray:var(--sold-percent) 100;animation:available-ring-load 3.8s ease-out infinite;transition:stroke-dasharray .65s ease}
@keyframes available-ring-load{
  0%{stroke-dasharray:0 100;stroke:#6f353a}
  18%{stroke:#96323a}
  34%{stroke:#c42634}
  47%,100%{stroke-dasharray:var(--sold-percent) 100;stroke:#e51b2b}
}
.available-ring span{position:relative;z-index:1;text-align:center;font-weight:900;font-size:.82rem}
.available-ring b{display:block;font-size:1.55rem;color:#ff5260}
.available-copy-summary h2{margin:0 0 5px}
.available-copy-summary p{margin:0 0 9px;color:#bbb}
.available-copy-summary p strong{color:#ff5260;font-size:1.2rem}
.available-sold-caption{display:block;color:#ff6570;margin-bottom:8px}
.available-track{height:12px;border-radius:999px;background:#292929;overflow:hidden;border:1px solid #3b3b3b}
.available-track i{display:block;height:100%;background:linear-gradient(90deg,#e51b2b,#ff5561);border-radius:inherit}
.available-compact #copy-available{white-space:nowrap}
@media(max-width:760px){.available-compact{grid-template-columns:1fr}.available-ring{margin:auto}.available-compact #copy-available{width:100%}}
