@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@600;700&family=Montserrat:wght@400;500;600;700&display=swap');
:root{--cream:#fbf5ee;--paper:#fff;--gold:#b88436;--gold2:#8a5d20;--rose:#bd536f;--ink:#372c2a;--muted:#766764;--line:rgba(184,132,54,.25);--shadow:0 18px 55px rgba(54,37,31,.12)}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#fffaf5,#f4e9e2);color:var(--ink);font-family:Montserrat,Arial,sans-serif}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif}.wrap{max-width:1180px;margin:auto;padding:24px}.topbar{position:sticky;top:0;z-index:40;background:rgba(255,250,245,.93);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.toprow{max-width:1220px;margin:auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-family:"Cormorant Garamond",serif;font-size:1.65rem;font-weight:700;color:var(--gold2)}.nav{display:flex;gap:8px;flex-wrap:wrap}.nav a{padding:9px 11px;border-radius:10px;font-size:.84rem;font-weight:700}.nav a:hover{background:#f5e9df}.lang-switch{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:999px;background:#fff}.lang-pill{display:grid;place-items:center;min-width:31px;height:31px;padding:0 7px;border-radius:999px;font-size:.7rem;font-weight:800;color:var(--gold2)}.lang-pill.active{background:var(--gold2);color:#fff}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin:18px 0 24px}.page-head h1{font-size:2.8rem;margin:0}.eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;color:var(--gold2);font-weight:800}.grid{display:grid;gap:16px}.grid.cards{grid-template-columns:repeat(4,1fr)}.card{background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:22px}.kpi strong{font-size:2rem}.kpi span{display:block;color:var(--muted);font-size:.82rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border-radius:10px;border:1px solid transparent;font-weight:800;cursor:pointer}.btn.primary{background:linear-gradient(135deg,var(--rose),#963c57);color:#fff}.btn.secondary{background:#fff;color:var(--gold2);border-color:var(--gold)}.btn.text{background:transparent;color:var(--muted)}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;font-size:.88rem}.table th{color:var(--gold2);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#eee;font-size:.72rem;font-weight:800}.badge.ACTIVE{background:#dff2ea;color:#246b58}.badge.DRAFT{background:#f4eadc;color:#8a5d20}.badge.PAUSED{background:#fff0ce;color:#8f6818}.badge.FINISHED,.badge.ARCHIVED{background:#e7e3e1;color:#5e5754}.notice{padding:13px 15px;border-radius:12px;background:#f2e9df;margin:12px 0}.notice.success{background:#dff2ea;color:#246b58}.notice.error{background:#fae2e7;color:#8f2d43}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:grid;gap:7px;margin-bottom:14px}.field label{font-size:.8rem;color:var(--gold2);font-weight:800}.field input,.field select,.field textarea{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit}.checks{display:flex;gap:14px;flex-wrap:wrap}.checks label{display:flex;align-items:center;gap:7px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(100%,480px)}.login-card h1{font-size:3rem;margin-bottom:8px}.muted{color:var(--muted)}.qr-wrap{display:grid;grid-template-columns:260px 1fr;gap:26px;align-items:center}.qr-box{position:relative;overflow:hidden;width:250px;height:250px;background:#fff;border:1px solid var(--line);padding:12px;border-radius:14px}.qr-box canvas,.qr-box img{position:absolute!important;inset:12px!important;width:calc(100% - 24px)!important;height:calc(100% - 24px)!important;max-width:calc(100% - 24px)!important;max-height:calc(100% - 24px)!important;display:block;object-fit:contain}.qr-box.qr-rendered-canvas img{display:none!important}.event-hero{min-height:100vh;display:grid;place-items:center;position:relative;background:#302b2b;overflow:hidden}.event-cover-blur{position:absolute;inset:-5%;z-index:0;background-size:cover;background-position:center;filter:blur(24px);transform:scale(1.08);opacity:.78}.event-cover-main{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:contain;object-position:center;display:block}.event-hero:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(18,14,17,.18),rgba(18,14,17,.66))}.event-card{position:relative;z-index:2;width:min(92%,760px);padding:46px;text-align:center;color:#fff;border:1px solid rgba(255,255,255,.45);background:rgba(29,22,25,.38);backdrop-filter:blur(9px);border-radius:26px}.event-card h1{font-size:clamp(3rem,8vw,6rem);margin:0 0 12px}.event-card .date{font-weight:800;letter-spacing:.12em}.event-card .venue{font-size:1.05rem}.public-lang{position:fixed;z-index:10;top:14px;right:14px}.cover-preview{width:100%;max-height:560px;object-fit:contain;background:#eee6df;border-radius:14px;border:1px solid var(--line)}@media(max-width:900px){.grid.cards{grid-template-columns:repeat(2,1fr)}.form-grid,.qr-wrap{grid-template-columns:1fr}.nav{display:none}}@media(max-width:600px){.grid.cards{grid-template-columns:1fr}.wrap{padding:16px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:2.3rem}.event-card{padding:28px 20px}}


/* ==========================================================
   JC Events public event layout — Correction 03
   Desktop: photo + information in separate columns.
   Mobile: photo first, information underneath.
   ========================================================== */

.event-public-shell{
    min-height:100svh;
    display:grid;
    grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr);
    background:
        radial-gradient(circle at 85% 10%,rgba(184,132,54,.10),transparent 30%),
        linear-gradient(145deg,#fffaf5,#f1e6df);
}

.event-photo-stage{
    position:relative;
    min-width:0;
    min-height:100svh;
    overflow:hidden;
    background:#332d2d;
    isolation:isolate;
}

.event-photo-blur{
    position:absolute;
    inset:-5%;
    z-index:0;
    background-position:center;
    background-size:cover;
    filter:blur(28px);
    transform:scale(1.10);
    opacity:.74;
}

.event-photo-stage::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
        linear-gradient(
            90deg,
            rgba(18,14,17,.12),
            rgba(18,14,17,0) 35%,
            rgba(18,14,17,.10)
        );
}

.event-photo-main{
    position:absolute;
    inset:0;
    z-index:1;
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    display:block;
}

.event-photo-stage.no-cover{
    display:grid;
    place-items:center;
    background:
        radial-gradient(circle at 50% 35%,rgba(255,255,255,.20),transparent 30%),
        linear-gradient(145deg,var(--gold2),#3e3030);
}

.event-no-cover{
    position:relative;
    z-index:2;
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:clamp(3rem,7vw,7rem);
    color:rgba(255,255,255,.78);
    letter-spacing:.05em;
}

.event-info-stage{
    min-width:0;
    min-height:100svh;
    display:grid;
    place-items:center;
    padding:clamp(72px,8vh,110px) clamp(28px,4vw,72px);
}

.event-info-card{
    width:min(100%,620px);
    text-align:center;
    padding:clamp(34px,4vw,58px);
    border:1px solid var(--line);
    border-radius:30px;
    background:rgba(255,250,245,.88);
    box-shadow:
        0 28px 80px rgba(64,43,35,.14),
        inset 0 0 0 1px rgba(255,255,255,.65);
    backdrop-filter:blur(10px);
}

.event-info-card::before{
    content:"";
    display:block;
    width:54px;
    height:1px;
    margin:0 auto 22px;
    background:var(--gold);
}

.event-info-eyebrow{
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.18em;
    font-weight:800;
    margin-bottom:12px;
}

.event-info-card h1{
    margin:0;
    font-size:clamp(3rem,5.4vw,5.8rem);
    line-height:.88;
    color:var(--ink);
    text-wrap:balance;
}

.event-info-date{
    margin:28px 0 0;
    color:var(--gold2);
    font-weight:800;
    letter-spacing:.13em;
    font-size:.92rem;
}

.event-info-venue{
    margin:14px 0 0;
    color:var(--ink);
    font-size:1rem;
    line-height:1.45;
}

.event-info-message{
    max-width:520px;
    margin:20px auto 0;
    color:var(--muted);
    font-size:.98rem;
    line-height:1.65;
    text-wrap:pretty;
}

.event-public-actions{
    display:flex;
    justify-content:center;
    gap:10px;
    flex-wrap:wrap;
    margin-top:28px;
}

.event-public-actions .btn{
    min-width:165px;
}

/* Tablet */
@media(max-width:1050px){
    .event-public-shell{
        grid-template-columns:minmax(0,1fr) minmax(350px,.82fr);
    }

    .event-info-stage{
        padding-left:24px;
        padding-right:24px;
    }

    .event-info-card{
        padding:34px 26px;
    }

    .event-info-card h1{
        font-size:clamp(2.8rem,5.5vw,4.6rem);
    }
}

/* Phone: no information is over the photo */
@media(max-width:760px){
    .event-public-shell{
        min-height:100svh;
        display:block;
        background:#fffaf5;
    }

    .event-photo-stage{
        min-height:0;
        height:52svh;
        max-height:560px;
        min-height:330px;
    }

    .event-photo-stage::after{
        background:linear-gradient(
            180deg,
            rgba(18,14,17,.05),
            rgba(18,14,17,0) 65%,
            rgba(18,14,17,.08)
        );
    }

    .event-info-stage{
        min-height:0;
        display:block;
        padding:20px 14px 46px;
        background:
            radial-gradient(circle at 100% 0,rgba(184,132,54,.09),transparent 33%),
            #fffaf5;
    }

    .event-info-card{
        width:100%;
        padding:28px 18px 24px;
        border-radius:22px;
        box-shadow:0 12px 34px rgba(64,43,35,.10);
        background:rgba(255,255,255,.88);
    }

    .event-info-card::before{
        margin-bottom:16px;
    }

    .event-info-eyebrow{
        font-size:.66rem;
        margin-bottom:8px;
    }

    .event-info-card h1{
        font-size:clamp(2.45rem,12vw,3.5rem);
        line-height:.93;
    }

    .event-info-date{
        margin-top:18px;
        font-size:.78rem;
    }

    .event-info-venue{
        margin-top:10px;
        font-size:.92rem;
    }

    .event-info-message{
        margin-top:14px;
        font-size:.91rem;
        line-height:1.5;
    }

    .event-public-actions{
        display:grid;
        grid-template-columns:1fr;
        gap:9px;
        margin-top:20px;
    }

    .event-public-actions .btn{
        width:100%;
        min-width:0;
        min-height:48px;
    }

    .public-lang{
        top:10px;
        right:10px;
    }

    .lang-switch{
        box-shadow:0 6px 20px rgba(0,0,0,.10);
    }
}

/* Very small phones */
@media(max-width:390px){
    .event-photo-stage{
        height:48svh;
        min-height:300px;
    }

    .event-info-stage{
        padding-left:10px;
        padding-right:10px;
    }

    .event-info-card{
        padding-left:15px;
        padding-right:15px;
    }

    .event-info-card h1{
        font-size:2.35rem;
    }
}


/* ==========================================================
   JC Events — Correction 04
   Mobile public page: compact dedicated layout.
   ========================================================== */

@media(max-width:760px){

    body{
        background:#fffaf5;
    }

    .event-public-shell{
        min-height:100svh;
        display:block;
        background:#fffaf5;
    }

    /*
     * Much smaller visual area on phones.
     * Portrait photos no longer dominate the entire screen.
     */
    .event-photo-stage{
        height:32svh !important;
        min-height:220px !important;
        max-height:300px !important;
        width:100%;
        background:#eee7e2;
        border-bottom:1px solid var(--line);
    }

    /*
     * Remove the blurred enlarged copy on phones.
     * It was making portrait images feel oversized and visually noisy.
     */
    .event-photo-blur{
        display:none !important;
    }

    .event-photo-stage::after{
        display:none !important;
    }

    .event-photo-main{
        position:absolute;
        inset:0;
        width:100%;
        height:100%;
        object-fit:contain !important;
        object-position:center center !important;
        background:#eee7e2;
    }

    /*
     * Information becomes a normal content section,
     * not a large floating invitation card.
     */
    .event-info-stage{
        min-height:0 !important;
        display:block !important;
        padding:14px 14px 34px !important;
        background:#fffaf5 !important;
    }

    .event-info-card{
        width:100%;
        max-width:none;
        padding:18px 14px 18px !important;
        margin:0;
        border:0 !important;
        border-radius:0 !important;
        background:transparent !important;
        box-shadow:none !important;
        backdrop-filter:none !important;
    }

    .event-info-card::before{
        width:38px;
        margin:0 auto 11px !important;
    }

    .event-info-eyebrow{
        font-size:.58rem !important;
        letter-spacing:.15em !important;
        margin-bottom:5px !important;
    }

    .event-info-card h1{
        margin:0 !important;
        font-size:clamp(2rem,9.5vw,2.65rem) !important;
        line-height:.96 !important;
    }

    .event-info-date{
        margin:13px 0 0 !important;
        font-size:.70rem !important;
        letter-spacing:.10em !important;
    }

    .event-info-venue{
        margin:7px 0 0 !important;
        font-size:.82rem !important;
        line-height:1.35 !important;
    }

    .event-info-message{
        margin:10px auto 0 !important;
        max-width:430px;
        font-size:.80rem !important;
        line-height:1.38 !important;
    }

    .event-public-actions{
        display:flex !important;
        flex-direction:column;
        gap:7px !important;
        margin-top:14px !important;
    }

    .event-public-actions .btn{
        width:100%;
        min-width:0 !important;
        min-height:42px !important;
        padding:8px 12px !important;
        font-size:.80rem !important;
        border-radius:9px !important;
    }

    .public-lang{
        top:8px !important;
        right:8px !important;
    }

    .lang-switch{
        padding:2px !important;
        box-shadow:0 4px 14px rgba(0,0,0,.10);
    }

    .lang-pill{
        min-width:27px !important;
        height:27px !important;
        padding:0 5px !important;
        font-size:.61rem !important;
    }
}

/* Small phones */
@media(max-width:430px){

    .event-photo-stage{
        height:30svh !important;
        min-height:205px !important;
        max-height:270px !important;
    }

    .event-info-stage{
        padding:12px 10px 28px !important;
    }

    .event-info-card{
        padding:15px 10px 16px !important;
    }

    .event-info-card h1{
        font-size:2rem !important;
    }

    .event-info-message{
        font-size:.77rem !important;
    }

    .event-public-actions .btn{
        min-height:40px !important;
        font-size:.77rem !important;
    }
}

/* Very short phones / landscape-ish mobile view */
@media(max-width:760px) and (max-height:700px){

    .event-photo-stage{
        height:27svh !important;
        min-height:180px !important;
        max-height:230px !important;
    }

    .event-info-card h1{
        font-size:1.9rem !important;
    }

    .event-info-message{
        margin-top:8px !important;
    }

    .event-public-actions{
        margin-top:11px !important;
    }
}


/* JC Events — clearer event colour controls */
.event-colour-control{
    min-height:72px;
    display:grid;
    grid-template-columns:62px minmax(0,1fr);
    gap:13px;
    align-items:center;
    padding:10px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
}
.field .event-colour-swatch{
    width:58px;
    height:50px;
    padding:2px;
    border:0;
    border-radius:10px;
    background:transparent;
    cursor:pointer;
}
.event-colour-control strong{
    display:block;
    margin-bottom:4px;
    font-size:.82rem;
    color:var(--ink);
}
.event-colour-control small{
    display:block;
    line-height:1.35;
}


/* ==========================================================
   JC Events — Correction 05
   Radio / checkbox alignment inside configuration forms
   ========================================================== */
.checks input[type="radio"],
.checks input[type="checkbox"],
.field .checks input[type="radio"],
.field .checks input[type="checkbox"]{
    width:auto !important;
    min-width:16px;
    height:16px;
    padding:0 !important;
    margin:2px 0 0 !important;
    flex:0 0 auto;
    accent-color:var(--rose);
}

.field .checks label,
.checks label{
    align-items:flex-start;
}

.field .checks label > span{
    min-width:0;
    flex:1 1 auto;
}

@media(max-width:760px){
    .field .checks{
        gap:10px !important;
    }
}


/* ==========================================================
   JC Events - Phase 4 printable materials
   ========================================================== */
.printables-layout{
    display:grid;
    grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr);
    gap:18px;
    align-items:start;
}

