/* ============================================================
   EventoSocial — assets/styles.css
   Diseño: Elegante, marfil/ivory, refinado
   ============================================================ */

/* ── Variables ── */
:root {
    --gold:      #8B7355;
    --gold-light:#A89070;
    --gold-dark: #6B5A42;
    --bg:        #F5F0E6;
    --bg2:       #EDE8DC;
    --bg3:       #E4DDD0;
    --bg4:       #D8D0C0;
    --border:    #C8BFA8;
    --text:      #2C2416;
    --text-muted:#6B5E4A;
    --text-dim:  #9A8E7A;
    --rose:      #E91E8C;
    --teal:      #26A69A;
    --blue:      #64B5F6;
    --amber:     #FF7043;
    --red:       #EF5350;
    --green:     #66BB6A;
    --sidebar-w: 240px;
    --topbar-h:  60px;
    --radius:    8px;
    --shadow:    0 2px 12px rgba(44,36,22,.12);
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px;-webkit-font-smoothing:antialiased}
body{font-family:'Jost',sans-serif;background:var(--bg);color:var(--text);line-height:1.6;overflow-x:hidden}
a{color:var(--gold);text-decoration:none}
a:hover{color:var(--gold-light)}
input,select,textarea,button{font-family:inherit;font-size:inherit}
img{max-width:100%}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--bg3)}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--gold-dark)}

/* ═══════════════════════════════════════════════════════════
   WELCOME PAGE
   ═══════════════════════════════════════════════════════════ */
.welcome-body{
    background:radial-gradient(ellipse at 20% 50%, #EDE0C8 0%, #F5F0E6 60%, #FAF7F0 100%);
    min-height:100vh;display:flex;align-items:center;justify-content:center;
    overflow:hidden;position:relative;
}
.particles{position:fixed;inset:0;pointer-events:none;overflow:hidden}
.particle{
    position:absolute;width:2px;height:2px;border-radius:50%;
    background:var(--gold-dark);opacity:0;
    animation:floatParticle var(--dur,8s) var(--del,0s) ease-in-out infinite;
}
@keyframes floatParticle{
    0%{opacity:0;transform:translateY(100vh) scale(0)}
    10%{opacity:.6}
    90%{opacity:.2}
    100%{opacity:0;transform:translateY(-20px) scale(1.5)}
}
.welcome-container{
    text-align:center;position:relative;z-index:10;
    animation:fadeInUp .8s ease forwards;
}
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}

.welcome-logo{position:relative;margin-bottom:2rem}
.logo-ornament{width:120px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:0 auto .8rem}
.logo-inner{padding:.5rem 0}
.logo-symbol{font-size:3rem;color:var(--gold);line-height:1;margin-bottom:.3rem;
    animation:pulse 3s ease-in-out infinite;
    text-shadow:0 0 20px rgba(139,115,85,.4),0 0 40px rgba(139,115,85,.15)}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.logo-brand{display:flex;align-items:baseline;justify-content:center;gap:.15em}
.brand-evento{font-family:'Cormorant Garamond',serif;font-size:3.5rem;font-weight:300;color:var(--text);letter-spacing:.05em}
.brand-social{font-family:'Cormorant Garamond',serif;font-size:3.5rem;font-weight:600;color:var(--gold);letter-spacing:.05em}
.logo-tagline{font-size:.8rem;font-weight:300;letter-spacing:.3em;text-transform:uppercase;color:var(--text-muted);margin-top:.4rem}

.welcome-divider{display:flex;align-items:center;gap:1rem;margin:1.5rem auto;width:200px}
.divider-line{flex:1;height:1px;background:var(--border)}
.divider-diamond{color:var(--gold);font-size:.6rem}
.welcome-message{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:300;font-style:italic;color:var(--text-muted);margin-bottom:2.5rem;line-height:1.8}

.btn-bienvenido{
    display:inline-flex;align-items:center;gap:.8rem;
    padding:.9rem 2.5rem;
    background:linear-gradient(135deg,var(--gold-dark),var(--gold));
    color:var(--text);font-weight:700;letter-spacing:.15em;text-transform:uppercase;font-size:.85rem;
    border-radius:2px;border:none;cursor:pointer;
    transition:all .3s ease;
    box-shadow:0 0 30px rgba(139,115,85,.2);
}
.btn-bienvenido:hover{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:var(--text);transform:translateY(-2px);box-shadow:0 8px 40px rgba(139,115,85,.4)}
.btn-arrow{transition:transform .3s}
.btn-bienvenido:hover .btn-arrow{transform:translateX(4px)}
.welcome-year{margin-top:3rem;font-size:.75rem;color:var(--text-dim);letter-spacing:.2em}

/* ═══════════════════════════════════════════════════════════
   LOGIN PAGE
   ═══════════════════════════════════════════════════════════ */
.login-body{background:var(--bg);min-height:100vh;display:flex;}
.login-split{display:flex;width:100%;min-height:100vh}

.login-panel-left{
    flex:1;position:relative;overflow:hidden;
    background:linear-gradient(135deg,#EDE0C4 0%,#F5EED8 100%);
    display:flex;align-items:center;justify-content:center;
}
.login-panel-left::before{
    content:'';position:absolute;inset:0;
    background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23F5F0E8' fill-opacity='0.08'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.panel-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(139,115,85,.08),rgba(0,0,0,.5))}
.panel-content{position:relative;z-index:1;text-align:center;padding:2rem}
.panel-logo{font-family:'Cormorant Garamond',serif;font-size:1.2rem;color:var(--gold);letter-spacing:.3em;text-transform:uppercase;margin-bottom:3rem}
.panel-headline{font-family:'Cormorant Garamond',serif;font-size:3.5rem;font-weight:300;color:var(--text);line-height:1.2;margin-bottom:1.5rem}
.panel-headline em{color:var(--gold);font-style:italic}
.panel-sub{font-size:.95rem;color:var(--text-muted);max-width:320px;margin:0 auto 3rem;line-height:1.7}
.panel-icons{display:flex;gap:1.5rem;justify-content:center;font-size:1.8rem;filter:drop-shadow(0 0 8px rgba(139,115,85,.3))}

.login-panel-right{
    width:480px;display:flex;align-items:center;justify-content:center;
    background:var(--bg2);border-left:1px solid var(--border);
}
.login-form-wrap{width:100%;max-width:380px;padding:2rem}
.login-brand{display:flex;align-items:center;gap:.6rem;margin-bottom:2.5rem;font-family:'Cormorant Garamond',serif;font-size:1.4rem}
.brand-symbol{color:var(--gold)}
.brand-name{color:var(--text)}
.login-title{font-family:'Cormorant Garamond',serif;font-size:2.2rem;font-weight:400;margin-bottom:.4rem;color:var(--text)}
.login-subtitle{color:var(--text-muted);font-size:.9rem;margin-bottom:2rem}

.login-form{display:flex;flex-direction:column;gap:1.2rem}
.btn-login{
    display:flex;align-items:center;justify-content:center;gap:.8rem;
    width:100%;padding:.85rem;margin-top:.5rem;
    background:linear-gradient(135deg,var(--gold-dark),var(--gold));
    color:var(--text);font-weight:700;font-size:.9rem;letter-spacing:.1em;
    border:none;border-radius:var(--radius);cursor:pointer;
    transition:all .3s;
}
.btn-login:hover{background:linear-gradient(135deg,var(--gold),var(--gold-light));transform:translateY(-1px);box-shadow:0 6px 24px rgba(139,115,85,.35)}
.login-hint{text-align:center;margin-top:1.5rem;color:var(--text-dim)}
.login-hint code{background:var(--bg3);padding:.1rem .4rem;border-radius:3px;font-size:.8rem;color:var(--gold)}

/* ═══════════════════════════════════════════════════════════
   LAYOUT PRINCIPAL
   ═══════════════════════════════════════════════════════════ */
.sidebar{
    position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);
    background:var(--bg2);border-right:1px solid var(--border);
    display:flex;flex-direction:column;z-index:100;
    transition:transform .3s;
}
.sidebar-logo{
    padding:1.2rem 1.5rem;border-bottom:1px solid var(--border);
    display:flex;align-items:center;gap:.7rem;
    font-family:'Cormorant Garamond',serif;font-size:1.3rem;
}
.logo-icon{color:var(--gold);font-size:1.1rem}
.logo-text{color:var(--text)}
.logo-text strong{color:var(--gold)}

.sidebar-nav{flex:1;padding:1rem 0;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.nav-item{
    display:flex;align-items:center;gap:.85rem;
    padding:.7rem 1.5rem;color:var(--text-muted);
    font-size:.9rem;font-weight:400;letter-spacing:.02em;
    transition:all .2s;border-left:3px solid transparent;
}
.nav-item:hover{color:var(--text);background:var(--bg3);border-left-color:var(--border)}
.nav-item.active{color:var(--gold);background:rgba(139,115,85,.08);border-left-color:var(--gold)}
.nav-item i{width:18px;text-align:center;font-size:.95rem}

.sidebar-footer{
    padding:1rem 1.5rem;border-top:1px solid var(--border);
    display:flex;align-items:center;gap:.7rem;
}
.user-chip{display:flex;align-items:center;gap:.7rem;flex:1;min-width:0}
.user-name{font-size:.85rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-role{font-size:.72rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}
.btn-logout{
    display:flex;align-items:center;justify-content:center;
    width:34px;height:34px;border-radius:var(--radius);
    background:var(--bg3);color:var(--text-muted);
    transition:all .2s;flex-shrink:0;
}
.btn-logout:hover{background:rgba(239,83,80,.2);color:var(--red)}

.topbar{
    position:fixed;top:0;left:var(--sidebar-w);right:0;height:var(--topbar-h);
    background:var(--bg2);border-bottom:1px solid var(--border);
    display:flex;align-items:center;padding:0 1.5rem;gap:1rem;z-index:90;
}
.page-title{font-family:'Cormorant Garamond',serif;font-size:1.35rem;font-weight:500;color:var(--text);flex:1}
.sidebar-toggle{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:1.1rem;display:none}
.topbar-right{display:flex;align-items:center;gap:.8rem}
.notif-btn{position:relative;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg3);border-radius:var(--radius);color:var(--text-muted)}
.notif-btn:hover{color:var(--gold);background:rgba(139,115,85,.1)}
.notif-badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;background:var(--red);border-radius:8px;font-size:.65rem;display:flex;align-items:center;justify-content:center;color:#fff;padding:0 3px}

.main-content{
    margin-left:var(--sidebar-w);
    min-height:100vh;
    padding:calc(var(--topbar-h) + 1.5rem) 2rem 2rem;
    box-sizing:border-box;
    width:calc(100% - var(--sidebar-w));
}

/* ═══════════════════════════════════════════════════════════
   COMPONENTES BASE
   ═══════════════════════════════════════════════════════════ */

/* Avatares */
.user-avatar{
    display:inline-flex;align-items:center;justify-content:center;
    width:36px;height:36px;border-radius:50%;
    font-size:.85rem;font-weight:600;color:var(--text);flex-shrink:0;
}
.user-avatar.sm{width:30px;height:30px;font-size:.75rem}
.user-avatar.xs{width:26px;height:26px;font-size:.7rem}

/* Badges */
.badge{display:inline-block;padding:.15rem .6rem;border-radius:2px;font-size:.75rem;font-weight:500;letter-spacing:.04em}
.badge-active{background:rgba(102,187,106,.15);color:#66BB6A}
.badge-inactive{background:rgba(239,83,80,.1);color:#EF5350}
.badge-warn{background:rgba(139,115,85,.12);color:var(--gold)}
.rol-badge{display:inline-block;padding:.2rem .7rem;border-radius:2px;font-size:.75rem;font-weight:500}

/* Cards */
.card{
    background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);
    padding:1.25rem;margin-bottom:1.2rem;
}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.card-title{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:500;color:var(--text);display:flex;align-items:center;gap:.5rem}
.card-title i{color:var(--gold);font-size:.9rem}
.card-link{font-size:.8rem;color:var(--gold);font-weight:500}

/* Forms */
.field-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.2rem}
.field-group.col-2{grid-column:span 2}
.field-label{font-size:.78rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}
.field-input{
    width:100%;padding:.65rem .9rem;
    background:var(--bg3);border:1px solid var(--border);
    border-radius:var(--radius);color:var(--text);
    transition:border-color .2s,box-shadow .2s;
    outline:none;
}
.field-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(139,115,85,.12)}
.field-input-wrap{position:relative}
.field-input-wrap .field-input{padding-left:2.5rem}
.field-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--text-dim);font-size:.85rem}
.toggle-pass{position:absolute;right:.85rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-muted)}
select.field-input option{background:var(--bg3)}
textarea.field-input{resize:vertical;min-height:70px}
input[type="color"].field-input{height:42px;padding:.3rem}

