:root{--primary:#8a5d4a;--primary-dark:#684435;--cream:#faf7f3;--ink:#2f2926;--muted:#776d68;--border:#eadfd8;--success:#267a52;--danger:#b33a3a}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:#f7f5f3;color:var(--ink)}a{text-decoration:none}.topbar{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1000}.topbar-inner{max-width:1450px;margin:auto;min-height:66px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{font-family:Georgia,serif;font-size:1.45rem;font-weight:700;color:var(--primary)}.app-shell{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:calc(100vh - 66px)}.sidebar{background:#2f2926;color:#fff;padding:22px 14px}.sidebar a{display:flex;align-items:center;gap:10px;color:#e9e0db;padding:10px 12px;border-radius:10px;margin:2px 0;font-size:.94rem}.sidebar a:hover,.sidebar a.active{background:#8a5d4a;color:#fff}.main{padding:28px;min-width:0}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px}.page-head h1{font-family:Georgia,serif;margin:0 0 5px;font-size:2rem}.page-head p{margin:0;color:var(--muted)}.card-soft{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 28px rgba(58,38,30,.05);padding:22px}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{padding:20px;background:#fff;border:1px solid var(--border);border-radius:16px}.stat strong{display:block;font-size:1.8rem;margin-top:5px}.muted{color:var(--muted)}.badge-state{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.78rem;font-weight:700;background:#eee}.badge-state.publicada,.badge-state.activo,.badge-state.activa,.badge-state.confirmado,.badge-state.verificado{background:#dff3e9;color:#17663e}.badge-state.borrador,.badge-state.pendiente,.badge-state.prueba{background:#fff1c7;color:#7c5a00}.badge-state.inactiva,.badge-state.inactivo,.badge-state.declinado,.badge-state.rechazado,.badge-state.baneado{background:#fde1e1;color:#8b2828}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px;border-bottom:1px solid #eee;text-align:left;vertical-align:middle}.table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#766a64}.form-label{font-weight:650;margin-bottom:6px}.form-control,.form-select{border-color:#ddd0c8;border-radius:10px;padding:.68rem .78rem}.form-control:focus,.form-select:focus{border-color:#a47764;box-shadow:0 0 0 .2rem rgba(138,93,74,.12)}.btn-primary{background:var(--primary);border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-outline-primary{color:var(--primary);border-color:var(--primary)}.btn-outline-primary:hover{background:var(--primary);border-color:var(--primary)}.thumb{width:72px;height:72px;object-fit:cover;border-radius:12px;border:1px solid var(--border)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.gallery-card img{width:100%;height:180px;object-fit:cover;border-radius:12px}.flash-wrap{max-width:1450px;margin:14px auto 0;padding:0 22px}.menu-toggle{display:none}.progress-thin{height:8px;background:#eee;border-radius:999px;overflow:hidden}.progress-thin span{display:block;height:100%;background:var(--primary)}.empty{padding:34px;text-align:center;color:var(--muted)}@media(max-width:950px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.sidebar.open{display:block;position:fixed;inset:66px auto 0 0;width:260px;z-index:999;overflow:auto}.menu-toggle{display:inline-flex}.main{padding:18px}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.page-head{flex-direction:column}.topbar-inner{padding:0 14px}}

/* Catálogo y compra de plantillas */
.grid-column-full{grid-column:1/-1}.template-catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.template-card{background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:0 10px 32px rgba(58,38,30,.06);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.template-card:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(58,38,30,.11)}.template-card.selected{border:2px solid var(--success)}.template-preview-link{display:block;position:relative;background:#eee;overflow:hidden}.template-preview-link img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;transition:transform .3s ease}.template-card:hover .template-preview-link img{transform:scale(1.025)}.template-preview-overlay{position:absolute;inset:auto 14px 14px 14px;background:rgba(31,25,22,.82);color:#fff;border-radius:10px;padding:10px 12px;text-align:center;opacity:0;transform:translateY(6px);transition:.2s}.template-card:hover .template-preview-overlay{opacity:1;transform:none}.template-card-body{padding:20px}.template-card h3{font-family:Georgia,serif;font-size:1.35rem;margin:0}.template-price{text-align:right;font-size:1.35rem;font-weight:800;white-space:nowrap}.template-price span{font-size:.9rem}.template-price small{display:block;font-size:.72rem;font-weight:500;color:var(--muted)}.demo-preview img{display:block;width:100%;max-height:78vh;object-fit:contain;border-radius:12px}.purchase-summary{display:flex;align-items:center;gap:18px}.purchase-summary img{width:145px;height:175px;object-fit:cover;border-radius:14px;border:1px solid var(--border)}.payment-data{display:grid;gap:10px}.payment-data>div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #eee}.payment-data span{color:var(--muted)}.payment-data strong{text-align:right}.purchased-template{display:flex;align-items:center;gap:16px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--cream)}.purchased-template img{width:82px;height:96px;object-fit:cover;border-radius:10px}.badge-state.pendiente_pago{background:#fff1c7;color:#7c5a00}.badge-state.pago_en_revision{background:#dcecff;color:#185a91}.badge-state.aprobado{background:#dff3e9;color:#17663e}.badge-state.cancelado{background:#ece9e7;color:#5f5752}@media(max-width:700px){.template-catalog{grid-template-columns:1fr}.purchase-summary,.purchased-template{align-items:flex-start;flex-direction:column}.purchase-summary img{width:100%;height:auto;max-height:360px}.purchased-template img{width:100%;height:180px}.grid-column-full{grid-column:auto}}

/* Documentos legales y consentimiento */
.legal-page{max-width:980px}.legal-document{padding:clamp(22px,4vw,48px)}.legal-heading{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--border)}.legal-heading h1{font-family:Georgia,serif;font-size:clamp(2rem,5vw,3.25rem);margin:14px 0 8px}.legal-heading p{margin:0;color:var(--muted)}.legal-document section{scroll-margin-top:90px;margin:0 0 30px}.legal-document h2{font-family:Georgia,serif;font-size:1.35rem;margin-bottom:10px}.legal-document p,.legal-document li{line-height:1.75}.legal-document ul{padding-left:1.25rem}.legal-footer{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap;padding:32px 18px;color:var(--muted);border-top:1px solid var(--border);background:#fff}.legal-footer a{color:var(--primary);font-weight:650}.legal-consents{padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--cream)}.legal-consents a{font-weight:700;color:var(--primary);text-decoration:underline;text-underline-offset:2px}



/* ================================================================
   AVISO Y CIERRE AUTOMÁTICO DE SESIÓN
   ================================================================ */
.session-timeout-modal {
    border: 0;
    border-radius: 22px;
    box-shadow: 0 24px 70px rgba(35, 27, 23, .22);
}
.session-timeout-icon {
    width: 72px;
    height: 72px;
    margin: 0 auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(160, 93, 70, .12);
    color: var(--primary, #a05d46);
    font-size: 2rem;
}
.session-countdown {
    font-size: clamp(2.2rem, 8vw, 3.6rem);
    line-height: 1;
    font-weight: 800;
    letter-spacing: .04em;
    font-variant-numeric: tabular-nums;
    color: var(--primary, #a05d46);
}
.session-timeout-modal .progress {
    height: 10px;
    border-radius: 999px;
    overflow: hidden;
}
.session-timeout-modal .progress-bar {
    transition: width .35s linear;
}


/* ================================================================
   QR DE PAGO Y SEGURIDAD DE CUENTA
   ================================================================ */
.payment-qr-admin{padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--cream)}
.payment-qr-admin>img{display:block;width:100%;max-width:250px;aspect-ratio:1/1;object-fit:contain;margin:0 auto;border-radius:12px;background:#fff;border:1px solid var(--border);padding:8px}
.qr-placeholder{min-height:210px;display:grid;place-items:center;align-content:center;gap:8px;border:2px dashed #d8c8be;border-radius:12px;color:var(--muted);background:#fff}
.qr-placeholder i{font-size:3rem}
.payment-qr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.payment-qr-card{margin:0;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--cream);text-align:center}
.payment-qr-card figcaption{display:flex;flex-direction:column;gap:3px;margin-bottom:12px}
.payment-qr-card figcaption span{color:var(--muted)}
.payment-qr-card img{width:100%;max-width:280px;aspect-ratio:1/1;object-fit:contain;border-radius:12px;background:#fff;border:1px solid var(--border);padding:8px}
.account-data{display:grid;gap:0}
.account-data>div{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(0,1.2fr);gap:18px;padding:13px 0;border-bottom:1px solid #eee}
.account-data>div:last-child{border-bottom:0}
.account-data dt{color:var(--muted);font-weight:600}
.account-data dd{margin:0;font-weight:700;text-align:right;overflow-wrap:anywhere}
.password-field{position:relative}
.password-field .form-control{padding-right:48px}
.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:var(--muted)}
.password-toggle:hover{background:#f0e8e3;color:var(--primary)}
@media(max-width:700px){.payment-qr-grid{grid-template-columns:1fr}.account-data>div{grid-template-columns:1fr;gap:4px}.account-data dd{text-align:left}.topbar .btn-outline-primary{font-size:0}.topbar .btn-outline-primary i{font-size:.95rem;margin:0!important}}

/* ================================================================
   PREVISUALIZACIÓN INMEDIATA DE QR
   ================================================================ */
.qr-preview-stage{
    position:relative;
    width:100%;
    min-height:210px;
}
.qr-live-preview{
    display:block;
    width:100%;
    max-width:250px;
    aspect-ratio:1/1;
    object-fit:contain;
    margin:0 auto;
    border-radius:12px;
    background:#fff;
    border:1px solid var(--border);
    padding:8px;
}
.d-none{
    display:none!important;
}
.qr-file-picker{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:9px;
    width:100%;
}
.qr-file-input{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    clip-path:inset(50%)!important;
    white-space:nowrap!important;
    border:0!important;
}
.qr-file-button{
    display:flex;
    justify-content:center;
    align-items:center;
    width:100%;
    min-height:44px;
    margin:0;
    white-space:normal;
    cursor:pointer;
}
.qr-file-name{
    display:block;
    width:100%;
    min-height:38px;
    padding:9px 10px;
    border:1px solid #ddd0c8;
    border-radius:9px;
    background:#fff;
    color:var(--muted);
    font-size:.84rem;
    line-height:1.3;
    text-align:left;
    overflow-wrap:anywhere;
    word-break:break-word;
}
.qr-file-name.has-file{
    border-color:#9ed7bb;
    background:#effaf4;
    color:var(--success);
    font-weight:700;
}
.qr-file-name.has-error{
    border-color:#efb0b0;
    background:#fff2f2;
    color:#8b2828;
    font-weight:700;
}


/* ==================================================================
   IDENTIDAD VISUAL CAIROCORP 2.4.0
   ================================================================== */
:root{
  --primary:#0f6fff;--primary-dark:#084db7;--cream:#f5f8fc;--ink:#0d1b2a;--muted:#5a7090;
  --border:#dce5f0;--success:#16845b;--danger:#c43d4b;--cc-blue-deep:#0a1628;--cc-blue-mid:#0d2a52;
  --cc-blue-brand:#0f6fff;--cc-blue-light:#3a9bff;--cc-blue-glow:#5eb8ff;--cc-charcoal:#1c2736;--cc-white:#fff;
  --font-heading:'Orbitron',sans-serif;--font-body:'Inter',sans-serif;
}
body{font-family:var(--font-body);background:#f5f8fc;color:var(--ink)}
.btn-cairo{font-family:var(--font-heading);font-size:.7rem;letter-spacing:.08em;font-weight:700;padding:.8rem 1.45rem;border-radius:999px;border:1px solid transparent;display:inline-flex;align-items:center;gap:.55rem;transition:.3s ease;text-decoration:none;cursor:pointer}
.btn-cairo-lg{padding:1rem 1.8rem}.btn-cairo-primary{background:linear-gradient(135deg,var(--cc-blue-brand),var(--cc-blue-light));color:#fff;box-shadow:0 10px 30px rgba(15,111,255,.28)}.btn-cairo-primary:hover{color:#fff;transform:translateY(-2px);box-shadow:0 15px 40px rgba(15,111,255,.4)}
.btn-cairo-outline{border-color:rgba(94,184,255,.55);color:#dfeeff;background:rgba(255,255,255,.03)}.btn-cairo-outline:hover{color:#fff;background:rgba(15,111,255,.18);border-color:var(--cc-blue-light)}
.btn-cairo-ghost{border-color:rgba(255,255,255,.22);color:#fff;background:rgba(255,255,255,.05)}.btn-cairo-ghost:hover{color:#fff;background:rgba(255,255,255,.12);transform:translateY(-2px)}
.btn-cairo-link{color:var(--primary);background:transparent}.btn-cairo-link:hover{color:var(--primary-dark)}
.cairo-public-nav{position:sticky;top:0;z-index:1100;background:rgba(10,22,40,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(15,111,255,.18)}
.cairo-public-nav-inner{max-width:1420px;min-height:76px;margin:auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:18px}.cairo-brand{display:flex;align-items:center;gap:12px;color:#fff}.cairo-brand:hover{color:#fff}.cairo-brand img{width:44px;height:44px;object-fit:contain}.cairo-brand span{display:flex;flex-direction:column}.cairo-brand strong{font-family:var(--font-heading);font-size:.92rem;letter-spacing:.06em}.cairo-brand small{color:var(--cc-blue-glow);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase}.cairo-public-actions{display:flex;align-items:center;gap:10px}
.cairo-hero{position:relative;min-height:calc(100vh - 76px);display:flex;align-items:center;overflow:hidden;background:var(--cc-blue-deep);color:#fff}.cairo-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(15,111,255,.065) 1px,transparent 1px),linear-gradient(90deg,rgba(15,111,255,.065) 1px,transparent 1px);background-size:54px 54px}.cairo-hero-glow{position:absolute;inset:0;background:radial-gradient(circle at 75% 45%,rgba(15,111,255,.25),transparent 35%),radial-gradient(circle at 15% 80%,rgba(58,155,255,.12),transparent 30%)}.cairo-hero-content{position:relative;z-index:2;padding-top:70px;padding-bottom:70px}.cairo-kicker{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(15,111,255,.1);border:1px solid rgba(94,184,255,.3);font-family:var(--font-heading);font-size:.64rem;letter-spacing:.12em;color:var(--cc-blue-glow);text-transform:uppercase}.cairo-hero h1,.cairo-auth-copy h1{font-family:var(--font-heading);font-weight:800;line-height:1.08}.cairo-hero h1{font-size:clamp(2.65rem,6vw,5.4rem);margin:24px 0}.cairo-hero h1 span{display:block;background:linear-gradient(90deg,#fff,var(--cc-blue-glow));-webkit-background-clip:text;background-clip:text;color:transparent}.cairo-hero p{max-width:760px;color:#b9c8dc;font-size:1.12rem;line-height:1.75}.cairo-trust-row{display:flex;flex-wrap:wrap;gap:22px;margin-top:32px;color:#a9bfd9;font-size:.86rem}.cairo-trust-row i{color:var(--cc-blue-glow);margin-right:6px}.cairo-hero-device{max-width:420px;margin:auto;border-radius:32px;padding:12px;background:linear-gradient(145deg,#1a3153,#07111f);box-shadow:0 35px 90px rgba(0,0,0,.45),0 0 60px rgba(15,111,255,.22);transform:rotate(2deg)}.cairo-device-bar{height:34px;display:flex;align-items:center;gap:6px;padding:0 12px}.cairo-device-bar span{width:8px;height:8px;border-radius:50%;background:#4f6b8c}.cairo-device-screen{min-height:500px;border-radius:24px;padding:44px 28px;text-align:center;background:linear-gradient(rgba(255,255,255,.95),rgba(246,249,253,.96)),radial-gradient(circle at top,#bfe1ff,transparent);color:#14233a;display:flex;flex-direction:column;align-items:center;justify-content:center}.cairo-device-logo img{width:58px;height:58px;object-fit:contain}.cairo-device-screen small{margin-top:22px;text-transform:uppercase;letter-spacing:.3em;color:#607998}.cairo-device-screen h2{font-family:Georgia,serif;font-size:2.35rem;margin:16px 0 8px}.cairo-device-screen p{font-size:.78rem;color:#607998;letter-spacing:.2em}.cairo-device-line{width:50px;height:3px;background:var(--primary);margin:20px auto}.cairo-device-screen button{border:0;border-radius:999px;padding:12px 20px;background:var(--primary);color:#fff;font-size:.68rem;letter-spacing:.14em}
.cairo-section{padding:90px 0}.cairo-section-dark{background:linear-gradient(155deg,#0b1a30,#0a1628);color:#fff}.cairo-section-head{max-width:820px;margin:0 auto 48px}.cairo-section-label{font-family:var(--font-heading);font-size:.66rem;letter-spacing:.24em;color:var(--primary);font-weight:700}.cairo-section-head h2,.cairo-cta h2{font-family:var(--font-heading);font-weight:700;font-size:clamp(1.8rem,4vw,3rem);margin:12px 0 14px}.cairo-section-head p{color:var(--muted);font-size:1.04rem}.cairo-section-dark .cairo-section-head p{color:#9fb2ca}.cairo-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.cairo-feature-card{padding:28px;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 16px 45px rgba(17,44,77,.07);transition:.3s ease}.cairo-feature-card:hover{transform:translateY(-6px);border-color:rgba(15,111,255,.35);box-shadow:0 22px 55px rgba(15,111,255,.12)}.cairo-feature-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--primary),var(--cc-blue-light));box-shadow:0 10px 25px rgba(15,111,255,.25)}.cairo-feature-card h3{font-family:var(--font-heading);font-size:.92rem;margin:22px 0 12px}.cairo-feature-card p{color:var(--muted);line-height:1.7;margin:0}.cairo-template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:26px}.cairo-template-card{border:1px solid rgba(94,184,255,.18);border-radius:20px;overflow:hidden;background:rgba(255,255,255,.055);box-shadow:0 18px 50px rgba(0,0,0,.2);transition:.3s}.cairo-template-card:hover{transform:translateY(-7px);border-color:rgba(94,184,255,.5)}.cairo-template-image{position:relative;display:block;overflow:hidden}.cairo-template-image img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:.45s}.cairo-template-card:hover img{transform:scale(1.035)}.cairo-template-image span{position:absolute;left:16px;right:16px;bottom:16px;padding:11px;border-radius:12px;text-align:center;color:#fff;background:rgba(10,22,40,.86);font-family:var(--font-heading);font-size:.65rem;letter-spacing:.08em}.cairo-template-body{padding:22px}.cairo-template-body h3{font-family:var(--font-heading);font-size:1rem}.cairo-template-body p{color:#9fb2ca;min-height:50px}.cairo-template-meta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.08);padding-top:15px}.cairo-template-meta strong{color:#fff;font-size:1.2rem}.cairo-template-meta a{color:var(--cc-blue-glow);font-weight:700}.cairo-cta{padding:80px 0;background:#eef5fd}.cairo-cta-card{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:44px;border-radius:24px;background:#fff;border:1px solid var(--border);box-shadow:0 20px 60px rgba(13,42,82,.09)}.cairo-cta-card p{color:var(--muted);margin:0}.cairo-footer{background:#07111f;color:#9fb2ca;border-top:1px solid rgba(15,111,255,.18)}.cairo-footer-inner{max-width:1420px;margin:auto;padding:28px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px}.cairo-footer-brand{display:flex;align-items:center;gap:12px}.cairo-footer-brand img{width:44px}.cairo-footer-brand div{display:flex;flex-direction:column}.cairo-footer-brand strong{font-family:var(--font-heading);font-size:.78rem;color:#fff}.cairo-footer-brand span{font-size:.76rem}.cairo-footer-links{display:flex;gap:18px;flex-wrap:wrap}.cairo-footer-links a{color:#b7c9df;font-size:.85rem}.cairo-footer-links a:hover{color:var(--cc-blue-glow)}
.cairo-auth-page{min-height:100vh;background:var(--cc-blue-deep)}.cairo-auth-shell{position:relative;min-height:calc(100vh - 76px);display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,600px);align-items:center;gap:60px;max-width:1350px;margin:auto;padding:60px 30px}.cairo-auth-shell:before{content:'';position:fixed;inset:76px 0 0;background-image:linear-gradient(rgba(15,111,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(15,111,255,.045) 1px,transparent 1px);background-size:52px 52px;pointer-events:none}.cairo-auth-copy,.cairo-auth-card-wrap{position:relative;z-index:1}.cairo-auth-copy{color:#fff}.cairo-auth-copy h1{font-size:clamp(2.2rem,5vw,4.5rem);margin:24px 0 18px}.cairo-auth-copy p{color:#a9bdd6;max-width:650px;font-size:1.04rem;line-height:1.75}.cairo-auth-benefits{list-style:none;padding:0;margin:28px 0;display:grid;gap:12px;color:#c5d5e8}.cairo-auth-benefits i{color:var(--cc-blue-glow);margin-right:8px}.cairo-step-list{display:grid;gap:12px;margin-top:28px}.cairo-step-list span{display:flex;align-items:center;gap:12px;color:#c5d5e8}.cairo-step-list b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(15,111,255,.18);color:var(--cc-blue-glow);font-family:var(--font-heading)}.cairo-auth-card{background:#fff;border-radius:24px;padding:32px;border:1px solid rgba(94,184,255,.18);box-shadow:0 30px 80px rgba(0,0,0,.35)}.cairo-auth-card-wide{max-width:700px}.cairo-auth-card-head{display:flex;align-items:center;gap:14px;padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--border)}.cairo-auth-card-head img{width:52px;height:52px;object-fit:contain}.cairo-auth-card-head small{font-family:var(--font-heading);font-size:.6rem;letter-spacing:.16em;color:var(--primary)}.cairo-auth-card-head h2{font-family:var(--font-heading);font-size:1.15rem;margin:5px 0 0}.cairo-input-icon{position:relative}.cairo-input-icon>i{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#7e93ad;z-index:2}.cairo-input-icon .form-control{padding-left:43px}.cairo-input-icon.password-field .password-toggle{right:8px;left:auto}.cairo-auth-links{display:flex;justify-content:space-between;gap:15px;margin-top:20px;font-size:.88rem}.cairo-auth-links a{color:var(--primary);font-weight:700}
.cairo-dashboard-body{background:#f2f6fb}.cairo-topbar{background:rgba(10,22,40,.98);border-bottom:1px solid rgba(15,111,255,.25);color:#fff}.cairo-dashboard-brand{display:flex;align-items:center;gap:10px;color:#fff!important;font-family:var(--font-heading);font-size:.78rem;letter-spacing:.05em}.cairo-dashboard-brand img{width:38px;height:38px;object-fit:contain}.cairo-dashboard-brand small{color:var(--cc-blue-glow);font-size:.58rem;margin-left:4px}.cairo-user-chip{display:flex;align-items:center;gap:7px;color:#b7c9df;font-size:.82rem}.cairo-logout{border-color:#ff7d87;color:#ff9aa2}.cairo-sidebar{background:linear-gradient(180deg,#0a1628,#081321);border-right:1px solid rgba(15,111,255,.18)}.cairo-sidebar-label{padding:6px 12px 14px;color:#53708f;font-family:var(--font-heading);font-size:.55rem;letter-spacing:.15em}.cairo-sidebar a{color:#b9cbe0;border:1px solid transparent}.cairo-sidebar a:hover{background:rgba(15,111,255,.1);border-color:rgba(15,111,255,.15);color:#fff}.cairo-sidebar a.active{background:linear-gradient(90deg,rgba(15,111,255,.28),rgba(15,111,255,.08));border-color:rgba(94,184,255,.2);color:#fff;box-shadow:inset 3px 0 0 var(--cc-blue-light)}.cairo-main{background:radial-gradient(circle at top right,rgba(15,111,255,.06),transparent 30%),#f4f7fb}.page-head h1{font-family:var(--font-heading);font-size:1.75rem}.card-soft,.stat{border-color:var(--border);box-shadow:0 10px 35px rgba(13,42,82,.06)}.form-control,.form-select{border-color:#cfdaea}.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(15,111,255,.12)}.btn-primary{background:var(--primary);border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-outline-primary{color:var(--primary);border-color:var(--primary)}.btn-outline-primary:hover{background:var(--primary);border-color:var(--primary)}.progress-thin span{background:linear-gradient(90deg,var(--primary),var(--cc-blue-light))}.session-timeout-icon{background:rgba(15,111,255,.1);color:var(--primary)}.session-countdown{color:var(--primary)}
@media(max-width:1000px){.cairo-feature-grid{grid-template-columns:repeat(2,1fr)}.cairo-auth-shell{grid-template-columns:1fr;gap:30px}.cairo-auth-copy{text-align:center}.cairo-auth-copy p{margin-left:auto;margin-right:auto}.cairo-auth-benefits,.cairo-step-list{max-width:620px;margin-left:auto;margin-right:auto;text-align:left}.cairo-user-chip{display:none}}
@media(max-width:760px){.cairo-public-nav-inner{min-height:68px;padding:0 14px}.cairo-brand strong{font-size:.72rem}.cairo-brand small{display:none}.cairo-public-actions .btn-cairo-outline:first-child{display:none}.btn-cairo{padding:.7rem 1rem;font-size:.6rem}.cairo-hero-content{padding-top:45px;padding-bottom:45px}.cairo-hero{text-align:center}.cairo-hero p{margin:auto}.cairo-trust-row{justify-content:center}.cairo-hero-device{margin-top:30px;max-width:340px}.cairo-device-screen{min-height:420px}.cairo-feature-grid{grid-template-columns:1fr}.cairo-section{padding:65px 0}.cairo-cta-card{flex-direction:column;text-align:center;padding:30px 22px}.cairo-footer-inner{flex-direction:column;text-align:center}.cairo-auth-shell{padding:35px 16px}.cairo-auth-copy h1{font-size:2.2rem}.cairo-auth-card{padding:24px 18px}.cairo-auth-register .grid-2{grid-template-columns:1fr}.cairo-auth-links{flex-direction:column;text-align:center}.cairo-dashboard-brand span{display:none}.topbar-inner{padding:0 10px}.cairo-topbar .btn-outline-light{font-size:0}.cairo-topbar .btn-outline-light i{font-size:.95rem;margin:0!important}}

/* ================================================================
   CATÁLOGO, DEMOSTRACIÓN, LEGALES Y ERRORES - CAIROCORP 2.4.0
   ================================================================ */
.cairo-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-heading);font-size:.62rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:var(--primary)}
.cairo-catalog-page{background:#f3f7fc}.cairo-catalog-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#07111f,#0a1f3b 65%,#0d2a52);color:#fff;border-bottom:1px solid rgba(94,184,255,.18)}.cairo-catalog-hero:before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(15,111,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(15,111,255,.06) 1px,transparent 1px);background-size:48px 48px}.cairo-catalog-hero-inner{position:relative;z-index:1;min-height:330px;display:flex;align-items:center;justify-content:space-between;gap:40px;padding-top:55px;padding-bottom:55px}.cairo-catalog-hero h1{max-width:850px;font-family:var(--font-heading);font-size:clamp(2rem,5vw,4.2rem);line-height:1.08;margin:18px 0}.cairo-catalog-hero p{max-width:800px;color:#b6c9df;font-size:1.05rem;line-height:1.8}.cairo-catalog-secure{display:flex;align-items:center;gap:14px;min-width:270px;padding:20px;border:1px solid rgba(94,184,255,.25);border-radius:18px;background:rgba(255,255,255,.06);backdrop-filter:blur(12px)}.cairo-catalog-secure>i{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;color:#fff;background:linear-gradient(145deg,var(--primary),var(--cc-blue-light))}.cairo-catalog-secure span{display:flex;flex-direction:column}.cairo-catalog-secure strong{font-family:var(--font-heading);font-size:.78rem}.cairo-catalog-secure small{color:#9fb2ca;margin-top:4px}.cairo-catalog-main{min-height:55vh}.cairo-template-grid-light{padding:0}.cairo-template-card-light{background:#fff;border-color:#d9e5f2;color:var(--ink);box-shadow:0 18px 45px rgba(13,42,82,.08)}.cairo-template-card-light:hover{border-color:rgba(15,111,255,.42);box-shadow:0 25px 58px rgba(15,111,255,.13)}.cairo-template-card-light.selected{border:2px solid #22a96b;box-shadow:0 18px 48px rgba(34,169,107,.14)}.cairo-template-card-light .cairo-template-body p{color:var(--muted);min-height:70px;line-height:1.7}.cairo-template-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.cairo-template-price{text-align:right;white-space:nowrap;font-size:1.45rem;font-weight:800;color:var(--cc-blue-deep)}.cairo-template-price small{font-size:.75rem;margin-right:3px}.cairo-template-price span{display:block;color:var(--muted);font-size:.68rem;font-weight:600}.cairo-template-actions{display:grid;gap:10px;margin-top:20px}.cairo-premium-badge{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:linear-gradient(135deg,#ffc23d,#f08b13);color:#442500;font-size:.7rem;box-shadow:0 8px 20px rgba(240,139,19,.35)}.cairo-alert{border-radius:14px;border-width:1px}
.cairo-demo-page{background:#eef4fb}.cairo-demo-main{min-height:calc(100vh - 76px);padding:46px 0 75px;background:radial-gradient(circle at 85% 5%,rgba(15,111,255,.12),transparent 28%),#eef4fb}.cairo-back-link{display:inline-flex;align-items:center;gap:9px;margin-bottom:24px;color:var(--cc-blue-mid);font-weight:700}.cairo-demo-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr);gap:28px;align-items:start}.cairo-demo-frame{overflow:hidden;border:1px solid #d3e0ef;border-radius:22px;background:#fff;box-shadow:0 24px 65px rgba(13,42,82,.14)}.cairo-demo-toolbar{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 18px;border-bottom:1px solid #e4ebf3;background:#f8fbff}.cairo-demo-toolbar>span{display:flex;gap:7px}.cairo-demo-toolbar>span i{width:10px;height:10px;border-radius:50%;background:#d8e2ee}.cairo-demo-toolbar>span i:first-child{background:#ff7f79}.cairo-demo-toolbar>span i:nth-child(2){background:#ffca64}.cairo-demo-toolbar>span i:nth-child(3){background:#69d093}.cairo-demo-toolbar small{color:#60758d;font-weight:700}.cairo-demo-toolbar b{display:flex;gap:12px;color:#7190b1}.cairo-demo-canvas{padding:24px;display:grid;place-items:center;min-height:600px;background:linear-gradient(145deg,#eaf1f9,#f8fbff)}.cairo-demo-canvas img{max-width:100%;max-height:78vh;object-fit:contain;border-radius:16px;box-shadow:0 16px 45px rgba(17,44,77,.14)}.cairo-demo-info{position:sticky;top:96px;padding:30px;border-radius:22px;background:#fff;border:1px solid #d5e2f0;box-shadow:0 20px 55px rgba(13,42,82,.1)}.cairo-demo-info h1{font-family:var(--font-heading);font-size:1.8rem;line-height:1.25;margin:12px 0}.cairo-demo-info>p{color:var(--muted);line-height:1.75}.cairo-premium-pill{display:inline-flex;align-items:center;gap:7px;margin-bottom:14px;padding:7px 11px;border-radius:999px;background:#fff5d8;color:#855c00;font-weight:800;font-size:.75rem}.cairo-demo-price{display:flex;flex-direction:column;padding:18px 0;margin:20px 0;border-top:1px solid #e7edf5;border-bottom:1px solid #e7edf5}.cairo-demo-price strong{font-size:2rem;color:var(--cc-blue-deep)}.cairo-demo-price span{color:var(--muted);font-size:.82rem}.cairo-demo-benefits{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:11px}.cairo-demo-benefits li{display:flex;align-items:flex-start;gap:10px;color:#50657c;font-size:.9rem}.cairo-demo-benefits i{margin-top:3px;color:var(--primary)}
.cairo-legal-page{background:#eff4fa}.cairo-legal-main{padding:55px 0 80px;background:radial-gradient(circle at 90% 0,rgba(15,111,255,.1),transparent 30%),#eff4fa}.cairo-legal-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:28px;align-items:start}.cairo-legal-index{position:sticky;top:96px;padding:24px;border-radius:18px;color:#fff;background:linear-gradient(160deg,#0a1628,#0d2a52);box-shadow:0 18px 48px rgba(10,22,40,.2)}.cairo-legal-index h2{font-family:var(--font-heading);font-size:1rem;margin:15px 0 8px}.cairo-legal-index>p{color:#8fb0d4;font-size:.78rem}.cairo-legal-index nav{display:grid;margin-top:18px}.cairo-legal-index nav a{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08);color:#b9cbe0;font-size:.82rem}.cairo-legal-index nav a:hover{color:var(--cc-blue-glow)}.cairo-legal-document{padding:42px 46px;border:1px solid #d9e4ef;border-radius:22px;background:#fff;box-shadow:0 20px 60px rgba(13,42,82,.09)}.cairo-legal-document>header{padding-bottom:26px;margin-bottom:28px;border-bottom:1px solid #e6edf5}.cairo-legal-document h1{font-family:var(--font-heading);font-size:clamp(1.65rem,4vw,2.65rem);line-height:1.25}.cairo-legal-document>header p{color:var(--muted)}.cairo-legal-version{display:inline-flex;padding:6px 10px;margin-bottom:14px;border-radius:999px;background:#eaf3ff;color:var(--primary);font-size:.72rem;font-weight:800}.cairo-legal-document section{scroll-margin-top:100px;padding:4px 0 24px}.cairo-legal-document section+section{padding-top:25px;border-top:1px solid #edf1f6}.cairo-legal-document h2{font-family:var(--font-heading);font-size:1.02rem;color:var(--cc-blue-mid);margin-bottom:13px}.cairo-legal-document p,.cairo-legal-document li{color:#4d6074;line-height:1.8}.cairo-legal-document a{color:var(--primary);font-weight:700}
.cairo-error-page{background:#07111f}.cairo-error-main{position:relative;min-height:calc(100vh - 76px);display:grid;place-items:center;padding:50px 20px;background-image:radial-gradient(circle at center,rgba(15,111,255,.16),transparent 38%),linear-gradient(rgba(15,111,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(15,111,255,.04) 1px,transparent 1px);background-size:auto,48px 48px,48px 48px}.cairo-error-card{position:relative;max-width:720px;width:100%;padding:48px;text-align:center;border:1px solid rgba(94,184,255,.22);border-radius:24px;background:rgba(255,255,255,.96);box-shadow:0 30px 90px rgba(0,0,0,.45)}.cairo-error-card>img{width:74px;height:74px;object-fit:contain;margin-bottom:18px}.cairo-error-code{position:absolute;right:24px;top:10px;font-family:var(--font-heading);font-size:6.5rem;font-weight:900;color:rgba(15,111,255,.07);line-height:1}.cairo-error-card h1{font-family:var(--font-heading);font-size:1.8rem;margin:12px 0}.cairo-error-card p{max-width:560px;margin:0 auto 25px;color:var(--muted);line-height:1.75}
@media(max-width:980px){.cairo-catalog-hero-inner{flex-direction:column;align-items:flex-start}.cairo-catalog-secure{width:100%}.cairo-demo-layout{grid-template-columns:1fr}.cairo-demo-info{position:static}.cairo-legal-layout{grid-template-columns:1fr}.cairo-legal-index{position:static}.cairo-legal-index nav{grid-template-columns:repeat(2,1fr);column-gap:18px}}
@media(max-width:680px){.cairo-catalog-hero-inner{min-height:280px}.cairo-catalog-hero h1{font-size:2.05rem}.cairo-template-title-row{flex-direction:column}.cairo-template-price{text-align:left}.cairo-demo-main{padding-top:25px}.cairo-demo-canvas{min-height:390px;padding:12px}.cairo-demo-info{padding:23px 18px}.cairo-legal-main{padding-top:28px}.cairo-legal-document{padding:26px 20px}.cairo-legal-index nav{grid-template-columns:1fr}.cairo-error-card{padding:38px 20px}.cairo-error-code{font-size:4.5rem}}
.cairo-privacy-request{border:1px solid #d8e4f1;border-radius:14px;padding:14px 16px;background:#f8fbff}.cairo-privacy-request summary{cursor:pointer;color:var(--cc-blue-mid);font-weight:800}.badge-state.en_revision{background:#dcecff;color:#185a91}.badge-state.completada{background:#dff3e9;color:#17663e}.badge-state.rechazada{background:#fde1e1;color:#8b2828}

/* ================================================================
   ADMINISTRACIÓN INTERACTIVA DE PLANTILLAS - 2.4.1
   ================================================================ */
.template-admin-search{
    position:relative;
    z-index:20;
    margin-bottom:22px;
    border-color:#d6e3f1;
    background:linear-gradient(135deg,#fff,#f8fbff);
}
.template-admin-search-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:15px;
}
.template-admin-search-head h2{
    margin:0 0 4px;
    font-family:var(--font-heading);
    font-size:1rem;
    color:var(--cc-blue-deep);
}
.template-admin-search-head p{
    margin:0;
    color:var(--muted);
    font-size:.88rem;
}
.template-result-count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:105px;
    padding:7px 12px;
    border:1px solid #cae0f7;
    border-radius:999px;
    background:#edf6ff;
    color:var(--cc-blue-mid);
    font-size:.78rem;
    font-weight:800;
    white-space:nowrap;
}
.template-search-control{
    position:relative;
}
.template-search-control>i{
    position:absolute;
    left:16px;
    top:50%;
    z-index:2;
    transform:translateY(-50%);
    color:#6f8da9;
}
.template-search-control>.form-control{
    min-height:52px;
    padding-left:46px;
    padding-right:55px;
    border-color:#bcd3ea;
    border-radius:14px;
    background:#fff;
}
.template-search-control>.btn{
    position:absolute;
    right:7px;
    top:7px;
    z-index:3;
    width:38px;
    height:38px;
    padding:0;
    border:0;
    border-radius:10px;
    color:#6b8198;
}
.template-search-results{
    position:absolute;
    left:0;
    right:0;
    top:calc(100% + 8px);
    overflow:hidden;
    max-height:390px;
    overflow-y:auto;
    border:1px solid #c9d9ea;
    border-radius:15px;
    background:#fff;
    box-shadow:0 22px 60px rgba(10,32,58,.18);
}
.template-search-result{
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    align-items:center;
    gap:12px;
    width:100%;
    padding:10px 13px;
    border:0;
    border-bottom:1px solid #edf2f7;
    background:#fff;
    text-align:left;
    cursor:pointer;
}
.template-search-result:last-child{
    border-bottom:0;
}
.template-search-result:hover,
.template-search-result:focus-visible{
    outline:0;
    background:#edf6ff;
}
.template-search-result img{
    width:58px;
    height:58px;
    object-fit:cover;
    border:1px solid #dce7f2;
    border-radius:10px;
    background:#f7f9fc;
}
.template-search-result span{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:4px;
}
.template-search-result strong{
    overflow:hidden;
    color:var(--cc-blue-deep);
    font-size:.92rem;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.template-search-result small{
    overflow:hidden;
    color:var(--muted);
    font-size:.75rem;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.template-admin-layout{
    display:grid;
    grid-template-columns:minmax(390px,500px) minmax(0,1fr);
    gap:20px;
    align-items:start;
}
.template-editor-card{
    position:sticky;
    top:88px;
    scroll-margin-top:94px;
    border-color:#d6e3f1;
}
.template-editor-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
    padding-bottom:17px;
    margin-bottom:17px;
    border-bottom:1px solid #e7eef6;
}
.template-editor-heading h2{
    margin:7px 0 5px;
    font-family:var(--font-heading);
    font-size:1.15rem;
    line-height:1.35;
    color:var(--cc-blue-deep);
}
.template-editor-heading p{
    margin:0;
    color:var(--muted);
    font-size:.82rem;
    line-height:1.55;
}
.template-editor-mode{
    display:inline-flex;
    align-items:center;
    padding:6px 9px;
    border-radius:999px;
    font-size:.68rem;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.template-editor-mode.is-new{
    background:#e8f3ff;
    color:#145f9c;
}
.template-editor-mode.is-editing{
    background:#dcf5e9;
    color:#176a45;
}
.template-editor-preview{
    display:grid;
    grid-template-columns:112px minmax(0,1fr);
    align-items:center;
    gap:15px;
    padding:12px;
    border:1px solid #dbe6f0;
    border-radius:14px;
    background:#f8fbff;
}
.template-editor-preview img{
    width:112px;
    height:112px;
    object-fit:cover;
    border:1px solid #d3e0ec;
    border-radius:11px;
    background:#fff;
}
.template-editor-preview>div{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:5px;
}
.template-editor-preview strong{
    color:var(--cc-blue-deep);
    font-size:.88rem;
}
.template-editor-preview span{
    color:var(--muted);
    font-size:.76rem;
    line-height:1.5;
}
.template-premium-check{
    display:flex;
    min-height:48px;
    align-items:center;
    gap:7px;
    padding:12px 14px;
    margin-top:27px;
    border:1px solid #f1d698;
    border-radius:11px;
    background:#fff9e9;
}
.template-premium-check .form-check-input{
    margin:0;
}
.template-editor-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    padding-top:18px;
}
.template-list-panel{
    min-width:0;
}
.template-list-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:18px;
}
.template-admin-card{
    overflow:hidden;
    padding:0;
    border-color:#d6e3f1;
    transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.template-admin-card:hover{
    transform:translateY(-3px);
    border-color:#8fc2f3;
    box-shadow:0 20px 48px rgba(15,70,125,.13);
}
.template-admin-card.is-selected{
    border:2px solid var(--primary);
    box-shadow:0 20px 52px rgba(15,111,255,.17);
}
.template-admin-card-select{
    position:relative;
    display:block;
    overflow:hidden;
    width:100%;
    height:220px;
    padding:0;
    border:0;
    background:#f7f9fc;
    cursor:pointer;
}
.template-admin-card-select img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .25s ease;
}
.template-admin-card-select:hover img{
    transform:scale(1.025);
}
.template-card-overlay{
    position:absolute;
    inset:auto 12px 12px 12px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:10px 12px;
    border-radius:10px;
    background:rgba(7,25,45,.88);
    color:#fff;
    font-size:.79rem;
    font-weight:800;
    opacity:0;
    transform:translateY(5px);
    transition:opacity .2s ease,transform .2s ease;
}
.template-admin-card-select:hover .template-card-overlay,
.template-admin-card-select:focus-visible .template-card-overlay{
    opacity:1;
    transform:translateY(0);
}
.template-admin-card-body{
    padding:17px;
}
.template-card-title-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}
.template-card-title-row>div{
    min-width:0;
}
.template-card-title-row h3{
    margin:4px 0 0;
    color:var(--cc-blue-deep);
    font-size:1.03rem;
    line-height:1.35;
}
.template-card-title-row>strong{
    color:var(--primary);
    font-size:1rem;
    white-space:nowrap;
}
.template-card-code{
    color:#4e78a0;
    font-family:var(--font-heading);
    font-size:.58rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.template-admin-card-body>p{
    min-height:58px;
    margin:12px 0;
    color:var(--muted);
    font-size:.79rem;
    line-height:1.55;
}
.template-card-meta{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-bottom:14px;
}
.template-card-meta span{
    padding:5px 7px;
    border-radius:7px;
    background:#eff4f9;
    color:#546d85;
    font-size:.68rem;
    font-weight:700;
}
.template-card-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding-top:13px;
    border-top:1px solid #e8eef5;
}
.template-card-footer>div{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}
.template-empty-result{
    display:grid;
    place-items:center;
    min-height:260px;
    text-align:center;
    border-style:dashed;
}
.template-empty-result>i{
    font-size:2rem;
    color:#78a4cd;
}
.template-empty-result h3{
    margin:12px 0 4px;
    color:var(--cc-blue-deep);
}
.template-empty-result p{
    margin:0;
    color:var(--muted);
}
@media(max-width:1180px){
    .template-admin-layout{
        grid-template-columns:1fr;
    }
    .template-editor-card{
        position:static;
    }
}
@media(max-width:680px){
    .template-admin-search-head,
    .template-editor-heading,
    .template-card-footer{
        align-items:stretch;
        flex-direction:column;
    }
    .template-result-count{
        align-self:flex-start;
    }
    .template-editor-preview{
        grid-template-columns:86px minmax(0,1fr);
    }
    .template-editor-preview img{
        width:86px;
        height:86px;
    }
    .template-list-grid{
        grid-template-columns:1fr;
    }
    .template-admin-card-select{
        height:260px;
    }
}


/* ================================================================
   PAGINACIÓN ADMINISTRATIVA DE PLANTILLAS - 10 POR PÁGINA
   ================================================================ */
.template-filter-form{
    display:grid;
    grid-template-columns:minmax(280px,1fr) 190px 170px auto auto;
    gap:12px;
    align-items:center;
}
.template-filter-form .template-search-control{
    min-width:0;
}
.template-pagination-summary{
    margin-top:18px;
    color:var(--muted);
    font-size:.82rem;
    font-weight:700;
    text-align:center;
}
.template-pagination{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin-top:14px;
}
.page-link-custom{
    display:inline-flex;
    min-width:38px;
    height:38px;
    align-items:center;
    justify-content:center;
    padding:0 11px;
    border:1px solid #bfd2e5;
    border-radius:9px;
    background:#fff;
    color:var(--cc-blue-deep);
    font-size:.8rem;
    font-weight:800;
    text-decoration:none;
    transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;
}
.page-link-custom:hover{
    transform:translateY(-1px);
    border-color:var(--primary);
    color:var(--primary);
}
.page-link-custom.active{
    border-color:var(--primary);
    background:var(--primary);
    color:#fff;
    box-shadow:0 8px 20px rgba(15,111,255,.18);
}
.page-ellipsis{
    color:var(--muted);
    font-weight:800;
}
.template-pagination .disabled{
    pointer-events:none;
    opacity:.5;
}
@media(max-width:1100px){
    .template-filter-form{
        grid-template-columns:minmax(0,1fr) 1fr 1fr;
    }
    .template-filter-form .template-search-control{
        grid-column:1/-1;
    }
}
@media(max-width:680px){
    .template-filter-form{
        grid-template-columns:1fr;
    }
    .template-filter-form .template-search-control{
        grid-column:auto;
    }
    .template-filter-form .btn,
    .template-filter-form .form-select{
        width:100%;
    }
    .template-pagination{
        gap:6px;
    }
    .template-pagination>.btn{
        width:100%;
    }
}
.guest-access-code{display:inline-flex;align-items:center;gap:.55rem;padding:.45rem .7rem;border:1px solid rgba(15,111,255,.22);border-radius:10px;background:#f3f8ff}.guest-access-code span{font-size:.75rem;color:#6a7d92;text-transform:uppercase;letter-spacing:.08em}.guest-access-code strong{font-family:Orbitron,monospace;letter-spacing:.12em;color:#0f6fff}.reconfirmation-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}.reconfirmation-stats>div{padding:.85rem;border:1px solid var(--border);border-radius:12px;background:#fff}.reconfirmation-stats strong{display:block;font-size:1.35rem}.reconfirmation-message{white-space:pre-wrap;background:#f7faff;border:1px solid #dce8f5;border-radius:12px;padding:1rem}.guest-check-list{max-height:360px;overflow:auto;border:1px solid var(--border);border-radius:12px;padding:.75rem}.guest-check-list label{display:flex;gap:.65rem;align-items:flex-start;padding:.55rem;border-bottom:1px solid #edf1f5}.guest-check-list label:last-child{border-bottom:0}@media(max-width:900px){.reconfirmation-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ================================================================
   OPCIONES MÚLTIPLES DE REGALO
   ================================================================ */
.gift-admin-layout{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
    gap:20px;
    align-items:start;
}
.gift-option-form,
.gift-options-list{
    min-width:0;
}
.gift-form-heading,
.gift-list-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:20px;
}
.gift-form-heading h2,
.gift-list-heading h2{
    margin:2px 0 0;
    font-size:1.45rem;
}
.gift-step{
    color:var(--primary);
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.gift-unlimited-note{
    display:inline-flex;
    align-items:center;
    gap:8px;
    max-width:230px;
    padding:8px 11px;
    border:1px solid rgba(15,111,255,.2);
    border-radius:999px;
    background:#f3f8ff;
    color:#315b87;
    font-size:.72rem;
    font-weight:750;
    line-height:1.3;
}
.gift-type-help{
    margin:8px 0 16px;
}
.gift-field-panel{
    margin-top:16px;
    padding:18px;
    border:1px solid #d8e5f2;
    border-radius:14px;
    background:linear-gradient(145deg,#fbfdff,#f5f9fd);
}
.gift-field-panel[hidden],
.gift-qr-panel[hidden],
#walletOtherWrap[hidden]{
    display:none!important;
}
.gift-field-title{
    display:flex;
    align-items:flex-start;
    gap:12px;
    margin-bottom:16px;
}
.gift-field-title>i{
    display:grid;
    flex:0 0 42px;
    width:42px;
    height:42px;
    place-items:center;
    border-radius:12px;
    background:#e9f3ff;
    color:var(--primary);
    font-size:1rem;
}
.gift-field-title strong,
.gift-field-title span{
    display:block;
}
.gift-field-title strong{
    color:var(--cc-blue-deep);
    font-size:.95rem;
}
.gift-field-title span{
    margin-top:3px;
    color:var(--muted);
    font-size:.78rem;
    line-height:1.45;
}
.gift-fields-grid{
    gap:14px;
}
.gift-common-fields{
    gap:14px;
    margin-top:16px;
    align-items:start;
}
.gift-qr-panel{
    margin-top:16px;
    padding:14px 16px;
    border:1px dashed #b7cde2;
    border-radius:12px;
    background:#fbfdff;
}
.gift-qr-panel .form-help{
    margin:7px 0 0;
}
.gift-submit{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin-top:18px;
}
.gift-count{
    display:grid;
    min-width:40px;
    height:40px;
    place-items:center;
    border-radius:12px;
    background:var(--primary);
    color:#fff;
    font-family:Orbitron,sans-serif;
    font-size:.86rem;
    font-weight:800;
    box-shadow:0 8px 22px rgba(15,111,255,.2);
}
.gift-option-cards{
    display:grid;
    gap:12px;
}
.gift-option-card{
    display:grid;
    gap:14px;
    padding:16px;
    border:1px solid var(--border);
    border-radius:14px;
    background:#fff;
    box-shadow:0 7px 20px rgba(32,67,99,.06);
}
.gift-option-main{
    display:flex;
    align-items:flex-start;
    gap:14px;
    min-width:0;
}
.gift-option-icon,
.gift-option-qr{
    flex:0 0 76px;
    width:76px;
    height:76px;
    border-radius:12px;
}
.gift-option-icon{
    display:grid;
    place-items:center;
    background:#eef6ff;
    color:var(--primary);
    font-size:1.35rem;
}
.gift-option-qr{
    border:1px solid #d7e2ed;
    background:#fff;
    object-fit:contain;
    padding:4px;
}
.gift-option-copy{
    min-width:0;
    flex:1;
}
.gift-option-copy h3{
    margin:6px 0 7px;
    color:var(--cc-blue-deep);
    font-size:1.02rem;
    overflow-wrap:anywhere;
}
.gift-option-copy p{
    margin:3px 0;
    color:#40556c;
    font-size:.8rem;
    overflow-wrap:anywhere;
}
.gift-option-copy a{
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-top:5px;
    color:var(--primary);
    font-size:.8rem;
    font-weight:800;
    text-decoration:none;
    overflow-wrap:anywhere;
}
.gift-option-copy small{
    display:block;
    margin-top:8px;
    color:var(--muted);
    font-size:.7rem;
}
.gift-option-description{
    margin-top:8px!important;
    padding-top:8px;
    border-top:1px solid #edf2f7;
    line-height:1.45;
}
.gift-type-badge{
    display:inline-flex;
    padding:4px 8px;
    border-radius:999px;
    background:#eef6ff;
    color:#245b91;
    font-size:.66rem;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.gift-option-card--billetera_digital .gift-type-badge,
.gift-option-card--billetera_digital .gift-option-icon{
    background:#f2edff;
    color:#6941c6;
}
.gift-option-card--enlace_externo .gift-type-badge,
.gift-option-card--enlace_externo .gift-option-icon{
    background:#ecf9f1;
    color:#218657;
}
.gift-option-card>form{
    display:flex;
    justify-content:flex-end;
}
.gift-empty{
    display:grid;
    justify-items:center;
    gap:8px;
    padding:42px 20px;
    text-align:center;
}
.gift-empty i{
    color:#91a9bf;
    font-size:2rem;
}
.gift-empty strong{
    color:var(--cc-blue-deep);
}
.gift-empty span{
    color:var(--muted);
    font-size:.82rem;
}
@media(max-width:1040px){
    .gift-admin-layout{
        grid-template-columns:1fr;
    }
}
@media(max-width:680px){
    .gift-form-heading,
    .gift-list-heading{
        align-items:stretch;
        flex-direction:column;
    }
    .gift-unlimited-note{
        max-width:none;
        justify-content:center;
    }
    .gift-common-fields,
    .gift-fields-grid{
        grid-template-columns:1fr;
    }
    .gift-option-main{
        align-items:center;
    }
    .gift-option-icon,
    .gift-option-qr{
        flex-basis:64px;
        width:64px;
        height:64px;
    }
    .gift-option-card>form .btn{
        width:100%;
    }
}

/* CHECK-IN CONTINUO: cámara persistente y retroalimentación sin recargar */
#reader:empty {
    display: none;
}

.checkin-camera-video {
    display: block;
    width: min(100%, 680px);
    max-height: 58vh;
    margin: 0 auto;
    border: 2px solid rgba(13, 110, 253, .28);
    border-radius: 14px;
    background: #0b1724;
    box-shadow: 0 10px 30px rgba(5, 20, 35, .18);
    object-fit: cover;
}

.checkin-row-updated {
    animation: checkinRowUpdated 1.55s ease;
}

@keyframes checkinRowUpdated {
    0%, 100% { background-color: transparent; }
    15%, 70% { background-color: rgba(25, 135, 84, .16); }
}

/* Confirmación visual de acciones AJAX en la lista de invitados. */
@keyframes whatsappRowUpdated {
    0% { background-color: rgba(25, 135, 84, .18); }
    100% { background-color: transparent; }
}

.whatsapp-row-updated > td {
    animation: whatsappRowUpdated 1.5s ease-out;
}


/* Configuración TOTP mediante QR generado localmente. */
.totp-qr-panel {
    display: grid;
    justify-items: center;
    gap: 12px;
    padding: 18px;
    border: 1px solid #dbe7f5;
    border-radius: 18px;
    background: #f8fbff;
    text-align: center;
}

.totp-qr-image {
    display: block;
    width: min(100%, 300px);
    height: auto;
    padding: 10px;
    border: 1px solid #d5e0ed;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(5, 25, 55, .10);
    image-rendering: pixelated;
}

.totp-manual-details > summary {
    cursor: pointer;
}

.invitado-envio-individual .btn {
    white-space: nowrap;
}

@media (max-width: 520px) {
    .totp-qr-panel {
        padding: 12px;
    }

    .totp-qr-image {
        width: min(100%, 260px);
    }
}

/* SISINV 3.0.6 - Buscador de personas confirmadas para distribución de mesas */
.mesa-assignment-card{min-width:0}
.mesa-assignment-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}
.mesa-assignment-heading h4{margin:0 0 5px}
.mesa-assignment-heading p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.45}
.mesa-confirmed-count{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:6px 10px;border-radius:999px;background:#e7f5ee;color:#17663e;font-size:.75rem;font-weight:800}
.mesa-person-fallback.is-enhanced{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.mesa-person-picker{display:grid;gap:10px}
.mesa-search-box{position:relative}
.mesa-search-box>i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.mesa-search-box .form-control{padding-left:38px;padding-right:42px}
.mesa-search-clear{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}
.mesa-search-clear:hover{background:#eef3f8;color:var(--ink)}
.mesa-person-results{max-height:280px;overflow:auto;border:1px solid var(--border);border-radius:12px;background:#fff;padding:6px;scrollbar-width:thin}
.mesa-person-option{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:0;border-radius:10px;background:transparent;color:var(--ink);text-align:left;cursor:pointer;transition:background-color .16s ease,box-shadow .16s ease}
.mesa-person-option:hover{background:var(--cream)}
.mesa-person-option.is-selected{background:rgba(15,111,255,.09);box-shadow:inset 0 0 0 1px rgba(15,111,255,.3)}
.mesa-person-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#eaf3ff;color:var(--primary)}
.mesa-person-icon.is-companion{background:#f3ecff;color:#7048a8}
.mesa-person-copy{display:flex;min-width:0;flex-direction:column}
.mesa-person-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}
.mesa-person-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.75rem;margin-top:2px}
.mesa-person-table{max-width:115px;padding:5px 8px;border-radius:999px;background:#e7f5ee;color:#17663e;font-size:.7rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mesa-person-table.is-unassigned{background:#f1eeec;color:#766a64}
.mesa-search-empty{min-height:118px;display:grid;place-items:center;align-content:center;gap:5px;padding:18px;text-align:center;border:1px dashed var(--border);border-radius:12px;color:var(--muted)}
.mesa-search-empty[hidden]{display:none}
.mesa-search-empty.is-visible{display:grid}
.mesa-search-empty i{font-size:1.35rem;color:var(--primary)}
.mesa-search-empty strong{color:var(--ink)}
.mesa-search-empty span{font-size:.8rem}
.mesa-person-picker.has-error{animation:mesaPickerShake .25s ease 2}
.mesa-person-picker.has-error .mesa-person-results{border-color:var(--danger);box-shadow:0 0 0 .2rem rgba(179,58,58,.1)}
.mesa-selected-person{display:flex;align-items:center;gap:10px;margin-top:13px;padding:11px 12px;border:1px solid #cde8dc;border-radius:11px;background:#f2fbf7}
.mesa-selected-person[hidden]{display:none}
.mesa-selected-icon{width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:#d5f0e3;color:#17663e}
.mesa-selected-person>span:last-child{display:flex;min-width:0;flex-direction:column}
.mesa-selected-person small{color:#4f7663;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;font-weight:800}
.mesa-selected-person strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}
.mesa-selected-person em{color:var(--muted);font-size:.75rem;font-style:normal}
.mesa-assigned-list{list-style:none;padding:0;margin-bottom:0;display:grid;gap:7px}
.mesa-assigned-list li{padding:8px 10px;border-radius:9px;background:var(--cream)}
.mesa-assigned-person{display:flex;flex-direction:column}
.mesa-assigned-person strong{font-size:.86rem}
.mesa-assigned-person small{color:var(--muted);font-size:.72rem}
@keyframes mesaPickerShake{0%,100%{transform:translateX(0)}35%{transform:translateX(-4px)}70%{transform:translateX(4px)}}
@media(max-width:650px){.mesa-assignment-heading{flex-direction:column}.mesa-person-option{grid-template-columns:36px minmax(0,1fr)}.mesa-person-table{grid-column:2;justify-self:start}.mesa-person-results{max-height:330px}}

/* SISINV 3.0.9 - estados claros del módulo de notificaciones */
.badge-state.programado{background:#e9eef7;color:#40536f}.badge-state.en_cola{background:#fff1c7;color:#7c5a00}.badge-state.listo{background:#dcecff;color:#185a91}.badge-state.procesando{background:#eee8ff;color:#5942a8}.badge-state.enviado{background:#dff3e9;color:#17663e}.badge-state.fallido,.badge-state.sin_telefono{background:#fde1e1;color:#8b2828}.notification-help{padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--cream)}.notification-item:last-child{border-bottom:0!important}.notification-message{white-space:normal;overflow-wrap:anywhere}

/* ================================================================
   SISINV 3.0.13 - Respuesta a incidentes y consultas masivas
   ================================================================ */
.incident-global-banner{display:flex;align-items:center;gap:14px;padding:12px 22px;background:#7f1d1d;color:#fff;border-bottom:1px solid rgba(255,255,255,.18)}.incident-global-banner>i{font-size:1.25rem}.incident-global-banner>div{display:flex;flex-direction:column;min-width:0}.incident-global-banner strong{font-weight:800}.incident-global-banner span{font-size:.82rem;color:#fee2e2}.incident-global-banner a{margin-left:auto;color:#fff;border:1px solid rgba(255,255,255,.45);border-radius:9px;padding:6px 10px;font-size:.82rem;font-weight:700}.incident-state-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.04em}.incident-state-pill.is-active{background:#fde1e1;color:#8b2828;border:1px solid #f3bcbc}.incident-state-pill.is-inactive{background:#dff3e9;color:#17663e;border:1px solid #bce0cd}.incident-active-card{display:flex;gap:18px;align-items:flex-start;padding:22px;border-radius:16px;background:linear-gradient(135deg,#7f1d1d,#991b1b);color:#fff;box-shadow:0 16px 40px rgba(127,29,29,.2)}.incident-active-card h3{margin:0 0 8px}.incident-active-card p{margin:0;color:#fee2e2}.incident-active-icon{width:54px;height:54px;display:grid;place-items:center;flex:0 0 auto;border-radius:15px;background:rgba(255,255,255,.14);font-size:1.5rem}.incident-meta{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:14px;font-size:.82rem;color:#fff}.incident-actions-grid .card-soft{height:100%}.incident-checklist{display:grid;gap:9px;margin:16px 0 0;padding-left:20px}.incident-checklist li{line-height:1.45}.incident-confirm{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #f3c5c5;border-radius:12px;background:#fff8f8}.incident-confirm input{margin-top:4px}.incident-warning-box{padding:14px;border:1px solid #f1d58a;border-radius:12px;background:#fff8db;color:#725400}.incident-threshold-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.incident-threshold-grid>div{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--cream)}.incident-threshold-grid strong{font-size:.88rem}.incident-threshold-grid span{font-size:.78rem;color:var(--muted)}@media(max-width:1100px){.incident-threshold-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.incident-global-banner{padding:10px 14px;align-items:flex-start}.incident-global-banner a{display:none}.incident-active-card{flex-direction:column}.incident-threshold-grid{grid-template-columns:1fr}.incident-state-pill{align-self:flex-start}}

/* ================================================================
   SISINV 3.0.15 - Cola de notificaciones sin recargas completas
   ================================================================ */
.notifications-queue{position:relative;transition:opacity .16s ease}.notifications-queue.is-ajax-loading{opacity:.62;pointer-events:none}.notification-item.is-ajax-updated{animation:notificationAjaxUpdated 1.8s ease}.notifications-queue[aria-busy="true"]::after{content:"";position:absolute;top:16px;right:16px;width:1.1rem;height:1.1rem;border:2px solid rgba(24,90,145,.2);border-top-color:#185a91;border-radius:50%;animation:notificationAjaxSpin .75s linear infinite}@keyframes notificationAjaxSpin{to{transform:rotate(360deg)}}@keyframes notificationAjaxUpdated{0%,100%{background:transparent}20%,72%{background:#effaf4}}
.notification-ajax-alerts{position:fixed;top:82px;right:20px;z-index:1080;width:min(420px,calc(100vw - 32px));pointer-events:none}.notification-ajax-alerts .alert{box-shadow:0 14px 34px rgba(31,41,55,.18);pointer-events:auto}@media(max-width:650px){.notification-ajax-alerts{top:74px;right:16px;left:16px;width:auto}}

/* ================================================================
   AJAX del panel: regalos, galería, mesas y buenos deseos (3.0.19)
   ================================================================ */
[data-panel-ajax-root] {
    transition: opacity .18s ease;
}

[data-panel-ajax-root].panel-ajax-refreshing {
    opacity: .58;
    pointer-events: none;
}

form[data-ajax-form="1"][aria-busy="true"] {
    cursor: progress;
}

form[data-ajax-form="1"][aria-busy="true"] .form-control,
form[data-ajax-form="1"][aria-busy="true"] .form-select {
    opacity: .82;
}

#panelAjaxModal [data-panel-modal-icon] {
    min-width: 2rem;
    text-align: center;
}

@media (prefers-reduced-motion: reduce) {
    [data-panel-ajax-root] {
        transition: none;
    }
}

/* ================================================================
   DISTRIBUCIÓN PROFESIONAL DE MESAS — SISINV 3.0.22
   ================================================================ */
.mesas-page-head{margin-bottom:18px}
.mesas-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.mesas-summary-item{display:flex;align-items:center;gap:12px;padding:15px 16px;background:#fff;border:1px solid var(--border);border-radius:15px;box-shadow:0 7px 22px rgba(58,38,30,.04)}
.mesas-summary-item>span:last-child{display:flex;flex-direction:column;min-width:0}
.mesas-summary-item strong{font-size:1.3rem;line-height:1.05;color:var(--ink)}
.mesas-summary-item small{margin-top:4px;color:var(--muted);font-size:.76rem;font-weight:650}
.mesas-summary-icon{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;font-size:1rem}
.mesas-summary-icon.is-confirmed{background:#e8f6ef;color:#17663e}
.mesas-summary-icon.is-pending{background:#fff2d7;color:#8a5a00}
.mesas-summary-icon.is-assigned{background:#eaf3ff;color:#2464a8}
.mesas-summary-icon.is-tables{background:#f3ecff;color:#7048a8}
.mesas-workspace{display:grid;grid-template-columns:minmax(245px,310px) minmax(0,1fr);gap:18px;align-items:start;margin-bottom:26px}
.mesas-create-column{display:grid;gap:14px;position:sticky;top:90px}
.mesas-create-card,.mesa-bulk-card{min-width:0}
.mesas-card-title{display:flex;align-items:flex-start;gap:11px;margin-bottom:18px}
.mesas-card-title-icon{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px;background:rgba(138,93,74,.12);color:var(--primary)}
.mesas-card-title h4{margin:0 0 4px}
.mesas-card-title p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.4}
.mesas-help-card{display:flex;align-items:flex-start;gap:11px;padding:16px;background:#fffaf2;border-color:#f0dfbd}
.mesas-help-card>i{margin-top:2px;color:#9b6a05;font-size:1.05rem}
.mesas-help-card strong{display:block;font-size:.83rem}
.mesas-help-card p{margin:4px 0 0;color:#75684e;font-size:.76rem;line-height:1.5}
.mesas-inline-notice{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;margin-bottom:14px;border-radius:11px;font-size:.8rem;line-height:1.45}
.mesas-inline-notice.is-warning{background:#fff5dc;border:1px solid #f1d89b;color:#7d5900}
.mesa-picker-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:10px}
.mesa-selection-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.mesa-person-results-multiple{max-height:390px;padding:7px}
.mesa-person-check-row{position:relative;width:100%;display:grid;grid-template-columns:22px 36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border-radius:11px;cursor:pointer;transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}
.mesa-person-check-row:hover{background:var(--cream)}
.mesa-person-check-row.is-selected{background:rgba(138,93,74,.08);box-shadow:inset 0 0 0 1px rgba(138,93,74,.25)}
.mesa-person-check-row[hidden]{display:none!important}
.mesa-person-check-row input{position:absolute;opacity:0;pointer-events:none}
.mesa-person-check-control{width:22px;height:22px;display:grid;place-items:center;border:1.5px solid #cbbdb5;border-radius:7px;background:#fff;color:#fff;font-size:.7rem;transition:.15s}
.mesa-person-check-row input:focus-visible+.mesa-person-check-control{outline:3px solid rgba(138,93,74,.18);outline-offset:2px}
.mesa-person-check-row input:checked+.mesa-person-check-control{background:var(--primary);border-color:var(--primary)}
.mesa-bulk-actionbar{position:sticky;bottom:10px;z-index:4;display:grid;grid-template-columns:minmax(180px,.9fr) minmax(210px,1.1fr) auto;gap:14px;align-items:end;margin-top:14px;padding:14px;border:1px solid #ded0c8;border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 12px 32px rgba(58,38,30,.12);backdrop-filter:blur(8px)}
.mesa-selection-summary{display:flex;align-items:center;gap:10px;min-width:0}
.mesa-selection-count{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--primary);color:#fff;font-weight:800}
.mesa-selection-summary>span:last-child{display:flex;min-width:0;flex-direction:column}
.mesa-selection-summary strong{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mesa-selection-summary small{margin-top:2px;color:var(--muted);font-size:.7rem;line-height:1.35}
.mesa-target-control .form-label{margin-bottom:4px;font-size:.76rem}
.mesa-target-control .form-select{padding-top:.58rem;padding-bottom:.58rem}
.mesa-capacity-hint{display:block;margin-top:4px;color:var(--muted);font-size:.68rem}
.mesa-capacity-hint.is-warning{color:var(--danger);font-weight:700}
.mesa-capacity-hint.is-ok{color:var(--success);font-weight:700}
.mesa-bulk-submit{min-height:42px;white-space:nowrap}
.mesas-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:4px 0 14px}
.mesas-section-heading h2{margin:0;font-family:Georgia,serif;font-size:1.45rem}
.mesas-section-heading p{margin:4px 0 0;color:var(--muted);font-size:.83rem}
.mesas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:18px;align-items:start}
.mesa-card{padding:18px}
.mesa-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.mesa-card-kicker{display:block;margin-bottom:2px;color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.mesa-card-header h3{margin:0;font-size:1.16rem}
.mesa-card-header-actions{display:flex;align-items:center;gap:8px}
.mesa-availability{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#e8f6ef;color:#17663e;font-size:.68rem;font-weight:800;white-space:nowrap}
.mesa-availability.is-full{background:#f1eeec;color:#766a64}
.mesa-delete-button{width:34px;height:34px;padding:0;display:grid;place-items:center}
.mesa-occupancy-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 7px;color:var(--muted);font-size:.76rem}
.mesa-occupancy-line strong{color:var(--ink)}
.mesa-assigned-list-actions{margin-top:14px}
.mesa-assigned-list-actions>li{background:#fbfaf9;border:1px solid #eee5df;padding:10px}
.mesa-assigned-row{display:grid;gap:10px}
.mesa-assigned-main{display:flex;align-items:center;gap:10px;min-width:0}
.mesa-person-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-left:46px}
.mesa-move-form{display:flex;align-items:center;gap:6px;min-width:0;flex:1 1 230px}
.mesa-move-form .form-select{min-width:0;flex:1 1 auto}
.mesa-move-form .btn,.mesa-unassign-button{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.mesa-empty-state{display:grid!important;place-items:center;align-content:center;gap:4px;min-height:125px;text-align:center;border-style:dashed!important;color:var(--muted)}
.mesa-empty-state i{font-size:1.25rem;color:var(--primary)}
.mesa-empty-state strong{font-size:.84rem;color:var(--ink)}
.mesa-empty-state span{font-size:.72rem}
.mesas-empty-global{grid-column:1/-1;display:grid;place-items:center;gap:6px;min-height:180px}
.mesas-empty-global i{font-size:1.8rem;color:var(--primary)}
.mesas-empty-global strong{color:var(--ink)}
.mesas-empty-global span{font-size:.8rem}

@media(max-width:1100px){
    .mesas-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
    .mesas-workspace{grid-template-columns:1fr}
    .mesas-create-column{position:static;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
    .mesa-bulk-actionbar{grid-template-columns:minmax(160px,.8fr) minmax(200px,1fr)}
    .mesa-bulk-submit{grid-column:1/-1;width:100%}
}

@media(max-width:700px){
    .mesas-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
    .mesas-summary-item{padding:12px;gap:9px}
    .mesas-summary-icon{width:36px;height:36px;border-radius:10px}
    .mesas-summary-item strong{font-size:1.08rem}
    .mesas-summary-item small{font-size:.68rem}
    .mesas-create-column{grid-template-columns:1fr}
    .mesas-help-card{display:none}
    .mesa-picker-toolbar{grid-template-columns:1fr}
    .mesa-selection-tools{justify-content:stretch}
    .mesa-selection-tools .btn{flex:1 1 auto}
    .mesa-person-results-multiple{max-height:360px}
    .mesa-person-check-row{grid-template-columns:22px 36px minmax(0,1fr);padding:10px 8px}
    .mesa-person-check-row .mesa-person-table{grid-column:3;justify-self:start}
    .mesa-bulk-actionbar{position:sticky;bottom:8px;grid-template-columns:1fr;gap:10px;padding:12px}
    .mesa-target-control{order:2}
    .mesa-selection-summary{order:1}
    .mesa-bulk-submit{order:3;grid-column:auto;width:100%}
    .mesas-grid{grid-template-columns:1fr}
    .mesa-card{padding:15px}
    .mesa-card-header{align-items:flex-start}
    .mesa-card-header-actions{align-items:flex-end;flex-direction:column}
    .mesa-person-actions{padding-left:0;display:grid;grid-template-columns:1fr auto;width:100%}
    .mesa-move-form{display:grid;grid-template-columns:minmax(0,1fr) auto;min-width:0;flex-basis:auto}
    .mesa-move-form .btn span,.mesa-unassign-button span{display:none}
    .mesa-move-form .btn,.mesa-unassign-button{width:40px;height:36px;justify-content:center;padding:0}
}

@media(max-width:420px){
    .mesas-summary{grid-template-columns:1fr 1fr}
    .mesas-summary-item{align-items:flex-start}
    .mesa-assignment-heading{gap:8px}
    .mesa-confirmed-count{align-self:flex-start}
    .mesa-person-check-row{grid-template-columns:22px 34px minmax(0,1fr)}
    .mesa-person-icon{width:34px;height:34px}
    .mesa-card-header h3{font-size:1.02rem}
}
