:root{
  color-scheme:dark;
  --bg:#121315;--surface:#202225;--surface2:#292c31;--line:#32353b;
  --text:#f7f8fa;--muted:#9da2ac;--blue:#22a7ff;--green:#7fddb0;--red:#ff8d97;--amber:#ffd17c;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}
input,select,textarea{width:100%;padding:12px 13px;border:1px solid #444950;background:#181a1d;color:var(--text);border-radius:11px}
textarea{resize:vertical;min-height:120px;line-height:1.55}a{color:var(--blue)}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
h1,h2,h3,p{margin:0}h1{font-size:2.3rem;letter-spacing:-.055em}h2{font-size:1.2rem}h3{font-size:1.02rem}p{line-height:1.6}.muted,small{color:var(--muted)}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:245px;padding:30px 18px;border-right:1px solid var(--line);background:#17181a;display:flex;flex-direction:column;z-index:20}
.brand{display:flex;align-items:center;gap:10px;font-weight:760;font-size:1.33rem;letter-spacing:-.04em;padding:0 8px 28px}.brandmark{width:36px;height:36px;border-radius:11px;background:var(--blue);display:grid;place-items:center;color:#06263b}
.church-switch{display:flex;align-items:center;gap:10px;text-align:left;padding:12px;border:1px solid var(--line);border-radius:14px;margin-bottom:26px}.church-switch small{display:block;margin-top:4px}.nav{display:grid;gap:5px}.nav button{display:flex;align-items:center;gap:13px;padding:13px;border-radius:12px;color:var(--muted);text-align:left}.nav button.active{background:#17364c;color:#7bc9ff}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:18px}.profile{display:flex;align-items:center;gap:10px;text-align:left;width:100%}
.avatar{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#3f3556;color:#e0d8ff;font-weight:700;object-fit:cover;flex:none}.avatar.blue{background:#23455c;color:#b4def9}.avatar.green{background:#294638;color:#b9efd2}.avatar.orange{background:#4c3a2e;color:#ffe2c2}
.main{margin-left:245px;padding:30px 42px 70px;max-width:1550px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:28px}.eyebrow{font-size:.82rem;color:var(--muted);margin-bottom:6px}.topactions{display:flex;align-items:center;gap:10px}.iconbtn{width:44px;height:44px;border-radius:50%;background:var(--surface2);display:inline-grid;place-items:center;position:relative}.dot{position:absolute;right:8px;top:8px;width:8px;height:8px;border-radius:50%;background:var(--blue);border:2px solid var(--surface2)}
.preview-badge{font-size:.78rem;color:var(--muted);border:1px solid var(--line);padding:8px 11px;border-radius:999px}.main-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:26px}.overview{display:grid;grid-template-columns:1.1fr 1fr;grid-template-rows:126px 116px;gap:14px}.card{background:var(--surface);border-radius:22px;padding:22px}.teamcard{grid-row:span 2;display:flex;flex-direction:column;align-items:flex-start;text-align:left}.teamcard h2{font-size:1.8rem;line-height:1.25;margin:18px 0 7px}.pill{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;background:#2d3035;color:#e7e9ec;font-size:.79rem}.avatar-stack{display:flex;align-items:center;margin-top:auto}.avatar-stack .avatar{width:36px;height:36px;border:3px solid var(--surface);margin-left:-8px;font-size:.75rem}.avatar-stack .avatar:first-child{margin-left:0}.avatar-stack small{margin-left:9px}.calendarcard{padding:18px}.calendarcard h2{font-size:1.15rem}.week{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:12px}.day{display:grid;gap:5px;place-items:center;padding:6px 1px;border-radius:10px}.day span{font-size:.74rem;color:var(--muted)}.day.selected{background:#153d58;color:#88d0ff}.favcard{display:flex;flex-direction:column;justify-content:space-between;text-align:left}.favhead{display:flex;align-items:center;gap:8px}.favhead svg{color:#ff8791}.favbottom{display:flex;justify-content:space-between;align-items:center}.favbottom b{font-size:1.8rem;font-weight:500}.square{width:34px;height:34px;border-radius:10px;background:#2c2f34;display:grid;place-items:center}
.invite{position:relative;margin-top:16px;border:1px solid #1665a0;background:linear-gradient(120deg,#0f4c80,#0b4377 70%,#075f96);border-radius:21px;padding:22px 24px;display:flex;justify-content:space-between;align-items:center;overflow:hidden}.invite p{font-size:.9rem;color:#c2dcf2;margin:6px 0 15px}.invite-symbol{width:80px;height:80px;border-radius:22px;background:#105b91;border:1px solid #3f82b8;display:grid;place-items:center;transform:rotate(-7deg)}.invite-symbol svg{width:38px;height:38px;color:#9dd7ff}.closex{position:absolute;right:12px;top:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 15px;border-radius:12px;background:var(--surface2);font-size:.87rem;font-weight:650;text-decoration:none}.btn.primary{background:var(--blue);color:#062338}.btn.outline{background:transparent;border:1px solid var(--line)}.btn.danger{background:#49292f;color:#ffc0c5}.btn.small{min-height:34px;padding:7px 11px;font-size:.78rem}.btn svg{width:18px;height:18px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:27px 0 14px}.linkbtn{display:inline-flex;align-items:center;gap:5px;color:var(--blue);font-size:.84rem}
.servicecard{width:100%;display:flex;align-items:center;gap:14px;text-align:left;background:var(--surface);padding:16px;border-radius:18px;border:1px solid transparent;margin-bottom:11px}.servicecard:hover{border-color:#40515d}.datebox{width:57px;height:64px;border-radius:13px;background:#2b2e33;display:grid;place-items:center;align-content:center;gap:2px;flex:none}.datebox span{font-size:.68rem;color:var(--muted);text-transform:uppercase}.datebox b{font-size:1.5rem}.serviceinfo{flex:1;min-width:0}.serviceinfo h3{margin-bottom:4px}.serviceinfo p{font-size:.81rem;color:var(--muted)}.tag{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:7px;font-size:.73rem;background:#303740;color:#c7d5df;margin-top:7px}.tag.accepted{background:#243f33;color:var(--green)}.tag.pending{background:#413827;color:var(--amber)}.tag.declined,.tag.cancelled{background:#432c33;color:#ffabb2}.tag svg{width:12px;height:12px}.rail .card{margin-bottom:16px}.rail-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.invite-request{border-top:1px solid var(--line);padding-top:15px;margin-top:15px}.invite-request p{font-size:.9rem;margin:6px 0 10px}.actions,.row{display:flex;align-items:center;gap:8px}.spread{justify-content:space-between}.wrap{flex-wrap:wrap}.minisong{width:100%;display:flex;align-items:center;gap:11px;text-align:left;margin-top:15px}.songicon{width:42px;height:42px;border-radius:12px;background:#303c4e;color:#abd0ff;display:grid;place-items:center;flex:none}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}.search{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-radius:12px;min-height:44px;padding:0 13px;flex:1;max-width:430px}.search input{border:0;background:transparent;padding:0}.search svg{color:var(--muted);width:18px}.segmented{display:flex;gap:4px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:4px}.segmented button{padding:8px 12px;border-radius:9px;color:var(--muted);font-size:.82rem}.segmented button.active{background:#3a3f46;color:#fff}.service-list{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.listcard{background:var(--surface);border-radius:18px;overflow:hidden}.songrow{display:flex;align-items:center;gap:13px;padding:17px 19px;border-bottom:1px solid var(--line)}.songrow:last-child{border-bottom:0}.songrow .details{flex:1;min-width:0;text-align:left}.songrow .details small{display:block;margin-top:4px}.songrow .iconbtn{background:transparent}.favorited{color:#ff8791}.scope{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:.8rem;margin-bottom:17px}.scope svg{width:15px;height:15px}
.matrix-wrap{overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:16px}.matrix{border-collapse:separate;border-spacing:0;width:100%;font-size:.82rem}.matrix th,.matrix td{background:var(--surface);min-width:165px;padding:13px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.matrix th:first-child,.matrix td:first-child{position:sticky;left:0;z-index:2;min-width:155px;background:#24272c}.matrix thead th{position:sticky;top:0;z-index:3}.matrix thead th:first-child{z-index:4}.matrix th small{display:block;margin-top:4px;font-weight:400}.cell{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;margin-bottom:5px}.addcell{width:100%;border:1px dashed #545b65;border-radius:8px;padding:8px;color:var(--muted);font-size:.78rem}
.back{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.84rem;margin-bottom:14px}.tabs{display:flex;gap:22px;overflow:auto;border-bottom:1px solid var(--line);margin:19px 0 21px}.tabs button{padding:11px 0 13px;color:var(--muted);white-space:nowrap;font-size:.88rem}.tabs button.active{color:var(--blue);border-bottom:2px solid var(--blue)}.service-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px}.detail-summary{background:var(--surface);border-radius:18px;padding:21px}.summary-line{display:flex;gap:10px;align-items:flex-start;margin:17px 0;font-size:.88rem}.summary-line small{display:block;margin-top:4px}.program{display:grid;gap:8px}.programrow{display:flex;align-items:center;gap:10px;background:var(--surface);border-radius:14px;padding:14px}.programrow.heading{background:#252b33;border:1px solid #3a4653}.program-time{width:42px;font-size:.78rem;color:var(--muted);flex:none}.program-content{flex:1;text-align:left;min-width:0}.program-content small{display:block;margin-top:5px}.program-controls{display:flex;gap:2px}.program-controls button{padding:4px;color:var(--muted)}.program-controls svg{width:16px;height:16px}.drag{color:#8f949d}.total{display:flex;justify-content:space-between;padding:18px 3px;color:var(--muted);font-size:.86rem}
.song-detail{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:27px}.song-section h3{font-size:.77rem;text-transform:uppercase;letter-spacing:.08em;color:var(--blue)}.lyric{white-space:pre-wrap;line-height:1.9;font-size:1.06rem;margin:12px 0 25px}.chart{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;line-height:1.9}.chord{color:var(--blue);font-weight:700}.embed{width:100%;border:0;border-radius:12px;min-height:175px;margin:13px 0}.notice{padding:13px 15px;border-radius:11px;background:#1d303c;color:#c6e2f5;font-size:.83rem;line-height:1.55;margin-bottom:16px}.hint{font-size:.83rem;color:var(--muted);line-height:1.55}.divider{border:0;border-top:1px solid var(--line);margin:20px 0}
.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.personcard{background:var(--surface);border-radius:18px;padding:20px;text-align:left}.personcard .avatar{width:54px;height:54px;margin-bottom:15px}.personcard small{display:block;margin:5px 0 8px}.chat-layout{display:grid;grid-template-columns:230px 1fr;min-height:500px;border:1px solid var(--line);border-radius:18px;overflow:hidden}.chat-list{background:var(--surface);border-right:1px solid var(--line);padding:12px}.channel{width:100%;padding:12px;border-radius:10px;text-align:left;color:var(--muted)}.channel.active{background:#153d57;color:#9ad9ff}.chat-body{display:flex;flex-direction:column;min-width:0}.chat-messages{flex:1;padding:20px;max-height:440px;overflow:auto}.bubble{max-width:80%;background:#153f5d;border-radius:15px 15px 4px 15px;padding:12px 15px;margin:8px 0 8px auto;white-space:pre-wrap}.bubble small{display:block;margin-top:6px}.composer{display:flex;gap:8px;padding:13px;border-top:1px solid var(--line)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-grid .card h2{margin-bottom:13px}.settings-grid .card p{color:var(--muted);font-size:.88rem;margin-bottom:12px}.blockrow{display:flex;justify-content:space-between;gap:8px;padding:11px 0;border-top:1px solid var(--line);font-size:.88rem}
.empty{text-align:center;padding:38px 18px;color:var(--muted)}.empty svg{width:36px;height:36px;margin-bottom:12px}.empty h3{color:var(--text);margin-bottom:7px}.empty p{max-width:470px;margin:auto;font-size:.87rem}.empty .btn{margin-top:15px}.modal{width:min(560px,calc(100% - 28px));max-height:90dvh;padding:0;border:1px solid #444951;border-radius:21px;background:#202326;color:var(--text);box-shadow:0 28px 80px #0009}.modal::backdrop{background:#000b;backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}.modal-content{padding:22px;overflow:auto;max-height:calc(90dvh - 75px)}.field{display:grid;gap:7px;font-size:.86rem;margin-bottom:16px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:100;padding:13px 18px;border:1px solid #4f6f88;border-radius:12px;background:#253b4c;color:#f5fbff;box-shadow:0 16px 50px #0007;max-width:90vw;font-size:.86rem}.hidden{display:none!important}.mobile-nav{display:none}.print-head{display:none}.rehearsal-pick{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:13px;border-radius:11px;background:var(--surface);margin-bottom:8px}.rehearsal-pick.active{background:#153e59;outline:1px solid #397594}
@media(max-width:1100px){.sidebar{width:205px}.main{margin-left:205px;padding:26px}.main-grid{grid-template-columns:1fr}.rail{display:grid;grid-template-columns:1fr 1fr;gap:16px}.rail .card{margin:0}.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-layout{grid-template-columns:minmax(0,1fr) 250px}.song-detail{grid-template-columns:minmax(0,1fr) 260px}.preview-badge{display:none}}
@media(max-width:760px){.sidebar{display:none}.main{margin:0;padding:22px 18px calc(96px + env(safe-area-inset-bottom))}.topbar{margin-bottom:20px}.topbar h1{font-size:2rem}.overview{grid-template-columns:1fr 1.03fr;grid-template-rows:115px 110px;gap:10px}.card{padding:17px;border-radius:19px}.teamcard h2{font-size:1.42rem;margin:14px 0 6px}.teamcard .avatar-stack small{display:none}.calendarcard{padding:15px 12px}.calendarcard h2{font-size:1.02rem}.day{padding:4px 0}.favcard{padding:17px}.invite{padding:19px;margin-top:12px}.invite p{font-size:.82rem;max-width:230px}.invite-symbol{width:62px;height:62px;border-radius:17px;flex:none}.invite-symbol svg{width:29px;height:29px}.servicecard{padding:14px;gap:11px}.datebox{width:49px;height:57px}.service-list{grid-template-columns:1fr}.rail{display:block}.rail .card{margin-top:14px}.rail .card:nth-child(2){display:none}.mobile-nav{display:grid;grid-template-columns:repeat(var(--mobile-nav-count,5),minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:30;background:#17181af3;border-top:1px solid var(--line);backdrop-filter:blur(18px);padding:8px 4px calc(8px + env(safe-area-inset-bottom))}.mobile-nav button{display:flex;flex-direction:column;align-items:center;gap:5px;padding:5px 0;color:#8f949d;font-size:.69rem}.mobile-nav button.active{color:#fff}.mobile-nav svg{width:22px;height:22px}.toolbar .search{max-width:none}.service-layout,.song-detail{grid-template-columns:1fr}.detail-summary{display:none}.programrow{padding:12px 9px;gap:7px}.program-time{width:36px;font-size:.73rem}.program-controls{flex-direction:column}.program-controls button:last-child{display:none}.people-grid{gap:10px}.personcard{padding:16px}.personcard h3{font-size:.92rem}.chat-layout{grid-template-columns:1fr}.chat-list{display:flex;overflow:auto;border-right:0;border-bottom:1px solid var(--line);padding:7px}.channel{width:auto;white-space:nowrap;font-size:.8rem}.chat-messages{padding:12px}.bubble{max-width:92%}.composer{padding:10px}.settings-grid{grid-template-columns:1fr}.field-grid{grid-template-columns:1fr}.matrix th:first-child,.matrix td:first-child{min-width:125px}.matrix th,.matrix td{min-width:145px;padding:11px}.toast{bottom:95px}}
@media print{body{background:#fff!important;color:#111!important}.sidebar,.mobile-nav,.topactions,.toolbar,.tabs,.back,.detail-summary,.drag,.program-controls,.no-print,.toast,.modal{display:none!important}.main{margin:0;padding:0;max-width:none}.service-layout{display:block}.programrow{background:#fff!important;color:#111;border-radius:0;border-bottom:1px solid #bbb;padding:12px 0}.programrow.heading{background:#eee!important;border:0}.program-time,.program-content small,.muted,small{color:#444!important}.print-head{display:block;margin:8px 0 22px;font-size:12px}.song-detail{display:block}.song-detail aside{display:none}.song-section h3,.chord{color:#222}}
/* WorshipTime 0.2 */
:root[data-theme="light"]{color-scheme:light;--bg:#f4f5f7;--surface:#ffffff;--surface2:#edf0f3;--line:#dce0e5;--text:#16191d;--muted:#69717c;--blue:#078fe8;--green:#188754;--red:#d94b59;--amber:#9b6b00}
:root[data-theme="light"] .sidebar,:root[data-theme="light"] .mobile-nav{background:#fffdfdF2}
:root[data-theme="light"] input,:root[data-theme="light"] select,:root[data-theme="light"] textarea{background:#fff;border-color:#cfd5dc;color:var(--text)}
:root[data-theme="light"] .nav button.active,:root[data-theme="light"] .channel.active,:root[data-theme="light"] .rehearsal-pick.active{background:#e5f4ff;color:#087bbd}
:root[data-theme="light"] .datebox,:root[data-theme="light"] .square,:root[data-theme="light"] .pill{background:#edf0f3;color:#252a30}
:root[data-theme="light"] .matrix th:first-child,:root[data-theme="light"] .matrix td:first-child{background:#f5f6f8}
:root[data-theme="light"] .programrow.heading{background:#f2f5f8}
.team-groups{display:grid;gap:16px}.team-group{background:var(--surface);border-radius:18px;overflow:hidden}.team-group-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.team-group-head small{display:block;margin-top:5px}.position-row{display:grid;grid-template-columns:180px 1fr;gap:16px;padding:15px 20px;border-bottom:1px solid var(--line)}.position-row:last-child{border-bottom:0}.position-name small{display:block;margin-top:5px}.position-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.slot{min-height:48px;border:1px solid var(--line);border-radius:12px;padding:8px 10px;text-align:left;display:flex;align-items:center;gap:9px}.slot .avatar{width:32px;height:32px;font-size:.68rem}.slot span{min-width:0}.slot span strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot .tag{margin-top:4px}.empty-slot{border-style:dashed;color:var(--muted);justify-content:center;font-size:.8rem}.team-edit{border:1px solid var(--line);border-radius:14px;padding:15px;margin-bottom:12px}.position-edit{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line);margin-top:10px}.position-edit small{display:block;margin-top:4px}.org-row{width:100%;display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:13px;text-align:left;margin-top:8px}.org-row.active{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 9%,var(--surface))}.org-row span{flex:1}.org-row small{display:block;margin-top:4px}.org-row svg{width:18px;height:18px}.settings-grid .field{margin-top:12px}.segmented{max-width:100%;overflow:auto}.segmented button{white-space:nowrap}
@media(max-width:760px){.position-row{grid-template-columns:1fr;padding:14px}.position-slots{grid-template-columns:1fr}.team-group-head{padding:16px}.team-group{border-radius:16px}.scope{line-height:1.4}.segmented{width:100%}.segmented button{flex:0 0 auto}.topactions .preview-badge{display:none}}

/* WorshipTime 0.3 refinements */
.invitation-panel{margin:18px 0 6px;border:1px solid #4d3d86;background:linear-gradient(135deg,rgba(105,75,190,.22),rgba(34,167,255,.10));border-radius:20px;padding:20px;box-shadow:0 12px 35px rgba(0,0,0,.12)}
.invitation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.invitation-kicker{display:inline-flex;align-items:center;gap:7px;color:#c8b9ff;font-size:.72rem;font-weight:800;letter-spacing:.10em}.invitation-kicker svg{width:16px;height:16px}.invitation-head h2{margin-top:7px;font-size:1.08rem}.invitation-count{min-width:38px;height:38px;padding:0 10px;border-radius:12px;display:grid;place-items:center;background:#6b54b6;color:#fff;font-weight:800}.invitation-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-top:1px solid rgba(190,179,238,.18);margin-top:13px}.invitation-row>div:first-child{display:grid;gap:4px}.invitation-row small,.invitation-row span{color:var(--muted);font-size:.79rem}.invitation-row strong{font-size:.95rem}.invitation-empty{margin-top:12px}

.programrow{position:relative;border-left:4px solid transparent;overflow:hidden}.program-kind{align-self:stretch;display:grid;place-items:center;min-width:74px;font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800;border-radius:8px;padding:4px 7px}.programrow.type-header{border-left-color:#9f87f5;background:rgba(159,135,245,.10)}.programrow.type-header .program-kind{background:rgba(159,135,245,.18);color:#cfc4ff}.programrow.type-header .program-title{font-weight:800}.programrow.type-song{border-left-color:#22a7ff;background:rgba(34,167,255,.08)}.programrow.type-song .program-kind{background:rgba(34,167,255,.16);color:#9bd8ff}.programrow.type-song .program-title{font-weight:700}.programrow.type-item{border-left-color:#c6a85b;background:var(--surface)}.programrow.type-item .program-kind{background:rgba(198,168,91,.14);color:#dbc98c}.programrow.type-item .program-title{font-weight:450}.program-title{display:block}.program-controls button:last-child{color:#d28b92}
.external-song-box{border:1px dashed var(--line);border-radius:13px;padding:14px;margin:-2px 0 16px}.external-song-box .hint{margin:5px 0 10px}.danger-zone{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.service-admin-actions{display:grid;gap:8px;margin-top:18px}.service-admin-actions .btn{width:100%}

.team-group{border:1px solid color-mix(in srgb,var(--team-color) 45%,var(--line));box-shadow:inset 4px 0 0 var(--team-color)}.team-group-head{cursor:pointer;list-style:none;background:color-mix(in srgb,var(--team-color) 9%,var(--surface));border-bottom:0}.team-group[open] .team-group-head{border-bottom:1px solid var(--line)}.team-group-head::-webkit-details-marker,.team-manager-summary::-webkit-details-marker{display:none}.team-group-head>div{flex:1}.team-color-bar{width:9px;height:38px;border-radius:999px;background:var(--team-color);margin-right:2px}.team-chevron{transition:transform .18s ease;color:var(--muted)}.team-group[open] .team-chevron{transform:rotate(180deg)}.team-group-body{background:var(--surface)}
.team-manager-list{display:grid;gap:10px}.team-edit{padding:0;overflow:hidden;border-color:color-mix(in srgb,var(--team-color) 45%,var(--line));box-shadow:inset 4px 0 0 var(--team-color)}.team-manager-summary{list-style:none;cursor:pointer;padding:14px 15px;display:flex;align-items:center;gap:11px;background:color-mix(in srgb,var(--team-color) 9%,var(--surface))}.team-manager-summary>span:nth-child(2){flex:1}.team-manager-summary small{display:block;margin-top:3px}.team-manager-summary svg{width:18px;height:18px;transition:transform .18s ease}.team-edit[open] .team-manager-summary svg{transform:rotate(180deg)}.team-manager-body{padding:14px 15px}.team-color-dot,.team-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none}.team-dot{margin-right:7px}.position-edit:first-of-type{border-top:0;margin-top:0}.colored-team summary:focus-visible{outline:2px solid var(--team-color);outline-offset:-2px}

:root[data-theme="light"] .invitation-panel{background:linear-gradient(135deg,#f1edff,#eaf6ff);border-color:#d2c6f5}

@media(max-width:760px){
  .invitation-panel{padding:16px;margin-top:14px}.invitation-row{align-items:flex-start;flex-direction:column}.invitation-row .actions{width:100%}.invitation-row .actions .btn{flex:1}.programrow{display:grid;grid-template-columns:auto auto 1fr auto;gap:7px;padding:11px 8px}.program-kind{grid-column:1/3;min-width:0;width:max-content;align-self:auto}.program-time{grid-column:1}.drag{grid-column:2}.program-content{grid-column:3}.program-controls{grid-column:4;grid-row:1/3;align-self:center;display:flex;flex-direction:column}.program-controls button:last-child{display:inline-flex!important}.detail-summary{display:block;margin-top:12px}.team-color-bar{height:32px}.team-group-head{padding:14px}.team-group-head h2{font-size:1.02rem}.team-group-head small{font-size:.73rem}.position-row{grid-template-columns:1fr;padding:14px}.position-slots{grid-template-columns:1fr}.external-song-box .row{align-items:stretch}.external-song-box .btn{flex:1 1 45%}
}

/* WorshipTime 0.4 — programa tipo setlist + pulido de equipos */
.program-toolbar>div:first-child,.team-toolbar>div:first-child{display:grid;gap:4px}.program-toolbar small,.team-toolbar small{display:block;color:var(--muted);font-size:.78rem}
.program{gap:12px}.programrow{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:92px;padding:18px 16px;border:1px solid transparent;border-left:0;border-radius:22px;background:var(--surface);overflow:hidden}.programrow::before{display:none}.program-time{width:auto;font-size:.92rem;font-weight:650;color:var(--muted);font-variant-numeric:tabular-nums}.program-content{display:block;width:100%;padding:0;text-align:left;min-width:0}.program-title{display:block;font-size:1.04rem;line-height:1.28;letter-spacing:-.018em}.program-note{display:block;margin-top:7px;color:var(--muted);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.program-song-meta{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}.program-chip{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;background:#2b2e33;color:#aeb3bc;font-size:.76rem;font-weight:600}.program-controls{display:flex;flex-direction:column;gap:2px;opacity:.62;transition:opacity .15s}.programrow:hover .program-controls,.programrow:focus-within .program-controls{opacity:1}.program-controls button{width:30px;height:30px;padding:5px;display:grid;place-items:center;border-radius:8px;color:var(--muted)}.program-controls button:hover{background:rgba(255,255,255,.06);color:var(--text)}.program-controls button:last-child{color:#dc8b92}.program-controls svg{width:17px;height:17px}
.programrow.type-header{background:linear-gradient(115deg,#3d5599,#365092);border-color:#5068ad}.programrow.type-header .program-time{color:#b8c1d9}.programrow.type-header .program-title{font-weight:520;font-size:1.08rem;color:#fff}.programrow.type-header .program-note{color:#b9c1d6}.programrow.type-header .program-controls button{color:#c8d0e4}.programrow.type-header .program-controls button:last-child{color:#ffd0d3}
.programrow.type-song{background:#202225;border-color:#252a30}.programrow.type-song .program-title{font-weight:520}.programrow.type-item{background:#202225;border-color:#25282d}.programrow.type-item .program-title{font-weight:400}.programrow.type-item .program-note{font-weight:400}
:root[data-theme="light"] .programrow.type-header{background:linear-gradient(115deg,#4863ad,#3e5aa4);color:#fff}:root[data-theme="light"] .programrow.type-song,:root[data-theme="light"] .programrow.type-item{background:#fff;border-color:#e4e7eb}:root[data-theme="light"] .program-chip{background:#edf0f3;color:#626873}
.team-toolbar{margin-bottom:14px}.team-groups{gap:13px}.team-group{border-radius:20px}.team-group-head{min-height:78px;padding:15px 18px;gap:12px}.team-summary-copy{min-width:0}.team-summary-copy h2{letter-spacing:-.02em}.team-preview-avatars{display:flex;align-items:center;flex:none}.team-preview-avatars .avatar{width:30px;height:30px;font-size:.61rem;border:2px solid var(--surface);margin-left:-7px}.team-preview-avatars .avatar:first-child{margin-left:0}.team-preview-avatars i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;margin-left:-6px;background:var(--surface2);border:2px solid var(--surface);font-size:.62rem;color:var(--muted);font-style:normal}.team-count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:6px 9px;border-radius:999px;background:color-mix(in srgb,var(--team-color) 16%,var(--surface));color:color-mix(in srgb,var(--team-color) 74%,white);font-size:.72rem;font-weight:700}.team-group[open] .team-count-pill{background:color-mix(in srgb,var(--team-color) 22%,var(--surface))}.position-row{padding-top:16px;padding-bottom:16px}
@media(max-width:760px){.program-toolbar{align-items:flex-start}.program-toolbar .actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.program-toolbar .btn{width:100%}.programrow{grid-template-columns:54px minmax(0,1fr) 30px;gap:9px;min-height:96px;padding:15px 12px;border-radius:19px}.program-time{grid-column:1;grid-row:1;font-size:.84rem}.program-content{grid-column:2;grid-row:1}.program-controls{grid-column:3;grid-row:1;align-self:center;display:flex;flex-direction:column}.program-controls button:last-child{display:grid!important}.program-title{font-size:1rem}.programrow.type-header .program-title{font-size:1.03rem}.program-note{font-size:.78rem}.program-chip{min-height:25px;padding:3px 8px;font-size:.7rem}.team-preview-avatars{display:none}.team-count-pill{margin-left:auto}.team-group-head{padding:14px;gap:9px}.team-color-bar{width:7px}.team-summary-copy small{font-size:.7rem}}
@media print{.programrow{display:grid!important;grid-template-columns:65px 1fr!important;min-height:auto!important;background:#fff!important;color:#111!important;border:0!important;border-bottom:1px solid #bbb!important;border-radius:0!important;padding:12px 0!important}.programrow.type-header{background:#eee!important}.programrow.type-header .program-title,.programrow.type-header .program-time{color:#111!important}.program-chip{border:1px solid #bbb;background:#fff!important;color:#333!important}.program-controls{display:none!important}}

/* WorshipTime 0.5 — editor musical, ensayo y viewport móvil */
.song-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.song-tools .scope{margin:0}
.song-structure-strip{display:flex;flex-wrap:nowrap;gap:10px;width:100%;max-width:100%;overflow-x:auto;padding:4px 1px 18px;scrollbar-width:none;touch-action:pan-x;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.song-structure-strip::-webkit-scrollbar{display:none}.structure-bubble{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;border:3px solid currentColor;background:var(--bg);font-size:.72rem;font-weight:800;position:relative}.structure-bubble i{position:absolute;right:-4px;bottom:-5px;min-width:21px;height:21px;padding:0 4px;border-radius:999px;background:var(--surface2);display:grid;place-items:center;color:var(--text);font-size:.58rem;font-style:normal;border:2px solid var(--bg)}
.tone-green{--section-tone:#9ff58f}.tone-cyan{--section-tone:#9ce8ff}.tone-pink{--section-tone:#f5a1e5}.tone-peach{--section-tone:#ffc2a9}.tone-blue{--section-tone:#9fc8ff}.tone-violet{--section-tone:#c6afff}.structure-bubble.tone-green,.structure-bubble.tone-cyan,.structure-bubble.tone-pink,.structure-bubble.tone-peach,.structure-bubble.tone-blue,.structure-bubble.tone-violet{color:var(--section-tone)}
.song-section-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:30px 22px 20px;margin:22px 0}.section-label{position:absolute;left:18px;top:-16px;display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:4px 13px 4px 6px;border-radius:999px;background:var(--section-tone,#9fc8ff);color:#111;font-size:.82rem;font-weight:750}.section-label>span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#202225;color:#fff;font-size:.68rem}.chord-lyrics{margin:0;line-height:1.75}.lyric-line{display:block;min-height:1.55em;white-space:pre-wrap}.inline-chord{display:inline-block;color:var(--blue);font-weight:750;margin-right:2px}.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:19px;margin-top:18px}.chart-card h2{margin-bottom:12px}.media-stack{display:grid;gap:8px}.media-link{display:flex;align-items:center;gap:7px;text-decoration:none;font-size:.84rem}.media-link svg{width:17px;height:17px}.pdf-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin-top:16px}.pdf-card>div{display:flex;align-items:center;gap:10px;min-width:0}.pdf-card>div svg{color:var(--blue);flex:none}.pdf-card span{min-width:0}.pdf-card strong,.pdf-card small{display:block}.pdf-card small{margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdf-card.compact{margin-top:20px}.pdf-frame{width:100%;height:72dvh;border:1px solid var(--line);border-radius:13px;background:#fff}.pdf-viewer-actions{display:flex;justify-content:flex-end;margin-bottom:10px}.pdf-modal{width:min(980px,calc(100% - 24px));max-height:95dvh}
.rehearsal-song-picker{display:grid;gap:8px}.rehearsal-current{margin-top:22px}.rehearsal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.rehearsal-heading h2{font-size:1.45rem}.rehearsal-heading p{color:var(--muted);font-size:.85rem;margin-top:4px}.rehearsal-media{margin-bottom:23px}.rehearsal-media>h3,.rehearsal-lyrics>h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:11px}.rehearsal-current .song-structure-strip{padding-bottom:8px;margin-bottom:8px}.rehearsal-pick small{display:block;margin-top:3px}
.linked-material{border:1px solid var(--line);border-radius:13px;padding:13px;margin-bottom:14px;background:var(--surface)}.linked-material-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.linked-material-head small{display:block;margin-top:3px}.linked-material-links{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px;margin-top:10px}.linked-material-links a{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;text-decoration:none}.linked-material-links svg{width:15px;height:15px}

.song-editor-modal{width:min(860px,calc(100% - 28px));max-height:96dvh}.song-editor-modal .modal-content{padding-top:14px;max-height:calc(96dvh - 74px)}.song-editor-tabs{position:sticky;top:-14px;z-index:8;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:5px;background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:14px;margin-bottom:22px}.song-editor-tabs button{min-height:42px;border-radius:10px;color:var(--muted)}.song-editor-tabs button.active{background:var(--surface2);color:var(--text)}.song-editor-panel{display:none}.song-editor-panel.active{display:block}.editor-help{margin-bottom:16px}.editor-help p{font-size:.82rem;color:var(--muted);margin-top:5px}.editor-help code{color:var(--blue)}.editor-section-row{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:17px;margin-bottom:16px}.editor-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.editor-section-head .section-label{position:static}.editor-remove{color:#dc8b92;padding:7px}.field.compact{margin-bottom:11px}.field.compact textarea{min-height:145px;font-family:inherit}.chart-editor-field{margin-top:20px}.pdf-upload-box{display:grid;grid-template-columns:1fr minmax(220px,320px);gap:16px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:16px;margin-top:4px}.current-pdf{display:flex;align-items:center;gap:7px;color:var(--blue);font-size:.8rem;margin-top:10px}.current-pdf svg{width:17px;height:17px}.check-row{display:flex;align-items:center;gap:8px;font-size:.8rem;margin-top:9px;color:var(--muted)}.check-row input{width:auto}.structure-editor-row{display:grid;grid-template-columns:26px minmax(150px,1fr) auto auto;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:11px 12px;margin-bottom:9px}.structure-handle{color:var(--muted);display:grid;place-items:center}.structure-handle svg{width:17px;height:17px}.structure-editor-row select{padding:9px 10px}.repeat-control{display:flex;align-items:center;gap:4px;background:var(--surface2);border-radius:11px;padding:3px}.repeat-control button{width:32px;height:32px;border-radius:8px;font-size:1.1rem}.repeat-control button:hover{background:rgba(255,255,255,.05)}.repeat-control strong{min-width:32px;text-align:center;font-size:.82rem}.structure-row-actions{display:flex;align-items:center}.structure-row-actions button{width:32px;height:32px;display:grid;place-items:center;color:var(--muted)}.structure-row-actions button:last-child{color:#dc8b92}.structure-row-actions svg{width:16px;height:16px}.song-editor-save{position:sticky;bottom:-22px;z-index:7;display:flex;justify-content:flex-end;gap:8px;padding:14px 0 3px;margin-top:22px;background:linear-gradient(to bottom,transparent,var(--surface) 30%)}
.transpose-box .hint{margin-bottom:12px}.key-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-bottom:16px}.key-grid button{min-height:50px;border-radius:11px;background:var(--surface2);font-weight:650}.key-grid button.active{background:var(--blue);color:#062338}

:root[data-theme="light"] .song-section-card,:root[data-theme="light"] .chart-card,:root[data-theme="light"] .linked-material,:root[data-theme="light"] .editor-section-row,:root[data-theme="light"] .structure-editor-row{background:#fff}.structure-bubble{background:var(--bg)}

@media(max-width:760px){
  html,body{height:100%;min-height:100%;overflow:hidden;overscroll-behavior:none}
  body{width:100%;max-width:100%;touch-action:manipulation}
  .main{height:100dvh;max-height:100dvh;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding-bottom:calc(94px + env(safe-area-inset-bottom))}
  .mobile-nav{transform:translateZ(0);will-change:transform}
  .song-tools{align-items:flex-start}.song-tools .row{width:100%}.song-tools .btn{flex:1}.song-structure-strip{margin-right:-18px;padding-right:max(96px,calc(50vw - 24px));overscroll-behavior-x:none;scroll-snap-type:none}
  .song-section-card{padding:28px 18px 17px;border-radius:17px}.chord-lyrics{font-size:1rem}.inline-chord{font-size:.92em}
  .rehearsal-heading{display:grid}.rehearsal-heading .row{width:100%}.rehearsal-heading .btn{flex:1}.rehearsal-media .embed{min-height:210px;margin-top:0}
  .song-editor-modal{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0}.song-editor-modal .modal-head{padding-top:calc(17px + env(safe-area-inset-top));background:var(--bg)}.song-editor-modal .modal-content{max-height:calc(100dvh - 76px - env(safe-area-inset-top));padding:14px 18px calc(24px + env(safe-area-inset-bottom))}.song-editor-tabs{top:-14px}.pdf-upload-box{grid-template-columns:1fr}.structure-editor-row{grid-template-columns:20px minmax(110px,1fr) auto;gap:7px}.structure-row-actions{grid-column:2/4;justify-content:flex-end;border-top:1px solid var(--line);padding-top:7px}.song-editor-save{bottom:calc(-24px - env(safe-area-inset-bottom));padding:14px 0 calc(12px + env(safe-area-inset-bottom));background:var(--bg)}.song-editor-save .btn{flex:1}.key-grid{grid-template-columns:repeat(4,1fr)}.pdf-modal{width:100vw;height:100dvh;max-height:none;margin:0;border:0;border-radius:0}.pdf-frame{height:calc(100dvh - 180px)}
}

/* WorshipTime 0.6 · Personas / cumpleaños */
.birthdays-card{margin-bottom:24px;padding:0;overflow:hidden}.birthdays-head{display:flex;align-items:center;gap:15px;padding:21px 22px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,#2fa8ff 11%,var(--surface)),var(--surface))}.birthday-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#153f5d;color:#8bd5ff;flex:none}.birthday-icon svg{width:24px;height:24px}.birthdays-head .eyebrow{display:block;color:#65c7ff;font-size:.68rem;font-weight:800;letter-spacing:.12em;margin-bottom:4px}.birthdays-head h2{font-size:1.18rem;margin:0 0 4px}.birthdays-head p{color:var(--muted);font-size:.82rem}.birthday-columns{display:grid;grid-template-columns:1fr 1fr;gap:0}.birthday-group{padding:17px 20px}.birthday-group+.birthday-group{border-left:1px solid var(--line)}.birthday-group-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.birthday-group-title strong{font-size:.82rem}.birthday-group-title>span{min-width:25px;height:25px;border-radius:999px;display:grid;place-items:center;background:var(--surface2);color:var(--muted);font-size:.7rem;font-weight:800}.birthday-person{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;text-align:left;border-top:1px solid var(--line)}.birthday-person:first-of-type{border-top:0}.birthday-person .avatar{width:38px;height:38px;font-size:.68rem}.birthday-person strong,.birthday-person small{display:block}.birthday-person strong{font-size:.85rem}.birthday-person small{color:var(--muted);font-size:.72rem;margin-top:2px}.birthday-status{padding:5px 8px;border-radius:999px;background:#153f5d;color:#8bd5ff;font-size:.67rem;font-weight:750;white-space:nowrap}.birthday-empty{min-height:58px;display:flex;align-items:center;color:var(--muted);font-size:.78rem}.birthday-note{display:flex;align-items:center;gap:7px;padding:11px 20px;border-top:1px solid var(--line);color:var(--muted);font-size:.74rem}.birthday-note svg,.birthday-form-hint svg,.person-birthday svg{width:14px;height:14px;flex:none}.people-title{margin:5px 0 13px}.person-birthday{display:flex;align-items:center;gap:6px;color:#9ad9ff;font-size:.75rem;margin:2px 0 10px}.person-birthday.missing{color:var(--muted)}.birthday-form-hint{display:flex;align-items:center;gap:7px;margin:-4px 0 14px}
@media(max-width:760px){.birthdays-head{padding:18px}.birthday-columns{grid-template-columns:1fr}.birthday-group{padding:14px 17px}.birthday-group+.birthday-group{border-left:0;border-top:1px solid var(--line)}.birthday-person{grid-template-columns:36px minmax(0,1fr) auto}.birthday-person .avatar{width:36px;height:36px}.birthday-status{font-size:.62rem}.people-title{align-items:center}.personcard .person-birthday{font-size:.68rem}}

/* WorshipTime 0.6.2 · navegación móvil con permisos completos */
@media(max-width:760px){.mobile-nav button{min-width:0}.mobile-nav button{font-size:.63rem}.mobile-nav svg{width:21px;height:21px}}
@media(max-width:390px){.mobile-nav button{font-size:.57rem;gap:4px}.mobile-nav svg{width:20px;height:20px}}


/* WorshipTime 0.6.3 · paridad responsive teléfono / iPad */
.responsive-settings{display:none}
@media(max-width:1024px){
  html,body{height:100%;min-height:100%;overflow:hidden;overscroll-behavior:none}
  body{width:100%;max-width:100%;touch-action:manipulation}
  .sidebar{display:none}
  .main{margin:0;max-width:none;height:100dvh;max-height:100dvh;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding:26px 26px calc(98px + env(safe-area-inset-bottom))}
  .mobile-nav{display:grid;grid-template-columns:repeat(var(--mobile-nav-count,5),minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:30;background:#17181af3;border-top:1px solid var(--line);backdrop-filter:blur(18px);padding:8px 8px calc(8px + env(safe-area-inset-bottom));transform:translateZ(0);will-change:transform}
  .mobile-nav button{min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;padding:5px 0;color:#8f949d;font-size:.69rem}
  .mobile-nav button.active{color:#fff}
  .mobile-nav svg{width:22px;height:22px}
  .responsive-settings{display:inline-grid}
  .responsive-settings.active{color:var(--blue);outline:1px solid color-mix(in srgb,var(--blue) 42%,transparent)}
  .preview-badge{display:inline-flex}
  .rail .card:nth-child(2){display:block}
  .detail-summary{display:block;margin-top:16px}
  .teamcard .avatar-stack small{display:inline}
  .team-preview-avatars{display:flex}
  .service-layout{grid-template-columns:1fr}
  .topbar{align-items:flex-start}
  .topactions{flex-wrap:wrap;justify-content:flex-end}
}
@media(min-width:761px) and (max-width:1024px){
  .people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settings-grid{grid-template-columns:1fr 1fr}
  .song-detail{grid-template-columns:minmax(0,1fr) 280px}
  .rail{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .rail .card{margin:0}
}
@media(max-width:760px){
  .main{padding:22px 18px calc(98px + env(safe-area-inset-bottom))}
  .detail-summary{display:block}
  .rail .card:nth-child(2){display:block}
  .teamcard .avatar-stack small{display:inline}
  .team-preview-avatars{display:flex;max-width:90px;overflow:hidden}
  .preview-badge{display:inline-flex;font-size:.68rem;padding:6px 8px}
  .topbar{gap:10px}
  .topactions{gap:7px}
  .responsive-settings,.topactions>.iconbtn{width:40px;height:40px}
  .mobile-nav{padding-left:4px;padding-right:4px}
}
@media(max-width:430px){
  .topbar>div:first-child{min-width:0}
  .topbar h1{font-size:1.72rem;overflow-wrap:anywhere}
  .topactions{max-width:144px}
  .preview-badge{order:3;max-width:100%;white-space:nowrap}
}
@media(max-width:760px){
  .main-grid>section,.main-grid>.rail,.overview{min-width:0;width:100%}
  .overview>*{min-width:0}
}

.onboarding{margin-bottom:20px;border-color:#28506b;background:linear-gradient(145deg,#102434,#11171d)}
.onboarding-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.onboarding-head h2{margin:5px 0 5px;font-size:1.25rem}
.onboarding-head p{margin:0;color:var(--muted);font-size:.84rem}
.onboarding-progress{min-width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:#173b54;color:#8bd7ff;font-weight:800}
.onboarding-steps{display:grid;gap:9px}
.onboarding-step{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px;border:1px solid #2b3b48;border-radius:13px;background:#0d151c}
.onboarding-step.done{opacity:.72;background:#101815}
.onboarding-check{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#162634;color:#74ccff;font-weight:800}
.onboarding-step.done .onboarding-check{background:#173427;color:#91dfb5}
.onboarding-step strong{display:block;font-size:.86rem}
.onboarding-step small{display:block;color:#7f8b96;margin-top:3px;line-height:1.35}
@media(max-width:680px){.onboarding-step{grid-template-columns:30px 1fr}.onboarding-step .btn{grid-column:2;justify-self:start}.onboarding-head{align-items:center}}

.notification-button{position:relative}
.notification-badge{
  position:absolute;top:-4px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;
  display:grid;place-items:center;background:#ff5f72;color:white;font-size:.58rem;font-weight:800;
  border:2px solid var(--bg,#0b0e12)
}
.notification-badge.hidden{display:none}


/* WorshipTime 0.9.3 · refined light theme */
:root[data-theme="light"]{
  color-scheme:light;
  --bg:#f4f7fa;
  --surface:#ffffff;
  --surface2:#eaf0f5;
  --line:#d6dee7;
  --text:#17212b;
  --muted:#5b6875;
  --blue:#0a6fae;
  --green:#137a4b;
  --red:#a23745;
  --amber:#7a5400;
}

:root[data-theme="light"] body{
  background:
    radial-gradient(circle at 15% -10%,#e8f5ff 0,transparent 28%),
    var(--bg);
  color:var(--text);
}

:root[data-theme="light"] .sidebar,
:root[data-theme="light"] .mobile-nav{
  background:rgba(255,255,255,.96);
  border-color:var(--line);
  box-shadow:0 10px 35px rgba(30,55,75,.06);
}

:root[data-theme="light"] .brand,
:root[data-theme="light"] .profile,
:root[data-theme="light"] .church-switch,
:root[data-theme="light"] .topbar,
:root[data-theme="light"] h1,
:root[data-theme="light"] h2,
:root[data-theme="light"] h3,
:root[data-theme="light"] strong{
  color:var(--text);
}

:root[data-theme="light"] .nav button,
:root[data-theme="light"] .mobile-nav button,
:root[data-theme="light"] .channel,
:root[data-theme="light"] .back,
:root[data-theme="light"] .tabs button,
:root[data-theme="light"] .program-controls button,
:root[data-theme="light"] .structure-row-actions button{
  color:var(--muted);
}

:root[data-theme="light"] .nav button:hover,
:root[data-theme="light"] .mobile-nav button:hover,
:root[data-theme="light"] .channel:hover{
  background:#f0f5f9;
  color:#263746;
}

:root[data-theme="light"] .nav button.active,
:root[data-theme="light"] .channel.active,
:root[data-theme="light"] .mobile-nav button.active,
:root[data-theme="light"] .rehearsal-pick.active{
  background:#e8f5ff;
  color:#075985;
}

:root[data-theme="light"] .mobile-nav button.active svg{
  color:#075985;
}

:root[data-theme="light"] input,
:root[data-theme="light"] select,
:root[data-theme="light"] textarea{
  background:#fff;
  color:var(--text);
  border-color:#c7d2dd;
  box-shadow:0 1px 0 rgba(30,50,70,.02);
}

:root[data-theme="light"] input::placeholder,
:root[data-theme="light"] textarea::placeholder{
  color:#7b8793;
}

:root[data-theme="light"] input:focus,
:root[data-theme="light"] select:focus,
:root[data-theme="light"] textarea:focus{
  border-color:#4c9dcc;
  box-shadow:0 0 0 3px rgba(10,111,174,.13);
  outline:none;
}

:root[data-theme="light"] .card,
:root[data-theme="light"] .servicecard,
:root[data-theme="light"] .listcard,
:root[data-theme="light"] .personcard,
:root[data-theme="light"] .detail-summary,
:root[data-theme="light"] .team-group,
:root[data-theme="light"] .chat-layout,
:root[data-theme="light"] .song-section-card,
:root[data-theme="light"] .chart-card,
:root[data-theme="light"] .linked-material,
:root[data-theme="light"] .editor-section-row,
:root[data-theme="light"] .structure-editor-row,
:root[data-theme="light"] .pdf-card{
  background:#fff;
  border-color:var(--line);
  box-shadow:0 8px 26px rgba(30,55,75,.055);
}

:root[data-theme="light"] .iconbtn,
:root[data-theme="light"] .square,
:root[data-theme="light"] .datebox,
:root[data-theme="light"] .pill,
:root[data-theme="light"] .birthday-group-title>span{
  background:#edf2f6;
  color:#34414d;
}

:root[data-theme="light"] .iconbtn:hover{
  background:#e3ebf2;
  color:#18384d;
}

:root[data-theme="light"] .dot{
  border-color:#edf2f6;
}

:root[data-theme="light"] .btn{
  background:#eaf0f5;
  color:#263746;
  border-color:#d5dee6;
}

:root[data-theme="light"] .btn:hover{
  background:#dde8f0;
  border-color:#c5d2dd;
}

:root[data-theme="light"] .btn.primary{
  background:#0a6fae;
  color:#fff;
  border-color:#0a6fae;
  box-shadow:0 7px 18px rgba(10,111,174,.18);
}

:root[data-theme="light"] .btn.primary:hover{
  background:#075985;
  border-color:#075985;
}

:root[data-theme="light"] .btn.outline{
  background:#fff;
  color:#263746;
  border-color:#c9d4de;
}

:root[data-theme="light"] .btn.outline:hover{
  background:#f2f6f9;
  border-color:#adc0cf;
}

:root[data-theme="light"] .btn.danger{
  background:#fcecef;
  color:#a23745;
  border-color:#f2c9d0;
}

:root[data-theme="light"] .linkbtn,
:root[data-theme="light"] .tabs button.active,
:root[data-theme="light"] .song-section h3,
:root[data-theme="light"] .inline-chord,
:root[data-theme="light"] .chord,
:root[data-theme="light"] .media-link,
:root[data-theme="light"] .current-pdf{
  color:#0a6fae;
}

:root[data-theme="light"] .day.selected{
  background:#e8f5ff;
  color:#075985;
  box-shadow:inset 0 0 0 1px #c4e4f8;
}

:root[data-theme="light"] .servicecard{
  border:1px solid #e2e8ee;
}

:root[data-theme="light"] .servicecard:hover{
  border-color:#a9bfce;
  box-shadow:0 10px 28px rgba(30,55,75,.075);
}

:root[data-theme="light"] .tag{
  background:#eaf0f5;
  color:#40505f;
}

:root[data-theme="light"] .tag.accepted{
  background:#e7f6ee;
  color:#137a4b;
}

:root[data-theme="light"] .tag.pending{
  background:#fff4d6;
  color:#7a5400;
}

:root[data-theme="light"] .tag.declined,
:root[data-theme="light"] .tag.cancelled{
  background:#fcecef;
  color:#a23745;
}

:root[data-theme="light"] .songicon{
  background:#e6f2ff;
  color:#075985;
}

:root[data-theme="light"] .search,
:root[data-theme="light"] .segmented{
  background:#fff;
  border-color:var(--line);
}

:root[data-theme="light"] .segmented button.active{
  background:#dceaf5;
  color:#173b54;
}

:root[data-theme="light"] .matrix th,
:root[data-theme="light"] .matrix td{
  background:#fff;
  border-color:var(--line);
}

:root[data-theme="light"] .matrix th:first-child,
:root[data-theme="light"] .matrix td:first-child{
  background:#f0f4f8;
}

:root[data-theme="light"] .programrow,
:root[data-theme="light"] .programrow.type-song,
:root[data-theme="light"] .programrow.type-item{
  background:#fff;
  border-color:#e1e8ef;
  box-shadow:0 5px 18px rgba(30,55,75,.045);
}

:root[data-theme="light"] .programrow.heading{
  background:#f0f4f8;
  border-color:#d8e1e9;
}

:root[data-theme="light"] .programrow.type-header{
  background:linear-gradient(115deg,#4863ad,#3e5aa4);
  border-color:#405b9c;
  box-shadow:0 7px 20px rgba(54,80,146,.18);
}

:root[data-theme="light"] .programrow.type-header .program-title{
  color:#fff;
}

:root[data-theme="light"] .programrow.type-header .program-time,
:root[data-theme="light"] .programrow.type-header .program-note,
:root[data-theme="light"] .programrow.type-header .program-controls button{
  color:#e0e7f5;
}

:root[data-theme="light"] .program-chip{
  background:#eaf0f5;
  color:#4d5b68;
}

:root[data-theme="light"] .program-controls button:hover,
:root[data-theme="light"] .repeat-control button:hover{
  background:rgba(10,111,174,.08);
  color:#075985;
}

:root[data-theme="light"] .notice{
  background:#e8f5ff;
  color:#173b54;
  border:1px solid #bfe3f8;
}

:root[data-theme="light"] .chat-list{
  background:#f8fafc;
}

:root[data-theme="light"] .bubble{
  background:#e1f1fb;
  color:#173b54;
  border:1px solid #c5e2f3;
}

:root[data-theme="light"] .composer{
  background:#fff;
}

:root[data-theme="light"] .modal{
  background:#fff;
  color:var(--text);
  border-color:#d2dce6;
  box-shadow:0 30px 90px rgba(22,40,55,.24);
}

:root[data-theme="light"] .modal::backdrop{
  background:rgba(20,30,40,.34);
  backdrop-filter:blur(4px);
}

:root[data-theme="light"] .modal-head{
  background:#fbfcfd;
}

:root[data-theme="light"] .toast{
  background:#173b54;
  color:#fff;
  border-color:#2f6f93;
  box-shadow:0 16px 45px rgba(23,59,84,.26);
}

:root[data-theme="light"] .invitation-panel{
  background:linear-gradient(135deg,#f4f0ff,#edf8ff);
  border-color:#d2c6f5;
}

:root[data-theme="light"] .invitation-kicker{
  color:#6d47b5;
}

:root[data-theme="light"] .invitation-count{
  background:#6545b2;
  color:#fff;
}

:root[data-theme="light"] .invitation-row{
  border-color:#ddd6f0;
}

:root[data-theme="light"] .team-group-head,
:root[data-theme="light"] .team-manager-summary{
  background:color-mix(in srgb,var(--team-color) 9%,#fff);
}

:root[data-theme="light"] .team-count-pill{
  background:color-mix(in srgb,var(--team-color) 14%,#fff);
  color:color-mix(in srgb,var(--team-color) 58%,#20303d);
}

:root[data-theme="light"] .team-preview-avatars .avatar,
:root[data-theme="light"] .team-preview-avatars i{
  border-color:#fff;
}

:root[data-theme="light"] .structure-bubble{
  background:#f4f7fa;
}

:root[data-theme="light"] .song-editor-tabs{
  background:rgba(255,255,255,.96);
  border-color:var(--line);
}

:root[data-theme="light"] .song-editor-tabs button.active{
  background:#e8f0f6;
  color:#17212b;
}

:root[data-theme="light"] .repeat-control{
  background:#edf2f6;
}

:root[data-theme="light"] .onboarding{
  background:linear-gradient(145deg,#edf8ff,#ffffff);
  border-color:#b9d8ec;
  box-shadow:0 10px 30px rgba(23,89,133,.07);
}

:root[data-theme="light"] .onboarding-progress{
  background:#e2f2fc;
  color:#075985;
}

:root[data-theme="light"] .onboarding-step{
  background:#fff;
  border-color:#d7e3ec;
}

:root[data-theme="light"] .onboarding-step.done{
  background:#eff8f2;
  border-color:#cbe7d6;
}

:root[data-theme="light"] .onboarding-check{
  background:#e4f3fc;
  color:#075985;
}

:root[data-theme="light"] .onboarding-step.done .onboarding-check{
  background:#dff2e6;
  color:#137a4b;
}

:root[data-theme="light"] .birthdays-head{
  background:linear-gradient(135deg,#eef8ff,#ffffff);
}

:root[data-theme="light"] .birthday-icon,
:root[data-theme="light"] .birthday-status{
  background:#e8f5ff;
  color:#075985;
}

:root[data-theme="light"] .birthdays-head .eyebrow,
:root[data-theme="light"] .person-birthday{
  color:#075985;
}

:root[data-theme="light"] .notification-badge{
  background:#c63d4e;
  color:#fff;
  border-color:#fff;
}

:root[data-theme="light"] .org-row{
  background:#fff;
}

:root[data-theme="light"] .org-row:hover{
  background:#f4f8fb;
}

:root[data-theme="light"] .org-row.active{
  background:#eaf6ff;
  border-color:#5ba7d5;
}

:root[data-theme="light"] .danger-zone{
  border-color:#e5cbd0;
}

:root[data-theme="light"] .external-song-box,
:root[data-theme="light"] .addcell{
  border-color:#b8c6d2;
}

:root[data-theme="light"] .section-label>span{
  background:#263746;
  color:#fff;
}

:root[data-theme="light"] .pdf-frame{
  background:#fff;
  border-color:#cdd7e0;
}

@media(max-width:760px){
  :root[data-theme="light"] .mobile-nav{
    background:rgba(255,255,255,.96);
  }
}


:root[data-theme="light"] .brandmark{
  background:#0a6fae;
  color:#fff;
}

:root[data-theme="light"] .favhead svg,
:root[data-theme="light"] .favorited{
  color:#c63d4e;
}

:root[data-theme="light"] .invite{
  border-color:#0b5f96;
  background:linear-gradient(120deg,#0b5f96,#075985 72%,#0b6d9f);
  box-shadow:0 12px 30px rgba(7,89,133,.16);
}

:root[data-theme="light"] .invite p{
  color:#e5f5ff;
}

:root[data-theme="light"] .invite-symbol{
  background:rgba(255,255,255,.11);
  border-color:rgba(255,255,255,.30);
}

:root[data-theme="light"] .invite-symbol svg{
  color:#e4f6ff;
}

:root[data-theme="light"] .invite .btn,
:root[data-theme="light"] .invite .btn.primary{
  background:#fff;
  color:#075985;
  border-color:#fff;
  box-shadow:none;
}

:root[data-theme="light"] .invite .btn:hover,
:root[data-theme="light"] .invite .btn.primary:hover{
  background:#eaf6ff;
  color:#06496d;
  border-color:#eaf6ff;
}

:root[data-theme="light"] .programrow.type-song .program-kind{
  background:#e8f5ff;
  color:#075985;
}

:root[data-theme="light"] .programrow.type-item .program-kind{
  background:#fff4d6;
  color:#7a5400;
}

:root[data-theme="light"] .programrow.type-header .program-kind{
  background:rgba(255,255,255,.15);
  color:#fff;
}

:root[data-theme="light"] .program-controls button:last-child,
:root[data-theme="light"] .editor-remove,
:root[data-theme="light"] .structure-row-actions button:last-child{
  color:#a23745;
}

:root[data-theme="light"] .key-grid button.active{
  background:#0a6fae;
  color:#fff;
}

:root[data-theme="light"] .avatar.blue{
  background:#dff1fc;
  color:#075985;
}

:root[data-theme="light"] .avatar.green{
  background:#e2f4e9;
  color:#17633f;
}

:root[data-theme="light"] .avatar.orange{
  background:#fff0df;
  color:#8b4d11;
}

:root[data-theme="light"] .avatar:not(.blue):not(.green):not(.orange){
  background:#eee9fb;
  color:#62479b;
}


/* WorshipTime 0.9.7 · program item/header palette */
.pc-blue,.programrow.program-color-blue{--program-color:#2563eb}
.pc-sky,.programrow.program-color-sky{--program-color:#0284c7}
.pc-teal,.programrow.program-color-teal{--program-color:#0f766e}
.pc-green,.programrow.program-color-green{--program-color:#15803d}
.pc-lime,.programrow.program-color-lime{--program-color:#4d7c0f}
.pc-amber,.programrow.program-color-amber{--program-color:#a16207}
.pc-orange,.programrow.program-color-orange{--program-color:#c2410c}
.pc-red,.programrow.program-color-red{--program-color:#b91c1c}
.pc-rose,.programrow.program-color-rose{--program-color:#be185d}
.pc-violet,.programrow.program-color-violet{--program-color:#7e22ce}

.program-color-field{
  margin:4px 0 18px;
}
.program-color-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin-top:2px;
}
.program-color-option{
  position:relative;
  display:grid;
  justify-items:center;
  gap:7px;
  min-width:0;
  padding:9px 5px 8px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface);
  cursor:pointer;
  transition:border-color .15s,background .15s,transform .15s;
}
.program-color-option:hover{
  border-color:color-mix(in srgb,var(--program-color) 55%,var(--line));
  background:color-mix(in srgb,var(--program-color) 6%,var(--surface));
}
.program-color-option input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.program-color-swatch{
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--program-color);
  border:3px solid color-mix(in srgb,var(--program-color) 55%,#fff);
  transition:transform .15s,box-shadow .15s;
}
.program-color-option small{
  width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  text-align:center;
  white-space:nowrap;
  color:var(--muted);
  font-size:.67rem;
}
.program-color-option input:checked + .program-color-swatch{
  transform:scale(1.08);
  box-shadow:
    0 0 0 3px var(--surface),
    0 0 0 5px var(--program-color);
}
.program-color-option:has(input:checked){
  border-color:color-mix(in srgb,var(--program-color) 70%,var(--line));
  background:color-mix(in srgb,var(--program-color) 9%,var(--surface));
}
.program-color-option:has(input:checked) small{
  color:var(--text);
  font-weight:700;
}
.program-color-option input:focus-visible + .program-color-swatch{
  outline:3px solid color-mix(in srgb,var(--program-color) 45%,transparent);
  outline-offset:4px;
}

/* Normal program elements use a restrained tint. */
.programrow.type-item[class*="program-color-"]{
  background:color-mix(in srgb,var(--program-color) 11%,var(--surface));
  border-color:color-mix(in srgb,var(--program-color) 30%,var(--line));
  box-shadow:inset 5px 0 0 var(--program-color);
}
.programrow.type-item[class*="program-color-"] .program-time{
  color:color-mix(in srgb,var(--program-color) 55%,var(--text));
}
.programrow.type-item[class*="program-color-"] .program-controls button:hover{
  background:color-mix(in srgb,var(--program-color) 13%,transparent);
}

/* Headers use a stronger version of the selected color. */
.programrow.type-header[class*="program-color-"]{
  background:linear-gradient(
    115deg,
    color-mix(in srgb,var(--program-color) 78%,#111827),
    color-mix(in srgb,var(--program-color) 56%,#111827)
  );
  border-color:color-mix(in srgb,var(--program-color) 72%,#111827);
  box-shadow:inset 5px 0 0 color-mix(in srgb,var(--program-color) 82%,#fff);
}
.programrow.type-header[class*="program-color-"] .program-title{
  color:#fff;
}
.programrow.type-header[class*="program-color-"] .program-time,
.programrow.type-header[class*="program-color-"] .program-note,
.programrow.type-header[class*="program-color-"] .program-controls button{
  color:rgba(255,255,255,.78);
}
.programrow.type-header[class*="program-color-"] .program-controls button:hover{
  background:rgba(255,255,255,.10);
  color:#fff;
}
.programrow.type-header[class*="program-color-"] .program-controls button:last-child{
  color:#ffd7da;
}

/* Light mode keeps item tints airy while headers stay visually strong. */
:root[data-theme="light"] .program-color-option{
  background:#fff;
}
:root[data-theme="light"] .program-color-option:hover{
  background:color-mix(in srgb,var(--program-color) 5%,#fff);
}
:root[data-theme="light"] .program-color-option:has(input:checked){
  background:color-mix(in srgb,var(--program-color) 8%,#fff);
}
:root[data-theme="light"] .programrow.type-item[class*="program-color-"]{
  background:color-mix(in srgb,var(--program-color) 8%,#fff);
  border-color:color-mix(in srgb,var(--program-color) 24%,#d6dee7);
  box-shadow:inset 5px 0 0 var(--program-color);
}
:root[data-theme="light"] .programrow.type-item[class*="program-color-"] .program-time{
  color:color-mix(in srgb,var(--program-color) 62%,#263746);
}

@media(max-width:520px){
  .program-color-grid{
    gap:7px;
  }
  .program-color-option{
    padding:8px 3px 7px;
  }
  .program-color-swatch{
    width:27px;
    height:27px;
  }
  .program-color-option small{
    font-size:.61rem;
  }
}


/* WorshipTime 0.9.8 · true light variants for program colors */
:root[data-theme="light"] .pc-blue,
:root[data-theme="light"] .programrow.program-color-blue{
  --program-color:#3b82f6;--program-soft:#eff6ff;--program-border:#bfdbfe;--program-ink:#1e40af;--program-header:#dbeafe;
}
:root[data-theme="light"] .pc-sky,
:root[data-theme="light"] .programrow.program-color-sky{
  --program-color:#0ea5e9;--program-soft:#f0f9ff;--program-border:#bae6fd;--program-ink:#075985;--program-header:#e0f2fe;
}
:root[data-theme="light"] .pc-teal,
:root[data-theme="light"] .programrow.program-color-teal{
  --program-color:#14b8a6;--program-soft:#f0fdfa;--program-border:#99f6e4;--program-ink:#115e59;--program-header:#ccfbf1;
}
:root[data-theme="light"] .pc-green,
:root[data-theme="light"] .programrow.program-color-green{
  --program-color:#22c55e;--program-soft:#f0fdf4;--program-border:#bbf7d0;--program-ink:#166534;--program-header:#dcfce7;
}
:root[data-theme="light"] .pc-lime,
:root[data-theme="light"] .programrow.program-color-lime{
  --program-color:#84cc16;--program-soft:#f7fee7;--program-border:#d9f99d;--program-ink:#3f6212;--program-header:#ecfccb;
}
:root[data-theme="light"] .pc-amber,
:root[data-theme="light"] .programrow.program-color-amber{
  --program-color:#f59e0b;--program-soft:#fffbeb;--program-border:#fde68a;--program-ink:#92400e;--program-header:#fef3c7;
}
:root[data-theme="light"] .pc-orange,
:root[data-theme="light"] .programrow.program-color-orange{
  --program-color:#f97316;--program-soft:#fff7ed;--program-border:#fed7aa;--program-ink:#9a3412;--program-header:#ffedd5;
}
:root[data-theme="light"] .pc-red,
:root[data-theme="light"] .programrow.program-color-red{
  --program-color:#ef4444;--program-soft:#fef2f2;--program-border:#fecaca;--program-ink:#991b1b;--program-header:#fee2e2;
}
:root[data-theme="light"] .pc-rose,
:root[data-theme="light"] .programrow.program-color-rose{
  --program-color:#f43f5e;--program-soft:#fff1f2;--program-border:#fecdd3;--program-ink:#9f1239;--program-header:#ffe4e6;
}
:root[data-theme="light"] .pc-violet,
:root[data-theme="light"] .programrow.program-color-violet{
  --program-color:#8b5cf6;--program-soft:#f5f3ff;--program-border:#ddd6fe;--program-ink:#5b21b6;--program-header:#ede9fe;
}

:root[data-theme="light"] .programrow.type-item[class*="program-color-"]{
  background:var(--program-soft);
  border-color:var(--program-border);
  box-shadow:inset 5px 0 0 var(--program-color);
}
:root[data-theme="light"] .programrow.type-item[class*="program-color-"] .program-time{
  color:var(--program-ink);
}
:root[data-theme="light"] .programrow.type-item[class*="program-color-"] .program-title{
  color:#17212b;
}
:root[data-theme="light"] .programrow.type-item[class*="program-color-"] .program-note{
  color:#5b6875;
}

:root[data-theme="light"] .programrow.type-header[class*="program-color-"]{
  background:linear-gradient(
    115deg,
    var(--program-header),
    color-mix(in srgb,var(--program-header) 58%,#fff)
  );
  border-color:var(--program-border);
  box-shadow:inset 5px 0 0 var(--program-color);
}
:root[data-theme="light"] .programrow.type-header[class*="program-color-"] .program-title{
  color:var(--program-ink);
}
:root[data-theme="light"] .programrow.type-header[class*="program-color-"] .program-time,
:root[data-theme="light"] .programrow.type-header[class*="program-color-"] .program-note,
:root[data-theme="light"] .programrow.type-header[class*="program-color-"] .program-controls button{
  color:color-mix(in srgb,var(--program-ink) 82%,#475569);
}
:root[data-theme="light"] .programrow.type-header[class*="program-color-"] .program-controls button:hover{
  background:color-mix(in srgb,var(--program-color) 11%,transparent);
  color:var(--program-ink);
}
:root[data-theme="light"] .programrow.type-header[class*="program-color-"] .program-controls button:last-child{
  color:#a23745;
}

:root[data-theme="light"] .program-color-option{
  border-color:#d6dee7;
}
:root[data-theme="light"] .program-color-option:has(input:checked){
  background:var(--program-soft);
  border-color:var(--program-border);
}
:root[data-theme="light"] .program-color-option:has(input:checked) small{
  color:var(--program-ink);
}
:root[data-theme="light"] .program-color-option input:checked + .program-color-swatch{
  box-shadow:
    0 0 0 3px #fff,
    0 0 0 5px var(--program-color);
}


/* WorshipTime 0.10.0 · program productivity */
.program-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
.programrow:has(.program-drag-handle){
  grid-template-columns:72px 34px minmax(0,1fr) auto;
}
.program-drag-handle{
  width:30px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:9px;
  color:var(--muted);
  cursor:grab;
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
  opacity:.55;
  transition:background .15s,color .15s,opacity .15s,transform .15s;
}
.program-drag-handle:hover,
.programrow:focus-within .program-drag-handle{
  opacity:1;
  background:color-mix(in srgb,var(--text) 7%,transparent);
  color:var(--text);
}
.program-drag-handle:active{
  cursor:grabbing;
  transform:scale(.96);
}
.program-drag-handle svg{
  width:16px;
  height:16px;
}
.programrow.dragging{
  opacity:.66;
  transform:scale(.992);
  box-shadow:0 16px 38px rgba(0,0,0,.16);
  z-index:5;
}
.programrow.drag-over{
  outline:2px solid var(--blue);
  outline-offset:3px;
}
body.program-sorting{
  user-select:none;
  -webkit-user-select:none;
  cursor:grabbing;
}
body.program-sorting .programrow{
  transition:transform .12s,opacity .12s,outline-color .12s;
}
.program-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.program-total span{
  color:var(--muted);
  font-variant-numeric:tabular-nums;
}
.program-total strong{
  white-space:nowrap;
}

.template-manager-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.template-manager-head .hint{
  margin:4px 0 0;
  max-width:520px;
}
.program-template-list{
  display:grid;
  gap:10px;
}
.program-template-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 15px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface2);
}
.program-template-card>div:first-child{
  min-width:0;
}
.program-template-card strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.program-template-card small{
  display:block;
  margin-top:4px;
  color:var(--muted);
}
.compact-empty{
  min-height:170px;
  padding:24px;
}

:root[data-theme="light"] .program-drag-handle:hover,
:root[data-theme="light"] .programrow:focus-within .program-drag-handle{
  background:#eef3f7;
}
:root[data-theme="light"] .programrow.dragging{
  box-shadow:0 16px 34px rgba(30,55,75,.14);
}
:root[data-theme="light"] .program-template-card{
  background:#f8fafc;
}

@media(max-width:900px){
  .program-actions{
    width:100%;
    justify-content:flex-start;
  }
}
@media(max-width:760px){
  .program-toolbar{
    gap:12px;
  }
  .program-toolbar .actions.program-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .programrow:has(.program-drag-handle){
    grid-template-columns:48px 28px minmax(0,1fr) 32px;
  }
  .programrow:has(.program-drag-handle) .program-time{
    grid-column:1;
    grid-row:1;
  }
  .programrow:has(.program-drag-handle) .program-drag-handle{
    grid-column:2;
    grid-row:1;
    width:28px;
    height:42px;
    align-self:center;
  }
  .programrow:has(.program-drag-handle) .program-content{
    grid-column:3;
    grid-row:1;
  }
  .programrow:has(.program-drag-handle) .program-controls{
    grid-column:4;
    grid-row:1;
  }
  .template-manager-head,
  .program-template-card{
    align-items:stretch;
    flex-direction:column;
  }
  .program-template-card .row{
    width:100%;
  }
  .program-template-card .row .btn{
    flex:1;
  }
}
@media(max-width:420px){
  .program-toolbar .actions.program-actions{
    grid-template-columns:1fr;
  }
}


/* WorshipTime 0.10.0 · program productivity */
.program-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
.programrow:has(.program-drag-handle){
  grid-template-columns:72px 34px minmax(0,1fr) auto;
}
.program-drag-handle{
  width:30px;
  height:42px;
  display:grid;
  place-items:center;
  align-self:center;
  border-radius:9px;
  color:var(--muted);
  cursor:grab;
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
  opacity:.58;
  transition:background .15s,color .15s,opacity .15s,transform .15s;
}
.program-drag-handle:hover,
.programrow:focus-within .program-drag-handle{
  opacity:1;
  background:color-mix(in srgb,var(--text) 7%,transparent);
  color:var(--text);
}
.program-drag-handle:active{
  cursor:grabbing;
  transform:scale(.96);
}
.program-drag-handle svg{
  width:16px;
  height:16px;
}
.programrow.dragging{
  opacity:.66;
  transform:scale(.992);
  box-shadow:0 16px 38px rgba(0,0,0,.16);
  z-index:5;
}
.programrow.drag-over{
  outline:2px solid var(--blue);
  outline-offset:3px;
}
body.program-sorting{
  user-select:none;
  -webkit-user-select:none;
  cursor:grabbing;
}
.program-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.program-total span{
  color:var(--muted);
  font-variant-numeric:tabular-nums;
}
.program-total strong{
  white-space:nowrap;
}
.template-manager-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.template-manager-head .hint{
  margin:4px 0 0;
  max-width:520px;
}
.program-template-list{
  display:grid;
  gap:10px;
}
.program-template-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 15px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface2);
}
.program-template-card>div:first-child{
  min-width:0;
}
.program-template-card strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.program-template-card small{
  display:block;
  margin-top:4px;
  color:var(--muted);
}
.compact-empty{
  min-height:170px;
  padding:24px;
}
:root[data-theme="light"] .program-drag-handle:hover,
:root[data-theme="light"] .programrow:focus-within .program-drag-handle{
  background:#eef3f7;
}
:root[data-theme="light"] .programrow.dragging{
  box-shadow:0 16px 34px rgba(30,55,75,.14);
}
:root[data-theme="light"] .program-template-card{
  background:#f8fafc;
}
@media(max-width:900px){
  .program-actions{
    width:100%;
    justify-content:flex-start;
  }
}
@media(max-width:760px){
  .program-toolbar{
    gap:12px;
  }
  .program-toolbar .actions.program-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .programrow:has(.program-drag-handle){
    grid-template-columns:48px 28px minmax(0,1fr) 32px;
  }
  .programrow:has(.program-drag-handle) .program-time{
    grid-column:1;
    grid-row:1;
  }
  .programrow:has(.program-drag-handle) .program-drag-handle{
    grid-column:2;
    grid-row:1;
    width:28px;
  }
  .programrow:has(.program-drag-handle) .program-content{
    grid-column:3;
    grid-row:1;
  }
  .programrow:has(.program-drag-handle) .program-controls{
    grid-column:4;
    grid-row:1;
  }
  .template-manager-head,
  .program-template-card{
    align-items:stretch;
    flex-direction:column;
  }
  .program-template-card .row{
    width:100%;
  }
  .program-template-card .row .btn{
    flex:1;
  }
}
@media(max-width:420px){
  .program-toolbar .actions.program-actions{
    grid-template-columns:1fr;
  }
}


/* WorshipTime 0.11.0 · staffing and availability */
.staffing-overview{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
  margin:0 0 14px;
}
.staffing-metric{
  min-width:0;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface);
}
.staffing-metric span{
  display:block;
  color:var(--muted);
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.055em;
}
.staffing-metric strong{
  display:block;
  margin-top:5px;
  font-size:1.35rem;
  line-height:1;
  font-variant-numeric:tabular-nums;
}
.staffing-metric.confirmed strong{color:var(--green)}
.staffing-metric.pending strong{color:var(--amber)}
.staffing-metric.vacancies strong{color:#ffb36a}
.staffing-metric.issues{
  border-color:color-mix(in srgb,var(--red) 48%,var(--line));
  background:color-mix(in srgb,var(--red) 8%,var(--surface));
}
.staffing-metric.issues strong{color:#ff9ca6}

.staffing-alert{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,.8fr);
  gap:16px;
  padding:15px 16px;
  margin:0 0 14px;
  border:1px solid color-mix(in srgb,var(--red) 45%,var(--line));
  border-radius:16px;
  background:color-mix(in srgb,var(--red) 7%,var(--surface));
}
.staffing-alert p{
  margin-top:5px;
  color:var(--muted);
  font-size:.8rem;
}
.staffing-alert ul{
  display:grid;
  gap:7px;
  margin:0;
  padding:0;
  list-style:none;
}
.staffing-alert li{
  display:grid;
  gap:2px;
  padding-left:10px;
  border-left:3px solid color-mix(in srgb,var(--red) 62%,transparent);
}
.staffing-alert li strong{
  font-size:.8rem;
}
.staffing-alert li span{
  color:var(--muted);
  font-size:.73rem;
}

.team-count-pill.has-vacancies{
  border:1px solid color-mix(in srgb,#e89a45 46%,transparent);
}
.slot-status-line{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
}
.slot.slot-issue{
  border-color:color-mix(in srgb,var(--red) 48%,var(--line));
  background:color-mix(in srgb,var(--red) 6%,var(--surface));
}
.assignment-issue-badge{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 7px;
  border-radius:999px;
  background:color-mix(in srgb,var(--red) 15%,var(--surface2));
  color:#ff9da5;
  font-size:.66rem;
  font-style:normal;
  font-weight:700;
}
.empty-slot.needs-replacement{
  border-color:color-mix(in srgb,var(--amber) 44%,var(--line));
  background:color-mix(in srgb,var(--amber) 6%,var(--surface));
  color:color-mix(in srgb,var(--amber) 78%,white);
}

.assignment-target{
  display:grid;
  gap:4px;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface2);
}
.assignment-target strong{
  font-size:1rem;
}
.assignment-target span{
  color:var(--text);
  font-size:.84rem;
}
.assignment-target small{
  color:var(--muted);
  font-size:.75rem;
}
.assignment-availability{
  display:flex;
  align-items:center;
  min-height:42px;
  margin:8px 0 12px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:11px;
  font-size:.78rem;
  font-weight:650;
}
.assignment-availability.available{
  border-color:color-mix(in srgb,var(--green) 38%,var(--line));
  background:color-mix(in srgb,var(--green) 7%,var(--surface));
  color:var(--green);
}
.assignment-availability.warning{
  border-color:color-mix(in srgb,var(--amber) 42%,var(--line));
  background:color-mix(in srgb,var(--amber) 8%,var(--surface));
  color:var(--amber);
}
.assignment-availability.blocked{
  border-color:color-mix(in srgb,var(--red) 45%,var(--line));
  background:color-mix(in srgb,var(--red) 8%,var(--surface));
  color:#ff9da5;
}
.assignment-warning{
  margin-top:14px;
  padding:12px 13px;
  border:1px solid color-mix(in srgb,var(--red) 45%,var(--line));
  border-radius:12px;
  background:color-mix(in srgb,var(--red) 7%,var(--surface));
}
.assignment-warning strong{
  color:#ff9da5;
}
.assignment-warning p{
  margin-top:5px;
  color:var(--muted);
  font-size:.8rem;
}

:root[data-theme="light"] .staffing-metric{
  background:#fff;
}
:root[data-theme="light"] .staffing-metric.vacancies strong{
  color:#9a5716;
}
:root[data-theme="light"] .staffing-metric.issues strong,
:root[data-theme="light"] .assignment-issue-badge,
:root[data-theme="light"] .assignment-warning strong,
:root[data-theme="light"] .assignment-availability.blocked{
  color:#a23745;
}
:root[data-theme="light"] .staffing-alert,
:root[data-theme="light"] .assignment-warning,
:root[data-theme="light"] .staffing-metric.issues{
  background:#fff5f5;
}
:root[data-theme="light"] .slot.slot-issue{
  background:#fff7f7;
}
:root[data-theme="light"] .empty-slot.needs-replacement{
  background:#fffaf1;
  color:#855313;
}
:root[data-theme="light"] .assignment-target{
  background:#f7f9fb;
}
:root[data-theme="light"] .assignment-availability.available{
  background:#f0fbf5;
  color:#137a4b;
}
:root[data-theme="light"] .assignment-availability.warning{
  background:#fff9e8;
  color:#7a5400;
}

@media(max-width:980px){
  .staffing-overview{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .staffing-overview{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .staffing-alert{
    grid-template-columns:1fr;
  }
}


/* WorshipTime 0.12.0 · member roles and ownership */
.member-account-state{
  display:grid;
  gap:4px;
  margin-bottom:16px;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface2);
}
.member-account-state strong{
  font-size:.9rem;
}
.member-account-state span{
  color:var(--muted);
  font-size:.76rem;
  line-height:1.4;
}
.member-account-state.creator{
  border-color:color-mix(in srgb,var(--amber) 42%,var(--line));
  background:color-mix(in srgb,var(--amber) 7%,var(--surface));
}
.member-account-state.creator strong{
  color:var(--amber);
}
.member-account-state.linked{
  border-color:color-mix(in srgb,var(--blue) 34%,var(--line));
}
.member-account-state.local{
  border-style:dashed;
}
.member-role-lock{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:4px 12px;
  margin-top:12px;
  padding:12px 13px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface2);
}
.member-role-lock>span{
  color:var(--muted);
  font-size:.76rem;
}
.member-role-lock>strong{
  font-size:.86rem;
}
.member-role-lock>small{
  grid-column:1/-1;
  color:var(--muted);
  font-size:.72rem;
}
:root[data-theme="light"] .member-account-state,
:root[data-theme="light"] .member-role-lock{
  background:#f7f9fb;
}
:root[data-theme="light"] .member-account-state.creator{
  background:#fff9e8;
}


/* WorshipTime 0.13.0 · sync recovery */
.sync-recovery-card{
  grid-column:1/-1;
}
.sync-recovery-card>p{
  margin-top:6px;
  color:var(--muted);
}
.sync-pending-note{
  display:grid;
  gap:4px;
  margin-top:14px;
  padding:12px 13px;
  border:1px solid color-mix(in srgb,var(--amber) 40%,var(--line));
  border-radius:13px;
  background:color-mix(in srgb,var(--amber) 7%,var(--surface));
}
.sync-pending-note strong{
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--amber);
  font-size:.84rem;
}
.sync-pending-note strong svg{
  width:16px;
  height:16px;
}
.sync-pending-note span{
  color:var(--muted);
  font-size:.76rem;
  line-height:1.45;
}
.sync-recovery-conflict{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:13px;
  margin-top:14px;
  padding:14px;
  border:1px solid color-mix(in srgb,var(--red) 42%,var(--line));
  border-radius:14px;
  background:color-mix(in srgb,var(--red) 6%,var(--surface));
}
.sync-recovery-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:color-mix(in srgb,var(--red) 14%,var(--surface2));
  color:#ff9da5;
}
.sync-recovery-icon svg{
  width:20px;
  height:20px;
}
.sync-recovery-conflict strong{
  display:block;
}
.sync-recovery-conflict p{
  margin:5px 0 12px;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.5;
}
:root[data-theme="light"] .sync-pending-note{
  background:#fff9e8;
}
:root[data-theme="light"] .sync-recovery-conflict{
  background:#fff5f5;
}
:root[data-theme="light"] .sync-recovery-icon{
  background:#fdebed;
  color:#a23745;
}
@media(max-width:620px){
  .sync-recovery-conflict{
    grid-template-columns:1fr;
  }
  .sync-recovery-icon{
    width:38px;
    height:38px;
  }
  .sync-recovery-conflict .row{
    align-items:stretch;
    flex-direction:column;
  }
  .sync-recovery-conflict .btn{
    width:100%;
  }
}


/* WorshipTime 0.14.0 · native iPhone / iPad shell */
:root{
  --wt-safe-top:env(safe-area-inset-top,0px);
  --wt-safe-right:env(safe-area-inset-right,0px);
  --wt-safe-bottom:env(safe-area-inset-bottom,0px);
  --wt-safe-left:env(safe-area-inset-left,0px);
  --wt-mobile-nav-height:76px;
  --visual-viewport-height:100dvh;
  --visual-viewport-offset:0px;
}
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  -webkit-tap-highlight-color:transparent;
}
button,
a,
.btn,
input,
select,
textarea{
  -webkit-tap-highlight-color:transparent;
}
button,
a,
.btn{
  touch-action:manipulation;
}
input,
textarea,
select{
  caret-color:var(--blue);
}

/* Installed PWA gets the full safe area treatment. */
@media(max-width:1024px){
  .main{
    padding-top:calc(22px + var(--wt-safe-top));
    padding-left:max(18px,calc(18px + var(--wt-safe-left)));
    padding-right:max(18px,calc(18px + var(--wt-safe-right)));
    padding-bottom:calc(104px + var(--wt-safe-bottom));
    min-height:var(--visual-viewport-height,100dvh);
  }

  .mobile-nav{
    padding-left:max(6px,var(--wt-safe-left));
    padding-right:max(6px,var(--wt-safe-right));
    padding-bottom:calc(8px + var(--wt-safe-bottom));
    min-height:calc(var(--wt-mobile-nav-height) + var(--wt-safe-bottom));
    box-shadow:0 -10px 30px rgba(0,0,0,.10);
    transition:transform .22s ease,opacity .18s ease;
  }
  .mobile-nav button{
    position:relative;
    min-height:54px;
    border-radius:14px;
    transition:background .16s ease,color .16s ease,transform .12s ease;
  }
  .mobile-nav button:active{
    transform:scale(.96);
  }
  .mobile-nav button.active{
    background:color-mix(in srgb,var(--blue) 11%,transparent);
    color:var(--text);
  }
  .mobile-nav button.active svg{
    color:var(--blue);
    stroke-width:2.05;
  }

  .responsive-settings,
  .notification-button,
  .iconbtn{
    min-width:44px;
    min-height:44px;
  }
  .tabs button,
  .segmented button,
  .program-controls button,
  .structure-row-actions button,
  .back,
  .linkbtn{
    min-height:44px;
  }
  input,
  select{
    min-height:46px;
  }

  .toast{
    bottom:calc(88px + var(--wt-safe-bottom));
  }

  html.keyboard-open .mobile-nav{
    transform:translateY(calc(110% + var(--wt-safe-bottom)));
    opacity:0;
    pointer-events:none;
  }
  html.keyboard-open .main{
    padding-bottom:26px;
  }
  html.keyboard-open .toast{
    bottom:14px;
  }
  html.keyboard-open #wtCloudStatus{
    opacity:0!important;
    pointer-events:none!important;
  }

  .composer{
    position:sticky;
    bottom:calc(72px + var(--wt-safe-bottom));
    z-index:12;
    background:color-mix(in srgb,var(--surface) 96%,transparent);
    backdrop-filter:blur(16px);
  }
  html.keyboard-open .composer{
    bottom:0;
    padding-bottom:calc(10px + var(--wt-safe-bottom));
  }
}

/* Phone: forms behave like native full-screen sheets. */
@media(max-width:600px){
  input,
  select,
  textarea{
    font-size:16px;
  }

  .main{
    padding-top:calc(16px + var(--wt-safe-top));
    padding-left:max(14px,calc(14px + var(--wt-safe-left)));
    padding-right:max(14px,calc(14px + var(--wt-safe-right)));
  }

  .topbar{
    gap:10px;
    margin-bottom:18px;
  }
  .topbar h1{
    line-height:1.05;
  }

  .modal{
    inset:var(--visual-viewport-offset,0px) 0 auto 0;
    width:100vw;
    height:var(--visual-viewport-height,100dvh);
    max-width:none;
    max-height:none;
    margin:0;
    border:0;
    border-radius:0;
    box-shadow:none;
  }
  .modal-head{
    position:sticky;
    top:0;
    z-index:20;
    min-height:calc(62px + var(--wt-safe-top));
    padding:calc(14px + var(--wt-safe-top)) max(17px,calc(17px + var(--wt-safe-right))) 13px max(17px,calc(17px + var(--wt-safe-left)));
    background:color-mix(in srgb,var(--bg) 95%,transparent);
    backdrop-filter:blur(18px);
  }
  .modal-head>button{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--surface2);
  }
  .modal-content{
    max-height:none;
    height:calc(var(--visual-viewport-height,100dvh) - 62px - var(--wt-safe-top));
    padding:18px max(17px,calc(17px + var(--wt-safe-right))) calc(26px + var(--wt-safe-bottom)) max(17px,calc(17px + var(--wt-safe-left)));
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .modal-actions{
    position:sticky;
    bottom:calc(-26px - var(--wt-safe-bottom));
    z-index:8;
    margin-left:-17px;
    margin-right:-17px;
    padding:13px 17px calc(13px + var(--wt-safe-bottom));
    background:linear-gradient(to bottom,transparent 0,var(--bg) 18px,var(--bg) 100%);
  }
  .modal-actions .btn,
  .modal-actions button{
    min-height:46px;
  }

  .song-editor-modal,
  .pdf-modal{
    height:var(--visual-viewport-height,100dvh);
  }

  .program-actions .btn{
    min-height:46px;
  }
  .program-drag-handle{
    min-width:32px;
    min-height:44px;
  }

  .chat-layout{
    min-height:calc(var(--visual-viewport-height,100dvh) - 210px);
  }
  .chat-messages{
    max-height:none;
    min-height:240px;
  }

  .servicecard,
  .personcard,
  .birthday-person,
  .slot,
  .rehearsal-pick{
    touch-action:manipulation;
  }
}

/* iPad landscape: compact left rail instead of a bottom phone bar. */
@media(min-width:820px) and (max-width:1180px) and (orientation:landscape){
  .sidebar{
    display:none!important;
  }
  .responsive-settings{
    display:inline-grid!important;
  }
  .main{
    margin-left:88px!important;
    max-width:none;
    width:calc(100% - 88px);
    height:100dvh;
    max-height:100dvh;
    padding:
      calc(22px + var(--wt-safe-top))
      calc(28px + var(--wt-safe-right))
      calc(30px + var(--wt-safe-bottom))
      28px;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
  }
  .mobile-nav{
    display:flex!important;
    flex-direction:column;
    justify-content:flex-start;
    gap:7px;
    left:0;
    right:auto;
    top:0;
    bottom:0;
    width:88px;
    min-height:100dvh;
    padding:
      calc(16px + var(--wt-safe-top))
      8px
      calc(16px + var(--wt-safe-bottom))
      max(8px,var(--wt-safe-left));
    border-top:0;
    border-right:1px solid var(--line);
    box-shadow:8px 0 30px rgba(0,0,0,.08);
  }
  .mobile-nav button{
    width:100%;
    min-height:68px;
    flex:none;
    gap:6px;
    padding:8px 4px;
    font-size:.66rem;
  }
  .mobile-nav svg{
    width:23px;
    height:23px;
  }
  .mobile-nav button.active{
    background:color-mix(in srgb,var(--blue) 13%,var(--surface));
  }
  .toast{
    left:calc(50% + 44px);
    bottom:22px;
  }
  .composer{
    bottom:0;
  }
  html.keyboard-open .mobile-nav{
    transform:none;
    opacity:1;
    pointer-events:auto;
  }
}

/* Standalone polish. */
html.standalone-app body{
  user-select:none;
  -webkit-user-select:none;
}
html.standalone-app input,
html.standalone-app textarea,
html.standalone-app select,
html.standalone-app [contenteditable="true"],
html.standalone-app .lyric,
html.standalone-app .chart{
  user-select:text;
  -webkit-user-select:text;
}

:root[data-theme="light"] .mobile-nav button.active{
  background:color-mix(in srgb,var(--blue) 9%,#fff);
}
@media(max-width:600px){
  :root[data-theme="light"] .modal-head{
    background:rgba(244,247,250,.94);
  }
}
@media(max-width:1024px){
  :root[data-theme="light"] .composer{
    background:rgba(255,255,255,.94);
  }
}


/* WorshipTime 0.15.0 · compact mobile program + card long-press drag */
@media(max-width:600px){
  .program{
    gap:7px;
  }

  .programrow,
  .programrow:has(.program-drag-handle){
    display:grid;
    grid-template-columns:52px minmax(0,1fr) 68px;
    grid-template-rows:auto;
    align-items:center;
    gap:8px;
    min-height:78px;
    padding:9px 10px;
    border-radius:16px;
    -webkit-touch-callout:none;
  }

  .programrow:has(.program-drag-handle) .program-time,
  .program-time{
    grid-column:1;
    grid-row:1;
    width:auto;
    align-self:center;
    font-size:.80rem;
    font-weight:650;
  }

  .programrow:has(.program-drag-handle) .program-drag-handle,
  .program-drag-handle{
    display:none!important;
  }

  .programrow:has(.program-drag-handle) .program-content,
  .program-content{
    grid-column:2;
    grid-row:1;
    min-width:0;
    align-self:center;
    padding:3px 0;
    -webkit-user-select:none;
    user-select:none;
  }

  .program-title{
    font-size:.96rem;
    line-height:1.18;
  }

  .programrow.type-header .program-title{
    font-size:.98rem;
  }

  .program-note{
    margin-top:3px;
    font-size:.72rem;
    line-height:1.25;
  }

  .program-song-meta{
    gap:4px;
    margin-bottom:4px;
  }

  .program-chip{
    min-height:22px;
    padding:2px 7px;
    font-size:.64rem;
  }

  .programrow:has(.program-drag-handle) .program-controls,
  .program-controls{
    grid-column:3;
    grid-row:1;
    display:grid!important;
    grid-template-columns:repeat(2,32px);
    grid-template-rows:repeat(2,32px);
    gap:2px;
    align-self:center;
    justify-self:end;
    opacity:.82;
  }

  .program-controls button,
  .program-controls button:last-child{
    display:grid!important;
    place-items:center;
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    padding:5px!important;
    border-radius:8px;
  }

  .program-controls svg{
    width:16px;
    height:16px;
  }

  .programrow.type-header,
  .programrow.type-item,
  .programrow.type-song{
    min-height:78px;
  }

  .programrow.program-touch-active{
    position:relative;
    z-index:20;
    transform:scale(.985);
    outline:2px solid color-mix(in srgb,var(--blue) 75%,white);
    outline-offset:2px;
    box-shadow:0 14px 34px rgba(0,0,0,.28);
  }

  body.program-sorting .programrow:not(.dragging){
    opacity:.72;
  }

  .program-total{
    padding-top:11px;
  }
}

@media(max-width:390px){
  .programrow,
  .programrow:has(.program-drag-handle){
    grid-template-columns:48px minmax(0,1fr) 64px;
    min-height:74px;
    padding:8px 8px;
    gap:7px;
  }

  .programrow:has(.program-drag-handle) .program-controls,
  .program-controls{
    grid-template-columns:repeat(2,30px);
    grid-template-rows:repeat(2,30px);
  }

  .program-controls button,
  .program-controls button:last-child{
    width:30px!important;
    height:30px!important;
    min-width:30px!important;
    min-height:30px!important;
  }
}
.program-touch-hint{display:none!important}
@media(max-width:600px){
  .program-touch-hint{
    display:block!important;
    margin-top:3px;
    color:var(--blue);
    font-size:.68rem;
  }
}


/* WorshipTime 0.16.0 · notifications, replacements and activity */
.service-activity-list{
  display:grid;
  gap:0;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  background:var(--surface);
}
.service-activity-row{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:12px;
  align-items:start;
  padding:15px 16px;
  border-bottom:1px solid var(--line);
}
.service-activity-row:last-child{
  border-bottom:0;
}
.service-activity-icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:color-mix(in srgb,var(--blue) 10%,var(--surface2));
  color:var(--blue);
}
.service-activity-icon svg{
  width:18px;
  height:18px;
}
.service-activity-row strong{
  display:block;
  font-size:.86rem;
  line-height:1.4;
}
.service-activity-row strong span{
  font-weight:500;
  color:var(--text);
}
.service-activity-row small{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:.72rem;
}
.activity-loading{
  min-height:180px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  color:var(--muted);
}
.activity-loading svg{
  width:18px;
  height:18px;
}

.replacement-alert{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,.75fr);
  gap:14px;
  margin:0 0 14px;
  padding:15px 16px;
  border:1px solid color-mix(in srgb,var(--amber) 52%,var(--line));
  border-radius:16px;
  background:color-mix(in srgb,var(--amber) 8%,var(--surface));
}
.replacement-alert strong{
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--amber);
}
.replacement-alert strong svg{
  width:18px;
  height:18px;
}
.replacement-alert p{
  margin-top:5px;
  color:var(--muted);
  font-size:.78rem;
}
.replacement-list{
  display:grid;
  align-content:start;
  gap:6px;
}
.replacement-list span{
  padding:7px 9px;
  border-radius:9px;
  background:color-mix(in srgb,var(--amber) 8%,var(--surface2));
  font-size:.74rem;
}
.replacement-list b{
  color:var(--text);
}

.notification-center-modal{
  width:min(680px,calc(100% - 28px));
}
.notification-section+.notification-section{
  margin-top:22px;
}
.notification-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:9px;
}
.notification-section-head>strong{
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.055em;
  color:var(--muted);
}
.notification-section-head>span{
  min-width:24px;
  height:24px;
  display:grid;
  place-items:center;
  padding:0 7px;
  border-radius:999px;
  background:var(--surface2);
  color:var(--muted);
  font-size:.68rem;
  font-weight:700;
}
.notification-card{
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  gap:11px;
  padding:13px 14px;
  margin-bottom:8px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface);
}
.notification-card.unread{
  border-color:color-mix(in srgb,var(--blue) 35%,var(--line));
  background:color-mix(in srgb,var(--blue) 5%,var(--surface));
}
.notification-card.reminder{
  border-color:color-mix(in srgb,var(--amber) 30%,var(--line));
  background:color-mix(in srgb,var(--amber) 4%,var(--surface));
}
.notification-type-icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:var(--surface2);
  color:var(--blue);
}
.notification-card.reminder .notification-type-icon{
  color:var(--amber);
}
.notification-type-icon svg{
  width:18px;
  height:18px;
}
.notification-card>div>strong{
  display:block;
  font-size:.86rem;
}
.notification-card p{
  margin-top:3px;
  color:var(--text);
  font-size:.78rem;
  line-height:1.42;
}
.notification-card small{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:.69rem;
}
.notification-actions{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:10px;
}

:root[data-theme="light"] .service-activity-list,
:root[data-theme="light"] .notification-card{
  background:#fff;
}
:root[data-theme="light"] .replacement-alert{
  background:#fff9e8;
}
:root[data-theme="light"] .replacement-list span{
  background:#fff4cf;
}
:root[data-theme="light"] .notification-card.unread{
  background:#f4faff;
}
:root[data-theme="light"] .notification-card.reminder{
  background:#fffcf3;
}

@media(max-width:760px){
  .replacement-alert{
    grid-template-columns:1fr;
  }
  .service-activity-row{
    grid-template-columns:36px minmax(0,1fr);
    padding:13px;
  }
  .service-activity-icon{
    width:34px;
    height:34px;
  }
}
@media(max-width:600px){
  .notification-center-modal{
    width:100vw;
  }
  .notification-card{
    grid-template-columns:34px minmax(0,1fr);
    padding:12px;
  }
  .notification-type-icon{
    width:32px;
    height:32px;
  }
  .notification-actions .btn{
    flex:1;
    min-height:42px;
  }
}


/* WorshipTime 0.17.0 · real contextual chat */
.nav button,
.mobile-nav button{
  position:relative;
}
.nav-unread{
  min-width:20px;
  height:20px;
  display:grid;
  place-items:center;
  margin-left:auto;
  padding:0 5px;
  border-radius:999px;
  background:var(--blue);
  color:white;
  font-size:.62rem;
  font-weight:800;
  line-height:1;
}
.mobile-nav .nav-unread{
  position:absolute;
  top:2px;
  left:calc(50% + 8px);
  min-width:18px;
  height:18px;
  margin:0;
  padding:0 4px;
  font-size:.58rem;
  box-shadow:0 0 0 2px var(--bg);
}

.chat-layout-v2{
  grid-template-columns:290px minmax(0,1fr);
  min-height:610px;
  max-height:calc(100dvh - 190px);
  background:var(--surface);
}
.chat-layout-v2 .chat-list{
  display:block;
  min-width:0;
  padding:10px;
  overflow-y:auto;
  border-right:1px solid var(--line);
  border-bottom:0;
}
.chat-channel-group{
  display:grid;
  gap:4px;
  margin-bottom:14px;
}
.chat-channel-group>span{
  padding:5px 8px 3px;
  color:var(--muted);
  font-size:.66rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.065em;
}
.chat-layout-v2 .channel{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  width:100%;
  min-height:52px;
  padding:7px 8px;
  border:1px solid transparent;
  border-radius:12px;
  text-align:left;
  white-space:normal;
  color:var(--text);
}
.chat-layout-v2 .channel:hover{
  background:color-mix(in srgb,var(--text) 5%,transparent);
}
.chat-layout-v2 .channel.active{
  background:color-mix(in srgb,var(--blue) 11%,var(--surface2));
  border-color:color-mix(in srgb,var(--blue) 25%,var(--line));
}
.channel-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:var(--surface2);
  color:var(--muted);
}
.channel.active .channel-icon{
  background:color-mix(in srgb,var(--blue) 16%,var(--surface));
  color:var(--blue);
}
.channel-icon svg{
  width:17px;
  height:17px;
}
.channel-copy{
  display:block;
  min-width:0;
}
.channel-copy strong,
.channel-copy small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.channel-copy strong{
  font-size:.8rem;
  color:var(--text);
}
.channel-copy small{
  margin-top:3px;
  color:var(--muted);
  font-size:.67rem;
}
.channel-unread{
  min-width:22px;
  height:22px;
  display:grid;
  place-items:center;
  padding:0 6px;
  border-radius:999px;
  background:var(--blue);
  color:#fff;
  font-size:.62rem;
  font-weight:800;
  font-style:normal;
}

.chat-body.chat-v2{
  min-height:0;
  height:100%;
  background:color-mix(in srgb,var(--bg) 55%,var(--surface));
}
.chat-context-head{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:62px;
  padding:10px 15px;
  border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  backdrop-filter:blur(14px);
}
.chat-context-head>span{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:color-mix(in srgb,var(--blue) 11%,var(--surface2));
  color:var(--blue);
}
.chat-context-head svg{
  width:18px;
  height:18px;
}
.chat-context-head strong{
  display:block;
  font-size:.86rem;
}
.chat-context-head small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:.68rem;
}

.chat-v2 .chat-messages{
  flex:1;
  min-height:0;
  max-height:none;
  padding:17px 18px;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.chat-message{
  width:fit-content;
  max-width:min(78%,620px);
  margin:7px 0;
  padding:9px 12px 8px;
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--surface);
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.chat-message.other{
  margin-right:auto;
  border-bottom-left-radius:5px;
}
.chat-message.mine{
  margin-left:auto;
  border-color:color-mix(in srgb,var(--blue) 30%,var(--line));
  border-bottom-right-radius:5px;
  background:color-mix(in srgb,var(--blue) 13%,var(--surface));
}
.chat-message>strong{
  display:block;
  margin-bottom:3px;
  color:var(--blue);
  font-size:.69rem;
}
.chat-message p{
  margin:0;
  color:var(--text);
  font-size:.84rem;
  line-height:1.42;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.chat-message small{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:.61rem;
  text-align:right;
}
.chat-composer{
  position:relative;
  bottom:auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  padding:10px 12px calc(10px + var(--wt-safe-bottom));
  border-top:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 96%,transparent);
}
.chat-composer input{
  min-width:0;
  border-radius:999px;
  padding-left:15px;
}
.chat-composer .btn{
  min-width:82px;
  border-radius:999px;
}
.chat-offline-note{
  padding:7px 12px calc(7px + var(--wt-safe-bottom));
  border-top:1px solid var(--line);
  color:var(--muted);
  background:var(--surface2);
  font-size:.67rem;
  text-align:center;
}
.chat-loading,
.chat-list-loading{
  min-height:150px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:var(--muted);
  font-size:.78rem;
}
.chat-loading svg{
  width:18px;
  height:18px;
}

:root[data-theme="light"] .chat-layout-v2,
:root[data-theme="light"] .chat-message,
:root[data-theme="light"] .chat-context-head,
:root[data-theme="light"] .chat-composer{
  background:#fff;
}
:root[data-theme="light"] .chat-body.chat-v2{
  background:#f6f8fa;
}
:root[data-theme="light"] .chat-message.mine{
  background:#e8f5ff;
  border-color:#b9def4;
}
:root[data-theme="light"] .chat-layout-v2 .channel.active{
  background:#e8f5ff;
  border-color:#c8e6f7;
}

@media(max-width:760px){
  .chat-layout-v2{
    display:flex;
    flex-direction:column;
    min-height:calc(var(--visual-viewport-height,100dvh) - 195px);
    max-height:none;
  }
  .chat-layout-v2 .chat-list{
    display:flex;
    flex-direction:row;
    gap:7px;
    flex:none;
    width:100%;
    padding:7px 8px;
    overflow-x:auto;
    overflow-y:hidden;
    border-right:0;
    border-bottom:1px solid var(--line);
    scroll-snap-type:x proximity;
  }
  .chat-channel-group{
    display:flex;
    flex-direction:row;
    gap:6px;
    flex:none;
    margin:0;
  }
  .chat-channel-group>span{
    display:none;
  }
  .chat-layout-v2 .channel{
    grid-template-columns:30px minmax(0,1fr) auto;
    width:178px;
    min-height:48px;
    padding:6px 7px;
    flex:none;
    scroll-snap-align:start;
  }
  .channel-icon{
    width:30px;
    height:30px;
  }
  .channel-copy small{
    font-size:.62rem;
  }
  .chat-body.chat-v2{
    min-height:420px;
    flex:1;
  }
  .chat-v2 .chat-messages{
    min-height:300px;
    padding:12px;
  }
  .chat-message{
    max-width:88%;
  }
  .chat-composer{
    position:sticky;
    bottom:calc(var(--wt-mobile-nav-height) + var(--wt-safe-bottom));
    z-index:14;
  }
  html.keyboard-open .chat-composer{
    bottom:0;
  }
}

@media(min-width:820px) and (max-width:1180px) and (orientation:landscape){
  .chat-composer{
    bottom:0;
  }
}


/* WorshipTime 0.18.0 · Songs PRO */
.song-source-note{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin:0 0 14px;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface2);
  color:var(--muted);
  font-size:.76rem;
  line-height:1.45;
}
.song-source-note svg{
  width:17px;
  height:17px;
  flex:none;
  margin-top:1px;
}
.song-source-note.catalog{
  border-color:color-mix(in srgb,var(--blue) 32%,var(--line));
  background:color-mix(in srgb,var(--blue) 7%,var(--surface));
}
.song-source-note.catalog svg{
  color:var(--blue);
}
.song-source-note.legacy{
  border-color:color-mix(in srgb,var(--amber) 34%,var(--line));
  background:color-mix(in srgb,var(--amber) 7%,var(--surface));
}
.song-source-note.legacy svg{
  color:var(--amber);
}

.rehearsal-service-note{
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  gap:11px;
  align-items:start;
  margin:14px 0;
  padding:12px 13px;
  border:1px solid color-mix(in srgb,var(--amber) 34%,var(--line));
  border-radius:13px;
  background:color-mix(in srgb,var(--amber) 7%,var(--surface));
}
.rehearsal-service-note>svg{
  width:18px;
  height:18px;
  color:var(--amber);
  margin:2px auto 0;
}
.rehearsal-service-note strong{
  display:block;
  font-size:.8rem;
}
.rehearsal-service-note p{
  margin-top:4px;
  color:var(--text);
  font-size:.78rem;
  line-height:1.45;
}

.songrow .favorited{
  color:#ff6680;
}
.songrow .tag{
  min-width:38px;
  justify-content:center;
}
.song-editor-modal .pdf-upload-box{
  border-color:color-mix(in srgb,var(--blue) 20%,var(--line));
}
.song-editor-modal .current-pdf{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:8px;
  padding:5px 8px;
  border-radius:8px;
  background:color-mix(in srgb,var(--blue) 8%,var(--surface2));
  color:var(--blue);
}
.song-editor-modal .current-pdf svg{
  width:15px;
  height:15px;
}

.rehearsal-current{
  border-radius:18px;
}
.rehearsal-heading{
  position:sticky;
  top:0;
  z-index:5;
  padding:12px 0;
  background:linear-gradient(to bottom,var(--bg) 78%,transparent);
}
.rehearsal-lyrics .song-section-card{
  scroll-margin-top:90px;
}

:root[data-theme="light"] .song-source-note.catalog{
  background:#f1f9ff;
}
:root[data-theme="light"] .song-source-note.legacy,
:root[data-theme="light"] .rehearsal-service-note{
  background:#fff9e8;
}

@media(max-width:600px){
  .rehearsal-current{
    padding-bottom:10px;
  }
  .rehearsal-heading{
    gap:8px;
    align-items:flex-start;
  }
  .rehearsal-heading h2{
    font-size:1.2rem;
  }
  .rehearsal-heading .row{
    width:100%;
  }
  .rehearsal-heading .btn{
    flex:1;
  }
  .rehearsal-lyrics .song-section-card{
    padding:14px;
  }
  .rehearsal-lyrics .lyric-line{
    font-size:1rem;
    line-height:1.7;
  }
  .rehearsal-lyrics .inline-chord{
    font-size:.74rem;
  }
}


/* WorshipTime 0.19.0 · weekly birthdays on Home */
.home-birthdays-card{
  padding:0;
  overflow:hidden;
}
.home-birthdays-head{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:11px;
  align-items:center;
  padding:16px 17px 13px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(135deg,color-mix(in srgb,#2fa8ff 10%,var(--surface)),var(--surface));
}
.home-birthdays-head>span{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#153f5d;
  color:#8bd5ff;
}
.home-birthdays-head>span svg{
  width:20px;
  height:20px;
}
.home-birthdays-head small{
  display:block;
  color:#65c7ff;
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.10em;
}
.home-birthdays-head h2{
  margin-top:2px;
  font-size:1rem;
}
.home-birthdays-head>b{
  min-width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--surface2);
  color:var(--muted);
  font-size:.72rem;
}
.home-birthday-list{
  padding:5px 16px 2px;
}
.home-birthday-row{
  width:100%;
  display:grid;
  grid-template-columns:36px minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  padding:9px 0;
  text-align:left;
  border-bottom:1px solid var(--line);
}
.home-birthday-row:last-child{
  border-bottom:0;
}
.home-birthday-row .avatar{
  width:36px;
  height:36px;
  font-size:.65rem;
}
.home-birthday-row strong,
.home-birthday-row small{
  display:block;
}
.home-birthday-row strong{
  font-size:.81rem;
}
.home-birthday-row small{
  margin-top:2px;
  color:var(--muted);
  font-size:.68rem;
}
.home-birthday-row .birthday-status{
  font-style:normal;
}
.home-birthday-empty{
  padding:18px 17px;
  color:var(--muted);
  font-size:.77rem;
}
.home-birthdays-more{
  margin:4px 16px 14px;
}
:root[data-theme="light"] .home-birthdays-head{
  background:linear-gradient(135deg,#eef9ff,#fff);
}
@media(max-width:760px){
  .home-birthdays-card{
    margin-top:14px;
  }
  .home-birthday-row{
    grid-template-columns:34px minmax(0,1fr) auto;
  }
}


/* WorshipTime 0.19.0 · operational dashboard */
.dashboard-metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:18px;
}
.dashboard-metric{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:11px;
  align-items:center;
  min-height:86px;
  padding:14px 15px;
  border:1px solid var(--line);
  border-radius:17px;
  background:var(--surface);
  text-align:left;
}
.dashboard-metric-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--surface2);
}
.dashboard-metric-icon svg{width:20px;height:20px}
.dashboard-metric b,.dashboard-metric small{display:block}
.dashboard-metric b{font-size:1.45rem;line-height:1}
.dashboard-metric small{margin-top:5px;color:var(--muted);font-size:.72rem}
.dashboard-metric.tone-blue .dashboard-metric-icon{color:var(--blue);background:color-mix(in srgb,var(--blue) 11%,var(--surface2))}
.dashboard-metric.tone-amber .dashboard-metric-icon{color:var(--amber);background:color-mix(in srgb,var(--amber) 10%,var(--surface2))}
.dashboard-metric.tone-violet .dashboard-metric-icon{color:#b7a5ff;background:rgba(130,100,255,.12)}
.dashboard-metric.tone-red .dashboard-metric-icon{color:#ff929d;background:rgba(255,82,100,.10)}
.dashboard-metric.tone-green .dashboard-metric-icon{color:var(--green);background:color-mix(in srgb,var(--green) 10%,var(--surface2))}

.dashboard-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:22px;
}
.dashboard-side{
  display:grid;
  align-content:start;
  gap:16px;
}
.dashboard-next{
  margin-bottom:20px;
}
.dashboard-next-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
}
.dashboard-next-head h2{margin-top:5px;font-size:1.35rem}
.dashboard-next-head p{margin-top:5px;color:var(--muted);font-size:.8rem}
.dashboard-days{
  padding:6px 9px;
  border-radius:999px;
  background:color-mix(in srgb,var(--blue) 10%,var(--surface2));
  color:var(--blue);
  font-size:.69rem;
  font-weight:800;
  white-space:nowrap;
}
.dashboard-coverage{margin-top:18px}
.dashboard-coverage>div:first-child{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:.76rem;
}
.dashboard-coverage strong{font-size:.82rem}
.dashboard-progress{
  height:8px;
  margin:8px 0 6px;
  overflow:hidden;
  border-radius:999px;
  background:var(--surface2);
}
.dashboard-progress i{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#2fa8ff,#53d2a7);
}
.dashboard-coverage small{color:var(--muted);font-size:.69rem}
.dashboard-next-actions{margin-top:15px}

.dashboard-panel{padding:17px}
.dashboard-panel-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:10px;
}
.dashboard-panel-head h2{margin-top:3px;font-size:1rem}
.dashboard-panel-count{
  min-width:28px;
  height:28px;
  display:grid;
  place-items:center;
  padding:0 7px;
  border-radius:999px;
  background:var(--surface2);
  color:var(--muted);
  font-size:.7rem;
  font-weight:800;
}
.dashboard-attention-list{display:grid}
.dashboard-attention-row{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 18px;
  gap:10px;
  align-items:center;
  width:100%;
  padding:10px 0;
  border-top:1px solid var(--line);
  text-align:left;
}
.dashboard-attention-row:first-child{border-top:0}
.dashboard-attention-row>svg{width:17px;height:17px;color:var(--muted)}
.dashboard-attention-date{
  width:40px;
  height:44px;
  display:grid;
  place-items:center;
  align-content:center;
  border-radius:10px;
  background:var(--surface2);
}
.dashboard-attention-date b{font-size:1rem;line-height:1}
.dashboard-attention-date small{margin-top:3px;color:var(--muted);font-size:.58rem;text-transform:uppercase}
.dashboard-attention-copy strong,.dashboard-attention-copy small,.dashboard-attention-copy em{display:block}
.dashboard-attention-copy strong{font-size:.79rem}
.dashboard-attention-copy small{margin-top:2px;color:var(--muted);font-size:.66rem}
.dashboard-attention-copy em{margin-top:4px;color:var(--amber);font-size:.64rem;font-style:normal}
.dashboard-attention-row.severe .dashboard-attention-copy em{color:#ff909a}
.dashboard-all-good{
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:12px 0 2px;
}
.dashboard-all-good>svg{width:20px;height:20px;color:var(--green);margin:2px auto 0}
.dashboard-all-good strong{font-size:.8rem}
.dashboard-all-good p{margin-top:3px;color:var(--muted);font-size:.7rem;line-height:1.4}

.dashboard-quick{display:grid;gap:7px}
.dashboard-quick button{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:9px;
  align-items:center;
  min-height:52px;
  padding:8px 9px;
  border-radius:11px;
  text-align:left;
}
.dashboard-quick button:hover{background:var(--surface2)}
.dashboard-quick button>svg{width:18px;height:18px;color:var(--blue);margin:auto}
.dashboard-quick strong,.dashboard-quick small{display:block}
.dashboard-quick strong{font-size:.78rem}
.dashboard-quick small{margin-top:2px;color:var(--muted);font-size:.65rem}

:root[data-theme="light"] .dashboard-metric,
:root[data-theme="light"] .dashboard-next,
:root[data-theme="light"] .dashboard-panel{
  background:#fff;
}

@media(max-width:1100px){
  .dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-grid{grid-template-columns:1fr}
  .dashboard-side{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-side .home-birthdays-card{grid-column:1/-1}
}
@media(max-width:760px){
  .dashboard-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
  }
  .dashboard-metric{
    grid-template-columns:36px minmax(0,1fr);
    min-height:72px;
    padding:11px;
    gap:8px;
  }
  .dashboard-metric-icon{width:35px;height:35px}
  .dashboard-metric-icon svg{width:17px;height:17px}
  .dashboard-metric b{font-size:1.18rem}
  .dashboard-metric small{font-size:.63rem}
  .dashboard-side{grid-template-columns:1fr}
  .dashboard-side .home-birthdays-card{grid-column:auto}
  .dashboard-next{padding:17px}
  .dashboard-next-head{flex-direction:column}
  .dashboard-days{align-self:flex-start}
  .dashboard-next-actions .btn{flex:1}
}


/* WorshipTime 0.21.0 · ownership + install */
.organization-settings-card,
.install-app-card{
  position:relative;
}
.organization-settings-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.organization-settings-head h2{
  margin-top:3px;
}
.owner-badge{
  padding:5px 8px;
  border-radius:999px;
  background:color-mix(in srgb,var(--green) 12%,var(--surface2));
  color:var(--green);
  font-size:.65rem;
  font-weight:800;
  white-space:nowrap;
}
.organization-setting-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px 0;
  border-top:1px solid var(--line);
  font-size:.78rem;
}
.organization-setting-row span{
  color:var(--muted);
}
.organization-setting-row strong{
  text-align:right;
}
.organization-setting-actions{
  margin-top:13px;
}
.organization-owner-hint{
  margin-top:12px;
}
.install-app-card{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  gap:14px;
  align-items:start;
}
.install-app-icon{
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:color-mix(in srgb,var(--blue) 12%,var(--surface2));
  color:var(--blue);
}
.install-app-icon svg{
  width:24px;
  height:24px;
}
.install-app-card p{
  margin:7px 0 13px;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.5;
}
.install-status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border-radius:999px;
  background:color-mix(in srgb,var(--green) 12%,var(--surface2));
  color:var(--green);
  font-size:.72rem;
  font-weight:800;
}
.install-steps{
  display:grid;
  gap:11px;
}
.install-steps>div{
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:11px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface2);
}
.install-steps b{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--blue);
  color:#062338;
  font-size:.72rem;
}
.install-steps span{
  font-size:.8rem;
  line-height:1.5;
}
.ownership-warning{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:10px;
  margin-bottom:16px;
  padding:12px;
  border:1px solid color-mix(in srgb,var(--amber) 35%,var(--line));
  border-radius:13px;
  background:color-mix(in srgb,var(--amber) 7%,var(--surface));
}
.ownership-warning>svg{
  width:20px;
  height:20px;
  margin:2px auto 0;
  color:var(--amber);
}
.ownership-warning strong{
  display:block;
  font-size:.8rem;
}
.ownership-warning p{
  margin-top:4px;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.45;
}
:root[data-theme="light"] .ownership-warning{
  background:#fff9e8;
}
@media(max-width:600px){
  .install-app-card{
    grid-template-columns:44px minmax(0,1fr);
  }
  .install-app-icon{
    width:42px;
    height:42px;
  }
  .organization-setting-actions .btn{
    flex:1;
  }
}

.organization-leave-zone{
  margin-top:16px;
  padding-top:14px;
}
.organization-leave-zone>strong{
  display:block;
  font-size:.78rem;
}
.organization-leave-zone>p{
  margin:5px 0 11px;
  color:var(--muted);
  font-size:.7rem;
  line-height:1.45;
}

.account-demo-badge{
  display:inline-flex;
  align-items:center;
  margin:0 0 13px;
  padding:6px 9px;
  border-radius:999px;
  background:color-mix(in srgb,var(--blue) 11%,var(--surface2));
  color:var(--blue);
  font-size:.68rem;
  font-weight:800;
}

/* WorshipTime 0.22.7 · QA polish */
.profile>span{display:flex;min-width:0;flex-direction:column;align-items:flex-start;line-height:1.15}
.profile>span strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile>span small{display:block;margin-top:4px;line-height:1.2}
.team-color-grid{display:grid;grid-template-columns:repeat(10,minmax(30px,1fr));gap:8px;margin-top:9px}
.team-color-choice{display:grid;place-items:center;cursor:pointer}
.team-color-choice input{position:absolute;opacity:0;pointer-events:none}
.team-color-choice span{width:32px;height:32px;border-radius:50%;border:3px solid transparent;box-shadow:0 0 0 1px var(--line)}
.team-color-choice input:checked+span{border-color:var(--text);box-shadow:0 0 0 2px var(--accent)}
.program-drag-handle{touch-action:none;cursor:grab}
.program-drag-handle:active{cursor:grabbing}
@media(max-width:620px){.team-color-grid{grid-template-columns:repeat(5,1fr)}}
@media(min-width:761px){.programrow{cursor:grab}.programrow:active{cursor:grabbing}.programrow .program-content,.programrow .program-controls{cursor:default}}

/* WorshipTime 0.22.7 · impresión limpia */
@page{size:auto;margin:0}
@media print{
  html,body{height:auto!important;overflow:visible!important;background:#fff!important}
  body{margin:0!important;color:#111!important;-webkit-print-color-adjust:economy;print-color-adjust:economy}
  #wtCloudStatus,.sidebar,.mobile-nav,.topactions,.toolbar,.tabs,.back,.detail-summary,.program-drag-handle,.program-controls,.no-print,.toast,.modal{display:none!important}
  .main{width:auto!important;height:auto!important;max-height:none!important;margin:0!important;padding:12mm 14mm!important;overflow:visible!important}
  .topbar{display:block!important;margin:0 0 7mm!important}
  .topbar .eyebrow{margin-bottom:2mm!important;color:#444!important;font-size:9pt!important}
  .topbar h1{color:#111!important;font-size:21pt!important;line-height:1.15!important}
  .service-layout,.program{display:block!important}
  .programrow,.programrow:has(.program-drag-handle){display:grid!important;grid-template-columns:58px minmax(0,1fr)!important;gap:0!important;min-height:0!important;margin:0!important;padding:8px 0!important;border:0!important;border-bottom:1px solid #c8c8c8!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;break-inside:avoid!important;page-break-inside:avoid!important;overflow:visible!important}
  .programrow::before,.programrow::after{display:none!important;content:none!important}
  .programrow.type-header{background:#eee!important}
  .program-time,.programrow:has(.program-drag-handle) .program-time{display:block!important;grid-column:1!important;grid-row:1!important;width:auto!important;margin:0!important;padding:2px 10px 2px 0!important;border-right:1px solid #d5d5d5!important;color:#333!important;font-size:9pt!important;line-height:1.35!important;text-align:left!important}
  .program-content,.programrow:has(.program-drag-handle) .program-content{display:block!important;grid-column:2!important;grid-row:1!important;width:auto!important;min-width:0!important;padding:2px 0 2px 12px!important;color:#111!important}
  .program-title,.programrow.type-header .program-title{color:#111!important;font-size:10.5pt!important;line-height:1.3!important}
  .program-note,.program-content small{color:#444!important;font-size:8.5pt!important;white-space:normal!important}
  .program-song-meta{margin:0 0 3px!important}
  .program-chip{min-height:0!important;padding:2px 6px!important;border:1px solid #bbb!important;background:#fff!important;color:#333!important;font-size:7.5pt!important}
  .program-total{margin-top:5mm!important;color:#111!important}
}
.btn.copying{opacity:.75;pointer-events:none}.btn.copied{background:#24543b!important;color:#bff0d0!important;border-color:#3d7a55!important}

.payment-methods-card h3{margin:18px 0 8px;font-size:1rem}
.payment-plan-list{display:grid;gap:9px;margin:14px 0 22px}
.payment-plan{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:12px 13px;border:1px solid var(--line);border-radius:15px;background:var(--surface2)}
.payment-plan strong,.payment-plan small{display:block}
.payment-plan small{color:var(--muted);margin-top:3px}
.payment-plan-price{text-align:right;white-space:nowrap}
.payment-rows{display:grid;gap:9px;margin-top:13px}
.payment-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 13px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}
.payment-row>div:first-child{min-width:0}
.payment-row strong,.payment-row span,.payment-row small{display:block}
.payment-row span,.payment-row small{color:var(--muted);overflow-wrap:anywhere}
.payment-row span{margin-top:3px}
.payment-row small{margin-top:2px;font-size:.76rem}
.payment-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.payment-row-actions .btn{white-space:nowrap}
.payment-support-row{margin-top:13px}
.payment-note{margin-top:14px!important}
@media(max-width:520px){.payment-row{grid-template-columns:1fr}.payment-row-actions{justify-content:flex-start}.payment-row-actions .btn{flex:1}.payment-row-actions a{flex:1;justify-content:center}}


/* Ajuste específico para iPad horizontal */
@media (orientation: landscape) and (pointer: coarse) and (max-width: 1400px){
  .sidebar{
    display:flex;
    width:220px;
    padding:22px 14px;
    overflow-y:auto;
  }
  .main{
    margin-left:220px;
    max-width:none;
    min-width:0;
    height:100dvh;
    max-height:100dvh;
    overflow-y:auto;
    overflow-x:hidden;
    padding:24px 30px 40px;
  }
  .mobile-nav{display:none}
  .nav{min-height:0;overflow-y:auto}
  .main-grid{grid-template-columns:minmax(0,1fr) 280px;gap:20px}
  .people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settings-grid{grid-template-columns:1fr 1fr}
  .topbar{min-width:0}
}


/* Compatibilidad iPad horizontal */
@media (orientation: landscape) and (hover: none) and (max-width: 1600px){
  .sidebar{display:flex;width:220px;padding:22px 14px;overflow-y:auto}
  .main{margin-left:220px;max-width:none;min-width:0;height:100dvh;max-height:100dvh;overflow-y:auto;overflow-x:hidden;padding:24px 30px 40px}
  .mobile-nav{display:none}
  .nav{min-height:0;overflow-y:auto}
  .main-grid{grid-template-columns:minmax(0,1fr) 280px;gap:20px}
  .people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settings-grid{grid-template-columns:1fr 1fr}
}


/* Corrección final iPad horizontal: reemplaza la barra vertical */
@media (min-width: 820px) and (max-width: 1600px) and (orientation: landscape){
  .sidebar{
    display:flex!important;
    position:fixed!important;
    left:0!important;
    top:0!important;
    bottom:0!important;
    width:220px!important;
    height:100dvh!important;
    overflow-y:auto!important;
    padding:22px 14px!important;
    z-index:40!important;
  }
  .mobile-nav{
    display:none!important;
  }
  .main{
    margin-left:220px!important;
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    height:100dvh!important;
    max-height:100dvh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:24px 30px 40px!important;
  }
  .main-grid{
    grid-template-columns:minmax(0,1fr) 280px;
    gap:20px;
  }
}


/* Botón cerrar sesión */
button[data-cloud-logout]{
  border-color:#b94f61!important;
  background:#3b2028!important;
  color:#ffb5bf!important;
  font-weight:750!important;
}
button[data-cloud-logout]:hover{
  background:#572631!important;
  border-color:#e46b7c!important;
  color:#fff!important;
}
:root[data-theme="light"] button[data-cloud-logout]{
  border-color:#c94b5d!important;
  background:#fff0f2!important;
  color:#a52f42!important;
}
:root[data-theme="light"] button[data-cloud-logout]:hover{
  background:#ffe1e6!important;
  color:#842335!important;
}

/* Ensayar y Editar canción: pestañas de trabajo, misma estética WorshipTime */
.song-editor-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.rehearsal-tabs{margin-top:22px;margin-bottom:18px;position:sticky;top:0;z-index:6}
.rehearsal-panel{min-height:180px}
.rehearsal-files{display:grid;gap:14px}
.rehearsal-tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.rehearsal-tool-card{padding:18px}
.tool-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}
.tool-card-head>svg{color:var(--blue);flex:none}
.tool-card-head h3{margin:0}
.metronome-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.metronome-controls .field{margin:0;max-width:110px}
.metronome-controls .btn{min-height:46px}
.metronome-status{margin:14px 0 0;color:var(--blue);font-variant-numeric:tabular-nums}
@media(max-width:600px){.song-editor-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.rehearsal-tools-grid{grid-template-columns:1fr}.rehearsal-tabs{top:-14px}}

/* Corrección iPhone: evitar desbordamiento horizontal en Ensayar */
.rehearsal-workspace,.rehearsal-current,.rehearsal-panel,.rehearsal-media,.media-stack,.chart-card{min-width:0;max-width:100%;box-sizing:border-box}
.rehearsal-tabs{width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow:hidden}
.rehearsal-tabs button{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:normal;padding-left:6px;padding-right:6px}
.rehearsal-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;min-width:0}
.rehearsal-panel-head h3{margin:0}
.rehearsal-panel-head>div:first-child{min-width:0}
.chart{max-width:100%;overflow-x:auto;overflow-y:hidden;white-space:pre-wrap;overflow-wrap:anywhere}
.rehearsal-media .embed{display:block;width:100%;max-width:100%;min-width:0}
@media(max-width:600px){
  .rehearsal-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:4px}
  .rehearsal-panel-head{align-items:flex-start;flex-direction:column}
  .rehearsal-panel-head .row{width:100%}
  .rehearsal-panel-head .btn{flex:1;min-width:0}
  .song-section-card,.chart-card{overflow:hidden}
  .chart{font-size:.91rem;line-height:1.6}
}

.pdf-extract-modal{width:min(760px,calc(100% - 28px))}
.pdf-extract-text{min-height:330px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.55;white-space:pre-wrap}
.rehearsal-file-actions{justify-content:flex-end;margin-bottom:2px}
@media(max-width:600px){.pdf-extract-modal{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0}.pdf-extract-modal .modal-content{height:calc(100dvh - 76px);max-height:none}.pdf-extract-text{min-height:48vh}}

/* iPhone: las tarjetas respetan el ancho visible y el cifrado no ensancha la pantalla */
@media(max-width:600px){
  .main,
  .main> *,
  .rehearsal-workspace,
  .rehearsal-current,
  .rehearsal-panel,
  .rehearsal-tabs,
  .rehearsal-files,
  .rehearsal-lyrics,
  .chart-card,
  .song-section-card,
  .rehearsal-media,
  .rehearsal-media .embed,
  .media-stack{
    width:100%;
    max-width:100%;
    min-width:0!important;
    box-sizing:border-box;
  }
  .rehearsal-tabs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    overflow:hidden;
  }
  .rehearsal-tabs button{
    width:100%;
    min-width:0!important;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    overflow-wrap:anywhere;
    word-break:break-word;
    white-space:normal;
  }
  .rehearsal-panel-head,
  .rehearsal-panel-head>div,
  .rehearsal-panel-head .row{
    width:100%;
    max-width:100%;
    min-width:0!important;
  }
  .rehearsal-panel-head .row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .rehearsal-panel-head .btn{
    width:100%;
    min-width:0!important;
    white-space:normal;
  }
  .chart{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0!important;
    overflow-x:auto;
    overflow-y:hidden;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  .song-section-card,
  .chart-card{
    padding-left:16px;
    padding-right:16px;
  }
}