.printable-actions-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin-top:22px;
}

.printable-action{
    min-height:220px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    gap:16px;
    padding:18px;
    border:1px solid var(--line);
    border-radius:15px;
    background:rgba(255,255,255,.72);
}

.printable-action h3{
    margin:5px 0 7px;
    font-size:1.45rem;
}

.printables-preview-card{
    position:sticky;
    top:92px;
}

.printable-preview{
    position:relative;
    width:100%;
    aspect-ratio:8.5/11;
    margin-top:12px;
    overflow:hidden;
    border-radius:18px;
    background:#fbf4ea;
    box-shadow:0 16px 44px rgba(59,42,35,.12);
}

.printable-preview-inner{
    position:absolute;
    inset:5.5%;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding:8% 7%;
    border:1px solid var(--preview-accent);
    border-radius:18px;
    background:rgba(255,255,255,.42);
}

.printable-template-regency .printable-preview-inner{
    box-shadow:
        inset 0 0 0 7px rgba(255,255,255,.42),
        inset 0 0 0 8px var(--preview-secondary);
}

.printable-template-elegant::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:3.5%;
    background:var(--preview-primary);
}

.printable-template-elegant::after{
    content:"";
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    height:1.8%;
    background:var(--preview-accent);
}

.printable-template-minimal::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:2%;
    background:var(--preview-primary);
}

.printable-preview-event{
    color:var(--preview-secondary);
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:clamp(1.15rem,2.4vw,2rem);
    font-weight:700;
    line-height:1;
}

.printable-preview-title{
    margin-top:8%;
    color:var(--preview-primary);
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:clamp(1.9rem,4vw,3.4rem);
    font-weight:700;
    line-height:.92;
}

.printable-preview-date{
    margin-top:5%;
    color:var(--preview-secondary);
    font-size:.7rem;
    font-weight:800;
    letter-spacing:.08em;
}

.printable-preview-qr{
    width:43%;
    aspect-ratio:1/1;
    margin-top:7%;
    padding:3%;
    border:1px solid var(--preview-accent);
    border-radius:12px;
    background:#fff;
}

.printable-preview-qr canvas,
.printable-preview-qr img{
    width:100%!important;
    height:100%!important;
    display:block;
}

.printable-preview-text{
    margin-top:7%;
    max-width:90%;
    color:#554c49;
    font-size:clamp(.65rem,1.2vw,.9rem);
    line-height:1.45;
}

.printable-preview-url{
    margin-top:auto;
    max-width:100%;
    color:var(--preview-secondary);
    font-size:.55rem;
    line-height:1.25;
    overflow-wrap:anywhere;
}

@media(max-width:1050px){
    .printable-actions-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:900px){
    .printables-layout{
        grid-template-columns:1fr;
    }

    .printables-preview-card{
        position:static;
    }

    .printable-preview{
        width:min(100%,480px);
        margin-left:auto;
        margin-right:auto;
    }
}

@media(max-width:600px){
    .printable-action{
        min-height:0;
    }

    .printable-preview-title{
        font-size:2rem;
    }
}


/* JC Events — Correction 06: poster preview with event cover */
.printable-preview-cover{
    position:absolute;
    inset:0;
    z-index:0;
    background:linear-gradient(180deg,#fbf4ea,#f7ecdf);
}

.printable-preview-cover.has-image{
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
    filter:saturate(1.03);
}

.printable-preview-cover.has-image::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(255,250,244,.58),rgba(255,247,239,.74));
}

.printable-preview-inner{
    z-index:1;
}


/* ==========================================================
   JC Events — Phase 4.2 Premium visual selectors
   ========================================================== */
