:root{--bg:#f7f6f1;--paper:#fffefa;--ink:#1d1d1f;--muted:#636366;--action:#1d1d1f;--accent:#d01d51;--line:#d0d0d7;--tint:#e0e0e5;--rdg:#2463b7;--shadow:0 10px 35px #00000009;--lyrics-size:24px;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}body.night{--bg:#000000;--paper:#171719;--ink:#f5f5f7;--muted:#b1b1b8;--action:#ffffff;--accent:#ff8da5;--line:#2c2c30;--tint:#25282a;--shadow:none;color-scheme:dark}button,input,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button{color:inherit}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #007aff;outline-offset:4px}button{border:0;background:none}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icons{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}.skip{position:fixed;top:-100px;z-index:100;background:var(--action);color:var(--paper);padding:15px}.skip:focus{top:0}.sidebar{position:fixed;inset:0 auto 0 0;width:256px;padding:38px 22px 25px;background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:12px;font-family:Georgia,serif;font-size:29px;line-height:1}.brand-icon{display:grid;place-items:center;width:45px;height:49px;background:#1d1d1f;color:#f5eddd;border-radius:12px 12px 3px 12px}.brand-icon svg{width:27px;height:27px}.brand-sub{display:block;font:9px/1 Arial,sans-serif;letter-spacing:3px;margin-top:7px;color:var(--muted)}.nav-label{font-size:10px;letter-spacing:1.7px;color:var(--muted);margin:56px 12px 16px}.nav-item{display:flex;align-items:center;gap:12px;min-height:48px;border-radius:9px;padding:12px;margin:3px 0;text-align:left;font-size:13px;width:100%}.nav-item:hover{background:var(--bg)}.nav-item.active{background:var(--tint);font-weight:700;color:var(--action)}.count{margin-left:auto;font-size:11px;opacity:.65;font-variant-numeric:tabular-nums}.nav-item svg{width:18px;height:18px}.collection-dot{width:7px;height:7px;border-radius:50%;background:#ff2a5f;margin:0 6px}.rdg-dot{background:var(--rdg)}.nav-separator{height:1px;background:var(--line);margin:22px 12px}.sidebar-bottom{margin-top:auto;padding:20px 10px 0}.sidebar-bottom p{font:italic 20px/1.6 Georgia,serif;color:var(--muted);margin-bottom:28px}.quiet{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:7px 0;font-size:13px;color:var(--muted)}.quiet:hover{color:var(--ink)}.offline-note:before{content:'';display:inline-block;background:#007aff;width:5px;height:5px;border-radius:50%;margin-right:7px}main{margin-left:256px;outline:none}.library{max-width:1150px;margin:auto;padding:31px 58px 30px}.topline{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:1.7px;color:var(--muted);min-height:32px}.topline .quiet{letter-spacing:0;font-size:11px}.topline svg{width:16px;height:16px}.intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:49px 0 35px}.eyebrow{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:1.8px;line-height:1.6}.intro h1{font:normal clamp(40px,4.4vw,62px)/1.13 Georgia,serif;letter-spacing:-1.7px;margin:18px 0}.intro h1 em{font-weight:400;color:var(--action)}.intro-copy{font-size:14px;line-height:1.8;color:var(--muted);margin:20px 0 0}.intro-mark{border:1px solid var(--line);border-radius:50% 50% 8px 8px;width:175px;min-width:175px;height:205px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--paper),var(--tint));text-align:center;color:var(--action);gap:16px;transform:rotate(5deg);margin-right:12px}.intro-mark svg{width:55px;height:55px;stroke-width:1}.intro-mark span{font:20px/1.5 Georgia,serif}.intro-mark small{font:10px Arial,sans-serif;color:var(--muted)}.search-box{display:flex;align-items:center;gap:15px;background:var(--paper);border:1px solid #b9b9c1;box-shadow:var(--shadow);padding:0 20px;border-radius:12px;min-height:66px}.search-box>svg{color:var(--action)}.search-box input{font:16px Arial,sans-serif;color:var(--ink);width:100%;min-width:0;border:0;background:transparent;padding:22px 0;outline:0}.search-box:focus-within{border-color:var(--action);box-shadow:0 0 0 3px var(--tint)}.search-box input::placeholder{color:var(--muted)}.search-box input::-webkit-search-cancel-button{display:none}.search-box button{display:grid;place-items:center;min-width:35px;min-height:38px}.search-box kbd{border:1px solid var(--line);border-radius:5px;padding:3px 7px;color:var(--muted);font-size:13px}.search-help{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted);margin:11px 3px 28px}.collection-chips{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:35px}.chip{padding:10px 15px;border:1px solid var(--line);background:var(--paper);border-radius:30px;font-size:12px;display:flex;align-items:center;gap:10px;min-height:42px}.chip.active{background:var(--action);border-color:var(--action);color:var(--paper)}.night .chip.active{color:#000000}.chip span{opacity:.7;font-size:10px}.index-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px}.index-toolbar h2{font:26px Georgia,serif;font-weight:400;margin:0}.sort-control{display:flex;gap:4px;background:var(--tint);padding:4px;border-radius:8px}.sort-control button{font-size:11px;padding:9px 12px;min-height:34px;border-radius:5px;color:var(--muted)}.sort-control button.selected{background:var(--paper);box-shadow:0 1px 5px #0000000a;color:var(--ink)}.result-meta{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px;margin:11px 0 7px;min-height:30px}.result-meta p{margin:0}.result-meta .quiet{font-size:11px}.song-list{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.song-card{position:relative;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);min-width:0;min-height:96px;padding:15px 0}.song-link{display:flex;align-items:center;gap:14px;flex:1;min-width:0;align-self:stretch}.song-link:hover .song-title{text-decoration:underline;text-underline-offset:4px}.song-number{font:25px Georgia,serif;color:var(--action);background:var(--tint);border-radius:7px;min-width:54px;height:56px;display:grid;place-items:center;font-variant-numeric:tabular-nums;flex-shrink:0}.song-card[data-collection="rdg"] .song-number{color:var(--rdg);background:#007aff10}.song-text{min-width:0}.song-title{display:block;font-size:12px;font-weight:700;line-height:1.55;letter-spacing:.25px;overflow-wrap:anywhere}.song-collection{display:block;margin-top:7px;font-size:10px;color:var(--muted)}.song-excerpt{font-size:11px;line-height:1.6;margin:5px 0 0;color:var(--muted)}mark{background:#ffe4ed;color:#1d1d1f;padding:0 2px;border-radius:2px}.favorite-button{width:36px;min-width:36px;height:44px;display:grid;place-items:center;color:var(--muted);opacity:.5}.favorite-button svg{width:17px;height:17px}.favorite-button:hover{opacity:1}.favorite-button.saved{color:var(--accent);opacity:1}.favorite-button.saved svg{fill:currentColor;stroke-width:0}.load-more{display:block;margin:30px auto 0;padding:13px 25px;border:1px solid var(--line);border-radius:7px;background:var(--paper);font-size:12px;min-height:45px}.load-more span{margin-left:15px}.library-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:40px;padding-top:20px;font-size:10px;color:var(--muted)}.alphabet{display:flex;gap:5px;flex-wrap:wrap;margin:20px 0}.alphabet button{min-width:28px;min-height:34px;border-radius:5px;font-size:11px;color:var(--muted)}.alphabet button.selected{background:var(--action);color:var(--paper)}.empty-state{text-align:center;padding:60px 20px;color:var(--muted)}.empty-state>svg{width:35px;height:35px;opacity:.5}.empty-state h3{color:var(--ink);font:25px Georgia,serif}.empty-state p{font-size:13px;line-height:1.7}.primary{padding:14px 22px;border-radius:8px;background:#1d1d1f;color:#fffdf7;font-size:13px;min-height:46px}.mobile-header{display:none}.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:7px;color:var(--muted)}.icon-button:hover{background:var(--tint);color:var(--ink)}.reader{min-height:100vh}.reader-top{display:flex;position:sticky;top:0;z-index:10;align-items:center;justify-content:space-between;gap:20px;padding:12px 38px;background:var(--bg);border-bottom:1px solid var(--line)}.reader-top .quiet{font-size:13px;min-height:40px;min-width:65px}.reader-top>div{display:flex;gap:5px}#reader-mini-title{opacity:0;font-size:11px;line-height:1.5;text-align:center;overflow:hidden;max-width:60%;text-overflow:ellipsis;white-space:nowrap}.reader-inner{max-width:790px;margin:auto;padding:40px 55px 10px}.reader-heading h1{font:34px/1.3 Georgia,serif;margin:12px 0 15px;overflow-wrap:anywhere}.reading-hint{font-size:12px;color:var(--muted);margin-bottom:25px}.reading-tools{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:45px;flex-wrap:wrap}.reading-tools .quiet{font-size:12px}.reading-tools svg{width:18px;height:18px}.font-tools{display:flex;gap:12px;align-items:center}.font-tools button{min-width:35px;min-height:38px;font-size:17px}.font-tools span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.lyrics{font-size:var(--lyrics-size);line-height:1.65;letter-spacing:.05px;overflow-wrap:anywhere}.lyric-block{margin:0 0 38px;padding:0 0 0 20px;border-left:2px solid transparent}.lyric-block.chorus{border-left-color:#99999f}.block-label{display:block;font:10px/1.5 Arial,sans-serif;text-transform:uppercase;letter-spacing:1.9px;color:var(--muted);margin-bottom:14px}.lyric-line{margin:0;min-height:1em;white-space:pre-wrap}.lyric-line .repeat{display:inline;font:700 .65em/1.8 Arial,sans-serif;letter-spacing:.2px;background:var(--tint);color:var(--action);border-radius:5px;padding:3px 6px;white-space:normal}.song-navigation{display:flex;justify-content:space-between;gap:18px;border-top:1px solid var(--line);margin-top:55px;padding-top:22px;font-size:12px}.song-navigation a{display:flex;align-items:center;gap:8px;min-height:45px;max-width:48%}.song-navigation a:last-child{text-align:right;margin-left:auto}.song-navigation a:last-child svg{transform:rotate(180deg)}.song-navigation a[aria-disabled="true"]{visibility:hidden}.reader-end{font:italic 15px Georgia,serif;text-align:center;color:var(--muted);padding:35px 0}.reader-end span{margin:0 8px}#reader-favorite.saved{color:var(--accent)}#reader-favorite.saved svg{fill:currentColor;stroke-width:0}body.reading .mobile-header{display:none}body.focused .sidebar,body.focused .reader-heading .reading-hint,body.focused .reader-end{display:none}body.focused main{margin-left:0}body.focused .reader-inner{padding-top:20px;max-width:850px}body.focused .reader-heading{display:none}body.focused #reader-mini-title{opacity:1}body.focused .reading-tools{position:sticky;top:69px;background:var(--bg);z-index:8;margin-bottom:32px}dialog{border:1px solid var(--line);border-radius:18px;background:var(--paper);color:var(--ink);max-width:460px;width:calc(100% - 32px);padding:45px 28px 28px;text-align:center;box-shadow:0 20px 80px #0003}dialog::backdrop{background:#00000088;backdrop-filter:blur(4px)}dialog h2{font:29px Georgia,serif;margin:16px 0}dialog p{font-size:13px;line-height:1.8;color:var(--muted)}dialog img{display:block;max-width:100%;width:230px;height:auto;margin:20px auto 12px;border-radius:8px}#site-url{font-size:10px;overflow-wrap:anywhere;color:var(--muted);display:block;margin:12px 0 20px}.close-dialog{position:absolute;right:8px;top:8px}.download-qr{display:block;margin-top:12px}.toast{position:fixed;z-index:100;bottom:30px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#1d1d1f;color:#fffdf7;padding:13px 22px;border-radius:10px;font-size:13px;max-width:calc(100% - 30px);text-align:center;box-shadow:0 6px 25px #0002;transition:.2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.noscript{padding:30px;background:var(--paper);position:fixed;inset:30px;z-index:50}body:has(dialog[open]){overflow:hidden}
@media(min-width:1500px){.library{padding-top:45px}.intro{margin-top:65px}}@media(max-width:1100px){.sidebar{width:225px;padding:30px 15px}main{margin-left:225px}.library{padding:25px 35px}.intro-mark{width:140px;min-width:140px;height:175px}.intro h1{font-size:49px}.song-list{gap:0 22px}.song-link{gap:10px}.song-number{min-width:45px;font-size:22px}.reader-inner{padding:30px 35px}.reader-top{padding:10px 25px}}
@media(max-width:780px){.sidebar{display:none}main{margin-left:0}.mobile-header{display:flex;justify-content:space-between;align-items:center;padding:21px 23px 16px;background:var(--paper);border-bottom:1px solid var(--line)}.brand{font-size:27px}.brand-icon{width:39px;height:43px}.brand-sub{font-size:8px}.library{padding:25px 23px}.topline>span{font-size:9px;letter-spacing:1.2px}.topline .quiet span{display:none}.topline .quiet{min-width:35px}.intro{margin:28px 0 25px}.intro h1{font-size:44px;letter-spacing:-1.3px}.intro .eyebrow{font-size:8px;letter-spacing:1.4px}.intro-copy{font-size:13px}.intro-mark{display:none}.search-box{min-height:62px;padding:0 15px;gap:12px}.search-box input{font-size:16px}.search-box kbd{display:none}.search-help{font-size:10px;margin-bottom:23px}.search-help span:last-child{display:none}.collection-chips{gap:7px;margin-bottom:32px}.chip{padding:10px 12px;font-size:11px;gap:8px}.index-toolbar h2{font-size:25px}.sort-control button{font-size:11px;padding:7px 10px}.song-list{grid-template-columns:1fr}.song-card{min-height:92px;padding:14px 0;gap:12px}.song-number{min-width:53px;height:53px;font-size:25px}.song-link{gap:16px}.song-title{font-size:13px;line-height:1.6}.song-collection{font-size:10px}.favorite-button{opacity:.6}.song-excerpt{font-size:12px}.library-footer{font-size:9px;line-height:1.6}.alphabet button{min-width:32px;min-height:38px}.reader-top{padding:8px 16px;gap:10px}.reader-inner{padding:28px 21px 8px;max-width:720px}.reader-heading h1{font-size:31px;line-height:1.3}.reader-heading .eyebrow{font-size:9px}.reading-tools{gap:8px;margin-bottom:32px;padding:7px 0}.font-tools{gap:8px}.reading-tools .quiet{font-size:11px;gap:6px;min-height:42px}.lyric-block{padding-left:13px;margin-bottom:35px}.lyrics{line-height:1.6}.block-label{font-size:9px;letter-spacing:1.6px}.song-navigation{font-size:12px}.reader-end{font-size:13px}body.focused .reading-tools{top:61px}body.focused .reader-inner{padding-top:0}#reader-mini-title{max-width:48%;font-size:10px}.toast{bottom:20px;width:max-content}.result-meta{min-height:36px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media print{.sidebar,.mobile-header,.reader-top,.reading-tools,.song-navigation,.reader-end,.library,dialog,.toast{display:none!important}main{margin:0}.reader-inner{padding:0;max-width:none}.lyrics{font-size:16px}.lyric-block{break-inside:avoid}.reader-heading{display:block!important}body,body.night{background:white;color:black}}

/* Indice essenziale: ricerca subito accessibile. */
.topline{margin-bottom:25px;min-height:44px}.topline h1{font:inherit;letter-spacing:inherit;font-weight:400;margin:0}.topline .theme-button{min-height:44px}.topline .theme-button span{display:inline}.sidebar-bottom{padding-top:0}.reader-end{font-style:normal}
@media(max-width:780px){.topline{margin-bottom:18px}.topline h1{font-size:10px;letter-spacing:1.4px}.topline .theme-button{font-size:12px;gap:7px}.library{padding-top:16px}}

/* Intestazione del cantico compatta, senza ridurre il testo cantato. */
.reader-top{height:56px;padding:6px 24px}
.reader-inner{padding-top:22px}
.reader-heading .eyebrow{margin:0 0 6px}
.reader-heading h1{font-size:30px;line-height:1.2;margin:0}
.reading-tools{margin:14px 0 20px;padding:3px 0;min-height:48px}
.block-label{margin-bottom:8px}
body.focused .reader-inner{padding-top:0}
body.focused .reading-tools{top:56px;margin-top:0;margin-bottom:16px}
@media(max-width:780px){
 .reader-top{padding:6px 14px;gap:8px}
 .reader-inner{padding:12px 16px 8px}
 .reader-heading .eyebrow{font-size:9px;margin-bottom:5px}
 .reader-heading h1{font-size:25px;line-height:1.2}
 .reading-tools{display:grid;grid-template-columns:auto auto auto;justify-content:space-between;gap:6px;margin:10px 0 16px;padding:2px 0}
 .font-tools{gap:2px}.font-tools button{min-width:40px;min-height:44px}
 .reading-tools .quiet{min-height:44px;font-size:11px;gap:5px;white-space:nowrap}
 .reading-tools svg{width:16px;height:16px}
 .lyric-block{padding-left:10px}
 body.focused .reading-tools{top:56px}
 body.focused .reading-tools .quiet{white-space:normal}
}

#reader-title:focus{outline:none}

/* Numero e titolo sempre visibili nella barra già fissa: nessuna riga aggiunta. */
.reader-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px}
#reader-mini-title{opacity:1;max-width:none;width:100%;font-size:12px;line-height:1.25;font-weight:600;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-align:center}
.reader-top>div{justify-self:end}
@media(max-width:780px){
 .reader-top{grid-template-columns:44px minmax(0,1fr) 88px;gap:6px;padding:6px 12px}
 .reader-top #back-button{min-width:44px;width:44px;min-height:44px;padding:0}
 #back-button .back-label{display:none}
 .reader-top>div{gap:0}
 #reader-mini-title{font-size:12px;line-height:1.25;max-width:none}
}

/* Il titolo è uno solo, nella barra fissa; nessun blocco duplicato sotto. */
#reader-mini-title{margin:0;font-family:Arial,Helvetica,sans-serif}
#reader-mini-title:focus{outline:none}
.reader-inner{padding-top:0}
.reading-tools{margin-top:0;border-top:0}
@media print{
 .reader-top{display:block!important;position:static;height:auto;border:0;padding:0}
 .reader-top>button,.reader-top>div{display:none!important}
 #reader-mini-title{display:block;-webkit-line-clamp:unset;font:24px/1.3 Georgia,serif;text-align:left;margin-bottom:16px}
}

/* Temi chiaro/scuro e controlli in vetro, ispirati al riferimento indicato. */
:root{--bg:#e5e5ea;--paper:#fafafc;--ink:#1d1d1f;--muted:#626268;--action:#1d1d1f;--accent:#d01d51;--line:#d0d0d7;--tint:#d9dfe0;--glass-surface:rgba(255,255,255,.42);--glass-edge:rgba(255,255,255,.86);--glass-reflection:rgba(255,255,255,.62);--glass-shadow:rgba(30,35,40,.12);--glass-active:rgba(255,255,255,.8)}
:root[data-theme="dark"],body.night{color-scheme:dark;--bg:#000;--paper:#171719;--ink:#f5f5f7;--muted:#b1b1b8;--action:#ffffff;--accent:#ff8da5;--line:#2c2c30;--tint:#25282a;--glass-surface:rgba(55,55,62,.5);--glass-edge:rgba(255,255,255,.2);--glass-reflection:rgba(255,255,255,.16);--glass-shadow:rgba(0,0,0,.5);--glass-active:rgba(95,95,105,.5)}
body,.sidebar,.reader-top,.search-box,.song-number,.sort-control,.sort-control button,.chip,.primary,.lyric-line .repeat,.reader-end,.glass-controls,.glass-control,.menu-action,#reading-settings-panel{transition:background-color .7s ease,color .5s ease,border-color .7s ease,box-shadow .7s ease}
.reader-top{grid-template-columns:auto minmax(0,1fr) 104px;padding-top:4px;padding-bottom:4px;background:var(--bg);background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%)}
.reader-header-actions{display:flex;align-items:center;justify-self:end;gap:0!important}
.glass-controls{position:relative;display:flex;align-items:center;justify-content:center;width:104px;height:48px;padding:2px;border-radius:99px;isolation:isolate;background:var(--glass-surface);border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(36px) saturate(170%);backdrop-filter:blur(36px) saturate(170%);box-shadow:0 7px 18px -7px var(--glass-shadow),inset 0 1px 2px var(--glass-reflection),inset 0 -1px 2px rgba(255,255,255,.09)}
.glass-controls::before{content:'';position:absolute;pointer-events:none;inset:1px 2px auto;height:44%;border-radius:90px 90px 12px 12px;background:linear-gradient(to bottom,var(--glass-reflection),transparent);opacity:.6;z-index:3}
.glass-glare{position:absolute;inset:0;border-radius:99px;pointer-events:none;opacity:0;background:radial-gradient(55px circle at var(--glare-x,50%) var(--glare-y,50%),rgba(255,255,255,.34),transparent);transition:opacity .2s;z-index:0}
@media(hover:hover){.glass-controls:hover .glass-glare{opacity:1}}
.glass-control{position:relative;z-index:1;display:grid;place-items:center;flex:0 0 44px;width:44px;height:42px;min-height:42px;padding:0;border-radius:99px;color:var(--ink);background:transparent;isolation:isolate}
.glass-control::before{content:'';position:absolute;inset:1px;border-radius:99px;background:var(--glass-active);box-shadow:0 2px 7px var(--glass-shadow),inset 0 1px 1px var(--glass-edge);opacity:0;transform:scale(.9);transition:opacity .22s ease,transform .3s cubic-bezier(.2,1.25,.5,1);z-index:-1}
.glass-control:hover::before,.glass-control[aria-expanded="true"]::before{opacity:1;transform:scale(1)}
.glass-control:active .font-glyph,.glass-control:active svg{transform:scale(.9)}
.glass-control svg{width:19px;height:19px;transition:transform .25s ease}
.font-glyph{font:20px/1 Georgia,serif;transition:transform .25s ease}
.glass-divider{width:1px;height:20px;background:var(--ink);opacity:.17;margin:0 3px;flex-shrink:0}
#reading-settings-panel{display:none;position:fixed;inset:65px 24px auto auto;width:min(290px,calc(100vw - 24px));margin:0;padding:12px 16px 14px;border:1px solid var(--glass-edge);border-radius:20px;color:var(--ink);background:var(--paper);background:color-mix(in srgb,var(--paper) 94%,transparent);-webkit-backdrop-filter:blur(36px) saturate(140%);backdrop-filter:blur(36px) saturate(140%);box-shadow:0 16px 46px -15px var(--glass-shadow),inset 0 1px 0 var(--glass-reflection);z-index:30}
#reading-settings-panel:popover-open{display:block;animation:settings-reveal .18s ease-out}
#reading-settings-panel.is-open{display:block;animation:settings-reveal .18s ease-out}
@keyframes settings-reveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
.settings-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.settings-heading h2{font:20px/1.3 Georgia,serif;margin:0}
.settings-heading .icon-button{min-width:40px;min-height:40px;margin-right:-8px}
.settings-heading svg{width:17px;height:17px}
.font-setting-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;margin:12px 0 6px;color:var(--muted)}
.font-setting-caption output{font-size:14px;font-variant-numeric:tabular-nums;color:var(--ink)}
#reading-settings-panel .font-tools{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:10px;align-items:center}
#reading-settings-panel .font-tools button{min-width:44px;min-height:44px;background:var(--tint);border-radius:12px;font-size:17px;padding:0}
#font-slider{width:100%;min-width:0;height:44px;accent-color:var(--action);cursor:ew-resize;margin:0}
.settings-actions{margin-top:13px;padding-top:8px;border-top:1px solid var(--line)}
.menu-action{display:flex;align-items:center;gap:10px;text-align:left;min-height:44px;width:100%;padding:8px;border-radius:9px;font-size:12px}
.menu-action:hover{background:var(--tint)}
.menu-action svg{width:18px;height:18px;flex-shrink:0}
.reader-inner{padding-top:14px}
.night .chip.active{color:#111214}
@media(max-width:780px){
 .reader-top{grid-template-columns:44px minmax(0,1fr) 104px;gap:6px;padding:4px 10px}
 .reader-inner{padding-top:12px}
 #reading-settings-panel{right:12px;top:63px}
}
@media(prefers-reduced-motion:reduce){body,.sidebar,.reader-top,.search-box,.song-number,.sort-control,.sort-control button,.chip,.primary,.lyric-line .repeat,.reader-end,.glass-controls,.glass-control,.menu-action,#reading-settings-panel{transition:none}#reading-settings-panel:popover-open,#reading-settings-panel.is-open{animation:none}.glass-control::before{transition:none}}
@media print{.reader-header-actions,#reading-settings-panel{display:none!important}}

/* Palette completa del riferimento: rosa/blu/arancio, viola/blu/rosa. */
:root{--action:#1d1d1f;--accent:#d01d51;--rdg:#2463b7;--tint:rgba(0,0,0,.06)}
:root[data-theme="dark"],body.night{--action:#fff;--accent:#ff8da5;--rdg:#9ac2ff;--tint:rgba(255,255,255,.1)}
body{position:relative;isolation:isolate}
body::before,body::after{content:'';position:fixed;inset:-12vh -12vw;z-index:-1;pointer-events:none;filter:blur(80px);transition:opacity .8s ease;background-repeat:no-repeat}
body::before{background-image:radial-gradient(ellipse at 12% 6%,#ff2a5f 0%,transparent 48%),radial-gradient(ellipse at 90% 95%,#007aff 0%,transparent 52%),radial-gradient(ellipse at 53% 42%,#ff9500 0%,transparent 43%);opacity:.7}
body::after{background-image:radial-gradient(ellipse at 12% 6%,#bf5af2 0%,transparent 48%),radial-gradient(ellipse at 90% 95%,#0a84ff 0%,transparent 52%),radial-gradient(ellipse at 53% 42%,#ff375f 0%,transparent 43%);opacity:0}
[data-theme="dark"] body::before{opacity:0}
[data-theme="dark"] body::after{opacity:.5}
.sidebar,.mobile-header{background:var(--paper);background:color-mix(in srgb,var(--paper) 84%,transparent);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px)}
.brand-icon{background:rgba(255,255,255,.6);color:#1d1d1f;border:1px solid rgba(255,255,255,.5)}
.night .brand-icon{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.16)}
.collection-dot{background:#ff2a5f}.rdg-dot{background:#007aff}
.search-box{border-color:rgba(0,0,0,.2)}.night .search-box{border-color:rgba(255,255,255,.22)}
.primary,.toast{background:var(--ink);color:var(--paper)}
.lyric-block.chorus{border-left-color:rgba(130,130,140,.5)}
mark{background:#ffe4ed;color:#1d1d1f}.night mark{background:#673047;color:#fff}
.reader-top{grid-template-columns:auto minmax(0,1fr) 158px;background:color-mix(in srgb,var(--bg) 62%,transparent)}
.glass-controls{width:158px;height:44px;padding:1px 3px}
.glass-control{flex:0 0 36px;width:36px;height:40px;min-height:40px}
.glass-control svg{width:16px;height:16px;stroke-width:1.6}
.font-glyph{font:500 15px/1 Arial,Helvetica,sans-serif}
.glass-divider{height:16px}
.settings-heading h2{font:600 14px/1.4 Arial,Helvetica,sans-serif}
.settings-heading svg{width:16px;height:16px}
@media(max-width:780px){.reader-top{grid-template-columns:44px minmax(0,1fr) 158px}}
@media(max-width:360px){.reader-top{grid-template-columns:36px minmax(0,1fr) 150px;gap:4px;padding:4px 8px}.reader-top #back-button{width:36px;min-width:36px}.glass-controls{width:150px}.glass-control{flex-basis:34px;width:34px}#reader-mini-title{font-size:11px}}
@media(prefers-reduced-motion:reduce){body::before,body::after{transition:none}}
@media print{body::before,body::after{display:none}}

/* Preferiti: selezione esplicita e stella leggibile in ogni vista. */
#reader-favorite svg{width:21px;height:21px}

#reader-favorite[aria-pressed="true"]{color:var(--accent)}
#reader-favorite[aria-pressed="true"] svg{fill:currentColor;stroke-width:1.6}
[data-favorite-filter] svg{width:20px;height:20px}
[data-favorite-filter][aria-pressed="true"] svg{fill:currentColor}
.favorite-button svg{width:22px;height:22px}

/* Feedback coerente per i comandi interattivi. */
.nav-item,#reading-settings-panel .font-tools button{transition:background-color .18s ease,box-shadow .18s ease,transform .18s ease}
.chip,.sort-control button{transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
@media(hover:hover){
 #reading-settings-panel .font-tools button:not(:disabled):hover,.nav-item:hover,.chip:hover,.sort-control button:hover{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 22%,transparent),0 3px 9px var(--glass-shadow);transform:translateY(-1px)}
 #reading-settings-panel .font-tools button:not(:disabled):hover,.nav-item:not(.active):hover,.chip:not(.active):hover,.sort-control button:not(.selected):hover{background:color-mix(in srgb,var(--paper) 75%,var(--ink) 12%)}
}
#reading-settings-panel .font-tools button:not(:disabled):active,.nav-item:active,.chip:active,.sort-control button:active{transform:scale(.97)}
@media(prefers-reduced-motion:reduce){.nav-item,#reading-settings-panel .font-tools button,.chip,.sort-control button{transition:none;transform:none!important}}

/* Ordinamento leggibile e comodo da toccare anche a 320 px. */
.sort-control{flex-shrink:0}
.sort-control button{white-space:nowrap}
@media(max-width:780px){.sort-control button{min-height:40px}.index-toolbar h2{min-width:0}.sort-control button.selected{box-shadow:inset 0 0 0 1px var(--glass-edge),0 1px 5px var(--glass-shadow)}}

/* La lettura dà priorità a indice e titolo; le sfumature restano leggere. */
[data-theme="light"] body.reading::before{opacity:.22}
[data-theme="dark"] body.reading::after{opacity:.16}
.reader-top{background:color-mix(in srgb,var(--bg) 88%,transparent)}
#back-button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid var(--ink);border-radius:12px;background:var(--ink);color:var(--paper);font-weight:600;box-shadow:0 2px 5px var(--glass-shadow);transition:background-color .2s,color .2s,transform .15s}
#back-button svg{width:22px;height:22px;stroke-width:2.1}
#reader-mini-title{font-weight:700}
.reader-header-actions .glass-controls{background:color-mix(in srgb,var(--paper) 45%,transparent);box-shadow:inset 0 1px 1px var(--glass-reflection);border-color:color-mix(in srgb,var(--ink) 16%,transparent)}
.reader-header-actions .glass-controls::before{opacity:.25}
@media(hover:hover){#back-button:hover{background:color-mix(in srgb,var(--ink) 86%,var(--paper));box-shadow:0 3px 9px var(--glass-shadow)}}
#back-button:active{transform:scale(.96)}
@media(max-width:780px){
 .reader-top{grid-template-columns:44px minmax(0,1fr) 158px;gap:6px}
 .reader-top #back-button{width:44px;min-width:44px;min-height:44px;padding:0}
}
@media(min-width:480px) and (max-width:780px){
 .reader-top{grid-template-columns:86px minmax(0,1fr) 158px}
 .reader-top #back-button{width:86px}
 #back-button .back-label{display:inline}
}
@media(max-width:360px){.reader-top{grid-template-columns:44px minmax(0,1fr) 150px;gap:4px}}
@media(prefers-reduced-motion:reduce){#back-button{transition:none;transform:none}}

/* Una stessa selezione in vetro per filtri, ordinamento e lettura. */
:root{--selection-surface:rgba(255,255,255,.62);--selection-edge:rgba(29,29,31,.2);--selection-shadow:0 2px 7px rgba(30,35,40,.09);--glass-active:var(--selection-surface)}
:root[data-theme="dark"],body.night{--selection-surface:rgba(255,255,255,.13);--selection-edge:rgba(255,255,255,.27);--selection-shadow:0 2px 7px rgba(0,0,0,.2);--glass-active:var(--selection-surface)}
:root .chip.active,:root .nav-item.active,:root .sort-control button.selected,:root .alphabet button.selected{background:var(--selection-surface);color:var(--ink);border-color:var(--selection-edge);box-shadow:inset 0 0 0 1px var(--selection-edge),var(--selection-shadow);font-weight:600}
.glass-control::before{background:var(--selection-surface);box-shadow:inset 0 0 0 1px var(--selection-edge),var(--selection-shadow)}

#back-button{background:var(--selection-surface);color:var(--ink);border-color:var(--selection-edge);box-shadow:var(--selection-shadow)}
@media(hover:hover){#back-button:hover{background:color-mix(in srgb,var(--selection-surface) 82%,var(--ink) 8%)}}
.song-card.title-first .song-title{font-size:20px;line-height:1.4;letter-spacing:.1px}
.song-card.title-first .song-collection{font-size:12px;margin-top:8px;font-variant-numeric:tabular-nums}
.song-card.title-first .song-link{padding:5px 0}
@media(max-width:780px){.song-title{font-size:16px;line-height:1.45}.song-card.title-first .song-title{font-size:19px}.song-card.title-first .song-collection{font-size:12px}#reader-mini-title{font-size:14px;line-height:1.2}}
@media(max-width:360px){#reader-mini-title{font-size:13px}}

/* Selezione chiara riconoscibile e dimensioni indipendenti dallo stato. */
:root[data-theme="light"]{--selection-surface:rgba(255,255,255,.82);--selection-edge:#000;--selection-shadow:0 2px 6px rgba(30,35,50,.1)}
.chip,.nav-item,.sort-control button,.alphabet button{font-weight:600}
.collection-chips .chip{transform:none!important}
.song-number{width:56px;min-width:56px;max-width:56px;height:56px;flex:0 0 56px}

.topline .theme-button{display:inline-flex;justify-content:flex-end;gap:8px;width:118px;min-width:118px;flex:0 0 118px}.topline .theme-button svg{flex:0 0 16px}

.lyric-line{font-weight:var(--lyrics-weight,400)}
.font-weight-control{display:flex;width:100%;gap:4px}.font-weight-control button{flex:1;min-height:40px;font-size:13px}

#list-sentinel{height:1px;margin-top:24px;overflow-anchor:none}

.library-footer{align-items:center}
.footer-logo{display:inline-grid;width:84px;flex:0 0 84px;line-height:0}
.footer-logo img{grid-area:1/1;width:100%;height:auto;display:block;transition:opacity .7s ease}
.footer-logo .logo-day{opacity:1}.footer-logo .logo-night{opacity:0}
[data-theme="dark"] .footer-logo .logo-day{opacity:0}[data-theme="dark"] .footer-logo .logo-night{opacity:1}
@media(prefers-reduced-motion:reduce){.footer-logo img{transition:none}}

/* Il cambio tema entra nell'intestazione mobile, prima del QR. */
.topline{justify-content:flex-end}
.mobile-header-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}
.mobile-header-actions .theme-button{display:inline-flex;align-items:center;justify-content:flex-end;gap:7px;min-height:44px;width:108px;min-width:108px;font-size:11px;padding:0 5px}
.mobile-header-actions .theme-button svg{width:16px;height:16px;flex:0 0 16px}
.mobile-header-actions .qr-trigger{width:40px;min-width:40px;min-height:44px;padding:0}
@media(max-width:780px){.mobile-header{padding:16px 14px;gap:8px}.library .topline{display:none}.mobile-header .brand{flex-shrink:0}}
@media(max-width:360px){.mobile-header .brand{font-size:21px;gap:8px}.mobile-header .brand-icon{width:32px;height:38px}.mobile-header .brand-icon svg{width:24px;height:24px}.mobile-header-actions .theme-button{width:100px;min-width:100px;font-size:10px}.mobile-header .brand-sub{font-size:7px}}

#search-form{margin-bottom:20px}

.site-footer{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;border-top:1px solid var(--line);margin-top:32px;padding:20px 0 24px;font:10px/1.5 Arial,Helvetica,sans-serif;color:var(--muted)}
.site-footer .footer-logo{width:44px;flex:0 0 auto}
@media print{.site-footer{display:none!important}}

/* Linguaggio condiviso: contenuti monocromatici, colore solo nella selezione. */
:root[data-theme] body{--accent:var(--ink);--rdg:var(--ink);--selection-edge:transparent;--selection-gradient:linear-gradient(120deg,#ff375f 5%,#ff9500 48%,#0a84ff 95%)}
.song-card[data-collection="rdg"] .song-number{color:var(--ink);background:var(--tint)}
.collection-dot,.rdg-dot{background:var(--muted)}
.favorite-button.saved,#reader-favorite.saved,#reader-favorite[aria-pressed="true"]{color:var(--ink)}
.favorite-button.saved svg,#reader-favorite[aria-pressed="true"] svg,[data-favorite-filter][aria-pressed="true"] svg{fill:currentColor;stroke-width:1.6}
.chip,.nav-item,.sort-control button,.alphabet button{position:relative}
:is(.chip.active,.nav-item.active,.sort-control button.selected,.alphabet button.selected,.glass-control[aria-expanded="true"])::after{content:'';position:absolute;inset:0;padding:2px;border-radius:inherit;pointer-events:none;background:var(--selection-gradient);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude}
#back-button{border-color:var(--line)}
.footer-logo .logo-day{filter:grayscale(1) brightness(0)}
.footer-logo .logo-night{filter:grayscale(1) brightness(0) invert(1)}
button:focus-visible,a:focus-visible,input:focus-visible{outline-color:var(--ink)}

.song-number{color:var(--ink)}

@media(max-width:380px){.collection-chips{gap:4px}.collection-chips .chip{font-size:10px;padding:10px 5px;gap:4px;white-space:nowrap}.collection-chips [data-favorite-filter] svg{width:16px;height:16px}}

@media(min-width:381px) and (max-width:780px){.collection-chips{gap:6px}.collection-chips .chip{padding:10px 9px}}

/* Solo Aa aperto è selezionato nella barra; stella e tema restano azioni. */
:root .chip.active::after{inset:-1px}
#reader-favorite::before{background:var(--selection-surface)}
.song-navigation a{padding:10px 12px;border-radius:10px;transition:background-color .18s ease,box-shadow .18s ease}
@media(hover:hover){.song-navigation a:not([aria-disabled="true"]):hover{background:var(--selection-surface);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 18%,transparent),0 3px 9px var(--glass-shadow)}}
.song-navigation a:active{background:var(--tint)}
@media(prefers-reduced-motion:reduce){.song-navigation a{transition:none}}

@media(min-width:781px){.collection-chips{display:none}}

/* La navigazione scorre nel proprio riquadro, anche in orizzontale. */
.sidebar{overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin;min-height:0;-webkit-overflow-scrolling:touch}
.sidebar>*{flex-shrink:0}

/* In due colonne nessuna delle due usa lo scroll della pagina. */
@media screen and (min-width:781px){
 :root{--sidebar-width:256px}
 html,body{height:100%;overflow:hidden}
 .sidebar{bottom:auto;height:100vh;height:100dvh;touch-action:pan-y pinch-zoom}
 main{position:fixed;inset:0 0 auto var(--sidebar-width);height:100vh;height:100dvh;margin:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
}
@media screen and (min-width:781px) and (max-width:1100px){:root{--sidebar-width:225px}}
#qr-dialog img{background:#fff}

/* Un'unica riga alfabetica: swipe su telefono, frecce su desktop. */
.alphabet-strip{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:6px;margin:16px 0 12px;min-width:0}
.alphabet-strip .alphabet{display:flex;flex-wrap:nowrap;gap:4px;margin:0;padding:4px;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-padding-inline:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.alphabet::-webkit-scrollbar{display:none}
.alphabet-strip .alphabet button{flex:0 0 auto;min-width:40px;min-height:44px;padding:0 11px;white-space:nowrap}
.alphabet-strip .alphabet-arrow{display:none;align-items:center;justify-content:center;width:36px;min-height:44px;padding:0;border-radius:8px;color:var(--ink);background:transparent;transition:background-color .18s ease,opacity .18s ease}
.alphabet-arrow svg{width:18px;height:18px}
#alphabet-next svg{transform:rotate(180deg)}
.alphabet-arrow:disabled{opacity:.25;cursor:default}
.alphabet-arrow:active:not(:disabled){background:var(--tint)}
@media(min-width:781px) and (hover:hover){.alphabet-strip{grid-template-columns:36px minmax(0,1fr) 36px}.alphabet-strip .alphabet-arrow{display:flex}.alphabet-arrow:hover:not(:disabled){background:var(--selection-surface)}}
@media(prefers-reduced-motion:reduce){.alphabet-strip .alphabet-arrow{transition:none}}

/* La sfumatura compare solo dove rimangono lettere fuori vista. */
.alphabet-strip .alphabet{--fade-left:0px;--fade-right:0px;-webkit-mask-image:linear-gradient(to right,transparent,#000 var(--fade-left),#000 calc(100% - var(--fade-right)),transparent);mask-image:linear-gradient(to right,transparent,#000 var(--fade-left),#000 calc(100% - var(--fade-right)),transparent)}
.alphabet-strip.can-scroll-left .alphabet{--fade-left:18px}
.alphabet-strip.can-scroll-right .alphabet{--fade-right:18px}
@media(hover:hover) and (pointer:fine){.alphabet-strip .alphabet{cursor:grab}.alphabet-strip .alphabet.dragging,.alphabet.dragging button{cursor:grabbing;user-select:none}}

/* QR adattivo, con tutti i comandi visibili anche in orizzontale. */
#qr-dialog{width:calc(100vw - 24px);max-width:360px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:36px 18px 14px;overflow:auto}
#qr-dialog[open]{display:grid;grid-template-areas:'heading' 'qr' 'actions';grid-template-columns:minmax(0,1fr);gap:10px}
.qr-heading{grid-area:heading;min-width:0}
#qr-title{font:24px/1.2 Georgia,serif;margin:0}
#qr-title:focus{outline:none}
#qr-dialog .qr-heading p{font-size:13px;line-height:1.4;margin:7px 0 0}
#qr-dialog .qr-image{grid-area:qr;justify-self:center;align-self:center;width:clamp(110px,calc(100vh - 264px),196px);width:clamp(110px,calc(100dvh - 264px),196px);height:auto;aspect-ratio:1;margin:0;border-radius:8px}
.qr-actions{grid-area:actions;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
#qr-dialog #site-url{font-size:11px;line-height:1.35;margin:0 0 4px;max-width:100%;overflow-wrap:anywhere}
#qr-dialog .primary{min-height:44px;padding:11px 18px;font-size:13px}
#qr-dialog .download-qr{display:inline-flex;align-items:center;justify-content:center;min-height:38px;margin:0;font-size:12px}
#qr-dialog .close-dialog{top:4px;right:4px;min-width:44px;min-height:44px;color:var(--muted);background:transparent;box-shadow:none;border:0}
#qr-dialog .close-dialog::after{content:none}
#qr-dialog .close-dialog:not(:focus-visible){outline:none}
@media(hover:hover){#qr-dialog .close-dialog:hover{background:transparent;color:var(--ink)}}
@media(min-width:720px), (max-height:500px) and (min-width:480px){
 #qr-dialog{max-width:560px;padding:20px 24px}
 #qr-dialog[open]{grid-template-areas:'qr heading' 'qr actions';grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:10px 18px;align-items:center}
 #qr-dialog .qr-image{width:min(188px,calc(100vh - 64px));width:min(188px,calc(100dvh - 64px))}
 #qr-title{font-size:24px}
 #qr-dialog .qr-heading{padding-right:12px}
}
