:root{--bg:#160e19;--bg2:#241329;--card:rgba(255,255,255,.09);--card2:rgba(255,255,255,.13);--line:rgba(255,255,255,.14);--text:#fff9f4;--muted:#d8c8d1;--gold:#ffd478;--coral:#ff947c;--pink:#ff5ba2;--mint:#73edb6;--danger:#ff8e8e;--radius:22px;--shadow:0 20px 50px rgba(0,0,0,.34)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-height:100dvh;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 8% -15%,#682548 0,transparent 34%),radial-gradient(circle at 95% 6%,#5a2a51 0,transparent 30%),linear-gradient(155deg,var(--bg2),var(--bg) 68%)}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.ambient{position:fixed;width:290px;height:290px;border-radius:50%;filter:blur(72px);opacity:.23;pointer-events:none;z-index:-1}.ambient-a{top:-130px;right:-100px;background:#e04f89}.ambient-b{bottom:-140px;left:-100px;background:#c48c46}.shell{width:min(100%,560px);margin:0 auto;min-height:100dvh;padding:calc(13px + env(safe-area-inset-top)) 16px calc(92px + env(safe-area-inset-bottom))}.wide-shell{width:min(100% - 32px,1120px);margin:0 auto;padding:26px 0 52px}.topbar{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px;margin:0 2px 10px}.topbar b{color:var(--gold);letter-spacing:.08em}.card,.hero,.modal{background:linear-gradient(145deg,var(--card2),var(--card));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(17px)}.hero{padding:23px}.card{padding:17px}.card+.card{margin-top:12px}.section-title{font-size:21px;margin:22px 0 10px}.eyebrow{margin:0 0 8px;color:var(--gold);font-size:11px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.muted{color:var(--muted)}.tiny{color:var(--muted);font-size:11px}.banner{margin:10px 0;padding:14px 15px;border-radius:18px;background:linear-gradient(135deg,rgba(255,212,120,.17),rgba(255,91,162,.13));border:1px solid rgba(255,212,120,.28)}.banner p:last-child{margin-bottom:0}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(31px,8vw,45px);line-height:1.01;letter-spacing:-.045em;margin-bottom:10px}h2{font-size:21px;line-height:1.13;margin-bottom:8px}h3{font-size:16px;margin-bottom:5px}p{line-height:1.45}.field{display:block;margin:14px 0 0;color:var(--muted);font-size:12px;font-weight:800}.input,textarea,select{display:block;width:100%;margin-top:6px;padding:13px 14px;border-radius:15px;border:1px solid rgba(255,255,255,.17);outline:0;background:rgba(12,7,14,.28);color:var(--text)}.input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(255,212,120,.12)}textarea{min-height:100px;resize:vertical}select option{color:#241329}.row{display:flex;gap:9px;flex-wrap:wrap}.row>*{flex:1;min-width:0}.btn,.btn-secondary,.btn-danger,.btn-ghost{border:0;border-radius:15px;min-height:47px;padding:11px 14px;font-weight:900;transition:.16s transform,.16s filter}.btn:hover,.btn-secondary:hover,.btn-danger:hover,.btn-ghost:hover{transform:translateY(-1px);filter:brightness(1.07)}.btn{background:linear-gradient(135deg,var(--gold),var(--coral));color:#2a1423}.btn-secondary{background:rgba(255,255,255,.11);color:var(--text);border:1px solid rgba(255,255,255,.11)}.btn-danger{background:rgba(255,90,90,.16);color:#ffe2e2;border:1px solid rgba(255,90,90,.26)}.btn-ghost{background:transparent;color:var(--gold);padding:7px 4px;min-height:auto}.wide{width:100%}.mini{min-height:38px;padding:8px 10px;font-size:12px}.divider{height:1px;background:var(--line);margin:16px 0}.bottom-nav{position:fixed;z-index:20;left:50%;transform:translateX(-50%);bottom:max(10px,env(safe-area-inset-bottom));width:min(calc(100% - 20px),540px);display:grid;grid-template-columns:repeat(5,1fr);gap:3px;padding:7px;border:1px solid var(--line);border-radius:22px;background:rgba(25,14,29,.88);backdrop-filter:blur(18px);box-shadow:var(--shadow)}.nav{border:0;border-radius:16px;background:transparent;color:var(--muted);padding:8px 2px}.nav span{font-size:20px;display:block}.nav small{font-size:9px;font-weight:800}.nav.active{color:var(--text);background:rgba(255,255,255,.12)}.status{display:inline-block;border-radius:999px;padding:5px 9px;background:rgba(255,255,255,.1);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.status-active{color:var(--mint);background:rgba(115,237,182,.15)}.status-upcoming,.status-locked,.status-pending{color:var(--gold);background:rgba(255,212,120,.14)}.status-paused,.status-maybe{color:#ffbbac;background:rgba(255,148,124,.15)}.status-closed,.status-no,.status-revoked{color:#ffb1b1;background:rgba(255,110,110,.15)}.status-yes,.status-delivered{color:var(--mint);background:rgba(115,237,182,.15)}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:16px 0}.stat{border-radius:17px;padding:13px;background:rgba(255,255,255,.075)}.stat span{display:block;font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.stat b{display:block;font-size:26px;margin-top:4px}.challenge{display:flex;gap:12px;align-items:center}.challenge+.challenge{margin-top:10px}.challenge-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;flex:0 0 auto;background:rgba(255,255,255,.1);font-size:24px}.challenge-main{flex:1;min-width:0}.challenge-main p{font-size:13px;margin:5px 0 0}.challenge-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.rank{display:grid;grid-template-columns:34px 40px 1fr auto;gap:8px;align-items:center;padding:11px 4px;border-bottom:1px solid rgba(255,255,255,.08)}.rank:last-child{border:0}.rank.me{margin:6px -4px;padding:11px 8px;border-radius:15px;background:rgba(255,212,120,.12);border-bottom:0}.rank-num{font-weight:950;color:var(--gold);font-size:17px}.avatar{width:38px;height:38px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.11);overflow:hidden;font-size:21px}.avatar img{width:100%;height:100%;object-fit:cover}.points{font-weight:900;color:var(--gold)}.avatar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:10px 0}.avatar-choice{aspect-ratio:1;border:1px solid transparent;border-radius:14px;background:rgba(255,255,255,.09);color:var(--text);font-size:22px}.avatar-choice.selected{border-color:var(--gold);background:rgba(255,212,120,.14)}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.choice{border:1px solid rgba(255,255,255,.13);border-radius:15px;padding:10px;background:rgba(255,255,255,.06);color:var(--text);text-align:center;font-weight:800}.choice.selected{border-color:var(--gold);background:rgba(255,212,120,.13)}.notice{font-size:12px;border-radius:14px;padding:11px 12px;background:rgba(255,255,255,.06);color:var(--muted);margin:12px 0}.option{width:100%;text-align:left;margin:8px 0}.option.selected{border-color:var(--gold);background:rgba(255,212,120,.14)}.progress{height:8px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden;margin:14px 0}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--pink));border-radius:inherit}.toast-host{position:fixed;left:50%;transform:translateX(-50%);bottom:94px;z-index:99;width:min(92%,430px);display:grid;gap:7px}.toast{padding:12px 14px;border-radius:15px;background:#39213b;border:1px solid var(--line);box-shadow:var(--shadow);font-size:13px;font-weight:700}.toast.error{background:#572b35}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.admin-grid{display:grid;grid-template-columns:220px 1fr;gap:16px}.admin-menu{padding:10px;height:max-content}.admin-menu button{width:100%;text-align:left;border:0;border-radius:13px;padding:11px;background:transparent;color:var(--muted);font-weight:800}.admin-menu button.active{background:rgba(255,255,255,.12);color:var(--text)}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;padding:10px 7px;border-bottom:1px solid rgba(255,255,255,.08);vertical-align:middle}.table th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.qr-card{text-align:center}.qr-card img{width:205px;height:205px;background:#fff;border-radius:16px;padding:10px}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--gold);word-break:break-all;font-size:12px}.tv-shell{width:min(100% - 60px,1400px);margin:0 auto;padding:48px 0}.tv-title{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.tv-title h1{font-size:clamp(48px,6vw,86px)}.tv-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:20px;margin-top:22px}.tv-rank{font-size:clamp(15px,1.5vw,23px);padding:16px 6px}.offline{position:sticky;top:0;z-index:60;padding:10px 13px;text-align:center;border-radius:14px;background:#5c2f38;color:#fff4f4;font-size:12px;font-weight:800}@media(max-width:760px){.admin-grid,.tv-grid{grid-template-columns:1fr}.wide-shell{width:min(100% - 24px,1120px)}.admin-menu{display:flex;overflow:auto}.admin-menu button{min-width:max-content}.tv-shell{width:min(100% - 28px,1400px);padding-top:26px}.tv-title h1{font-size:44px}}

/* v1.5 · Control de la noche */
.compact-card{padding:0 17px 14px}.control-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.control-title h1{margin-bottom:0}.state-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.state-card{min-height:90px;text-align:left;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:12px;background:rgba(255,255,255,.055);color:var(--text)}.state-card b{display:block;margin-bottom:5px}.state-card small{display:block;color:var(--muted);line-height:1.28}.state-card.selected{border-color:var(--gold);background:rgba(255,212,120,.13)}.control-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.control-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.control-row p{margin-bottom:0}.status-draft,.status-private_test{color:#c8bdd1;background:rgba(200,189,209,.15)}.status-published{color:var(--gold);background:rgba(255,212,120,.14)}.status-finalized,.status-recap{color:#b7d6ff;background:rgba(131,184,255,.16)}@media(max-width:520px){.state-grid,.control-actions{grid-template-columns:1fr}.control-row{align-items:stretch;flex-direction:column}.control-row .btn,.control-row .btn-secondary{width:100%}.control-title{align-items:flex-start;flex-direction:column}}

/* v1.6 · actividades paralelas, validaciones y reservas */
.status-approved{color:var(--mint);background:rgba(115,237,182,.15)}
.status-rejected{color:#ffb1b1;background:rgba(255,110,110,.15)}
.status-finished{color:var(--mint);background:rgba(115,237,182,.15)}
.status-playing{color:var(--gold);background:rgba(255,212,120,.14)}
.active-chip-list{display:grid;gap:9px;margin:10px 0 14px}.active-chip{display:flex;gap:10px;align-items:center;padding:11px 12px;border-radius:16px;background:rgba(115,237,182,.08);border:1px solid rgba(115,237,182,.18)}.active-chip span{font-size:20px}.active-chip b{flex:1}.editor-card{border-color:rgba(255,212,120,.4)}.question-row{margin:14px 0 0;border:1px solid var(--line);border-radius:16px;padding:10px 12px;background:rgba(255,255,255,.04)}.question-row legend{padding:0 6px;color:var(--gold);font-size:12px;font-weight:900}.agenda-card{margin-top:12px}.agenda-row{display:grid;grid-template-columns:58px 1fr;gap:9px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.08)}.agenda-row:last-child{border-bottom:0}.agenda-row b{color:var(--gold);font-size:12px}.tv-activity{display:flex;gap:13px;align-items:flex-start;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08)}.tv-activity:last-of-type{border-bottom:0}.tv-activity>span{font-size:33px}.tv-activity h2{margin:0 0 4px}.tv-activity p{margin:0}@media(max-width:500px){.active-chip{align-items:center}.active-chip .mini{flex:0 0 auto}.question-row{padding:8px}.agenda-row{grid-template-columns:52px 1fr}}


/* v1.6.2 · trivia y duelo con estado de respuesta claro */
.quiz-progress{margin:12px 0 14px;padding:11px 13px;border:1px solid rgba(255,212,120,.28);border-radius:15px;background:rgba(255,212,120,.11);color:var(--gold);font-size:12px;font-weight:900;letter-spacing:.02em}.options-list{display:grid;gap:8px}.option{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px}.option-check{display:none;width:24px;height:24px;border-radius:50%;place-items:center;flex:0 0 auto;background:var(--gold);color:#291327;font-size:14px}.option.selected{border-color:var(--gold);background:linear-gradient(135deg,rgba(255,212,120,.28),rgba(255,148,124,.18));box-shadow:0 0 0 2px rgba(255,212,120,.15)}.option.selected .option-check{display:grid}.trivia-question.missing{border-color:var(--danger);box-shadow:0 0 0 2px rgba(255,142,142,.15)}.answer-state{margin:10px 0 0!important}.btn:disabled{cursor:not-allowed;opacity:.52;filter:saturate(.7);transform:none}.option:focus-visible{outline:3px solid rgba(255,212,120,.42);outline-offset:2px}

.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.photo-picker{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:152px;padding:18px;border:1px dashed rgba(255,212,120,.52);border-radius:18px;background:rgba(255,212,120,.07);text-align:center;color:var(--text);cursor:pointer}.photo-picker-icon{font-size:34px}.photo-picker small{color:var(--muted);max-width:310px}.photo-preview{display:block;width:100%;max-height:320px;object-fit:cover;border-radius:16px;margin-top:12px;border:1px solid rgba(255,255,255,.13)}.photo-placeholder{display:grid;place-items:center;min-height:90px;margin-top:12px;border-radius:15px;background:rgba(255,255,255,.05);color:var(--muted);font-size:12px}.upload-status{margin-top:11px;font-size:12px;color:var(--gold);font-weight:800;text-align:center}.vote-result{display:grid;grid-template-columns:1fr auto;gap:5px 10px;align-items:center;padding:8px 0}.vote-result .progress{grid-column:1/-1;margin:0;height:6px}.message-card{padding:14px 0;border-bottom:1px solid rgba(255,255,255,.09)}.message-card:last-child{border-bottom:0}.message-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.message-card p{white-space:pre-wrap;margin:8px 0 0}.photo-card{padding:14px}

/* Party Challenge v2.1 · operación del evento */
.split{display:flex;align-items:center;justify-content:space-between;gap:12px}.gold{color:var(--gold)}.compact{padding:15px}.announcement{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;margin:0 0 14px;border:1px solid rgba(255,212,120,.32);border-radius:18px;background:linear-gradient(135deg,rgba(255,212,120,.17),rgba(255,148,124,.11))}.announcement>span{font-size:24px}.announcement p{margin:4px 0 0;color:var(--text);white-space:pre-wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.question-number{display:block;color:var(--gold);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}.result-notice{border-color:rgba(115,237,182,.22);background:rgba(115,237,182,.09)}.result-notice span{display:inline-block;margin-top:5px}.subeditor{margin-top:13px;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:rgba(255,255,255,.035)}.subeditor>summary{cursor:pointer;padding:12px 13px;font-weight:850;color:var(--text)}.subeditor[open]>summary{border-bottom:1px solid rgba(255,255,255,.09)}.editor-section{padding:12px}.inline-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.checklist{display:grid;gap:9px;margin:0 0 13px}.checklist>div{display:flex;align-items:center;gap:9px;color:var(--muted);font-weight:700}.checklist>div span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid rgba(255,255,255,.18);font-size:12px}.checklist>div.done{color:var(--text)}.checklist>div.done span{background:rgba(115,237,182,.2);border-color:rgba(115,237,182,.45);color:var(--mint)}.payload{white-space:pre-wrap;word-break:break-word;max-height:210px;overflow:auto;border-radius:13px;padding:10px;background:rgba(0,0,0,.18);font-size:11px;color:#ddd1e0}.tv-announcement{display:inline-block;margin-top:14px;max-width:850px;padding:12px 16px;border:1px solid rgba(255,212,120,.36);border-radius:16px;background:rgba(255,212,120,.12);font-weight:850}.vote-tv{margin-top:20px}.recap-intro{max-width:720px;white-space:pre-wrap;font-size:16px;line-height:1.55}.photo-preview-host:empty{display:none}.rank-row{display:grid;grid-template-columns:38px 42px 1fr auto;gap:9px;align-items:center;padding:11px 3px;border-bottom:1px solid rgba(255,255,255,.08)}.rank-row:last-child{border-bottom:0}.rank-row.me{background:rgba(255,212,120,.11);margin:5px -4px;padding:11px 7px;border-radius:14px;border-bottom:0}.rank-avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:13px;background:rgba(255,255,255,.1);font-size:20px}.ranking-list strong{color:var(--gold)}.choice-list{display:grid;gap:8px;margin:10px 0}.center{text-align:center;justify-content:center}.btn-secondary.selected{border-color:var(--gold);background:rgba(255,212,120,.16);color:var(--text)}@media(max-width:600px){.form-grid{grid-template-columns:1fr}.split{align-items:flex-start}.split>.btn-secondary{flex:0 0 auto}.inline-actions{width:100%}.inline-actions .mini{flex:1}.rank-row{grid-template-columns:34px 38px 1fr auto;font-size:13px}.rank-avatar{width:34px;height:34px}.announcement{border-radius:16px}}


/* v2.2.2 · gestión de eventos */
.event-card-list{display:grid;gap:12px}
.event-card{display:flex;align-items:stretch;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.025)}
.event-card-main{min-width:0;flex:1}
.event-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.event-card-head h3{margin:2px 0 0;font-size:1.05rem}
.event-card-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap;max-width:330px}
.event-meta{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:.84rem;margin-top:9px}
.management-card{border-color:rgba(255,185,79,.38)}
.danger-zone{margin-top:16px;padding:14px;border:1px solid rgba(255,95,112,.38);border-radius:14px;background:rgba(255,95,112,.06)}
.danger-zone p{margin:6px 0 12px}
.status-archived{background:rgba(160,170,185,.16);border-color:rgba(160,170,185,.42);color:#e1e7f0}
@media (max-width:720px){.event-card{flex-direction:column}.event-card-actions{justify-content:flex-start;max-width:none}.event-card-head{align-items:flex-start}}


/* Party Challenge v2.3 · Encuentra a alguien */
.qr-hunt-card{border-color:rgba(255,212,120,.34)}
.qr-hunt-manager{border-color:rgba(115,237,182,.26)}
.qr-hunt-progress{height:8px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.09);margin:14px 0 8px}.qr-hunt-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--mint),var(--gold));transition:width .2s ease}
.qr-hunt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.qr-checkpoint{border:1px solid rgba(255,255,255,.12);border-radius:17px;padding:13px;background:rgba(255,255,255,.035)}.qr-checkpoint.complete{border-color:rgba(115,237,182,.46);background:rgba(115,237,182,.075)}.qr-checkpoint.locked{opacity:.72}.qr-checkpoint-head{display:flex;align-items:center;gap:9px}.checkpoint-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:rgba(255,255,255,.1);font-size:19px}.qr-checkpoint-head>div{min-width:0;flex:1}.qr-checkpoint-head b{display:block}.qr-checkpoint-head small{display:block;color:var(--gold);font-size:11px;margin-top:2px}.checkpoint-state{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:rgba(115,237,182,.22);color:var(--mint);font-weight:900}.qr-checkpoint p{font-size:12px;line-height:1.48;margin:11px 0}.qr-checkpoint .tiny{display:block;text-align:center;margin-top:8px}.qr-overview-row{border-color:rgba(255,212,120,.22);background:rgba(255,212,120,.05)}.qr-admin-card{border-color:rgba(255,212,120,.24)}.qr-print-note{display:grid;gap:4px;margin:13px 0;padding:12px;border-radius:14px;background:rgba(255,212,120,.1);border:1px solid rgba(255,212,120,.24)}.qr-print-note span{color:var(--muted);font-size:12px;line-height:1.4}@media(max-width:620px){.qr-hunt-grid{grid-template-columns:1fr}}
@media print{.ambient,.field,.btn,.btn-secondary,.toast-host{display:none!important}.card,.hero{box-shadow:none;background:#fff;color:#111;border-color:#ddd}.muted,.tiny{color:#333}.qr-print-note{background:#f7f7f7;color:#111;border-color:#ddd}}

/* Party Challenge v2.4 · Momento con Carlos y fotos privadas */
.photo-upload-card{margin-top:14px;padding:14px;border:1px solid rgba(255,212,120,.30);border-radius:18px;background:linear-gradient(145deg,rgba(255,212,120,.10),rgba(255,255,255,.035))}.photo-upload-card h3{margin-bottom:4px}.photo-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.photo-source-action{display:flex;min-height:112px;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px;border:1px dashed rgba(255,212,120,.48);border-radius:17px;background:rgba(255,255,255,.045);text-align:center;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.photo-source-action:hover{transform:translateY(-1px);border-color:var(--gold);background:rgba(255,212,120,.11)}.photo-source-action span{font-size:29px}.photo-source-action b{font-size:13px}.photo-source-action small{color:var(--muted);font-size:11px}.photo-preview-host{margin-top:8px}.photo-preview-host:empty{display:none}.photo-preview-host .photo-preview{margin-top:0}.photo-file-meta{display:grid;gap:3px;margin-top:8px;padding:9px 10px;border-radius:12px;background:rgba(255,255,255,.055);font-size:12px}.photo-file-meta small{color:var(--muted)}.upload-status.success{color:var(--mint)}.upload-status.error{color:var(--danger)}.photo-retry-notice{border-color:rgba(255,148,124,.34);background:rgba(255,148,124,.10)}.photo-admin-notice{margin:0}.photo-guide{border-color:rgba(115,237,182,.22)}.photo-admin-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}.photo-admin-summary>div{padding:10px;border-radius:13px;background:rgba(255,255,255,.055);text-align:center}.photo-admin-summary span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.photo-admin-summary b{display:block;margin-top:4px;color:var(--gold);font-size:20px}.validation-card{border-color:rgba(255,255,255,.13)}.photo-validation-card{border-color:rgba(255,212,120,.34)}.validation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.validation-head .challenge-icon{width:42px;height:42px;font-size:21px}.validation-head h3{margin:0 0 4px}.validation-head p{margin:0}.photo-review-content{display:grid;gap:10px;margin:12px 0}.photo-review-content p{margin:0;white-space:pre-wrap}.photo-review-content .wide{justify-content:center;text-align:center}@media(max-width:480px){.photo-source-grid{grid-template-columns:1fr}.photo-source-action{min-height:88px}.photo-admin-summary{grid-template-columns:repeat(3,1fr)}.photo-admin-summary>div{padding:8px}.photo-admin-summary b{font-size:18px}}

/* Party Challenge v2.5 · Fotos grupales temáticas */
.required-mark{display:inline-flex;align-items:center;margin-left:5px;padding:2px 7px;border-radius:999px;background:rgba(255,148,124,.17);color:#ffd6ca;font-size:10px;letter-spacing:.02em;text-transform:uppercase}.group-photo-panel{border-color:rgba(143,191,255,.34);background:linear-gradient(145deg,rgba(143,191,255,.09),rgba(255,255,255,.028))}.group-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.group-photo-item{min-width:0;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.035)}.group-photo-item.has-submission{border-color:rgba(115,237,182,.34);background:rgba(115,237,182,.055)}.group-photo-item-head{display:flex;align-items:center;gap:10px}.group-photo-item-head .challenge-icon{flex:0 0 auto}.group-photo-item-head>div{min-width:0}.group-photo-item-head b{display:block}.group-photo-item-head small{display:block;margin-top:3px;color:var(--gold);font-size:11px}.group-photo-item>p{font-size:12px;line-height:1.5;margin:12px 0}.group-photo-item .photo-upload-card{margin-top:12px;padding:12px}.group-photo-item .photo-source-grid{grid-template-columns:1fr;margin:11px 0}.group-photo-item .photo-source-action{min-height:74px}.group-photo-item .photo-source-action span{font-size:23px}.group-photo-item .photo-source-action small{display:none}.group-photo-item .photo-preview{max-height:240px}.group-photo-admin-list{display:grid;gap:12px}.group-photo-manager{border-color:rgba(143,191,255,.34)}.photo-config-grid{margin-top:12px}.group-photo-upload-card{border-color:rgba(143,191,255,.42);background:linear-gradient(145deg,rgba(143,191,255,.10),rgba(255,255,255,.025))}
@media(max-width:980px){.group-photo-grid{grid-template-columns:1fr}}
.group-photo-overview-row{border-color:rgba(143,191,255,.28);background:rgba(143,191,255,.06)}

/* Party Challenge v2.6 · Desafíos sorpresa y confirmación de grupos */
.surprise-panel,.surprise-manager{border-color:rgba(211,157,255,.40);background:linear-gradient(145deg,rgba(211,157,255,.10),rgba(255,255,255,.028))}
.surprise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.surprise-item{min-width:0;padding:14px;border:1px solid rgba(211,157,255,.28);border-radius:18px;background:rgba(211,157,255,.045)}
.surprise-item.has-submission{border-color:rgba(115,237,182,.34);background:rgba(115,237,182,.055)}
.surprise-item>p{font-size:12px;line-height:1.5;margin:12px 0}
.surprise-overview-row{border-color:rgba(211,157,255,.32);background:rgba(211,157,255,.07)}
.team-picker{margin:13px 0;padding:11px;border:1px solid rgba(211,157,255,.32);border-radius:15px;background:rgba(211,157,255,.055)}
.team-picker legend{padding:0 5px;font-size:13px;font-weight:850}.team-picker legend .tiny{font-weight:600}
.team-member-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.team-member-option{display:flex;align-items:center;gap:7px;padding:8px;border:1px solid rgba(255,255,255,.11);border-radius:12px;background:rgba(255,255,255,.035);font-size:12px;cursor:pointer}.team-member-option input{accent-color:var(--gold)}.team-member-option span{font-size:18px}.team-member-option b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-invitation{margin-top:12px;padding:13px;border:1px solid rgba(255,212,120,.38);border-radius:16px;background:rgba(255,212,120,.09)}.team-invitation p{margin:6px 0}.team-invitation .control-actions{margin-top:10px}
.social-text-form{margin-top:14px;padding:14px;border:1px solid rgba(211,157,255,.35);border-radius:18px;background:linear-gradient(145deg,rgba(211,157,255,.10),rgba(255,255,255,.025))}
.team-review{margin:12px 0;padding:11px;border:1px solid rgba(211,157,255,.28);border-radius:14px;background:rgba(211,157,255,.055)}.team-review-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.team-review-pill{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.08);font-size:11px}.team-review-pill.confirmed{background:rgba(115,237,182,.16);color:var(--mint)}.team-review-pill.declined{background:rgba(255,95,112,.14);color:#ffd0d6}.team-review-pill.pending{background:rgba(255,212,120,.13);color:#ffe0a3}
.social-review-content{display:grid;gap:8px;margin:12px 0;padding:12px;border-radius:14px;background:rgba(255,255,255,.045)}.social-review-content p{margin:0;white-space:pre-wrap}
.surprise-admin-list{display:grid;gap:12px;margin-top:12px}
@media(max-width:980px){.surprise-grid{grid-template-columns:1fr}}
@media(max-width:520px){.team-member-list{grid-template-columns:1fr}.team-member-option{padding:9px}}


/* Party Challenge v2.7 · Premios secretos por niveles */
.secret-reward-banner{display:flex;align-items:center;gap:13px;margin:14px 0;padding:15px;border:1px solid rgba(255,212,120,.55);border-radius:19px;background:linear-gradient(135deg,rgba(255,212,120,.18),rgba(255,255,255,.045));box-shadow:0 12px 32px rgba(255,185,79,.08)}
.secret-reward-banner>div{min-width:0;flex:1}.secret-reward-banner h3{margin:1px 0 4px}.secret-reward-banner p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.secret-reward-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:rgba(255,212,120,.17);font-size:24px}
.secret-reward-progress{display:flex;align-items:center;gap:11px;margin:14px 0;padding:12px 14px;border:1px solid rgba(255,212,120,.24);border-radius:16px;background:rgba(255,212,120,.055)}.secret-reward-progress>span{font-size:21px}.secret-reward-progress>div{display:grid;gap:2px}.secret-reward-progress small{color:var(--muted);font-size:12px}.secret-reward-progress.complete{border-color:rgba(115,237,182,.34);background:rgba(115,237,182,.07)}
.secret-reward-overview{border-color:rgba(255,212,120,.34)}.secret-tier-list{display:grid;gap:14px}.secret-tier-card{border-color:rgba(255,212,120,.34);background:linear-gradient(145deg,rgba(255,212,120,.07),rgba(255,255,255,.025))}.secret-tier-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}.secret-tier-stats>div{padding:10px;border-radius:13px;background:rgba(255,255,255,.055);text-align:center}.secret-tier-stats span{display:block;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.secret-tier-stats b{display:block;margin-top:4px;color:var(--gold);font-size:17px}
.secret-unlock-list{display:grid;gap:8px}.secret-unlock-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid rgba(255,255,255,.10);border-radius:13px;background:rgba(255,255,255,.035)}.secret-unlock-row>div{min-width:0}.secret-unlock-row b{display:block}.secret-unlock-row small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.35}.secret-unlock-row .inline-actions{flex-wrap:nowrap}.secret-unlock-row .status{flex:0 0 auto}
.secret-player-summary{border-color:rgba(255,212,120,.38)}.secret-player-notice{margin:14px 0;border-color:rgba(255,212,120,.43);background:rgba(255,212,120,.10)}.secret-player-reward-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid rgba(255,255,255,.09)}.secret-player-reward-row>div{min-width:0;flex:1}.secret-player-reward-row b{display:block}.secret-player-reward-row small{display:block;margin-top:3px;color:var(--muted);font-size:12px;line-height:1.4}.secret-player-reward-row.delivered{opacity:.74}.secret-delivered-list{margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.10)}
@media(max-width:620px){.secret-tier-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.secret-unlock-row{align-items:flex-start;flex-direction:column}.secret-unlock-row .inline-actions{width:100%}.secret-reward-banner{align-items:flex-start}.secret-reward-banner .btn-secondary{flex:0 0 auto}}

