:root{--ampa-blue:#155f9f;--ampa-blue-dark:#0c3c70;--ampa-gold:#f4c542;--ampa-soft:#f5f8fc;--ampa-green:#1a936f}body{background:#f5f7fb}.logo{height:48px;max-width:180px;object-fit:contain}.card{border:0;border-radius:18px}.stat{font-size:2rem;font-weight:700}.table td,.table th{vertical-align:middle}.badge-soft{background:#eef2ff;color:#303f9f}.login-box{max-width:440px;margin:40px auto}.btn-primary{background:#1b7fbd;border-color:#1b7fbd}.btn-primary:hover{background:#156a9e;border-color:#156a9e}a{text-decoration:none}.form-label{font-weight:600}.small-muted{font-size:.875rem;color:#6c757d}.hero-logo{max-width:330px;width:100%;height:auto}.required:after{content:' *';color:#dc3545}
.public-home{background:#fff;color:#203040}.public-nav{background:rgba(12,60,112,.92);backdrop-filter:blur(10px)}.public-nav .navbar-brand,.public-nav .brand-text{color:#fff;font-weight:800}.public-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--ampa-blue-dark),var(--ampa-blue));}.hero-bg{position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(244,197,66,.26),transparent 32%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.18),transparent 30%),linear-gradient(135deg,rgba(12,60,112,.96),rgba(21,95,159,.85));}.public-hero:after{content:"";position:absolute;right:-90px;bottom:-120px;width:420px;height:420px;border-radius:50%;background:rgba(244,197,66,.18)}.eyebrow{display:inline-block;padding:.45rem .75rem;border:1px solid rgba(255,255,255,.35);border-radius:999px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.8rem}.hero-card{background:#fff;border-radius:28px;padding:2rem;text-align:center}.hero-public-logo{max-width:280px;width:100%;height:auto}.feature-card{background:#fff;border:1px solid #e8eef7;border-radius:24px;padding:2rem;box-shadow:0 10px 24px rgba(21,95,159,.06)}.feature-icon{font-size:2.3rem;margin-bottom:1rem}.section-soft{background:var(--ampa-soft)}.check-list{list-style:none;padding-left:0;margin:0}.check-list li{margin:.65rem 0;padding-left:1.9rem;position:relative}.check-list li:before{content:"✓";position:absolute;left:0;top:0;color:var(--ampa-green);font-weight:800}.info-panel{background:#fff;border-radius:24px;padding:2rem;border-left:6px solid var(--ampa-gold)}.public-footer{background:#0c3c70;color:#dfefff}.public-footer a{color:#fff}.login-box .card{border-top:6px solid var(--ampa-gold)}
.login-bg{min-height:100vh;background:linear-gradient(135deg,#0c3c70,#1b7fbd);}.login-card{border-top:6px solid var(--ampa-gold)}.login-logo{max-width:220px;width:100%;height:auto}.badge{font-weight:600}

.acciones-compactas .btn{white-space:nowrap}.familia-header{background:linear-gradient(135deg,#eef6ff,#fff);border-left:6px solid var(--ampa-blue)}.table-search{max-width:520px}.child-card{border:1px solid #e8eef7;border-radius:14px;padding:1rem;background:#fff}.btn-volver-page{margin-bottom:1rem}.form-hint{font-size:.82rem;color:#6c757d}

/* V8 - diseño en burbujas anchas */
body{background:#eef4fb}.container-fluid{max-width:1600px}.navbar{border-bottom:1px solid #e8eef7}.page-title-bubble{background:linear-gradient(135deg,#ffffff,#f2f8ff);border:1px solid #dbeafe;border-left:8px solid var(--ampa-blue);border-radius:999px;padding:1rem 1.35rem;margin-bottom:1rem;box-shadow:0 8px 22px rgba(21,95,159,.08)}.bubble-panel{background:#fff;border:1px solid #e2edf8;border-radius:28px;padding:1.15rem 1.25rem;box-shadow:0 10px 28px rgba(21,95,159,.07);margin-bottom:1rem}.bubble-wide{border-radius:999px;padding:1rem 1.2rem}.bubble-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.bubble-list{display:flex;flex-direction:column;gap:.85rem}.family-bubble{background:#fff;border:1px solid #dfeaf7;border-left:7px solid var(--ampa-blue);border-radius:999px;padding:.9rem 1rem;box-shadow:0 8px 18px rgba(21,95,159,.06);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.family-bubble:hover{border-color:#b8d8f5;box-shadow:0 12px 26px rgba(21,95,159,.11)}.family-main{min-width:260px;flex:1 1 320px}.family-meta{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.pill{display:inline-flex;align-items:center;gap:.35rem;background:#f1f6fd;border:1px solid #dce9f8;border-radius:999px;padding:.35rem .7rem;font-size:.88rem;color:#29415b}.pill-ok{background:#edfdf6;border-color:#c8f2df;color:#126b4c}.pill-warn{background:#fff8e6;border-color:#fde4a5;color:#825b00}.pill-info{background:#edf7ff;border-color:#cceaff;color:#155f9f}.pill-danger{background:#fff0f0;border-color:#ffd2d2;color:#9f1d1d}.search-bubble{border-radius:999px;padding:.8rem 1.1rem;border:1px solid #cfe0f4}.action-top{display:flex;gap:.75rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.create-family-box{display:none}.create-family-box.open{display:block}.student-list{display:flex;flex-direction:column;gap:.55rem}.student-line{display:grid;grid-template-columns:2fr 2fr 1fr 1fr auto;gap:.5rem;align-items:end;background:#f8fbff;border:1px solid #e4eef9;border-radius:22px;padding:.75rem}.tutor-line{background:#f8fbff;border:1px solid #e4eef9;border-radius:22px;padding:.75rem;margin-bottom:.6rem}.payment-year-bubble{background:#fff;border:1px solid #dfeaf7;border-left:7px solid #1a936f;border-radius:28px;padding:1rem;margin-bottom:.85rem}.manual-pay-bubble{background:#f8fff9;border:1px solid #d5f2dc;border-left:7px solid #1a936f;border-radius:28px;padding:1rem}.hide-initial-empty [data-filter-text]{display:none}@media(max-width:768px){.family-bubble{border-radius:28px;align-items:flex-start}.bubble-wide{border-radius:28px}.page-title-bubble{border-radius:28px}.student-line{grid-template-columns:1fr}.action-top{align-items:stretch}.action-top .btn,.action-top input{width:100%}}

/* V11 - claridad visual, carnet y QR */
.page-title{font-size:1.85rem;font-weight:800;color:#143b63;margin:0}.page-subtitle{color:#66758a;margin:.25rem 0 1rem}.family-bubble{padding:.65rem .85rem;border-radius:24px}.family-main{min-width:220px;flex:1 1 290px}.family-meta .pill{font-size:.8rem;padding:.25rem .55rem}.children-zone{background:#fff7e5;border:1px solid #f2d18a;border-left:7px solid #f4c542;border-radius:24px;padding:1rem}.children-zone .student-line,.children-zone .child-card{background:#fffaf0;border-color:#f0d69b}.annual-fee-zone{background:#eef9ff;border:1px solid #bfe7ff;border-left:7px solid #1b7fbd;border-radius:24px;padding:1rem;margin-bottom:1rem}.annual-fee-zone h2,.annual-fee-zone h3{color:#0c3c70}.bubble-titleless{background:#fff;border:1px solid #e2edf8;border-radius:28px;padding:1rem;box-shadow:0 10px 28px rgba(21,95,159,.07);}.card-ampa{background:linear-gradient(135deg,#0c3c70,#1b7fbd);border-radius:28px;padding:1.15rem;color:#fff;position:relative;overflow:hidden}.card-ampa:after{content:"";position:absolute;right:-55px;bottom:-70px;width:190px;height:190px;background:rgba(244,197,66,.22);border-radius:50%}.card-ampa-inner{position:relative;z-index:2}.card-ampa-logo{background:#fff;border-radius:18px;padding:.4rem;max-width:105px}.qr-box{background:#fff;border-radius:22px;padding:.8rem;display:inline-block}.qr-box canvas,.qr-box img{max-width:100%;height:auto!important}.mobile-carnet{max-width:430px;margin:0 auto}.scan-panel{max-width:680px;margin:0 auto}.status-big{font-size:1.05rem;padding:.55rem .8rem;border-radius:999px}.activity-bubble{background:#fff;border:1px solid #dfeaf7;border-left:7px solid var(--ampa-blue);border-radius:24px;padding:.85rem;margin-bottom:.75rem;display:flex;gap:.7rem;justify-content:space-between;align-items:center;flex-wrap:wrap}.activity-inactive{opacity:.55;border-left-color:#adb5bd}.btn-icon-line{display:flex;gap:.4rem;flex-wrap:wrap}.course-bubble{background:#fff;border:1px solid #dfeaf7;border-radius:22px;padding:.85rem;margin-bottom:.65rem;display:flex;justify-content:space-between;gap:.6rem;align-items:center}.qr-summary-bubble{background:#fff;border-radius:24px;border:1px solid #e2edf8;padding:1rem;margin-bottom:1rem}@media(max-width:768px){.page-title{font-size:1.45rem}.card-ampa{border-radius:24px}.mobile-carnet{max-width:100%}.qr-box{width:100%;text-align:center}.activity-bubble,.course-bubble{align-items:flex-start}.family-bubble{border-radius:20px}.family-meta{width:100%}.btn-icon-line .btn{flex:1 1 auto}.card-ampa-logo{max-width:85px}}

/* V20 - QR móvil compacto y separación cuotas/actividades */
.selected-bubble{outline:3px solid rgba(13,110,253,.25);background:#eef6ff!important}
.qr-compact-head{padding:12px 14px;margin-bottom:10px}
.qr-mini{padding:12px!important}.compact-child{padding:8px 10px;margin-bottom:6px}.compact-payment{padding:8px 10px;margin-bottom:6px}
.qr-mobile-grid .bubble-panel,.qr-mobile-grid .children-zone{min-height:100%}
.qr-activity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.qr-activity-bubble{border:1px solid #e5e7eb;border-left:6px solid #f59e0b;border-radius:16px;background:#fff;padding:12px;box-shadow:0 4px 12px rgba(15,23,42,.06)}
.qr-activity-bubble.paid{border-left-color:#22c55e;background:#f6fff8}.qr-activity-bubble.pending{border-left-color:#f59e0b;background:#fffaf0}.qr-activity-bubble.delivered{background:#eefaf2}.qr-activity-bubble.finished{border-left-color:#94a3b8;background:#f8fafc;color:#475569}
.qr-act-title{font-weight:800;font-size:1rem;margin-bottom:2px}.qr-status-line{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.qr-ticket-line{margin-top:8px;border-radius:12px;padding:6px 8px;background:#f1f5f9;font-size:.95rem}.qr-ticket-line.need-delivery{background:#fff3cd}.qr-ticket-line.ok-delivery{background:#dcfce7}
@media(max-width:768px){.container-fluid.py-4{padding:10px!important}.page-title{font-size:1.35rem}.page-subtitle{font-size:.9rem}.qr-summary-bubble,.bubble-panel,.children-zone{border-radius:14px}.qr-activity-grid{grid-template-columns:1fr}.qr-activity-bubble{padding:10px}.status-big{font-size:.9rem}.bubble-row{gap:8px}.family-bubble{padding:10px}.family-meta{gap:4px}.pill{font-size:.78rem}}

/* V21 - QR admin ultra compacto móvil */
.qr-page-mobile{max-width:980px;margin:0 auto}.qr-top-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.qr-title-mobile{font-size:1.35rem;font-weight:900;margin:0;color:#12395e}.qr-subtitle-mobile{font-size:.9rem;color:#64748b}.qr-action-buttons{display:flex;gap:6px;white-space:nowrap}.qr-alert-compact{padding:.55rem .75rem;margin-bottom:8px}.qr-family-strip{background:#fff;border:1px solid #dbeafe;border-left:6px solid #0d6efd;border-radius:16px;padding:10px 12px;margin-bottom:8px;display:flex;justify-content:space-between;gap:8px;align-items:center}.qr-family-name{font-size:1.15rem;font-weight:900;line-height:1.1}.qr-family-meta{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.qr-compact-section{background:#fff;border:1px solid #e5edf7;border-radius:16px;padding:10px 12px;margin-bottom:8px;box-shadow:0 4px 14px rgba(15,23,42,.04)}.qr-section-head{font-weight:900;font-size:.95rem;color:#12395e;margin-bottom:6px}.qr-section-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.qr-section-row small{font-weight:500;color:#64748b}.qr-chip-list{display:flex;flex-wrap:wrap;gap:6px}.qr-chip{display:inline-flex;gap:6px;align-items:center;background:#fff7e5;border:1px solid #f4d28a;border-radius:999px;padding:5px 9px;font-size:.86rem}.qr-chip em{font-style:normal;color:#64748b}.qr-chip.muted{background:#f1f5f9;border-color:#e2e8f0;color:#64748b}.qr-cuota-line{display:flex;justify-content:space-between;gap:8px;align-items:center;background:#f8fbff;border-radius:12px;padding:7px 9px;margin-bottom:5px}.qr-cuota-line div{display:flex;flex-direction:column;line-height:1.15}.qr-cuota-line span:not(.badge){font-size:.82rem;color:#64748b}.qr-touch-list{display:flex;flex-direction:column;gap:7px}.qr-touch-card{border:1px solid #e5e7eb;border-left:7px solid #f59e0b;border-radius:15px;background:#fff;overflow:hidden}.qr-touch-card summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;cursor:pointer}.qr-touch-card summary::-webkit-details-marker{display:none}.qr-touch-card.paid-waiting{border-left-color:#22c55e;background:#f7fff9}.qr-touch-card.paid-delivered{border-left-color:#16a34a;background:#edfdf4}.qr-touch-card.not-paid{border-left-color:#f59e0b;background:#fffaf0}.qr-touch-card[open]{box-shadow:0 8px 22px rgba(15,23,42,.08)}.qr-touch-title{font-size:.98rem;font-weight:900;line-height:1.05}.qr-touch-person{font-size:.82rem;color:#64748b;margin-top:2px}.qr-touch-status{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:86px}.qr-ticket-mini{font-size:.82rem;font-weight:900;border-radius:999px;padding:2px 7px;background:#dcfce7;color:#166534}.qr-ticket-mini.pending{background:#fef3c7;color:#92400e}.qr-ticket-mini.ok{background:#dcfce7;color:#166534}.qr-touch-detail{border-top:1px solid rgba(148,163,184,.35);padding:8px 10px;background:rgba(255,255,255,.7)}.qr-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.qr-detail-grid div{background:#f8fafc;border-radius:10px;padding:6px;text-align:center}.qr-detail-grid span{display:block;font-size:.72rem;color:#64748b}.qr-detail-grid strong{font-size:.82rem}.qr-no-delivery{background:#fff3cd;border-radius:10px;padding:7px 9px;font-size:.85rem;color:#7a5600;margin-top:7px}.qr-finished-box{background:#f8fafc}.finished-static{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;border-left-color:#94a3b8;color:#475569;background:#f8fafc}
@media(max-width:768px){.container-fluid.py-4{padding:6px!important}.qr-page-mobile{margin:0}.qr-top-actions{position:sticky;top:0;z-index:20;background:#eef4fb;padding:5px 0;margin-bottom:6px}.qr-title-mobile{font-size:1.1rem}.qr-subtitle-mobile{display:none}.qr-action-buttons .btn{padding:.35rem .55rem;font-size:.88rem}.qr-family-strip{padding:8px 9px;border-radius:13px}.qr-family-name{font-size:1rem}.qr-family-meta .badge{font-size:.72rem}.qr-compact-section{padding:8px 9px;border-radius:13px;margin-bottom:7px}.qr-section-head{font-size:.88rem;margin-bottom:5px}.qr-section-row small{font-size:.76rem}.qr-chip{font-size:.78rem;padding:4px 7px}.qr-cuota-line{padding:6px 7px}.qr-cuota-line strong{font-size:.86rem}.qr-cuota-line span:not(.badge){font-size:.74rem}.qr-touch-card summary{padding:8px}.qr-touch-title{font-size:.9rem}.qr-touch-person{font-size:.75rem}.qr-touch-status{min-width:76px}.qr-touch-status .badge{font-size:.68rem}.qr-ticket-mini{font-size:.74rem;padding:2px 6px}.qr-detail-grid{grid-template-columns:1fr 1fr 1fr;gap:4px}.qr-detail-grid div{padding:5px 3px}.qr-detail-grid span{font-size:.66rem}.qr-detail-grid strong{font-size:.72rem}.qr-touch-detail .btn{font-size:.86rem;padding:.42rem}.qr-alert-compact{font-size:.85rem;padding:.45rem .6rem}.navbar .logo{height:32px;max-width:95px}.navbar .navbar-brand{font-size:.88rem}.navbar .btn{font-size:.82rem;padding:.28rem .45rem}}

/* V23: burbujas de pagos del dashboard clicables */
a.payment-link-bubble{
  display:block;
  text-decoration:none;
  color:inherit;
  border:1px solid rgba(13,110,253,.16);
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
a.payment-link-bubble:hover,
a.payment-link-bubble:focus{
  transform:translateY(-1px);
  box-shadow:0 6px 18px rgba(15,23,42,.10);
  border-color:rgba(13,110,253,.40);
  color:inherit;
}
a.payment-link-bubble.ok{border-color:rgba(25,135,84,.18)}


/* V25 - QR móvil por familia y gestión por actividad */
.qr-page-v24{font-size:.95rem}.qr-family-card{border:1px solid #d8e7f5;border-radius:14px;padding:10px 12px;margin-bottom:8px;box-shadow:0 4px 14px rgba(15,23,42,.05)}
.qr-family-card.family-paid{background:#eafff1;border-color:#a7e5ba;border-left:8px solid #16a34a}.qr-family-card.family-pending{background:#fff8dc;border-color:#f3d46f;border-left:8px solid #f59e0b}.qr-family-card.family-unpaid{background:#fff0f0;border-color:#ffb3b3;border-left:8px solid #dc2626}
.qr-family-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.qr-mini-label{text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-size:.66rem;font-weight:900}.qr-family-card-name{font-size:1.05rem;font-weight:950;line-height:1.05;color:#0f172a}.qr-family-card-status{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.qr-status-chip{background:rgba(255,255,255,.72);border:1px solid rgba(148,163,184,.35);border-radius:999px;padding:3px 8px;font-size:.78rem;color:#334155}
.qr-activity-bubbles-mobile{display:flex;flex-direction:column;gap:7px}.qr-act-bubble{display:block;text-decoration:none;color:#0f172a;border:1px solid #e5e7eb;border-left:7px solid #f59e0b;border-radius:14px;background:#fff;padding:9px 10px;box-shadow:0 4px 12px rgba(15,23,42,.05)}.qr-act-bubble:hover{color:#0f172a;box-shadow:0 8px 20px rgba(15,23,42,.10)}
.qr-act-bubble.act-paid-pending{border-left-color:#22c55e;background:#f6fff8}.qr-act-bubble.act-complete{border-left-color:#15803d;background:#ecfdf3}.qr-act-bubble.act-review{border-left-color:#0ea5e9;background:#f0f9ff}.qr-act-bubble.act-pending{border-left-color:#f59e0b;background:#fffaf0}.qr-act-bubble.act-finished{border-left-color:#94a3b8;background:#f8fafc;color:#475569}
.qr-act-main{display:flex;flex-direction:column;line-height:1.15}.qr-act-main strong{font-size:.95rem;font-weight:950}.qr-act-main span{font-size:.78rem;color:#64748b;margin-top:2px}.qr-act-state{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.qr-act-state span{font-size:.74rem;font-weight:850;background:rgba(255,255,255,.78);border:1px solid rgba(148,163,184,.30);border-radius:999px;padding:2px 7px}.qr-manage-page .qr-family-card{margin-top:0}.qr-action-stack{display:flex;flex-direction:column;gap:8px}.qr-action-stack .btn{border-radius:14px;font-weight:850}.qr-manage-actions{background:#ffffff}.dashboard-bubbles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat-bubble{background:#fff;border:1px solid #e2edf8;border-left:7px solid #155f9f;border-radius:22px;padding:14px 16px;box-shadow:0 8px 18px rgba(21,95,159,.06)}.stat-bubble span{display:block;color:#64748b;font-size:.88rem}.stat-bubble strong{font-size:1.55rem}.stat-bubble.danger{border-left-color:#dc3545}.stat-bubble.info{border-left-color:#0dcaf0}.stat-bubble.ok{border-left-color:#198754}.stat-bubble.warn{border-left-color:#ffc107}
@media(max-width:768px){.qr-page-v24{font-size:.86rem}.qr-family-card{padding:8px 9px;border-radius:12px;margin-bottom:7px}.qr-family-card-name{font-size:.98rem}.qr-status-chip{font-size:.70rem;padding:2px 6px}.qr-chip-list{gap:4px}.qr-chip{font-size:.70rem;padding:3px 6px}.qr-activity-bubbles-mobile{gap:6px}.qr-act-bubble{padding:8px;border-radius:12px}.qr-act-main strong{font-size:.88rem}.qr-act-main span{font-size:.71rem}.qr-act-state{gap:4px;margin-top:5px}.qr-act-state span{font-size:.68rem;padding:2px 6px}.qr-manage-page .qr-detail-grid{grid-template-columns:repeat(3,1fr)}.qr-action-stack .btn{font-size:.95rem;padding:.55rem}.dashboard-bubbles{grid-template-columns:repeat(2,1fr);gap:8px}.stat-bubble{padding:10px;border-radius:15px}.stat-bubble strong{font-size:1.25rem}.navbar .navbar-brand span{display:none}}

/* V26 - QR actividad más limpio en móvil */
.qr-manage-page .qr-title-mobile{font-size:1.15rem}.qr-manage-page .qr-family-card{padding:8px 10px;border-radius:14px}.qr-manage-page .qr-family-card-name{font-size:.95rem}.qr-manage-page .qr-act-main strong{display:block;font-size:.96rem;line-height:1.08;margin-bottom:3px;word-break:break-word}.qr-manage-page .qr-act-main span{display:block;font-size:.76rem;line-height:1.15;color:#64748b}.qr-manage-page .qr-compact-section{padding:8px 10px}.qr-manage-page .qr-action-stack .btn{font-size:1rem;padding:.62rem .7rem;line-height:1.1}
@media(max-width:768px){.qr-manage-page{font-size:.88rem}.qr-manage-page .qr-top-actions{align-items:flex-start}.qr-manage-page .qr-title-mobile{font-size:1.05rem}.qr-manage-page .qr-family-card-top{gap:6px}.qr-manage-page .qr-detail-grid{grid-template-columns:repeat(2,1fr)}.qr-manage-page .qr-action-stack{gap:6px}.qr-manage-page .qr-action-stack .btn{font-size:.92rem;padding:.55rem}.qr-manage-page h1,.qr-manage-page h2{line-height:1.1}}


/* V27 - QR móvil con burbujas claras por actividad */
.qr-page-mobile .qr-section-head{letter-spacing:.01em}
.qr-activity-bubbles-mobile{gap:8px!important}
.qr-act-bubble{border-radius:18px!important;padding:11px 12px!important;border-left:0!important;border-width:2px!important;position:relative;overflow:hidden}
.qr-act-bubble::after{content:'›';position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:1.8rem;font-weight:900;opacity:.35}
.qr-act-bubble .qr-act-main strong{font-size:1rem!important;line-height:1.05;text-transform:uppercase}
.qr-act-bubble .qr-act-main span{font-size:.78rem!important;color:#334155!important;margin-right:22px}
.qr-act-bubble .qr-act-state{padding-right:26px}
.qr-act-bubble .qr-act-state span{background:rgba(255,255,255,.75)!important;border:1px solid rgba(15,23,42,.10)!important;color:#0f172a!important}
.qr-act-bubble.act-green-action{background:#dcfce7!important;border-color:#22c55e!important;box-shadow:0 6px 16px rgba(34,197,94,.16)!important}
.qr-act-bubble.act-red-done{background:#fee2e2!important;border-color:#ef4444!important;box-shadow:0 6px 16px rgba(239,68,68,.14)!important}
.qr-act-bubble.act-review{background:#e0f2fe!important;border-color:#38bdf8!important}
.qr-act-bubble.act-notpaid{background:#fef3c7!important;border-color:#f59e0b!important}
.qr-act-bubble.act-finished{background:#f1f5f9!important;border-color:#94a3b8!important;color:#475569!important}
.qr-manage-activity-card{border-radius:18px;padding:12px;margin-bottom:8px;border:2px solid #e5e7eb;box-shadow:0 7px 18px rgba(15,23,42,.07)}
.qr-manage-activity-card.qr-manage-green{background:#dcfce7;border-color:#22c55e}.qr-manage-activity-card.qr-manage-red{background:#fee2e2;border-color:#ef4444}.qr-manage-activity-card.qr-manage-yellow{background:#fef3c7;border-color:#f59e0b}.qr-manage-activity-card.qr-manage-neutral{background:#f8fafc;border-color:#cbd5e1}
.qr-manage-card-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.qr-pay-pill{border-radius:999px;background:#fff;padding:4px 8px;font-size:.75rem;font-weight:900;border:1px solid rgba(15,23,42,.12);white-space:nowrap}.qr-manage-act-title{font-size:1.15rem;font-weight:950;line-height:1.05;margin-top:8px;text-transform:uppercase}.qr-manage-person{font-size:.86rem;color:#334155;margin-top:4px}.qr-status-panel-mobile .qr-detail-grid div{background:#fff;border:1px solid #e2e8f0}.qr-action-panel-mobile .qr-action-stack .btn{border-radius:16px!important;font-weight:950!important}.btn-ticket-action{background:#22c55e!important;border-color:#16a34a!important;color:#fff!important}.btn-ticket-action:disabled{background:#ef4444!important;border-color:#dc2626!important;color:#fff!important;opacity:1}.btn-assist-action{background:#198754!important;border-color:#198754!important;color:#fff!important}.btn-assist-action:disabled{background:#ef4444!important;border-color:#dc2626!important;color:#fff!important;opacity:1}
@media(max-width:768px){.qr-act-bubble{padding:10px 11px!important;border-radius:16px!important}.qr-act-bubble .qr-act-main strong{font-size:.92rem!important}.qr-act-bubble .qr-act-main span{font-size:.72rem!important}.qr-act-bubble .qr-act-state span{font-size:.68rem!important}.qr-manage-activity-card{padding:10px;border-radius:16px}.qr-manage-act-title{font-size:1rem}.qr-manage-person{font-size:.78rem}.qr-pay-pill{font-size:.68rem;padding:3px 7px}}

/* V29: botones compactos en gestión móvil de actividad */
.qr-pay-buttons-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;}
.qr-pay-buttons-row .qr-pay-mini{width:100%;border-radius:12px!important;font-weight:900!important;font-size:.82rem!important;padding:.48rem .35rem!important;line-height:1.08!important;min-height:44px;white-space:normal;}
.qr-ticket-important{background:#f97316!important;border-color:#ea580c!important;color:#fff!important;font-weight:950!important;box-shadow:0 8px 16px rgba(249,115,22,.22);}
.qr-ticket-important:not(:disabled){animation:qrTicketPulse 1.8s ease-in-out infinite;}
@keyframes qrTicketPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.08)}}
.qr-ticket-important:disabled{background:#ef4444!important;border-color:#dc2626!important;color:#fff!important;box-shadow:none;animation:none;opacity:1;}
@media(max-width:768px){.qr-pay-buttons-row{gap:6px}.qr-pay-buttons-row .qr-pay-mini{font-size:.76rem!important;padding:.42rem .28rem!important;min-height:40px}.qr-ticket-important{font-size:1rem!important;padding:.72rem .55rem!important}}


/* V30: botón principal de control en burbuja circular naranja */
.qr-control-circles{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  margin:8px 0 4px;
}
.qr-control-circle{
  width:150px!important;
  height:150px!important;
  border-radius:50%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  padding:18px!important;
  line-height:1.12!important;
  font-size:1.02rem!important;
  font-weight:950!important;
  white-space:normal!important;
  box-shadow:0 12px 24px rgba(249,115,22,.26)!important;
  border-width:3px!important;
}
.qr-control-circle span{display:block;max-width:110px;margin:0 auto;}
.qr-assist-important,
.qr-ticket-important{
  background:#f97316!important;
  border-color:#ea580c!important;
  color:#fff!important;
}
.qr-control-circle:not(:disabled){animation:qrTicketPulse 1.8s ease-in-out infinite;}
.qr-control-circle:disabled{
  background:#ef4444!important;
  border-color:#dc2626!important;
  color:#fff!important;
  box-shadow:none!important;
  animation:none!important;
  opacity:1!important;
}
@media(max-width:768px){
  .qr-control-circles{gap:10px;margin-top:6px;}
  .qr-control-circle{width:132px!important;height:132px!important;font-size:.88rem!important;padding:14px!important;}
  .qr-control-circle span{max-width:96px;}
}


/* V31 FIX DEFINITIVO: círculo naranja visible en móvil, aunque Bootstrap o caché intenten pisarlo */
.qr-action-panel-mobile .qr-control-circles{
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  gap:14px!important;
  margin:12px 0 6px!important;
}
.qr-action-panel-mobile button.qr-control-circle,
.qr-action-panel-mobile .qr-control-circle,
button.qr-control-circle.qr-ticket-important,
button.qr-control-circle.qr-assist-important{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:142px!important;
  height:142px!important;
  min-width:142px!important;
  min-height:142px!important;
  max-width:142px!important;
  max-height:142px!important;
  border-radius:9999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  background-color:#f97316!important;
  background:#f97316!important;
  border:4px solid #ea580c!important;
  color:#ffffff!important;
  font-weight:950!important;
  font-size:.92rem!important;
  line-height:1.08!important;
  padding:14px!important;
  box-shadow:0 10px 24px rgba(249,115,22,.34)!important;
  text-decoration:none!important;
  opacity:1!important;
}
.qr-action-panel-mobile button.qr-control-circle span,
button.qr-control-circle.qr-ticket-important span,
button.qr-control-circle.qr-assist-important span{
  display:block!important;
  width:100%!important;
  max-width:98px!important;
  margin:auto!important;
  color:#ffffff!important;
}
.qr-action-panel-mobile button.qr-control-circle:disabled,
button.qr-control-circle.qr-ticket-important:disabled,
button.qr-control-circle.qr-assist-important:disabled{
  background-color:#ef4444!important;
  background:#ef4444!important;
  border-color:#dc2626!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(239,68,68,.25)!important;
}
@media(max-width:420px){
  .qr-action-panel-mobile button.qr-control-circle,
  .qr-action-panel-mobile .qr-control-circle,
  button.qr-control-circle.qr-ticket-important,
  button.qr-control-circle.qr-assist-important{
    width:126px!important;height:126px!important;min-width:126px!important;min-height:126px!important;max-width:126px!important;max-height:126px!important;font-size:.82rem!important;padding:10px!important;
  }
  .qr-action-panel-mobile button.qr-control-circle span{max-width:88px!important;}
}

/* V36 - Alta pública de nuevos socios y recibos bancarios */
.new-member-section{background:linear-gradient(135deg,#eaf6ff,#fff7d6)}
.new-member-card{border-radius:30px;background:linear-gradient(135deg,#0d6efd,#13a166);color:#fff;padding:34px;display:grid;grid-template-columns:1.7fr .8fr;gap:24px;align-items:center;overflow:hidden;position:relative}
.new-member-card:before{content:'';position:absolute;right:-80px;top:-80px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.16)}
.new-member-content,.new-member-side{position:relative;z-index:2}.member-chip{display:inline-flex;border-radius:999px;padding:7px 12px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);font-weight:700;font-size:.9rem}.new-member-side{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);border-radius:24px;padding:22px}.member-icon{font-size:3rem;line-height:1;margin-bottom:10px}.alta-socio-page{background:#f3f7fb}.alta-hero-card{border-radius:28px;background:linear-gradient(135deg,#ffffff,#eaf6ff);border:1px solid #dbeafe;padding:28px;box-shadow:0 10px 30px rgba(15,23,42,.08)}.public-form-bubble{border-radius:24px;background:#fff;border:1px solid #dbe4f0;padding:22px;box-shadow:0 8px 22px rgba(15,23,42,.05)}.public-form-bubble.pay-bubble{background:#fffaf0;border-color:#fde2a8}.public-form-bubble.children-bubble{background:#f0fdf4;border-color:#bbf7d0}.alta-form .form-control,.alta-form .form-select{border-radius:12px}.required:after{content:' *';color:#dc3545}
@media(max-width:768px){.new-member-card{grid-template-columns:1fr;padding:24px;border-radius:22px}.new-member-side{padding:16px}.public-form-bubble{padding:16px;border-radius:18px}.alta-hero-card{padding:20px;border-radius:20px}}
/* V38 altas socios limpias */
.alta-detail .section-title{font-size:1rem;font-weight:800;margin-bottom:.75rem;color:#102a43}
.detail-row{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #e8eef7;padding:.45rem 0;font-size:.95rem}
.detail-row strong{color:#40546b}
.detail-row span{text-align:right;font-weight:600;color:#102a43}
.mini-card{border:1px solid #dce8f5;background:#f8fbff;border-radius:14px;padding:.75rem}
.student-strip{border:1px solid #cfe8d8;background:#f1fff5;border-radius:14px;padding:.75rem}

/* V41 - Ficha familia: cuota AMPA simplificada */
.simple-quota-card{background:#f8fbff;border:1px solid #d9e8ff;border-radius:18px;padding:16px;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.quota-history-list{display:flex;flex-direction:column;gap:8px}
.quota-history-item{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid #e7eef8;border-radius:14px;padding:10px 12px}
@media(max-width:700px){.quota-history-item{align-items:flex-start}.simple-quota-card .btn{width:100%}}
:root{--ampa-blue:#155f9f;--ampa-blue-dark:#0c3c70;--ampa-gold:#f4c542;--ampa-soft:#f5f8fc;--ampa-green:#1a936f}body{background:#f5f7fb}.logo{height:48px;max-width:180px;object-fit:contain}.card{border:0;border-radius:18px}.stat{font-size:2rem;font-weight:700}.table td,.table th{vertical-align:middle}.badge-soft{background:#eef2ff;color:#303f9f}.login-box{max-width:440px;margin:40px auto}.btn-primary{background:#1b7fbd;border-color:#1b7fbd}.btn-primary:hover{background:#156a9e;border-color:#156a9e}a{text-decoration:none}.form-label{font-weight:600}.small-muted{font-size:.875rem;color:#6c757d}.hero-logo{max-width:330px;width:100%;height:auto}.required:after{content:' *';color:#dc3545}
.public-home{background:#fff;color:#203040}.public-nav{background:rgba(12,60,112,.92);backdrop-filter:blur(10px)}.public-nav .navbar-brand,.public-nav .brand-text{color:#fff;font-weight:800}.public-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--ampa-blue-dark),var(--ampa-blue));}.hero-bg{position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(244,197,66,.26),transparent 32%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.18),transparent 30%),linear-gradient(135deg,rgba(12,60,112,.96),rgba(21,95,159,.85));}.public-hero:after{content:"";position:absolute;right:-90px;bottom:-120px;width:420px;height:420px;border-radius:50%;background:rgba(244,197,66,.18)}.eyebrow{display:inline-block;padding:.45rem .75rem;border:1px solid rgba(255,255,255,.35);border-radius:999px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.8rem}.hero-card{background:#fff;border-radius:28px;padding:2rem;text-align:center}.hero-public-logo{max-width:280px;width:100%;height:auto}.feature-card{background:#fff;border:1px solid #e8eef7;border-radius:24px;padding:2rem;box-shadow:0 10px 24px rgba(21,95,159,.06)}.feature-icon{font-size:2.3rem;margin-bottom:1rem}.section-soft{background:var(--ampa-soft)}.check-list{list-style:none;padding-left:0;margin:0}.check-list li{margin:.65rem 0;padding-left:1.9rem;position:relative}.check-list li:before{content:"✓";position:absolute;left:0;top:0;color:var(--ampa-green);font-weight:800}.info-panel{background:#fff;border-radius:24px;padding:2rem;border-left:6px solid var(--ampa-gold)}.public-footer{background:#0c3c70;color:#dfefff}.public-footer a{color:#fff}.login-box .card{border-top:6px solid var(--ampa-gold)}
.login-bg{min-height:100vh;background:linear-gradient(135deg,#0c3c70,#1b7fbd);}.login-card{border-top:6px solid var(--ampa-gold)}.login-logo{max-width:220px;width:100%;height:auto}.badge{font-weight:600}

.acciones-compactas .btn{white-space:nowrap}.familia-header{background:linear-gradient(135deg,#eef6ff,#fff);border-left:6px solid var(--ampa-blue)}.table-search{max-width:520px}.child-card{border:1px solid #e8eef7;border-radius:14px;padding:1rem;background:#fff}.btn-volver-page{margin-bottom:1rem}.form-hint{font-size:.82rem;color:#6c757d}

/* V8 - diseño en burbujas anchas */
body{background:#eef4fb}.container-fluid{max-width:1600px}.navbar{border-bottom:1px solid #e8eef7}.page-title-bubble{background:linear-gradient(135deg,#ffffff,#f2f8ff);border:1px solid #dbeafe;border-left:8px solid var(--ampa-blue);border-radius:999px;padding:1rem 1.35rem;margin-bottom:1rem;box-shadow:0 8px 22px rgba(21,95,159,.08)}.bubble-panel{background:#fff;border:1px solid #e2edf8;border-radius:28px;padding:1.15rem 1.25rem;box-shadow:0 10px 28px rgba(21,95,159,.07);margin-bottom:1rem}.bubble-wide{border-radius:999px;padding:1rem 1.2rem}.bubble-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.bubble-list{display:flex;flex-direction:column;gap:.85rem}.family-bubble{background:#fff;border:1px solid #dfeaf7;border-left:7px solid var(--ampa-blue);border-radius:999px;padding:.9rem 1rem;box-shadow:0 8px 18px rgba(21,95,159,.06);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.family-bubble:hover{border-color:#b8d8f5;box-shadow:0 12px 26px rgba(21,95,159,.11)}.family-main{min-width:260px;flex:1 1 320px}.family-meta{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.pill{display:inline-flex;align-items:center;gap:.35rem;background:#f1f6fd;border:1px solid #dce9f8;border-radius:999px;padding:.35rem .7rem;font-size:.88rem;color:#29415b}.pill-ok{background:#edfdf6;border-color:#c8f2df;color:#126b4c}.pill-warn{background:#fff8e6;border-color:#fde4a5;color:#825b00}.pill-info{background:#edf7ff;border-color:#cceaff;color:#155f9f}.pill-danger{background:#fff0f0;border-color:#ffd2d2;color:#9f1d1d}.search-bubble{border-radius:999px;padding:.8rem 1.1rem;border:1px solid #cfe0f4}.action-top{display:flex;gap:.75rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.create-family-box{display:none}.create-family-box.open{display:block}.student-list{display:flex;flex-direction:column;gap:.55rem}.student-line{display:grid;grid-template-columns:2fr 2fr 1fr 1fr auto;gap:.5rem;align-items:end;background:#f8fbff;border:1px solid #e4eef9;border-radius:22px;padding:.75rem}.tutor-line{background:#f8fbff;border:1px solid #e4eef9;border-radius:22px;padding:.75rem;margin-bottom:.6rem}.payment-year-bubble{background:#fff;border:1px solid #dfeaf7;border-left:7px solid #1a936f;border-radius:28px;padding:1rem;margin-bottom:.85rem}.manual-pay-bubble{background:#f8fff9;border:1px solid #d5f2dc;border-left:7px solid #1a936f;border-radius:28px;padding:1rem}.hide-initial-empty [data-filter-text]{display:none}@media(max-width:768px){.family-bubble{border-radius:28px;align-items:flex-start}.bubble-wide{border-radius:28px}.page-title-bubble{border-radius:28px}.student-line{grid-template-columns:1fr}.action-top{align-items:stretch}.action-top .btn,.action-top input{width:100%}}

/* V11 - claridad visual, carnet y QR */
.page-title{font-size:1.85rem;font-weight:800;color:#143b63;margin:0}.page-subtitle{color:#66758a;margin:.25rem 0 1rem}.family-bubble{padding:.65rem .85rem;border-radius:24px}.family-main{min-width:220px;flex:1 1 290px}.family-meta .pill{font-size:.8rem;padding:.25rem .55rem}.children-zone{background:#fff7e5;border:1px solid #f2d18a;border-left:7px solid #f4c542;border-radius:24px;padding:1rem}.children-zone .student-line,.children-zone .child-card{background:#fffaf0;border-color:#f0d69b}.annual-fee-zone{background:#eef9ff;border:1px solid #bfe7ff;border-left:7px solid #1b7fbd;border-radius:24px;padding:1rem;margin-bottom:1rem}.annual-fee-zone h2,.annual-fee-zone h3{color:#0c3c70}.bubble-titleless{background:#fff;border:1px solid #e2edf8;border-radius:28px;padding:1rem;box-shadow:0 10px 28px rgba(21,95,159,.07);}.card-ampa{background:linear-gradient(135deg,#0c3c70,#1b7fbd);border-radius:28px;padding:1.15rem;color:#fff;position:relative;overflow:hidden}.card-ampa:after{content:"";position:absolute;right:-55px;bottom:-70px;width:190px;height:190px;background:rgba(244,197,66,.22);border-radius:50%}.card-ampa-inner{position:relative;z-index:2}.card-ampa-logo{background:#fff;border-radius:18px;padding:.4rem;max-width:105px}.qr-box{background:#fff;border-radius:22px;padding:.8rem;display:inline-block}.qr-box canvas,.qr-box img{max-width:100%;height:auto!important}.mobile-carnet{max-width:430px;margin:0 auto}.scan-panel{max-width:680px;margin:0 auto}.status-big{font-size:1.05rem;padding:.55rem .8rem;border-radius:999px}.activity-bubble{background:#fff;border:1px solid #dfeaf7;border-left:7px solid var(--ampa-blue);border-radius:24px;padding:.85rem;margin-bottom:.75rem;display:flex;gap:.7rem;justify-content:space-between;align-items:center;flex-wrap:wrap}.activity-inactive{opacity:.55;border-left-color:#adb5bd}.btn-icon-line{display:flex;gap:.4rem;flex-wrap:wrap}.course-bubble{background:#fff;border:1px solid #dfeaf7;border-radius:22px;padding:.85rem;margin-bottom:.65rem;display:flex;justify-content:space-between;gap:.6rem;align-items:center}.qr-summary-bubble{background:#fff;border-radius:24px;border:1px solid #e2edf8;padding:1rem;margin-bottom:1rem}@media(max-width:768px){.page-title{font-size:1.45rem}.card-ampa{border-radius:24px}.mobile-carnet{max-width:100%}.qr-box{width:100%;text-align:center}.activity-bubble,.course-bubble{align-items:flex-start}.family-bubble{border-radius:20px}.family-meta{width:100%}.btn-icon-line .btn{flex:1 1 auto}.card-ampa-logo{max-width:85px}}

/* V20 - QR móvil compacto y separación cuotas/actividades */
.selected-bubble{outline:3px solid rgba(13,110,253,.25);background:#eef6ff!important}
.qr-compact-head{padding:12px 14px;margin-bottom:10px}
.qr-mini{padding:12px!important}.compact-child{padding:8px 10px;margin-bottom:6px}.compact-payment{padding:8px 10px;margin-bottom:6px}
.qr-mobile-grid .bubble-panel,.qr-mobile-grid .children-zone{min-height:100%}
.qr-activity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.qr-activity-bubble{border:1px solid #e5e7eb;border-left:6px solid #f59e0b;border-radius:16px;background:#fff;padding:12px;box-shadow:0 4px 12px rgba(15,23,42,.06)}
.qr-activity-bubble.paid{border-left-color:#22c55e;background:#f6fff8}.qr-activity-bubble.pending{border-left-color:#f59e0b;background:#fffaf0}.qr-activity-bubble.delivered{background:#eefaf2}.qr-activity-bubble.finished{border-left-color:#94a3b8;background:#f8fafc;color:#475569}
.qr-act-title{font-weight:800;font-size:1rem;margin-bottom:2px}.qr-status-line{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.qr-ticket-line{margin-top:8px;border-radius:12px;padding:6px 8px;background:#f1f5f9;font-size:.95rem}.qr-ticket-line.need-delivery{background:#fff3cd}.qr-ticket-line.ok-delivery{background:#dcfce7}
@media(max-width:768px){.container-fluid.py-4{padding:10px!important}.page-title{font-size:1.35rem}.page-subtitle{font-size:.9rem}.qr-summary-bubble,.bubble-panel,.children-zone{border-radius:14px}.qr-activity-grid{grid-template-columns:1fr}.qr-activity-bubble{padding:10px}.status-big{font-size:.9rem}.bubble-row{gap:8px}.family-bubble{padding:10px}.family-meta{gap:4px}.pill{font-size:.78rem}}

/* V21 - QR admin ultra compacto móvil */
.qr-page-mobile{max-width:980px;margin:0 auto}.qr-top-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.qr-title-mobile{font-size:1.35rem;font-weight:900;margin:0;color:#12395e}.qr-subtitle-mobile{font-size:.9rem;color:#64748b}.qr-action-buttons{display:flex;gap:6px;white-space:nowrap}.qr-alert-compact{padding:.55rem .75rem;margin-bottom:8px}.qr-family-strip{background:#fff;border:1px solid #dbeafe;border-left:6px solid #0d6efd;border-radius:16px;padding:10px 12px;margin-bottom:8px;display:flex;justify-content:space-between;gap:8px;align-items:center}.qr-family-name{font-size:1.15rem;font-weight:900;line-height:1.1}.qr-family-meta{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.qr-compact-section{background:#fff;border:1px solid #e5edf7;border-radius:16px;padding:10px 12px;margin-bottom:8px;box-shadow:0 4px 14px rgba(15,23,42,.04)}.qr-section-head{font-weight:900;font-size:.95rem;color:#12395e;margin-bottom:6px}.qr-section-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.qr-section-row small{font-weight:500;color:#64748b}.qr-chip-list{display:flex;flex-wrap:wrap;gap:6px}.qr-chip{display:inline-flex;gap:6px;align-items:center;background:#fff7e5;border:1px solid #f4d28a;border-radius:999px;padding:5px 9px;font-size:.86rem}.qr-chip em{font-style:normal;color:#64748b}.qr-chip.muted{background:#f1f5f9;border-color:#e2e8f0;color:#64748b}.qr-cuota-line{display:flex;justify-content:space-between;gap:8px;align-items:center;background:#f8fbff;border-radius:12px;padding:7px 9px;margin-bottom:5px}.qr-cuota-line div{display:flex;flex-direction:column;line-height:1.15}.qr-cuota-line span:not(.badge){font-size:.82rem;color:#64748b}.qr-touch-list{display:flex;flex-direction:column;gap:7px}.qr-touch-card{border:1px solid #e5e7eb;border-left:7px solid #f59e0b;border-radius:15px;background:#fff;overflow:hidden}.qr-touch-card summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;cursor:pointer}.qr-touch-card summary::-webkit-details-marker{display:none}.qr-touch-card.paid-waiting{border-left-color:#22c55e;background:#f7fff9}.qr-touch-card.paid-delivered{border-left-color:#16a34a;background:#edfdf4}.qr-touch-card.not-paid{border-left-color:#f59e0b;background:#fffaf0}.qr-touch-card[open]{box-shadow:0 8px 22px rgba(15,23,42,.08)}.qr-touch-title{font-size:.98rem;font-weight:900;line-height:1.05}.qr-touch-person{font-size:.82rem;color:#64748b;margin-top:2px}.qr-touch-status{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:86px}.qr-ticket-mini{font-size:.82rem;font-weight:900;border-radius:999px;padding:2px 7px;background:#dcfce7;color:#166534}.qr-ticket-mini.pending{background:#fef3c7;color:#92400e}.qr-ticket-mini.ok{background:#dcfce7;color:#166534}.qr-touch-detail{border-top:1px solid rgba(148,163,184,.35);padding:8px 10px;background:rgba(255,255,255,.7)}.qr-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.qr-detail-grid div{background:#f8fafc;border-radius:10px;padding:6px;text-align:center}.qr-detail-grid span{display:block;font-size:.72rem;color:#64748b}.qr-detail-grid strong{font-size:.82rem}.qr-no-delivery{background:#fff3cd;border-radius:10px;padding:7px 9px;font-size:.85rem;color:#7a5600;margin-top:7px}.qr-finished-box{background:#f8fafc}.finished-static{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;border-left-color:#94a3b8;color:#475569;background:#f8fafc}
@media(max-width:768px){.container-fluid.py-4{padding:6px!important}.qr-page-mobile{margin:0}.qr-top-actions{position:sticky;top:0;z-index:20;background:#eef4fb;padding:5px 0;margin-bottom:6px}.qr-title-mobile{font-size:1.1rem}.qr-subtitle-mobile{display:none}.qr-action-buttons .btn{padding:.35rem .55rem;font-size:.88rem}.qr-family-strip{padding:8px 9px;border-radius:13px}.qr-family-name{font-size:1rem}.qr-family-meta .badge{font-size:.72rem}.qr-compact-section{padding:8px 9px;border-radius:13px;margin-bottom:7px}.qr-section-head{font-size:.88rem;margin-bottom:5px}.qr-section-row small{font-size:.76rem}.qr-chip{font-size:.78rem;padding:4px 7px}.qr-cuota-line{padding:6px 7px}.qr-cuota-line strong{font-size:.86rem}.qr-cuota-line span:not(.badge){font-size:.74rem}.qr-touch-card summary{padding:8px}.qr-touch-title{font-size:.9rem}.qr-touch-person{font-size:.75rem}.qr-touch-status{min-width:76px}.qr-touch-status .badge{font-size:.68rem}.qr-ticket-mini{font-size:.74rem;padding:2px 6px}.qr-detail-grid{grid-template-columns:1fr 1fr 1fr;gap:4px}.qr-detail-grid div{padding:5px 3px}.qr-detail-grid span{font-size:.66rem}.qr-detail-grid strong{font-size:.72rem}.qr-touch-detail .btn{font-size:.86rem;padding:.42rem}.qr-alert-compact{font-size:.85rem;padding:.45rem .6rem}.navbar .logo{height:32px;max-width:95px}.navbar .navbar-brand{font-size:.88rem}.navbar .btn{font-size:.82rem;padding:.28rem .45rem}}

/* V23: burbujas de pagos del dashboard clicables */
a.payment-link-bubble{
  display:block;
  text-decoration:none;
  color:inherit;
  border:1px solid rgba(13,110,253,.16);
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
a.payment-link-bubble:hover,
a.payment-link-bubble:focus{
  transform:translateY(-1px);
  box-shadow:0 6px 18px rgba(15,23,42,.10);
  border-color:rgba(13,110,253,.40);
  color:inherit;
}
a.payment-link-bubble.ok{border-color:rgba(25,135,84,.18)}


/* V25 - QR móvil por familia y gestión por actividad */
.qr-page-v24{font-size:.95rem}.qr-family-card{border:1px solid #d8e7f5;border-radius:14px;padding:10px 12px;margin-bottom:8px;box-shadow:0 4px 14px rgba(15,23,42,.05)}
.qr-family-card.family-paid{background:#eafff1;border-color:#a7e5ba;border-left:8px solid #16a34a}.qr-family-card.family-pending{background:#fff8dc;border-color:#f3d46f;border-left:8px solid #f59e0b}.qr-family-card.family-unpaid{background:#fff0f0;border-color:#ffb3b3;border-left:8px solid #dc2626}
.qr-family-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.qr-mini-label{text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-size:.66rem;font-weight:900}.qr-family-card-name{font-size:1.05rem;font-weight:950;line-height:1.05;color:#0f172a}.qr-family-card-status{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.qr-status-chip{background:rgba(255,255,255,.72);border:1px solid rgba(148,163,184,.35);border-radius:999px;padding:3px 8px;font-size:.78rem;color:#334155}
.qr-activity-bubbles-mobile{display:flex;flex-direction:column;gap:7px}.qr-act-bubble{display:block;text-decoration:none;color:#0f172a;border:1px solid #e5e7eb;border-left:7px solid #f59e0b;border-radius:14px;background:#fff;padding:9px 10px;box-shadow:0 4px 12px rgba(15,23,42,.05)}.qr-act-bubble:hover{color:#0f172a;box-shadow:0 8px 20px rgba(15,23,42,.10)}
.qr-act-bubble.act-paid-pending{border-left-color:#22c55e;background:#f6fff8}.qr-act-bubble.act-complete{border-left-color:#15803d;background:#ecfdf3}.qr-act-bubble.act-review{border-left-color:#0ea5e9;background:#f0f9ff}.qr-act-bubble.act-pending{border-left-color:#f59e0b;background:#fffaf0}.qr-act-bubble.act-finished{border-left-color:#94a3b8;background:#f8fafc;color:#475569}
.qr-act-main{display:flex;flex-direction:column;line-height:1.15}.qr-act-main strong{font-size:.95rem;font-weight:950}.qr-act-main span{font-size:.78rem;color:#64748b;margin-top:2px}.qr-act-state{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.qr-act-state span{font-size:.74rem;font-weight:850;background:rgba(255,255,255,.78);border:1px solid rgba(148,163,184,.30);border-radius:999px;padding:2px 7px}.qr-manage-page .qr-family-card{margin-top:0}.qr-action-stack{display:flex;flex-direction:column;gap:8px}.qr-action-stack .btn{border-radius:14px;font-weight:850}.qr-manage-actions{background:#ffffff}.dashboard-bubbles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat-bubble{background:#fff;border:1px solid #e2edf8;border-left:7px solid #155f9f;border-radius:22px;padding:14px 16px;box-shadow:0 8px 18px rgba(21,95,159,.06)}.stat-bubble span{display:block;color:#64748b;font-size:.88rem}.stat-bubble strong{font-size:1.55rem}.stat-bubble.danger{border-left-color:#dc3545}.stat-bubble.info{border-left-color:#0dcaf0}.stat-bubble.ok{border-left-color:#198754}.stat-bubble.warn{border-left-color:#ffc107}
@media(max-width:768px){.qr-page-v24{font-size:.86rem}.qr-family-card{padding:8px 9px;border-radius:12px;margin-bottom:7px}.qr-family-card-name{font-size:.98rem}.qr-status-chip{font-size:.70rem;padding:2px 6px}.qr-chip-list{gap:4px}.qr-chip{font-size:.70rem;padding:3px 6px}.qr-activity-bubbles-mobile{gap:6px}.qr-act-bubble{padding:8px;border-radius:12px}.qr-act-main strong{font-size:.88rem}.qr-act-main span{font-size:.71rem}.qr-act-state{gap:4px;margin-top:5px}.qr-act-state span{font-size:.68rem;padding:2px 6px}.qr-manage-page .qr-detail-grid{grid-template-columns:repeat(3,1fr)}.qr-action-stack .btn{font-size:.95rem;padding:.55rem}.dashboard-bubbles{grid-template-columns:repeat(2,1fr);gap:8px}.stat-bubble{padding:10px;border-radius:15px}.stat-bubble strong{font-size:1.25rem}.navbar .navbar-brand span{display:none}}

/* V26 - QR actividad más limpio en móvil */
.qr-manage-page .qr-title-mobile{font-size:1.15rem}.qr-manage-page .qr-family-card{padding:8px 10px;border-radius:14px}.qr-manage-page .qr-family-card-name{font-size:.95rem}.qr-manage-page .qr-act-main strong{display:block;font-size:.96rem;line-height:1.08;margin-bottom:3px;word-break:break-word}.qr-manage-page .qr-act-main span{display:block;font-size:.76rem;line-height:1.15;color:#64748b}.qr-manage-page .qr-compact-section{padding:8px 10px}.qr-manage-page .qr-action-stack .btn{font-size:1rem;padding:.62rem .7rem;line-height:1.1}
@media(max-width:768px){.qr-manage-page{font-size:.88rem}.qr-manage-page .qr-top-actions{align-items:flex-start}.qr-manage-page .qr-title-mobile{font-size:1.05rem}.qr-manage-page .qr-family-card-top{gap:6px}.qr-manage-page .qr-detail-grid{grid-template-columns:repeat(2,1fr)}.qr-manage-page .qr-action-stack{gap:6px}.qr-manage-page .qr-action-stack .btn{font-size:.92rem;padding:.55rem}.qr-manage-page h1,.qr-manage-page h2{line-height:1.1}}


/* V27 - QR móvil con burbujas claras por actividad */
.qr-page-mobile .qr-section-head{letter-spacing:.01em}
.qr-activity-bubbles-mobile{gap:8px!important}
.qr-act-bubble{border-radius:18px!important;padding:11px 12px!important;border-left:0!important;border-width:2px!important;position:relative;overflow:hidden}
.qr-act-bubble::after{content:'›';position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:1.8rem;font-weight:900;opacity:.35}
.qr-act-bubble .qr-act-main strong{font-size:1rem!important;line-height:1.05;text-transform:uppercase}
.qr-act-bubble .qr-act-main span{font-size:.78rem!important;color:#334155!important;margin-right:22px}
.qr-act-bubble .qr-act-state{padding-right:26px}
.qr-act-bubble .qr-act-state span{background:rgba(255,255,255,.75)!important;border:1px solid rgba(15,23,42,.10)!important;color:#0f172a!important}
.qr-act-bubble.act-green-action{background:#dcfce7!important;border-color:#22c55e!important;box-shadow:0 6px 16px rgba(34,197,94,.16)!important}
.qr-act-bubble.act-red-done{background:#fee2e2!important;border-color:#ef4444!important;box-shadow:0 6px 16px rgba(239,68,68,.14)!important}
.qr-act-bubble.act-review{background:#e0f2fe!important;border-color:#38bdf8!important}
.qr-act-bubble.act-notpaid{background:#fef3c7!important;border-color:#f59e0b!important}
.qr-act-bubble.act-finished{background:#f1f5f9!important;border-color:#94a3b8!important;color:#475569!important}
.qr-manage-activity-card{border-radius:18px;padding:12px;margin-bottom:8px;border:2px solid #e5e7eb;box-shadow:0 7px 18px rgba(15,23,42,.07)}
.qr-manage-activity-card.qr-manage-green{background:#dcfce7;border-color:#22c55e}.qr-manage-activity-card.qr-manage-red{background:#fee2e2;border-color:#ef4444}.qr-manage-activity-card.qr-manage-yellow{background:#fef3c7;border-color:#f59e0b}.qr-manage-activity-card.qr-manage-neutral{background:#f8fafc;border-color:#cbd5e1}
.qr-manage-card-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.qr-pay-pill{border-radius:999px;background:#fff;padding:4px 8px;font-size:.75rem;font-weight:900;border:1px solid rgba(15,23,42,.12);white-space:nowrap}.qr-manage-act-title{font-size:1.15rem;font-weight:950;line-height:1.05;margin-top:8px;text-transform:uppercase}.qr-manage-person{font-size:.86rem;color:#334155;margin-top:4px}.qr-status-panel-mobile .qr-detail-grid div{background:#fff;border:1px solid #e2e8f0}.qr-action-panel-mobile .qr-action-stack .btn{border-radius:16px!important;font-weight:950!important}.btn-ticket-action{background:#22c55e!important;border-color:#16a34a!important;color:#fff!important}.btn-ticket-action:disabled{background:#ef4444!important;border-color:#dc2626!important;color:#fff!important;opacity:1}.btn-assist-action{background:#198754!important;border-color:#198754!important;color:#fff!important}.btn-assist-action:disabled{background:#ef4444!important;border-color:#dc2626!important;color:#fff!important;opacity:1}
@media(max-width:768px){.qr-act-bubble{padding:10px 11px!important;border-radius:16px!important}.qr-act-bubble .qr-act-main strong{font-size:.92rem!important}.qr-act-bubble .qr-act-main span{font-size:.72rem!important}.qr-act-bubble .qr-act-state span{font-size:.68rem!important}.qr-manage-activity-card{padding:10px;border-radius:16px}.qr-manage-act-title{font-size:1rem}.qr-manage-person{font-size:.78rem}.qr-pay-pill{font-size:.68rem;padding:3px 7px}}

/* V29 - alergias/intolerancias y administradores */
.student-line-allergy{grid-template-columns:1.2fr 1.2fr .7fr .7fr auto 1.2fr 1.2fr}
.allergy-check{font-size:.82rem;color:#9a3412;font-weight:700}.allergy-fields .form-label{color:#9a3412}.allergy-create-box{background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:.7rem 1rem;color:#9a3412;font-weight:800}.allergy-badge{background:#fff7ed;border:1px solid #fb923c;color:#9a3412;border-radius:999px;padding:.25rem .55rem;font-weight:800;font-size:.78rem}
@media(max-width:992px){.student-line-allergy{grid-template-columns:1fr}}

/* V30 - burbujas clicables y accesos internos */
.bubble-click{cursor:pointer;text-decoration:none!important;color:inherit!important;transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease}
.bubble-click:hover,.bubble-click:focus{transform:translateY(-1px);box-shadow:0 12px 26px rgba(21,95,159,.12)!important;border-color:#9dccf5!important;color:inherit!important}
.bubble-click .btn,.bubble-click button{pointer-events:auto}
@media(max-width:768px){.bubble-click:active{transform:scale(.995)}}
/* V30 - avisos actividad */
.bubble-mini-notice{background:#f8fafc;border:1px solid #dbeafe;border-radius:16px;padding:12px}

/* V48 - Zona socio móvil compacta solo Stripe */
.mobile-activity-page{max-width:960px;margin:0 auto}.mobile-activity-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.mobile-activity-head h1{font-size:1.55rem;font-weight:950;color:#143b63;margin:0}.mobile-activity-head p{color:#64748b;margin:2px 0 0;font-size:.95rem}.mobile-filter-card{background:#fff;border:1px solid #dbeafe;border-radius:18px;padding:10px;margin-bottom:10px;box-shadow:0 6px 16px rgba(15,23,42,.04)}.mobile-activity-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.mobile-activity-card{background:#fff;border:1px solid #dbeafe;border-left:0;border-radius:20px;padding:12px;box-shadow:0 8px 18px rgba(15,23,42,.06)}.mobile-activity-card-main{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.mobile-activity-card-main strong{display:block;font-size:1.02rem;font-weight:950;line-height:1.05;text-transform:uppercase;color:#12395e}.mobile-activity-card-main span{display:block;font-size:.80rem;color:#64748b;margin-top:3px}.mobile-price-pill{background:#dcfce7;border:1px solid #86efac;color:#166534;border-radius:999px;padding:4px 9px;font-weight:950;font-size:.82rem;white-space:nowrap}.mobile-card-pills{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.mobile-card-pills .pill{font-size:.72rem;padding:2px 7px}.mobile-activity-form{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center}.mobile-activity-form .form-select{border-radius:999px}.mobile-activity-form .btn{border-radius:999px;padding:.42rem .72rem;white-space:nowrap}.mobile-card-disabled{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:12px;padding:7px 9px;font-size:.84rem;font-weight:800}.stripe-pay-card{background:linear-gradient(135deg,#e8fff1,#ffffff);border:2px solid #22c55e;border-radius:22px;padding:14px;box-shadow:0 12px 26px rgba(34,197,94,.14)}.stripe-pay-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.stripe-pay-top span{background:#fff;border:1px solid #bbf7d0;color:#166534;border-radius:999px;padding:4px 9px;font-size:.78rem;font-weight:950}.stripe-pay-top strong{font-size:1.35rem;color:#166534}.stripe-pay-card h2{font-size:1.12rem;font-weight:950;margin:0;color:#12395e;text-transform:uppercase}.stripe-pay-card p{margin:3px 0 8px;color:#334155;font-weight:700}.stripe-pay-expire{background:#fff;border:1px solid #dbeafe;border-radius:12px;padding:6px 8px;margin-bottom:10px;font-size:.84rem;color:#475569}.mobile-history-card{background:#fff;border:1px solid #e2edf8;border-radius:20px;padding:12px;box-shadow:0 8px 18px rgba(15,23,42,.05)}.mobile-history-card h2{font-size:1.05rem;font-weight:950;margin:0 0 8px;color:#12395e}.mobile-history-line{border:1px solid #e5e7eb;border-radius:15px;padding:9px;display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:7px}.mobile-history-line.ok{background:#f0fdf4;border-color:#bbf7d0}.mobile-history-line.pending{background:#fffbeb;border-color:#fde68a}.mobile-history-line.old{background:#f8fafc;border-color:#e2e8f0;color:#64748b}.mobile-history-line strong{display:block;font-size:.9rem;line-height:1.1}.mobile-history-line span{display:block;font-size:.75rem;color:#64748b;margin-top:2px}
@media(max-width:768px){.mobile-activity-page{font-size:.88rem}.mobile-activity-head{position:sticky;top:0;z-index:20;background:#eef4fb;padding:6px 0;margin-bottom:7px}.mobile-activity-head h1{font-size:1.08rem}.mobile-activity-head p{display:none}.mobile-filter-card{padding:7px;border-radius:14px;margin-bottom:7px}.mobile-activity-list{grid-template-columns:1fr;gap:7px}.mobile-activity-card{padding:9px;border-radius:16px}.mobile-activity-card-main strong{font-size:.9rem}.mobile-activity-card-main span{font-size:.70rem}.mobile-price-pill{font-size:.72rem;padding:3px 7px}.mobile-card-pills{margin:6px 0}.mobile-card-pills .pill{font-size:.66rem}.mobile-activity-form{grid-template-columns:1fr;gap:6px}.mobile-activity-form .btn{width:100%;font-size:.85rem}.stripe-pay-card{padding:10px;border-radius:17px}.stripe-pay-top strong{font-size:1.05rem}.stripe-pay-card h2{font-size:.96rem}.stripe-pay-card p{font-size:.82rem;margin-bottom:6px}.stripe-pay-expire{font-size:.75rem;padding:5px 7px}.mobile-history-card{padding:9px;border-radius:16px}.mobile-history-card h2{font-size:.94rem}.mobile-history-line{padding:7px;border-radius:12px}.mobile-history-line strong{font-size:.78rem}.mobile-history-line span{font-size:.68rem}.mobile-history-line .btn{font-size:.72rem;padding:.25rem .45rem}.mobile-history-line .badge{font-size:.68rem}.btn-volver-page{display:none}}


/* V49 - Panel socio móvil por burbujas compactas */
.familia-mobile-home{max-width:620px;margin:0 auto;padding-bottom:10px}.familia-home-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.familia-home-top h1{font-size:1.22rem;line-height:1.05;font-weight:950;color:#12395e;margin:0}.familia-home-logo{width:54px;height:54px;object-fit:contain;border-radius:14px;background:#fff;padding:4px;box-shadow:0 4px 12px rgba(15,23,42,.08)}.familia-menu-card{display:flex;align-items:center;gap:10px;width:100%;border-radius:18px;padding:11px 12px;margin-bottom:8px;text-decoration:none!important;color:#0f172a!important;border:2px solid #dbeafe;box-shadow:0 8px 18px rgba(15,23,42,.055);position:relative;overflow:hidden}.familia-menu-card:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(15,23,42,.08)}.familia-menu-icon{min-width:42px;width:42px;height:42px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.85);font-weight:950;color:#12395e}.familia-menu-main{min-width:0;flex:1}.familia-menu-main strong{display:block;font-size:1rem;font-weight:950;line-height:1.08;color:#12395e}.familia-menu-main span{display:block;font-size:.78rem;color:#475569;line-height:1.15;margin-top:2px}.familia-menu-arrow{font-size:2rem;font-weight:950;line-height:1;color:#12395e;opacity:.45}.familia-menu-ok{background:#dcfce7;border-color:#22c55e}.familia-menu-warn{background:#fef3c7;border-color:#f59e0b}.familia-menu-bad{background:#fee2e2;border-color:#ef4444}.familia-menu-blue{background:#e0f2fe;border-color:#38bdf8}.familia-menu-purple{background:#f3e8ff;border-color:#a855f7}.familia-menu-qr{background:#eef2ff;border-color:#818cf8}.familia-mini-section{background:#fff;border:1px solid #dbeafe;border-radius:18px;padding:10px;margin-top:10px}.mini-title{font-weight:950;color:#12395e;margin-bottom:6px}.familia-child-chip{display:flex;justify-content:space-between;gap:8px;align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:13px;padding:7px 9px;margin-bottom:6px}.familia-child-chip strong{font-size:.84rem}.familia-child-chip span{font-size:.72rem;color:#64748b}.familia-child-chip.has-allergy{background:#fff7ed;border-color:#fb923c;color:#9a3412}.familia-screen-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.familia-screen-head h1{font-size:1.16rem;font-weight:950;margin:0;color:#12395e}.familia-screen-head span{display:block;font-size:.76rem;color:#64748b}.familia-price-big{font-size:1rem;font-weight:950;color:#12395e;white-space:nowrap}.familia-empty-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:14px;text-align:center;color:#64748b;font-weight:700}.familia-history-action{text-align:right;min-width:76px}.familia-bottom-shortcut{margin-top:10px}.no-arrow{cursor:default}
@media(max-width:768px){.familia-mobile-home{padding:0 2px}.familia-home-top{margin-bottom:7px}.familia-home-top h1{font-size:1.05rem}.familia-home-logo{width:46px;height:46px;border-radius:12px}.familia-menu-card{border-radius:15px;padding:9px 10px;margin-bottom:7px;gap:8px}.familia-menu-icon{min-width:36px;width:36px;height:36px;border-radius:12px;font-size:.86rem}.familia-menu-main strong{font-size:.92rem}.familia-menu-main span{font-size:.70rem}.familia-menu-arrow{font-size:1.65rem}.familia-mini-section{padding:8px;border-radius:15px}.familia-child-chip{padding:6px 8px}.familia-child-chip strong{font-size:.76rem}.familia-child-chip span{font-size:.66rem}.familia-screen-head{position:sticky;top:0;z-index:20;background:#eef4fb;padding:5px 0;margin-bottom:7px}.familia-screen-head h1{font-size:1.02rem}.familia-price-big{font-size:.88rem}.familia-history-action .btn{font-size:.70rem;padding:.22rem .45rem}.familia-history-action .badge{font-size:.66rem}}


/* V50 - FIX formato móvil socio: sin descuadres ni scroll lateral */
html,body{max-width:100%;overflow-x:hidden}*,*::before,*::after{box-sizing:border-box}.container-fluid{max-width:100%}
@media(max-width:768px){
  body{background:#eef4fb;font-size:14px}
  main.container-fluid.py-4{padding:6px!important;overflow-x:hidden}
  .navbar .container-fluid{padding:4px 6px;gap:4px;flex-wrap:nowrap}
  .navbar-brand{min-width:0;max-width:92px;gap:4px!important;overflow:hidden}
  .navbar-brand .logo{height:30px!important;max-width:44px!important;flex:0 0 auto}
  .navbar-brand span{display:none!important}
  .navbar .ms-auto{gap:3px!important;flex:1 1 auto;justify-content:flex-end;min-width:0;overflow:hidden}
  .navbar .btn{font-size:.70rem!important;padding:.24rem .38rem!important;border-radius:999px;white-space:nowrap}

  .familia-mobile-home{max-width:100%;padding:0;margin:0;min-height:calc(100vh - 50px);display:flex;flex-direction:column;gap:5px}
  .familia-home-top{background:#fff;border:1px solid #dbeafe;border-radius:14px;padding:7px 8px;margin:0 0 3px;box-shadow:0 4px 10px rgba(15,23,42,.045)}
  .familia-home-top .small-muted{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em}.familia-home-top h1{font-size:.93rem!important;line-height:1.05;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.familia-home-logo{width:38px!important;height:38px!important;border-radius:10px}
  .familia-menu-card{min-height:54px;border-radius:15px!important;padding:8px 9px!important;margin:0!important;gap:8px!important;box-shadow:0 5px 13px rgba(15,23,42,.055)}
  .familia-menu-icon{min-width:34px!important;width:34px!important;height:34px!important;border-radius:11px!important;font-size:.78rem!important}.familia-menu-main{min-width:0}.familia-menu-main strong{font-size:.86rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.familia-menu-main span{font-size:.64rem!important;line-height:1.08!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.familia-menu-arrow{font-size:1.35rem!important;min-width:12px}
  .familia-mini-section{display:none!important}

  .familia-screen-head{background:#fff!important;border:1px solid #dbeafe;border-radius:14px;padding:7px 8px!important;margin:0 0 6px!important;position:relative!important;top:auto!important}.familia-screen-head h1{font-size:.98rem!important}.familia-screen-head span{font-size:.65rem!important}.familia-screen-head .btn{font-size:.72rem!important;padding:.25rem .45rem!important;border-radius:999px}

  .mobile-activity-page{max-width:100%;padding:0;margin:0;overflow-x:hidden}.mobile-activity-head{position:relative!important;top:auto!important;background:#fff!important;border:1px solid #dbeafe;border-radius:14px;padding:7px 8px!important;margin:0 0 6px!important;align-items:center!important}.mobile-activity-head h1{font-size:.98rem!important}.mobile-activity-head .btn{font-size:.72rem!important;padding:.25rem .45rem!important;border-radius:999px}.mobile-filter-card{display:none!important}.mobile-activity-list{display:flex!important;flex-direction:column!important;gap:6px!important}.mobile-activity-card{width:100%;border-radius:15px!important;padding:8px!important;margin:0!important;box-shadow:0 5px 13px rgba(15,23,42,.05)}.mobile-activity-card-main{align-items:center}.mobile-activity-card-main strong{font-size:.82rem!important;line-height:1.05!important}.mobile-activity-card-main span{font-size:.63rem!important}.mobile-price-pill{font-size:.68rem!important;padding:3px 7px!important}.mobile-card-pills{margin:5px 0!important;gap:4px!important}.mobile-card-pills .pill{font-size:.60rem!important;padding:2px 6px!important}.mobile-activity-form{display:grid!important;grid-template-columns:1fr!important;gap:5px!important}.mobile-activity-form .form-select{font-size:.78rem!important;padding:.35rem 1.8rem .35rem .55rem!important}.mobile-activity-form .btn{font-size:.78rem!important;padding:.36rem!important;border-radius:12px!important}.stripe-pay-card{padding:9px!important;border-radius:16px!important;margin-bottom:6px!important}.stripe-pay-card h2{font-size:.86rem!important}.stripe-pay-card p,.stripe-pay-expire{font-size:.72rem!important}.stripe-pay-card .btn{font-size:.86rem!important;padding:.45rem!important}.familia-bottom-shortcut{display:none!important}
  .mobile-history-card{border-radius:15px!important;padding:8px!important}.mobile-history-line{border-radius:12px!important;padding:7px!important}.mobile-history-line strong{font-size:.76rem!important}.mobile-history-line span{font-size:.62rem!important}.mobile-history-line .btn,.mobile-history-line .badge{font-size:.62rem!important}
}

/* V52 - Actividades admin compactas y QR sin acciones manuales de pago */
.activity-create-compact{padding:16px 18px!important;}
.activity-compact-form .form-label{font-size:.78rem;font-weight:800;color:#46627d;margin-bottom:3px;}
.activity-compact-form .form-control,.activity-compact-form .form-select{min-height:40px;border-radius:13px;}
.activity-options-line{display:flex;gap:14px;flex-wrap:wrap;align-items:center;background:#f3f8ff;border:1px solid #d9eaff;border-radius:14px;padding:8px 10px;font-size:.9rem;}
.activity-list-compact{display:flex;flex-direction:column;gap:9px;max-height:70vh;overflow:auto;padding-right:3px;}
.activity-bubble-compact{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:12px 14px!important;border-radius:18px!important;}
.activity-compact-title strong{display:block;font-size:1rem;color:#123b5d;line-height:1.15;}
.activity-compact-title span{display:block;font-size:.82rem;color:#6b7d90;margin-top:2px;}
.inscription-bubble-list{display:flex;flex-direction:column;gap:9px;max-height:70vh;overflow:auto;padding-right:3px;}
.inscription-mini-bubble{background:#fff;border:1px solid #dbeafe;border-radius:18px;padding:12px;box-shadow:0 6px 18px rgba(15,76,129,.07);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;}
.inscription-mini-bubble strong{display:block;color:#123b5d;}
.inscription-mini-bubble span,.inscription-mini-bubble small{display:block;color:#5f748a;font-size:.82rem;line-height:1.2;}
.qr-action-panel-mobile .btn-success[name="accion"][value^="pago"],
.qr-action-panel-mobile button[value="pago_pagada"],
.qr-action-panel-mobile button[value="pago_revision"]{display:none!important;}
@media(max-width:768px){
  .activity-create-compact{padding:12px!important;}
  .activity-bubble-compact{grid-template-columns:1fr;gap:8px;padding:11px!important;}
  .activity-list-compact,.inscription-bubble-list{max-height:none;overflow:visible;}
  .activity-options-line{font-size:.82rem;gap:8px;}
  .inscription-mini-bubble{grid-template-columns:1fr;}
}

/* V53: actividades por burbujas, detalle interior y Stripe online */
.activity-create-collapsed summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}
.activity-create-collapsed summary::-webkit-details-marker{display:none}
.activity-summary-line strong{font-size:1.05rem}.activity-summary-line small{display:block;color:#6b7280;margin-top:2px}
.stat-bubble{border-radius:22px;padding:18px 16px;box-shadow:0 8px 24px rgba(15,23,42,.08);min-height:96px;display:flex;flex-direction:column;justify-content:center}
.stat-bubble strong{font-size:2rem;line-height:1;font-weight:800}.stat-bubble span{font-size:.9rem;color:#334155;margin-top:6px}.stat-ok{background:#dcfce7}.stat-warn{background:#fef3c7}.stat-info{background:#dbeafe}.stat-danger{background:#fee2e2}
@media(max-width:768px){.stat-bubble{min-height:76px;padding:14px}.stat-bubble strong{font-size:1.55rem}.activity-create-collapsed{padding:14px!important}.activity-summary-line{font-size:.95rem}}

/* V54 grupos/turnos */
.grupos-iniciales-box{display:none;}
.group-turn-list{display:flex;flex-direction:column;gap:.65rem;}
.group-turn-bubble{background:#f6fbff;border:1px solid #d8eafe;border-radius:18px;padding:.75rem;box-shadow:0 5px 18px rgba(30,80,130,.07);}
.group-new-form{background:#f2fff6;border:1px solid #c9f0d4;border-radius:18px;padding:.8rem;}
.mobile-request-form{margin-top:.6rem;display:flex;flex-direction:column;gap:.25rem;}
.mobile-card-pills{display:flex;gap:.35rem;flex-wrap:wrap;margin:.45rem 0;}
@media(max-width:768px){
  .activity-create-compact .row>[class*="col-"]{width:100%;}
  .group-turn-bubble{padding:.65rem;border-radius:16px;}
  .group-turn-bubble .form-label{margin-bottom:.15rem;}
}

/* V57 - Actividad individual compacta */
.compact-activity-edit{padding:14px 16px!important;border-radius:20px!important}
.compact-activity-edit .form-label{font-size:.78rem;font-weight:800;margin-bottom:3px;color:#334155}
.compact-activity-edit .form-control,.compact-activity-edit .form-select{min-height:38px;padding:.42rem .65rem;border-radius:12px}
.inscription-bubble-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:10px}
.inscription-mini-bubble{background:#fff;border:1px solid #dfeaf7;border-left:6px solid #155f9f;border-radius:18px;padding:10px 12px!important;box-shadow:0 6px 16px rgba(21,95,159,.055);display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start}
.inscription-mini-bubble strong{font-size:.92rem;line-height:1.1}.inscription-mini-bubble span,.inscription-mini-bubble small{display:block;line-height:1.15}.inscription-mini-bubble .small-muted{font-size:.72rem;color:#64748b}.inscription-mini-bubble form{grid-column:1/-1;margin-top:4px!important}.inscription-mini-bubble .btn-sm{padding:.22rem .45rem;font-size:.75rem;border-radius:10px}
@media(max-width:768px){.compact-activity-edit{padding:10px!important}.compact-activity-edit .action-top{gap:6px}.compact-activity-edit .form-control,.compact-activity-edit .form-select{min-height:35px;font-size:.88rem}.inscription-bubble-list{grid-template-columns:1fr;gap:7px}.inscription-mini-bubble{border-radius:14px;padding:8px!important;grid-template-columns:1fr}.inscription-mini-bubble .text-end{text-align:left!important}}

/* V68 - Cabecera intuitiva con contexto, vuelta a seccion y usuario */
.ampa-topbar{position:sticky;top:0;z-index:1030;border-bottom:1px solid #dbeafe;background:rgba(255,255,255,.96)!important;backdrop-filter:blur(10px)}
.ampa-topbar-wrap{gap:14px;min-height:66px}.ampa-brand{min-width:230px}.ampa-brand .logo{height:42px;width:auto;border-radius:10px}.ampa-brand span{font-weight:800;color:#123b5d;letter-spacing:-.02em}
.ampa-current-place{flex:1;min-width:220px;align-items:flex-start;justify-content:center;flex-direction:column;line-height:1.05;border-left:1px solid #e2edf8;padding-left:18px}.ampa-current-place .ampa-place-kicker{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:800}.ampa-current-place strong{font-size:1.02rem;color:#123b5d}.ampa-current-place small{color:#64748b;margin-top:3px;font-size:.78rem}
.ampa-nav-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.ampa-nav-pill,.ampa-user-pill{border:1px solid #d7e7f8;background:#fff;color:#18466c;text-decoration:none;border-radius:999px;padding:9px 12px;font-weight:800;font-size:.86rem;display:inline-flex;align-items:center;gap:7px;min-height:40px;box-shadow:0 5px 16px rgba(15,76,129,.07);transition:.15s}.ampa-nav-pill:hover,.ampa-user-pill:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(15,76,129,.13);border-color:#a8cff5;color:#0d5fa6}.ampa-nav-back{background:linear-gradient(135deg,#f8fbff,#eef6ff)}.ampa-nav-home{background:linear-gradient(135deg,#eefaf2,#ffffff);border-color:#bfe7cc;color:#17643a}.ampa-nav-ico{width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#e8f3ff;color:#0d6efd;font-size:.9rem}.ampa-nav-home .ampa-nav-ico{background:#dff7e8;color:#198754}.ampa-user-pill{border:0;background:#123b5d;color:#fff;padding:6px 10px 6px 6px}.ampa-user-pill:hover{color:#fff;background:#0d5fa6}.ampa-user-avatar{width:30px;height:30px;border-radius:50%;background:#e8f3ff;color:#123b5d;display:inline-flex;align-items:center;justify-content:center;font-weight:900}.ampa-user-text{max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ampa-mobile-context{background:#f4f8fd;border-bottom:1px solid #dbeafe;padding:7px 10px}.ampa-mobile-context div{background:#fff;border:1px solid #dbeafe;border-radius:14px;padding:8px 10px;box-shadow:0 4px 12px rgba(15,76,129,.05)}.ampa-mobile-context span{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800;color:#64748b}.ampa-mobile-context strong{display:block;color:#123b5d;font-size:.95rem;line-height:1.05}.ampa-mobile-context small{display:block;color:#64748b;font-size:.72rem;margin-top:2px}
@media(max-width:991px){.ampa-topbar-wrap{min-height:auto;padding:7px 8px!important;align-items:center}.ampa-brand{min-width:0;max-width:58px}.ampa-brand .logo{height:36px}.ampa-brand span{display:none}.ampa-nav-actions{flex:1;gap:5px}.ampa-nav-pill,.ampa-user-pill{padding:7px 9px;min-height:36px;font-size:.78rem}.ampa-nav-pill span:last-child{max-width:118px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ampa-user-pill{padding:4px}.ampa-user-avatar{width:28px;height:28px}.navbar .btn{font-size:.78rem}}
@media(max-width:520px){.ampa-nav-home span:last-child{display:none}.ampa-nav-back span:last-child{max-width:132px}.ampa-nav-pill{padding:7px 8px}.ampa-nav-ico{width:21px;height:21px}.ampa-mobile-context{padding:6px}.ampa-mobile-context div{padding:7px 8px}}

/* V69 - Colores suaves por actividad: mismo color en ficha, reserva y emails */
.mobile-activity-card[class*="activity-color-"]{
  position:relative;
  overflow:hidden;
  border-left-width:8px!important;
  border-left-style:solid!important;
}
.mobile-activity-card[class*="activity-color-"]::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:5px;
  opacity:.75;
}
.activity-color-0{background:linear-gradient(135deg,#eff6ff,#ffffff)!important;border-color:#93c5fd!important;border-left-color:#2563eb!important}.activity-color-0::before{background:#2563eb}.activity-color-0 .mobile-price-pill{background:#dbeafe!important;border-color:#93c5fd!important;color:#1d4ed8!important}
.activity-color-1{background:linear-gradient(135deg,#f0fdf4,#ffffff)!important;border-color:#86efac!important;border-left-color:#16a34a!important}.activity-color-1::before{background:#16a34a}.activity-color-1 .mobile-price-pill{background:#dcfce7!important;border-color:#86efac!important;color:#15803d!important}
.activity-color-2{background:linear-gradient(135deg,#fff7ed,#ffffff)!important;border-color:#fdba74!important;border-left-color:#ea580c!important}.activity-color-2::before{background:#ea580c}.activity-color-2 .mobile-price-pill{background:#ffedd5!important;border-color:#fdba74!important;color:#c2410c!important}
.activity-color-3{background:linear-gradient(135deg,#f5f3ff,#ffffff)!important;border-color:#c4b5fd!important;border-left-color:#7c3aed!important}.activity-color-3::before{background:#7c3aed}.activity-color-3 .mobile-price-pill{background:#ede9fe!important;border-color:#c4b5fd!important;color:#6d28d9!important}
.activity-color-4{background:linear-gradient(135deg,#ecfeff,#ffffff)!important;border-color:#67e8f9!important;border-left-color:#0891b2!important}.activity-color-4::before{background:#0891b2}.activity-color-4 .mobile-price-pill{background:#cffafe!important;border-color:#67e8f9!important;color:#0e7490!important}
.activity-color-5{background:linear-gradient(135deg,#fdf2f8,#ffffff)!important;border-color:#f9a8d4!important;border-left-color:#db2777!important}.activity-color-5::before{background:#db2777}.activity-color-5 .mobile-price-pill{background:#fce7f3!important;border-color:#f9a8d4!important;color:#be185d!important}
.activity-color-6{background:linear-gradient(135deg,#fefce8,#ffffff)!important;border-color:#fde047!important;border-left-color:#ca8a04!important}.activity-color-6::before{background:#ca8a04}.activity-color-6 .mobile-price-pill{background:#fef9c3!important;border-color:#fde047!important;color:#a16207!important}
.activity-color-7{background:linear-gradient(135deg,#f0f9ff,#ffffff)!important;border-color:#7dd3fc!important;border-left-color:#0284c7!important}.activity-color-7::before{background:#0284c7}.activity-color-7 .mobile-price-pill{background:#e0f2fe!important;border-color:#7dd3fc!important;color:#0369a1!important}
.activity-color-8{background:linear-gradient(135deg,#f7fee7,#ffffff)!important;border-color:#bef264!important;border-left-color:#65a30d!important}.activity-color-8::before{background:#65a30d}.activity-color-8 .mobile-price-pill{background:#ecfccb!important;border-color:#bef264!important;color:#4d7c0f!important}
.activity-color-9{background:linear-gradient(135deg,#f8fafc,#ffffff)!important;border-color:#cbd5e1!important;border-left-color:#475569!important}.activity-color-9::before{background:#475569}.activity-color-9 .mobile-price-pill{background:#f1f5f9!important;border-color:#cbd5e1!important;color:#334155!important}
.stripe-pay-card[class*="activity-color-"]{border-width:2px!important;border-left-width:8px!important;border-left-style:solid!important;box-shadow:0 12px 26px rgba(15,23,42,.10)!important}
@media(max-width:768px){.mobile-activity-card[class*="activity-color-"]{border-left-width:6px!important}}

/* V71 - Refuerzo visual colores actividades cliente y tarjeta de pago.
   Solo CSS: no cambia estructura ni funcionamiento. */
.mobile-activity-card.activity-color-0,.stripe-pay-card.activity-color-0{background:#eaf3ff!important;border-color:#8bbdf7!important;border-left-color:#2563eb!important;box-shadow:0 10px 22px rgba(37,99,235,.12)!important}
.mobile-activity-card.activity-color-1,.stripe-pay-card.activity-color-1{background:#eafaf0!important;border-color:#7fd99d!important;border-left-color:#16a34a!important;box-shadow:0 10px 22px rgba(22,163,74,.12)!important}
.mobile-activity-card.activity-color-2,.stripe-pay-card.activity-color-2{background:#fff1df!important;border-color:#f8b86e!important;border-left-color:#ea580c!important;box-shadow:0 10px 22px rgba(234,88,12,.12)!important}
.mobile-activity-card.activity-color-3,.stripe-pay-card.activity-color-3{background:#f0ecff!important;border-color:#b8a5fa!important;border-left-color:#7c3aed!important;box-shadow:0 10px 22px rgba(124,58,237,.12)!important}
.mobile-activity-card.activity-color-4,.stripe-pay-card.activity-color-4{background:#e4fbff!important;border-color:#55d9ea!important;border-left-color:#0891b2!important;box-shadow:0 10px 22px rgba(8,145,178,.12)!important}
.mobile-activity-card.activity-color-5,.stripe-pay-card.activity-color-5{background:#fde9f3!important;border-color:#f49ac8!important;border-left-color:#db2777!important;box-shadow:0 10px 22px rgba(219,39,119,.12)!important}
.mobile-activity-card.activity-color-6,.stripe-pay-card.activity-color-6{background:#fff8cc!important;border-color:#f5dc45!important;border-left-color:#ca8a04!important;box-shadow:0 10px 22px rgba(202,138,4,.12)!important}
.mobile-activity-card.activity-color-7,.stripe-pay-card.activity-color-7{background:#e8f7ff!important;border-color:#72cbed!important;border-left-color:#0284c7!important;box-shadow:0 10px 22px rgba(2,132,199,.12)!important}
.mobile-activity-card.activity-color-8,.stripe-pay-card.activity-color-8{background:#effbd6!important;border-color:#b5ea58!important;border-left-color:#65a30d!important;box-shadow:0 10px 22px rgba(101,163,13,.12)!important}
.mobile-activity-card.activity-color-9,.stripe-pay-card.activity-color-9{background:#f1f5f9!important;border-color:#b6c4d5!important;border-left-color:#475569!important;box-shadow:0 10px 22px rgba(71,85,105,.12)!important}
.mobile-activity-card[class*="activity-color-"]{border-left-width:10px!important;border-top-width:2px!important;border-right-width:2px!important;border-bottom-width:2px!important}
.mobile-activity-card[class*="activity-color-"] .mobile-activity-card-main strong{background:rgba(255,255,255,.55);border-radius:10px;padding:2px 6px;margin-left:-6px}
.stripe-pay-card[class*="activity-color-"]{border-left-width:10px!important}


/* V72 - Colores visibles también en PC/admin.
   Mantiene el mismo orden de colores que móvil: activity_id % 10.
   Solo visual: no cambia lógica, reservas, pagos ni estructura de datos. */
.activity-bubble[class*="activity-color-"],
.inscription-mini-bubble[class*="activity-color-"]{
  position:relative!important;
  overflow:hidden!important;
  border-left-width:10px!important;
  border-left-style:solid!important;
  border-top-width:2px!important;
  border-right-width:2px!important;
  border-bottom-width:2px!important;
  box-shadow:0 10px 22px rgba(15,23,42,.07)!important;
}
.activity-bubble[class*="activity-color-"]::before,
.inscription-mini-bubble[class*="activity-color-"]::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:5px;
  opacity:.55;
  pointer-events:none;
}
.activity-bubble.activity-color-0,.inscription-mini-bubble.activity-color-0,.mobile-activity-card.activity-color-0,.stripe-pay-card.activity-color-0{background:#eaf3ff!important;border-color:#8bbdf7!important;border-left-color:#2563eb!important}.activity-bubble.activity-color-0::before,.inscription-mini-bubble.activity-color-0::before,.mobile-activity-card.activity-color-0::before{background:#2563eb!important}
.activity-bubble.activity-color-1,.inscription-mini-bubble.activity-color-1,.mobile-activity-card.activity-color-1,.stripe-pay-card.activity-color-1{background:#eafaf0!important;border-color:#7fd99d!important;border-left-color:#16a34a!important}.activity-bubble.activity-color-1::before,.inscription-mini-bubble.activity-color-1::before,.mobile-activity-card.activity-color-1::before{background:#16a34a!important}
.activity-bubble.activity-color-2,.inscription-mini-bubble.activity-color-2,.mobile-activity-card.activity-color-2,.stripe-pay-card.activity-color-2{background:#fff1df!important;border-color:#f8b86e!important;border-left-color:#ea580c!important}.activity-bubble.activity-color-2::before,.inscription-mini-bubble.activity-color-2::before,.mobile-activity-card.activity-color-2::before{background:#ea580c!important}
.activity-bubble.activity-color-3,.inscription-mini-bubble.activity-color-3,.mobile-activity-card.activity-color-3,.stripe-pay-card.activity-color-3{background:#f0ecff!important;border-color:#b8a5fa!important;border-left-color:#7c3aed!important}.activity-bubble.activity-color-3::before,.inscription-mini-bubble.activity-color-3::before,.mobile-activity-card.activity-color-3::before{background:#7c3aed!important}
.activity-bubble.activity-color-4,.inscription-mini-bubble.activity-color-4,.mobile-activity-card.activity-color-4,.stripe-pay-card.activity-color-4{background:#e4fbff!important;border-color:#55d9ea!important;border-left-color:#0891b2!important}.activity-bubble.activity-color-4::before,.inscription-mini-bubble.activity-color-4::before,.mobile-activity-card.activity-color-4::before{background:#0891b2!important}
.activity-bubble.activity-color-5,.inscription-mini-bubble.activity-color-5,.mobile-activity-card.activity-color-5,.stripe-pay-card.activity-color-5{background:#fde9f3!important;border-color:#f49ac8!important;border-left-color:#db2777!important}.activity-bubble.activity-color-5::before,.inscription-mini-bubble.activity-color-5::before,.mobile-activity-card.activity-color-5::before{background:#db2777!important}
.activity-bubble.activity-color-6,.inscription-mini-bubble.activity-color-6,.mobile-activity-card.activity-color-6,.stripe-pay-card.activity-color-6{background:#fff8cc!important;border-color:#f5dc45!important;border-left-color:#ca8a04!important}.activity-bubble.activity-color-6::before,.inscription-mini-bubble.activity-color-6::before,.mobile-activity-card.activity-color-6::before{background:#ca8a04!important}
.activity-bubble.activity-color-7,.inscription-mini-bubble.activity-color-7,.mobile-activity-card.activity-color-7,.stripe-pay-card.activity-color-7{background:#e8f7ff!important;border-color:#72cbed!important;border-left-color:#0284c7!important}.activity-bubble.activity-color-7::before,.inscription-mini-bubble.activity-color-7::before,.mobile-activity-card.activity-color-7::before{background:#0284c7!important}
.activity-bubble.activity-color-8,.inscription-mini-bubble.activity-color-8,.mobile-activity-card.activity-color-8,.stripe-pay-card.activity-color-8{background:#effbd6!important;border-color:#b5ea58!important;border-left-color:#65a30d!important}.activity-bubble.activity-color-8::before,.inscription-mini-bubble.activity-color-8::before,.mobile-activity-card.activity-color-8::before{background:#65a30d!important}
.activity-bubble.activity-color-9,.inscription-mini-bubble.activity-color-9,.mobile-activity-card.activity-color-9,.stripe-pay-card.activity-color-9{background:#f1f5f9!important;border-color:#b6c4d5!important;border-left-color:#475569!important}.activity-bubble.activity-color-9::before,.inscription-mini-bubble.activity-color-9::before,.mobile-activity-card.activity-color-9::before{background:#475569!important}
.activity-bubble[class*="activity-color-"] .pill,
.inscription-mini-bubble[class*="activity-color-"] .badge,
.inscription-mini-bubble[class*="activity-color-"] .btn{
  background-color:rgba(255,255,255,.72)!important;
  backdrop-filter:blur(3px);
}
.activity-bubble[class*="activity-color-"] .activity-compact-title strong,
.inscription-mini-bubble[class*="activity-color-"] strong{
  display:inline-block;
  background:rgba(255,255,255,.50);
  border-radius:10px;
  padding:2px 6px;
  margin-left:-6px;
}

/* V73 - paleta ampliada: mismos colores en PC, móvil, admin, inscripción y pago */
.activity-bubble[class*="activity-color-"],
.inscription-mini-bubble[class*="activity-color-"],
.mobile-activity-card[class*="activity-color-"],
.stripe-pay-card[class*="activity-color-"]{
  border-left-width:10px!important;
  border-left-style:solid!important;
  box-shadow:0 10px 22px rgba(15,23,42,.08)!important;
}
.activity-color-0{background:#eaf3ff!important;border-color:#8bbdf7!important;border-left-color:#2563eb!important}.activity-color-0::before{background:#2563eb!important}
.activity-color-1{background:#eafaf0!important;border-color:#7fd99d!important;border-left-color:#16a34a!important}.activity-color-1::before{background:#16a34a!important}
.activity-color-2{background:#fff1df!important;border-color:#f8b86e!important;border-left-color:#ea580c!important}.activity-color-2::before{background:#ea580c!important}
.activity-color-3{background:#f0ecff!important;border-color:#b8a5fa!important;border-left-color:#7c3aed!important}.activity-color-3::before{background:#7c3aed!important}
.activity-color-4{background:#e4fbff!important;border-color:#55d9ea!important;border-left-color:#0891b2!important}.activity-color-4::before{background:#0891b2!important}
.activity-color-5{background:#fde9f3!important;border-color:#f49ac8!important;border-left-color:#db2777!important}.activity-color-5::before{background:#db2777!important}
.activity-color-6{background:#fff8cc!important;border-color:#f5dc45!important;border-left-color:#ca8a04!important}.activity-color-6::before{background:#ca8a04!important}
.activity-color-7{background:#e8f7ff!important;border-color:#72cbed!important;border-left-color:#0284c7!important}.activity-color-7::before{background:#0284c7!important}
.activity-color-8{background:#effbd6!important;border-color:#b5ea58!important;border-left-color:#65a30d!important}.activity-color-8::before{background:#65a30d!important}
.activity-color-9{background:#f1f5f9!important;border-color:#b6c4d5!important;border-left-color:#475569!important}.activity-color-9::before{background:#475569!important}
.activity-color-10{background:#fef2f2!important;border-color:#fca5a5!important;border-left-color:#dc2626!important}.activity-color-10::before{background:#dc2626!important}
.activity-color-11{background:#f0fdfa!important;border-color:#5eead4!important;border-left-color:#0d9488!important}.activity-color-11::before{background:#0d9488!important}
.activity-color-12{background:#fefce8!important;border-color:#fde68a!important;border-left-color:#d97706!important}.activity-color-12::before{background:#d97706!important}
.activity-color-13{background:#eef2ff!important;border-color:#a5b4fc!important;border-left-color:#4f46e5!important}.activity-color-13::before{background:#4f46e5!important}
.activity-color-14{background:#faf5ff!important;border-color:#d8b4fe!important;border-left-color:#9333ea!important}.activity-color-14::before{background:#9333ea!important}
.activity-color-15{background:#f0fdf4!important;border-color:#bbf7d0!important;border-left-color:#15803d!important}.activity-color-15::before{background:#15803d!important}
.activity-color-16{background:#fff7ed!important;border-color:#fed7aa!important;border-left-color:#f97316!important}.activity-color-16::before{background:#f97316!important}
.activity-color-17{background:#ecfdf5!important;border-color:#a7f3d0!important;border-left-color:#059669!important}.activity-color-17::before{background:#059669!important}
.activity-color-18{background:#fdf4ff!important;border-color:#f0abfc!important;border-left-color:#c026d3!important}.activity-color-18::before{background:#c026d3!important}
.activity-color-19{background:#f8fafc!important;border-color:#94a3b8!important;border-left-color:#334155!important}.activity-color-19::before{background:#334155!important}
.activity-color-20{background:#fff1f2!important;border-color:#fda4af!important;border-left-color:#e11d48!important}.activity-color-20::before{background:#e11d48!important}
.activity-color-21{background:#f7fee7!important;border-color:#bef264!important;border-left-color:#4d7c0f!important}.activity-color-21::before{background:#4d7c0f!important}
.activity-color-22{background:#eff6ff!important;border-color:#bfdbfe!important;border-left-color:#1d4ed8!important}.activity-color-22::before{background:#1d4ed8!important}
.activity-color-23{background:#fffbeb!important;border-color:#fcd34d!important;border-left-color:#b45309!important}.activity-color-23::before{background:#b45309!important}
.activity-bubble[class*="activity-color-"] .pill,
.inscription-mini-bubble[class*="activity-color-"] .badge,
.inscription-mini-bubble[class*="activity-color-"] .btn,
.mobile-activity-card[class*="activity-color-"] .pill,
.mobile-activity-card[class*="activity-color-"] .mobile-price-pill{
  background:rgba(255,255,255,.68)!important;
  border-color:rgba(15,23,42,.12)!important;
}

/* V74 - creador intuitivo de grupos por turnos */
.activity-create-compact .activity-groups-builder{
  border:1px solid #cfe4ff;
  background:linear-gradient(180deg,#f8fbff 0%,#eef7ff 100%);
  border-radius:18px;
  padding:14px;
}
.activity-groups-builder-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.activity-groups-summary{
  border:1px dashed #9fc5ef;
  background:#fff;
  border-radius:14px;
  padding:9px 12px;
  color:#475569;
  font-size:.92rem;
  margin-bottom:10px;
}
.activity-groups-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(185px,1fr));
  gap:10px;
}
.activity-group-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border:1px solid #dbeafe;
  background:#ffffffcc;
  border-radius:16px;
  padding:10px;
  box-shadow:0 8px 16px rgba(15,23,42,.05);
}
.activity-group-name span{
  display:block;
  font-weight:800;
  color:#0f3f6f;
}
.activity-group-name small{
  color:#64748b;
}
.activity-group-row label{
  margin:0;
  font-size:.78rem;
  font-weight:800;
  color:#475569;
  min-width:92px;
}
.activity-group-row input[type="time"]{
  margin-top:3px;
  border-radius:12px;
}

/* V75 - Creador de actividad ordenado por pasos */
.activity-create-v75{
  padding:0!important;
  overflow:hidden;
  border:1px solid #d8eafe!important;
  background:linear-gradient(135deg,#ffffff 0%,#f6fbff 100%)!important;
}
.activity-create-head-v75{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:15px 18px;
  border-bottom:1px solid #e2eefb;
  background:linear-gradient(135deg,#eef7ff 0%,#ffffff 100%);
}
.activity-create-title-v75{display:flex;align-items:center;gap:12px;min-width:0}
.activity-create-icon-v75{
  width:42px;height:42px;border-radius:16px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#0d6efd;color:#fff;font-size:1.35rem;font-weight:900;
  box-shadow:0 8px 20px rgba(13,110,253,.20);
  flex:0 0 auto;
}
.activity-create-help-v75{
  border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;
  padding:7px 11px;border-radius:999px;font-size:.78rem;font-weight:800;white-space:nowrap;
}
.activity-form-v75{padding:16px 18px 18px!important;}
.activity-form-grid-v75{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);
  gap:14px;
  align-items:start;
}
.activity-form-section-v75{
  border:1px solid #e0edf9;
  background:rgba(255,255,255,.86);
  border-radius:20px;
  padding:14px;
  box-shadow:0 8px 22px rgba(15,76,129,.045);
}
.section-title-v75{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#123b5d}
.section-title-v75 span{
  width:25px;height:25px;border-radius:9px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#123b5d;color:#fff;font-size:.78rem;font-weight:900;
}
.section-title-v75 strong{font-size:.96rem;letter-spacing:-.01em}
.activity-form-v75 .form-label{font-size:.76rem;font-weight:900;color:#415f7c;margin-bottom:4px;text-transform:uppercase;letter-spacing:.025em}
.activity-form-v75 .form-control,.activity-form-v75 .form-select,.activity-form-v75 .input-group-text{
  border-radius:14px;min-height:42px;border-color:#d6e6f7;background:#fff;
}
.activity-form-v75 .form-control:focus,.activity-form-v75 .form-select:focus{box-shadow:0 0 0 .18rem rgba(13,110,253,.12);border-color:#8abff8}
.activity-mini-grid-v75{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.input-group-v75 .form-control{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.input-group-v75 .input-group-text{border-top-left-radius:0!important;border-bottom-left-radius:0!important;font-weight:900;color:#34536f;background:#f8fbff}
.section-groups-v75{grid-column:1/-1;padding:14px;background:linear-gradient(135deg,#f8fbff,#eef7ff)}
.activity-form-v75:not(.is-groups) .group-capacity-field-v75{display:none!important}
.activity-footer-v75{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.activity-footer-v75 .activity-options-line{flex:1;margin:0;background:#f8fbff;border-color:#dbeafe}
.btn-create-activity-v75{min-width:190px;border-radius:16px;padding:11px 18px;box-shadow:0 10px 22px rgba(13,110,253,.18)}
.activity-create-v75 .activity-groups-builder{background:#fff!important;border:1px solid #cfe4ff!important;border-radius:18px!important;padding:13px!important;box-shadow:none!important}
.activity-create-v75 .activity-groups-builder-head{margin-bottom:9px!important}
.activity-create-v75 .activity-groups-summary{background:#f8fbff!important;border-style:solid!important;border-color:#cfe4ff!important;color:#294861!important;font-weight:700}
.activity-create-v75 .activity-groups-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;gap:10px!important}
.activity-create-v75 .activity-group-row{
  display:grid!important;grid-template-columns:minmax(0,1fr) 118px!important;
  gap:10px!important;align-items:center!important;
  border-radius:18px!important;background:linear-gradient(135deg,#ffffff 0%,#f8fbff 100%)!important;
  border:1px solid #d4e7fb!important;padding:10px 11px!important;
}
.activity-create-v75 .activity-group-name span{font-size:.95rem;color:#123b5d!important}.activity-create-v75 .activity-group-name small{font-size:.74rem;color:#64748b!important}
.activity-create-v75 .activity-group-row label{font-size:.70rem;text-transform:uppercase;letter-spacing:.04em;color:#46627d!important;min-width:0!important;width:100%!important}
.activity-create-v75 .activity-group-row input[type="time"]{height:38px;margin-top:4px;border-radius:12px!important;font-weight:800;color:#123b5d}
@media(max-width:1199px){.activity-form-grid-v75{grid-template-columns:1fr}.section-groups-v75{grid-column:auto}.activity-create-help-v75{white-space:normal}}
@media(max-width:768px){
  .activity-create-head-v75{padding:11px 12px;align-items:flex-start}.activity-create-icon-v75{width:36px;height:36px;border-radius:13px}.activity-create-help-v75{display:none}
  .activity-form-v75{padding:12px!important}.activity-form-section-v75{padding:11px;border-radius:16px}.activity-mini-grid-v75{grid-template-columns:1fr}.activity-footer-v75{flex-direction:column;align-items:stretch}.btn-create-activity-v75{width:100%;min-width:0}.activity-footer-v75 .activity-options-line{font-size:.78rem}
  .activity-create-v75 .activity-groups-grid{grid-template-columns:1fr!important}.activity-create-v75 .activity-group-row{grid-template-columns:1fr!important}
}


/* V76 - Pantalla exclusiva para rol QR / escáner */
.qr-only-scanner-page{max-width:1180px;margin:0 auto;padding:4px 10px 24px}.qr-only-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;background:linear-gradient(135deg,#eaf4ff,#f8fbff);border:1px solid #cfe3ff;border-radius:26px;padding:22px 24px;box-shadow:0 14px 35px rgba(15,50,90,.08)}.qr-only-kicker{font-size:.78rem;font-weight:950;letter-spacing:.08em;color:#2563eb;margin-bottom:4px}.qr-only-hero h1{font-size:clamp(1.6rem,2.5vw,2.35rem);font-weight:950;color:#0f2f57;margin:0}.qr-only-hero p{margin:6px 0 0;color:#475569;max-width:760px}.qr-only-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:18px;align-items:stretch}.qr-only-camera-card,.qr-only-side-card{background:#fff;border:1px solid #dbeafe;border-radius:26px;box-shadow:0 16px 40px rgba(15,50,90,.09);padding:22px}.qr-only-camera-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.qr-only-camera-icon{width:58px;height:58px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#38bdf8);color:#fff;font-size:2rem;font-weight:950}.qr-only-camera-head h2{font-size:1.25rem;font-weight:950;margin:0;color:#0f2f57}.qr-only-camera-head span{font-size:.9rem;color:#64748b}.qr-reader-frame{background:linear-gradient(135deg,#f8fbff,#eef6ff);border:2px dashed #93c5fd;border-radius:24px;padding:16px;min-height:390px;display:grid;place-items:center}.qr-reader-frame #qr-reader{width:100%;max-width:620px;margin:0 auto}.qr-scan-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:16px}.qr-scan-actions .btn{border-radius:16px;font-weight:850;min-width:170px}.qr-only-status{margin-top:14px;text-align:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:16px;padding:10px 12px;color:#1e3a8a;font-weight:750}.qr-only-side-card h3{font-weight:950;color:#0f2f57;margin-bottom:16px}.qr-step{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;padding:12px;margin-bottom:10px}.qr-step b{width:38px;height:38px;border-radius:14px;background:#2563eb;color:#fff;display:grid;place-items:center}.qr-step span{font-size:.92rem;color:#334155;font-weight:750}.qr-only-warning{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:18px;padding:12px;font-weight:800;margin:14px 0}.qr-manual-form{border-top:1px solid #e2e8f0;margin-top:16px;padding-top:16px}.qr-manual-form .form-control{border-radius:14px;padding:12px 14px}.qr-manual-form .btn{border-radius:14px;font-weight:850}.qr-only-scanner-page .html5-qrcode-element{border-radius:12px!important}
@media(max-width:991px){.qr-only-layout{grid-template-columns:1fr}.qr-only-hero{align-items:flex-start;flex-direction:column}.qr-reader-frame{min-height:330px}}@media(max-width:576px){.qr-only-scanner-page{padding:0 2px 14px}.qr-only-hero,.qr-only-camera-card,.qr-only-side-card{border-radius:18px;padding:14px}.qr-reader-frame{padding:8px;min-height:280px}.qr-scan-actions .btn{width:100%;min-width:0}.qr-only-camera-icon{width:48px;height:48px;border-radius:16px;font-size:1.55rem}}


/* V77 - Rol QR: escáner móvil ultracompacto, sin entrada manual */
body.qr-scanner-body-v77{background:#eef5ff;overflow-x:hidden}.qr-scanner-body-v77 .ampa-mobile-context{display:none!important}.qr-scanner-body-v77 main.container-fluid{padding:6px!important}.qr-scan-v77{max-width:430px;margin:0 auto;padding:0 4px;color:#0f172a}.qr-scan-v77-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px}.qr-scan-v77-kicker{font-size:.66rem;font-weight:950;letter-spacing:.08em;color:#0d6efd;line-height:1}.qr-scan-v77 h1{font-size:1.05rem;font-weight:950;margin:1px 0 0;line-height:1.05}.qr-scan-v77-help{width:36px;height:36px;border-radius:50%;border:0;background:#0d6efd;color:#fff;font-size:1.2rem;font-weight:950;box-shadow:0 8px 20px rgba(13,110,253,.22)}.qr-scan-v77-camera-card{background:#fff;border:1px solid #cfe2ff;border-radius:20px;padding:8px;box-shadow:0 12px 28px rgba(15,23,42,.10)}.qr-scan-v77-camera-top{display:flex;align-items:center;gap:7px;min-height:24px;margin-bottom:5px;font-size:.82rem}.qr-scan-v77-dot{width:10px;height:10px;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 4px rgba(245,158,11,.14)}.qr-scan-v77-dot.ok{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.14)}.qr-scan-v77-dot.error{background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.14)}.qr-scan-v77-dot.wait{background:#f59e0b}.qr-scan-v77-reader-frame{position:relative;border-radius:18px;background:#0f172a;overflow:hidden;min-height:calc(100dvh - 190px);max-height:430px;display:grid;place-items:center}.qr-scan-v77-reader-frame #qr-reader{width:100%;min-height:calc(100dvh - 190px);max-height:430px;background:#0f172a}.qr-scan-v77-reader-frame #qr-reader video{width:100%!important;height:100%!important;object-fit:cover!important}.qr-scan-v77-reader-frame #qr-reader__scan_region{display:grid!important;place-items:center!important}.qr-scan-v77-reader-frame #qr-reader__dashboard_section_csr select,.qr-scan-v77-reader-frame #qr-reader__dashboard_section_csr span,.qr-scan-v77-reader-frame #qr-reader__dashboard_section_swaplink{font-size:.72rem!important}.qr-scan-v77-reader-frame #qr-reader__dashboard{padding:4px!important;background:#fff!important}.qr-scan-v77-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,rgba(15,23,42,.96),rgba(30,64,175,.80));color:#fff;font-weight:900;text-align:center}.qr-scan-v77-spinner{width:34px;height:34px;border:4px solid rgba(255,255,255,.28);border-top-color:#fff;border-radius:50%;animation:qrspin .8s linear infinite}@keyframes qrspin{to{transform:rotate(360deg)}}.qr-scan-v77-bottom{display:flex;gap:7px;margin-top:7px}.qr-scan-v77-mainbtn{flex:1;border-radius:14px;font-weight:900;padding:.55rem}.qr-scan-v77-smallbtn{border-radius:14px;font-weight:850;padding:.55rem .8rem}.qr-scan-v77-mini-note{font-size:.72rem;line-height:1.2;color:#475569;text-align:center;margin-top:6px;padding:0 8px}.qr-scan-v77-modal{border-radius:22px}.qr-scan-v77-help-list{font-size:.9rem;padding-left:1.15rem;margin-bottom:10px}.qr-scan-v77-help-list li{margin-bottom:7px}.qr-scan-v77-no-manual{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:14px;padding:8px 10px;font-size:.82rem;font-weight:800}
@media(max-width:768px){body.qr-scanner-body-v77 .ampa-topbar{min-height:42px}.qr-scanner-body-v77 .ampa-topbar-wrap{padding-top:3px!important;padding-bottom:3px!important}.qr-scanner-body-v77 .ampa-brand .logo{height:28px!important;max-width:82px}.qr-scanner-body-v77 .ampa-brand span,.qr-scanner-body-v77 .ampa-current-place,.qr-scanner-body-v77 .ampa-nav-home span,.qr-scanner-body-v77 .ampa-user-text{display:none!important}.qr-scanner-body-v77 .ampa-nav-pill,.qr-scanner-body-v77 .ampa-user-pill{padding:5px 7px!important;border-radius:999px!important;font-size:.76rem!important}.qr-scan-v77-reader-frame{min-height:calc(100dvh - 176px)}.qr-scan-v77-reader-frame #qr-reader{min-height:calc(100dvh - 176px)}.qr-scan-v77 h1{font-size:1rem}.qr-scan-v77-help{width:34px;height:34px}.qr-scan-v77-camera-card{border-radius:18px;padding:7px}.qr-scan-v77-reader-frame{border-radius:16px}.qr-scan-v77-bottom{margin-top:6px}.qr-scan-v77-mainbtn,.qr-scan-v77-smallbtn{padding:.48rem .7rem;font-size:.9rem}.qr-scan-v77-mini-note{font-size:.69rem}}
@media(max-height:680px){.qr-scanner-body-v77 main.container-fluid{padding-top:4px!important}.qr-scan-v77-head{margin-bottom:4px}.qr-scan-v77-help{width:32px;height:32px}.qr-scan-v77-camera-card{padding:6px}.qr-scan-v77-camera-top{font-size:.77rem;min-height:20px;margin-bottom:3px}.qr-scan-v77-reader-frame,.qr-scan-v77-reader-frame #qr-reader{min-height:calc(100dvh - 158px)}.qr-scan-v77-mini-note{display:none}.qr-scan-v77-bottom{margin-top:5px}.qr-scan-v77-mainbtn,.qr-scan-v77-smallbtn{padding:.42rem .62rem}}

/* V78 QR: navegación rápida para rol QR */
.qr-scan-again-btn{font-weight:950;border-radius:14px;box-shadow:0 8px 18px rgba(13,110,253,.16)}
.qr-scan-again-panel{margin-top:10px;padding-top:8px;border-top:1px dashed #cbd5e1}
.qr-action-buttons-flow{align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:768px){.qr-flow-actions{gap:6px}.qr-action-buttons-flow{width:100%;display:grid;grid-template-columns:1fr;gap:5px}.qr-action-buttons-flow .btn{width:100%;font-size:.86rem;padding:.46rem .55rem}.qr-manage-page .qr-top-actions{position:sticky;top:0;z-index:35;background:#eef4fb;border-bottom:1px solid #dbeafe}.qr-scan-again-panel .btn-lg{font-size:.95rem;padding:.62rem}}

/* V79 - Portada pública compacta azul con logo real AMPA */
.public-home-v79{
  min-height:100vh;
  background:
    radial-gradient(circle at 12% 8%, rgba(0,138,255,.13), transparent 28%),
    radial-gradient(circle at 88% 18%, rgba(0,77,166,.12), transparent 32%),
    linear-gradient(180deg,#f4f9ff 0%,#ffffff 54%,#eef6ff 100%);
  color:#0b2d5f;
  overflow-x:hidden;
}
.public-v79-shell{width:min(1180px,calc(100% - 34px));margin:0 auto;}
.public-v79-topbar{
  height:78px;
  display:flex;
  align-items:center;
  background:linear-gradient(135deg,#004c99 0%,#0067d8 48%,#003d83 100%);
  color:#fff;
  box-shadow:0 10px 28px rgba(0,58,125,.22);
}
.public-v79-nav-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;}
.public-v79-brand{display:flex;align-items:center;gap:14px;color:#fff;text-decoration:none;min-width:0;}
.public-v79-brand img{height:58px;width:auto;max-width:188px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.22));background:rgba(255,255,255,.06);border-radius:10px;}
.public-v79-brand span{display:flex;flex-direction:column;line-height:1.05;min-width:0;}
.public-v79-brand strong{font-size:1.28rem;font-weight:950;letter-spacing:-.02em;white-space:nowrap;}
.public-v79-brand small{font-size:.87rem;color:#dbeafe;font-weight:650;margin-top:4px;}
.public-v79-nav-actions{display:flex;align-items:center;gap:10px;}
.public-v79-link{color:#eaf3ff;text-decoration:none;font-weight:800;padding:9px 11px;border-radius:999px;}
.public-v79-link:hover{background:rgba(255,255,255,.10);color:#fff;}
.public-v79-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:999px;font-weight:950;padding:10px 17px;line-height:1;}
.public-v79-btn-outline{color:#0b4fb3;background:#fff;border:1px solid rgba(255,255,255,.78);box-shadow:0 8px 18px rgba(0,35,95,.16);}
.public-v79-main{min-height:calc(100vh - 78px - 86px);display:flex;align-items:center;padding:22px 0 18px;}
.public-v79-hero{display:grid;gap:20px;}
.public-v79-hero-text{text-align:center;max-width:820px;margin:0 auto;}
.public-v79-kicker{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:#0064cc;font-weight:950;margin-bottom:7px;}
.public-v79-hero h1{font-size:clamp(2.05rem,4.2vw,4.35rem);line-height:.98;margin:0;color:#073873;font-weight:950;letter-spacing:-.055em;}
.public-v79-hero p{max-width:680px;margin:12px auto 0;color:#435875;font-size:1.08rem;font-weight:600;}
.public-v79-main-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch;}
.public-v79-action-card{
  min-height:310px;
  display:flex;
  flex-direction:column;
  text-decoration:none;
  color:#12345e;
  background:rgba(255,255,255,.94);
  border:1px solid #d7e8fb;
  border-radius:30px;
  padding:28px 28px 26px;
  box-shadow:0 18px 44px rgba(6,48,99,.10);
  position:relative;
  overflow:hidden;
  transition:.16s ease;
}
.public-v79-action-card:before{content:"";position:absolute;inset:auto -80px -120px auto;width:230px;height:230px;border-radius:50%;background:rgba(0,96,210,.09);}
.public-v79-action-card:hover{transform:translateY(-3px);box-shadow:0 24px 54px rgba(6,48,99,.15);color:#12345e;}
.public-v79-card-alta:before{background:rgba(255,205,0,.18)}
.public-v79-card-icon{width:76px;height:76px;border-radius:28px;background:linear-gradient(135deg,#eef6ff,#ffffff);border:1px solid #cfe2ff;display:grid;place-items:center;font-size:2rem;margin-bottom:14px;box-shadow:0 10px 22px rgba(0,73,150,.10);}
.public-v79-card-title{font-size:1.55rem;color:#0055bd;font-weight:950;letter-spacing:-.025em;margin-bottom:7px;}
.public-v79-card-text{color:#415a7b;font-size:1rem;line-height:1.35;min-height:54px;font-weight:600;margin-bottom:14px;}
.public-v79-card-list{display:flex;align-items:center;gap:9px;color:#334b6c;font-weight:750;padding:6px 0;border-bottom:1px solid #e7eef8;}
.public-v79-card-list b{color:#0064cc;}
.public-v79-card-button{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:18px;background:linear-gradient(135deg,#006fe6,#004aa7);color:#fff;font-size:1.08rem;font-weight:950;padding:14px 18px;box-shadow:0 12px 24px rgba(0,92,200,.18);}
.public-v79-card-alta .public-v79-card-title{color:#004c99;}
.public-v79-card-alta .public-v79-card-button{background:linear-gradient(135deg,#005fc8,#003f91);}
.public-v79-activities{background:rgba(255,255,255,.92);border:1px solid #d7e8fb;border-radius:28px;box-shadow:0 16px 42px rgba(6,48,99,.09);padding:18px 20px 20px;}
.public-v79-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px;color:#073873;}
.public-v79-section-head strong{display:block;font-size:1.12rem;font-weight:950;}
.public-v79-section-head span{display:block;color:#64748b;font-size:.9rem;font-weight:650;}
.public-v79-section-head a{color:#0057bd;text-decoration:none;font-weight:950;white-space:nowrap;}
.public-v79-activity-strip{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px;}
.public-v79-activity-strip::-webkit-scrollbar{height:8px}.public-v79-activity-strip::-webkit-scrollbar-thumb{background:#bdd7f4;border-radius:999px}
.public-v79-activity{scroll-snap-align:start;flex:0 0 255px;border-radius:22px;border:1px solid #dbeafe;background:linear-gradient(135deg,#fff,#f8fbff);padding:16px;min-height:146px;box-shadow:0 10px 24px rgba(15,50,90,.06);position:relative;overflow:hidden;}
.public-v79-activity:before{content:"";position:absolute;right:-34px;top:-34px;width:96px;height:96px;border-radius:50%;background:rgba(0,106,230,.10)}
.public-v79-activity-date{display:inline-flex;border-radius:999px;background:#eaf4ff;color:#0059c7;font-size:.8rem;font-weight:950;padding:5px 10px;margin-bottom:10px;}
.public-v79-activity h2{font-size:1rem;color:#0b2d5f;font-weight:950;margin:0 0 7px;position:relative;}
.public-v79-activity p{font-size:.88rem;color:#52677f;margin:0 0 12px;font-weight:650;position:relative;}
.public-v79-activity span{display:inline-flex;border-radius:999px;background:#ecfdf5;color:#047857;font-size:.78rem;font-weight:950;padding:6px 10px;position:relative;}
.public-v79-activity-1 span{background:#eff6ff;color:#1d4ed8}.public-v79-activity-2 span{background:#fff7ed;color:#c2410c}.public-v79-activity-3 span{background:#fefce8;color:#a16207}
.public-v79-footer{height:86px;display:flex;align-items:center;background:rgba(238,246,255,.92);border-top:1px solid #d7e8fb;color:#0b2d5f;}
.public-v79-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;}
.public-v79-footer img{height:42px;width:auto;object-fit:contain;}
.public-v79-footer strong{display:block;font-weight:950;line-height:1.05}.public-v79-footer span{display:block;font-weight:750;color:#0057bd;margin-top:3px}.public-v79-footer-links{display:flex;gap:13px}.public-v79-footer-links a{font-weight:900;color:#0057bd;text-decoration:none;}
@media(max-width:991px){.public-v79-main{align-items:flex-start;padding:18px 0}.public-v79-main-grid{grid-template-columns:1fr}.public-v79-action-card{min-height:auto}.public-v79-topbar{height:auto;padding:10px 0}.public-v79-brand img{height:48px}.public-v79-brand small{display:none}.public-v79-link{display:none}.public-v79-footer{height:auto;padding:15px 0}.public-v79-footer-inner{flex-wrap:wrap;justify-content:center;text-align:center}.public-v79-hero h1{font-size:2.25rem}}
@media(max-width:576px){.public-v79-shell{width:min(100% - 18px,1180px)}.public-v79-nav-actions .public-v79-btn{padding:9px 12px;font-size:.86rem}.public-v79-brand strong{font-size:1rem}.public-v79-brand img{height:42px;max-width:130px}.public-v79-hero{gap:14px}.public-v79-hero p{font-size:.94rem}.public-v79-action-card{border-radius:22px;padding:18px}.public-v79-card-icon{width:58px;height:58px;border-radius:20px;font-size:1.55rem}.public-v79-card-title{font-size:1.25rem}.public-v79-card-text{font-size:.9rem;min-height:0}.public-v79-card-list{font-size:.88rem}.public-v79-card-button{font-size:.95rem;padding:12px 14px}.public-v79-activities{border-radius:22px;padding:14px}.public-v79-section-head{align-items:flex-start}.public-v79-section-head span{display:none}.public-v79-activity{flex-basis:220px}.public-v79-footer-links{width:100%;justify-content:center}}
@media(min-width:992px) and (max-height:850px){.public-v79-topbar{height:70px}.public-v79-brand img{height:50px}.public-v79-main{min-height:calc(100vh - 70px - 74px);padding:14px 0}.public-v79-hero{gap:14px}.public-v79-hero h1{font-size:3.1rem}.public-v79-hero p{font-size:.98rem;margin-top:8px}.public-v79-action-card{min-height:260px;padding:22px}.public-v79-card-icon{width:62px;height:62px;border-radius:22px;font-size:1.6rem;margin-bottom:10px}.public-v79-card-title{font-size:1.34rem}.public-v79-card-text{font-size:.91rem;min-height:42px;margin-bottom:8px}.public-v79-card-list{font-size:.88rem;padding:4px 0}.public-v79-card-button{padding:11px 15px}.public-v79-activities{padding:14px 16px}.public-v79-activity{min-height:116px;padding:13px}.public-v79-activity p{display:none}.public-v79-footer{height:74px}.public-v79-footer img{height:34px}}


/* V80 - Portada pública móvil 6 pulgadas con burbujas */
@media(max-width:576px){
  body.public-home-v80{
    min-height:100dvh;
    background:
      radial-gradient(circle at 12% 0%, rgba(0,110,230,.13), transparent 34%),
      linear-gradient(180deg,#f8fbff 0%,#eef6ff 100%);
    overflow-x:hidden;
  }
  .public-home-v80 .public-v79-topbar{
    position:sticky;
    top:0;
    z-index:20;
    height:58px;
    padding:5px 0;
    box-shadow:0 8px 20px rgba(0,48,112,.16);
  }
  .public-home-v80 .public-v79-shell{
    width:calc(100% - 14px);
  }
  .public-home-v80 .public-v79-nav-inner{
    gap:7px;
  }
  .public-home-v80 .public-v79-brand{
    gap:7px;
    flex:1;
  }
  .public-home-v80 .public-v79-brand img{
    height:42px;
    max-width:114px;
    border-radius:8px;
    background:rgba(255,255,255,.10);
  }
  .public-home-v80 .public-v79-brand span{
    display:flex;
  }
  .public-home-v80 .public-v79-brand strong{
    font-size:.86rem;
    letter-spacing:-.01em;
    white-space:normal;
    line-height:1.05;
  }
  .public-home-v80 .public-v79-brand small{
    display:none!important;
  }
  .public-home-v80 .public-v79-nav-actions{
    flex:0 0 auto;
  }
  .public-home-v80 .public-v79-nav-actions .public-v79-btn{
    padding:8px 10px;
    font-size:.76rem;
    box-shadow:none;
  }
  .public-home-v80 .public-v79-main{
    min-height:auto;
    display:block;
    padding:8px 0 8px;
  }
  .public-home-v80 .public-v79-hero{
    gap:8px;
  }
  .public-home-v80 .public-v79-hero-text{
    padding:8px 6px 4px;
  }
  .public-home-v80 .public-v79-kicker{
    display:none;
  }
  .public-home-v80 .public-v79-hero h1{
    font-size:1.32rem;
    line-height:1.05;
    letter-spacing:-.035em;
    color:#063f86;
  }
  .public-home-v80 .public-v79-hero p{
    margin-top:5px;
    font-size:.78rem;
    line-height:1.25;
    color:#49617f;
    max-width:320px;
  }
  .public-home-v80 .public-v79-main-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    align-items:stretch;
  }
  .public-home-v80 .public-v79-action-card{
    min-height:168px;
    border-radius:27px;
    padding:12px 9px 10px;
    align-items:center;
    text-align:center;
    border:1px solid rgba(0,95,200,.18);
    background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(238,247,255,.96));
    box-shadow:0 10px 24px rgba(0,69,150,.10);
  }
  .public-home-v80 .public-v79-card-alta{
    background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(241,247,255,.96));
  }
  .public-home-v80 .public-v79-action-card:before{
    width:96px;
    height:96px;
    right:-34px;
    bottom:-40px;
    opacity:.75;
  }
  .public-home-v80 .public-v79-card-icon{
    width:50px;
    height:50px;
    border-radius:999px;
    margin:0 0 7px;
    font-size:1.35rem;
    background:#fff;
    border:1px solid #c9e0ff;
    box-shadow:0 8px 18px rgba(0,73,150,.10);
  }
  .public-home-v80 .public-v79-card-title{
    font-size:1.03rem;
    line-height:1.07;
    margin:0 0 5px;
    color:#0057bd;
  }
  .public-home-v80 .public-v79-card-text{
    font-size:.72rem;
    line-height:1.18;
    min-height:33px;
    margin:0 0 7px;
    color:#4f6380;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .public-home-v80 .public-v79-card-list{
    display:none;
  }
  .public-home-v80 .public-v79-card-button{
    width:100%;
    justify-content:center;
    gap:5px;
    margin-top:auto;
    border-radius:999px;
    padding:9px 8px;
    font-size:.78rem;
    line-height:1;
    box-shadow:0 8px 16px rgba(0,92,200,.18);
  }
  .public-home-v80 .public-v79-card-button b{
    display:none;
  }
  .public-home-v80 .public-v79-activities{
    border-radius:25px;
    padding:11px 10px 10px;
    box-shadow:0 10px 24px rgba(0,69,150,.09);
    background:rgba(255,255,255,.96);
  }
  .public-home-v80 .public-v79-section-head{
    margin-bottom:8px;
    align-items:center;
  }
  .public-home-v80 .public-v79-section-head strong{
    font-size:.94rem;
  }
  .public-home-v80 .public-v79-section-head span{
    display:none!important;
  }
  .public-home-v80 .public-v79-section-head a{
    font-size:.74rem;
  }
  .public-home-v80 .public-v79-activity-strip{
    gap:8px;
    padding-bottom:1px;
    overflow-x:auto;
    scrollbar-width:none;
  }
  .public-home-v80 .public-v79-activity-strip::-webkit-scrollbar{
    display:none;
  }
  .public-home-v80 .public-v79-activity{
    flex:0 0 155px;
    min-height:92px;
    border-radius:22px;
    padding:10px;
    box-shadow:0 8px 18px rgba(15,50,90,.07);
  }
  .public-home-v80 .public-v79-activity:before{
    width:66px;
    height:66px;
    right:-24px;
    top:-24px;
  }
  .public-home-v80 .public-v79-activity-date{
    font-size:.66rem;
    padding:4px 8px;
    margin-bottom:6px;
  }
  .public-home-v80 .public-v79-activity h2{
    font-size:.79rem;
    line-height:1.1;
    margin-bottom:4px;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .public-home-v80 .public-v79-activity p{
    display:none;
  }
  .public-home-v80 .public-v79-activity span{
    font-size:.64rem;
    padding:4px 7px;
    max-width:100%;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .public-home-v80 .public-v79-footer{
    height:auto;
    padding:8px 0 10px;
    background:rgba(238,246,255,.88);
  }
  .public-home-v80 .public-v79-footer-inner{
    display:grid;
    grid-template-columns:38px 1fr;
    gap:8px 10px;
    text-align:left;
    justify-content:initial;
  }
  .public-home-v80 .public-v79-footer img{
    height:30px;
    max-width:38px;
    align-self:center;
  }
  .public-home-v80 .public-v79-footer strong{
    font-size:.78rem;
  }
  .public-home-v80 .public-v79-footer span{
    font-size:.75rem;
    margin-top:1px;
  }
  .public-home-v80 .public-v79-footer-links{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
    width:100%;
  }
  .public-home-v80 .public-v79-footer-links a{
    display:flex;
    justify-content:center;
    align-items:center;
    min-height:34px;
    border-radius:999px;
    background:#fff;
    border:1px solid #d7e8fb;
    font-size:.78rem;
  }
}

@media(max-width:380px){
  .public-home-v80 .public-v79-brand img{height:38px;max-width:96px;}
  .public-home-v80 .public-v79-brand strong{font-size:.78rem;}
  .public-home-v80 .public-v79-nav-actions .public-v79-btn{font-size:.70rem;padding:7px 8px;}
  .public-home-v80 .public-v79-hero h1{font-size:1.16rem;}
  .public-home-v80 .public-v79-hero p{font-size:.72rem;}
  .public-home-v80 .public-v79-action-card{min-height:156px;padding:10px 7px;}
  .public-home-v80 .public-v79-card-title{font-size:.94rem;}
  .public-home-v80 .public-v79-card-text{font-size:.68rem;}
  .public-home-v80 .public-v79-card-button{font-size:.72rem;padding:8px 6px;}
  .public-home-v80 .public-v79-activity{flex-basis:142px;}
}

/* V81 - Corrección responsive móvil real: sin desplazamiento lateral, burbujas verticales y scroll hacia abajo */
@media(max-width:576px){
  html,body.public-home-v81{width:100%;max-width:100%;overflow-x:hidden;}
  body.public-home-v81 *,
  body.public-home-v81 *:before,
  body.public-home-v81 *:after{box-sizing:border-box;}
  body.public-home-v81 .public-v79-shell{width:100%;max-width:100%;padding-left:12px;padding-right:12px;margin:0 auto;}

  body.public-home-v81 .public-v79-topbar{height:auto;min-height:64px;padding:7px 0;position:sticky;top:0;z-index:50;}
  body.public-home-v81 .public-v79-nav-inner{width:100%;max-width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;}
  body.public-home-v81 .public-v79-brand{min-width:0;max-width:100%;gap:8px;overflow:hidden;}
  body.public-home-v81 .public-v79-brand img{height:46px;max-width:118px;flex:0 0 auto;background:#fff;border-radius:12px;padding:3px;}
  body.public-home-v81 .public-v79-brand span{min-width:0;overflow:hidden;}
  body.public-home-v81 .public-v79-brand strong{display:block;font-size:.94rem;line-height:1.05;white-space:normal;overflow:hidden;text-overflow:ellipsis;}
  body.public-home-v81 .public-v79-nav-actions{min-width:0;}
  body.public-home-v81 .public-v79-nav-actions .public-v79-btn{white-space:nowrap;font-size:.78rem;padding:9px 10px;border-radius:999px;}

  body.public-home-v81 .public-v79-main{display:block;min-height:auto;padding:10px 0 12px;overflow:hidden;}
  body.public-home-v81 .public-v79-hero{display:block;width:100%;max-width:100%;}
  body.public-home-v81 .public-v79-hero-text{padding:8px 4px 10px;max-width:100%;overflow:hidden;text-align:center;}
  body.public-home-v81 .public-v79-hero h1{font-size:0;line-height:1;margin:0;color:#073873;letter-spacing:0;}
  body.public-home-v81 .public-v79-hero h1:after{content:'AMPA Santo Ángel';display:block;font-size:1.45rem;line-height:1.05;font-weight:950;letter-spacing:-.035em;}
  body.public-home-v81 .public-v79-hero p{max-width:330px;margin:6px auto 0;font-size:.82rem;line-height:1.25;color:#4b607b;}

  body.public-home-v81 .public-v79-main-grid{display:grid;grid-template-columns:1fr;gap:11px;width:100%;max-width:100%;overflow:visible;}
  body.public-home-v81 .public-v79-action-card{width:100%;max-width:100%;min-width:0;min-height:auto;display:grid;grid-template-columns:54px minmax(0,1fr);grid-template-areas:'icon title' 'icon text' 'button button';column-gap:11px;row-gap:5px;align-items:center;text-align:left;border-radius:26px;padding:13px;overflow:hidden;}
  body.public-home-v81 .public-v79-card-icon{grid-area:icon;width:54px;height:54px;margin:0;border-radius:20px;font-size:1.35rem;}
  body.public-home-v81 .public-v79-card-title{grid-area:title;font-size:1.08rem;line-height:1.1;margin:0;white-space:normal;overflow-wrap:anywhere;}
  body.public-home-v81 .public-v79-card-text{grid-area:text;display:block;min-height:0;margin:0;font-size:.78rem;line-height:1.22;color:#4d617c;overflow:visible;}
  body.public-home-v81 .public-v79-card-button{grid-area:button;width:100%;margin-top:7px;justify-content:center;border-radius:999px;font-size:.9rem;padding:10px 12px;white-space:normal;text-align:center;}
  body.public-home-v81 .public-v79-card-button b{display:inline;}
  body.public-home-v81 .public-v79-card-list{display:none!important;}

  body.public-home-v81 .public-v79-activities{width:100%;max-width:100%;margin-top:12px;border-radius:26px;padding:13px;overflow:hidden;}
  body.public-home-v81 .public-v79-section-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:10px;}
  body.public-home-v81 .public-v79-section-head strong{font-size:1rem;line-height:1.05;}
  body.public-home-v81 .public-v79-section-head a{font-size:.78rem;white-space:nowrap;}
  body.public-home-v81 .public-v79-activity-strip{display:grid;grid-template-columns:1fr 1fr;gap:9px;overflow:visible;scroll-snap-type:none;width:100%;max-width:100%;padding:0;}
  body.public-home-v81 .public-v79-activity{width:100%;min-width:0;max-width:100%;flex:initial;min-height:104px;border-radius:22px;padding:10px;overflow:hidden;}
  body.public-home-v81 .public-v79-activity-date{font-size:.66rem;line-height:1;padding:5px 8px;margin-bottom:7px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  body.public-home-v81 .public-v79-activity h2{font-size:.84rem;line-height:1.12;margin:0 0 6px;overflow-wrap:anywhere;}
  body.public-home-v81 .public-v79-activity span{font-size:.65rem;line-height:1.05;max-width:100%;white-space:normal;}

  body.public-home-v81 .public-v79-footer{height:auto;padding:10px 0 14px;overflow:hidden;}
  body.public-home-v81 .public-v79-footer-inner{width:100%;max-width:100%;display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px 10px;text-align:left;align-items:center;}
  body.public-home-v81 .public-v79-footer img{height:auto;width:44px;max-width:44px;}
  body.public-home-v81 .public-v79-footer strong{font-size:.88rem;line-height:1.1;white-space:normal;}
  body.public-home-v81 .public-v79-footer span{font-size:.86rem;line-height:1.1;overflow-wrap:anywhere;}
  body.public-home-v81 .public-v79-footer-links{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:9px;width:100%;max-width:100%;}
  body.public-home-v81 .public-v79-footer-links a{min-width:0;min-height:38px;border-radius:999px;background:#fff;border:1px solid #cfe2ff;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.9rem;font-weight:950;}
}

@media(max-width:360px){
  body.public-home-v81 .public-v79-shell{padding-left:9px;padding-right:9px;}
  body.public-home-v81 .public-v79-brand img{height:42px;max-width:100px;}
  body.public-home-v81 .public-v79-brand strong{font-size:.82rem;}
  body.public-home-v81 .public-v79-nav-actions .public-v79-btn{font-size:.72rem;padding:8px 8px;}
  body.public-home-v81 .public-v79-activity-strip{grid-template-columns:1fr;}
}


/* V82 - Colores funcionales en burbujas principales */
.public-home-v82 .public-v79-card-socios{
  border-color:#b9d8ff;
  background:linear-gradient(135deg,#ffffff 0%,#f3f9ff 58%,#eaf4ff 100%);
}
.public-home-v82 .public-v79-card-socios:before{background:rgba(0,98,214,.13);}
.public-home-v82 .public-v79-card-socios .public-v79-card-icon{
  background:linear-gradient(135deg,#eaf4ff,#ffffff);
  border-color:#b9d8ff;
  color:#005fc8;
}
.public-home-v82 .public-v79-card-socios .public-v79-card-title{color:#0055bd;}
.public-home-v82 .public-v79-card-socios .public-v79-card-button{
  background:linear-gradient(135deg,#0077ee,#004da8);
  box-shadow:0 12px 24px rgba(0,92,200,.20);
}
.public-home-v82 .public-v79-card-alta{
  border-color:#bdebd3;
  background:linear-gradient(135deg,#ffffff 0%,#f4fff8 56%,#e8fff1 100%);
}
.public-home-v82 .public-v79-card-alta:before{background:rgba(16,185,129,.15);}
.public-home-v82 .public-v79-card-alta .public-v79-card-icon{
  background:linear-gradient(135deg,#e8fff1,#ffffff);
  border-color:#bdebd3;
  color:#059669;
}
.public-home-v82 .public-v79-card-alta .public-v79-card-title{color:#047857;}
.public-home-v82 .public-v79-card-alta .public-v79-card-list b{color:#059669;}
.public-home-v82 .public-v79-card-alta .public-v79-card-button{
  background:linear-gradient(135deg,#10b981,#047857);
  box-shadow:0 12px 24px rgba(4,120,87,.18);
}
.public-home-v82 .public-v79-card-alta:hover{color:#12345e;}
@media(max-width:576px){
  body.public-home-v82 .public-v79-card-socios{
    background:linear-gradient(135deg,#ffffff 0%,#f1f8ff 100%);
    border-color:#b7d9ff;
  }
  body.public-home-v82 .public-v79-card-alta{
    background:linear-gradient(135deg,#ffffff 0%,#effdf5 100%);
    border-color:#b7ebcd;
  }
  body.public-home-v82 .public-v79-card-socios .public-v79-card-icon{
    background:#eaf4ff;
    color:#005fc8;
  }
  body.public-home-v82 .public-v79-card-alta .public-v79-card-icon{
    background:#dcfce7;
    color:#047857;
  }
}

/* V83 - Histórico de actividades familia: colores por actividad + estado de ticket visible */
.familia-history-v83 .familia-screen-head span{max-width:100%;line-height:1.18}
.familia-history-bubble{
  border-left-width:10px!important;
  align-items:stretch!important;
  min-height:94px;
}
.familia-history-bubble .historia-color-dot{
  align-self:center;
  background:#fff!important;
  border:2px solid currentColor;
  font-size:.82rem;
  font-weight:950;
}
.familia-history-main em{
  display:block;
  margin-top:3px;
  font-style:normal;
  font-size:.72rem;
  color:#475569;
  line-height:1.1;
}
.familia-ticket-state{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-top:7px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(15,23,42,.10);
  max-width:100%;
}
.familia-ticket-state>b{font-size:1rem;line-height:1}
.familia-ticket-state span{display:flex!important;flex-direction:column;margin:0!important;line-height:1.05!important;color:#0f172a!important}
.familia-ticket-state strong{font-size:.75rem!important;color:#0f172a!important;line-height:1.05!important}
.familia-ticket-state small{font-size:.66rem;color:#64748b;font-weight:750;line-height:1.05;margin-top:2px}
.familia-ticket-state.ticket-ok{background:#dcfce7;border-color:#86efac;color:#15803d}
.familia-ticket-state.ticket-pending{background:#fff7d6;border-color:#facc15;color:#a16207}
.familia-ticket-state.ticket-locked{background:#fee2e2;border-color:#fca5a5;color:#b91c1c}
.familia-ticket-state.ticket-info{background:#e0f2fe;border-color:#7dd3fc;color:#0369a1}
.familia-history-bubble.activity-color-0 .historia-color-dot{color:#2563eb}.familia-history-bubble.activity-color-1 .historia-color-dot{color:#16a34a}.familia-history-bubble.activity-color-2 .historia-color-dot{color:#ea580c}.familia-history-bubble.activity-color-3 .historia-color-dot{color:#7c3aed}.familia-history-bubble.activity-color-4 .historia-color-dot{color:#0891b2}.familia-history-bubble.activity-color-5 .historia-color-dot{color:#db2777}.familia-history-bubble.activity-color-6 .historia-color-dot{color:#ca8a04}.familia-history-bubble.activity-color-7 .historia-color-dot{color:#0284c7}.familia-history-bubble.activity-color-8 .historia-color-dot{color:#65a30d}.familia-history-bubble.activity-color-9 .historia-color-dot{color:#475569}.familia-history-bubble.activity-color-10 .historia-color-dot{color:#ef4444}.familia-history-bubble.activity-color-11 .historia-color-dot{color:#14b8a6}.familia-history-bubble.activity-color-12 .historia-color-dot{color:#8b5cf6}.familia-history-bubble.activity-color-13 .historia-color-dot{color:#f97316}.familia-history-bubble.activity-color-14 .historia-color-dot{color:#0ea5e9}.familia-history-bubble.activity-color-15 .historia-color-dot{color:#84cc16}.familia-history-bubble.activity-color-16 .historia-color-dot{color:#ec4899}.familia-history-bubble.activity-color-17 .historia-color-dot{color:#6366f1}.familia-history-bubble.activity-color-18 .historia-color-dot{color:#22c55e}.familia-history-bubble.activity-color-19 .historia-color-dot{color:#f59e0b}.familia-history-bubble.activity-color-20 .historia-color-dot{color:#06b6d4}.familia-history-bubble.activity-color-21 .historia-color-dot{color:#a855f7}.familia-history-bubble.activity-color-22 .historia-color-dot{color:#64748b}.familia-history-bubble.activity-color-23 .historia-color-dot{color:#dc2626}
@media(max-width:768px){
  .familia-history-bubble{min-height:86px;display:grid!important;grid-template-columns:38px minmax(0,1fr) 76px;gap:8px!important;padding:9px!important}
  .familia-history-main strong{font-size:.86rem!important;line-height:1.06!important}
  .familia-history-main span{font-size:.68rem!important;line-height:1.1!important}
  .familia-history-main em{font-size:.66rem}
  .familia-ticket-state{padding:5px 7px;border-radius:14px;gap:5px;margin-top:5px}
  .familia-ticket-state strong{font-size:.67rem!important}.familia-ticket-state small{font-size:.59rem}
  .familia-history-action{min-width:0!important;width:76px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center}
  .familia-history-action .badge{white-space:normal;line-height:1.05;text-align:center}
}

/* V84 - Cloudflare Turnstile / seguridad formularios */
.ampa-turnstile-box{
  margin:14px 0 16px;
  display:flex;
  justify-content:center;
  align-items:center;
  max-width:100%;
  overflow:hidden;
}
.login-card .ampa-turnstile-box{
  margin-top:4px;
  margin-bottom:14px;
}
@media (max-width: 575.98px){
  .ampa-turnstile-box{
    justify-content:flex-start;
    transform:scale(.96);
    transform-origin:left center;
  }
  .alta-socio-page .ampa-turnstile-box{
    justify-content:center;
    transform:scale(.92);
    transform-origin:center center;
  }
}


/* V85 - Fix visual Cloudflare Turnstile: mostrar widget estándar y evitar que quede invisible */
.ampa-turnstile-box{
  width:100%;
  margin:12px 0 16px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  overflow:visible!important;
  min-height:82px;
}
.ampa-turnstile-title{
  font-size:.78rem;
  font-weight:700;
  color:#0b5394;
  text-align:center;
  line-height:1.1;
}
.ampa-turnstile-box .cf-turnstile{
  display:block!important;
  min-width:300px;
  min-height:65px;
  max-width:100%;
}
.login-card .ampa-turnstile-box{
  margin-top:2px;
  margin-bottom:14px;
}
@media (max-width: 575.98px){
  .ampa-turnstile-box{
    align-items:center;
    transform:none!important;
    min-height:80px;
  }
  .ampa-turnstile-box .cf-turnstile{
    min-width:300px;
  }
}


/* V86 - Cloudflare Turnstile render explícito y aviso visible si el navegador bloquea el widget */
.ampa-turnstile-box{
  position:relative;
  width:100%;
  margin:12px 0 16px;
  min-height:96px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  overflow:visible!important;
}
.ampa-turnstile-box .cf-turnstile{
  display:block!important;
  width:300px!important;
  min-width:300px!important;
  min-height:65px!important;
  margin:0 auto!important;
  overflow:visible!important;
}
.ampa-turnstile-box .cf-turnstile iframe{
  display:block!important;
  margin:0 auto!important;
}
.ampa-turnstile-warning{
  max-width:340px;
  padding:8px 10px;
  border-radius:10px;
  background:#fff7ed;
  border:1px solid #fdba74;
  color:#9a3412;
  font-size:.78rem;
  line-height:1.25;
  text-align:center;
}
@media (max-width: 575.98px){
  .ampa-turnstile-box{min-height:96px;}
  .ampa-turnstile-box .cf-turnstile{width:300px!important;min-width:300px!important;transform:scale(.94);transform-origin:center center;}
}


/* V87 - Turnstile invisible funcional */
.ampa-turnstile-invisible{
  min-height:0!important;
  height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  border:0!important;
  background:transparent!important;
}
.ampa-turnstile-invisible .cf-turnstile{
  width:0!important;
  height:0!important;
  overflow:hidden!important;
}
.ampa-turnstile-invisible .ampa-turnstile-warning{
  margin:10px 0!important;
  padding:10px 12px!important;
  border-radius:10px!important;
  background:#fff3cd!important;
  color:#7a4b00!important;
  font-weight:700!important;
  height:auto!important;
  min-height:auto!important;
}


/* V88 TURNSTILE INVISIBLE CLAVES CORREGIDAS: solo actualización de cache/versionado, mantiene estilo V87. */


/* V89 - Fechas visibles en burbujas de clientes apuntados */
.inscription-date-chips{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;align-items:center}
.inscription-date-chips .date-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(21,95,159,.16);background:rgba(255,255,255,.68);border-radius:999px;padding:3px 7px;font-size:.70rem;line-height:1.1;font-weight:700;color:#123b5d;box-shadow:0 2px 8px rgba(15,76,129,.045)}
.inscription-date-chips .date-paid{border-color:rgba(25,135,84,.28);background:rgba(232,248,239,.82);color:#12643f}
.inscription-date-chips .date-pending{border-color:rgba(245,158,11,.30);background:rgba(255,247,224,.86);color:#8a5a00}
.inscription-date-chips .date-ins{border-color:rgba(13,110,253,.22);background:rgba(232,243,255,.78);color:#0c4f87}
@media(max-width:768px){.inscription-date-chips{gap:4px;margin-top:5px}.inscription-date-chips .date-chip{width:100%;justify-content:flex-start;font-size:.72rem;padding:4px 7px}.inscription-mini-bubble .text-end{margin-top:2px}}


/* V90 - Ficha familia admin: bloques de pagos/actividades con colores por función */
.family-admin-payment-v90{
  background:linear-gradient(135deg,#fffdf7 0%,#fff7e6 46%,#ffffff 100%)!important;
  border-color:#ffd28a!important;
  border-left:9px solid #f59e0b!important;
  box-shadow:0 12px 30px rgba(245,158,11,.10)!important;
}
.family-admin-payment-v90 > h2::before{content:"💳 ";}
.family-admin-payment-v90 .simple-quota-card.quota-action-card-v90{
  background:linear-gradient(135deg,#ffffff 0%,#fff3cf 100%)!important;
  border:1px solid #facc15!important;
  border-left:7px solid #f59e0b!important;
  box-shadow:0 10px 24px rgba(245,158,11,.10)!important;
}
.family-admin-payment-v90 .quota-history-list-v90{gap:10px;}
.quota-history-item-v90{
  border-radius:18px!important;
  border-left:8px solid #64748b!important;
  background:#f8fafc!important;
  box-shadow:0 8px 18px rgba(15,23,42,.055)!important;
}
.quota-history-item-v90.quota-state-pagada,
.quota-history-item-v90.quota-state-aceptado{
  background:linear-gradient(135deg,#ecfdf5 0%,#ffffff 100%)!important;
  border-color:#bbf7d0!important;
  border-left-color:#16a34a!important;
}
.quota-history-item-v90.quota-state-pendiente{
  background:linear-gradient(135deg,#fffbeb 0%,#ffffff 100%)!important;
  border-color:#fde68a!important;
  border-left-color:#f59e0b!important;
}
.quota-history-item-v90.quota-state-impagada,
.quota-history-item-v90.quota-state-devuelta{
  background:linear-gradient(135deg,#fef2f2 0%,#ffffff 100%)!important;
  border-color:#fecaca!important;
  border-left-color:#ef4444!important;
}
.quota-history-item-v90.quota-state-comunicado{
  background:linear-gradient(135deg,#ecfeff 0%,#ffffff 100%)!important;
  border-color:#a5f3fc!important;
  border-left-color:#06b6d4!important;
}
.quota-history-item-v90.quota-state-anulada,
.quota-history-item-v90.quota-state-baja{
  background:linear-gradient(135deg,#f1f5f9 0%,#ffffff 100%)!important;
  border-color:#cbd5e1!important;
  border-left-color:#64748b!important;
}
.payment-movements-v90{
  background:linear-gradient(135deg,#eef7ff,#ffffff)!important;
  border:1px solid #bfdbfe!important;
  border-left:7px solid #0d6efd!important;
  border-radius:18px!important;
  padding:10px!important;
  box-shadow:0 8px 20px rgba(13,110,253,.08)!important;
}
.payment-movements-v90 table{margin-bottom:0!important;}
.payment-movements-v90 thead th{
  color:#073873!important;
  border-bottom-color:#93c5fd!important;
}
.family-admin-activity-v90{
  background:linear-gradient(135deg,#f5f3ff 0%,#eef7ff 44%,#ffffff 100%)!important;
  border-color:#c4b5fd!important;
  border-left:9px solid #7c3aed!important;
  box-shadow:0 12px 30px rgba(124,58,237,.10)!important;
}
.family-admin-activity-v90 > h2::before{content:"🎨 ";}
.activity-history-list-v90{display:flex;flex-direction:column;gap:10px;}
.activity-history-item-v90{
  border-radius:18px!important;
  border-left:8px solid #7c3aed!important;
  background:linear-gradient(135deg,#f5f3ff 0%,#ffffff 100%)!important;
  box-shadow:0 8px 18px rgba(15,23,42,.055)!important;
}
.activity-history-item-v90.activity-state-aceptado{
  background:linear-gradient(135deg,#dcfce7 0%,#ffffff 100%)!important;
  border-color:#86efac!important;
  border-left-color:#16a34a!important;
}
.activity-history-item-v90.activity-state-pendiente{
  background:linear-gradient(135deg,#fef3c7 0%,#ffffff 100%)!important;
  border-color:#fcd34d!important;
  border-left-color:#f59e0b!important;
}
.activity-history-item-v90.activity-state-comunicado{
  background:linear-gradient(135deg,#cffafe 0%,#ffffff 100%)!important;
  border-color:#67e8f9!important;
  border-left-color:#06b6d4!important;
}
.activity-history-item-v90.activity-state-anulado,
.activity-history-item-v90.activity-state-baja{
  background:linear-gradient(135deg,#f1f5f9 0%,#ffffff 100%)!important;
  border-color:#cbd5e1!important;
  border-left-color:#64748b!important;
}
.family-admin-activity-v90 .btn-success,
.family-admin-payment-v90 .btn-success{box-shadow:0 6px 14px rgba(22,163,74,.18);}
.family-admin-activity-v90 .btn-warning,
.family-admin-payment-v90 .btn-warning{box-shadow:0 6px 14px rgba(245,158,11,.18);}
.family-admin-activity-v90 .btn-info{box-shadow:0 6px 14px rgba(6,182,212,.18);}
@media(max-width:900px){
  .family-admin-payment-v90,.family-admin-activity-v90{border-radius:18px!important;padding:12px!important;}
  .quota-history-item-v90,.activity-history-item-v90{align-items:flex-start!important;padding:10px!important;}
  .activity-history-item-v90 form{width:100%;}
  .activity-history-item-v90 form .btn{flex:1 1 120px;}
  .payment-movements-v90{padding:8px!important;border-radius:14px!important;}
}

/* V91 - Login móvil Turnstile invisible y carnet con curso actual visible */
.ampa-turnstile-invisible{
  position:absolute!important;
  left:-10000px!important;
  top:auto!important;
  width:1px!important;
  height:1px!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  opacity:.01!important;
  pointer-events:none!important;
  background:transparent!important;
  border:0!important;
}
.ampa-turnstile-invisible .cf-turnstile{
  width:1px!important;
  min-width:1px!important;
  height:1px!important;
  min-height:1px!important;
  overflow:visible!important;
}
.ampa-turnstile-invisible .ampa-turnstile-warning{
  position:fixed!important;
  left:12px!important;
  right:12px!important;
  bottom:12px!important;
  z-index:9999!important;
  display:none;
  opacity:1!important;
  pointer-events:auto!important;
  margin:0!important;
  padding:10px 12px!important;
  border-radius:12px!important;
  background:#fff3cd!important;
  border:1px solid #ffda6a!important;
  color:#7a4b00!important;
  font-weight:700!important;
  text-align:center!important;
  box-shadow:0 10px 25px rgba(15,23,42,.18)!important;
}
.carnet-v91-students{display:flex;flex-direction:column;gap:7px}
.carnet-v91-student{display:flex;justify-content:space-between;align-items:center;gap:8px;background:rgba(255,255,255,.92);border:1px solid rgba(13,110,253,.22);border-radius:14px;padding:7px 9px;color:#0b1b3f;box-shadow:0 4px 12px rgba(15,23,42,.06)}
.carnet-v91-name{font-weight:800;font-size:.86rem;line-height:1.1}
.carnet-v91-course{font-weight:800;font-size:.74rem;color:#0d6efd;background:#eaf3ff;border:1px solid #bfdbfe;border-radius:999px;padding:4px 7px;white-space:nowrap}
@media(max-width:575.98px){.login-bg .container{padding-top:16px!important;padding-bottom:16px!important}.login-card .card-body{padding:18px!important}.login-logo{max-width:170px}.carnet-v91-student{align-items:flex-start;flex-direction:column;gap:4px}.carnet-v91-course{white-space:normal}}
