html,body{height:100%;background:#f4f6f8;color:#25313c}body{font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;padding-top:68px;padding-bottom:68px;-webkit-font-smoothing:antialiased}.hidden{display:none!important}.app-header{position:fixed;z-index:1000;top:0;left:0;right:0;min-height:68px;background:#173f5f;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.18)}.header-row{padding:12px 0}.search-wrap{position:relative;max-width:760px;margin:0 auto}.search-wrap span{position:absolute;left:13px;top:7px;color:#667;font-size:24px}.search-wrap .form-control{height:44px;padding-left:43px;border:0;border-radius:8px;font-size:16px;box-shadow:none}.app-main{min-height:100%}.section-heading{padding:18px 5px 8px}.section-heading h1{font-size:24px;margin:0 0 4px;font-weight:600}.section-heading p{margin:0;color:#73808c}.song-list{background:#fff;border-radius:8px;overflow:hidden;border:1px solid #dde3e8;margin-bottom:18px}.song-row{display:block;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid #e6eaed;padding:14px 15px}.song-row:last-child{border-bottom:0}.song-row:focus,.song-row:hover{background:#f8fafb;outline:2px solid #337ab7;outline-offset:-2px}.song-row-title{font-size:17px;font-weight:600;color:#173f5f}.song-row-meta{font-size:13px;color:#74818c;margin-top:3px}.group-title{font-size:16px;text-transform:uppercase;letter-spacing:.04em;color:#667784;margin:18px 4px 7px}.tag-chip{display:inline-block;border:0;border-radius:18px;padding:8px 13px;margin:4px;background:#e5eef5;color:#173f5f;font-weight:600}.empty-state{text-align:center;padding:50px 20px;color:#77838e}.app-footer{position:fixed;z-index:1000;bottom:0;left:0;right:0;height:68px;background:#fff;border-top:1px solid #d8dee3;display:table;width:100%;padding-bottom:env(safe-area-inset-bottom)}.nav-btn{display:table-cell;width:25%;height:67px;border:0;background:#fff;color:#6d7881;text-align:center;font-size:12px}.nav-btn.active{color:#173f5f;font-weight:700}.nav-icon{display:block;font-size:24px;line-height:27px}.song-tools{height:68px;display:table;width:100%;max-width:850px;margin:0 auto}.song-tools>*{display:table-cell;vertical-align:middle}.tool-back{color:#fff!important;font-size:38px;width:42px;padding:0}.tool-check{font-weight:600;white-space:nowrap;padding:0 8px}.tool-check input{width:18px;height:18px;vertical-align:-4px}.tone-tool{text-align:center;white-space:nowrap}.tone-tool span{margin-right:5px}.tone-tool .btn{min-width:34px;font-size:18px;padding:2px 9px}.tone-tool strong{display:inline-block;min-width:26px}.song-title{background:#fff;padding-top:17px;padding-bottom:12px;border-bottom:1px solid #e0e5e9}.song-title h1{font-size:25px;margin:0 0 4px;color:#173f5f}.song-title p{margin:0;color:#72808a}.nav-tabs{background:#fff;padding-left:10px}.nav-tabs>li>a{font-weight:600;color:#4d5c68}.song-tab-content{background:#fff;min-height:calc(100vh - 205px)}.tab-pane{display:none}.tab-pane.active{display:block}.lyrics-wrap{padding:20px 14px 60px;overflow:auto;-webkit-overflow-scrolling:touch}.lyrics{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:16px;line-height:1.35;display:inline-block;min-width:100%}.lyric-pair{margin:0 0 10px;white-space:pre}.chord-line{height:1.35em;color:#b04a2f;font-weight:700}.lyrics.hide-chords .chord-line{display:none}.lyrics.hide-chords .lyric-pair{margin-bottom:3px}.attachment-pane{height:calc(100vh - 205px);padding:8px}.attachment-frame{width:100%;height:100%;border:0;background:#eee}.attachment-fallback{padding:20px}.zoom-hint{font-size:12px;color:#78858f;padding:7px 14px;background:#f8fafb;border-bottom:1px solid #e5e9ec}.setlist-row{position:relative;padding-right:90px}.setlist-actions{position:absolute;right:8px;top:9px}.setlist-actions button{min-width:34px}.badge-soft{display:inline-block;background:#e7eef3;color:#476070;border-radius:10px;padding:2px 8px;margin-left:6px;font-size:11px}@media(min-width:768px){body{padding-bottom:72px}.app-footer{left:50%;transform:translateX(-50%);max-width:850px;border-left:1px solid #d8dee3;border-right:1px solid #d8dee3}.app-main{max-width:850px;margin:0 auto;background:#f4f6f8}.lyrics-wrap{padding:28px 34px}.lyrics{font-size:18px}.section-heading{padding-top:25px}}@media(max-width:480px){.song-tools{font-size:12px}.tool-check{padding:0 4px}.tone-tool span{display:block;font-size:11px}.tone-tool .btn{min-width:30px;padding:1px 7px}.setlist-switch{padding-right:4px}.song-title h1{font-size:21px}}

/* Song view: full-height content with bottom actions */
body.song-mode{padding-top:0;padding-bottom:72px}.song-mode .app-header{display:none}.song-footer{position:fixed;z-index:1040;bottom:0;left:0;right:0;height:68px;background:#fff;border-top:1px solid #d8dee3;display:table;width:100%}.song-footer-btn{display:table-cell;width:50%;height:67px;border:0;background:#fff;color:#173f5f;text-align:center;font-size:13px;font-weight:600}.song-footer-btn .glyphicon{display:block;font-size:22px;line-height:28px;margin-bottom:2px}.song-footer-btn:focus,.song-footer-btn:active{background:#f2f6f8;outline:2px solid #337ab7;outline-offset:-2px}.song-options-body{padding:5px 20px}.song-option-row{min-height:62px;border-bottom:1px solid #e5e9ec;display:table;width:100%;font-size:16px}.song-option-row:last-child{border-bottom:0}.song-option-row>label,.song-option-row>span,.song-option-row>div{display:table-cell;vertical-align:middle}.song-option-row>input{float:right;width:22px;height:22px;margin-top:20px}.tone-option>div{text-align:right}.tone-option strong{display:inline-block;min-width:38px;text-align:center}.modal-title{font-size:20px}.modal.in{display:block;background:transparent}.modal-backdrop.in{opacity:.5}.modal-dialog{margin-top:15vh}@media(min-width:768px){.song-footer{left:50%;transform:translateX(-50%);max-width:850px;border-left:1px solid #d8dee3;border-right:1px solid #d8dee3}.song-mode .app-main{max-width:850px}.modal-sm{width:380px}}

/* v1.0.5 visual refinements */
.song-title{background:#173f5f;color:#fff;border-bottom:1px solid #0f3049;}
.song-title h1{color:#fff;}
.song-title p{color:#dbe7ef;}
.app-footer,.song-footer{left:0;right:0;width:100%;max-width:none;transform:none;border-left:0;border-right:0;}
.song-footer-btn .footer-icon{display:block;height:30px;line-height:28px;margin-bottom:1px;font-size:28px;font-family:Arial,sans-serif;font-weight:400;}
.song-footer-btn .footer-icon-options{font-size:23px;}
@media(min-width:768px){.app-footer,.song-footer{left:0;right:0;width:100%;max-width:none;transform:none;border-left:0;border-right:0;}}
/* v1.0.6: full-width dark song chrome */
.song-mode .song-title{width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);background:#173f5f;color:#fff;border-bottom:1px solid #0f3049;}
.song-footer{background:#173f5f;border-top:1px solid #0f3049;color:#fff;}
.song-footer-btn{background:#173f5f;color:#fff;}
.song-footer-btn:focus,.song-footer-btn:active{background:#0f3049;color:#fff;outline:2px solid #fff;outline-offset:-3px;}
/* v1.0.7: dark main footer and full-width song content */
.app-footer{background:#173f5f;border-top:1px solid #0f3049;color:#fff;}
.nav-btn{background:#173f5f;color:#dbe7ef;}
.nav-btn.active{background:#0f3049;color:#fff;font-weight:700;}
.nav-btn:focus,.nav-btn:active{background:#0f3049;color:#fff;outline:2px solid #fff;outline-offset:-3px;}
.song-mode .app-main{width:100%;max-width:none;margin:0;background:#fff;}
.song-mode #songView{width:100%;max-width:none;margin:0;}
.song-mode #songTabs,.song-mode #tabContent{width:100%;max-width:none;margin-left:0;margin-right:0;}
.song-mode .song-tab-content{width:100%;}
.song-mode .tab-pane{width:100%;}

/* v1.0.13: 15px top clearance for iPad standalone status bar */
body{padding-top:83px;}
body:before{content:"";position:fixed;z-index:1001;top:0;left:0;right:0;height:15px;background:#173f5f;}
.app-header{top:15px;}
body.song-mode{padding-top:15px;}

/* v1.0.17: five-item main footer and version dialog */
.app-footer .nav-btn{width:20%;background:#173f5f;color:#dce8f1;}
.app-footer .nav-btn.active{color:#fff;background:#0f3049;}
.app-footer .nav-btn:focus,.app-footer .nav-btn:active{color:#fff;background:#0f3049;outline:2px solid #fff;outline-offset:-3px;}
.version-body{text-align:center;padding:28px 20px;font-size:18px;}
.version-body p{margin:0;}

/* v1.0.25: pinch/pan controllato anche per allegati PDF su iOS 9 */
.attachment-pane{padding:0;overflow:hidden;}
.attachment-viewport{position:relative;width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch;background:#e8ecef;}
.attachment-stage{position:relative;width:100%;height:100%;min-width:100%;min-height:100%;overflow:visible;}
.attachment-frame{position:absolute;left:0;top:0;width:100%;height:100%;border:0;background:#eee;-webkit-transform-origin:0 0;transform-origin:0 0;}
.attachment-gesture{position:absolute;z-index:5;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,0);}

/* v1.0.27: renderer PDF adattivo. I browser moderni usano il viewer PDF nativo senza overlay; iOS 9 conserva il workaround pinch/pan. */
.modern-attachment{padding:0;overflow:hidden;}
.attachment-native{width:100%;height:100%;min-height:calc(100vh - 205px);background:#e8ecef;}
.attachment-native-object,.attachment-native-embed{display:block;width:100%;height:100%;min-height:calc(100vh - 205px);border:0;background:#e8ecef;}


/* v1.0.30: allegati dinamici. PDF Android renderizzati dal PDF sorgente; immagini visualizzate dal file originale. */
.pdfjs-attachment,.image-attachment{padding:0;overflow:hidden;}
.pdfjs-viewport,.attachment-image-viewport{position:relative;width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch;background:#dfe4e8;}
.pdfjs-stage,.attachment-image-stage{position:relative;min-width:100%;min-height:100%;}
.pdfjs-canvas,.attachment-image{display:block;margin:0;padding:0;}
.pdfjs-status{position:absolute;z-index:4;left:0;right:0;top:45%;text-align:center;color:#52616d;font-size:14px;pointer-events:none;}
.pdfjs-attachment .attachment-gesture,.image-attachment .attachment-gesture{position:absolute;z-index:5;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,0);}

/* v1.0.31: spazio di sicurezza sotto il contenuto del brano per il footer fisso */
.song-mode .song-tab-content{padding-bottom:200px;box-sizing:border-box;}


/* v1.0.35: scheda Informazioni del brano */
.song-info-pane{padding:20px 16px 220px;background:#fff;}
.song-info-list{margin:0;max-width:760px;}
.song-info-list dt{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#72808a;margin-top:16px;}
.song-info-list dt:first-child{margin-top:0;}
.song-info-list dd{margin:3px 0 0;padding:0 0 12px;border-bottom:1px solid #e5e9ec;color:#263746;font-size:16px;line-height:1.4;word-wrap:break-word;}
@media(min-width:768px){.song-info-pane{padding-left:34px;padding-right:34px}.song-info-list dt{float:left;clear:left;width:150px;margin-top:0;padding:13px 12px 13px 0}.song-info-list dd{margin-left:150px;min-height:46px;padding:12px 0}}

.setlist-heading{display:table;width:100%}.setlist-heading>div,.setlist-heading>.setlist-import-btn{display:table-cell;vertical-align:middle}.setlist-heading>.setlist-import-btn{float:right;margin-top:1px;color:#173f5f;font-weight:600}

/* Categorie: accordion gerarchico, compatibile iOS 9 */
.category-accordion{margin-bottom:18px}.category-panel,.subcategory-panel{margin-bottom:8px;border-radius:8px;overflow:hidden}.category-panel>.panel-heading{padding:0;background:#fff}.subcategory-list{padding:10px;background:#f4f6f8}.subcategory-panel>.panel-heading{padding:0;background:#eef3f7}.accordion-toggle{display:table;width:100%;border:0;background:transparent;text-align:left;color:#173f5f;font-weight:600;padding:14px 15px}.accordion-toggle>span{display:table-cell;vertical-align:middle}.accordion-mark{width:24px;text-align:center;font-size:24px;line-height:18px;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-transition:-webkit-transform .15s ease;transition:transform .15s ease}.accordion-toggle.collapsed .accordion-mark{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.subcategory-toggle{padding:12px 14px;font-size:15px}.accordion-collapse{display:none}.accordion-collapse.in{display:block}.category-song-list{margin:0;border:0;border-radius:0}.category-song-list .song-row{padding-left:18px}.accordion-toggle:focus{outline:2px solid #337ab7;outline-offset:-2px}
/* PDF multipagina: tutte le pagine restano nello stesso Libretto. */
.pdfjs-stage .pdfjs-canvas{display:block;margin:0 auto 2px auto;padding:0;}

/* v1.0.54 — avanzamento installazione offline, compatibile iOS 9 */
.offline-progress{position:fixed;left:12px;right:12px;top:27px;z-index:3000;padding:10px 12px;background:#173f5f;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:5px;box-shadow:0 2px 8px rgba(0,0,0,.28);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}
.offline-progress-head{font-size:14px;line-height:18px}
.offline-progress-head strong{font-weight:600}
#offlineProgressPercent{float:right;font-weight:600}
.offline-progress-track{height:8px;margin-top:7px;overflow:hidden;background:rgba(255,255,255,.25);border-radius:4px}
.offline-progress-bar{height:8px;background:#fff;border-radius:4px;-webkit-transition:width .15s linear;transition:width .15s linear}
.offline-progress-text{clear:both;margin-top:6px;font-size:12px;line-height:15px;color:#e5eef5}
.offline-progress.is-ready .offline-progress-bar{width:100%}

/* v1.0.57 - progress offline nella modale Versione */
#offlineProgress.version-offline-status{display:block!important;position:static!important;left:auto!important;right:auto!important;top:auto!important;z-index:auto!important;margin:16px 0 2px;padding:12px;background:#f5f7f9;color:#173f5f;border:1px solid #d7e0e7;border-radius:4px;box-shadow:none;font-family:inherit}
.version-offline-head{font-size:14px;line-height:18px}.version-offline-head strong{font-weight:600}
#offlineProgressPercent{float:right;font-weight:600}.version-offline-track{height:9px;margin-top:8px;overflow:hidden;background:#d9e1e7;border-radius:5px}
.version-offline-bar{height:9px;background:#173f5f;border-radius:5px;-webkit-transition:width .12s linear;transition:width .12s linear}
.version-offline-text{clear:both;margin-top:7px;font-size:12px;line-height:16px;color:#526574}

/* v1.0.62: spazio globale di sicurezza per i footer fissi.
   Evita che le ultime righe di Indice/Categorie/Tag/Scaletta/Ricerca e delle schede brano finiscano sotto il footer. */
#browseView{padding-bottom:110px;box-sizing:border-box;}
#browseContent{padding-bottom:20px;}
.song-mode .song-tab-content{padding-bottom:110px;box-sizing:border-box;}
.song-mode .lyrics-wrap{padding-bottom:120px;box-sizing:border-box;}
.song-mode .song-info-pane{padding-bottom:120px;box-sizing:border-box;}
.song-mode .attachment-pane{height:calc(100vh - 205px - 68px);min-height:220px;box-sizing:border-box;}
@media(min-width:768px){#browseView{padding-bottom:120px}.song-mode .song-tab-content{padding-bottom:120px}}

/* v1.0.63: nella sola scheda Libretto/allegati rimuove la compensazione inferiore del footer dal contenitore tab. */
.song-mode .song-tab-content.attachment-tab-active{padding-bottom:0;}
@media(min-width:768px){.song-mode .song-tab-content.attachment-tab-active{padding-bottom:0;}}