/* Party Challenge v2.8 · Invitaciones, modo noche y recuerdo final */
.hidden{display:none!important}
.invitation-card{border-color:rgba(255,212,120,.42);background:linear-gradient(145deg,rgba(255,212,120,.09),rgba(255,255,255,.025))}
.auth-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:13px 0}
.auth-choice{display:grid;gap:4px;min-height:116px;padding:14px;border:1px solid rgba(255,255,255,.14);border-radius:17px;background:rgba(255,255,255,.035);color:var(--text);text-align:left;cursor:pointer}
.auth-choice span{font-size:26px}.auth-choice small{color:var(--muted);line-height:1.35}.auth-choice.selected{border-color:var(--gold);background:rgba(255,212,120,.12);box-shadow:0 0 0 2px rgba(255,212,120,.09)}
.invite-panel{display:grid;gap:11px}.invitation-message{min-height:136px;resize:vertical}.invitation-admin-card{border-color:rgba(255,212,120,.4)}
.player-progress-card{border-color:rgba(115,237,182,.24)}.player-progress-card small{color:var(--muted)}.final-event-notice{border-color:rgba(143,191,255,.4);background:rgba(143,191,255,.09)}
.night-status-card{border-color:rgba(255,212,120,.42);background:linear-gradient(145deg,rgba(255,212,120,.10),rgba(255,255,255,.025))}.night-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.night-close-card{border-color:rgba(255,148,124,.38)}
.recap-selection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.recap-selection-card{margin:0}.recap-selection-card .wide{justify-content:center;text-align:center}.recap-hero{border-bottom:1px solid rgba(255,212,120,.18)}.recap-stats{border-color:rgba(255,212,120,.26)}
.recap-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.recap-photo-card{overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.035)}.recap-photo-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.recap-photo-card>div{padding:12px}.recap-photo-card p{margin:6px 0;color:var(--muted);font-size:12px;line-height:1.45}.recap-photo-card small{color:var(--muted)}
@media(max-width:720px){.auth-choice-grid,.recap-selection-grid,.recap-photo-grid{grid-template-columns:1fr}.night-shortcuts{grid-template-columns:1fr}.auth-choice{min-height:92px}.recap-photo-card img{aspect-ratio:16/10}}

