/* Piensa Diferente v2.2 — base compartida: tokens, componentes, login, animaciones */
:root{
  --bg:#F6F1E7; --surface:#fff; --surface-2:#FBF7EF; --text:#17120E; --muted:#6F665B; --faint:#A39A8D; --line:#E6DDCB; --outline:#17120E;
  --orange:#F2561D; --orange-d:#C94310; --orange-soft:#FFE4D8;
  --yellow:#FFB400; --yellow-d:#D98F00; --yellow-soft:#FFF0C2; --yellow-ink:#8A5A00;
  --green:#37E06F; --green-d:#1FA854; --green-soft:#D8FAE3; --green-ink:#14803B;
  --blue:#3AB5FF; --blue-d:#1E8FD6; --blue-soft:#DCF1FF; --blue-ink:#1A74B0;
  --red:#E5383B; --red-d:#B92225; --red-soft:#FFE0E0; --red-ink:#C42629;
  --purple:#8B6CFF; --purple-d:#6A4DDB;
  --primary:var(--orange); --primary-d:var(--orange-d); --primary-soft:var(--orange-soft);
  --shadow:0 1px 0 rgba(23,18,14,.04),0 14px 34px -18px rgba(23,18,14,.28);
  --r:26px; --r-m:18px; --r-s:14px;
  --f:'Nunito',system-ui,-apple-system,'Segoe UI',sans-serif; --fd:'Outfit','Nunito',system-ui,sans-serif;
}
:root[data-theme=dark]{
  --bg:#15100D; --surface:#211A15; --surface-2:#2A211B; --text:#F6EFE4; --muted:#BDB1A1; --faint:#85796B; --line:#3C3027; --outline:#F6EFE4;
  --orange-soft:#47241A; --yellow-soft:#463511; --yellow-ink:#FFD36B; --green-soft:#16391F; --green-ink:#69E79A;
  --blue-soft:#12354A; --blue-ink:#7CCBFF; --red-soft:#4A2123; --red-ink:#FF8A8C;
  --shadow:0 1px 0 rgba(0,0,0,.3),0 14px 34px -18px rgba(0,0,0,.8);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:600 16px/1.5 var(--f);color:var(--text);background:var(--bg);min-height:100vh;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--fd);font-weight:800;line-height:1.15;margin:0 0 .5em;letter-spacing:-.02em}
h1{font-size:clamp(1.8rem,5vw,2.6rem)} h2{font-size:1.4rem} h3{font-size:1.12rem}
p{margin:0 0 1em} a{color:var(--orange-d)} code{background:var(--surface-2);padding:1px 6px;border-radius:6px;font-size:.88em}
.muted{color:var(--muted)} .tiny{font-size:.82rem;color:var(--faint)} .ico{flex:none;vertical-align:-.22em}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:10px}
.hide{display:none!important} .row{display:flex;gap:12px;align-items:center;flex-wrap:wrap} .grow{flex:1} .end{justify-content:flex-end}
.stack>*+*{margin-top:14px}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.grid-2{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.inline-form{display:inline}

/* ---------- botones (píldora con contorno) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 24px;border-radius:999px;border:2.5px solid var(--outline);
  background:var(--primary);color:#fff;font:800 .95rem var(--fd);letter-spacing:.01em;cursor:pointer;text-decoration:none;min-height:46px;transition:transform .08s,box-shadow .12s,filter .15s}
.btn:hover{filter:brightness(1.05);box-shadow:0 4px 0 var(--outline);transform:translateY(-2px)} .btn:active{transform:translateY(1px);box-shadow:none}
.btn-ghost{background:var(--surface);color:var(--text)} .btn-ghost:hover{filter:none;background:var(--surface-2)}
.btn-blue,.btn-sky{background:var(--blue);color:#0B2A3D} .btn-yellow{background:var(--yellow);color:#2B1D00} .btn-lime{background:var(--green);color:#0B2E18}
.btn-dark{background:var(--outline);color:var(--bg)}
.btn-danger{background:var(--red)} .btn-danger-ghost{background:var(--surface);color:var(--red-ink)}
.btn-sm{padding:5px 16px;min-height:36px;font-size:.84rem;border-width:2px} .btn-lg{min-height:56px;font-size:1.08rem;padding:12px 32px}
.btn-block{width:100%} .btn[disabled],.btn.is-off{opacity:.4;pointer-events:none;filter:grayscale(.6)}
.icon-btn{background:transparent;border:0;color:var(--muted);padding:8px;border-radius:50%;cursor:pointer;display:inline-flex}
.icon-btn:hover{background:var(--surface-2);color:var(--text)}
.circle-btn{width:46px;height:46px;border-radius:50%;border:2.5px solid var(--outline);background:var(--surface);color:var(--text);display:inline-grid;place-items:center;cursor:pointer;padding:0;transition:transform .08s,background .12s}
.circle-btn:hover{background:var(--yellow-soft)} .circle-btn:active{transform:scale(.94)}

/* ---------- formularios (cubre inputs con o sin atributo type) ---------- */
label{display:block;font-weight:800;font-size:.9rem;margin-bottom:6px;color:var(--text)}
:where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=range]):not([type=color]):not([type=image]):not([type=file]),select,textarea){
  width:100%;padding:11px 18px;border:2.5px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font:600 1rem var(--f);min-height:48px;appearance:none;-webkit-appearance:none}
