:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#253d35;background:#f7f8f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid #dce3db;background:#fff;color:#29483c;border-radius:9px;padding:11px 16px;font-weight:600}button:hover{background:#eaf0e8}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #a77825;outline-offset:3px}input,textarea,select{width:100%;border:1px solid #cdd8d0;border-radius:8px;padding:12px;color:#263d33;background:#fff}label{display:block;font-size:13px;font-weight:600}label input,label select,label textarea{margin-top:8px}input:focus,textarea:focus,select:focus{outline:2px solid #6f9377;outline-offset:2px}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;padding:39px 26px;background:#fff;border-right:1px solid #e3e8df;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;color:#1b3d32;text-decoration:none;font-size:26px;font-weight:750;letter-spacing:-1px}.mark{display:block;flex-shrink:0;object-fit:contain;border-radius:12px;width:48px;height:48px}.church{display:block;font-size:10px;letter-spacing:5px;margin-top:3px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.7px;color:#708377}.sidebar>.eyebrow{margin-top:56px;font-size:9px}nav{display:grid;gap:9px;margin-top:10px}nav button{text-align:left;border:0;background:transparent;font-size:14px;padding:15px 12px}nav button.active{background:#eaf0e8;color:#234d3c}.aside-note{margin-top:auto;font-family:Georgia,serif;font-size:23px;line-height:1.5;color:#607568}.aside-note span{display:block;font:11px system-ui;margin-top:14px;color:#879286}main{margin-left:238px;padding:0 54px 30px;max-width:1500px}header{min-height:91px;border-bottom:1px solid #e2e6df;display:flex;justify-content:space-between;align-items:center;color:#7b857b;font-size:12px}.badge{background:#edf0e8;padding:8px 12px;border-radius:30px;font-size:11px;color:#52705c}.intro{margin:42px 0 30px}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:46px;letter-spacing:-1.6px;line-height:1.14;margin:15px 0}h2{font-size:18px;font-weight:650}.muted{color:#758176;font-size:14px;line-height:1.6}.celebration{background:#1d4437;color:#fff;border-radius:17px;padding:30px 34px;display:flex;justify-content:space-between;gap:24px;box-shadow:0 14px 30px #183a3010}.celebration .eyebrow{color:#b9cbb5}.celebration>div:first-child{flex:1}.celebration>div:last-child{text-align:right;min-width:150px}.celebration p{font-size:12px;color:#c1cebe}.celebration input{background:transparent;color:white;border-color:#577264}.celebration label{color:#c1cebe;margin-top:15px}.celebration input[type=date]{max-width:190px;color-scheme:dark}.title-label input{font-size:22px;max-width:540px}.count{font:48px Georgia,serif;color:#e6d6a9}.primary{background:#285440;color:white;border-color:#285440}.primary:hover{background:#193d2f}.light{background:#edf0dd;border:0;color:#294735}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:30px 0 15px}.actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.song-row{display:flex;align-items:center;gap:20px;padding:16px 18px;border-bottom:1px solid #e9ece5;background:white}.song-row:first-child{border-radius:12px 12px 0 0}.song-row:last-child{border-radius:0 0 12px 12px;border:0}.number{color:#9aa594;font:17px Georgia,serif}.song-title{flex:1;text-align:left;padding:3px 0;border:0;min-width:0}.song-title small{display:block;color:#7c897a;font-size:10px;font-weight:500;margin-bottom:6px;text-transform:uppercase;letter-spacing:1px}.song-title strong{font-weight:600;font-size:15px;overflow-wrap:anywhere}.key{display:inline-block;min-width:35px;text-align:center;background:#eef2e9;color:#557044;border-radius:7px;padding:7px;font-size:12px}.song-row .actions button{padding:7px 10px}.footnote{text-align:center;color:#8a9485;font-size:12px;margin:29px 0}.toolbar{display:flex;align-items:end;gap:16px;margin:26px 0}.search{flex:1}.song-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.song-card{background:#fff;border:1px solid #e2e8dd;padding:26px;border-radius:14px}.song-card h2{line-height:1.4}.song-card .actions{margin-top:24px}.empty{padding:30px;color:#74816f}#status{font-size:12px;color:#647357;margin-top:25px}dialog{border:1px solid #d6dfd1;border-radius:16px;padding:26px;max-width:600px;width:calc(100% - 30px);max-height:90vh}dialog::backdrop{background:#10271dc0}dialog .section-heading{margin-top:0}dialog label{margin-bottom:18px}.fields{display:flex;gap:16px}.fields>*{flex:1}#editor-error{color:#a33a25}.reader-heading{margin-top:28px}.reader-controls{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;background:#edf1e8;padding:14px;border-radius:10px}.reader-controls>div{display:flex;align-items:center;gap:12px}.reader-controls span{min-width:60px;text-align:center}.score{margin:28px 0;padding:34px;background:#fff;border:1px solid #e4e9df;border-radius:14px;line-height:1.6}.lyric-line{display:flex;flex-wrap:wrap;gap:0;margin-bottom:1em}.syllable{display:inline-flex;flex-direction:column;max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere}.syllable b{font-size:.8em;color:#427346;min-height:1.6em}.reader-nav{display:flex;justify-content:space-between;align-items:center;gap:10px}#back{margin-top:28px}.reader-heading h1{overflow-wrap:anywhere}@media(min-width:1500px){main{margin-left:auto;margin-right:auto;padding-left:260px}}@media(max-width:1000px){.sidebar{width:200px;padding:30px 18px}main{margin-left:200px;padding:0 26px 25px}h1{font-size:38px}.song-row{gap:12px}.celebration{padding:24px}.song-grid{grid-template-columns:1fr}}@media(max-width:650px){.sidebar{position:static;width:100%;padding:18px 20px;border-right:0;border-bottom:1px solid #e3e8df}.brand{font-size:23px}.mark{height:40px;width:38px}.sidebar>.eyebrow,.aside-note{display:none}nav{display:flex;margin-top:20px;gap:8px}nav button{flex:1;text-align:center;padding:12px 8px}main{margin:0;padding:0 18px 24px}header{min-height:60px;font-size:11px}.badge{font-size:9px;padding:7px}.intro{margin:28px 0 24px}h1{font-size:34px;letter-spacing:-1px}.celebration{flex-direction:column;gap:18px;padding:23px}.celebration>div:last-child{display:flex;align-items:center;gap:14px;text-align:left}.count{font-size:32px}.celebration p{flex:1}.celebration .light{padding:12px}.title-label input{font-size:19px}.section-heading{align-items:start;flex-wrap:wrap}.section-heading h2{margin:5px 0}.song-row{gap:10px;padding:16px 10px;flex-wrap:wrap}.song-title{flex-basis:60%}.song-row .actions{margin-left:auto}.toolbar{flex-wrap:wrap}.search{flex-basis:100%}.score{padding:20px 14px}.reader-controls{padding:10px}.reader-controls>div{gap:7px}.reader-controls button{padding:10px 12px}.reader-heading h1{font-size:32px}}
/* Expanded workspace */
.sidebar{overflow-y:auto}.sidebar>.eyebrow{margin-top:32px}nav{gap:3px}nav button{padding:12px}.aside-note{padding-top:35px}header label{min-width:170px}header select{padding:6px;margin-top:3px}header{gap:14px}.button{display:inline-block;text-decoration:none;border:1px solid #cdd8d0;border-radius:8px;padding:10px;color:#285440;font-weight:600}.check{display:flex;align-items:center;gap:8px;padding:12px}.check input{width:auto;margin:0}.filters{align-items:end;margin-bottom:18px}.notice{background:#edf1e6;padding:14px;border-radius:9px;font-size:13px;line-height:1.6}.danger{color:#9c3828;border-color:#d8b5a5}#modal-error{color:#a33a25}#modal form{display:grid;gap:12px}#modal{width:min(760px,calc(100% - 24px));max-width:760px}.preview{font-size:18px;padding:15px;margin:12px 0;max-height:250px;overflow:auto}.song-card>.section-heading{margin:0}.fields{flex-wrap:wrap}.fields>*{min-width:130px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:20px 0}.calendar>b{text-align:center;font-size:12px;padding:10px}.calendar-day{min-height:65px;padding:9px}.calendar-day small{display:block;font-size:9px;margin-top:8px}.calendar-day.selected{background:#285440;color:white}.calendar-day.today{border:2px solid #a88843}.personal-text{white-space:pre-wrap;font-size:22px;line-height:1.7}.reader-tools{margin:16px 0;padding:15px;background:#edf1e8;border-radius:10px}.reader-tools summary{cursor:pointer}.score{column-count:var(--columns,1);column-gap:32px}.lyric-line{break-inside:avoid;display:block}.syllable{display:inline-flex;vertical-align:bottom;white-space:pre-wrap}.pdf-score{column-count:1}.pdf-score iframe{width:100%;height:70vh;border:0}.reader-nav{position:sticky;bottom:0;padding:14px;background:#f7f8f4;border-top:1px solid #dce3d6;z-index:2}#reveal{display:none}.immersive .sidebar,.immersive header,.immersive .reader-heading,.immersive .reader-tools,.immersive .reader-controls,.immersive #back{visibility:hidden}.immersive .reader-nav{visibility:hidden}.immersive #reveal{display:block;position:fixed;bottom:12px;right:12px;z-index:3}.dark{background:#111b16;color:#e1ebdf}.dark main,.dark .reader-nav{background:#111b16}.dark .sidebar,.dark .song-card,.dark .song-row,.dark .score,.dark dialog{background:#1d2b22;color:#e1ebdf;border-color:#344238}.dark button,.dark input,.dark select,.dark textarea{background:#263b2d;color:#e1ebdf;border-color:#52624e}.dark .brand{color:#e1ebdf}.dark .notice,.dark .reader-controls,.dark .reader-tools{background:#26382b}.dark .muted,.dark .eyebrow,.dark .song-title small{color:#b3c3ad}.dark .syllable b{color:#a9d99b}.dark .primary{background:#426344}.dark .calendar-day.selected{background:#557348}.dark .button{color:#c0dbb7}.dark .key{color:#d2e6c6;background:#354a36}.dark .badge{background:#344635;color:#c5d8ba}
@media(max-width:650px){nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}nav button{font-size:11px;min-height:40px;padding:8px 3px}.sidebar{padding:16px}header label{min-width:120px;max-width:50%}.badge{max-width:48%;line-height:1.5}.calendar{gap:3px}.calendar-day{min-height:56px;padding:6px 2px}.calendar-day small{font-size:8px}.score{column-count:1}.reader-nav button{font-size:12px;padding:11px 9px}.immersive main{margin:0}.fields>*{flex-basis:140px}.toolbar{gap:9px}.toolbar button{font-size:12px}}
@media print{body>*{display:none!important}body>dialog[open]{display:block!important;position:static;max-width:none;width:100%;max-height:none;border:0;padding:0;overflow:visible;background:white!important;color:black!important}dialog::backdrop{display:none}dialog .section-heading,dialog button,#modal-error{display:none!important}.print-song{break-before:page}.print-content>h1{font-size:26px}.print-song:first-of-type{break-before:auto}.lyric-line{break-inside:avoid}.syllable b{color:black}.print-content{font-size:16px}}

.liturgical-text{white-space:pre-wrap;line-height:1.8;font-size:clamp(17px,2vw,22px);overflow-wrap:anywhere}.liturgical-reading{margin:24px 0;padding-bottom:20px;border-bottom:1px solid #cdd8d0}#liturgical-content details{margin:12px 0}#liturgical-content summary{cursor:pointer;font-weight:650;padding:8px 0}#liturgical-content .toolbar{align-items:end}#liturgical-content [name=lit-date]{min-width:155px}#liturgical-content a{overflow-wrap:anywhere}#lit-catalog{margin-top:20px}

/* Cifras: cada acorde fica sobre a palavra a que pertence, com quebra natural. */
.score .lyric-line{display:block;margin:0 0 1.05em;line-height:1.2;overflow-wrap:normal}
.score .chord-run{display:inline-flex;flex-direction:column;vertical-align:bottom;white-space:pre;max-width:100%;min-width:0}
.score .chord-run .chord{display:block;min-height:1.35em;color:#427346;font-size:.76em;font-weight:750;line-height:1.2;white-space:pre}
.score .chord-run .lyric{display:block;line-height:1.35;white-space:pre-wrap;overflow-wrap:normal}
.score .lyric-only{white-space:pre-wrap;line-height:1.35}
/* Leitor inspirado no CatoliChord: palco escuro, acordes azuis e letra verde. */
body.reading main{background:#101713;color:#dce9df;min-height:100vh}
body.reading .reader-heading .muted,body.reading .reader-heading .eyebrow{color:#9eb2a3}
body.reading .reader-controls,body.reading .reader-tools{background:#1c2a21;border-color:#34483a;color:#dce9df}
body.reading .reader-controls button,body.reading .reader-tools button{background:#273a2d;color:#dce9df;border-color:#49604d}
body.reading .score{background:#090e0b;border-color:#30483a;color:#b9d5bd;border-radius:8px;box-shadow:0 12px 30px #0008}
body.reading .score .chord-run .chord{color:#4ea5f5;font-weight:800}
body.reading .score .chord-run .lyric{color:#b9d5bd}
body.reading .reader-nav{background:#111b15;color:#dce9df;border-color:#34483a}
