:root{color-scheme:light;--ink:#303533;--muted:#7b8480;--border:#e8eae5;--paper:#fff;--bg:#f8f7f3;--mint:#d9f4e6;--mint-dark:#427d5b;--coral:#f9dadd;--coral-dark:#a04b57;--lav:#e7e2fc;--cream:#fff2d9;--shadow:0 10px 35px rgba(41,53,47,.055)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit}.wash{position:fixed;inset:0;background:radial-gradient(ellipse at top left,#e4f3e840,transparent 45%),radial-gradient(ellipse at top right,#f2dfed60,transparent 50%);pointer-events:none;z-index:-1}.shell{width:min(1200px,100%);margin:auto;padding:24px 20px 60px}.navtop{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:20px}.brand{display:flex;align-items:center;gap:11px;font-weight:850;letter-spacing:-.3px}.brandmark{background:#d9e6dc;border:1px solid #b7cfbd;border-radius:14px;width:43px;height:43px;display:grid;place-items:center;color:#315744;letter-spacing:-1px}.tiny{color:var(--muted);font-weight:500;font-size:.73rem}.navactions{display:flex;align-items:center;gap:10px}.pill{display:inline-flex;align-items:center;gap:6px;max-width:100%;background:#ecf6ed;border-radius:99px;padding:7px 12px;color:#527c60;font-size:.75rem;font-weight:750}.navscroll{display:flex;overflow-x:auto;gap:8px;padding:0 0 15px;scrollbar-width:thin}.navitem{border:1px solid transparent;background:transparent;padding:11px 16px;border-radius:13px;white-space:nowrap;color:#7c8580;font-weight:750}.navitem.current{background:#303b34;color:white;box-shadow:0 8px 22px #344f3930}.page{animation:appear .27s ease both}.heading{margin:15px 0 23px;display:flex;justify-content:space-between;align-items:center;gap:15px}.heading h1{font-size:clamp(1.65rem,3.5vw,2.3rem);margin:4px 0 5px;letter-spacing:-1.15px}.heading p{margin:0;color:var(--muted);font-size:.89rem;line-height:1.5}.eyebrow{text-transform:uppercase;color:#91a498;font-weight:850;letter-spacing:2px;font-size:.67rem}.panel{background:var(--paper);border-radius:23px;padding:22px;border:1px solid #ededeb;box-shadow:var(--shadow);min-width:0}.panel h2{margin:0 0 9px;font-size:1.17rem;letter-spacing:-.3px}.panel .description{font-size:.85rem;color:var(--muted);margin:0 0 18px;line-height:1.55}.panelhead{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:15px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.metric{border-radius:18px;padding:18px 17px}.metric .n{font-size:2rem;font-weight:900;letter-spacing:-1px}.metric .l{color:#697870;font-size:.76rem;margin-top:5px;font-weight:700}.metric.mint{background:var(--mint)}.metric.lav{background:var(--lav)}.metric.peach{background:var(--coral)}.metric.cream{background:var(--cream)}.columns{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:15px;margin-top:17px}.stack{display:grid;gap:13px}.toolbar{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap;margin:14px 0}.field{display:grid;gap:7px;min-width:0}.field label{font-size:.73rem;color:#68736d;font-weight:750}.field input,.field select,.field textarea,.searchinput{width:100%;min-height:42px;padding:10px 12px;border-radius:12px;border:1px solid #dfe4df;background:#fcfdfb;color:var(--ink);outline:none}.field input:focus,.field select:focus,.field textarea:focus,.searchinput:focus{border-color:#72aa88;box-shadow:0 0 0 3px #dff0e6}.searchinput{width:min(300px,100%)}.searchgroup{display:flex;gap:8px;flex:1;min-width:200px}.searchgroup input{flex:1}.btn{border:0;border-radius:13px;padding:11px 16px;font-weight:800;font-size:.83rem;background:#36483b;color:white;transition:transform .16s,background .16s}.btn:hover{transform:translateY(-2px)}.btn.secondary{background:#e4f1e7;color:#437555}.btn.soft{background:#f1f2ee;color:#526358}.btn.warning{background:#fff1d3;color:#936a31}.btn.danger{background:#fce1e3;color:#a04a56}.btn.small{padding:8px 11px;font-size:.73rem;border-radius:10px}.btn.block{width:100%}.btn.outline{background:white;color:#5f6e64;border:1px solid #dfe5dc}.tag{display:inline-flex;align-items:center;border-radius:99px;padding:5px 9px;font-size:.68rem;font-weight:800;white-space:nowrap;background:#f0f1ed;color:#65736a}.tag.approved,.tag.active,.tag.confirmed,.tag.finished{background:var(--mint);color:var(--mint-dark)}.tag.pending,.tag.reserved,.tag.paused{background:var(--cream);color:#9a7438}.tag.rejected,.tag.closed{background:var(--coral);color:var(--coral-dark)}.tag.draft,.tag.awaiting_capture{background:var(--lav);color:#7660a7}.rows{display:grid;gap:9px}.rowcard{border:1px solid var(--border);border-radius:16px;padding:15px 16px;background:#fff;transition:border .15s,transform .15s}.rowcard.clickable{cursor:pointer}.rowcard.clickable:hover{transform:translateY(-2px);border-color:#aac7b0}.flex{display:flex;align-items:center;justify-content:space-between;gap:12px}.flex.wrap{flex-wrap:wrap}.personname{font-weight:850;margin-bottom:4px;overflow-wrap:anywhere}.meta{color:var(--muted);font-size:.77rem;line-height:1.55}.smalltext{font-size:.76rem;color:var(--muted)}.counts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.counts span{font-size:.75rem;background:#f5f7f2;padding:5px 8px;border-radius:8px}.counts .good{background:#e6f6eb;color:#528468}.counts .wait{background:#fff1d6;color:#956d3d}.counts .bad{background:#fce8e9;color:#af5862}.progress{height:9px;border-radius:30px;background:#edf0eb;overflow:hidden;margin:10px 0}.progress i{display:block;height:100%;background:#96d7ae;border-radius:30px}.backline{display:flex;gap:12px;align-items:center;margin-bottom:20px}.list-title{margin:0}.detailbox{background:#f7f9f5;border-radius:17px;padding:15px}.summarygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.notice{background:#fbf4e4;border:1px solid #f2e7d2;color:#7e6b48;padding:14px;border-radius:14px;font-size:.81rem;line-height:1.5}.notice.info{background:#edf5ef;border-color:#dbebdd;color:#53745e}.empty{padding:45px 18px;text-align:center;color:#8b978f;line-height:1.6}.pagination{display:flex;justify-content:flex-end;gap:8px;align-items:center;margin-top:14px}.table-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.table-form .full{grid-column:1/-1}.overlay{position:fixed;inset:0;background:#111c18a8;z-index:20;display:grid;place-items:center;padding:16px;backdrop-filter:blur(5px)}.modal{width:min(650px,100%);max-height:92vh;overflow:auto;background:white;border-radius:24px;padding:22px;box-shadow:0 30px 90px #0005;animation:appear .22s ease}.modal.image{width:min(740px,100%)}.modal img{max-width:100%;max-height:50vh;object-fit:contain;border-radius:12px;background:#eef2ec;display:block;margin:auto}.modalhead{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:16px}.modalhead h2{margin:0;font-size:1.25rem}.actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px}.divider{height:1px;background:var(--border);margin:15px 0}.loginwrap{max-width:420px;margin:6vh auto}.loginhero{text-align:center;margin-bottom:22px}.loginhero .brandmark{margin:auto;width:66px;height:66px;font-size:1.3rem}.loginhero h1{font-size:2rem;margin:16px 0 7px;letter-spacing:-1px}.loginhero p{font-size:.87rem;color:var(--muted);line-height:1.5}.formstack{display:grid;gap:16px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,30px);background:#263b2e;color:white;padding:13px 18px;border-radius:14px;opacity:0;pointer-events:none;z-index:40;box-shadow:0 12px 30px #0003;max-width:90vw;transition:.25s;text-align:center;font-size:.83rem}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#9f4c59}.loading{min-height:60vh;display:grid;place-content:center;text-align:center;color:#8f998f}.spin{width:33px;height:33px;border:3px solid #d6e7d7;border-top-color:#5c9468;border-radius:50%;animation:spin .6s linear infinite;margin:auto}.bullet{display:inline-block;width:8px;height:8px;border-radius:50%;background:#87bb95;margin-right:6px}.code{font-family:ui-monospace,monospace;font-size:.76rem;background:#f3f6f2;border-radius:8px;padding:7px;overflow-wrap:anywhere}.line{line-height:1.6}button:focus-visible{outline:3px solid #74a786;outline-offset:2px}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){.cards{grid-template-columns:repeat(2,1fr)}.columns{grid-template-columns:1fr}.shell{padding:16px 14px 48px}.heading{align-items:flex-start;flex-wrap:wrap}.metric .n{font-size:1.7rem}}
@media(max-width:470px){.brand{font-size:.87rem}.brandmark{width:37px;height:37px;border-radius:12px}.navactions .pill{display:none}.panel{padding:16px;border-radius:19px}.summarygrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.summarygrid .metric{padding:12px 7px;text-align:center}.summarygrid .metric .n{font-size:1.4rem}.metric{padding:15px}.rowcard{padding:14px}.table-form{grid-template-columns:1fr}.table-form .full{grid-column:auto}.searchgroup{flex-basis:100%}.searchinput{width:100%}.modal{padding:17px;border-radius:21px}.navitem{padding:10px 13px}.heading h1{font-size:1.7rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Orden visual de sorteos: blanco y gris pastel alternados, también en Resumen. */
.raffle-list>.rowcard:nth-child(odd){background:#fff;border-color:#e5e9e6}
.raffle-list>.rowcard:nth-child(even){background:#edf0ef;border-color:#d9dfdc}
.raffle-list>.rowcard{transition:background .18s,border-color .18s,transform .18s}
.raffle-list>.rowcard:hover{border-color:#a6bcb1;transform:translateY(-1px)}
.raffle-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.raffle-actions{flex-wrap:wrap;justify-content:flex-end}
.tag.archived{background:#e0e5e3;color:#586963}

/* Contacto directo desde Capturas y detalle de Referidos. */
.wa-contact{display:inline-flex;justify-content:center;align-items:center;flex:0 0 auto;width:41px;height:41px;color:#255d3d;background:#d5efe0;border:1px solid #c2e6d0;border-radius:12px;text-decoration:none;transition:transform .18s ease,background .18s ease}
.wa-contact:hover{background:#bfe7ce;transform:translateY(-2px)}
.wa-contact:focus-visible{outline:3px solid #66a985;outline-offset:2px}

/* PWA administrativa opcional, sin bloqueo de acceso web. */
.admin-install-login{margin-bottom:19px;background:#dceee2;color:#2b5b3f}
.admin-pwa-mask{position:fixed;inset:0;z-index:210;background:#23372bc4;display:grid;place-items:center;padding:17px;backdrop-filter:blur(5px)}
.admin-pwa-help{width:min(420px,100%);border-radius:25px;padding:30px 24px;background:#fffdfa;box-shadow:0 15px 60px #0003;text-align:center}
.admin-pwa-help .brandmark{margin:0 auto 16px}
.admin-pwa-help h2{margin:0 0 12px}.admin-pwa-help p{color:#65746a;line-height:1.7;font-size:.9rem}
@media(max-width:560px){.navactions{gap:6px}.navactions [data-admin-install]{font-size:.72rem;padding:8px 9px;min-height:39px}.navactions .pill{font-size:.66rem;padding:6px 8px}.navtop{align-items:flex-start}.shell{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}
@media(max-width:480px){.navtop{flex-wrap:wrap}.navactions{width:100%;justify-content:space-between}.navactions .pill{max-width:30%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.navactions [data-admin-install]{flex:1}}

/* Gestión de usuarios: eliminación confirmada y cuentas archivadas. */
.rowcard.is-removed{background:#f5f4f2;border-color:#e0dfdc}
.tag.removed{background:#f5dcdf;color:#9b4b58}
.removed-notice{margin-bottom:15px;background:#f8ecef;border-color:#efdae0;color:#94535e}
.profile-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:14px}
.profile-actions .wa-contact{margin:0}
.remove-user-modal{width:min(550px,100%)}
.remove-user-warning{background:#fff3e9;color:#835633;border-color:#f0dfc9;margin:14px 0}
.remove-user-warning p{margin:8px 0 0;line-height:1.6}
.remove-user-modal .field{margin-top:12px}
@media(max-width:490px){.remove-user-modal .actions{display:grid;grid-template-columns:1fr}.remove-user-modal .actions>.btn{width:100%}}

/* PWA admin opcional. Mantener desplazamiento natural y áreas seguras. */
@media(max-width:680px){.navtop{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.page{padding-bottom:max(32px,env(safe-area-inset-bottom))}}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}

/* Fase 2: avisos solo con opt-in, sin recargar visualmente el admin */
.admin-push-controls{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#eff3ef;border:1px solid #dfe7e0;border-radius:17px;margin:11px auto 2px;padding:15px 19px;max-width:1300px;color:#38513e}
.admin-push-controls strong{font-size:.9rem}.admin-push-controls p{font-size:.79rem;color:#617468;margin:6px 0;line-height:1.4}
.admin-push-controls label{font-size:.78rem;display:flex;gap:8px;align-items:center}
.admin-push-controls .push-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:560px){.admin-push-controls{margin:10px 10px 0;padding:13px}.admin-push-controls .push-actions{width:100%}}