/* Buttons */
.btn-primary{
    display:inline-flex;align-items:center;gap:.5rem;
    padding:.65rem 1.3rem;
    background:linear-gradient(135deg,var(--gold-dark),var(--gold));
    color:var(--text);font-weight:700;font-size:.85rem;letter-spacing:.05em;
    border:none;border-radius:var(--radius);cursor:pointer;
    transition:all .2s;white-space:nowrap;
}
.btn-primary:hover{background:linear-gradient(135deg,var(--gold),var(--gold-light));transform:translateY(-1px);box-shadow:0 4px 20px rgba(139,115,85,.3)}
.btn-outline{
    display:inline-flex;align-items:center;gap:.5rem;
    padding:.6rem 1.2rem;background:transparent;
    border:1px solid var(--border);color:var(--text-muted);
    border-radius:var(--radius);cursor:pointer;font-size:.85rem;
    transition:all .2s;
}
.btn-outline:hover{border-color:var(--gold);color:var(--gold);background:rgba(139,115,85,.06)}
.btn-danger{background:rgba(239,83,80,.15);border:1px solid rgba(239,83,80,.3);color:var(--red);padding:.6rem 1.2rem;border-radius:var(--radius);cursor:pointer;font-size:.85rem;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}
.btn-danger:hover{background:rgba(239,83,80,.25)}
.btn-sm{
    display:inline-flex;align-items:center;gap:.3rem;
    padding:.3rem .75rem;font-size:.78rem;
    background:var(--bg3);border:1px solid var(--border);
    color:var(--text-muted);border-radius:var(--radius);cursor:pointer;
    transition:all .2s;
}
.btn-sm:hover{border-color:var(--gold);color:var(--gold)}
.btn-sm.btn-edit{border-color:rgba(100,181,246,.3);color:var(--blue)}
.btn-sm.btn-danger{border-color:rgba(239,83,80,.3);color:var(--red)}
.btn-icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:32px;height:32px;background:var(--bg3);border:1px solid var(--border);
    border-radius:var(--radius);cursor:pointer;color:var(--text-muted);
    transition:all .2s;font-size:.8rem;
}
.btn-icon:hover{border-color:var(--gold);color:var(--gold)}
.btn-icon.btn-danger-icon:hover{border-color:rgba(239,83,80,.4);color:var(--red)}
.btn-icon.xs{width:24px;height:24px;font-size:.7rem}

/* Toolbar */
.toolbar{
    display:flex;align-items:center;justify-content:space-between;
    gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap;
}
.toolbar-left{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;flex:1}
.toolbar-btns{display:flex;gap:.6rem}
.search-bar{
    display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;
    background:var(--bg2);border:1px solid var(--border);
    border-radius:var(--radius);padding:.35rem .7rem;
    min-width:0; flex:1;
}
.search-bar i{color:var(--text-dim);font-size:.85rem}
.search-bar input{background:none;border:none;outline:none;color:var(--text);font-size:.85rem;min-width:160px}
.search-bar select{background:var(--bg3);border:1px solid var(--border);color:var(--text-muted);font-size:.8rem;padding:.25rem .5rem;border-radius:4px}

/* Alerts */
.alert{
    display:flex;align-items:center;gap:.7rem;
    padding:.85rem 1.1rem;border-radius:var(--radius);
    margin-bottom:1.2rem;font-size:.88rem;
}
.alert-success{background:rgba(102,187,106,.1);border:1px solid rgba(102,187,106,.25);color:#66BB6A}
.alert-error{background:rgba(239,83,80,.1);border:1px solid rgba(239,83,80,.25);color:var(--red)}
.alert-info{background:rgba(139,115,85,.1);border:1px solid rgba(139,115,85,.25);color:var(--gold)}

/* Modals */
.modal-overlay{
    display:none;position:fixed;inset:0;z-index:500;
    background:rgba(44,36,22,.55);backdrop-filter:blur(4px);
    align-items:center;justify-content:center;padding:1rem;
}
.modal-overlay.open{display:flex}
.modal{
    background:var(--bg2);border:1px solid var(--border);
    border-radius:var(--radius);width:100%;max-width:580px;
    max-height:90vh;overflow-y:auto;
    animation:modalIn .25s ease;
    margin:auto;
}
.modal.modal-lg{max-width:760px}
.modal.modal-sm{max-width:420px}
@keyframes modalIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.modal-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:1.1rem 1.4rem;border-bottom:1px solid var(--border);
}
.modal-header.danger{border-bottom-color:rgba(239,83,80,.3)}
.modal-title{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:500;color:var(--text)}
.modal-close{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:1.1rem;transition:color .2s}
.modal-close:hover{color:var(--text)}
.modal-form{padding:1.4rem}
.modal-body{padding:1rem 1.4rem}
.modal-actions{display:flex;gap:.7rem;justify-content:flex-end;margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--border)}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.9rem}
.form-section-title{font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:1rem 0 .5rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}