:where(textarea){border-radius:var(--r-m);min-height:96px;resize:vertical;padding:14px 18px}
:where(select){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%236F665B' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;padding-right:44px}
:where(input:not([type=checkbox]):not([type=radio]),select,textarea):focus{border-color:var(--outline);outline:none;box-shadow:0 0 0 4px var(--yellow-soft)}
:where(input::placeholder,textarea::placeholder){color:var(--faint)}
:where(input[type=file]){width:100%;padding:8px;border:2.5px dashed var(--line);border-radius:var(--r-m);background:var(--surface-2);font:600 .95rem var(--f);color:var(--muted)}
input[type=file]::file-selector-button{margin-right:12px;padding:8px 18px;border-radius:999px;border:2px solid var(--outline);background:var(--surface);color:var(--text);font:800 .85rem var(--fd);cursor:pointer}
input[type=checkbox],input[type=radio]{accent-color:var(--orange);width:20px;height:20px;cursor:pointer}
.field{margin-bottom:16px} .hint{font-size:.82rem;color:var(--faint);margin-top:5px;font-weight:600}
.form-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.check{display:flex;align-items:center;gap:10px;font-weight:700;cursor:pointer}

/* ---------- piezas ---------- */
.card{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow)}
.card h2:first-child,.card h3:first-child{margin-top:0}
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 12px;border-radius:999px;font-size:.76rem;font-weight:800;font-family:var(--fd);background:var(--blue-soft);color:var(--blue-ink)}
.badge.ok{background:var(--green-soft);color:var(--green-ink)} .badge.bad{background:var(--red-soft);color:var(--red-ink)} .badge.warn{background:var(--yellow-soft);color:var(--yellow-ink)}
.progress{height:12px;background:var(--surface-2);border-radius:99px;overflow:hidden;border:1.5px solid var(--line)} .progress>i{display:block;height:100%;background:var(--orange);border-radius:99px}
.alert{padding:13px 18px;border-radius:var(--r-m);margin-bottom:14px;font-weight:700;border:2px solid transparent}
.alert.error{background:var(--red-soft);color:var(--red-ink);border-color:var(--red)} .alert.ok{background:var(--green-soft);color:var(--green-ink);border-color:var(--green-d)} .alert.warn{background:var(--yellow-soft);color:var(--yellow-ink);border-color:var(--yellow)}
.empty{text-align:center;padding:36px 16px;color:var(--muted)} .empty h3{color:var(--text)}
.pager{display:flex;gap:14px;align-items:center;justify-content:center;margin-top:18px}
.pager a{padding:7px 20px;border:2.5px solid var(--outline);border-radius:999px;text-decoration:none;font-weight:800;color:var(--text);background:var(--surface)}
/* control segmentado (pestañas en píldora) */
.seg{display:inline-flex;gap:0;padding:4px;border:2.5px solid var(--outline);border-radius:999px;background:var(--surface);max-width:100%;overflow-x:auto}
.seg a,.seg button{border:0;background:none;color:var(--text);font:800 .9rem var(--fd);padding:9px 20px;border-radius:999px;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
.seg a.on,.seg button.on{background:var(--orange);color:#fff}
.seg.full{display:flex;width:100%} .seg.full>*{flex:1;text-align:center}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.tabs a{padding:8px 18px;border-radius:999px;border:2px solid var(--line);text-decoration:none;color:var(--muted);font-weight:800;font-size:.88rem;background:var(--surface);font-family:var(--fd)}
.tabs a.on{background:var(--outline);border-color:var(--outline);color:var(--bg)}
.table-wrap{overflow-x:auto;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-m)}
table{width:100%;border-collapse:collapse;font-size:.93rem}
th,td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
th{font:800 .72rem var(--fd);color:var(--muted);background:var(--surface-2);white-space:nowrap;text-transform:uppercase;letter-spacing:.08em}
tbody tr:hover{background:color-mix(in srgb,var(--surface-2) 70%,transparent)} tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right} td.acts{white-space:nowrap;text-align:right} td .clip{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- menú de tres puntitos ---------- */
.rowmenu{display:inline-block;vertical-align:middle}
.dots{background:var(--surface);border:2px solid var(--outline);border-radius:50%;width:38px;height:38px;display:inline-grid;place-items:center;color:var(--text);cursor:pointer;padding:0}
.dots:hover,.dots[aria-expanded=true]{background:var(--yellow-soft)} .dots .ico{fill:currentColor}
.menu{position:fixed;z-index:200;min-width:200px;background:var(--surface);border:2.5px solid var(--outline);border-radius:var(--r-m);padding:6px;box-shadow:0 6px 0 var(--outline);animation:menuin .12s ease-out;text-align:left}
.menu[hidden]{display:none} .menu form{margin:0}
.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:0;background:none;border-radius:12px;color:var(--text);font:700 .92rem var(--f);cursor:pointer;text-decoration:none;text-align:left}
.menu-item:hover{background:var(--yellow-soft)} .menu-item.danger{color:var(--red-ink)} .menu-item.danger:hover{background:var(--red-soft)}
@keyframes menuin{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}

