/* Zona Privada — extensión visual de LA TUNA */
.private-page { background: var(--color-bg); }
.private-main { min-height: calc(100vh - 140px); padding-top: 72px; }
.private-section { padding: var(--space-2xl) 0; }
.private-shell { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 var(--space-md); }
.private-auth-shell { max-width: 1050px; }
.private-heading, .private-topbar { margin-bottom: var(--space-xl); }
.private-heading { text-align: center; }
.private-heading .section__subtitle { margin-left: auto; margin-right: auto; }
.private-auth-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr); gap: var(--space-lg); align-items: start; }
.private-card { background: var(--color-card); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-xl); box-shadow: var(--shadow-sm); }
.private-auth-card { max-width: 680px; width: 100%; margin: 0 auto; }
.private-note-card { border-color: rgba(201,168,76,.25); }
.private-card-icon { display: block; font-size: 2rem; margin-bottom: var(--space-md); }
.private-card h2, .private-calendar-heading h2 { font-family: var(--font-heading); margin-bottom: var(--space-sm); }
.private-muted { color: var(--color-text-muted); }
.private-tabs { display: flex; gap: var(--space-sm); border-bottom: 1px solid var(--color-border); margin-bottom: var(--space-lg); }
.private-tab { color: var(--color-text-muted); background: transparent; border: 0; border-bottom: 2px solid transparent; padding: .7rem .3rem; cursor: pointer; font: inherit; font-weight: 600; }
.private-tab.active { color: var(--color-text); border-bottom-color: var(--color-primary); }
.private-form { display: grid; gap: .6rem; }
.private-form[hidden], .private-section[hidden] { display: none !important; }
.private-form label { color: var(--color-text-muted); font-size: .9rem; }
.private-form input, .private-form select, .private-form textarea { width: 100%; padding: .8rem .9rem; background: #111; color: var(--color-text); border: 1px solid var(--color-border-light); border-radius: var(--radius-sm); font: inherit; }
.private-form input:focus, .private-form select:focus, .private-form textarea:focus { outline: 2px solid rgba(153,0,0,.55); outline-offset: 1px; border-color: var(--color-primary); }
.private-form-row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--space-sm); }
.private-form-row--three { grid-template-columns: repeat(3, minmax(0,1fr)); }
.private-form-row > div { min-width: 0; }
.private-form-row > div > label { display: block; margin-bottom: .6rem; }
.private-link-button { justify-self: center; background: none; border: 0; color: var(--color-gold); cursor: pointer; font: inherit; font-size: .9rem; }
.private-link-button:hover { color: var(--color-primary-light); }
.private-optional { border: 1px solid var(--color-border); padding: var(--space-sm); border-radius: var(--radius-sm); margin: .5rem 0; }
.private-optional summary { cursor: pointer; color: var(--color-gold); margin-bottom: .7rem; }
.private-check { display: flex; align-items: center; gap: .55rem; }
.private-check input { width: auto; accent-color: var(--color-primary); }
.private-message { min-height: 1.5rem; margin-bottom: var(--space-md); color: var(--color-gold); }
.private-message.error { color: #ff9c9c; }
.private-message.success { color: #72e0a0; }
.private-topbar { display: flex; justify-content: space-between; align-items: end; gap: var(--space-md); }
.private-topbar h1 { font-family: var(--font-heading); font-size: clamp(2rem,5vw,3rem); }
.private-summary-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: var(--space-md); margin-bottom: var(--space-lg); }
.private-summary-card { display: flex; flex-direction: column; gap: .3rem; min-height: 145px; }
.private-summary-card span { color: var(--color-gold); font-size: .82rem; text-transform: uppercase; letter-spacing: 1px; }
.private-summary-card strong { font-family: var(--font-heading); font-size: 1.4rem; color: var(--color-text); margin-top: auto; }
.private-summary-card small { color: var(--color-text-dim); }
.private-summary-feature { border-color: rgba(153,0,0,.55); }
.private-calendar-card { padding: var(--space-lg); }
.private-calendar-heading { display: flex; justify-content: space-between; margin-bottom: var(--space-lg); }
#calendar, #adminCalendar { min-height: 600px; color: var(--color-text); }
.fc { --fc-border-color: var(--color-border); --fc-page-bg-color: transparent; --fc-neutral-bg-color: #151515; --fc-list-event-hover-bg-color: #222; --fc-today-bg-color: rgba(153,0,0,.14); --fc-button-bg-color: var(--color-primary); --fc-button-border-color: var(--color-primary); --fc-button-hover-bg-color: var(--color-primary-light); --fc-button-hover-border-color: var(--color-primary-light); --fc-button-active-bg-color: var(--color-primary-dark); --fc-button-active-border-color: var(--color-primary-dark); }
.fc .fc-toolbar-title { font-family: var(--font-heading); font-size: 1.35rem; }
.fc .fc-col-header-cell-cushion, .fc .fc-daygrid-day-number, .fc .fc-list-day-text, .fc .fc-list-day-side-text { color: var(--color-text-muted); }
.fc .fc-event { border: 0; padding: 2px 4px; cursor: pointer; }
.private-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--space-lg); margin-bottom: var(--space-lg); }
.private-list { display: grid; gap: .7rem; margin-top: var(--space-md); }
.private-list-item { display: flex; justify-content: space-between; align-items: center; gap: var(--space-sm); padding: .8rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.private-list-item small { display: block; color: var(--color-text-muted); }
.private-list-actions { display: flex; gap: .4rem; flex-wrap: wrap; justify-content: end; }
.private-list-actions button { padding: .45rem .65rem; border: 1px solid var(--color-border-light); color: var(--color-text); background: transparent; border-radius: 5px; cursor: pointer; }
.private-list-actions button:hover { border-color: var(--color-primary); }
.private-editor { margin-bottom: var(--space-lg); }
.private-editor-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--space-md); }
.private-editor-checks { display: grid; gap: .7rem; align-content: center; }
.private-modal { position: fixed; inset: 0; z-index: 2000; display: grid; place-items: center; padding: var(--space-md); }
.private-modal[hidden] { display: none !important; }
.private-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.8); cursor: pointer; z-index: 0; }
.private-modal__dialog { z-index: 1; }
.private-modal__dialog { position: relative; max-width: 620px; width: 100%; background: var(--color-card); border: 1px solid var(--color-primary); border-radius: var(--radius-md); padding: var(--space-xl); box-shadow: var(--shadow-lg); }
.private-modal__dialog h2 { font-family: var(--font-heading); font-size: 2rem; margin-bottom: var(--space-lg); }
.private-event-image { width: 100%; max-height: 260px; object-fit: cover; border-radius: var(--radius-sm); margin: 0 0 var(--space-lg); border: 1px solid var(--color-border-light); }
.private-modal__close { position: absolute; right: 1rem; top: .7rem; border: 0; background: transparent; color: var(--color-text); font-size: 2rem; cursor: pointer; }
.private-event-details { display: grid; grid-template-columns: repeat(2,1fr); gap: var(--space-md); margin-bottom: var(--space-lg); }
.private-event-details dt { color: var(--color-gold); font-size: .8rem; text-transform: uppercase; letter-spacing: 1px; }
.private-event-details dd { color: var(--color-text-muted); margin-top: .2rem; }
.private-logout { border: 0; cursor: pointer; font: inherit; }
.private-page .footer { padding-top: var(--space-lg); }
@media (max-width: 800px) { .private-auth-grid, .private-admin-grid { grid-template-columns: 1fr; } .private-summary-grid { grid-template-columns: 1fr 1fr; } .private-summary-feature { grid-column: 1/-1; } }
@media (max-width: 600px) { .private-section { padding: var(--space-xl) 0; } .private-card { padding: var(--space-lg); } .private-form-row, .private-form-row--three, .private-event-details { grid-template-columns: 1fr; } .private-topbar { align-items: start; flex-direction: column; } .private-topbar .btn { width: 100%; } .private-calendar-card { padding: var(--space-sm); } #calendar, #adminCalendar { min-height: 500px; } .fc .fc-toolbar { flex-direction: column; gap: .65rem; align-items: stretch; } .fc .fc-toolbar-chunk { display: flex; justify-content: center; } .fc .fc-toolbar-title { font-size: 1.15rem; } .fc .fc-button { padding: .45rem .55rem; font-size: .8rem; } }