/* Tables */
.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border)}
.data-table{width:100%;border-collapse:collapse;font-size:.875rem}
.data-table th{
    padding:.75rem 1rem;text-align:left;
    font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
    color:var(--text-muted);background:var(--bg4);border-bottom:1px solid var(--border);
}
.data-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}
.data-table tr:last-child td{border-bottom:none}
.data-table tr:hover td{background:rgba(139,115,85,.03)}
.data-table tr.row-inactive td{opacity:.5}
.actions-cell{display:flex;gap:.4rem;align-items:center}
.user-cell{display:flex;align-items:center;gap:.7rem}
.font-medium{font-weight:500}

/* Empty state */
.empty-state{text-align:center;padding:2rem;color:var(--text-dim);font-size:.88rem}
.empty-state.sm{padding:.8rem}
.empty-full{
    text-align:center;padding:4rem 2rem;color:var(--text-dim);
    grid-column:1/-1;
}
.empty-full i{font-size:3rem;margin-bottom:1rem;opacity:.3;display:block}

/* ═══════════════════════════════════════════════════════════
   DASHBOARD
   ═══════════════════════════════════════════════════════════ */
.dashboard-grid{display:grid;grid-template-columns:1fr 340px;gap:1.2rem;grid-template-rows:auto 1fr}
.metrics-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.dash-col.main{display:flex;flex-direction:column;gap:1.2rem}
.dash-col.aside{display:flex;flex-direction:column;gap:1.2rem}

.metric-card{
    background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);
    padding:1.1rem 1.25rem;display:flex;align-items:center;gap:1rem;
    position:relative;overflow:hidden;transition:border-color .2s;
}
.metric-card::after{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.metric-card.gold::after{background:linear-gradient(90deg,var(--gold),var(--gold-light))}
.metric-card.rose::after{background:linear-gradient(90deg,var(--rose),#FF69B4)}
.metric-card.teal::after{background:linear-gradient(90deg,var(--teal),#4DB6AC)}
.metric-card.amber::after{background:linear-gradient(90deg,var(--amber),#FFCC02)}
.metric-card:hover{border-color:var(--bg4)}
.metric-icon{
    width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;
    font-size:1.1rem;flex-shrink:0;
}
.gold .metric-icon{background:rgba(139,115,85,.15);color:var(--gold)}
.rose .metric-icon{background:rgba(233,30,140,.12);color:var(--rose)}
.teal .metric-icon{background:rgba(38,166,154,.12);color:var(--teal)}
.amber .metric-icon{background:rgba(255,112,67,.12);color:var(--amber)}
.metric-value{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:600;color:var(--text);line-height:1}
.metric-label{font-size:.75rem;color:var(--text-muted);margin-top:.15rem;text-transform:uppercase;letter-spacing:.06em}

/* Events list (dashboard) */
.events-list{display:flex;flex-direction:column;gap:.7rem}
.event-item{
    display:flex;align-items:center;gap:.9rem;
    padding:.8rem;background:var(--bg3);border-radius:6px;border:1px solid transparent;
    transition:border-color .2s;
}
.event-item:hover{border-color:var(--border)}
.event-type-badge{font-size:.72rem;font-weight:600;padding:.2rem .6rem;border-radius:2px;white-space:nowrap}
.event-info{flex:1;min-width:0}
.event-name{font-weight:500;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.event-meta{display:flex;gap:.8rem;font-size:.75rem;color:var(--text-muted);margin-top:.2rem;flex-wrap:wrap}
.event-meta span{display:flex;align-items:center;gap:.3rem}
.event-date{text-align:center;flex-shrink:0}
.date-day{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:600;line-height:1;color:var(--gold)}
.date-month{font-size:.65rem;font-weight:600;letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase}

/* Status bars */
.status-bars{display:flex;flex-direction:column;gap:.8rem}
.status-bar-row{display:flex;align-items:center;gap:.8rem}
.status-bar-label{font-size:.8rem;color:var(--text-muted);width:100px;flex-shrink:0}
.status-bar-track{flex:1;height:6px;background:var(--bg4);border-radius:3px;overflow:hidden}
.status-bar-fill{height:100%;border-radius:3px;transition:width 1s ease}
.status-bar-val{font-size:.8rem;font-weight:600;color:var(--text);width:24px;text-align:right}

/* Tasks list */
.tasks-list{display:flex;flex-direction:column;gap:.5rem}
.task-item{display:flex;align-items:center;gap:.7rem;padding:.6rem .8rem;background:var(--bg3);border-radius:6px}
.task-prio{width:4px;height:36px;border-radius:2px;flex-shrink:0}
.prio-low{background:var(--teal)}
.prio-med{background:var(--gold)}
.prio-high{background:var(--amber)}
.prio-urgent{background:var(--red)}
.task-body{flex:1;min-width:0}
.task-title{font-size:.85rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.task-event{font-size:.72rem;color:var(--text-muted)}
.task-status{font-size:.72rem;padding:.15rem .5rem;border-radius:2px;white-space:nowrap}
.st-init{background:rgba(139,115,85,.1);color:var(--gold)}
.st-proc{background:rgba(100,181,246,.1);color:var(--blue)}
.st-done{background:rgba(102,187,106,.1);color:var(--green)}

/* Quick actions */
.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.quick-btn{
    display:flex;align-items:center;gap:.5rem;
    padding:.6rem .9rem;background:var(--bg3);
    border:1px solid var(--border);border-radius:var(--radius);
    color:var(--text-muted);font-size:.82rem;
    transition:all .2s;
}
.quick-btn:hover{border-color:var(--gold);color:var(--gold);background:rgba(139,115,85,.06)}
.quick-btn i{font-size:.8rem}

/* ═══════════════════════════════════════════════════════════
   EVENTS GRID
   ═══════════════════════════════════════════════════════════ */
.events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
.event-card{
    background:var(--bg2);border:1px solid var(--border);
    border-radius:var(--radius);padding:1.2rem;
    border-top:3px solid var(--accent,var(--gold));
    transition:border-color .2s,transform .2s;display:flex;flex-direction:column;gap:.7rem;
}
.event-card:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));transform:translateY(-2px)}
.ec-header{display:flex;align-items:center;justify-content:space-between}
.ec-tipo{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.ec-estado{font-size:.7rem;padding:.2rem .6rem;border-radius:2px;font-weight:500}
.st-plan{background:rgba(139,115,85,.12);color:var(--gold)}
.st-proc{background:rgba(100,181,246,.12);color:var(--blue)}
.st-done{background:rgba(102,187,106,.12);color:var(--green)}
.st-cancel{background:rgba(239,83,80,.1);color:var(--red)}
.ec-title{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:500;color:var(--text)}
.ec-details{display:flex;flex-direction:column;gap:.3rem;flex:1}
.ec-detail{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-muted)}
.ec-detail i{color:var(--text-dim);width:14px}
.ec-footer{display:flex;gap:.4rem;align-items:center;margin-top:.2rem}

/* ═══════════════════════════════════════════════════════════
   KANBAN
   ═══════════════════════════════════════════════════════════ */
.kanban-board{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;align-items:start}
.kanban-col{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.kanban-col-header{
    padding:.8rem 1rem;display:flex;align-items:center;gap:.6rem;
    border-bottom:1px solid var(--border);
    border-top:3px solid var(--col-color);
    font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
    color:var(--col-color);
}
.kanban-count{
    margin-left:auto;background:rgba(255,255,255,.08);
    width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-size:.7rem;color:var(--text-muted);font-weight:700;
}
.kanban-items{padding:.6rem;display:flex;flex-direction:column;gap:.5rem;min-height:80px}
.kanban-card{
    background:var(--bg3);border:1px solid var(--border);border-radius:6px;
    padding:.7rem;display:flex;gap:.6rem;align-items:flex-start;
    transition:border-color .2s;
}
.kanban-card:hover{border-color:var(--bg4)}
.kc-prio{width:4px;min-height:40px;border-radius:2px;flex-shrink:0;margin-top:.1rem}
.kc-body{flex:1;min-width:0}
.kc-title{font-size:.85rem;font-weight:500;color:var(--text);margin-bottom:.2rem}
.kc-event{font-size:.72rem;color:var(--text-dim)}
.kc-tag{display:inline-block;font-size:.68rem;padding:.1rem .4rem;border-radius:2px;margin:.3rem 0}
.kc-progress-note{font-size:.72rem;color:var(--text-muted);background:var(--bg4);border-radius:4px;padding:.3rem .5rem;margin-top:.3rem;display:flex;gap:.3rem}
.kc-meta{display:flex;gap:.7rem;font-size:.7rem;color:var(--text-dim);margin-top:.4rem;flex-wrap:wrap}
.kc-meta span{display:flex;align-items:center;gap:.25rem}
.kc-actions{display:flex;flex-direction:column;gap:.3rem;flex-shrink:0}

/* ═══════════════════════════════════════════════════════════
   TEAMS / PROVEEDORES
   ═══════════════════════════════════════════════════════════ */
.teams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}
.team-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.team-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1.1rem .8rem;gap:.5rem}
.team-name{font-weight:600;font-size:.95rem;color:var(--text)}
.team-event{font-size:.75rem;color:var(--text-muted);margin-top:.15rem}
.team-actions{display:flex;gap:.3rem;flex-shrink:0}
.team-desc{font-size:.82rem;color:var(--text-muted);padding:0 1.1rem .8rem;line-height:1.5}
.team-members{padding:.6rem 1.1rem 1rem;display:flex;flex-direction:column;gap:.4rem;border-top:1px solid var(--border)}
.member-item{display:flex;align-items:center;gap:.6rem;padding:.4rem .5rem;border-radius:5px}
.member-item:hover{background:var(--bg3)}
.member-info{flex:1;min-width:0}
.member-name{font-size:.82rem;font-weight:500}
.member-role{font-size:.7rem;color:var(--text-muted)}

.prov-section{margin-bottom:2rem}
.section-heading{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:500;color:var(--gold);margin-bottom:.8rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}
.prov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.8rem}
.prov-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem}
.prov-card.prov-inactive{opacity:.5}
.prov-name{font-weight:600;font-size:.95rem;margin-bottom:.5rem;color:var(--text)}
.prov-detail{font-size:.78rem;color:var(--text-muted);display:flex;align-items:center;gap:.4rem;margin-bottom:.2rem}
.prov-detail i{width:12px;color:var(--text-dim)}
.prov-actions{margin-top:.7rem;padding-top:.6rem;border-top:1px solid var(--border)}

/* ═══════════════════════════════════════════════════════════
   CALENDARIO
   ═══════════════════════════════════════════════════════════ */
/* ── Calendario ── */
.calendar-wrap { max-width: 1000px; }
.calendar-nav  { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.2rem; gap:1rem; }
.cal-month     { font-family:'Cormorant Garamond',serif; font-size:2rem; font-weight:400; color:var(--text); }
.cal-nav-group { display:flex; align-items:center; gap:.5rem; }

/* Banner de eventos del mes */
.cal-events-banner { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem; }
.cal-ev-chip {
    display: flex; align-items: center; gap: .5rem;
    padding: .35rem .8rem; border-radius: 20px;
    font-size: .78rem; border: 1px solid transparent;
    transition: opacity .2s;
}
.cal-ev-chip:hover { opacity: .8; }
.cal-ev-chip .chip-tipo  { font-size:.68rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; opacity:.75; }
.cal-ev-chip .chip-nombre{ font-weight:600; }
.cal-ev-chip .chip-fecha { opacity:.65; font-size:.74rem; }

/* Grid */
.calendar-grid {
    display: grid; grid-template-columns: repeat(7,1fr);
    gap: 1px; background: var(--border);
    border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden;
}
.cal-header-cell {
    background: var(--gold); color: white;
    text-align: center; padding: .55rem;
    font-size: .72rem; font-weight: 700;
    letter-spacing: .12em; text-transform: uppercase;
}

/* Celdas */
.cal-cell {
    background: var(--bg2); min-height: 96px; padding: .4rem .45rem;
    position: relative; vertical-align: top;
    transition: background .15s;
}
.cal-cell:hover  { background: var(--bg3); }
.cal-cell.empty  { background: var(--bg); }
.cal-cell.weekend{ background: rgba(44,36,22,.015); }

/* Día actual */
.cal-cell.today  { background: rgba(139,115,85,.06); outline: 2px solid var(--gold); outline-offset: -2px; }
.cal-day-num {
    font-size: .78rem; font-weight: 600; color: var(--text-dim);
    margin-bottom: .3rem; display:flex; justify-content:flex-end; align-items:center;
}
.cal-day-num .day-circle {
    width: 22px; height: 22px; border-radius: 50%;
    display: flex; align-items:center; justify-content:center;
}
.cal-cell.today .day-circle {
    background: var(--gold); color: white; font-weight: 700;
}

/* Chips de eventos sociales — fondo sólido del tipo_color, texto blanco */
.cal-event-chip {
    display: block; font-size: .67rem; padding: .18rem .4rem;
    border-radius: 3px; margin-bottom: .18rem;
    overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
    font-weight: 700;
    border-left: 3px solid transparent;
    color: white !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.3);
}

/* Chips de actividades — color por prioridad vía style */
.cal-task-chip {
    display: block; font-size: .65rem; padding: .15rem .35rem;
    border-radius: 3px; margin-bottom: .18rem;
    overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
    border-left: 3px solid transparent; cursor: default;
}

/* Leyenda */
.cal-legend {
    display: flex; gap: 1.2rem; flex-wrap: wrap;
    margin-top: 1rem; font-size: .78rem;
    color: var(--text-muted); align-items: center;
}
.cal-legend-title { font-weight:700; color:var(--text); font-size:.8rem; }
.legend-item  { display:flex; align-items:center; gap:.35rem; }
.legend-dot   { width:10px; height:10px; border-radius:2px; flex-shrink:0; }
.legend-sep   { width:1px; height:14px; background:var(--border); }

/* ═══════════════════════════════════════════════════════════
   INVITADOS
   ═══════════════════════════════════════════════════════════ */
.inv-stats{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.2rem}
.inv-stat{
    display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;
    border-radius:var(--radius);font-size:.83rem;font-weight:500;
    flex:1; min-width:110px;
}
.inv-stat.confirmed{background:rgba(102,187,106,.08);color:var(--green);border:1px solid rgba(102,187,106,.2)}
.inv-stat.pending{background:rgba(139,115,85,.08);color:var(--gold);border:1px solid rgba(139,115,85,.2)}
.inv-stat.declined{background:rgba(239,83,80,.08);color:var(--red);border:1px solid rgba(239,83,80,.2)}
.inv-stat.total{background:var(--bg3);color:var(--text);border:1px solid var(--border)}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════
   CHECKLIST
   ═══════════════════════════════════════════════════════════ */

/* Barra de progreso en la card del evento */
.checklist-progress {
    background: var(--bg3);
    border-radius: var(--radius);
    padding: .7rem .9rem;
    margin: .2rem 0;
}
.cp-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: .4rem;
}
.cp-label {
    font-size: .75rem;
    font-weight: 600;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: .3rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.cp-counter {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text);
}
.cp-track {
    width: 100%;
    height: 6px;
    background: var(--bg4);
    border-radius: 3px;
    overflow: hidden;
    margin-bottom: .3rem;
}
.cp-fill {
    height: 100%;
    border-radius: 3px;
    transition: width .6s ease, background .4s ease;
}
.cp-pct {
    font-size: .7rem;
    color: var(--text-dim);
    text-align: right;
}

/* Aviso de checklist automático en el modal */
.checklist-notice {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .75rem 1rem;
    background: rgba(139,115,85,.1);
    border: 1px solid rgba(139,115,85,.25);
    border-radius: var(--radius);
    font-size: .83rem;
    color: var(--gold);
    margin-top: .5rem;
}
.checklist-notice i { font-size: 1rem; }

/* Barra de progreso grande en el modal de checklist */
.checklist-modal-progress {
    background: var(--bg3);
    border-radius: var(--radius);
    padding: 1rem 1.2rem;
    margin-bottom: 1.2rem;
}
.cmp-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: .6rem;
    font-size: .88rem;
    color: var(--text-muted);
    font-weight: 500;
}
.cmp-pct {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text);
}
.cmp-track {
    width: 100%;
    height: 10px;
    background: var(--bg4);
    border-radius: 5px;
    overflow: hidden;
}
.cmp-fill {
    height: 100%;
    border-radius: 5px;
    transition: width .5s ease, background .4s ease;
}

