:root{--green:#073f35;--green-2:#0d5a4a;--green-soft:#e6f2ed;--green-line:#bdd7cc;--blue:#183e5e;--blue-soft:#e7eff8;--blue-line:#bfd0e1;--ink:#10231f;--muted:#66756f;--line:#d8e2de;--paper:#fff;--bg:#f4f7f6;--row:#f7f9f8;--sunday:#e2f1f7}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg)}button,select{font:inherit}.public-layout{min-height:100vh}.public-sidebar{position:fixed;inset:0 auto 0 0;width:220px;background:var(--green);padding:24px 14px 18px;display:flex;flex-direction:column;z-index:40}.public-brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-weight:700}.public-brand img{width:36px;height:36px;object-fit:contain}.public-nav{display:flex;flex-direction:column;gap:7px;margin-top:26px}.public-nav a,.public-sidebar-bottom a{display:flex;align-items:center;gap:11px;padding:12px 12px;border-radius:9px;color:#e7f4ef;text-decoration:none;font-weight:700;font-size:14px}.public-nav a:hover,.public-sidebar-bottom a:hover,.public-nav a.active{background:rgba(255,255,255,.13);color:#fff}.nav-icon{width:20px;text-align:center}.public-sidebar-bottom{margin-top:auto}.public-main{margin-left:220px;padding:30px;min-width:0}.public-page-head{max-width:1500px;margin:0 auto 18px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.public-page-head small{display:block;color:#08725b;font-weight:800;letter-spacing:.12em;font-size:12px}.public-page-head h1{margin:8px 0 8px;font-size:30px}.public-page-head p{margin:0;color:var(--muted)}.schedule-actions{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.control-field{display:flex;flex-direction:column;gap:6px;min-width:180px}.control-field span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#63736d}.control-field select,.primary-action{height:42px;border:1px solid #cbd9d4;border-radius:8px;background:#fff;color:#132a24;padding:0 12px;font-weight:700}.primary-action{background:var(--green);color:#fff;border-color:var(--green);cursor:pointer;padding:0 16px}.primary-action:hover{background:var(--green-2)}.preview-card{max-width:1500px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 5px 22px rgba(20,52,43,.06)}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-bottom:1px solid var(--line);background:#fbfcfc}.preview-toolbar-title{display:flex;align-items:baseline;gap:10px}.preview-toolbar-title span{font-size:12px;color:var(--muted)}.zoom-controls{display:flex;align-items:center;gap:6px}.zoom-controls button{height:34px;min-width:36px;border:1px solid #cbd9d4;background:#fff;color:#18322b;border-radius:7px;font-weight:800;cursor:pointer}.zoom-controls button:hover{background:#edf5f2}.zoom-controls #zoomValue{min-width:50px;text-align:center;font-size:12px;font-weight:800;color:#47615a}.schedule-viewport{height:calc(100vh - 245px);min-height:520px;overflow:auto;background:#e9efec;padding:28px}.schedule-stage{position:relative;margin:0 auto}.turnos-public-sheet{width:1248px;min-height:816px;background:#fff;padding:56px 44px;position:relative;transform-origin:top left;box-shadow:0 8px 30px rgba(30,52,45,.12);overflow:hidden}.turnos-print-watermark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:0}.turnos-print-watermark img{width:360px;max-height:360px;object-fit:contain;opacity:.065}.turnos-print-section{position:relative;z-index:1;margin-bottom:30px}.turnos-print-section:last-child{margin-bottom:0}.turnos-print-section h2{margin:0 0 12px;text-align:center;font-family:Arial,Helvetica,sans-serif;font-size:30px;letter-spacing:.02em;padding:8px 10px;border-radius:8px;border:1px solid}.turnos-print-section.area-alabanza h2{color:#0c4b3d;background:var(--green-soft);border-color:var(--green-line)}.turnos-print-section.area-audiovisual h2{color:var(--blue);background:var(--blue-soft);border-color:var(--blue-line)}.turnos-print-section table{width:100%;border-collapse:collapse;table-layout:fixed;font-family:Georgia,'Times New Roman',serif}.turnos-print-section th,.turnos-print-section td{border:1px solid #7a8c85;padding:6px 4px;text-align:center;font-size:12px;font-weight:700;line-height:1.08;overflow-wrap:anywhere}.turnos-print-section thead th{background:#edf5f1;color:#173e33;font-family:Arial,Helvetica,sans-serif;font-size:11px}.turnos-print-section th.turnos-role-head{background:#fff;border-left-color:transparent;border-top-color:transparent;width:122px}.turnos-print-section tbody th{font-family:Arial,Helvetica,sans-serif;text-align:left;background:#f8faf9;color:#123d32;font-size:10px;width:122px}.turnos-print-section tbody tr:nth-child(even) td,.turnos-print-section tbody tr:nth-child(even) th{background:var(--row)}.turnos-print-section th.sunday,.turnos-print-section td.sunday{background:var(--sunday)!important}.turnos-print-section thead th.sunday{color:#164b65;border-color:#82a9bc}.empty-state{padding:50px;text-align:center;color:#566c64}.public-mobile-header,.mobile-menu,.mobile-menu-backdrop{display:none}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#17362d;color:#fff;padding:10px 14px;border-radius:8px;opacity:0;pointer-events:none;transition:.2s;z-index:80}.toast.show{opacity:1}
@media(max-width:900px){body.menu-open{overflow:hidden}.public-sidebar{display:none}.public-main{margin-left:0;padding:16px 12px 24px}.public-mobile-header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--green);position:sticky;top:0;z-index:45}.public-mobile-header .public-brand img{width:34px;height:34px}.public-mobile-header .public-brand{font-size:16px}.menu-button{width:44px;height:44px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.12);color:#fff;font-size:25px;line-height:1;cursor:pointer}.public-page-head{align-items:stretch;flex-direction:column;gap:14px;margin-bottom:14px}.public-page-head h1{font-size:26px;margin-top:6px}.schedule-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.control-field{min-width:0}.control-field select,.primary-action{width:100%;height:44px}.primary-action{grid-column:1/-1}.preview-toolbar{align-items:flex-start;flex-direction:column;padding:10px}.preview-toolbar-title{display:block}.preview-toolbar-title span{display:block;margin-top:3px}.zoom-controls{width:100%;display:grid;grid-template-columns:40px 54px 40px 1fr 1fr}.zoom-controls button{min-width:0}.zoom-controls #zoomValue{display:flex;align-items:center;justify-content:center}.schedule-viewport{height:calc(100vh - 390px);min-height:430px;padding:12px}.mobile-menu-backdrop{display:block;position:fixed;inset:0;background:rgba(5,24,19,.42);opacity:0;visibility:hidden;transition:.2s;z-index:60}.mobile-menu{display:block;position:fixed;top:0;right:0;width:min(330px,86vw);height:100vh;background:#fff;transform:translateX(102%);transition:.24s ease;z-index:61;padding:16px;box-shadow:-12px 0 36px rgba(0,0,0,.15)}body.menu-open .mobile-menu{transform:translateX(0)}body.menu-open .mobile-menu-backdrop{opacity:1;visibility:visible}.mobile-menu-head{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 16px;border-bottom:1px solid var(--line)}.mobile-menu-head button{width:38px;height:38px;border:0;border-radius:9px;background:#eef4f2;font-size:24px}.mobile-menu nav{display:flex;flex-direction:column;padding-top:12px}.mobile-menu nav a{display:flex;gap:12px;align-items:center;padding:14px 10px;border-radius:8px;color:#17362d;text-decoration:none;font-weight:700}.mobile-menu nav a.active{background:#e8f3ef;color:#08614f}.menu-separator{height:1px;background:var(--line);margin:8px 0}}
@media(max-width:520px){.schedule-actions{grid-template-columns:1fr}.primary-action{grid-column:auto}.public-page-head p{font-size:13px}.preview-card{border-radius:10px}.schedule-viewport{height:calc(100vh - 430px)}.zoom-controls{grid-template-columns:38px 52px 38px 1fr 1fr;gap:4px}.zoom-controls button{font-size:12px}}

