:root{
  --navy:#061a3b;--navy2:#0b2e61;--blue:#0b6fd3;--electric:#1797ff;--gold:#f2be32;
  --bg:#edf2f8;--paper:#fff;--ink:#152033;--muted:#6b7688;--line:#dbe3ed;--success:#137a50;--danger:#b42318;
  --shadow:0 18px 55px rgba(15,37,70,.12);--radius:22px
}

/* Regla crítica: las clases del diseño no deben anular el atributo hidden. */
[hidden], #loginView[hidden], #adminApp[hidden] {
  display: none !important;
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-view{min-height:100svh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,rgba(23,151,255,.28),transparent 33%),linear-gradient(145deg,#031129,#0a376e)}.login-card{width:min(480px,100%);background:rgba(255,255,255,.98);border-radius:28px;padding:38px;box-shadow:0 35px 95px rgba(0,0,0,.35);text-align:center}.login-card>img{width:92px;height:92px;object-fit:contain}.kicker,.eyebrow{font-size:11px;font-weight:900;letter-spacing:.2em;color:var(--blue)}.login-card h1{font-family:Georgia,serif;font-size:36px;line-height:1.05;margin:10px 0 12px;color:var(--navy)}.login-copy{color:var(--muted);line-height:1.65}.login-card form{display:grid;gap:15px;text-align:left;margin-top:25px}.login-card label,.form-card label,.edition-card label{display:grid;gap:8px;font-size:13px;font-weight:800;color:#334158}.login-card input,.form-card input,.form-card select,.form-card textarea,.edition-card input,.edition-card textarea,.filter-bar input,.filter-bar select{width:100%;border:1px solid var(--line);border-radius:13px;padding:13px 14px;background:#fff;color:var(--ink);outline:none}.login-card input:focus,.form-card input:focus,.form-card select:focus,.form-card textarea:focus,.edition-card input:focus,.edition-card textarea:focus,.filter-bar input:focus,.filter-bar select:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(11,111,211,.1)}.local-note{font-size:13px;line-height:1.55;background:#edf5ff;border:1px solid #cde4fb;border-radius:12px;padding:12px;color:#244a72}.form-error{min-height:20px;color:var(--danger);font-size:13px}.primary,.secondary,.danger{border:0;border-radius:13px;padding:12px 17px;font-weight:900}.primary{background:linear-gradient(135deg,var(--blue),var(--electric));color:white;box-shadow:0 10px 24px rgba(11,111,211,.23)}.primary:hover{filter:brightness(1.05)}.secondary{background:#edf2f7;color:var(--navy);border:1px solid var(--line)}.danger{background:#fee4e2;color:var(--danger)}.large{min-height:52px}.admin-shell{min-height:100svh;display:grid;grid-template-columns:270px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:270px;display:flex;flex-direction:column;padding:24px 17px;background:linear-gradient(180deg,#03132f,#072653);color:white;z-index:50}.admin-brand{display:flex;align-items:center;gap:12px;padding:4px 10px 24px;color:white;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.12)}.admin-brand img{width:52px;height:52px;object-fit:contain}.admin-brand span{display:grid}.admin-brand b{font-size:15px;letter-spacing:.12em}.admin-brand small{font-size:9px;color:var(--gold);letter-spacing:.18em;font-weight:900;margin-top:4px}.sidebar nav{display:grid;gap:6px;margin-top:28px}.side-link{display:flex;align-items:center;gap:13px;width:100%;padding:13px 14px;border:0;border-radius:13px;background:transparent;color:#cdd9eb;text-align:left;font-weight:800}.side-link span{width:25px;font-size:19px;text-align:center}.side-link:hover,.side-link.active{background:rgba(255,255,255,.12);color:#fff}.side-link.active{box-shadow:inset 3px 0 0 var(--gold)}.sidebar-bottom{margin-top:auto;display:grid;gap:12px}.mode-badge{font-size:10px;text-align:center;padding:8px;border-radius:10px;background:rgba(255,255,255,.09);color:#d7e2f0;letter-spacing:.1em}.logout-btn{border:1px solid rgba(255,255,255,.18);background:transparent;color:white;border-radius:12px;padding:11px;font-weight:800}.admin-main{grid-column:2;min-width:0}.admin-topbar{position:sticky;top:0;z-index:30;height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,55px);background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.admin-topbar p{margin:0;color:var(--muted);font-size:12px}.admin-topbar h2{margin:3px 0 0;color:var(--navy);font-size:20px}.view-public{color:var(--blue);font-size:13px;font-weight:900;text-decoration:none}.menu-btn{display:none;border:0;background:#edf2f7;border-radius:10px;width:42px;height:42px;color:var(--navy);font-size:21px}.admin-main main{padding:38px clamp(20px,4vw,55px) 70px}.admin-view{display:none}.admin-view.active{display:block;animation:fadeIn .25s ease}.welcome-card{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;padding:clamp(28px,4vw,48px);border-radius:28px;background:linear-gradient(135deg,#071d43,#0a4b8f);color:white;box-shadow:var(--shadow);overflow:hidden}.welcome-card h1{font-family:Georgia,serif;font-size:clamp(34px,4vw,55px);margin:8px 0 12px}.welcome-card p{color:#cfdef0;margin:0;font-size:17px}.welcome-card img{width:150px;height:150px;object-fit:contain;filter:drop-shadow(0 15px 25px rgba(0,0,0,.3))}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0}.quick-card{min-height:165px;display:grid;align-content:center;justify-items:start;gap:8px;padding:24px;border:1px solid var(--line);border-radius:20px;background:white;text-align:left;box-shadow:0 10px 30px rgba(15,37,70,.07)}.quick-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.quick-card.featured{background:linear-gradient(145deg,#fff9e7,#fff);border-color:#f5d879}.quick-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:13px;background:#e7f3ff;color:var(--blue);font-size:25px;font-weight:900}.quick-card.featured .quick-icon{background:var(--gold);color:var(--navy)}.quick-card b{font-size:18px;color:var(--navy)}.quick-card small{color:var(--muted)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.stats-grid article{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;background:#fff;border:1px solid var(--line);border-radius:18px}.stats-grid span{color:var(--muted);font-size:13px;font-weight:800}.stats-grid strong{font-size:32px;color:var(--navy)}.section-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:23px}.section-intro h1{font-family:Georgia,serif;font-size:clamp(34px,4vw,52px);color:var(--navy);margin:7px 0}.section-intro p{margin:0;color:var(--muted);font-size:16px}.form-card{background:white;border:1px solid var(--line);border-radius:24px;padding:clamp(22px,4vw,38px);box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid .wide{grid-column:1/-1}.form-card textarea{resize:vertical;min-height:150px;line-height:1.55}.form-card label small{justify-self:end;color:var(--muted);font-weight:600}.upload-box{margin-top:25px;padding:20px;border:2px dashed #bfd0e3;border-radius:18px;background:#f7fafe}.upload-trigger{width:100%;min-height:130px;display:grid;place-items:center;align-content:center;gap:5px;border:0;background:transparent;color:var(--navy)}.upload-trigger span{font-size:38px}.upload-trigger b{font-size:18px}.upload-trigger small{color:var(--muted)}.upload-box>p{font-size:12px;color:var(--muted);text-align:center}.photo-preview{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.photo-item{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:#dde5ef}.photo-item img{width:100%;height:100%;object-fit:cover}.photo-item button{position:absolute;right:6px;top:6px;width:29px;height:29px;border:0;border-radius:50%;background:rgba(5,19,46,.85);color:#fff;font-size:17px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:25px}.filter-bar{display:grid;grid-template-columns:1fr 220px;gap:12px;margin-bottom:18px}.activity-list{display:grid;gap:14px}.empty-state{padding:55px 20px;text-align:center;border:1px dashed #bdcada;border-radius:20px;background:rgba(255,255,255,.55);color:var(--muted)}.empty-state b{display:block;color:var(--navy);font-size:20px;margin-bottom:7px}.activity-card{display:grid;grid-template-columns:145px 1fr auto;gap:20px;align-items:center;padding:15px;background:#fff;border:1px solid var(--line);border-radius:19px;box-shadow:0 8px 25px rgba(15,37,70,.06)}.activity-thumb{width:145px;height:105px;border-radius:13px;object-fit:cover;background:#e4ebf3}.activity-card h3{margin:5px 0 7px;color:var(--navy);font-size:19px}.activity-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.activity-meta{display:flex;flex-wrap:wrap;gap:7px}.activity-meta span,.status-pill{display:inline-flex;border-radius:20px;padding:6px 9px;font-size:10px;font-weight:900}.activity-meta span{background:#e9f2fb;color:#28557f}.status-pill.borrador{background:#fff1d6;color:#8c5a00}.status-pill.listo{background:#dcf4e8;color:#126941}.status-pill.publicado{background:#e7ebf2;color:#526174}.activity-actions{display:flex;gap:7px}.activity-actions button{border:0;border-radius:10px;padding:9px 11px;font-size:12px;font-weight:900}.edit-btn{background:#e7f2ff;color:var(--blue)}.delete-btn{background:#fee8e7;color:var(--danger)}.publish-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);gap:22px}.selection-card,.edition-card{background:white;border:1px solid var(--line);border-radius:22px;padding:23px;box-shadow:0 12px 35px rgba(15,37,70,.07)}.card-title{display:flex;align-items:center;justify-content:space-between}.card-title h3{margin:0;color:var(--navy)}.text-btn{border:0;background:transparent;color:var(--blue);font-weight:900}.publish-selection{display:grid;gap:10px;margin-top:18px;max-height:610px;overflow:auto}.select-activity{display:grid;grid-template-columns:auto 75px 1fr;gap:12px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:14px}.select-activity input{width:20px;height:20px;accent-color:var(--blue)}.select-activity img{width:75px;height:58px;border-radius:9px;object-fit:cover;background:#e5ebf2}.select-activity b{display:block;color:var(--navy);font-size:14px}.select-activity small{color:var(--muted)}.edition-card{display:grid;gap:17px;align-content:start;position:sticky;top:105px}.edition-number{display:inline-block;background:var(--gold);color:var(--navy);border-radius:10px;padding:9px 11px;font-size:11px;font-weight:900;letter-spacing:.1em}.edition-card textarea{resize:vertical}.publish-note{font-size:12px;color:var(--muted);text-align:center}.editions-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.edition-item{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 10px 30px rgba(15,37,70,.07)}.edition-item img{width:100%;height:200px;object-fit:cover;background:#dce4ed}.edition-item div{padding:18px}.edition-item h3{margin:0 0 7px;color:var(--navy)}.edition-item p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.edition-item a{display:inline-block;margin-top:14px;color:var(--blue);font-weight:900;font-size:13px;text-decoration:none}.backup-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.backup-grid article{padding:30px;border:1px solid var(--line);background:white;border-radius:22px;box-shadow:var(--shadow)}.backup-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:14px;background:#e7f3ff;color:var(--blue);font-size:26px;font-weight:900}.backup-grid h3{font-size:22px;color:var(--navy)}.backup-grid p{color:var(--muted);line-height:1.6}.toast{position:fixed;right:24px;bottom:24px;z-index:200;max-width:390px;padding:14px 17px;border-radius:13px;background:#082554;color:white;box-shadow:0 16px 45px rgba(0,0,0,.25);transform:translateY(120px);opacity:0;transition:.3s}.toast.show{transform:none;opacity:1}.modal{position:fixed;z-index:300;inset:0;display:grid;place-items:center;padding:20px;background:rgba(1,10,25,.72)}.modal[hidden]{display:none}.modal-card{width:min(430px,100%);background:white;border-radius:22px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.35)}.modal-card h3{font-size:24px;color:var(--navy);margin-top:0}.modal-card p{color:var(--muted);line-height:1.55}.modal-card>div{display:flex;justify-content:flex-end;gap:10px}.sidebar-open .sidebar{transform:none}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:1050px){.admin-shell{grid-template-columns:1fr}.admin-main{grid-column:1}.sidebar{transform:translateX(-105%);transition:.25s}.menu-btn{display:grid;place-items:center}.admin-topbar{justify-content:flex-start;gap:16px}.view-public{margin-left:auto}.quick-grid{grid-template-columns:1fr 1fr}.quick-card.featured{grid-column:1/-1}.publish-layout{grid-template-columns:1fr}.edition-card{position:static}.editions-list{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.admin-topbar{height:70px;padding:0 14px}.admin-topbar p{display:none}.admin-topbar h2{font-size:17px}.view-public{font-size:0}.view-public:after{content:'↗';font-size:20px}.admin-main main{padding:24px 14px 60px}.welcome-card{display:block;padding:27px}.welcome-card img{display:none}.welcome-card h1{font-size:36px}.quick-grid,.stats-grid,.form-grid,.backup-grid,.editions-list{grid-template-columns:1fr}.quick-card.featured{grid-column:auto}.stats-grid article{padding:18px}.section-intro{align-items:flex-start;flex-direction:column}.form-grid .wide{grid-column:auto}.form-card{padding:18px}.photo-preview{grid-template-columns:repeat(3,1fr)}.filter-bar{grid-template-columns:1fr}.activity-card{grid-template-columns:92px 1fr}.activity-thumb{width:92px;height:92px}.activity-actions{grid-column:1/-1;justify-content:flex-end}.publish-layout{display:block}.edition-card{margin-top:18px}.select-activity{grid-template-columns:auto 60px 1fr}.select-activity img{width:60px;height:52px}.login-card{padding:28px 21px}.login-card h1{font-size:31px}}

.connection-notice{display:grid;gap:5px;margin:0 0 20px;padding:15px 18px;border-radius:14px;border:1px solid #f3c6c2;background:#fff1f0;color:#7a271a;box-shadow:0 8px 25px rgba(15,37,70,.06)}
.connection-notice strong{font-size:15px}.connection-notice span{font-size:13px;line-height:1.5}.connection-notice.success{border-color:#a9dfc4;background:#edf9f3;color:#126941}