/* Items del checklist */
.checklist-items {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    max-height: 380px;
    overflow-y: auto;
    margin-bottom: 1rem;
    padding-right: .3rem;
}
.check-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .65rem .9rem;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    transition: all .2s;
}
.check-item:hover { border-color: var(--gold); }
.check-item.check-done {
    opacity: .65;
    background: rgba(102,187,106,.05);
    border-color: rgba(102,187,106,.2);
}
.check-label {
    display: flex;
    align-items: center;
    gap: .75rem;
    cursor: pointer;
    flex: 1;
}
.check-input { display: none; }
.check-box {
    width: 20px;
    height: 20px;
    border: 2px solid var(--border);
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all .2s;
    background: var(--bg2);
}
.check-input:checked + .check-box {
    background: #66BB6A;
    border-color: #66BB6A;
}
.check-input:checked + .check-box::after {
    content: '✓';
    color: white;
    font-size: .75rem;
    font-weight: 700;
}
.check-text {
    font-size: .88rem;
    color: var(--text);
}
.check-done .check-text {
    text-decoration: line-through;
    color: var(--text-muted);
}
.check-meta {
    font-size: .7rem;
    color: var(--text-dim);
    white-space: nowrap;
    margin-left: .5rem;
}

/* Agregar tarea personalizada */
.checklist-add {
    border-top: 1px solid var(--border);
    padding-top: 1rem;
    margin-top: .5rem;
}
.checklist-add-row {
    display: flex;
    gap: .6rem;
    align-items: center;
}
.checklist-add-row .field-input { flex: 1; }

/* ═══════════════════════════════════════════════════════════
   EVENTO DETALLE
   ═══════════════════════════════════════════════════════════ */