/* === Listado público de programaciones === */
[hidden]{display:none!important}.published-list-view,.published-detail-view{max-width:1500px;margin:0 auto}.list-head{max-width:none;margin-bottom:22px;align-items:flex-start}.published-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.published-card{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 4px 18px rgba(20,52,43,.05);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.published-card:hover{transform:translateY(-2px);box-shadow:0 9px 24px rgba(20,52,43,.09);border-color:#bfd2ca}.published-card-icon{width:52px;height:52px;border-radius:12px;background:var(--green-soft);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800}.published-card-body{min-width:0}.published-card-badge{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;background:#eef3f1;color:#5d6d67;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.published-card-badge.is-current{background:#ddf1e8;color:#08614f}.published-card h2{margin:8px 0 4px;font-size:21px}.published-card p{margin:0;color:var(--muted);font-size:13px}.published-view-btn{height:40px;border:1px solid #bdd2ca;border-radius:8px;background:#fff;color:var(--green);padding:0 14px;font-weight:800;cursor:pointer;white-space:nowrap}.published-view-btn:hover{background:var(--green);color:#fff;border-color:var(--green)}.published-empty{grid-column:1/-1;background:#fff;border:1px solid var(--line);border-radius:14px}.detail-head{max-width:none}.back-link{display:inline-flex;align-items:center;gap:6px;margin:0 0 14px;padding:0;border:0;background:transparent;color:#08725b;font-weight:800;cursor:pointer;font-size:13px}.back-link:hover{text-decoration:underline}
@media(max-width:900px){.published-grid{grid-template-columns:1fr}.published-card{grid-template-columns:48px 1fr auto;padding:15px}.published-card-icon{width:48px;height:48px}.published-card h2{font-size:19px}.detail-head .schedule-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.detail-head .primary-action{grid-column:auto}.published-detail-view .schedule-viewport{height:calc(100vh - 330px);min-height:430px}}
@media(max-width:620px){.published-card{grid-template-columns:44px 1fr;gap:12px}.published-card-icon{width:44px;height:44px}.published-view-btn{grid-column:1/-1;width:100%;height:44px}.detail-head .schedule-actions{grid-template-columns:1fr}.detail-head .primary-action{grid-column:auto}.published-detail-view .preview-toolbar{gap:10px}.published-detail-view .schedule-viewport{height:calc(100vh - 405px)}}