/* v2.8.6 · autorización segura entre dispositivos */
.admin-code-card h2{font-size:clamp(1.65rem,5vw,2.35rem);letter-spacing:.12em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-word}.event-meta span{display:inline-flex;align-items:center;gap:.25rem}


/* Perfiles sociales desde ranking y muro. */
.pc-rank-person-open,.pc-wall-author-open,.pc-wall-comment-open,.pc-wall-comment-name{
  appearance:none;border:0;background:transparent;color:inherit;
  font:inherit;cursor:pointer;text-align:left;padding:0;
}
.pc-rank-person-open{display:flex;align-items:center;gap:12px;min-width:0}
.pc-rank-person-open .rank-avatar{flex-shrink:0}
.pc-rank-person-name{font-weight:750;overflow-wrap:anywhere}
.pc-wall-author-open{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.pc-wall-author-label{display:block;min-width:0}
.pc-wall-author-label b,.pc-wall-author-label small{display:block}
.pc-wall-author-label small{color:var(--muted)}
.pc-wall-comment-open{width:32px;height:32px}
.pc-wall-comment-name{font-weight:750;font-size:13px}
.pc-rank-person-open:focus-visible,.pc-wall-author-open:focus-visible,
.pc-wall-comment-open:focus-visible,.pc-wall-comment-name:focus-visible{
 outline:2px solid #f4d399;outline-offset:3px;border-radius:8px;
}
.pc-participant-overlay{
 position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;
 padding:20px;background:rgba(10,6,17,.8);backdrop-filter:blur(6px);
}
.pc-participant-dialog{
 position:relative;width:min(100%,420px);max-height:90vh;overflow:auto;
 border:1px solid rgba(255,255,255,.2);border-radius:22px;
 padding:24px;background:#26132e;color:#fff;box-shadow:0 22px 70px rgba(0,0,0,.55);
}
.pc-participant-close{position:absolute;right:12px;top:10px;background:transparent;
 border:0;color:inherit;font-size:28px;cursor:pointer}
.pc-participant-content{padding-top:16px;display:grid;gap:14px}
.pc-participant-identity{display:flex;align-items:center;gap:14px}
.pc-participant-identity h2{font-size:1.3rem;margin:0 0 5px}
.pc-participant-identity p{margin:2px 0}
.pc-participant-photo{flex:0 0 64px;width:64px;height:64px;border-radius:50%;
 display:grid;place-items:center;background:rgba(255,255,255,.1);overflow:hidden;font-size:30px}
.pc-participant-photo img{width:100%;height:100%;object-fit:cover;display:block}
.pc-participant-note{font-size:.9rem;line-height:1.5;margin:0}


/* Ranking: una sola distribución estable para móvil y escritorio. */
.ranking-list .rank-row{
  display:grid;
  grid-template-columns:32px minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  align-items:center;
  gap:4px 10px;
  min-width:0;
  padding:12px 8px;
}
.ranking-list .rank-row > b{
  grid-column:1;grid-row:1;white-space:nowrap;
}
.ranking-list .rank-row > .pc-rank-person-open{
  grid-column:2;grid-row:1;
  display:flex;align-items:center;gap:10px;
  width:100%;min-width:0;max-width:100%;
  text-align:left;
}
.ranking-list .rank-row .rank-avatar{
  flex:0 0 38px;width:38px;height:38px;
}
.ranking-list .rank-row .pc-rank-person-name{
  display:block;flex:1 1 auto;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  overflow-wrap:normal;word-break:normal;line-height:1.3;
  font-size:clamp(.9rem,3.6vw,1rem);font-weight:750;
}
.ranking-list .rank-row > strong{
  grid-column:3;grid-row:1;
  white-space:nowrap;text-align:right;justify-self:end;
}
.ranking-list .rank-row > .pc-rank-person{
  grid-column:2 / 4;grid-row:2;
  display:flex;align-items:center;justify-content:flex-start;
  min-width:0;margin:0;padding-left:48px;
}
.ranking-list .rank-row > .pc-rank-person:empty{display:none}
.ranking-list .rank-row > .pc-rank-person a{
  white-space:nowrap;font-size:.78rem;text-decoration:none;
}
@media(max-width:380px){
  .ranking-list .rank-row{grid-template-columns:27px minmax(0,1fr) auto;gap:4px 7px;padding:10px 4px}
  .ranking-list .rank-row .rank-avatar{flex-basis:32px;width:32px;height:32px}
  .ranking-list .rank-row > .pc-rank-person{padding-left:42px}
}