/* Breadcrumb */
.breadcrumb-bar { display:flex; align-items:center; gap:.5rem; margin-bottom:1.2rem; font-size:.85rem; color:var(--text-muted); }
.breadcrumb-bar a { color:var(--text-muted); display:flex; align-items:center; gap:.4rem; }
.breadcrumb-bar a:hover { color:var(--gold); }
.bc-sep { color:var(--text-dim); }

/* Hero */
.evento-hero { background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius); padding:1.4rem; margin-bottom:1.2rem; display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.hero-badges { display:flex; align-items:center; gap:.6rem; margin-bottom:.6rem; flex-wrap:wrap; }
.hero-tipo { padding:.25rem .8rem; border-radius:3px; font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.hero-title { font-family:'Cormorant Garamond',serif; font-size:2.2rem; font-weight:400; color:var(--text); margin-bottom:.4rem; }
.hero-desc { color:var(--text-muted); font-size:.88rem; line-height:1.7; max-width:580px; margin-bottom:.6rem; }
.hero-meta { display:flex; gap:1.2rem; font-size:.78rem; color:var(--text-dim); flex-wrap:wrap; }
.hero-meta span { display:flex; align-items:center; gap:.35rem; }
.hero-right { display:flex; flex-direction:column; gap:.6rem; align-items:flex-end; flex-shrink:0; }

/* Métricas */
.detalle-metrics { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:.6rem; margin-bottom:1.25rem; }
.dm-card { background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius); padding:.9rem 1rem; display:flex; align-items:center; gap:.8rem; }
.dm-icon { font-size:1.6rem; flex-shrink:0; }
.dm-label { font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--text-muted); margin-bottom:.2rem; }
.dm-value { font-family:'Cormorant Garamond',serif; font-size:1.4rem; font-weight:600; color:var(--text); line-height:1; }
.dm-value.green { color:#66BB6A; }
.dm-sub { font-size:.72rem; color:var(--text-dim); margin-top:.15rem; }
.dm-sub .c-ok  { color:#66BB6A; }
.dm-sub .c-pend { color:var(--gold); margin:0 .3rem; }
.dm-sub .c-no  { color:var(--red); }

/* Grid principal */
.detalle-grid { display:grid; grid-template-columns:1fr 360px; gap:1.2rem; align-items:start; }
.detalle-col-main  { display:flex; flex-direction:column; gap:1.2rem; }
.detalle-col-aside { display:flex; flex-direction:column; gap:1.2rem; }

/* Checklist botón tipo checkbox */
.check-submit-box { width:20px; height:20px; border:2px solid var(--border); border-radius:4px; background:var(--bg3); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:.7rem; font-weight:700; color:white; flex-shrink:0; transition:all .2s; padding:0; }
.check-submit-box.checked { background:#66BB6A; border-color:#66BB6A; }
.check-submit-box:hover { border-color:var(--gold); }

/* Actividades en detalle */
.act-detalle-list { display:flex; flex-direction:column; gap:.4rem; }
.act-detalle-item { display:flex; align-items:flex-start; gap:.7rem; padding:.65rem .8rem; background:var(--bg3); border-radius:6px; border:1px solid transparent; transition:border-color .2s; }
.act-detalle-item:hover { border-color:var(--border); }
.act-prio-bar { width:4px; min-height:36px; border-radius:2px; flex-shrink:0; margin-top:.1rem; }
.act-info { flex:1; min-width:0; }
.act-titulo { font-size:.88rem; font-weight:500; color:var(--text); }
.act-meta-row { display:flex; gap:.8rem; font-size:.72rem; color:var(--text-muted); margin-top:.2rem; flex-wrap:wrap; }
.act-meta-row span { display:flex; align-items:center; gap:.25rem; }
.act-progreso-nota { font-size:.72rem; color:var(--text-muted); background:var(--bg4); border-radius:4px; padding:.3rem .5rem; margin-top:.3rem; display:flex; gap:.3rem; }

/* Invitados mini */
.inv-mini-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:.4rem; margin-bottom:.8rem; }
.ims-item { text-align:center; padding:.5rem .3rem; border-radius:6px; background:var(--bg3); }
.ims-item strong { display:block; font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:700; }
.ims-item span { font-size:.65rem; text-transform:uppercase; letter-spacing:.06em; color:var(--text-muted); }
.ims-item.confirmed strong { color:#66BB6A; }
.ims-item.pending  strong { color:#8B7355; }
.ims-item.declined strong { color:#EF5350; }
.ims-item.total    strong { color:var(--text); }
.inv-mini-list { display:flex; flex-direction:column; gap:.25rem; max-height:200px; overflow-y:auto; margin-bottom:.8rem; }
.inv-mini-item { display:flex; align-items:center; gap:.5rem; padding:.35rem .5rem; border-radius:4px; font-size:.8rem; color:var(--text); }
.inv-mini-item:hover { background:var(--bg3); }
.inv-mesa { margin-left:auto; font-size:.7rem; color:var(--text-dim); background:var(--bg4); padding:.1rem .4rem; border-radius:3px; }

/* Proveedores detalle */
.prov-budget { background:var(--bg3); border-radius:var(--radius); padding:.8rem; margin-bottom:.7rem; }
.pb-row { display:flex; justify-content:space-between; font-size:.82rem; margin-bottom:.3rem; color:var(--text-muted); }
.pb-row strong { color:var(--text); }
.pb-row .paid   { color:#66BB6A; }
.pb-row .unpaid { color:#FF7043; }
.prov-detalle-list { display:flex; flex-direction:column; gap:.4rem; }
.prov-detalle-item { display:flex; align-items:flex-start; gap:.7rem; padding:.6rem .7rem; background:var(--bg3); border-radius:6px; }
.pdi-cat { font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; color:var(--text-dim); width:60px; flex-shrink:0; padding-top:.15rem; line-height:1.3; }
.pdi-info { flex:1; min-width:0; }
.pdi-nombre  { font-size:.85rem; font-weight:600; color:var(--text); }
.pdi-servicio{ font-size:.75rem; color:var(--text-muted); }
.pdi-tel     { font-size:.72rem; color:var(--text-dim); display:flex; align-items:center; gap:.3rem; margin-top:.2rem; }
.pdi-right   { text-align:right; flex-shrink:0; }
.pdi-monto   { font-family:'Cormorant Garamond',serif; font-size:1rem; font-weight:600; color:var(--text); }
.pdi-estado  { font-size:.7rem; font-weight:600; }

/* Equipos detalle */
.equipo-detalle-item { background:var(--bg3); border-radius:6px; padding:.7rem .9rem; margin-bottom:.5rem; }
.equipo-detalle-item:last-child { margin-bottom:0; }
.edi-header  { display:flex; justify-content:space-between; align-items:center; margin-bottom:.5rem; }
.edi-nombre  { font-weight:600; font-size:.88rem; color:var(--text); }
.edi-count   { font-size:.72rem; color:var(--text-muted); }
.edi-members { display:flex; flex-direction:column; gap:.3rem; }
.edi-member  { display:flex; align-items:center; gap:.5rem; font-size:.8rem; }
.edi-member-name { flex:1; color:var(--text); }
.edi-member-rol  { font-size:.7rem; color:var(--text-dim); }

/* Notas */
.notas-texto { color:var(--text-muted); font-size:.88rem; line-height:1.8; white-space:pre-wrap; }

/* Selector estado rápido */
.estado-select { font-size:.8rem; padding:.4rem .7rem; }

/* Responsive detalle */


/* ── Clases utilitarias adicionales ── */
.checklist-items-full   { max-height: none; }
.btn-full               { width:100%; justify-content:center; margin-top:.5rem; }
.card-footer-action     { text-align:right; margin-top:.8rem; }

/* Colores de prioridad barra lateral actividad */
.act-prio-baja    { background:#26A69A; }
.act-prio-media   { background:#8B7355; }
.act-prio-alta    { background:#FF7043; }
.act-prio-urgente { background:#EF5350; }

/* Colores de estado proveedor detalle */
.pdi-estado-pendiente   { color:#8B7355; }
.pdi-estado-contratado  { color:#64B5F6; }
.pdi-estado-pagado      { color:#66BB6A; }
.pdi-estado-cancelado   { color:#EF5350; }

/* Icono invitado confirmación */
.inv-icon-confirmado { color:#66BB6A; font-size:.75rem; }
.inv-icon-pendiente  { color:#8B7355; font-size:.75rem; }
.inv-icon-declinado  { color:#EF5350; font-size:.75rem; }

/* ── Botón icono peligro ── */
.btn-icon-danger { color:var(--red) !important; }
.btn-icon-danger:hover { background:rgba(239,83,80,.12) !important; }

/* ── Modal warning text ── */
.modal-warning { font-size:.82rem; color:var(--red); margin-top:.5rem; opacity:.85; }

/* ── Modal header danger ── */
.modal-header.danger { border-bottom-color:rgba(239,83,80,.3); }
.modal-header.danger .modal-title { color:var(--red); }

/* ═══════════════════════════════════════════════════════════
   IMPORTAR / EXPORTAR INVITADOS
   ═══════════════════════════════════════════════════════════ */

/* Toolbar right para múltiples botones */
.toolbar-right { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; justify-content:flex-end; }

/* Info box importación */
.import-info {
    display: flex;
    gap: .8rem;
    align-items: flex-start;
    background: rgba(139,115,85,.08);
    border: 1px solid rgba(139,115,85,.2);
    border-radius: var(--radius);
    padding: .8rem 1rem;
    font-size: .84rem;
    color: var(--text-muted);
    margin-bottom: .5rem;
    line-height: 1.6;
}
.import-info i { color: var(--gold); font-size: 1.1rem; margin-top: .1rem; flex-shrink: 0; }
.import-info a { color: var(--gold); font-weight: 600; }

/* Zona drag & drop */
.file-drop-zone {
    border: 2px dashed var(--border);
    border-radius: var(--radius);
    padding: 1.5rem;
    text-align: center;
    cursor: pointer;
    transition: all .2s;
    background: var(--bg3);
}
.file-drop-zone:hover, .file-drop-zone.drag-over {
    border-color: var(--gold);
    background: rgba(139,115,85,.06);
}
.file-drop-zone.file-drop-selected {
    border-color: #66BB6A;
    background: rgba(102,187,106,.05);
}
.file-drop-icon { font-size: 2rem; color: var(--gold); margin-bottom: .5rem; display: block; }
.file-drop-text { font-size: .88rem; font-weight: 500; color: var(--text); margin-bottom: .25rem; }
.file-drop-sub  { font-size: .75rem; color: var(--text-dim); }
.file-drop-name { font-size: .82rem; color: #66BB6A; font-weight: 600; margin-top: .5rem; }

/* Reglas de importación */
.import-rules {
    background: var(--bg3);
    border-radius: var(--radius);
    padding: .8rem 1rem;
    margin-top: .5rem;
    font-size: .82rem;
    color: var(--text-muted);
}
.ir-title { font-weight: 700; color: var(--text); margin-bottom: .4rem; font-size: .83rem; }
.import-rules ul { padding-left: 1.2rem; display: flex; flex-direction: column; gap: .25rem; }
.import-rules li { line-height: 1.5; }
.import-rules code { background: var(--bg4); padding: .1rem .35rem; border-radius: 3px; font-size: .78rem; color: var(--gold); }
.import-rules a { color: var(--gold); font-weight: 600; }

/* Errores de importación */
.import-errores {
    background: rgba(239,83,80,.06);
    border: 1px solid rgba(239,83,80,.2);
    border-radius: var(--radius);
    padding: .8rem 1rem;
    margin-bottom: 1rem;
    font-size: .82rem;
    color: var(--text-muted);
}
.import-errores-title {
    font-weight: 700;
    color: var(--red);
    margin-bottom: .4rem;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.import-errores ul { padding-left: 1.2rem; display: flex; flex-direction: column; gap: .2rem; }

/* ═══════════════════════════════════════════════════════════
   NOTIFICACIONES
   ═══════════════════════════════════════════════════════════ */

.notif-page { max-width: 780px; }

/* Encabezado */
.notif-header-bar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.2rem;
}
.notif-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.8rem;
    font-weight: 400;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: .6rem;
}
.notif-title i { color: var(--gold); }
.notif-meta { font-size: .82rem; color: var(--text-dim); margin-top: .2rem; }
.notif-unread-count { color: var(--gold); font-weight: 600; }
.notif-header-actions { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }

/* Filtros */
.notif-filters {
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}
.notif-filter-btn {
    padding: .35rem .85rem;
    border-radius: 20px;
    font-size: .8rem;
    font-weight: 500;
    color: var(--text-muted);
    background: var(--bg3);
    border: 1px solid var(--border);
    transition: all .2s;
    display: flex;
    align-items: center;
    gap: .35rem;
    cursor: pointer;
}
.notif-filter-btn:hover { border-color: var(--gold); color: var(--gold); }
.notif-filter-btn.active { background: var(--gold); color: white; border-color: var(--gold); }
.notif-badge {
    background: var(--red);
    color: white;
    font-size: .65rem;
    font-weight: 700;
    padding: .1rem .35rem;
    border-radius: 10px;
    min-width: 18px;
    text-align: center;
}

/* Lista */
.notif-list { display: flex; flex-direction: column; gap: .5rem; }

.notif-item {
    display: flex;
    align-items: flex-start;
    gap: .9rem;
    padding: .9rem 1rem;
    background: var(--bg2);
    border: 1px solid var(--border);
    border-left: 4px solid var(--gold);
    border-radius: var(--radius);
    transition: border-color .2s, background .2s;
}
.notif-item:hover { border-color: var(--gold); background: var(--bg3); }
.notif-nueva { background: rgba(139,115,85,.04); }

.notif-icon-wrap {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
    margin-top: .1rem;
}

.notif-body { flex: 1; min-width: 0; }
.notif-item-title {
    font-size: .9rem;
    font-weight: 600;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}
.notif-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--gold);
    flex-shrink: 0;
    animation: pulseDot 2s ease-in-out infinite;
}
@keyframes pulseDot {
    0%,100% { opacity:1; transform:scale(1); }
    50% { opacity:.5; transform:scale(1.3); }
}
.notif-item-msg {
    font-size: .82rem;
    color: var(--text-muted);
    margin-top: .2rem;
    line-height: 1.5;
}
.notif-item-meta {
    display: flex;
    gap: .8rem;
    font-size: .72rem;
    color: var(--text-dim);
    margin-top: .4rem;
}
.notif-item-meta span { display: flex; align-items: center; gap: .25rem; }

.notif-actions {
    display: flex;
    align-items: center;
    gap: .3rem;
    flex-shrink: 0;
}
.notif-btn-ver { font-size: .75rem; padding: .3rem .65rem; }
.notif-btn-check { color: #66BB6A !important; }
.notif-btn-check:hover { background: rgba(102,187,106,.12) !important; }

/* Empty state */
.notif-empty {
    text-align: center;
    padding: 3rem;
    color: var(--text-dim);
}
.notif-empty i { font-size: 3rem; margin-bottom: 1rem; display: block; opacity: .3; }
.notif-empty p { font-size: .9rem; }

/* ═══════════════════════════════════════════════════════════
   PAX — SELECTOR ADULTOS / NIÑOS
   ═══════════════════════════════════════════════════════════ */

/* Stats bar — nuevas tarjetas */
.inv-stat.adultos  { border-left-color: var(--gold); }
.inv-stat.ninos    { border-left-color: #64B5F6; }
.inv-stat.personas { border-left-color: #66BB6A; background: rgba(102,187,106,.06); }

/* Badges en tabla */
.pax-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 24px;
    border-radius: 12px;
    font-size: .8rem;
    font-weight: 700;
    padding: 0 .5rem;
}
.pax-adulto { background: rgba(139,115,85,.12); color: var(--gold-dark); }
.pax-nino   { background: rgba(100,181,246,.15); color: #1976D2; }

/* Fila de totales en tabla */
.table-totals td {
    background: var(--bg3);
    font-size: .85rem;
    color: var(--text);
    padding: .6rem .75rem;
    border-top: 2px solid var(--border);
}

/* Selector pax en modal */
.pax-selector {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg3);
    overflow: hidden;
}
.pax-item {
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: .8rem 1rem;
}
.pax-divider {
    height: 1px;
    background: var(--border);
    margin: 0 1rem;
}
.pax-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
}
.pax-adulto-icon { background: rgba(139,115,85,.12); color: var(--gold); }
.pax-nino-icon   { background: rgba(100,181,246,.15); color: #1976D2; }

.pax-info { flex: 1; }
.pax-label { display: block; font-size: .88rem; font-weight: 600; color: var(--text); }
.pax-hint  { display: block; font-size: .75rem; color: var(--text-dim); }

.pax-counter {
    display: flex;
    align-items: center;
    gap: .4rem;
}
.pax-btn {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1px solid var(--border);
    background: var(--bg2);
    color: var(--text);
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .15s;
    line-height: 1;
}
.pax-btn:hover { background: var(--gold); color: white; border-color: var(--gold); }

.pax-input {
    width: 44px;
    text-align: center;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: .3rem;
    font-size: .95rem;
    font-weight: 700;
    color: var(--text);
    background: var(--bg2);
    -moz-appearance: textfield;
}
.pax-input::-webkit-outer-spin-button,
.pax-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.pax-total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .6rem 1rem;
    background: rgba(139,115,85,.06);
    border-top: 1px solid var(--border);
    font-size: .88rem;
    color: var(--text-muted);
}
.pax-total-row strong { font-size: 1.05rem; color: var(--gold); }

/* Celda subtexto */
.cell-sub  { font-size: .75rem; color: var(--text-dim); margin-top: 2px; }
.cell-dim  { color: var(--text-dim); font-size: .85rem; }
.cell-center { text-align: center; }

/* ═══════════════════════════════════════════════════════════
   PRESUPUESTO
   ═══════════════════════════════════════════════════════════ */

.pb-selector { max-width:340px; }
.pb-selector select { width:100%; }

.pb-evento-header {
    display:flex; align-items:center; justify-content:space-between;
    gap:1rem; padding:1rem 1.25rem;
    background:var(--bg2); border:1px solid var(--border);
    border-radius:var(--radius); margin-bottom:1.25rem;
    border-left:4px solid var(--gold);
}
.pb-evento-tipo   { font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.2rem; }
.pb-evento-nombre { font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:500; color:var(--text); line-height:1.2; }

/* Tarjetas de resumen */
.pb-cards {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:.75rem; margin-bottom:1rem;
}
.pb-card {
    background:var(--bg2); border:1px solid var(--border);
    border-radius:var(--radius); padding:.9rem 1rem;
    border-left:3px solid var(--border);
}
.pb-card-label { font-size:.72rem; font-weight:700; color:var(--text-dim); text-transform:uppercase; letter-spacing:.06em; margin-bottom:.35rem; }
.pb-card-value { font-size:1.25rem; font-weight:700; color:var(--text); line-height:1.2; }
.pb-card-sub   { font-size:.78rem; color:var(--text-muted); margin-top:.3rem; display:flex; align-items:center; gap:.3rem; }
.pb-card-sub i { font-size:.75rem; }

/* Barra global */
.pb-bar-labels { display:flex; justify-content:space-between; font-size:.78rem; color:var(--text-muted); margin-bottom:.3rem; }
.pb-bar-track  { height:10px; background:var(--bg4); border-radius:5px; overflow:hidden; margin-bottom:1.5rem; }
.pb-bar-fill   { height:100%; border-radius:5px; transition:width .4s; }

/* Título de sección */
.pb-section {
    display:flex; align-items:center; gap:.6rem;
    font-size:.95rem; font-weight:700; color:var(--text);
    padding-bottom:.5rem; border-bottom:2px solid var(--border);
    margin-bottom:.85rem;
}
.pb-section i       { color:var(--gold); }
.pb-section-monto   { margin-left:auto; font-size:.95rem; font-weight:700; color:var(--gold); }

/* Bloque de categoría */
.pb-cat { border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; margin-bottom:.85rem; }
.pb-cat-head {
    display:flex; justify-content:space-between; align-items:center;
    padding:.5rem .9rem; background:var(--bg3); border-bottom:1px solid var(--border);
}
.pb-cat-head-name  { font-size:.82rem; font-weight:700; color:var(--text); }
.pb-cat-head-total { font-size:.88rem; font-weight:700; color:var(--gold); }

/* Tabla de conceptos */
.pb-table { width:100%; border-collapse:collapse; font-size:.86rem; }
.pb-table th {
    background:var(--bg3); color:var(--text-muted);
    font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
    padding:.45rem .8rem; text-align:left; border-bottom:1px solid var(--border);
}
.pb-table td {
    padding:.55rem .8rem; vertical-align:middle;
    border-bottom:1px solid var(--border); color:var(--text);
}
.pb-table tbody tr:last-child td { border-bottom:none; }
.pb-table tbody tr:hover td      { background:rgba(139,115,85,.04); }
.pb-table tfoot td {
    background:var(--bg3); font-weight:700; font-size:.84rem;
    border-top:1px solid var(--border); padding:.5rem .8rem;
}
.pb-table .r  { text-align:right; }
.pb-table .c  { text-align:center; }
.pb-table .ac { text-align:center; width:90px; }

/* Mini barra por concepto */
.pb-mini-track { height:5px; background:var(--bg4); border-radius:3px; overflow:hidden; width:60px; display:inline-block; vertical-align:middle; }
.pb-mini-fill  { height:100%; border-radius:3px; }
.pb-mini-pct   { font-size:.7rem; font-weight:700; display:inline-block; margin-left:4px; }

/* Gran total */
.pb-gran-total {
    display:flex; justify-content:space-between; align-items:center;
    background:var(--gold); color:white; font-weight:700;
    padding:.8rem 1.1rem; border-radius:var(--radius);
    margin-bottom:1.5rem; gap:.5rem; flex-wrap:wrap; font-size:.9rem;
}
.pb-gt-item               { display:flex; flex-direction:column; align-items:flex-end; }
.pb-gt-item:first-child   { align-items:flex-start; }
.pb-gt-label { font-size:.7rem; opacity:.8; font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
.pb-gt-val   { font-size:1.05rem; }

/* Historial */
.pb-hist-table th, .pb-hist-table td { font-size:.83rem; }
.pb-moneda-pos { color:#66BB6A; font-weight:700; }
.pb-moneda-neg { color:#EF5350; font-weight:700; }

/* Estado vacío presupuesto */
.pb-empty {
    text-align:center; padding:2.5rem 1rem;
    color:var(--text-dim); background:var(--bg3);
    border-radius:var(--radius); margin-bottom:1rem;
}
.pb-empty i { font-size:2rem; opacity:.25; display:block; margin-bottom:.5rem; }
.pb-empty p { font-size:.88rem; }

/* Nombre/desc concepto en tabla */
.pb-con-nombre { font-weight:500; }
.pb-con-desc   { font-size:.74rem; color:var(--text-dim); margin-top:1px; }

/* ═══════════════════════════════════════════════════════════
   TIMELINE
   ═══════════════════════════════════════════════════════════ */

.tl-selector { max-width:360px; }

.tl-evento-header {
    display:flex; align-items:center; justify-content:space-between;
    gap:1rem; padding:1rem 1.25rem;
    background:var(--bg2); border:1px solid var(--border);
    border-radius:var(--radius); margin-bottom:1.25rem;
    border-left:4px solid var(--gold);
}
.tl-evento-tipo   { font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.2rem; }
.tl-evento-nombre { font-family:'Cormorant Garamond',serif; font-size:1.55rem; font-weight:500; color:var(--text); }
.tl-evento-meta   { display:flex; gap:1.2rem; margin-top:.35rem; flex-wrap:wrap; }
.tl-evento-meta span { font-size:.78rem; color:var(--text-muted); display:flex; align-items:center; gap:.35rem; }
.tl-evento-meta i    { color:var(--gold); font-size:.75rem; }

/* Stats */
.tl-stats {
    display:grid; grid-template-columns:repeat(4,1fr);
    gap:.75rem; margin-bottom:1.25rem;
}
.tl-stat {
    background:var(--bg2); border:1px solid var(--border);
    border-radius:var(--radius); padding:.75rem 1rem;
    border-left:3px solid var(--border); text-align:center;
}
.tl-stat-val   { font-size:1.4rem; font-weight:700; color:var(--text); line-height:1; }
.tl-stat-label { font-size:.72rem; color:var(--text-dim); margin-top:.3rem; text-transform:uppercase; letter-spacing:.05em; font-weight:600; }

/* Línea vertical */
.tl-wrap { position:relative; padding-left:2.5rem; }
.tl-wrap::before {
    content:''; position:absolute; left:.95rem; top:0; bottom:0;
    width:2px; background:var(--border); border-radius:1px;
}

/* Ítem */
.tl-item { position:relative; margin-bottom:1.25rem; cursor:pointer; }
.tl-item:last-child { margin-bottom:0; }

/* Dot */
.tl-dot {
    position:absolute; left:-2.5rem;
    width:34px; height:34px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:.85rem; color:white;
    border:2px solid white; box-shadow:0 2px 8px rgba(0,0,0,.15);
    top:.35rem; z-index:1; transition:transform .2s;
}
.tl-item:hover .tl-dot { transform:scale(1.12); }

/* Badge destacado */
.tl-destacado-badge {
    position:absolute; left:-2.6rem; top:-.4rem;
    font-size:.65rem; color:#D4AF37;
    z-index:2; text-shadow:0 1px 4px rgba(0,0,0,.2);
}

/* Tarjeta */
.tl-card {
    background:var(--bg2); border:1px solid var(--border);
    border-radius:var(--radius); padding:.85rem 1rem;
    transition:box-shadow .2s, border-color .2s;
    border-left:3px solid transparent;
}
.tl-card:hover { box-shadow:0 2px 12px rgba(0,0,0,.08); }
.tl-item.destacado .tl-card {
    background:rgba(212,175,55,.04);
    border-color:rgba(212,175,55,.25);
}

/* Cabecera tarjeta */
.tl-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:.5rem; }
.tl-card-titulo {
    font-size:.97rem; font-weight:700; color:var(--text); line-height:1.3;
    display:flex; align-items:center; gap:.5rem; flex-wrap:wrap;
}
.tl-card-titulo .destacado-star { color:#D4AF37; font-size:.85rem; }
.tl-card-actions { display:flex; gap:.2rem; flex-shrink:0; }

/* Horario */
.tl-horario { display:flex; align-items:center; gap:.5rem; margin-bottom:.4rem; flex-wrap:wrap; }
.tl-hora-ini {
    font-size:.88rem; font-weight:700; color:var(--gold);
    font-family:'Cormorant Garamond',serif; letter-spacing:.03em;
}
.tl-hora-sep { font-size:.75rem; color:var(--text-dim); }
.tl-hora-fin { font-size:.82rem; color:var(--text-muted); }
.tl-duracion {
    font-size:.72rem; background:var(--bg3);
    padding:.1rem .45rem; border-radius:10px;
    color:var(--text-dim); font-weight:600;
}
.tl-cat-badge {
    font-size:.67rem; padding:.1rem .45rem; border-radius:10px;
    font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:white;
}

/* Meta info */
.tl-card-meta { display:flex; gap:1rem; flex-wrap:wrap; margin-top:.4rem; }
.tl-card-meta-item { font-size:.78rem; color:var(--text-muted); display:flex; align-items:center; gap:.3rem; }
.tl-card-meta-item i { font-size:.72rem; color:var(--gold); }
.tl-card-desc { font-size:.82rem; color:var(--text-muted); margin-top:.4rem; line-height:1.5; }

/* Separador */
.tl-day-sep {
    display:flex; align-items:center; gap:.8rem;
    margin-bottom:1.25rem; font-size:.78rem;
    font-weight:700; color:var(--text-muted);
    text-transform:uppercase; letter-spacing:.08em;
}
.tl-day-sep::before, .tl-day-sep::after { content:''; flex:1; height:1px; background:var(--border); }

/* Estado vacío */
.tl-empty { text-align:center; padding:4rem 2rem; color:var(--text-dim); }
.tl-empty i { font-size:3.5rem; opacity:.18; display:block; margin-bottom:1rem; }
.tl-empty p { font-size:.95rem; margin-bottom:1.25rem; }

/* Selector de categorías en modal timeline */
.cat-option { display:block; cursor:pointer; }
.cat-option input[type=radio] { display:none; }
.cat-opt-inner {
    display:flex; align-items:center; gap:.45rem;
    padding:.45rem .7rem; border-radius:6px;
    font-size:.8rem; font-weight:600;
    border:1.5px solid var(--border); color:var(--text-muted);
    background:var(--bg2); transition:all .15s;
}
.cat-opt-inner i { font-size:.85rem; color:var(--text-dim); }
.cat-option input:checked + .cat-opt-inner {
    background:var(--cat-color); border-color:var(--cat-color); color:white;
}
.cat-option input:checked + .cat-opt-inner i { color:white; }
.cat-opt-inner:hover { border-color:var(--cat-color); color:var(--cat-color); }

/* Imprimir */
@media print {
    .sidebar, .topbar, .toolbar, .tl-card-actions,
    #modalItem, .modal-overlay { display:none !important; }
    .main-content { margin-left:0 !important; padding-top:1rem !important; }
    .tl-card { box-shadow:none !important; break-inside:avoid; }
    .tl-wrap::before { background:#ccc; }
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE — SISTEMA UNIFICADO
   ═══════════════════════════════════════════════════════════ */

/* ── Tablet grande (≤1200px) ── */
@media (max-width: 1200px) {
    .kanban-board       { grid-template-columns: repeat(2, 1fr); }
    .dashboard-grid     { grid-template-columns: 1fr; }
    .dash-col.aside     { grid-row: auto; }
    .detalle-grid       { grid-template-columns: 1fr; }
}

/* ── Tablet (≤1024px) ── */
@media (max-width: 1024px) {
    .pb-cards           { grid-template-columns: repeat(2, 1fr); }
    .tl-stats           { grid-template-columns: repeat(2, 1fr); }
    .inv-stats          { flex-wrap: wrap; }
}

/* ── Tablet pequeña / móvil grande (≤900px) ── */
@media (max-width: 900px) {
    /* Sidebar se oculta y se abre con botón */
    .sidebar            { transform: translateX(-100%); }
    .sidebar.open       { transform: translateX(0); }
    .topbar             { left: 0; }
    .main-content       { margin-left: 0; width: 100%; padding: calc(var(--topbar-h) + 1.2rem) 1rem 1.5rem; }
    .sidebar-toggle     { display: block; }

    /* Login */
    .login-panel-left   { display: none; }
    .login-panel-right  { width: 100%; border-radius: var(--radius); }

    /* Grids */
    .metrics-row        { grid-template-columns: repeat(2, 1fr); }
    .events-grid        { grid-template-columns: repeat(2, 1fr); }
    .pres-resumen       { grid-template-columns: repeat(2, 1fr); }

    /* Formularios */
    .form-grid-2, .form-grid-3 { grid-template-columns: 1fr; }
    .field-group.col-2  { grid-column: auto; }

    /* Toolbar — apilar en columna */
    .toolbar            { flex-direction: column; align-items: stretch; }
    .toolbar-left       { width: 100%; }
    .toolbar-right      { width: 100%; justify-content: flex-end; }
    .search-bar         { width: 100%; }
    .search-bar input   { width: 100%; min-width: 0; }

    /* Detalle evento */
    .detalle-metrics    { grid-template-columns: repeat(3, 1fr); }
    .hero-title         { font-size: 1.7rem; }

    /* Presupuesto */
    .pres-header        { flex-direction: column; align-items: flex-start; gap: .5rem; }
    .pres-gran-total    { flex-wrap: wrap; gap: .4rem; }

    /* Timeline */
    .tl-evento-header   { flex-direction: column; align-items: flex-start; gap: .5rem; }
    .tl-stats           { grid-template-columns: repeat(2, 1fr); }
}

/* ── Móvil (≤600px) ── */
@media (max-width: 600px) {
    /* Layout */
    .main-content       { padding: calc(var(--topbar-h) + 1rem) .85rem 1.2rem; }

    /* Grids — una columna */
    .metrics-row        { grid-template-columns: 1fr; }
    .kanban-board       { grid-template-columns: 1fr; }
    .events-grid        { grid-template-columns: 1fr; }
    .pb-cards           { grid-template-columns: 1fr; }
    .tl-stats           { grid-template-columns: repeat(2, 1fr); }
    .pres-resumen       { grid-template-columns: 1fr; }

    /* Métricas evento */
    .detalle-metrics    { grid-template-columns: repeat(2, 1fr); }
    .hero-title         { font-size: 1.4rem; }

    /* Calendario */
    .calendar-grid      { font-size: .62rem; }
    .cal-cell           { min-height: 58px; padding: .25rem; }
    .cal-event-chip, .cal-task-chip { font-size: .58rem; padding: .12rem .3rem; }
    .cal-header-cell    { font-size: .65rem; padding: .45rem .25rem; letter-spacing: 0; }
    .cal-month          { font-size: 1.4rem; }
    .calendar-nav       { gap: .5rem; }

    /* Tablas — scroll horizontal */
    .table-wrap         { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .data-table         { min-width: 520px; }
    .pb-table           { min-width: 480px; }

    /* Cards */
    .card               { padding: .9rem; }
    .modal              { max-height: 95vh; }
    .modal-form         { padding: 1rem; }
    .modal-header       { padding: .9rem 1rem; }

    /* Toolbar */
    .toolbar-right      { flex-wrap: wrap; gap: .4rem; }
    .toolbar-right .btn-outline,
    .toolbar-right .btn-primary { font-size: .78rem; padding: .4rem .7rem; }

    /* Invitados stats */
    .inv-stats          { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; }
    .inv-stat           { margin: 0; }

    /* Hero evento */
    .evento-hero        { flex-direction: column; gap: .75rem; }
    .hero-right         { flex-direction: row; flex-wrap: wrap; gap: .4rem; }

    /* Presupuesto */
    .pres-table th.acc-col,
    .pres-table td.acc-col  { display: none; }
    .pres-gran-total        { font-size: .78rem; flex-direction: column; gap: .3rem; }
    .pb-gran-total          { flex-direction: column; gap: .3rem; }

    /* Timeline */
    .tl-horario         { flex-wrap: wrap; gap: .3rem; }
    .tl-card-head       { flex-direction: column; gap: .4rem; }
    .tl-card-actions    { align-self: flex-end; }
    .tl-wrap            { padding-left: 2rem; }
    .tl-dot             { width: 28px; height: 28px; font-size: .75rem; left: -2rem; }

    /* Notificaciones */
    .notif-page         { padding: 0; }
    .notif-item         { flex-wrap: wrap; gap: .6rem; }
    .notif-actions      { margin-left: auto; }

    /* Ocultar columnas no esenciales en tablas móvil */
    .data-table .hide-mobile { display: none; }
}

/* ── Móvil pequeño (≤400px) ── */
@media (max-width: 400px) {
    .main-content       { padding: calc(var(--topbar-h) + .8rem) .65rem 1rem; }
    .detalle-metrics    { grid-template-columns: 1fr 1fr; gap: .5rem; }
    .dm-card            { padding: .6rem; }
    .dm-value           { font-size: 1rem; }
    .tl-stats           { grid-template-columns: 1fr 1fr; }
    .pb-cards           { grid-template-columns: 1fr; }
    .cal-cell           { min-height: 46px; }
    .modal              { max-height: 98vh; }
}