.visual-theme-grid,.print-card-style-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.visual-theme-option,.print-card-style-option{position:relative;display:grid!important;grid-template-columns:88px minmax(0,1fr);gap:12px;align-items:center!important;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;transition:.18s}.visual-theme-option:hover,.print-card-style-option:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(66,45,37,.08)}.visual-theme-option input,.print-card-style-option input{position:absolute!important;opacity:0!important;pointer-events:none}.visual-theme-option:has(input:checked),.print-card-style-option:has(input:checked){border-color:var(--gold2);box-shadow:0 0 0 2px rgba(184,132,54,.16)}.visual-theme-option strong,.print-card-style-option strong{display:block;font-size:.83rem;color:var(--ink)}.visual-theme-option small,.print-card-style-option small{display:block;margin-top:3px;color:var(--muted);font-size:.68rem;line-height:1.35}.visual-theme-swatch,.print-card-style-swatch{position:relative;display:block;height:58px;border-radius:10px;overflow:hidden;background:#ddd;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}.visual-theme-swatch i,.print-card-style-swatch i{position:absolute;display:block}
.theme-icon-basic{background:linear-gradient(135deg,#372638,#967085)}.theme-icon-basic i{inset:10px 14px;background:#d9c9ce;border-radius:3px}.theme-icon-tv{background:#d7d2c9}.theme-icon-tv i{inset:7px 10px 14px;background:#252a2e;border:5px solid #111;border-radius:8px}.theme-icon-tv::after{content:"";position:absolute;left:32px;right:32px;bottom:6px;height:5px;background:#222;border-radius:5px}.theme-icon-cinema{background:linear-gradient(90deg,#5c1526 0 18%,#160e12 18% 82%,#5c1526 82%)}.theme-icon-cinema i{inset:12px 20px;background:#d8d0c9;box-shadow:0 0 16px rgba(255,255,255,.35)}.theme-icon-window{background:linear-gradient(#dceff3,#f1e9df)}.theme-icon-window i{inset:7px 22px;border:6px solid #fff;border-radius:40% 40% 4px 4px/25% 25% 4px 4px;background:#a7bdc3}.theme-icon-frame{background:#4b3428}.theme-icon-frame i{inset:7px 17px;border:7px ridge #d5aa4f;background:#70585b}.theme-icon-gallery{background:#d8d1c6}.theme-icon-gallery i{inset:8px 20px;border:6px solid #312c29;background:#faf7f1}
.premium-checks{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.premium-checks label{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.print-card-style-swatch{height:72px}.card-style-romantic{background:linear-gradient(rgba(255,248,244,.52),rgba(255,248,244,.52)),linear-gradient(135deg,#d8c0b2,#f5e5dc)}.card-style-romantic i{inset:7px;border:2px solid #b69045;border-radius:10px;box-shadow:inset 0 0 0 4px rgba(255,255,255,.55)}.card-style-romantic::before{content:"✦";position:absolute;left:9px;top:4px;color:#a47625}.card-style-romantic::after{content:"▦";position:absolute;right:12px;bottom:9px;color:#392f2b;font-size:22px}.card-style-photo{background:linear-gradient(rgba(255,255,255,.32),rgba(255,255,255,.32)),linear-gradient(135deg,#7a5e6f,#dbc2c8)}.card-style-photo i{left:12px;right:12px;bottom:9px;height:18px;background:rgba(255,255,255,.82);border-radius:5px}.card-style-elegant{background:linear-gradient(135deg,#f6efe8,#ddd0c5)}.card-style-elegant i{inset:8px;border:1px solid #8c6d40;border-top:7px solid #8e4862;border-radius:7px}.card-style-classic{background:#fbf7f1}.card-style-classic i{inset:8px;border:1px solid #b59d7f;border-top:5px solid #394653;border-radius:7px}
@media(max-width:900px){.visual-theme-grid,.print-card-style-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.visual-theme-grid,.print-card-style-grid,.premium-checks{grid-template-columns:1fr}.visual-theme-option,.print-card-style-option{grid-template-columns:78px minmax(0,1fr)}}


/* ==========================================================
   JC Events — Correction 09
   Exact live table-card preview used as PDF source
   ========================================================== */
.print-card-preview-section{
    margin-top:28px;
    padding-top:24px;
    border-top:1px solid var(--line);
}

.table-card-preview{
    position:relative;
    width:min(100%,360px);
    aspect-ratio:3 / 4;
    margin:14px auto 0;
    overflow:hidden;
    border-radius:18px;
    background:#fffaf5;
    box-shadow:0 16px 42px rgba(52,36,31,.13);
    isolation:isolate;
}

.table-card-preview-cover{
    position:absolute;
    inset:0;
    z-index:0;
    background:linear-gradient(145deg,#f5e8de,#fff9f4);
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
}

.table-card-preview-overlay{
    position:absolute;
    inset:0;
    z-index:1;
    background:rgba(255,248,242,.58);
}

.table-card-preview-frame{
    position:absolute;
    z-index:2;
    pointer-events:none;
}

.table-card-preview-content{
    position:absolute;
    inset:0;
    z-index:3;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:30px 28px 25px;
}

.table-card-preview-event{
    color:var(--preview-secondary);
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:1.45rem;
    font-weight:700;
    line-height:1;
}

.table-card-preview-title{
    margin-top:12px;
    color:var(--preview-primary);
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:2.15rem;
    font-weight:700;
    line-height:.94;
    text-wrap:balance;
}

.table-card-preview-date{
    margin-top:9px;
    color:var(--preview-secondary);
    font-size:.66rem;
    font-weight:800;
    letter-spacing:.08em;
}

.table-card-preview-qr{
    width:120px;
    height:120px;
    margin-top:15px;
    padding:7px;
    border:1px solid var(--preview-accent);
    border-radius:12px;
    background:#fff;
}

.table-card-preview-qr canvas,
.table-card-preview-qr img{
    width:100%!important;
    height:100%!important;
    display:block!important;
}

.table-card-preview-instruction{
    max-width:250px;
    margin-top:13px;
    color:#574d49;
    font-size:.78rem;
    line-height:1.35;
}

.table-card-preview-url{
    max-width:270px;
    margin-top:7px;
    color:var(--preview-secondary);
    font-size:.49rem;
    line-height:1.25;
    overflow-wrap:anywhere;
}

/* Romantic Emma/Sofia */
.table-card-style-romantic .table-card-preview-overlay{
    background:rgba(255,248,242,.60);
}
.table-card-style-romantic .frame-one{
    inset:11px;
    border:2px solid var(--preview-accent);
    border-radius:15px;
}
.table-card-style-romantic .frame-two{
    inset:18px;
    border:1px solid var(--preview-secondary);
    border-radius:12px;
    opacity:.75;
}
.table-card-style-romantic::before,
.table-card-style-romantic::after{
    position:absolute;
    z-index:4;
    color:var(--preview-accent);
    font-family:Georgia,serif;
    font-size:1.2rem;
}
.table-card-style-romantic::before{content:"✦";left:20px;top:15px}
.table-card-style-romantic::after{content:"✦";right:20px;bottom:15px}

/* Photo focus */
.table-card-style-photo .table-card-preview-overlay{
    background:linear-gradient(180deg,rgba(20,12,18,.10),rgba(20,12,18,.33));
}
.table-card-style-photo .table-card-preview-content{
    justify-content:flex-end;
    padding:28px 24px 25px;
}
.table-card-style-photo .table-card-preview-event,
.table-card-style-photo .table-card-preview-title,
.table-card-style-photo .table-card-preview-date,
.table-card-style-photo .table-card-preview-instruction,
.table-card-style-photo .table-card-preview-url{
    color:#fff;
    text-shadow:0 2px 9px rgba(0,0,0,.55);
}
.table-card-style-photo .table-card-preview-title{
    font-size:1.9rem;
}
.table-card-style-photo .table-card-preview-qr{
    width:108px;
    height:108px;
    margin-top:12px;
}
.table-card-style-photo .frame-one{
    inset:10px;
    border:2px solid rgba(255,255,255,.78);
    border-radius:15px;
}
.table-card-style-photo .frame-two{display:none}

/* Elegant */
.table-card-style-elegant .table-card-preview-overlay{
    background:rgba(255,250,245,.76);
}
.table-card-style-elegant .frame-one{
    inset:13px;
    border:1px solid var(--preview-accent);
    border-radius:12px;
}
.table-card-style-elegant .frame-two{
    left:0;right:0;top:0;height:10px;
    background:var(--preview-primary);
}
.table-card-style-elegant .table-card-preview-title{
    font-size:1.9rem;
}

/* Classic: still retains a very subtle cover photo */
.table-card-style-classic .table-card-preview-overlay{
    background:rgba(255,252,248,.88);
}
.table-card-style-classic .frame-one{
    inset:12px;
    border:1px solid var(--preview-accent);
    border-radius:10px;
}
.table-card-style-classic .frame-two{
    left:0;right:0;top:0;height:7px;
    background:var(--preview-primary);
}
.table-card-style-classic .table-card-preview-title{
    font-size:1.85rem;
}

@media(max-width:620px){
    .table-card-preview{width:min(100%,320px)}
    .table-card-preview-content{padding:26px 24px 22px}
    .table-card-preview-title{font-size:1.9rem}
    .table-card-preview-qr{width:106px;height:106px}
}


/* JC Events — Correction 10: stable square QR in previews */
.printable-preview-qr,
.table-card-preview-qr{
    overflow:hidden;
}

.printable-preview-qr canvas,
.printable-preview-qr img,
.table-card-preview-qr canvas,
.table-card-preview-qr img{
    width:100% !important;
    height:100% !important;
    max-width:100% !important;
    max-height:100% !important;
    aspect-ratio:1 / 1;
    object-fit:contain;
    display:block !important;
}


/* ==========================================================
   JC Events — Correction 11
   Global printable style: poster + table cards
   ========================================================== */

/* The poster preview now reacts to the same selector as table cards. */
.printable-preview::before,
.printable-preview::after{
    z-index:2;
    pointer-events:none;
}

.printable-preview-inner{
    transition:
        background .18s ease,
        border-color .18s ease,
        box-shadow .18s ease,
        inset .18s ease;
}

.printable-preview-cover.has-image::after{
    transition:background .18s ease;
}

/* ----------------------------------------------------------
   ROMANTIC — Emma / Sofia
   Soft cover, double gold frame, ornamental corners.
   ---------------------------------------------------------- */
.printable-style-romantic .printable-preview-cover.has-image::after{
    background:linear-gradient(
        180deg,
        rgba(255,248,244,.58),
        rgba(255,247,239,.72)
    );
}

.printable-style-romantic .printable-preview-inner{
    inset:5.5%;
    padding:8% 7%;
    border:2px solid var(--preview-accent);
    background:rgba(255,250,247,.42);
    box-shadow:
        inset 0 0 0 7px rgba(255,255,255,.40),
        inset 0 0 0 8px var(--preview-secondary);
}

.printable-style-romantic::before,
.printable-style-romantic::after{
    position:absolute;
    color:var(--preview-accent);
    font-family:Georgia,serif;
    font-size:clamp(1.2rem,3vw,2.2rem);
    text-shadow:0 1px 6px rgba(255,255,255,.7);
}

.printable-style-romantic::before{
    content:"✦";
    left:7.5%;
    top:5.7%;
}

.printable-style-romantic::after{
    content:"✦";
    right:7.5%;
    bottom:5.7%;
}

.printable-style-romantic .printable-preview-title{
    color:var(--preview-primary);
}

/* ----------------------------------------------------------
   PHOTO FOCUS — cover photo dominates the poster.
   White copy and a strong central QR card.
   ---------------------------------------------------------- */
.printable-style-photo .printable-preview-cover.has-image::after{
    background:linear-gradient(
        180deg,
        rgba(15,10,14,.18),
        rgba(15,10,14,.42)
    );
}

.printable-style-photo .printable-preview-inner{
    inset:4.5%;
    padding:8% 7% 7%;
    justify-content:flex-end;
    border:2px solid rgba(255,255,255,.82);
    background:linear-gradient(
        180deg,
        rgba(20,15,18,.03),
        rgba(20,15,18,.16) 45%,
        rgba(20,15,18,.42)
    );
    box-shadow:none;
}

.printable-style-photo .printable-preview-event,
.printable-style-photo .printable-preview-title,
.printable-style-photo .printable-preview-date,
.printable-style-photo .printable-preview-text,
.printable-style-photo .printable-preview-url{
    color:#fff;
    text-shadow:0 2px 12px rgba(0,0,0,.62);
}

.printable-style-photo .printable-preview-title{
    margin-top:auto;
    font-size:clamp(2.15rem,4.4vw,3.7rem);
}

.printable-style-photo .printable-preview-qr{
    width:40%;
    margin-top:5%;
    border:2px solid rgba(255,255,255,.92);
    box-shadow:0 10px 32px rgba(0,0,0,.22);
}

.printable-style-photo .printable-preview-text{
    margin-top:5%;
}

.printable-style-photo .printable-preview-url{
    margin-top:4%;
}

/* ----------------------------------------------------------
   ELEGANT — refined light veil, slim frame and strong header.
   ---------------------------------------------------------- */
.printable-style-elegant .printable-preview-cover.has-image::after{
    background:rgba(255,250,245,.76);
}

.printable-style-elegant .printable-preview-inner{
    inset:6%;
    padding:8.5% 7%;
    border:1px solid var(--preview-accent);
    background:rgba(255,255,255,.55);
    box-shadow:none;
}

.printable-style-elegant::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:3.3%;
    background:var(--preview-primary);
}

.printable-style-elegant::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:1.7%;
    background:var(--preview-accent);
}

.printable-style-elegant .printable-preview-title{
    color:var(--preview-primary);
    font-size:clamp(2rem,4.1vw,3.45rem);
}

/* ----------------------------------------------------------
   CLASSIC — highly readable, almost invitation-paper style.
   The photo remains visible but very subtle.
   ---------------------------------------------------------- */
.printable-style-classic .printable-preview-cover.has-image::after{
    background:rgba(255,252,248,.90);
}

.printable-style-classic .printable-preview-inner{
    inset:6%;
    padding:9% 8%;
    border:1px solid var(--preview-accent);
    background:rgba(255,255,255,.72);
    box-shadow:none;
}

.printable-style-classic::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:2.2%;
    background:var(--preview-primary);
}

.printable-style-classic::after{
    content:none;
}

.printable-style-classic .printable-preview-title{
    color:var(--preview-primary);
    font-size:clamp(1.9rem,3.9vw,3.25rem);
}

.printable-style-classic .printable-preview-qr{
    width:40%;
}


/* JC Events Phase 5 — global theme and environment library */
.theme-preset-grid,.theme-background-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.theme-preset-option,.theme-background-option{
    position:relative;
    display:grid!important;
    grid-template-columns:105px minmax(0,1fr);
    gap:12px;
    align-items:center!important;
    padding:10px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    cursor:pointer;
    transition:.18s ease;
}
.theme-preset-option:hover,.theme-background-option:hover{
    transform:translateY(-1px);
    box-shadow:0 8px 24px rgba(66,45,37,.09);
}
.theme-preset-option input,.theme-background-option input{
    position:absolute!important;
    opacity:0!important;
    pointer-events:none!important;
}
.theme-preset-option:has(input:checked),.theme-background-option:has(input:checked){
    border-color:var(--gold2);
    box-shadow:0 0 0 2px rgba(184,132,54,.18);
}
.theme-preset-thumb,.theme-background-thumb{
    display:block;
    width:105px;
    aspect-ratio:16/9;
    border-radius:9px;
    background-position:center;
    background-size:cover;
    overflow:hidden;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.09);
}
.theme-preset-option strong,.theme-background-option strong{display:block;font-size:.82rem;color:var(--ink)}
.theme-preset-option small,.theme-background-option small{display:block;margin-top:4px;color:var(--muted);font-size:.67rem;line-height:1.35}
.auto-thumb,.dynamic-thumb{display:grid;place-items:center;background:linear-gradient(135deg,#f0e2d4,#d4b686);color:#765327;font-weight:900;letter-spacing:.08em}
.dynamic-thumb{background:radial-gradient(circle at 35% 35%,#c986a1,#5d456d 50%,#202838);color:#fff}
.auto-thumb i,.dynamic-thumb i{font-style:normal;font-size:.68rem}
@media(max-width:1050px){.theme-preset-grid,.theme-background-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.theme-preset-grid,.theme-background-grid{grid-template-columns:1fr}.theme-preset-option,.theme-background-option{grid-template-columns:95px minmax(0,1fr)}.theme-preset-thumb,.theme-background-thumb{width:95px}}


/* JC Events Phase 5.1 — realistic visual picker */
.realistic-visual-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.realistic-visual-option{
    position:relative;
    display:grid!important;
    grid-template-columns:132px minmax(0,1fr);
    gap:12px;
    align-items:center!important;
    padding:10px!important;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    cursor:pointer;
    transition:.18s ease;
}
.realistic-visual-option:has(input:checked){
    border-color:var(--gold2);
    box-shadow:0 0 0 1px var(--gold2),0 10px 28px rgba(80,55,30,.08);
}
.realistic-visual-option input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.realistic-visual-thumb{
    display:block;
    width:132px;
    aspect-ratio:16/9;
    border-radius:10px;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    box-shadow:inset 0 0 0 1px rgba(30,25,25,.10);
}
.realistic-visual-thumb-free{
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,#2b2330,#8f7182);
    color:#fff;
    font-size:2rem;
}
.realistic-visual-copy strong{display:block;margin-bottom:5px;color:var(--ink);}
.realistic-visual-copy small{display:block;color:var(--muted);line-height:1.35;}

@media(max-width:1050px){
    .realistic-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:660px){
    .realistic-visual-grid{grid-template-columns:1fr;}
    .realistic-visual-option{grid-template-columns:112px minmax(0,1fr);}
    .realistic-visual-thumb{width:112px;}
}


/* ==========================================================
   JC Events — Phase 19: Superadmin professional
   ========================================================== */
.badge.SCHEDULED{background:#e8eefc;color:#38569a}.badge.SUSPENDED{background:#f8dfe5;color:#963c57}
.phase19-install-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px}.phase19-install-list{line-height:1.8}
.phase19-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.phase19-kpi{padding:18px}.phase19-kpi strong{display:block;font-family:"Cormorant Garamond",serif;font-size:2.2rem;line-height:1;margin-top:6px}.phase19-kpi span{font-size:.74rem;color:var(--muted);font-weight:700}
.phase19-dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-top:18px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.section-head h2{margin:0}.section-head>a{font-size:.78rem;font-weight:800;color:var(--gold2)}
.phase19-list{display:grid}.phase19-list-row{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.phase19-list-row:last-child{border-bottom:0}.phase19-list-row strong,.phase19-list-row small{display:block}.phase19-list-row small{color:var(--muted);margin-top:3px}.phase19-list-meta{text-align:right;font-size:.76rem;color:var(--muted)}.phase19-list-meta .badge{margin-left:7px}
.phase19-timeline{display:grid;gap:13px}.phase19-timeline-item{position:relative;display:grid;grid-template-columns:12px 1fr;gap:9px}.phase19-dot{width:9px;height:9px;border-radius:50%;background:var(--rose);margin-top:5px}.phase19-timeline-item strong,.phase19-timeline-item small,.phase19-timeline-item time{display:block}.phase19-timeline-item strong{font-size:.78rem}.phase19-timeline-item small,.phase19-timeline-item time{font-size:.67rem;color:var(--muted);margin-top:2px}
.phase19-filterbar{display:flex;gap:7px;overflow:auto;padding:0 0 12px}.phase19-filterbar a{white-space:nowrap;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:.72rem;font-weight:800}.phase19-filterbar a.active{background:var(--gold2);color:#fff;border-color:var(--gold2)}
.phase19-usage-mini{min-width:120px;font-size:.72rem}.phase19-progress{height:7px;background:#eee5df;border-radius:999px;overflow:hidden;margin-top:5px}.phase19-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--rose));border-radius:inherit}.phase19-progress.big{height:10px}
.phase19-head-actions{display:flex;gap:8px;flex-wrap:wrap}.phase19-qr{grid-template-columns:180px 1fr}.phase19-qr .qr-box{width:170px;height:170px}.phase19-lifecycle{margin:15px 0;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fffaf6}.phase19-lifecycle h3{margin-top:0}.phase19-toggle{display:flex;align-items:center;gap:9px;margin:8px 0 14px;font-size:.78rem;font-weight:700}.phase19-toggle input{width:18px;height:18px}.phase19-toggle.compact{margin:0}.phase19-separator{border:0;border-top:1px solid var(--line);margin:20px 0}.phase19-storage-hero{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:10px 0 20px}.phase19-storage-hero strong{font-family:"Cormorant Garamond",serif;font-size:3rem}.phase19-storage-hero span{font-size:.76rem;color:var(--muted);font-weight:800}.phase19-meter>div:first-child{display:flex;justify-content:space-between;font-size:.74rem;margin-bottom:5px}.phase19-meter>small{display:block;text-align:right;color:var(--muted);margin-top:4px}.phase19-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.phase19-mini-stats div{padding:12px;border:1px solid var(--line);border-radius:12px;text-align:center;background:#fff}.phase19-mini-stats strong,.phase19-mini-stats span{display:block}.phase19-mini-stats strong{font-size:1.2rem}.phase19-mini-stats span{font-size:.64rem;color:var(--muted)}
.phase19-storage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.phase19-storage-card h2{margin:0}.phase19-storage-card small{color:var(--muted)}.phase19-health{padding:6px 9px;border-radius:999px;font-size:.66rem;font-weight:800}.phase19-health.good{background:#dff2ea;color:#246b58}.phase19-health.warning{background:#fff0ce;color:#8f6818}.phase19-health.danger{background:#fae2e7;color:#8f2d43}.phase19-storage-total{display:flex;align-items:baseline;gap:8px;margin:16px 0 8px}.phase19-storage-total strong{font-family:"Cormorant Garamond",serif;font-size:2.6rem}.phase19-storage-total span{color:var(--muted);font-size:.74rem}.phase19-breakdown{margin:16px 0;display:grid;grid-template-columns:1fr 1fr;gap:7px}.phase19-breakdown div{display:flex;justify-content:space-between;gap:8px;padding:8px 9px;background:#fffaf6;border-radius:9px;font-size:.7rem}.phase19-breakdown dt{color:var(--muted)}.phase19-breakdown dd{margin:0;font-weight:800}
.phase19-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.phase19-plan-title{display:flex;justify-content:space-between;gap:10px;align-items:start}.phase19-plan-title h2{font-size:2rem;margin:0}.phase19-feature-list{display:grid;gap:8px;margin:15px 0}.phase19-feature-list label{display:flex;align-items:center;gap:8px;font-size:.76rem}.phase19-audit-filters{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end;margin-bottom:16px}.phase19-audit-filters .field{margin:0}
@media(max-width:1100px){.phase19-kpis{grid-template-columns:repeat(3,1fr)}.phase19-plan-grid{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.phase19-dashboard-grid,.phase19-storage-grid{grid-template-columns:1fr}.phase19-audit-filters{grid-template-columns:1fr 1fr}.phase19-plan-grid{grid-template-columns:1fr}.phase19-head-actions{width:100%}.phase19-head-actions .btn{flex:1}}
@media(max-width:600px){.phase19-kpis{grid-template-columns:1fr 1fr}.phase19-install-banner{align-items:flex-start;flex-direction:column}.phase19-audit-filters{grid-template-columns:1fr}.phase19-list-row{display:grid}.phase19-list-meta{text-align:left}.phase19-breakdown{grid-template-columns:1fr}}


/* ================================================================
   JC Events — Phase 20: Event modules
   ================================================================ */
.p20-settings-form{gap:18px}.p20-module-card{overflow:hidden}.p20-module-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.p20-module-head h2{display:inline-block;margin:0 0 4px}.p20-icon{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:color-mix(in srgb,var(--rose) 11%,white);color:var(--rose);font-weight:900;margin-right:8px;vertical-align:middle}.p20-language-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.p20-program-editor{display:grid;gap:9px;margin:14px 0}.p20-program-row{display:grid;grid-template-columns:90px repeat(3,minmax(0,1fr)) 38px;gap:8px;align-items:center}.p20-program-row input{min-width:0}.p20-remove-program{font-size:1.3rem!important;padding:6px!important}.p20-check{display:flex;gap:9px;align-items:flex-start}.p20-check input{width:auto!important;margin-top:3px}.p20-count-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.p20-count-strip span{padding:7px 10px;border-radius:999px;background:#f7eee6;font-size:.72rem}.p20-count-strip b{color:var(--rose)}
.p20-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}.p20-stat-grid>div{padding:16px;border:1px solid #ead7bf;border-radius:14px;background:#fff}.p20-stat-grid strong{display:block;font-family:"Cormorant Garamond",Georgia,serif;font-size:2rem;color:var(--ink)}.p20-stat-grid span{font-size:.68rem;color:var(--muted)}.p20-table-wrap{overflow:auto}.p20-table{width:100%;border-collapse:collapse;font-size:.78rem}.p20-table th,.p20-table td{padding:10px;border-bottom:1px solid #eee0d2;text-align:left;vertical-align:top}.p20-table th{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gold2)}.p20-table td small{display:block;color:var(--muted);margin-top:3px}.badge.YES{background:#dff5e9;color:#18784d}.badge.NO{background:#fbe2e5;color:#9c3144}.badge.MAYBE{background:#fff0cf;color:#8a6112}.p20-filter-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.p20-book-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.p20-book-meta{display:flex;justify-content:space-between;gap:10px}.p20-book-meta span{font-size:.67rem;color:var(--muted)}.p20-book-admin p{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.35rem}.p20-book-actions{display:flex;gap:7px;flex-wrap:wrap}
.p20-public-body{min-height:100vh;background:linear-gradient(135deg,#fffaf6,#f6eee7);color:var(--ink)}.p20-public-wrap{width:min(1120px,calc(100% - 28px));margin:0 auto;padding:70px 0 50px}.p20-public-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px}.p20-public-head h1,.p20-form-card h1{font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(2.4rem,5vw,4.6rem);margin:.15em 0}.p20-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.p20-public-card{padding:26px;border:1px solid #e7d0b6;border-radius:22px;background:rgba(255,255,255,.88);box-shadow:0 18px 50px rgba(74,51,37,.08)}.p20-public-card h2{font-family:"Cormorant Garamond",Georgia,serif;font-size:2rem;margin:.25em 0}.p20-public-card p{line-height:1.65}.p20-public-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:color-mix(in srgb,var(--rose) 11%,white);color:var(--rose);font-weight:900}.p20-program-card{grid-column:1/-1}.p20-timeline{display:grid;gap:0;margin-top:10px}.p20-timeline-item{display:grid;grid-template-columns:105px 1fr;gap:18px;padding:15px 0;border-bottom:1px solid #eee0d2}.p20-timeline-item:last-child{border-bottom:0}.p20-timeline-item time{font-weight:800;color:var(--gold2);letter-spacing:.04em}.p20-form-shell{min-height:100vh;display:grid;place-items:center;padding:70px 14px}.p20-form-card{width:min(720px,100%);padding:30px;border:1px solid #e7d0b6;border-radius:24px;background:#fff;box-shadow:0 22px 70px rgba(74,51,37,.12)}.p20-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.p20-choice-grid label{position:relative}.p20-choice-grid input{position:absolute;opacity:0}.p20-choice-grid span{display:block;padding:13px;border:1px solid #dbc4aa;border-radius:12px;cursor:pointer;text-align:center;font-size:.75rem}.p20-choice-grid label:has(input:checked) span{border-color:var(--rose);box-shadow:0 0 0 1px var(--rose);background:color-mix(in srgb,var(--rose) 7%,white)}.p20-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.p20-book-layout{display:grid;grid-template-columns:380px 1fr;gap:18px;align-items:start}.p20-book-form{position:sticky;top:80px}.p20-book-wall{columns:2;column-gap:14px}.p20-book-note{break-inside:avoid;margin:0 0 14px;padding:22px;border-radius:18px;background:#fff;border:1px solid #ead8c6;box-shadow:0 12px 30px rgba(74,51,37,.07)}.p20-book-note p{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.35rem;line-height:1.35;margin:0 0 14px}.p20-book-note footer{display:flex;justify-content:space-between;gap:10px;font-size:.68rem;color:var(--muted)}.p20-book-note footer strong{color:var(--gold2)}
@media(max-width:900px){.p20-language-grid{grid-template-columns:1fr}.p20-program-row{grid-template-columns:78px 1fr 38px}.p20-program-row input:nth-child(3),.p20-program-row input:nth-child(4){grid-column:2/3}.p20-stat-grid{grid-template-columns:repeat(2,1fr)}.p20-book-admin-grid{grid-template-columns:1fr}.p20-detail-grid{grid-template-columns:1fr}.p20-program-card{grid-column:auto}.p20-book-layout{grid-template-columns:1fr}.p20-book-form{position:static}.p20-book-wall{columns:1}}
@media(max-width:620px){.p20-module-head,.p20-public-head{flex-direction:column}.p20-program-row{grid-template-columns:1fr 38px}.p20-program-row input{grid-column:1/2!important}.p20-choice-grid{grid-template-columns:1fr}.p20-stat-grid{grid-template-columns:1fr 1fr}.p20-public-wrap{padding-top:60px}.p20-form-card{padding:20px}.p20-public-card{padding:20px}}


/* ==========================================================
   JC Events — Panel event navigation standardization 20.1
   ========================================================== */
.event-workspace-head{
    display:grid;
    grid-template-columns:minmax(210px,.72fr) minmax(0,2.28fr);
    gap:26px;
    align-items:end;
    margin:4px 0 18px;
    padding:20px 0 4px;
}
.event-workspace-identification h1{
    margin:3px 0 5px;
    font-size:clamp(2rem,3.6vw,3.35rem);
    line-height:.92;
}
.event-workspace-identification .muted{margin:0}
.event-global-nav{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    justify-content:flex-start;
    align-items:center;
}
.event-nav-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:43px;
    padding:9px 15px;
    border:1px solid var(--gold2);
    border-radius:12px;
    background:rgba(255,255,255,.72);
    color:var(--gold2);
    font-weight:800;
    font-size:.80rem;
    line-height:1.15;
    text-decoration:none;
    transition:background .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease;
}
.event-nav-link:hover{
    transform:translateY(-1px);
    background:#fff;
    box-shadow:0 7px 18px rgba(70,45,28,.07);
}
.event-nav-link.active{
    background:var(--gold2);
    color:#fff;
    box-shadow:0 7px 18px color-mix(in srgb,var(--gold2) 18%,transparent);
}
.event-nav-public{
    border-style:dashed;
}
.event-context-nav{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
    margin:0 0 22px;
    padding:9px 10px;
    border:1px solid #ead8c0;
    border-radius:13px;
    background:rgba(255,255,255,.55);
}
.event-context-label{
    padding:5px 7px;
    color:var(--muted);
    font-size:.64rem;
    font-weight:900;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.event-context-link{
    display:inline-flex;
    align-items:center;
    min-height:32px;
    padding:6px 10px;
    border-radius:8px;
    color:var(--ink);
    font-size:.70rem;
    font-weight:750;
    text-decoration:none;
}
.event-context-link:hover{background:#fff}
.event-context-link.active{
    background:color-mix(in srgb,var(--rose) 11%,#fff);
    color:var(--rose);
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rose) 36%,transparent);
}
.event-local-head{
    display:flex;
    justify-content:space-between;
    gap:18px;
    align-items:flex-end;
    margin:4px 0 18px;
}
.event-local-head h2{
    margin:0;
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:clamp(1.55rem,2.5vw,2.25rem);
    line-height:1;
}
.event-local-head p{margin:6px 0 0}
.event-local-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    justify-content:flex-end;
}
@media(max-width:980px){
    .event-workspace-head{grid-template-columns:1fr;gap:14px;align-items:start}
}
@media(max-width:640px){
    .event-workspace-head{padding-top:8px}
    .event-global-nav{
        display:grid;
        grid-template-columns:1fr 1fr;
        width:100%;
    }
    .event-nav-link{width:100%;padding:9px 8px;font-size:.72rem}
    .event-context-nav{overflow-x:auto;flex-wrap:nowrap;padding:8px}
    .event-context-label{display:none}
    .event-context-link{white-space:nowrap}
    .event-local-head{align-items:flex-start;flex-direction:column}
    .event-local-actions{justify-content:flex-start}
}


/* ============================================================
   JC EVENTS 22.3 — clear separation between platform roles
   ============================================================ */
.brand-role{display:flex!important;flex-direction:column;align-items:flex-start;gap:1px;line-height:1}
.brand-role small{font-family:Montserrat,Arial,sans-serif;font-size:.54rem;letter-spacing:.16em;font-weight:800;opacity:.82}
.topbar-superadmin{
    background:linear-gradient(90deg,#182232,#222e42)!important;
    border-bottom-color:#384762!important;
    color:#fff;
}
.topbar-superadmin .brand,.topbar-superadmin .nav a,.topbar-superadmin .btn.text{color:#fff!important}
.topbar-superadmin .lang-switch{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.24)}
.topbar-superadmin .lang-pill{color:#fff}
.topbar-superadmin .lang-pill.active{background:#d1a24a;color:#172131}
.superadmin-area{background:#f4f6f9}
.superadmin-area main.wrap{border-top:4px solid #d1a24a}

.topbar-client{
    background:linear-gradient(90deg,#fff8f4,#fff1f3)!important;
    border-bottom:2px solid #c35372!important;
}
.topbar-client .brand{color:#7c3149!important}
.topbar-client .brand-role small{color:#b34465}
.client-admin-area main.wrap{border-top:4px solid #b34465}
.client-admin-area{background:#fffaf6}

.auth-role-strip{
    position:fixed;top:0;left:0;right:0;z-index:60;
    text-align:center;padding:8px 12px;
    font:800 .68rem/1 Montserrat,Arial,sans-serif;
    letter-spacing:.18em;
}
.auth-superadmin{background:radial-gradient(circle at 70% 20%,#34435f 0,#1a2537 45%,#101720 100%)!important}
.auth-role-superadmin{background:#d1a24a;color:#172131}
.auth-role-client{background:#b34465;color:#fff}
.auth-superadmin .login-shell,.auth-client .login-shell{padding-top:70px}
.role-login-card{border-width:1px!important;box-shadow:0 22px 60px rgba(0,0,0,.16)!important}
.superadmin-login-card{background:#172131!important;color:#fff;border-color:#42516a!important}
.superadmin-login-card h1,.superadmin-login-card label{color:#fff!important}
.superadmin-login-card .muted{color:#bdc8d7!important}
.superadmin-login-card input{background:#202d42!important;border-color:#52637f!important;color:#fff!important}
.superadmin-login-card .btn.primary{background:#d1a24a!important;color:#172131!important}
.client-login-card{border-top:5px solid #b34465!important}
.auth-client{background:linear-gradient(135deg,#fffaf6,#f7e7e8)!important}
@media(max-width:800px){
  .brand-role small{display:block}
  .topbar-superadmin .toprow,.topbar-client .toprow{align-items:flex-start}
}


/* ============================================================
   JC EVENTS — FASE 23 · INVITACIÓN ELECTRÓNICA
   ============================================================ */
.p23-layout{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(320px,.75fr);
    gap:18px;
    align-items:start;
}
.p23-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.p23-mode-card{
    display:flex;gap:10px;align-items:flex-start;padding:14px;border:1px solid #e4c7a4;
    border-radius:14px;background:#fff;cursor:pointer
}
.p23-mode-card:has(input:checked){border-color:var(--rose);box-shadow:0 0 0 2px color-mix(in srgb,var(--rose) 16%,transparent)}
.p23-mode-card small{display:block;color:#806f69;margin-top:4px;line-height:1.35}
.p23-preview-card{position:sticky;top:96px}
.p23-preview{margin-top:12px}
.p23-card-design{
    border-radius:20px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 20px 50px rgba(66,39,28,.18);
    border:1px solid #ead8c6;
}
.p23-card-photo-wrap{
    position:relative;
    height:430px;
    overflow:hidden;
    background:#e8e1de;
}
.p23-card-photo-blur{
    position:absolute;
    inset:-24px;
    background-image:var(--p23-cover);
    background-size:cover;
    background-position:center;
    filter:blur(22px);
    opacity:.45;
    transform:scale(1.08);
}
.p23-card-photo{
    position:relative;
    z-index:1;
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
}
.p23-card-content{
    position:relative;
    padding:22px 22px 25px;
    text-align:center;
    color:#342522;
    background:#fffaf6;
}
.p23-card-content .eyebrow{color:#9a671f}
.p23-card-content h3{
    font-family:Georgia,serif;
    font-size:clamp(2rem,4vw,3rem);
    line-height:1;
    margin:8px 0 12px;
    color:#342522;
}
.p23-card-content p{margin:5px 0;font-size:1rem}
.p23-card-content small{color:#776863}
.p23-custom-preview{width:100%;max-height:620px;object-fit:contain;border-radius:16px;background:#eee}
.p23-pdf-preview{min-height:360px;display:grid;place-items:center;gap:14px;background:#f6f0ea;border-radius:16px;padding:24px}
.p23-pdf-icon{font-size:2rem;font-weight:900;color:#b34465}
.p23-preview-actions{margin-top:12px;display:flex;gap:8px}
.p23-qr-preview{display:flex;align-items:center;gap:12px;margin-top:16px;padding:12px;border-radius:14px;background:#f8f2ec}
.p23-qr-box{
    position:relative;
    width:92px;
    height:92px;
    flex:0 0 92px;
    background:#fff;
    padding:5px;
    border-radius:9px;
    overflow:hidden;
}
.p23-qr-box canvas,
.p23-qr-box img{
    position:absolute!important;
    inset:5px!important;
    width:calc(100% - 10px)!important;
    height:calc(100% - 10px)!important;
    max-width:calc(100% - 10px)!important;
    max-height:calc(100% - 10px)!important;
    object-fit:contain;
}
.p23-qr-box.qr-rendered-canvas img{display:none!important}
.p23-guest-table td{vertical-align:middle}.p23-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.p23-actions form{margin:0}
.p23-public-body{background:#f8f2ec;min-height:100vh}
.p23-public-wrap{width:min(960px,calc(100% - 28px));margin:0 auto;padding:82px 0 70px}
.p23-public-wrap>.public-back{display:inline-flex;margin-bottom:14px}
.p23-public-card{background:#fff;border:1px solid #ead8c6;border-radius:26px;overflow:hidden;box-shadow:0 24px 70px rgba(70,44,31,.14)}
.p23-public-hero{
    height:min(68vh,680px);
    min-height:430px;
    position:relative;
    overflow:hidden;
    background:#e5ddda;
}
.p23-public-hero-blur{
    position:absolute;
    inset:-30px;
    background-image:var(--p23-cover);
    background-size:cover;
    background-position:center;
    filter:blur(26px);
    opacity:.52;
    transform:scale(1.10);
}
.p23-public-hero-image{
    position:relative;
    z-index:1;
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
}
.p23-public-heading{
    padding:28px 24px 22px;
    text-align:center;
    background:#fffaf6;
    border-bottom:1px solid #ead8c6;
}
.p23-public-heading .eyebrow{color:#9a671f}
.p23-public-heading h1{
    font-size:clamp(2.8rem,7vw,5.4rem);
    line-height:.96;
    color:#342522;
    margin:8px 0 14px;
}
.p23-public-heading p{font-weight:800;letter-spacing:.06em;margin:0;color:#8a5d20}
.p23-public-custom-image{display:block;width:100%;max-height:75vh;object-fit:contain;background:#eee}
.p23-public-pdf{min-height:60vh;display:grid;place-items:center;align-content:center;gap:14px;padding:30px;text-align:center}
.p23-public-info{padding:30px}
.p23-public-intro{font-family:Georgia,serif;text-align:center;font-size:1.25rem;line-height:1.55;margin:0 auto 26px;max-width:720px}
.p23-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 auto 24px}
.p23-facts>div{padding:16px;border:1px solid #ead8c6;border-radius:14px;background:#fffaf6}
.p23-facts span{display:block;color:#9a6a24;text-transform:uppercase;font-size:.68rem;letter-spacing:.12em;font-weight:800;margin-bottom:6px}
.p23-facts strong{display:block}.p23-facts a{display:inline-block;margin-top:8px}
.p23-public-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin:22px 0}
.p23-public-qr{display:grid;place-items:center;text-align:center;margin-top:22px}
.p23-public-qr .p23-qr-box{width:150px;height:150px;flex-basis:150px}
.p23-public-qr p{margin:9px 0 0;color:#7c6a64}
@media(max-width:850px){
    .p23-layout{grid-template-columns:1fr}.p23-preview-card{position:static}.p23-mode-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
    .p23-public-wrap{width:min(100% - 16px,960px);padding-top:72px}
    .p23-public-card{border-radius:20px}
    .p23-public-hero{min-height:360px;height:58vh}
    .p23-public-info{padding:22px 16px}
    .p23-facts{grid-template-columns:1fr}
    .p23-public-actions .btn{width:100%;text-align:center}
    .p23-public-heading{padding:22px 16px 18px}
    .p23-public-heading h1{font-size:clamp(2.5rem,12vw,4.2rem)}
    .p23-card-photo-wrap{height:390px}
}


/* JC Events 23.3 — invitation guest editing */
.p23-guest-table td:nth-child(4),
.p23-guest-table th:nth-child(4){text-align:center}
.p23-guest-table .p23-actions .btn.text{
    border:1px solid #d8b88f;
    border-radius:9px;
    padding:8px 10px;
    text-decoration:none;
}


/* JC Events 23.4 — validated RSVP */
.p234-rsvp-card{max-width:720px!important}
.p234-rsvp-card h2{margin-bottom:6px}
.p234-rsvp-form{margin-top:10px}
.p234-invitation-found{
    padding:18px;
    border:1px solid #e7cba8;
    border-radius:16px;
    background:#fffaf6;
}
.p234-invitation-found h2{margin:5px 0 8px}
.p234-contact-lines{display:flex;gap:8px 16px;flex-wrap:wrap;color:#766863;font-size:.92rem}
.p234-pass-box{
    margin-top:12px;
    padding:12px 14px;
    border-radius:12px;
    background:#f4e6d7;
    color:#654419;
    font-weight:800;
}
#partySizeSelect{font-size:1.05rem;font-weight:700}
@media(max-width:620px){
    .p234-contact-lines{display:grid;gap:4px}
    .p234-invitation-found{padding:15px}
}


/* ==========================================================
   JC EVENTS — FASE 24A · CENTRO DE COMUNICACIONES
   ========================================================== */
.p24-stat-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:10px;
    margin-top:18px;
}
.p24-stat-grid a,
.p24-mini-stats>div{
    display:flex;
    min-height:92px;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    gap:5px;
    padding:14px 10px;
    border:1px solid #ead8c6;
    border-radius:14px;
    background:#fffaf6;
    color:inherit;
    text-decoration:none;
}
.p24-stat-grid a:hover{border-color:#b67b2d;transform:translateY(-1px)}
.p24-stat-grid strong,
.p24-mini-stats strong{
    font-family:Georgia,serif;
    font-size:1.65rem;
    color:#422d27;
}
.p24-stat-grid span,
.p24-mini-stats span{font-size:.76rem;color:#796a64}
.p24-big-date{font-family:Georgia,serif;font-size:1.55rem;margin:12px 0}
.p24-quick-actions{display:flex;gap:10px;flex-wrap:wrap}
.p24-mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px}
.p24-filter-form{
    display:grid;
    grid-template-columns:minmax(180px,.55fr) minmax(260px,1fr) auto;
    align-items:end;
    gap:10px;
    margin-top:18px;
}
.p24-search-field{min-width:0}
.p24-guests-table td{vertical-align:middle}
.p24-guests-table small{color:#83716b}
.p24-two-col{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(330px,.72fr);gap:18px;align-items:start}
.p24-language-block{
    border:1px solid #ead8c6;
    border-radius:15px;
    padding:14px;
    background:#fffaf6;
}
.p24-language-block h3{margin:0 0 10px;color:#9a671f}
.p24-campaign-list{display:grid;gap:10px}
.p24-campaign-list article{
    border:1px solid #ead8c6;
    border-radius:14px;
    padding:14px;
    background:#fffaf6;
}
.p24-campaign-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.p24-campaign-title small{color:#84716a}
.p24-campaign-metrics{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.p24-campaign-metrics span{padding:6px 8px;border-radius:9px;background:#f3e6d9;font-size:.78rem}
.p24-reminder-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) 210px;
    gap:18px;
    align-items:center;
    padding:16px 0;
    border-bottom:1px solid #eee1d5;
}
.p24-reminder-row:last-of-type{border-bottom:0}
@media(max-width:1050px){
    .p24-stat-grid{grid-template-columns:repeat(3,1fr)}
    .p24-two-col{grid-template-columns:1fr}
}
@media(max-width:760px){
    .p24-stat-grid{grid-template-columns:repeat(2,1fr)}
    .p24-mini-stats{grid-template-columns:repeat(2,1fr)}
    .p24-filter-form{grid-template-columns:1fr}
    .p24-reminder-row{grid-template-columns:1fr}
    .p24-guests-table{min-width:980px}
}


/* JC Events — Fase 25: Control avanzado de invitados */
.p25-capacity-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:18px}.p25-capacity-grid>div{display:flex;min-height:92px;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:12px;border:1px solid #ead8c6;border-radius:14px;background:#fffaf6}.p25-capacity-grid strong{font-family:Georgia,serif;font-size:1.7rem;color:#422d27}.p25-capacity-grid span{font-size:.76rem;color:#796a64}.p25-filter-form{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(170px,.7fr) minmax(240px,1fr) auto;gap:10px;align-items:end;margin-top:18px}.p25-guests-table{min-width:1180px}.p25-guests-table td{vertical-align:middle}.p25-code{font-size:.73rem;letter-spacing:.05em;white-space:nowrap}.p25-code-large{display:inline-block;padding:11px 14px;border-radius:10px;background:#f4e6d7;color:#422d27;font-weight:800;letter-spacing:.12em;font-size:1rem}.p25-pass-layout{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:18px;align-items:start}.p25-pass-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.p25-pass-facts>div{padding:14px;border:1px solid #ead8c6;border-radius:13px;background:#fffaf6;text-align:center}.p25-pass-facts span{display:block;font-size:.73rem;color:#796a64;margin-bottom:5px}.p25-pass-facts strong{font-family:Georgia,serif;font-size:1.5rem}.p25-pass-actions{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.p25-qr-card{text-align:center}.p25-qr,.p25-public-qr{position:relative;margin:14px auto;background:#fff;padding:16px;border:1px solid #ead8c6;border-radius:16px;width:332px;height:332px;overflow:hidden}.p25-qr-inner{position:relative;width:300px;height:300px;overflow:hidden;background:#fff}.p25-qr-inner canvas,.p25-qr-inner img{max-width:100%!important;max-height:100%!important;display:block!important}.p25-public-pass-body{background:#f8f2ec}.p25-public-pass-shell{max-width:760px;margin:0 auto;padding:28px 16px}.p25-public-pass-card{background:#fff;border:1px solid #ead8c6;border-radius:24px;padding:28px;text-align:center;box-shadow:0 22px 60px rgba(66,39,28,.12)}.p25-public-pass-card h1{font-size:clamp(2.2rem,7vw,4.6rem);margin:8px 0}.p25-public-pass-card h2{margin:8px 0}.p25-public-group{font-weight:700;color:#9a671f}.p25-present-note{margin:18px auto;max-width:520px}.p25-public-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}@media(max-width:980px){.p25-capacity-grid{grid-template-columns:repeat(3,1fr)}.p25-pass-layout{grid-template-columns:1fr}.p25-qr-card{max-width:520px}}@media(max-width:760px){.p25-filter-form{grid-template-columns:1fr}.p25-capacity-grid{grid-template-columns:repeat(2,1fr)}.p25-pass-facts{grid-template-columns:1fr}.p25-qr,.p25-public-qr{width:min(300px,88vw);height:min(300px,88vw)}.p25-qr-inner{width:100%;height:100%}}


/* ==========================================================
   JC EVENTS — FASE 26 · CHECK-IN / MODO PUERTA
   ========================================================== */
.p26-stat-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
    margin-top:18px;
}
.p26-stat-grid>div,
.p26-door-stats>div{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:92px;
    padding:12px;
    text-align:center;
    background:#fffaf6;
    border:1px solid #ead8c6;
    border-radius:14px;
}
.p26-stat-grid strong,
.p26-door-stats strong{
    font-family:Georgia,serif;
    font-size:1.8rem;
    color:#422d27;
}
.p26-stat-grid span,
.p26-door-stats span{
    font-size:.76rem;
    color:#796a64;
}
.p26-search-form{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    align-items:end;
    margin-top:18px;
}
.p26-result-table{min-width:880px}
.p26-movement-table{min-width:760px}
.p26-guest-layout{
    display:grid;
    grid-template-columns:minmax(0,1.2fr) minmax(300px,.65fr);
    gap:18px;
    align-items:start;
}
.p26-guest-card h2{font-size:clamp(2rem,5vw,3.4rem);margin:4px 0}
.p26-group{font-weight:800;color:#9a671f;font-size:1.08rem}
.p26-guest-facts{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:10px;
    margin:18px 0;
}
.p26-guest-facts>div{
    padding:15px 10px;
    text-align:center;
    background:#fffaf6;
    border:1px solid #ead8c6;
    border-radius:14px;
}
.p26-guest-facts span{display:block;color:#796a64;font-size:.72rem;margin-bottom:6px}
.p26-guest-facts strong{font-family:Georgia,serif;font-size:1.75rem}
.p26-entry-form{
    margin-top:18px;
    padding:18px;
    background:#fffaf6;
    border:1px solid #ead8c6;
    border-radius:16px;
}
.p26-entry-form select,
.p26-correction-card select{
    font-size:1.18rem;
    font-weight:800;
}
.p26-big-action{
    width:100%;
    min-height:54px;
    font-size:1rem;
}
.p26-complete-state{
    margin:18px 0;
    padding:20px;
    text-align:center;
    border-radius:16px;
    background:#dff4e8;
    border:1px solid #a9ddbd;
    color:#176536;
    font-size:1.08rem;
}
.p26-door-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.p26-door-shell{display:grid;gap:16px}
.p26-door-top{
    display:flex;
    justify-content:space-between;
    gap:18px;
    align-items:flex-start;
}
.p26-door-top h2{margin:4px 0}
.p26-door-stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
}
.p26-door-grid{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(320px,.7fr);
    gap:18px;
    align-items:start;
}
.p26-scanner-card{overflow:hidden}
.p26-video-shell{
    position:relative;
    width:100%;
    aspect-ratio:4/3;
    max-height:62vh;
    overflow:hidden;
    border-radius:18px;
    background:#171717;
    display:grid;
    place-items:center;
}
.p26-video-shell video{
    width:100%;
    height:100%;
    object-fit:cover;
}
.p26-video-placeholder{
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    color:#fff;
    font-family:Georgia,serif;
    font-size:3rem;
    opacity:.55;
}
.p26-scan-frame{
    position:absolute;
    width:min(56%,300px);
    aspect-ratio:1;
    border:3px solid rgba(255,255,255,.95);
    border-radius:22px;
    box-shadow:0 0 0 999px rgba(0,0,0,.20);
    pointer-events:none;
    z-index:3;
}
.p26-scanner-status{
    margin-top:12px;
    padding:10px 12px;
    border-radius:12px;
    background:#f4e6d7;
    color:#5d463e;
    font-weight:700;
}
.p26-camera-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
#manualCode.is-invalid{outline:2px solid #bd395a}
.p26-correction-card hr{border:0;border-top:1px solid #ead8c6;margin:22px 0}
@media(max-width:1050px){
    .p26-stat-grid{grid-template-columns:repeat(3,1fr)}
    .p26-door-grid,.p26-guest-layout{grid-template-columns:1fr}
}
@media(max-width:760px){
    .p26-stat-grid{grid-template-columns:repeat(2,1fr)}
    .p26-search-form{grid-template-columns:1fr}
    .p26-guest-facts{grid-template-columns:repeat(2,1fr)}
    .p26-door-top{display:grid}
    .p26-door-stats{grid-template-columns:repeat(3,1fr)}
    .p26-video-shell{aspect-ratio:3/4;max-height:58vh}
    .p26-camera-actions .btn{flex:1}
}

/* JC Events 26.1 — QR scanner reliability */
.p26-scanner-status.p26-status-detected{
    background:#dff4e8;
    border:1px solid #a9ddbd;
    color:#176536;
}

/* ==========================================================
   JC EVENTS — CORRECCIÓN 26.3
   Door access · Printable quick entry · Event capacity
   ========================================================== */
.p263-capacity-box{
    margin-top:8px;
    padding:18px;
    border:1px solid #ead8c6;
    border-radius:16px;
    background:#fffaf6;
}
.p263-capacity-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:18px;
    margin-bottom:14px;
}
.p263-capacity-head>div>small{display:block;margin-top:4px}
.p263-capacity-fields{margin-top:8px}
.p263-capacity-stats,
.p263-invite-capacity{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:9px;
    margin-top:14px;
}
.p263-invite-capacity{grid-template-columns:repeat(3,minmax(0,1fr));margin:12px 0 18px}
.p263-capacity-stats>div,
.p263-invite-capacity>div{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:78px;
    padding:10px;
    text-align:center;
    border:1px solid #ead8c6;
    border-radius:13px;
    background:#fff;
}
.p263-capacity-stats strong,
.p263-invite-capacity strong{
    font-family:Georgia,serif;
    font-size:1.45rem;
    color:#422d27;
}
.p263-capacity-stats span,
.p263-invite-capacity span{font-size:.72rem;color:#796a64;margin-top:4px}
.p263-invite-capacity.is-extra{border-left:4px solid #d69225;padding-left:9px}
.p263-invite-capacity.is-full{border-left:4px solid #b93e59;padding-left:9px}
.p263-print-destination{margin-bottom:16px}

.p263-door-access-grid{
    display:grid;
    grid-template-columns:300px minmax(0,1fr);
    gap:22px;
    align-items:start;
    margin-top:18px;
}
.p263-door-qr-card{
    border:1px solid #ead8c6;
    border-radius:16px;
    padding:16px;
    background:#fffaf6;
}
.p263-door-qr-card h3{margin-top:0}
.p263-door-access-qr{width:250px;height:250px;max-width:100%;margin:0 auto}
.p263-door-share-actions,
.p263-door-danger-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}
.p263-door-danger-actions{padding-top:16px;border-top:1px solid #ead8c6;margin-top:20px}

.p263-door-public-body{
    min-height:100vh;
    background:#f8f3ed;
    color:#342522;
}
.p263-door-header{
    position:sticky;
    top:0;
    z-index:40;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:12px max(14px,calc((100vw - 1100px)/2));
    background:rgba(255,250,246,.96);
    border-bottom:1px solid #e6cfb7;
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}
.p263-door-header strong{font-family:Georgia,serif;font-size:1.15rem}
.p263-door-public-shell{width:min(1100px,calc(100% - 24px));margin:0 auto;padding:18px 0 50px}
.p263-door-result-list{display:grid;gap:8px}
.p263-door-result-list a{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:13px 14px;
    border:1px solid #ead8c6;
    border-radius:13px;
    background:#fffaf6;
    color:inherit;
    text-decoration:none;
}
.p263-door-result-list a:hover{border-color:#a86e24}
.p263-door-result-list small{display:block;color:#7e6e68;margin-top:3px}
.p263-door-result-list span{font-weight:800;color:#9a671f}
.p263-door-guest-name{font-size:clamp(2.4rem,10vw,4.8rem);margin:7px 0 5px}
.p263-door-correction{margin-top:20px;padding-top:14px;border-top:1px solid #ead8c6}
.p263-door-correction summary{cursor:pointer;font-weight:800;color:#785935}

.p263-participate-body{min-height:100vh;background:#f7f1eb}
.p263-participate-shell{width:min(780px,calc(100% - 28px));margin:0 auto;padding:82px 0 60px}
.p263-participate-card{overflow:hidden;border:1px solid #e5cdb5;border-radius:24px;background:#fff;box-shadow:0 22px 60px rgba(76,47,31,.13)}
.p263-participate-photo{position:relative;height:min(46vh,390px);overflow:hidden;background:#e6dfdc}
.p263-participate-blur{position:absolute;inset:-30px;background-size:cover;background-position:center;filter:blur(25px);opacity:.42;transform:scale(1.08)}
.p263-participate-photo img{position:relative;z-index:1;width:100%;height:100%;display:block;object-fit:contain}
.p263-participate-content{padding:30px;text-align:center}
.p263-participate-content h1{font-size:clamp(2.5rem,8vw,4.5rem);margin:8px 0 10px}
.p263-participate-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}
.p263-participate-action{
    min-height:150px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:12px;
    padding:18px;
    border:1px solid #dcb78d;
    border-radius:18px;
    background:#fffaf6;
    color:#3e2c26;
    text-decoration:none;
    font-size:1.05rem;
}
.p263-participate-action.primary{background:var(--rose);color:#fff;border-color:var(--rose)}
.p263-action-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.76);color:#8c5b18;font-size:1.7rem;font-weight:800}
.p263-participate-action.primary .p263-action-icon{color:var(--rose)}

@media(max-width:800px){
    .p263-door-access-grid{grid-template-columns:1fr}
    .p263-door-qr-card{max-width:330px}
    .p263-capacity-head{display:grid}
}
@media(max-width:620px){
    .p263-capacity-stats{grid-template-columns:repeat(2,1fr)}
    .p263-invite-capacity{grid-template-columns:1fr 1fr}
    .p263-participate-actions{grid-template-columns:1fr}
    .p263-participate-content{padding:24px 18px}
    .p263-participate-photo{height:38vh;min-height:260px}
    .p263-door-header{padding:10px 12px}
    .p263-door-public-shell{width:min(100% - 16px,1100px)}
}


/* ==========================================================
   JC EVENTS — FASE 27 · MUSICA / DJ REQUESTS
   ========================================================== */
.p27-stat-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
    margin-top:18px;
}
.p27-stat-grid>div{
    min-height:90px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    border:1px solid #ead8c6;
    border-radius:14px;
    background:#fffaf6;
}
.p27-stat-grid strong{font:700 1.7rem Georgia,serif;color:#422d27}
.p27-stat-grid span{font-size:.75rem;color:#796a64}
.p27-panel-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:18px;margin-top:18px}
.p27-panel-qr-row{display:grid;grid-template-columns:210px minmax(0,1fr);gap:18px;align-items:center}
.p27-panel-qr{width:200px;height:200px}
.p27-link-actions{display:flex;gap:8px;flex-wrap:wrap}
.p27-panel-top{display:grid;gap:8px}
.p27-panel-top article{display:flex;justify-content:space-between;gap:10px;padding:11px 12px;background:#fffaf6;border:1px solid #ead8c6;border-radius:12px}
.p27-panel-top article div{display:grid}
.p27-panel-top small{color:#796a64}
.p27-panel-top span{font-weight:900;white-space:nowrap}
.p27-setting-block{padding:16px;border:1px solid #ead8c6;border-radius:14px;background:#fffaf6;display:grid;gap:14px}
.p27-dj-access-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;margin-top:18px;align-items:center}
.p27-dj-qr{width:240px;height:240px}
.p27-access-actions{display:flex;gap:8px;flex-wrap:wrap}
.p27-status-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0 20px}
.p27-status-tabs a{padding:8px 11px;border:1px solid #dfc7ab;border-radius:999px;text-decoration:none;color:#4a3832;font-weight:700;font-size:.82rem}
.p27-status-tabs a.active{background:#9a671f;color:#fff;border-color:#9a671f}
.p27-admin-request-list{display:grid;gap:12px}
.p27-admin-request{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px;border:1px solid #ead8c6;border-radius:16px;background:#fffaf6}
.p27-request-main h3{font:700 1.45rem Georgia,serif;margin:8px 0 2px}
.p27-request-main p{margin:0}
.p27-request-main small{color:#7b6a65}
.p27-request-votes{font-size:1.2rem;white-space:nowrap}
.p27-request-meta{grid-column:1/-1;display:flex;gap:12px;flex-wrap:wrap;color:#806f69;font-size:.78rem}
.p27-request-actions{grid-column:1/-1;display:flex;gap:7px;flex-wrap:wrap}
.p27-request-actions form{margin:0}
.p27-vote-details{grid-column:1/-1}
.p27-vote-list{display:grid;gap:7px;margin-top:8px}
.p27-vote-list>div{padding:8px 10px;background:#fff;border-radius:10px;border:1px solid #eee0d2}
.p27-vote-list span{margin-left:8px;color:#826c63}
.p27-vote-list p{margin:5px 0 0}

/* Public music */
.p27-music-public{min-height:100vh;background:#141116;color:#fff}
.p27-music-shell{width:min(760px,100%);margin:auto;padding:70px 16px 40px}
.p27-music-hero{position:relative;min-height:250px;overflow:hidden;border-radius:24px;background:linear-gradient(135deg,#251725,#110f12);display:flex;align-items:flex-end}
.p27-music-cover{position:absolute;inset:0;background-position:center;background-size:cover;filter:blur(2px);opacity:.28;transform:scale(1.04)}
.p27-music-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.78))}
.p27-music-hero-content{position:relative;z-index:2;padding:26px;width:100%}
.p27-music-hero h1{font:700 clamp(2.5rem,10vw,4.8rem) Georgia,serif;margin:6px 0 10px}
.p27-music-hero p{margin:0;color:#e6dee6}
.p27-public-notice{margin-top:14px}
.p27-request-card{margin-top:16px;background:#fff;color:#33292d;padding:20px;border-radius:22px}
.p27-request-card h2{font:700 1.8rem Georgia,serif;margin:0 0 5px}
.p27-search-status{min-height:20px;color:#8c6a36;font-size:.85rem}
.p27-search-results{display:grid;gap:7px}
.p27-search-result{width:100%;display:flex;justify-content:space-between;gap:12px;align-items:center;text-align:left;padding:12px;border:1px solid #ead8c6;border-radius:13px;background:#fffaf6;cursor:pointer}
.p27-search-result:hover{border-color:#a46d22}
.p27-result-main{display:grid;min-width:0}
.p27-result-main strong{font-size:.98rem}
.p27-result-main small{color:#766a6c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p27-search-result>b{color:#9a671f;white-space:nowrap}
.p27-selected-song{padding:13px;border-radius:14px;background:#eaf8ee;border:1px solid #bfe2ca;display:grid}
.p27-selected-song span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#32704a}
.p27-selected-song small{color:#56665b}
.p27-manual-toggle{justify-self:start}
.p27-manual-fields{grid-template-columns:1fr 1fr;gap:10px}
.p27-send-request{min-height:52px;font-size:1rem}
.p27-party-top{margin-top:18px;padding:18px;background:#211a21;border-radius:20px}
.p27-party-top h2{font:700 1.5rem Georgia,serif;margin-top:0}
.p27-top-list{display:grid;gap:8px}
.p27-top-list article{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 12px;background:#2d242d;border-radius:12px}
.p27-top-list article div{display:grid}
.p27-top-list small{color:#c8bcc8}

/* Participate button */
.p27-participate-music .p263-action-icon{font-family:Georgia,serif}

/* DJ */
.p27-dj-body{margin:0;min-height:100vh;background:#0e0d10;color:#fff;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.p27-dj-header{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;gap:18px;align-items:center;padding:15px 20px;background:#171519;border-bottom:1px solid #332f35}
.p27-dj-header span{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:#b9aeba}
.p27-dj-header h1{font:700 clamp(1.5rem,4vw,2.2rem) Georgia,serif;margin:2px 0}
.p27-dj-header-actions{display:flex;gap:14px;align-items:center}
.p27-dj-header-actions>a{color:#fff;text-decoration:none;border:1px solid #4a444c;padding:8px 10px;border-radius:10px}
.p27-dj-live-stats{display:flex;gap:10px}
.p27-dj-live-stats span{padding:7px 9px;background:#27232a;border-radius:9px}
.p27-dj-shell{width:min(1100px,100%);margin:auto;padding:18px}
.p27-dj-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:8px}
.p27-dj-tabs button{border:1px solid #3c363f;background:#1b181d;color:#ddd;padding:10px 13px;border-radius:999px;white-space:nowrap;cursor:pointer}
.p27-dj-tabs button.active{background:#fff;color:#111}
.p27-dj-status{height:22px;color:#9d929f;font-size:.8rem}
.p27-dj-queue{display:grid;gap:12px}
.p27-dj-song{padding:18px;border:1px solid #343037;background:#171519;border-radius:18px}
.p27-dj-song-head{display:flex;justify-content:space-between;gap:14px}
.p27-dj-song h2{font:700 clamp(1.7rem,5vw,2.7rem) Georgia,serif;margin:0}
.p27-dj-song p{font-size:1.05rem;color:#d0c4d0;margin:4px 0}
.p27-dj-song small{color:#928793}
.p27-dj-votes{font-size:1.3rem;white-space:nowrap}
.p27-dj-song details{margin-top:12px}
.p27-dj-requesters{display:grid;gap:6px;margin-top:8px}
.p27-dj-requester{display:grid;padding:8px 10px;border-radius:10px;background:#211e23}
.p27-dj-requester span{color:#bdb0be}
.p27-dj-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.p27-dj-actions .btn{border-color:#514a53;color:#fff;background:#211e23}
.p27-dj-actions .btn.primary{background:#a64162;border-color:#a64162}
.p27-dj-empty{padding:50px 20px;text-align:center;color:#928793}
.p27-dj-closed{min-height:100vh;display:grid;place-items:center;align-content:center;text-align:center;padding:24px}
.p27-dj-closed h1{font:700 2.5rem Georgia,serif}
.p27-dj-closed button{min-height:48px;padding:0 20px;border:0;border-radius:12px;font-weight:800}

@media(max-width:900px){
    .p27-panel-grid{grid-template-columns:1fr}
    .p27-stat-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:650px){
    .p27-panel-qr-row,.p27-dj-access-grid{grid-template-columns:1fr}
    .p27-panel-qr,.p27-dj-qr{margin:auto}
    .p27-stat-grid{grid-template-columns:repeat(2,1fr)}
    .p27-manual-fields{grid-template-columns:1fr}
    .p27-dj-header{align-items:flex-start}
    .p27-dj-header-actions{display:grid;justify-items:end}
    .p27-dj-live-stats{display:none}
    .p27-dj-song-head{align-items:flex-start}
}


/* ==========================================================
   JC EVENTS — V27.1 · DJ LANGUAGES + ACTION FEEDBACK
   ========================================================== */
.p27-dj-title{min-width:0}
.p27-dj-lang{
    display:flex;
    align-items:center;
    gap:3px;
    padding:3px;
    border:1px solid #49434b;
    border-radius:999px;
    background:#171519;
}
.p27-dj-lang a{
    min-width:36px;
    min-height:34px;
    display:grid;
    place-items:center;
    border-radius:999px;
    text-decoration:none;
    color:#bdb3be;
    font-size:.72rem;
    font-weight:900;
}
.p27-dj-lang a.active{
    background:#fff;
    color:#111;
}
.p27-dj-exit{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    max-width:190px;
    text-align:center;
}
.p27-dj-status{
    min-height:30px;
    display:flex;
    align-items:center;
    padding:4px 2px;
    font-size:.85rem;
    transition:.15s ease;
}
.p27-dj-status.working{color:#e2c36d}
.p27-dj-status.success{color:#72d496;font-weight:800}
.p27-dj-status.error{
    min-height:auto;
    margin:6px 0 12px;
    padding:10px 12px;
    color:#ffd7df;
    background:#5a1830;
    border:1px solid #87304e;
    border-radius:10px;
    font-weight:800;
}
.p27-dj-actions button:disabled{
    opacity:.48;
    cursor:wait;
}
.p27-dj-actions button.is-working{
    outline:2px solid #fff;
    outline-offset:2px;
}
@media(max-width:700px){
    .p27-dj-header{
        display:grid;
        grid-template-columns:minmax(0,1fr) auto;
        gap:10px;
        padding:13px 14px;
    }
    .p27-dj-header-actions{
        display:grid;
        grid-template-columns:auto;
        gap:7px;
        justify-items:end;
    }
    .p27-dj-lang{grid-row:1}
    .p27-dj-exit{
        grid-row:2;
        max-width:150px;
        padding:7px 9px!important;
        font-size:.8rem;
    }
    .p27-dj-header h1{
        font-size:clamp(1.65rem,8vw,2.25rem);
        line-height:.98;
    }
    .p27-dj-tabs{
        padding-left:0;
        scrollbar-width:thin;
    }
    .p27-dj-song{
        padding:15px;
    }
    .p27-dj-actions{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .p27-dj-actions .btn{
        width:100%;
        min-height:50px;
        padding:8px 10px;
    }
}


/* ==========================================================
   JC EVENTS — V27.2 · LISTA RAPIDA DEL DJ
   ========================================================== */
.p272-list-tab{
    border-color:#69616c!important;
}
.p272-list-summary{
    display:flex;
    gap:10px;
    align-items:center;
    margin:0 0 12px;
}
.p272-list-summary span{
    display:inline-flex;
    gap:5px;
    align-items:center;
    padding:7px 10px;
    border:1px solid #373239;
    border-radius:999px;
    background:#171519;
    color:#cfc5d0;
    font-size:.8rem;
}
.p272-list-summary strong{
    color:#fff;
}
.p272-quick-mode{
    display:block;
}
.p272-quick-list{
    overflow:hidden;
    border:1px solid #373239;
    border-radius:18px;
    background:#151316;
}
.p272-quick-head{
    padding:12px 14px;
    border-bottom:1px solid #302c32;
    color:#a99fad;
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.1em;
}
.p272-quick-row{
    display:grid;
    grid-template-columns:36px minmax(0,1fr) auto auto;
    gap:10px;
    align-items:center;
    min-height:58px;
    padding:9px 12px;
    border-bottom:1px solid #29262b;
}
.p272-quick-row:last-child{
    border-bottom:0;
}
.p272-order{
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    border-radius:50%;
    background:#242126;
    color:#b9b0bb;
    font-size:.78rem;
    font-weight:800;
}
.p272-song-name{
    min-width:0;
    display:flex;
    gap:8px;
    align-items:center;
}
.p272-song-name strong{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:1rem;
}
.p272-song-name small{
    white-space:nowrap;
    color:#d5a75d;
    font-size:.72rem;
}
.p272-state{
    white-space:nowrap;
    padding:5px 8px;
    border-radius:999px;
    font-size:.68rem;
    font-weight:800;
    border:1px solid #4a454c;
    color:#cfc6d0;
}
.p272-state.state-playing{
    color:#fff;
    background:#7f0028;
    border-color:#bd456b;
}
.p272-state.state-played{
    color:#a7e5bb;
    background:#173323;
    border-color:#2d6a43;
}
.p272-state.state-rejected{
    color:#d2c9d2;
    opacity:.7;
}
.p272-quick-row.status-played .p272-song-name strong{
    color:#8d858e;
    text-decoration:line-through;
}
.p272-quick-row.status-played{
    background:#111012;
}
.p272-quick-row.status-rejected{
    opacity:.62;
}
.p272-quick-btn{
    min-width:105px;
    min-height:34px;
    padding:5px 9px;
    border:1px solid #57515a;
    border-radius:9px;
    background:#211e23;
    color:#fff;
    font-weight:800;
    font-size:.72rem;
    cursor:pointer;
}
.p272-quick-btn.done{
    color:#9ae1b2;
    border-color:#356e49;
    background:#173323;
}
.p272-quick-btn.neutral{
    color:#cfc6d0;
}
.p272-quick-btn:disabled{
    opacity:.5;
    cursor:wait;
}
@media(max-width:650px){
    .p272-quick-row{
        grid-template-columns:30px minmax(0,1fr) auto;
        gap:8px;
        padding:9px 8px;
    }
    .p272-state{
        display:none;
    }
    .p272-quick-btn{
        min-width:92px;
        max-width:115px;
        min-height:36px;
        padding:5px 7px;
        font-size:.67rem;
    }
    .p272-song-name strong{
        font-size:.95rem;
    }
    .p272-order{
        width:27px;
        height:27px;
    }
}


/* ==========================================================
   JC EVENTS — V27.3 · COLA DJ + APROBACION AUTOMATICA
   ========================================================== */
.p273-auto-approval{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:center;
    margin:4px 0 12px;
    padding:11px 13px;
    border:1px solid #373239;
    border-radius:14px;
    background:#171519;
}
.p273-auto-approval>div{
    display:grid;
    gap:3px;
    min-width:0;
}
.p273-auto-approval strong{
    font-size:.9rem;
}
.p273-auto-approval small{
    color:#9d929f;
    font-size:.72rem;
    line-height:1.25;
}
.p273-switch{
    display:grid;
    grid-template-columns:auto auto;
    align-items:center;
    gap:7px;
    cursor:pointer;
    flex:0 0 auto;
}
.p273-switch input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.p273-slider{
    position:relative;
    width:44px;
    height:24px;
    border-radius:999px;
    background:#3b363e;
    border:1px solid #5c5560;
    transition:.18s ease;
}
.p273-slider:before{
    content:"";
    position:absolute;
    width:18px;
    height:18px;
    left:2px;
    top:2px;
    border-radius:50%;
    background:#b9afb9;
    transition:.18s ease;
}
.p273-switch input:checked + .p273-slider{
    background:#245d39;
    border-color:#3f8a5a;
}
.p273-switch input:checked + .p273-slider:before{
    transform:translateX(20px);
    background:#8fe0a8;
}
.p273-switch b{
    min-width:68px;
    font-size:.72rem;
    color:#ded5df;
}
.p272-quick-head{
    display:grid;
    gap:3px;
}
.p272-quick-head small{
    color:#857c87;
    font-size:.68rem;
    text-transform:none;
    letter-spacing:0;
    font-weight:400;
}
.p273-history-row{
    opacity:1!important;
}
.p273-history-row .p272-song-name strong{
    text-decoration:none!important;
    color:#d1c8d2!important;
}
.p273-history-song{
    display:grid;
    align-items:start;
    gap:1px;
}
.p273-history-song small{
    color:#827984!important;
    font-size:.7rem!important;
}
.p273-history .p272-quick-btn{
    color:#bfb4c0;
    border-color:#49434b;
    background:#1c191e;
}
@media(max-width:650px){
    .p273-auto-approval{
        align-items:flex-start;
    }
    .p273-auto-approval small{
        max-width:210px;
    }
    .p273-switch{
        grid-template-columns:auto;
        justify-items:center;
    }
    .p273-switch b{
        min-width:0;
        font-size:.62rem;
    }
}


/* ==========================================================
   EVENTOS — V28 · HELP CENTRE + EXCLUSIVE ACCESS
   ========================================================== */

.p28-exclusive-login{
    min-height:100vh;
    background:
        radial-gradient(circle at 10% 20%,rgba(189,83,111,.10),transparent 30%),
        radial-gradient(circle at 90% 80%,rgba(138,93,32,.10),transparent 35%),
        #fbf6f1;
}
.auth-superadmin.p28-exclusive-login{
    background:
        radial-gradient(circle at 10% 20%,rgba(66,92,129,.18),transparent 32%),
        radial-gradient(circle at 90% 80%,rgba(138,93,32,.10),transparent 35%),
        #edf1f6;
}
.p28-login-page{
    width:min(1000px,calc(100% - 32px));
    min-height:100vh;
    margin:auto;
    display:grid;
    grid-template-columns:1fr minmax(330px,440px);
    gap:54px;
    align-items:center;
    padding:70px 0;
}
.p28-login-brand h1{
    font:700 clamp(3.3rem,7vw,6.4rem)/.95 Georgia,serif;
    margin:8px 0 18px;
    color:#3b201d;
}
.p28-login-superadmin .p28-login-brand h1{color:#15243a}
.p28-login-brand p{
    max-width:540px;
    font-size:1.08rem;
    line-height:1.55;
    color:#75645e;
}
.auth-role-strip-inline{
    display:inline-flex;
    padding:5px 9px;
    margin-bottom:12px;
    border-radius:999px;
    background:#f4e9e4;
    font-size:.68rem;
    font-weight:900;
    letter-spacing:.09em;
}
.superadmin-login-card .auth-role-strip-inline{
    background:#dce4ef;
    color:#203650;
}

/* Help floating button */
.p28-help-fab{
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:1200;
    display:flex;
    align-items:center;
    gap:7px;
    min-height:46px;
    padding:0 15px;
    border:0;
    border-radius:999px;
    background:#3b201d;
    color:#fff;
    box-shadow:0 12px 30px rgba(46,25,22,.25);
    font-weight:900;
    cursor:pointer;
}
.superadmin-area .p28-help-fab{background:#16263d}

.p28-help-backdrop{
    position:fixed;
    inset:0;
    z-index:1290;
    background:rgba(25,17,16,.35);
    opacity:0;
    transition:opacity .18s ease;
}
.p28-help-backdrop.show{opacity:1}
.p28-help-drawer{
    position:fixed;
    top:0;
    right:0;
    z-index:1300;
    width:min(460px,94vw);
    height:100dvh;
    display:grid;
    grid-template-rows:auto 1fr auto;
    background:#fffaf6;
    border-left:1px solid #ead8c6;
    box-shadow:-20px 0 60px rgba(34,24,21,.18);
    transform:translateX(105%);
    transition:transform .22s ease;
}
.p28-help-drawer.open{transform:translateX(0)}
.p28-help-drawer-head{
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:flex-start;
    padding:22px;
    border-bottom:1px solid #ead8c6;
}
.p28-help-drawer-head h2{
    margin:5px 0 0;
    font:700 1.8rem Georgia,serif;
}
.p28-help-close{
    width:40px;
    height:40px;
    border:1px solid #ddc8b4;
    border-radius:50%;
    background:#fff;
    font-size:1.5rem;
    cursor:pointer;
}
.p28-help-drawer-body{
    overflow:auto;
    padding:22px;
    line-height:1.55;
}
.p28-help-drawer-body h3{font:700 1.2rem Georgia,serif}
.p28-help-drawer-body ul{padding-left:20px}
.p28-help-drawer-foot{
    padding:16px 22px;
    border-top:1px solid #ead8c6;
}
.p28-help-open{overflow:hidden}

/* Help Centre */
.p28-help-search-card{margin-bottom:18px}
.p28-help-search-form{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
}
.p28-help-search-form input{
    min-height:46px;
    border:1px solid #e3cdb7;
    border-radius:12px;
    padding:0 14px;
}
.p28-help-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}
.p28-help-article h2{
    margin:6px 0 12px;
    font:700 1.6rem Georgia,serif;
}
.p28-help-copy{line-height:1.55}
.p28-help-copy ul{padding-left:20px}

/* Getting started */
.p28-checklist{
    margin-bottom:18px;
}
.p28-checklist-head{
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:center;
}
.p28-checklist-head h2{margin:5px 0}
.p28-progress-number{
    font:700 2rem Georgia,serif;
    color:#8a5d20;
}
.p28-progress{
    height:8px;
    margin:14px 0 18px;
    overflow:hidden;
    border-radius:999px;
    background:#eee3d8;
}
.p28-progress span{
    display:block;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,#a66d25,#bd536f);
}
.p28-checklist-items{
    display:grid;
    gap:8px;
}
.p28-checklist-items article{
    display:grid;
    grid-template-columns:34px minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
    padding:10px 12px;
    border:1px solid #ead8c6;
    border-radius:13px;
    background:#fffaf6;
}
.p28-checklist-items article.done{
    background:#f2faf4;
    border-color:#c8dfce;
}
.p28-check-icon{
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    border-radius:50%;
    border:1px solid #ddc8b4;
    font-weight:900;
}
.p28-checklist-items article.done .p28-check-icon{
    background:#dff1e4;
    border-color:#a9ceb3;
    color:#27663b;
}
.p28-checklist-items article div{display:grid}
.p28-checklist-items small{color:#806e67}
.p28-auto-access-note{margin-bottom:14px}

@media(max-width:760px){
    .p28-login-page{
        grid-template-columns:1fr;
        gap:24px;
        padding:82px 0 36px;
    }
    .p28-login-brand h1{font-size:3.1rem}
    .p28-login-brand p{font-size:.95rem}
    .p28-help-grid{grid-template-columns:1fr}
    .p28-help-search-form{grid-template-columns:1fr}
    .p28-checklist-items article{
        grid-template-columns:30px minmax(0,1fr);
    }
    .p28-checklist-items article .btn{
        grid-column:2;
        justify-self:start;
    }
    .p28-help-fab{
        right:14px;
        bottom:14px;
    }
}


/* ==========================================================
   EVENTOS — V29 · ACCOUNT / RESET / ONBOARDING / TOUR
   ========================================================== */
.p29-login-secondary{text-align:center;margin:16px 0 0}.p29-login-secondary a{color:#8a5d20;font-weight:800;text-decoration:none}.p29-account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.p29-divider{border:0;border-top:1px solid #ead8c6;margin:24px 0}.p29-welcome-backdrop{position:fixed;inset:0;z-index:1400;background:rgba(23,17,16,.48);backdrop-filter:blur(2px)}.p29-welcome-modal{position:fixed;z-index:1410;width:min(520px,calc(100% - 28px));left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 30px 80px rgba(29,18,16,.3)}.p29-welcome-modal h2{font:700 2rem Georgia,serif;margin:6px 0 12px}.p29-welcome-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:20px}.p29-welcome-actions form{margin:0}.p29-tour-overlay{position:fixed;inset:0;z-index:1490;background:rgba(13,10,11,.72);pointer-events:auto}.p29-tour-card{position:fixed;z-index:1510;padding:18px;border:1px solid #dfc7ae;border-radius:17px;background:#fffaf6;color:#382824;box-shadow:0 24px 60px rgba(0,0,0,.35)}.p29-tour-card h2{font:700 1.55rem Georgia,serif;margin:5px 0 8px}.p29-tour-card p{margin:0;line-height:1.48;color:#735f58}.p29-tour-count{font-size:.7rem;font-weight:900;letter-spacing:.1em;color:#9a6a2d}.p29-tour-actions{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:16px}.p29-tour-actions>div{display:flex;gap:7px}.p29-tour-highlight{position:relative!important;z-index:1500!important;box-shadow:0 0 0 5px #fff,0 0 0 9px #bd536f,0 15px 35px rgba(0,0,0,.35)!important;border-radius:12px!important;background:#fff!important;color:#5a311d!important;pointer-events:none!important}.p29-tour-open{overflow:hidden}.p29-reset-page .login-card{max-width:460px}
@media(max-width:760px){.p29-account-grid{grid-template-columns:1fr}.p29-tour-card{left:14px!important;right:14px;width:auto!important}.p29-welcome-actions{display:grid}.p29-welcome-actions .btn{width:100%}.p29-tour-actions{align-items:flex-end}.p29-tour-actions>div{display:grid}.p29-tour-card .btn{min-height:38px}}


/* ==========================================================
   EVENTOS — V29.2 · ADMINISTRADOR DE AYUDAS
   ========================================================== */
.p292-help-page-head{
    align-items:flex-end;
}
.p292-help-tabs{
    display:flex;
    gap:8px;
    margin:0 0 18px;
    padding:6px;
    width:max-content;
    max-width:100%;
    border:1px solid #e2cdb9;
    border-radius:14px;
    background:#fffaf6;
}
.p292-help-tabs a{
    display:flex;
    align-items:center;
    gap:7px;
    min-height:40px;
    padding:0 14px;
    border-radius:10px;
    color:#6d564c;
    text-decoration:none;
    font-weight:800;
}
.p292-help-tabs a.active{
    background:#3b201d;
    color:#fff;
}
.p292-help-tabs span{
    display:grid;
    place-items:center;
    min-width:22px;
    height:22px;
    padding:0 5px;
    border-radius:999px;
    background:rgba(255,255,255,.18);
    font-size:.72rem;
}
.p292-editor-title,
.p292-list-head{
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:center;
    margin-bottom:18px;
}
.p292-editor-title h2,
.p292-list-head h2{
    margin:4px 0 0;
}
.p292-help-form{
    display:grid;
    gap:18px;
}
.p292-config-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.p292-help-form .field{
    display:grid;
    gap:6px;
}
.p292-help-form .field small{
    color:#8a7469;
    line-height:1.35;
}
.p292-custom-screen{
    padding:12px;
    border:1px dashed #d7bda6;
    border-radius:12px;
    background:#fff9f3;
}
.p292-active-toggle{
    width:max-content;
}
.p292-advanced{
    border:1px solid #e5d3c2;
    border-radius:13px;
    background:#fffaf6;
}
.p292-advanced summary{
    padding:12px 14px;
    cursor:pointer;
    font-weight:800;
}
.p292-advanced[open] summary{
    border-bottom:1px solid #ead9ca;
}
.p292-advanced .p292-config-grid{
    padding:14px;
}
.p292-language-head{
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:flex-end;
    padding-top:4px;
}
.p292-language-head h3{
    margin:4px 0 0;
}
.p292-language-tabs{
    display:flex;
    gap:5px;
    padding:4px;
    border:1px solid #e3cdb8;
    border-radius:999px;
    background:#fffaf6;
}
.p292-language-tabs button{
    min-width:48px;
    min-height:34px;
    padding:0 10px;
    border:0;
    border-radius:999px;
    background:transparent;
    color:#735e53;
    font-weight:900;
    cursor:pointer;
}
.p292-language-tabs button.active{
    background:#9c6a24;
    color:#fff;
}
.p292-lang-panel{
    display:none;
    gap:14px;
}
.p292-lang-panel.active{
    display:grid;
}
.p292-lang-panel textarea{
    min-height:190px;
    resize:vertical;
}
.p292-form-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}
.p292-help-filters{
    display:grid;
    grid-template-columns:minmax(220px,1.4fr) minmax(180px,.8fr) minmax(180px,.8fr) auto;
    gap:10px;
    align-items:end;
    margin-bottom:18px;
}
.p292-help-filters .field{
    display:grid;
    gap:5px;
}
.p292-help-list{
    display:grid;
    gap:10px;
}
.p292-help-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:16px;
    align-items:center;
    padding:15px;
    border:1px solid #ead7c5;
    border-radius:14px;
    background:#fffaf7;
}
.p292-help-row h3{
    margin:7px 0 4px;
    font:700 1.2rem Georgia,serif;
}
.p292-help-row p{
    margin:0;
    color:#7d6960;
    font-size:.86rem;
}
.p292-row-badges{
    display:flex;
    gap:6px;
    flex-wrap:wrap;
}
.p292-role-badge,
.p292-category-badge,
.p292-inactive-badge{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:0 8px;
    border-radius:999px;
    font-size:.66rem;
    font-weight:900;
}
.p292-role-badge{
    color:#99425d;
    background:#f8e5ec;
}
.p292-role-badge.super{
    color:#24415f;
    background:#e1eaf3;
}
.p292-category-badge{
    color:#75551c;
    background:#f7edd7;
}
.p292-inactive-badge{
    color:#6c6267;
    background:#ece8ea;
}
.p292-help-empty{
    padding:28px;
    text-align:center;
    border:1px dashed #dac1ab;
    border-radius:14px;
    color:#7d6960;
}
@media(max-width:850px){
    .p292-config-grid{
        grid-template-columns:1fr;
    }
    .p292-help-filters{
        grid-template-columns:1fr 1fr;
    }
    .p292-help-filters .btn{
        align-self:stretch;
    }
}
@media(max-width:620px){
    .p292-help-tabs{
        width:100%;
    }
    .p292-help-tabs a{
        flex:1;
        justify-content:center;
    }
    .p292-editor-title,
    .p292-list-head,
    .p292-language-head{
        align-items:flex-start;
        flex-direction:column;
    }
    .p292-language-tabs{
        width:100%;
    }
    .p292-language-tabs button{
        flex:1;
    }
    .p292-help-filters{
        grid-template-columns:1fr;
    }
    .p292-help-row{
        grid-template-columns:1fr;
    }
    .p292-help-row-actions .btn{
        width:100%;
    }
}