/* ---------- modales y visor de imagen ---------- */
dialog{border:2.5px solid var(--outline);border-radius:var(--r);padding:26px;max-width:480px;width:calc(100% - 28px);background:var(--surface);color:var(--text);box-shadow:0 8px 0 var(--outline)}
dialog[open]{animation:dlgin .22s cubic-bezier(.2,1.2,.4,1)} dialog::backdrop{background:rgba(23,18,14,.62);backdrop-filter:blur(3px)}
dialog h3{font-size:1.3rem}
@keyframes dlgin{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}
.dlg-warn{display:flex;gap:12px;background:var(--red-soft);color:var(--red-ink);border-radius:var(--r-m);padding:13px 16px;margin:12px 0;font-weight:700;font-size:.92rem;border:2px solid var(--red)}
.dlg-warn ul{margin:6px 0 0;padding-left:18px}
dialog.lightbox{max-width:none;width:100%;height:100%;max-height:none;background:rgba(10,8,6,.94);border:0;border-radius:0;padding:0;box-shadow:none;display:none;place-items:center}
dialog.lightbox[open]{display:grid;animation:none} dialog.lightbox img{max-width:96vw;max-height:92vh;object-fit:contain;border-radius:14px;background:#fff;animation:popin .25s}
dialog.lightbox .lb-x{position:fixed;top:16px;right:16px;width:50px;height:50px;border-radius:50%;border:2.5px solid #fff;background:rgba(0,0,0,.4);color:#fff;display:grid;place-items:center;cursor:pointer}
[data-zoom]{cursor:zoom-in}

/* ---------- avisos ---------- */
.toasts{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:400;display:grid;gap:8px;width:min(92vw,440px);pointer-events:none}
.toast{padding:13px 20px;border-radius:999px;background:var(--outline);color:var(--bg);font:800 .95rem var(--fd);box-shadow:var(--shadow);animation:tin .3s cubic-bezier(.2,1.3,.4,1);pointer-events:auto;text-align:center}
.toast.ok{background:var(--green);color:#0B2E18;border:2.5px solid var(--outline)} .toast.error{background:var(--red);color:#fff} .toast.warn{background:var(--yellow);color:#2B1D00;border:2.5px solid var(--outline)}
@keyframes tin{from{opacity:0;transform:translateY(-14px) scale(.94)}to{opacity:1;transform:none}}

/* ---------- formas decorativas (colorables con --c) ---------- */
.shape{position:absolute;pointer-events:none;background:var(--c,var(--yellow));-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
.shape.star{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c1 7 5 11 12 12-7 1-11 5-12 12-1-7-5-11-12-12 7-1 11-5 12-12z'/%3E%3C/svg%3E");width:22px;height:22px}
.shape.squig{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 24'%3E%3Cpath d='M4 12q8-14 16 0t16 0 16 0 16 0' fill='none' stroke='%23000' stroke-width='7' stroke-linecap='round'/%3E%3C/svg%3E");width:84px;height:26px}
.shape.ring{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='%23000' stroke-width='5'/%3E%3C/svg%3E");width:30px;height:30px}
.shape.blob{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='50'/%3E%3C/svg%3E");width:120px;height:120px;opacity:.18}
.shape.spin{animation:spin 14s linear infinite} .shape.float{animation:floaty 4s ease-in-out infinite}

/* ---------- login (jugador y administrador) ---------- */
.area-login{min-height:100vh;display:grid;place-items:center;padding:18px;background:var(--bg);position:relative;overflow:hidden}
.lg{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr 1fr;width:min(980px,100%);min-height:580px;background:var(--surface);border:2.5px solid var(--outline);border-radius:36px;overflow:hidden;box-shadow:0 10px 0 var(--outline)}
.lg-art{position:relative;background:var(--orange);color:#fff;padding:38px 36px;display:flex;flex-direction:column;justify-content:space-between;gap:22px;overflow:hidden}
.lg-art>*:not(.shape){position:relative;z-index:2} .lg-art .shape{z-index:1}
.lg-art .brand{color:#fff} .lg-art h1{color:#fff;font-size:2.4rem;margin-bottom:10px} .lg-art p{color:rgba(255,255,255,.95);font-size:1.05rem;margin:0}
.lg-mascot{display:flex;align-items:flex-end;gap:14px}
.bubble-say{background:#fff;color:#17120E;border:2.5px solid #17120E;border-radius:22px 22px 22px 4px;padding:12px 18px;font:700 1rem var(--fd);max-width:220px;animation:floaty 4s ease-in-out infinite}
.lg-form{padding:46px 42px;display:flex;flex-direction:column;justify-content:center}
.lg-form h2{font-size:2rem;margin-bottom:6px} .lg-form .sub{color:var(--muted);margin-bottom:24px}
.ig{position:relative} .ig .ico{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--faint);pointer-events:none} .ig input{padding-left:50px}
.ig .eye{position:absolute;right:8px;top:50%;transform:translateY(-50%)}
.lg-links{margin-top:18px;font-size:.9rem;color:var(--muted);font-weight:700}
.lg-admin .lg-art{background:#17120E} .lg-admin .lg-art h1{color:#fff}
.lg-feats{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.lg-feats li{display:flex;gap:12px;align-items:center;font:700 1rem var(--fd);color:rgba(255,255,255,.95)}
.lg-feats .fi{width:40px;height:40px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;flex:none}
@media(max-width:800px){.lg{grid-template-columns:1fr;min-height:0;border-radius:30px}.lg-art{padding:24px 24px 28px}.lg-art h1{font-size:1.7rem}.lg-art .bubble-say,.lg-feats{display:none}.lg-form{padding:28px 24px}}

/* ---------- animaciones comunes ---------- */
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}
@keyframes blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
@keyframes flicker{0%,100%{transform:scale(1) rotate(0)}30%{transform:scale(1.06,.97) rotate(-2deg)}60%{transform:scale(.98,1.05) rotate(2deg)}}
@keyframes popin{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.06)}100%{opacity:1;transform:scale(1)}}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.mascot{overflow:visible} .mascot .m-body{transform-origin:60px 150px;animation:bob 3.2s ease-in-out infinite}
.mascot .m-eyes{transform-origin:60px 71px;animation:blink 4.5s infinite} .mascot-sad .m-body{animation:none}
.flame{display:inline-block;transform-origin:50% 90%;animation:flicker 1.6s ease-in-out infinite} .flame .f1{fill:var(--orange)} .flame .f2{fill:var(--yellow)}
.flame.off{animation:none;filter:grayscale(1);opacity:.45}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font:800 1.2rem var(--fd)} .brand img{border-radius:12px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- previsualización de imagen (formulario de preguntas) ---------- */
.img-prev{display:flex;align-items:center;gap:14px;padding:12px;border:2.5px dashed var(--outline);border-radius:var(--r-m);background:var(--surface-2);margin-top:10px;animation:popin .25s}
.img-prev img{width:140px;height:100px;object-fit:cover;border-radius:12px;border:2px solid var(--outline);background:#fff;cursor:zoom-in;flex:none}
.img-prev .pv-name{font:800 .92rem var(--fd);word-break:break-all} .img-prev .pv-info{color:var(--muted);font-weight:700;font-size:.82rem} .img-prev .tag{display:inline-block;margin-bottom:4px}
.curr-img{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px;border:2px solid var(--line);border-radius:var(--r-m);background:var(--surface);margin-bottom:10px;transition:opacity .2s}
.curr-img img{max-height:110px;max-width:160px;border-radius:12px;border:2px solid var(--outline);background:#fff;cursor:zoom-in}
.curr-img.dim img{opacity:.3;filter:grayscale(1)} .curr-img.replaced{opacity:.55}
@media(max-width:520px){.img-prev{flex-wrap:wrap}.img-prev img{width:100%;height:160px}}
