/* Ebed: photographs in their original colours, with neutral surfaces. */
body.home-active { background:#f4f3ef; }
body.home-active.dark-mode { background:#0c0c0d; }
body.home-active main { max-width:1140px; padding:30px 32px 50px; }
#view-inicio { --home-ink:#202020; --home-muted:#62625e; --home-line:#d8d7d2; --home-surface:#faf9f6; color:var(--home-ink); }
.dark-mode #view-inicio { --home-ink:#f4f3ee; --home-muted:#a4a4a0; --home-line:#343436; --home-surface:#161618; }
#view-inicio [hidden], .home-dialog [hidden] { display:none !important; }
.home-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.home-kicker { font-size:.65rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--home-muted); }
.home-admin-trigger { display:flex; align-items:center; gap:7px; border:0; background:transparent; color:var(--home-muted); font:inherit; font-size:.72rem; cursor:pointer; padding:8px 0 8px 8px; }
.home-admin-trigger svg { width:16px; height:16px; }
.home-admin-trigger:hover { color:var(--home-ink); }
.home-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:25px; padding:27px 0 36px; }
.church-picker { display:flex; align-items:center; gap:12px; margin-bottom:18px; color:var(--text-muted); font-size:.75rem; }
.church-picker select { max-width:100%; min-width:0; padding:8px 28px 8px 10px; border:1px solid var(--bg-surface-hover); border-radius:5px; background:var(--bg-surface); color:var(--text-main); font:inherit; }
.church-picker select:disabled { opacity:1; }
@media(max-width:600px) { .church-picker { align-items:stretch; flex-direction:column; gap:5px; } }
.home-intro h2 { font-size:clamp(2.7rem,5.6vw,4.4rem); font-weight:850; line-height:.98; letter-spacing:-.065em; color:var(--home-ink); }
.home-intro h2 > span { color:#a58044; }
.home-intro > p { color:var(--home-muted); font-size:.88rem; line-height:1.65; padding-bottom:4px; }
.home-section-title { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:.67rem; font-weight:700; text-transform:uppercase; letter-spacing:.16em; color:var(--home-muted); border-top:1px solid var(--home-line); padding-top:16px; margin-bottom:16px; }
.home-section-title span { font-size:.62rem; font-weight:500; letter-spacing:.08em; }
.quick-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }
.qtile { position:relative; isolation:isolate; display:flex; align-items:flex-end; overflow:hidden; width:100%; min-height:230px; border:0; border-radius:4px; background:#242424; color:#fff; cursor:pointer; text-align:left; padding:24px; }
.qtile-photo { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:var(--photo-focus,50% 50%); transition:transform .5s ease; }
.qtile::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.06) 25%,rgba(0,0,0,.76) 100%); }
.qtile:hover .qtile-photo { transform:scale(1.04); }
.qtile-copy { display:flex; flex-direction:column; gap:5px; padding-right:34px; }
.qtile-label { font-family:'Arial Narrow',Impact,'Helvetica Neue',sans-serif; font-size:2rem; font-weight:800; line-height:1.05; letter-spacing:.035em; text-transform:uppercase; text-shadow:0 2px 12px #0005; }
.qtile-description { color:#f2f2ef; font-size:.78rem; line-height:1.4; }
.qtile-icon { position:absolute; top:18px; right:18px; display:grid; place-items:center; width:32px; height:32px; border:1px solid #ffffff70; border-radius:50%; background:#0003; }
.qtile-icon svg { width:16px; height:16px; stroke-width:1.5; }
.qtile-arrow { position:absolute; right:23px; bottom:25px; }
.qtile-arrow svg { width:23px; height:23px; stroke-width:1.5; }
.qtile:focus-visible, .wcard--verso:focus-visible, .home-admin-trigger:focus-visible { outline:3px solid var(--brand-gold); outline-offset:4px; }
.home-cards { display:flex; flex-direction:column; gap:18px; margin-top:36px; }
.wcard { padding:26px; border:1px solid var(--home-line); border-radius:4px; background:var(--home-surface); color:var(--home-ink); }
.wcard h2, .wcard h3 { color:var(--home-ink); }
.wcard-eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:.64rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--home-muted); }
.wcard-eyebrow svg { width:15px; height:15px; }
.verse-heading { display:flex; align-items:center; justify-content:space-between; }
.verse-heading > svg { width:19px; height:19px; color:var(--home-muted); }
.wcard--verso { cursor:pointer; border-left:3px solid #a58044; }
.wcard-verse { margin:19px 0 15px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.2rem,2.2vw,1.7rem); line-height:1.5; font-style:italic; color:var(--home-ink); }
.wcard-ref { color:var(--home-muted); font-size:.77rem; text-align:right; }
.wcard-title { font-size:1.3rem; margin:10px 0; letter-spacing:-.025em; }
.wcard-slider { margin-top:19px; }
.aviso-slide p { white-space:pre-wrap; overflow-wrap:anywhere; font-size:.9rem; color:var(--home-muted); }
.wcard--service h2 { font-size:1.15rem; letter-spacing:-.02em; }
.wcard--service > p { font-size:.88rem; color:var(--home-muted) !important; margin-top:10px; }
.aviso-controls { display:flex; align-items:center; justify-content:center; gap:10px; margin-top:16px; }
.aviso-controls:empty { display:none; }
.aviso-controls button { cursor:pointer; border:1px solid var(--home-line); background:transparent; color:var(--home-ink); width:28px; height:28px; border-radius:50%; }
.aviso-controls .aviso-dot { width:6px; height:6px; padding:0; background:var(--home-muted); border:0; opacity:.45; }
.aviso-controls .aviso-dot.active { opacity:1; background:var(--home-ink); }
.home-status { font-size:.78rem; color:var(--home-muted); margin-bottom:14px; }
.home-status:empty { display:none; }
.tools-heading { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:16px; margin:10px 0 24px; }
.tools-heading h2 { font-size:2rem; margin:6px 0 8px; letter-spacing:-.04em; }
.tools-heading p:not(.tools-eyebrow) { color:var(--text-muted); font-size:.88rem; line-height:1.6; }
.tools-eyebrow { color:var(--text-muted); font-size:.63rem; letter-spacing:.12em; font-weight:700; }
.tools-session { display:flex; align-items:center; gap:8px; padding:10px 14px; min-height:44px; border:1px solid var(--border-subtle); border-radius:10px; background:var(--bg-surface); color:var(--text-main); font:inherit; font-size:.8rem; cursor:pointer; }
.tools-session svg { width:16px; height:16px; }
.tools-notice { display:flex; gap:14px; padding:18px; border:1px solid var(--border-subtle); border-radius:12px; background:var(--bg-surface); margin-bottom:24px; }
.tools-notice > svg { flex-shrink:0; width:22px; height:22px; color:var(--accent-primary); }
.tools-notice p { color:var(--text-muted); line-height:1.7; font-size:.82rem; }
.tools-notice strong { display:block; color:var(--text-main); margin-bottom:3px; }
.tools-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.tool-card { min-width:0; padding:22px; border:1px solid var(--border-subtle); border-radius:16px; background:var(--bg-surface); display:flex; flex-direction:column; }
.tool-card-top { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:22px; }
.tool-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:12px; background:var(--bg-surface-hover); color:var(--accent-primary); }
.tool-icon svg { width:24px; height:24px; }
.tool-badge { padding:5px 8px; border:1px solid var(--border-subtle); border-radius:6px; font-size:.61rem; color:var(--text-muted); }
.tool-card h3 { font-size:1.45rem; margin:7px 0 12px; letter-spacing:-.03em; }
.tool-card > p:not(.tools-eyebrow), .tool-plan p { font-size:.82rem; line-height:1.7; color:var(--text-muted); }
.tool-plan { margin:22px 0; padding-top:16px; border-top:1px solid var(--border-subtle); }
.tool-plan > span { display:block; font-size:.6rem; letter-spacing:.1em; font-weight:700; margin-bottom:6px; color:var(--text-main); }
.tool-card > button { width:100%; margin-top:auto; min-height:44px; padding:10px; border:1px solid var(--border-subtle); border-radius:8px; background:var(--bg-base); color:var(--text-muted); font:inherit; font-size:.78rem; cursor:default; }
.tools-roadmap { margin:28px 0; padding:22px; border:1px solid var(--border-subtle); border-radius:12px; }
.tools-roadmap h3 { font-size:1rem; margin-bottom:14px; }
.tools-roadmap ol { padding-left:20px; color:var(--text-muted); font-size:.82rem; line-height:1.8; }
.tools-roadmap li + li { margin-top:8px; }
.tools-roadmap strong { color:var(--text-main); }
@media(max-width:800px) { .tools-grid { grid-template-columns:1fr; } }
@media(max-width:560px) { .nav-item[data-target="herramientas"] { font-size:.56rem; letter-spacing:-.025em; } }
@media (min-width:900px) and (hover:hover) and (pointer:fine) { .quick-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .home-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); } .wcard--verso { grid-column:1/-1; } }
@media (max-width:899px) {
  body.home-active main { padding:18px 20px 35px; }
  .home-kicker { font-size:.57rem; letter-spacing:.1em; }
  .home-admin-trigger span { display:none; }
  .home-admin-trigger { padding:7px; }
  .home-intro { padding:22px 0 25px; align-items:flex-start; flex-direction:column; gap:16px; }
  .home-intro h2 { font-size:3rem; }
  .home-intro > p { font-size:.78rem; }
  .quick-grid { grid-template-columns:1fr; gap:14px; }
  .qtile { min-height:176px; padding:20px; }
  .qtile-label { font-size:1.85rem; }
  .qtile-description { font-size:.72rem; }
  .qtile-arrow { bottom:22px; right:20px; }
  .home-cards { margin-top:26px; gap:14px; }
  .wcard { padding:21px; }
}
@media (prefers-reduced-motion:reduce) { .qtile-photo { transition:none; } .qtile:hover .qtile-photo { transform:none; } }
.home-dialog { width:min(560px,calc(100% - 24px)); max-height:85dvh; margin:auto; padding:22px; border:1px solid var(--bg-surface-hover); border-radius:20px; background:var(--bg-surface); color:var(--text-main); overflow:auto; box-shadow:0 20px 80px #0006; }
.home-dialog::backdrop { background:rgba(0,0,0,.7); }
.home-dialog-header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.home-dialog h2 { font-size:1.2rem; }
.home-dialog h3 { font-size:1rem; margin:18px 0 10px; }
.home-dialog p { font-size:.85rem; color:var(--text-muted); margin:12px 0; }
.home-dialog fieldset { border:0; padding:0; min-width:0; }
.home-dialog label { display:block; font-size:.85rem; }
.home-dialog input:not([type="checkbox"]), .home-dialog textarea { display:block; width:100%; margin:6px 0 12px; border:1px solid var(--text-muted); padding:10px; border-radius:8px; background:var(--bg-base); color:var(--text-main); font:inherit; }
.home-dialog textarea { min-height:100px; resize:vertical; }
.home-dialog button { border:1px solid var(--bg-surface-hover); border-radius:10px; padding:8px 12px; background:var(--bg-surface-hover); color:var(--text-main); cursor:pointer; }
.home-dialog button.btn-primary { background:var(--accent-primary); color:#fff; margin-top:15px; width:100%; }
.dark-mode .home-dialog button.btn-primary { color:#101012; }
.home-dialog button:disabled { opacity:.45; cursor:default; }
.home-dialog button.program-confirm-delete { min-height:44px; background:#b42318; color:#fff; }
.home-admin-row { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid var(--bg-surface-hover); }
.home-admin-row label { display:flex; align-items:center; gap:8px; }
.home-admin-row input { width:18px; height:18px; }
.home-admin-row > div { display:flex; gap:4px; flex-shrink:0; }
.home-dialog .home-announcement-edit { border:1px solid var(--bg-surface-hover); border-radius:12px; padding:12px; margin-bottom:14px; }
.home-maintenance { border-top:1px solid var(--bg-surface-hover); margin-top:18px; }
.home-maintenance button { margin:4px; }
#home-admin-status { color:var(--text-main); }
#app-update-progress { width:100%; accent-color:var(--accent-primary); }
@media (prefers-reduced-motion:reduce) { .bd-slide.is-moving { animation:none; } .bd-slide { transition:none; } }
@media print { .home-dialog { display:none !important; } }
.service-period { display:flex; gap:8px; margin-bottom:18px; }
.service-period[hidden] { display:none; }
.service-period button { padding:10px 16px; border:1px solid var(--bg-surface-hover); border-radius:10px; background:var(--bg-surface); color:var(--text-muted); cursor:pointer; }
.service-period button[aria-pressed="true"] { background:var(--bg-surface-hover); color:var(--text-main); }
.repertoire-editor { border:0; padding:0; min-width:0; }
.repertoire-editor:disabled { opacity:.65; }
.program-actions { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.program-actions .btn-primary { width:auto; margin:0; }
.program-actions button:not(.btn-primary) { padding:8px 12px; border:1px solid var(--bg-surface-hover); border-radius:8px; background:var(--bg-surface); color:var(--text-main); cursor:pointer; }
.program-actions [hidden] { display:none; }
.program-list-title { margin:16px 0 10px; font-size:.85rem; }
.program-list { padding:0; list-style:none; }
.program-list-row { display:flex; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid var(--bg-surface-hover); }
.program-list-select, .program-list-label { flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; padding:10px; text-align:left; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--text-main); font:inherit; font-size:.8rem; overflow-wrap:anywhere; }
.program-list-select { cursor:pointer; }
.program-list-select span, .program-list-label span, .program-list-select small { color:var(--text-muted); font-size:.72rem; }
.program-list-select[aria-pressed="true"] { background:var(--bg-base); border-color:var(--accent-primary); }
.program-list-select:hover { background:var(--bg-base); }
.program-list-delete, .program-list-restore { flex-shrink:0; min-height:44px; padding:8px; border:1px solid var(--bg-surface-hover); border-radius:8px; background:var(--bg-surface); font:inherit; font-size:.7rem; cursor:pointer; }
.program-list-delete { color:#b42318; }
.program-list-restore { color:var(--accent-primary); }
.dark-mode .program-list-delete { color:#fca5a5; }
.program-list button:disabled, #choir-program-delete:disabled { opacity:.45; cursor:default; }
.program-list-empty { padding:12px 0; color:var(--text-muted); font-size:.8rem; line-height:1.6; }
.program-trash { margin-top:20px; }
.program-trash[hidden], #choir-program-delete[hidden] { display:none; }
.program-trash > summary { cursor:pointer; font-size:.8rem; color:var(--text-muted); padding:10px 0; }
#choir-program-controls[hidden] { display:none; }
.choir-sidebar { --sidebar-width:min(320px,calc(100vw - 44px)); }
.choir-sidebar-tab { position:fixed; left:0; top:clamp(145px,25vh,240px); z-index:122; display:flex; align-items:center; gap:14px; width:44px; padding:18px 12px; border-radius:0 12px 12px 0; background:#00758d; color:#fff; writing-mode:vertical-rl; font-size:.8rem; font-weight:700; letter-spacing:.03em; cursor:pointer; list-style:none; box-shadow:0 4px 16px #0003; }
.choir-sidebar-tab::-webkit-details-marker { display:none; }
.choir-sidebar-tab::marker { content:''; }
.choir-sidebar-tab:focus-visible, .choir-sidebar-panel button:focus-visible { outline:3px solid var(--brand-gold); outline-offset:3px; }
.choir-sidebar-arrow { writing-mode:horizontal-tb; font-size:1.5rem; line-height:1; }
.choir-sidebar[open] > .choir-sidebar-tab { left:var(--sidebar-width); }
.choir-sidebar[open] .choir-sidebar-arrow { transform:rotate(180deg); }
.dark-mode .choir-sidebar-tab { background:#d4d4d8; color:#18181b; }
.choir-sidebar-panel { position:fixed; z-index:121; left:0; top:96px; bottom:96px; width:var(--sidebar-width); padding:20px; overflow-y:auto; overscroll-behavior:contain; background:var(--bg-surface); border:1px solid var(--bg-surface-hover); border-left:0; border-radius:0 18px 18px 0; box-shadow:8px 8px 32px #0002; }
.choir-sidebar-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:14px; }
.choir-sidebar-heading h2 { font-size:1.1rem; }
.choir-sidebar-heading button { flex-shrink:0; }
.choir-sidebar-panel label { display:block; margin-bottom:8px; font-size:.85rem; }
.choir-sidebar-panel .search-bar { width:100%; min-width:0; font-size:.85rem; padding:12px; margin-bottom:12px; }
.choir-sidebar-panel #choir-program-filter { margin-bottom:0; }
.choir-sidebar-panel .program-actions { margin:4px 0 18px; }
.choir-sidebar-panel .program-actions button { width:100%; font-size:.85rem; }
.choir-sidebar-panel .home-status { line-height:1.6; }
.choir-sidebar-panel { color-scheme:light; }
.dark-mode .choir-sidebar-panel { color-scheme:dark; }
.dark-mode .choir-sidebar-panel .btn-primary { color:#101012; }
.choir-sidebar-backdrop { display:none; }
.choir-current-program { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 24px; margin-bottom:24px; padding:22px 24px; border:1px solid var(--bg-surface-hover); border-left:4px solid var(--accent-primary); border-radius:16px; background:var(--bg-surface); }
.choir-current-program p { margin:0; }
.choir-program-context { flex:1; min-width:0; overflow-wrap:anywhere; }
.choir-program-kicker { color:var(--text-muted); font-size:.65rem; font-weight:700; letter-spacing:.12em; }
.choir-current-program h2 { margin:7px 0; font-size:1.2rem; line-height:1.4; }
#choir-program-caption { font-size:.9rem; line-height:1.6; }
.choir-current-program .choir-program-hint { margin-top:8px; font-size:.78rem; color:var(--text-muted); line-height:1.6; }
.choir-current-program .program-actions { margin:0; flex-direction:column; }
.choir-current-program .program-actions button { min-height:44px; font-size:.8rem; }
.choir-current-program #choir-program-status { flex-basis:100%; }
#choir-program-context-edit[hidden] { display:none; }
#choir-program-dialog .search-bar { width:100%; margin:6px 0 12px; }
.home-dialog label.program-replace-check { padding:12px; border:1px solid var(--text-muted); border-radius:8px; line-height:1.6; }
.program-replace-check input { accent-color:var(--accent-primary); }
@media(max-width:600px) { .choir-current-program { padding:18px; } .choir-current-program .program-actions { width:100%; } }
#choir-program-status:empty { display:none; }
#choir-program-status:not(:empty) { margin-top:6px; font-size:.85rem; }
@media(min-width:1100px) {
  body:has(#view-coro.active #choir-program-sidebar[open]) main { margin-left:max(380px,calc((100vw - 1020px)/2)); margin-right:auto; }
}
@media(max-width:1099px) {
  body:has(#view-coro.active) main { padding-left:56px; padding-right:16px; }
  .choir-sidebar-backdrop { display:block; position:fixed; inset:0; z-index:120; border:0; background:#0005; cursor:pointer; }
  .choir-sidebar-panel { top:88px; bottom:88px; }
}
@media print { .choir-sidebar { display:none; } }
.home-dialog .recurrence-row { padding:14px; margin:14px 0; border:1px solid var(--bg-surface-hover); border-radius:12px; }
.recurrence-row select { display:block; width:100%; padding:10px; margin:6px 0 12px; background:var(--bg-base); color:var(--text-main); border:1px solid var(--text-muted); border-radius:8px; }
@media(max-width:600px) {
  #choir-repertoire-editor > .flex-between { flex-wrap:wrap; gap:12px; }
  #choir-repertoire-editor > .flex-between > .flex-row { width:100%; flex-wrap:wrap; }
}

/* Cultos recurrentes: plantilla con color e ícono (v26) */
.recurrence-preview { display:flex; align-items:center; gap:8px; margin-bottom:10px; font-size:1.05rem; }
.recurrence-preview svg { width:20px; height:20px; flex-shrink:0; }
.recurrence-look { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
