/* Diário de viagem */
.trip-section{padding:clamp(46px,7vw,88px) clamp(20px,7vw,110px);background:linear-gradient(100deg,rgba(244,249,251,.9),rgba(229,241,248,.72));color:#152c45;border-top:1px solid rgba(255,255,255,.55);border-bottom:1px solid rgba(21,44,69,.15);backdrop-filter:blur(9px);overflow:hidden}.trip-head{display:flex;align-items:end;justify-content:space-between;gap:30px}.trip-kicker{margin:0 0 10px;text-transform:uppercase;letter-spacing:.2em;font-size:.68rem;font-weight:700;color:#286b9e}.trip-head h2{margin:0;font:600 clamp(2.8rem,6vw,5.6rem)/.95 "Playfair Display",serif;letter-spacing:-.04em}.trip-head h2 em{color:#397fbd;font-weight:400}.trip-dates{margin:15px 0 0;color:#4e6a80}.trip-actions{display:flex;gap:8px}.trip-edit,.trip-print{border:1px solid #152c45;border-radius:99px;padding:11px 17px;background:rgba(255,255,255,.45);color:#152c45;font-weight:700}.trip-edit{background:#397fbd;border-color:#397fbd;color:#fff}.trip-route{margin:48px 0 26px;padding:18px 22px;display:flex;align-items:center;gap:16px;border:1px solid rgba(21,44,69,.16);border-radius:6px;background:rgba(239,248,252,.72)}.trip-route span{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}.trip-route b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#397fbd;color:#fff;font-size:.6rem}.trip-route i{height:1px;flex:1;background:rgba(21,44,69,.28)}.trip-timeline{display:flex;gap:14px;overflow-x:auto;padding:12px 3px 25px;scroll-snap-type:x mandatory}.trip-day{position:relative;flex:0 0 min(330px,83vw);display:grid;grid-template-columns:61px 1fr;gap:17px;padding:22px 20px 21px 18px;background:rgba(255,255,255,.72);border:1px solid rgba(21,44,69,.17);border-radius:5px;scroll-snap-align:start;box-shadow:0 12px 30px rgba(18,49,76,.09)}.trip-day.featured{background:#152c45;color:#fff}.trip-day-date{display:flex;flex-direction:column;align-items:center;padding-top:3px;border-right:1px solid rgba(21,44,69,.18)}.trip-day-date b{font:600 1rem "Playfair Display",serif}.trip-day-date small{margin-top:6px;color:#286b9e;font-size:.62rem;text-transform:uppercase}.featured .trip-day-date small{color:#b9dcf1}.trip-place{margin:0 0 7px;color:#286b9e;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em}.trip-day h3{margin:0 0 10px;font:600 1.5rem/1.05 "Playfair Display",serif}.trip-plan{min-height:64px;margin:0;color:#536f84;font-size:.78rem;line-height:1.55}.featured .trip-plan{color:rgba(255,255,255,.7)}.trip-meta{margin-top:16px;padding-top:12px;border-top:1px solid rgba(21,44,69,.17);display:flex;justify-content:space-between;gap:8px;align-items:center}.trip-meta span{font-size:.66rem}.trip-ticket{cursor:pointer;font-size:.62rem;color:#286b9e;white-space:nowrap}.trip-ticket input{display:none}.trip-ticket-name{display:block;margin-top:7px;color:#4e6a80;font-size:.6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trip-edit-note{margin:8px 0 0;color:#286b9e;font-size:.75rem}[contenteditable="true"]{outline:1px dashed #397fbd;outline-offset:3px;border-radius:2px}.category-tabs{grid-template-columns:repeat(6,1fr)}
@media(max-width:900px){.trip-head{align-items:start;flex-direction:column}.trip-route{overflow-x:auto}.category-tabs{grid-template-columns:repeat(3,1fr)}.tab{font-size:1rem;padding:18px 7px}}
@media(max-width:600px){.trip-section{padding-left:16px;padding-right:16px}.trip-actions{width:100%}.trip-actions button{flex:1}.trip-route{margin-top:30px}.category-tabs{position:static;grid-template-columns:repeat(2,1fr)}}
@media print{.lock-screen,.topbar,.library-music,.appointments-section,.category-tabs,.collection-head,.cards,.site-footer,.trip-actions,.trip-ticket{display:none!important}.app{display:block!important}.trip-section{padding:20px}.trip-timeline{display:grid;grid-template-columns:repeat(2,1fr);overflow:visible}.trip-day{break-inside:avoid;flex:auto}.trip-route{margin:20px 0}}

/* Site sem música: os formulários e a posição da senha permanecem intactos. */
.music-player,.edit-intro-music-button,.intro-music-modal{display:none!important}
.lock-photo-stage{min-height:100svh;background-image:linear-gradient(to top,rgba(8,10,10,.72) 0,rgba(8,10,10,.12) 35%,transparent 68%),var(--intro-cover-image,url("Escola-de-Atenas.jpg"));background-size:cover;background-position:center center}
.intro-cover-preview{background-image:url("Escola-de-Atenas.jpg")}
@media(max-width:700px){.lock-photo-stage{min-height:100svh;background-size:cover;background-position:center center}}

/* Paleta inspirada em Nossa Senhora do Perpétuo Socorro */
.app{--app-navy:#171b35;--app-blue:#873b36;--app-sky:#a9a392;background-image:linear-gradient(105deg,rgba(232,230,224,.52),rgba(205,202,194,.38)),var(--app-cover-image,url("Nossa-Senhora-do-Perpetuo-Socorro.jpg"));background-position:center top;background-size:cover;background-attachment:fixed;color:#171b35}
.app::before{background:linear-gradient(180deg,rgba(24,27,42,.04),rgba(45,40,37,.1))}
.app .topbar{background:rgba(239,237,231,.78);border-color:rgba(45,43,48,.22)}
.app .ghost-button,.app .add-quote-button{border-color:rgba(45,43,48,.28);background:rgba(244,242,236,.58);color:#73332f}
.app .section-kicker,.app .music-kicker,.app .brand i,.app .eyebrow.dark{color:#9d3d2f}
.app .category-tabs{background:rgba(229,226,217,.76);border-color:rgba(50,47,48,.22)}
.app .tab{color:#554f4b;border-color:rgba(50,47,48,.22)}.app .tab.active{background:#171b35;color:#f1eee7}
.app .collection-head,.app .cards{background:rgba(239,237,231,.76)}
.app .card{border-color:rgba(90,56,26,.2);box-shadow:0 12px 28px rgba(73,45,20,.13)}
.app .add-button,.app .save-button,.appointment-add,.recommendations-button{background:#873b36;border-color:#873b36;color:#fff}
.appointments-section{background:linear-gradient(100deg,rgba(239,237,231,.78),rgba(211,207,198,.62));border-color:rgba(52,48,47,.2)}
.appointment-column{background:rgba(244,242,236,.7);border-color:rgba(52,48,47,.2)}
.appointment-card{background:#f4f2ec;border-left-color:#586b5a}.done-column .appointment-card{background:#f0ebe6;border-color:#873b36}
.trip-section{background:linear-gradient(100deg,rgba(239,237,231,.8),rgba(205,201,193,.64));color:#171b35;border-color:rgba(52,48,47,.2)}
.trip-kicker,.trip-place,.trip-ticket,.trip-edit-note,.trip-day-date small{color:#73332f}.trip-head h2 em{color:#873b36}
.trip-dates,.trip-plan,.trip-ticket-name{color:#625d57}.trip-edit{background:#873b36;border-color:#873b36}.trip-print{border-color:#171b35;color:#171b35;background:rgba(242,240,234,.55)}
.trip-route{background:rgba(239,237,231,.7);border-color:rgba(52,48,47,.2)}.trip-route b{background:#777065}.trip-route i{background:rgba(48,45,45,.3)}
.trip-day{background:rgba(244,242,236,.76);border-color:rgba(52,48,47,.2);box-shadow:0 12px 30px rgba(38,35,34,.11)}.trip-day.featured{background:#171b35;color:#f0ede5}.featured .trip-day-date small{color:#c7bca9}.featured .trip-plan{color:rgba(240,237,229,.72)}
.placeholder-art,.stars{color:#8f7756}
.site-footer{background:rgba(239,237,231,.72)}
.app-cover-preview{background-image:url("Nossa-Senhora-do-Perpetuo-Socorro.jpg")}
.trip-library-bar{margin-bottom:42px;padding-bottom:20px;border-bottom:1px solid rgba(52,48,47,.2);display:flex;align-items:end;justify-content:space-between;gap:22px}.trip-library-label{display:block;margin-bottom:10px;text-transform:uppercase;letter-spacing:.2em;font-size:.65rem;font-weight:800;color:#73332f}.trip-switcher{display:flex;flex-wrap:wrap;gap:7px}.trip-switcher button{border:1px solid rgba(45,43,48,.25);border-radius:99px;background:rgba(244,242,236,.58);color:#554f4b;padding:9px 14px;font-size:.72rem;font-weight:700}.trip-switcher button.active{background:#171b35;border-color:#171b35;color:#f1eee7}.trip-add{flex:0 0 auto;border:0;border-radius:99px;background:#873b36;color:#fff;padding:12px 17px;font-weight:700}.trip-date-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.trip-form-hint{margin:0;color:#625d57;font-size:.76rem;line-height:1.5}.trip-modal .modal-card{background:#efede7}.trip-modal .save-button{background:#873b36}
.trip-stays{margin:8px 0 0;color:#73332f;font-size:.75rem;font-weight:700}.trip-details-edit{border:1px solid rgba(23,27,53,.35);border-radius:99px;padding:11px 17px;background:rgba(242,240,234,.55);color:#171b35;font-weight:700}.trip-form-actions{display:flex;align-items:center;justify-content:space-between;gap:15px}.trip-delete{border:1px solid #873b36;border-radius:99px;padding:11px 15px;background:transparent;color:#873b36;font-weight:700}.trip-form-actions .save-button{margin-left:auto}
.trip-day{flex-basis:min(430px,90vw)}.day-ticket-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.day-ticket-list span,.program-attachments span{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:5px 7px;border-radius:99px;background:rgba(115,51,47,.09);color:#62443f;font-size:.6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-ticket-list button{border:0;background:transparent;color:#873b36;padding:0;font-weight:800}.day-programs{margin-top:18px;padding-top:15px;border-top:1px solid rgba(52,48,47,.18)}.day-programs>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.day-programs>header b{font:600 1rem "Playfair Display",serif}.day-programs>header button{border:0;border-radius:99px;background:#873b36;color:#fff;padding:6px 9px;font-size:.6rem;font-weight:700}.program-list{display:grid;gap:8px;margin-top:10px}.program-empty{margin:8px 0;color:#756e68;font-size:.68rem}.program-item{display:grid;grid-template-columns:48px 1fr auto;gap:9px;padding:10px;background:rgba(239,237,231,.72);border:1px solid rgba(52,48,47,.15);border-radius:5px;color:#171b35}.featured .program-item{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.15);color:#f0ede5}.program-time{font-size:.68rem;font-weight:800;color:#873b36}.featured .program-time{color:#d9b9ad}.program-content{min-width:0}.program-content strong{font-size:.76rem}.program-content p{margin:4px 0;color:#655f5a;font-size:.65rem;line-height:1.4}.featured .program-content p{color:rgba(240,237,229,.68)}.program-attachments{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.program-photos{display:flex;gap:5px;margin-top:7px;overflow-x:auto}.program-photos img{width:56px;height:56px;flex:0 0 auto;object-fit:cover;border-radius:4px;border:1px solid rgba(52,48,47,.18)}.program-actions{display:flex;flex-direction:column;gap:4px}.program-actions button{width:25px;height:25px;border:1px solid rgba(52,48,47,.18);border-radius:50%;background:rgba(255,255,255,.55);color:#655f5a;padding:0}.program-main-fields{display:grid;grid-template-columns:130px 1fr;gap:18px}.program-file-picker{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px;border:1px dashed rgba(52,48,47,.35);cursor:pointer}.program-file-picker input{display:none}.program-file-picker span{max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#873b36;text-transform:none;letter-spacing:0}.program-modal .modal-card{background:#efede7}
.day-ticket-list .attachment-open,.program-attachments .attachment-open{border:0;background:transparent;color:#73332f;padding:0;font-size:.6rem;font-weight:700;text-decoration:underline;text-underline-offset:2px}.program-attachments .attachment-open{padding:5px 7px;border-radius:99px;background:rgba(115,51,47,.09)}.program-photos button{flex:0 0 auto;border:0;background:transparent;padding:0;border-radius:4px}.attachment-viewer{width:min(94vw,1000px);height:min(90vh,820px);padding:0;border:0;border-radius:6px;background:#171b35;color:#fff;overflow:hidden}.attachment-viewer::backdrop{background:rgba(10,11,18,.82);backdrop-filter:blur(6px)}.attachment-viewer header{height:58px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid rgba(255,255,255,.15)}.attachment-viewer header strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-viewer header button{border:0;background:transparent;color:#fff;font-size:2rem}.attachment-stage{height:calc(100% - 58px);display:grid;place-items:center;padding:16px}.attachment-stage img{max-width:100%;max-height:100%;object-fit:contain}.attachment-stage iframe{width:100%;height:100%;border:0;background:#fff}.attachment-stage p{color:rgba(255,255,255,.72)}
@media(max-width:600px){.program-main-fields{grid-template-columns:1fr}.program-item{grid-template-columns:42px 1fr auto}}
@media(max-width:700px){.trip-library-bar{align-items:stretch;flex-direction:column}.trip-add{align-self:flex-start}.trip-date-fields{grid-template-columns:1fr}.trip-switcher{flex-wrap:nowrap;max-width:calc(100vw - 32px);overflow-x:auto;padding-bottom:5px}.trip-switcher button{white-space:nowrap}}
@media(max-width:700px){.app{background-position:center top;background-attachment:scroll}}

/* Um dia da viagem por vez */
.trip-day-nav{display:flex;gap:7px;margin:0 0 18px;padding:4px 2px 12px;overflow-x:auto}.trip-day-nav button{flex:0 0 auto;min-width:72px;padding:9px 12px;border:1px solid rgba(52,48,47,.22);border-radius:5px;background:rgba(239,237,231,.66);color:#554f4b}.trip-day-nav button b,.trip-day-nav button small{display:block}.trip-day-nav button b{font-size:.7rem}.trip-day-nav button small{margin-top:3px;font-size:.55rem;text-transform:uppercase}.trip-day-nav button.active{background:#873b36;border-color:#873b36;color:#fff}.trip-timeline{display:block;overflow:visible}.trip-day{display:none;width:min(100%,760px);margin:0 auto}.trip-day.active-day{display:grid}.category-tabs{grid-template-columns:repeat(7,1fr)}

/* Financeiro */
.finance-dashboard{margin:35px clamp(14px,4vw,65px) 70px;padding:clamp(22px,4vw,46px);background:rgba(239,237,231,.84);border-radius:18px;backdrop-filter:blur(15px)}.finance-head{display:flex;align-items:end;justify-content:space-between;gap:20px}.finance-head h3{margin:7px 0 0;font:600 clamp(2.2rem,4vw,3.8rem) "Playfair Display",serif}.finance-head label{width:170px}.finance-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:30px 0}.finance-summary article{padding:20px;background:#171b35;color:#f0ede5;border-radius:7px}.finance-summary article:nth-child(2){background:#526756}.finance-summary article:nth-child(3){background:#873b36}.finance-summary article:nth-child(4){background:#625749}.finance-summary small,.finance-summary strong{display:block}.finance-summary small{text-transform:uppercase;letter-spacing:.12em;font-size:.58rem;opacity:.72}.finance-summary strong{margin-top:8px;font:600 clamp(1.2rem,2vw,1.7rem) "Playfair Display",serif}.finance-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:14px}.finance-panel,.finance-chart-panel{padding:20px;background:rgba(248,246,240,.8);border:1px solid rgba(52,48,47,.16);border-radius:8px}.finance-panel>header,.finance-chart-panel>header{display:flex;align-items:center;justify-content:space-between}.finance-panel h4,.finance-chart-panel h4{margin:0;font:600 1.25rem "Playfair Display",serif}.finance-panel header small,.finance-chart-panel header small{color:#756e68;font-size:.65rem}.finance-form{display:grid;grid-template-columns:1.4fr .7fr .8fr .7fr .9fr auto;gap:7px;margin:16px 0}.finance-form.compact{grid-template-columns:1.2fr .8fr auto}.finance-form input,.finance-form select{min-width:0;margin:0;padding:9px 7px;border:1px solid rgba(52,48,47,.18);background:rgba(255,255,255,.5)}.finance-form button{border:0;border-radius:4px;background:#873b36;color:#fff;padding:8px 11px}.finance-list{display:grid;gap:6px;max-height:240px;overflow-y:auto}.finance-list>p{color:#756e68;font-size:.75rem}.finance-list article{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:10px;border-bottom:1px solid rgba(52,48,47,.12)}.finance-list b,.finance-list small{display:block}.finance-list b{font-size:.76rem}.finance-list small{margin-top:3px;color:#756e68;font-size:.6rem}.finance-list strong{font-size:.72rem}.finance-list strong.income{color:#526756}.finance-list strong.expense{color:#873b36}.finance-list article>button{border:0;background:transparent;color:#873b36}.work-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:16px}.work-calendar b{text-align:center;font-size:.58rem;color:#756e68}.work-calendar i{height:30px}.work-calendar button{height:32px;border:1px solid rgba(52,48,47,.15);background:rgba(255,255,255,.48);color:#554f4b}.work-calendar button.worked{background:#526756;color:#fff;border-color:#526756}.finance-chart-panel{margin-top:14px}.expense-chart{height:220px;display:flex;align-items:end;gap:3px;margin-top:25px;padding-top:12px;border-bottom:1px solid rgba(52,48,47,.2)}.expense-chart div{height:100%;min-width:5px;flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center}.expense-chart span{width:100%;max-width:16px;background:#873b36;border-radius:3px 3px 0 0}.expense-chart small{margin-top:5px;font-size:.48rem;color:#756e68}
@media(max-width:1000px){.finance-summary{grid-template-columns:repeat(2,1fr)}.finance-grid{grid-template-columns:1fr}.finance-form{grid-template-columns:repeat(2,1fr)}.category-tabs{grid-template-columns:repeat(4,1fr)}}
@media(max-width:600px){.finance-dashboard{margin:15px 10px 50px;padding:18px 12px}.finance-head{align-items:start;flex-direction:column}.finance-summary{grid-template-columns:1fr 1fr}.finance-summary article{padding:14px}.finance-form,.finance-form.compact{grid-template-columns:1fr}.expense-chart{overflow-x:auto}.expense-chart div{flex:0 0 8px}.category-tabs{grid-template-columns:repeat(2,1fr)}}

/* Gastos privados da viagem e despesas recorrentes */
.trip-expenses-toggle{border:1px solid #873b36;border-radius:99px;padding:11px 17px;background:transparent;color:#873b36;font-weight:700}.trip-expenses{margin:20px 0 22px;padding:20px;background:#171b35;color:#f0ede5;border-radius:8px}.trip-expenses>header{display:flex;align-items:end;justify-content:space-between;gap:20px}.trip-expenses h3{margin:3px 0 0;font:600 1.6rem "Playfair Display",serif}.trip-expenses header small{text-transform:uppercase;letter-spacing:.14em;font-size:.55rem;color:rgba(255,255,255,.6)}.trip-expenses header strong{font:600 1.4rem "Playfair Display",serif}.trip-expenses form{display:grid;grid-template-columns:1.4fr .9fr .7fr auto;gap:8px;margin:18px 0}.trip-expenses input,.trip-expenses select{margin:0;padding:9px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.09);color:#fff}.trip-expenses select option{color:#171b35}.trip-expenses form button{border:0;border-radius:4px;background:#873b36;color:#fff;padding:9px 12px}.trip-expense-list{display:grid;gap:5px}.trip-expense-list>p{color:rgba(255,255,255,.62);font-size:.72rem}.trip-expense-list article{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:9px;border-top:1px solid rgba(255,255,255,.1)}.trip-expense-list b,.trip-expense-list small{display:block}.trip-expense-list b{font-size:.76rem}.trip-expense-list small{margin-top:2px;color:rgba(255,255,255,.55);font-size:.58rem}.trip-expense-list article>span{display:flex;gap:4px}.trip-expense-list button,.finance-row-actions button{border:0;background:transparent;color:#bcaea5}.finance-row-actions{display:flex;gap:3px}.finance-summary{grid-template-columns:repeat(6,1fr)}.finance-summary article:nth-child(5){background:#4e4650}.finance-summary article:nth-child(6){background:#6e4d48}.card-bill-panel>p{margin:14px 0 0;color:#756e68;font-size:.72rem}
@media(max-width:1100px){.finance-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.trip-expenses form{grid-template-columns:1fr}.trip-expenses>header{align-items:start;flex-direction:column}.finance-summary{grid-template-columns:repeat(2,1fr)}}

/* Comentários individuais da playlist */
.app .music-comments-toggle{padding:12px 16px;background:rgba(229,226,217,.7);border-color:rgba(52,48,47,.18);color:#73332f;text-decoration:none}.app .music-comments-panel{padding:16px;background:rgba(239,237,231,.82);border-color:rgba(52,48,47,.18)}.app .music-comment{background:rgba(248,246,240,.86);border-left-color:#873b36}.app .music-comment strong{color:#73332f}.app .music-comment p{color:#554f4b}.music-comment-form{grid-template-columns:minmax(150px,.8fr) minmax(220px,1.4fr) auto;align-items:end;gap:10px}.music-comment-form label{color:#554f4b;font-size:.6rem}.music-comment-form label input{margin-top:6px;background:rgba(248,246,240,.9);border:1px solid rgba(52,48,47,.22);border-radius:4px;padding:10px}.app .music-comment-form button{height:39px;border-radius:4px;background:#873b36;padding:8px 14px}.app .music-comment button{color:#873b36}
@media(max-width:700px){.music-comment-form{grid-template-columns:1fr}.app .music-comment-form button{width:100%}}

/* Caridade e fechamento mensal */
.category-tabs{grid-template-columns:repeat(8,1fr)}.close-month-button{border:0;border-radius:99px;background:#171b35;color:#fff;padding:9px 14px;font-size:.66rem;font-weight:700}.charity-dashboard{margin:35px clamp(14px,4vw,65px) 70px;padding:clamp(22px,4vw,46px);background:rgba(239,237,231,.84);border-radius:18px;backdrop-filter:blur(15px)}.charity-summary{margin:28px 0;padding:25px;background:#8f7756;color:#fff;border-radius:8px}.charity-summary small,.charity-summary strong{display:block}.charity-summary small{text-transform:uppercase;letter-spacing:.13em;font-size:.62rem;opacity:.75}.charity-summary strong{margin-top:8px;font:600 clamp(1.8rem,4vw,3rem) "Playfair Display",serif}.charity-entry-panel{max-width:none}.monthly-history{margin-top:16px;padding:24px;background:rgba(248,246,240,.84);border:1px solid rgba(52,48,47,.16);border-radius:8px}.monthly-history>header{display:flex;align-items:start;justify-content:space-between;gap:20px}.monthly-history h4{margin:0;font:600 1.4rem "Playfair Display",serif}.monthly-history header small{color:#756e68;font-size:.68rem}.chart-legend{display:flex;flex-wrap:wrap;gap:12px}.chart-legend span{font-size:.62rem}.chart-legend span::before{content:"";display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;background:currentColor}.chart-legend .income{color:#526756}.chart-legend .expenses{color:#873b36}.chart-legend .charity{color:#8f7756}.chart-legend .balance{color:#171b35}.monthly-line-chart{margin-top:25px;overflow-x:auto}.monthly-line-chart svg{display:block;width:100%;min-width:620px}.monthly-line-chart polyline{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.monthly-line-chart .chart-grid line{stroke:rgba(52,48,47,.12);stroke-width:1}.monthly-line-chart .chart-grid text{fill:#8b837c;font-size:10px;text-anchor:end}.monthly-line-chart .zero-line{stroke:rgba(23,27,53,.35);stroke-dasharray:4 4}.monthly-line-chart .month-label{fill:#655f5a;font-size:11px;text-anchor:middle}.history-empty{margin:35px 0;text-align:center;color:#756e68;font-size:.78rem}
@media(max-width:1050px){.category-tabs{grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){.charity-dashboard{margin:15px 10px 50px;padding:18px 12px}.monthly-history>header{flex-direction:column}.category-tabs{grid-template-columns:repeat(2,1fr)}.close-month-button{margin-top:8px}}

/* Caridade integrada ao financeiro e diário de leitura */
.finance-dashboard:not(.hidden)+.charity-dashboard{margin-top:-55px;border-radius:0 0 18px 18px}.book-extra-fields{display:grid;gap:16px;padding:16px;border:1px solid rgba(52,48,47,.16);background:rgba(239,237,231,.58)}.book-extra-fields select{display:block;width:100%;margin-top:7px;padding:10px 2px;border:0;border-bottom:1px solid #b9adb5;background:transparent}.book-photo-picker{display:flex;align-items:center;justify-content:space-between;padding:12px;border:1px dashed rgba(52,48,47,.3);cursor:pointer}.book-photo-picker input{display:none}.book-photo-picker span{color:#873b36;text-transform:none;letter-spacing:0}.book-reading-details{display:grid;gap:9px;margin-top:14px;padding-top:13px;border-top:1px solid rgba(52,48,47,.14)}.book-reading-details>div{padding:9px;background:rgba(239,237,231,.58);border-radius:4px}.book-reading-details b{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:#73332f}.book-reading-details p{margin:5px 0 0;color:#554f4b;font-size:.72rem;line-height:1.5;white-space:pre-line}.book-status{justify-self:start;padding:5px 8px;border-radius:99px;font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.book-status.nao-lido{background:#d8d3ca;color:#554f4b}.book-status.lendo{background:#8f7756;color:#fff}.book-status.lido{background:#526756;color:#fff}.book-photo-grid{display:flex!important;gap:6px;overflow-x:auto}.book-photo-grid button{border:0;background:transparent;padding:0}.book-photo-grid img{width:68px;height:68px;object-fit:cover;border-radius:4px}.reply-form{grid-template-columns:1fr auto}.reply-form .reply-text{grid-column:1}.category-tabs{grid-template-columns:repeat(7,1fr)}
@media(max-width:1000px){.category-tabs{grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){.finance-dashboard:not(.hidden)+.charity-dashboard{margin-top:-35px}.category-tabs{grid-template-columns:repeat(2,1fr)}}

/* Login real do Supabase */
.password-box .owner-email{margin:0 0 16px;padding:11px 0;border:0;border-bottom:1px solid rgba(255,255,255,.6);background:transparent;color:#fff}.password-box .owner-email::placeholder{color:rgba(255,255,255,.48)}

/* Áreas especializadas: diário, idiomas e casos */
.special-dashboard{margin:35px clamp(14px,4vw,65px) 70px;padding:clamp(22px,4vw,46px);background:rgba(239,237,231,.86);border-radius:18px;backdrop-filter:blur(15px)}.special-head h3{margin:7px 0 0;font:600 clamp(2.4rem,5vw,4.3rem) "Playfair Display",serif}.special-empty{padding:45px 15px;text-align:center;color:#756e68;border:1px dashed rgba(52,48,47,.25)}
.diary-composer{margin-top:28px;border:1px solid rgba(52,48,47,.18);background:rgba(248,246,240,.82);border-radius:8px;overflow:hidden}.editor-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:9px;border-bottom:1px solid rgba(52,48,47,.15)}.editor-toolbar button,.editor-toolbar select{height:31px;min-width:31px;border:1px solid rgba(52,48,47,.18);background:#efede7;color:#171b35;border-radius:4px}.editor-toolbar select{padding:0 7px}.editor-toolbar .color-dot{min-width:22px;width:22px;height:22px;border-radius:50%}.color-dot.ink{background:#171b35}.color-dot.wine{background:#873b36}.color-dot.green{background:#526756}.color-dot.brown{background:#8f7756}.color-dot.gray{background:#655f5a}.diary-editor{min-height:210px;padding:22px;outline:0;font-family:"DM Sans",sans-serif;line-height:1.7}.diary-editor:empty::before{content:attr(data-placeholder);color:#9a938d}.diary-compose-actions{display:flex;align-items:center;gap:12px;padding:12px;border-top:1px solid rgba(52,48,47,.15)}.diary-compose-actions label{cursor:pointer;color:#73332f}.diary-compose-actions input{display:none}.diary-compose-actions span{flex:1;color:#756e68;font-size:.65rem}.diary-compose-actions button{border:0;border-radius:99px;background:#873b36;color:#fff;padding:10px 18px}.diary-posts{display:grid;gap:14px;margin-top:18px}.diary-post{padding:22px;background:rgba(248,246,240,.84);border:1px solid rgba(52,48,47,.16);border-radius:8px}.diary-post>header{display:flex;justify-content:space-between;gap:15px}.diary-post time{color:#756e68;font-size:.65rem}.diary-post>header button{border:0;background:transparent;color:#873b36}.diary-post-copy{margin-top:15px;line-height:1.75}.diary-post-photos{display:flex;gap:8px;margin-top:15px;overflow-x:auto}.diary-post-photos button{border:0;background:transparent;padding:0}.diary-post-photos img{width:120px;height:100px;object-fit:cover;border-radius:5px}
.language-tabs{display:flex;gap:7px;margin:28px 0 16px}.language-tabs button{border:1px solid rgba(52,48,47,.2);border-radius:99px;background:rgba(248,246,240,.6);color:#554f4b;padding:10px 18px;font-weight:700}.language-tabs button.active{background:#171b35;color:#fff}.language-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.language-panel{padding:20px;background:rgba(248,246,240,.82);border:1px solid rgba(52,48,47,.16);border-radius:8px}.language-panel>header{display:flex;justify-content:space-between;align-items:center}.language-panel h4{margin:0;font:600 1.35rem "Playfair Display",serif}.language-panel>header label{padding:8px 11px;border-radius:99px;background:#873b36;color:#fff;cursor:pointer}.language-panel>header input{display:none}#languageWordForm{display:grid;grid-template-columns:.8fr .8fr 1.2fr auto;gap:7px;margin:16px 0}#languageWordForm input{margin:0;padding:9px;border:1px solid rgba(52,48,47,.18);background:#fff}#languageWordForm button{border:0;background:#873b36;color:#fff}.word-list,.language-track-list{display:grid;gap:6px;max-height:320px;overflow-y:auto}.word-list article,.language-track-list article{display:flex;align-items:center;gap:10px;padding:10px;background:rgba(239,237,231,.65);border-bottom:1px solid rgba(52,48,47,.1)}.word-list article>div{flex:1}.word-list b,.word-list span,.word-list small{display:block}.word-list b{font-size:.8rem}.word-list span{color:#73332f;font-size:.72rem}.word-list small{margin-top:3px;color:#756e68;font-size:.62rem}.word-list button,.language-track-list button{border:0;background:transparent;color:#873b36}.language-player{display:flex;align-items:center;gap:12px;margin:16px 0;padding:12px;background:#171b35;color:#fff;border-radius:6px}.language-player>button{width:38px;height:38px;border:0;border-radius:50%;background:#873b36;color:#fff}.language-player strong,.language-player small{display:block}.language-player small{margin-top:3px;color:rgba(255,255,255,.58)}.language-track-list article>span{width:22px}.language-track-list article>[data-language-track]{flex:1;text-align:left;color:#554f4b}.language-track-list article.active{background:rgba(135,59,54,.12)}
.medical-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}.medical-form-panel,.phrase-library{padding:20px;background:rgba(248,246,240,.82);border:1px solid rgba(52,48,47,.16);border-radius:8px}.medical-layout h4{margin:0 0 16px;font:600 1.35rem "Playfair Display",serif}.medical-form-panel form,.phrase-library form{display:grid;gap:11px}.medical-form-panel input,.medical-form-panel textarea,.phrase-library textarea,.medical-search input{margin-top:5px;padding:9px;border:1px solid rgba(52,48,47,.2);background:#fff}.medical-form-panel form>button,.phrase-library form>button{justify-self:end;border:0;border-radius:99px;background:#873b36;color:#fff;padding:10px 15px}.medical-search{display:block;margin-top:18px}.phrase-results{display:grid;gap:7px;margin-top:12px;max-height:300px;overflow-y:auto}.phrase-results article{display:flex;align-items:start;justify-content:space-between;gap:10px;padding:10px;background:rgba(239,237,231,.68)}.phrase-results p{margin:0;font-size:.72rem;line-height:1.5}.phrase-results article div{display:flex;gap:4px}.phrase-results button{border:0;background:transparent;color:#873b36;font-size:.62rem}.medical-cases{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:14px}.medical-case{position:relative;display:grid;grid-template-columns:110px 1fr;gap:13px;padding:13px;background:rgba(248,246,240,.84);border:1px solid rgba(52,48,47,.16)}.case-image{width:110px;height:110px;border:0;padding:0;background:#d8d3ca}.case-image img{width:100%;height:100%;object-fit:cover}.case-image.placeholder{display:grid;place-items:center;color:#756e68;font-size:.65rem}.medical-case span,.medical-case small{color:#756e68;font-size:.6rem}.medical-case h4{margin:5px 24px 4px 0;font-family:"Playfair Display",serif}.medical-case p{margin:8px 0 0;font-size:.7rem;line-height:1.5}.case-delete{position:absolute;right:8px;top:8px;border:0;background:transparent;color:#873b36}
@media(max-width:900px){.language-grid,.medical-layout{grid-template-columns:1fr}#languageWordForm{grid-template-columns:1fr 1fr}.special-dashboard{margin-left:10px;margin-right:10px}}
@media(max-width:600px){#languageWordForm{grid-template-columns:1fr}.diary-compose-actions{flex-wrap:wrap}.medical-case{grid-template-columns:80px 1fr}.case-image{width:80px;height:80px}}
.fixed-track{padding:4px 7px;border-radius:99px;background:rgba(135,59,54,.12);color:#73332f;font-size:.55rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.playlist-item.active .fixed-track{background:rgba(255,255,255,.18);color:#fff}

/* Permissões do visitante: roteiro e fotos visíveis, dados privados e edição ocultos. */
.app.visitor-mode .trip-expenses-toggle,.app.visitor-mode .trip-expenses,.app.visitor-mode .trip-ticket,.app.visitor-mode .day-ticket-list,.app.visitor-mode .program-attachments,.app.visitor-mode #editTripDetails,.app.visitor-mode #toggleTripEdit,.app.visitor-mode #openTripModal,.app.visitor-mode .day-programs>header button,.app.visitor-mode .program-actions{display:none!important}
