@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap');
:root{
  --navy:#153b66;--navy-dark:#102f57;--blue:#2f6ea5;--blue-soft:#eef6fc;--blue-line:#d6e4f0;
  --bg:#eef5fb;--card:#fff;--text:#20364d;--muted:#718397;--line:#dbe8f3;--green:#067647;--red:#b42318;
  --amber:#9a6b00;--shadow:0 4px 18px rgba(19,59,102,.08);--radius:18px
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:'Poppins','Segoe UI',sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}a{color:inherit}
h1,h2,h3,h4,h5{color:var(--navy);margin-top:0}.boot{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--navy)}.boot img{width:52px}
#toast-root{position:fixed;right:18px;top:18px;z-index:9999;display:grid;gap:8px}.toast{max-width:420px;background:#fff;border:1px solid var(--line);border-left:5px solid var(--blue);box-shadow:0 12px 36px rgba(19,59,102,.18);padding:11px 14px;border-radius:12px;font-size:.82rem}.toast.success{border-left-color:#067647}.toast.error{border-left-color:#b42318}.toast.warn{border-left-color:#c48a00}
/* LOGIN — replica do fluxo simples do Streamlit */
.login-page{min-height:100vh;background:var(--bg);display:flex;align-items:flex-start;justify-content:center;padding:55px 18px}.login-panel{width:min(760px,100%)}.login-card{background:transparent;max-width:620px;margin:auto}.login-logo{width:280px;max-width:78%;height:auto;display:block;margin:0 0 12px}.login-card h1{font-size:2.15rem;margin:0 0 2px}.login-card .subtitle{color:#5d7892;margin:0 0 22px}.login-form-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.login-help{margin-top:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px}.login-help summary{font-weight:700;color:var(--navy);cursor:pointer}.connection{font-size:.76rem;color:var(--muted);margin:9px 0}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.dot.ok{background:#1f9d55}
/* APP */
.shell{min-height:100vh;display:grid;grid-template-columns:282px minmax(0,1fr)}.sidebar{position:fixed;left:0;top:0;bottom:0;width:282px;background:#f7fbff;border-right:1px solid #d7e5f1;padding:16px 13px;overflow:auto;z-index:60}.sidebar-brand img{width:190px;max-width:100%;display:block;background:transparent}.sidebar-subtitle{font-size:.70rem;line-height:1.35;color:#647d94;margin:8px 0 12px}.sidebar-account{padding:10px 8px 12px;border-top:1px solid #dce8f2;border-bottom:1px solid #dce8f2}.sidebar-account-title{font-size:.77rem;font-weight:800;color:var(--navy);margin-bottom:4px}.sidebar-account small{display:block;color:#718397;font-size:.68rem;line-height:1.5}.nav{padding:5px 0 10px}.nav-section{font-size:.72rem;font-weight:800;color:#6f879e;text-transform:uppercase;letter-spacing:.06em;margin:.72rem .25rem .25rem}.nav-btn{width:100%;display:flex;align-items:center;gap:.55rem;min-height:42px;padding:.58rem .75rem;margin:.12rem 0;border-radius:12px;border:1px solid var(--blue-line);background:#fff;color:var(--navy);font-weight:600;font-size:.89rem;text-align:left;box-shadow:0 1px 5px rgba(19,59,102,.04)}.nav-btn:hover{border-color:#7faed4;background:#eef6fc}.nav-btn.active{background:#163b65;color:#fff;border-color:#163b65;box-shadow:0 4px 12px rgba(22,59,101,.18)}.nav-icon{flex:0 0 1.35rem;width:1.35rem;text-align:center;font-size:1rem}.sidebar-footer{border-top:1px solid #dce8f2;padding:12px 7px 4px;display:grid;gap:7px}.sidebar-footer small{font-size:.67rem;color:#718397}.cloud-ok{font-size:.72rem;padding:8px 10px;border-radius:10px;background:#e7f5ec;color:#1f6b35;font-weight:700}.sidebar-tools{display:flex;gap:6px}.sidebar-tools .btn{flex:1}.main{grid-column:2;min-width:0}.mobile-strip{display:none}.content{padding:18px 28px 40px;max-width:1450px;margin:auto}.account-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;font-size:.75rem;color:#718397}.brand-row{display:grid;grid-template-columns:230px 1fr;gap:14px;align-items:center;margin-bottom:16px}.brand-row img{width:220px;max-width:100%;background:transparent}.brand-row h1{font-size:2.25rem;margin:0}.brand-row p{font-size:.82rem;color:#718397;margin:3px 0 0}.content-rule{height:1px;background:#d9e6f1;margin:8px 0 18px}
/* STREAMLIT-LIKE CONTROLS */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:0 0 14px}.page-head h2{font-size:1.45rem;margin:0}.page-head p{margin:4px 0 0;color:#718397;font-size:.79rem}.page-actions{display:flex;gap:7px;flex-wrap:wrap}.btn{border:1px solid #d6e4f0;background:#fff;color:#153b66;padding:.54rem .78rem;border-radius:10px;font-weight:650;font-size:.78rem;box-shadow:0 1px 4px rgba(19,59,102,.04)}.btn:hover{background:#eef6fc;border-color:#7faed4}.btn.primary,.btn.blue,.btn.navy{background:#163b65;color:#fff;border-color:#163b65}.btn.red{background:#fff5f4;color:#b42318;border-color:#efb4b0}.btn.green{background:#eefaf2;color:#067647;border-color:#b8dec5}.btn.ghost{background:#fff}.btn.small{padding:.38rem .58rem;font-size:.70rem}.btn.full{width:100%}.btn:disabled{opacity:.55;cursor:not-allowed}.icon-btn{border:1px solid #d6e4f0;background:#fff;color:#153b66;border-radius:9px;padding:7px 10px}.field{display:grid;gap:5px;margin-bottom:11px}.field label{font-size:.72rem;color:#4f6982;font-weight:700}.field input,.field select,.field textarea,.filters input,.filters select,.toolbar input,.toolbar select{width:100%;border:1px solid #cfe0ef;background:#fff;border-radius:9px;padding:8px 10px;color:#20364d;outline:none}.field textarea{min-height:88px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#79a9d4;box-shadow:0 0 0 3px rgba(47,110,165,.09)}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.span2{grid-column:span 2}.span3{grid-column:span 3}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:9px;margin:10px 0 14px}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 14px}.radio-strip,.subnav,.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 16px}.radio-strip{background:#fff;border:1px solid #dbe8f3;border-radius:12px;padding:7px}.tab-btn,.subnav .btn{border:1px solid #d6e4f0;background:#fff;color:#153b66;padding:.50rem .72rem;border-radius:10px;font-weight:650;font-size:.76rem}.tab-btn.active,.subnav .btn.active{background:#163b65;color:#fff;border-color:#163b65}.checkbox-line{display:flex;align-items:center;gap:8px;font-size:.75rem}.year-select{border:1px solid #cfe0ef;border-radius:9px;background:#fff;padding:7px 9px;color:#153b66}
/* CARDS */
.card,.app-card{background:#fff;border-radius:18px;padding:18px;margin-bottom:14px;box-shadow:0 4px 18px rgba(19,59,102,.08);border:1px solid #dbe8f3}.card.flat{box-shadow:none}.grid{display:grid;gap:14px}.grid.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{min-height:112px;display:flex;flex-direction:column;justify-content:center}.metric .label,.general-stat-label{font-size:.76rem;color:#5d7690;font-weight:700;line-height:1.2}.metric .value,.general-stat-value{font-size:1.8rem;color:#153b66;font-weight:800;line-height:1;margin-top:8px}.metric .note,.general-stat-source{font-size:.65rem;color:#8294a6;margin-top:8px}.general-stat-card{background:#fff;border:1px solid #d7e5f1;border-radius:16px;padding:15px 16px;box-shadow:0 3px 14px rgba(19,59,102,.07);min-height:118px;display:flex;flex-direction:column;justify-content:center}.baseline-box{background:#f7fbff;border:1px solid #cfe0ef;border-radius:14px;padding:12px 14px;min-height:86px}.baseline-label{font-size:.72rem;color:#5d7892;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.baseline-value{font-size:1.35rem;color:#153b66;font-weight:800;margin-top:4px}.baseline-note{font-size:.72rem;color:#718397;margin-top:4px}.notice{padding:10px 12px;border-radius:10px;margin:9px 0;background:#eef6fc;color:#24587f;border:1px solid #cfe0ef;font-size:.75rem;line-height:1.45}.notice.success{background:#e7f5ec;color:#1f6b35;border-color:#c5e2ce}.notice.warn{background:#fff5dc;color:#7d5c00;border-color:#edd697}.notice.error{background:#fdeceb;color:#9d2822;border-color:#efb4b0}.status-ok{background:#e7f5ec;color:#1f6b35;border-radius:10px;padding:8px 10px}.status-warn{background:#fff5dc;color:#7d5c00;border-radius:10px;padding:8px 10px}.pill{display:inline-flex;align-items:center;padding:.24rem .58rem;border-radius:999px;font-size:.67rem;font-weight:800;border:1px solid transparent}.pill.blue{background:#e8f2ff;color:#175c99;border-color:#b8d5ef}.pill.green{background:#e7f5ec;color:#1f6b35;border-color:#c5e2ce}.pill.red{background:#fde8e7;color:#a22b25;border-color:#efb4b0}.pill.amber{background:#fff4cc;color:#7b5b00;border-color:#efd47a}.pill.gray{background:#f0f3f6;color:#607385;border-color:#d9e1e8}.tag{background:#f2f7fb;color:#607a92;border-radius:7px;padding:3px 7px;font-size:.65rem}.meta-id,.goal-id{font-size:.76rem;color:#47759e;font-weight:700}.goal-card{background:#fff;border-radius:16px;padding:18px;margin-bottom:12px;border:1px solid #dbe8f3;box-shadow:0 2px 10px rgba(19,59,102,.05)}.goal-head{display:flex;justify-content:space-between;gap:12px}.goal-title{font-weight:700;color:#20364d;font-size:.93rem;margin:5px 0}.goal-meta{display:flex;gap:6px;flex-wrap:wrap}.goal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.goal-stat{background:#f7fbff;border:1px solid #dbe8f3;border-radius:11px;padding:9px}.goal-stat small{display:block;color:#718397;font-size:.66rem}.goal-stat strong{display:block;color:#153b66;font-size:1rem;margin-top:3px}.progress{height:7px;background:#e7eef5;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:#2f6ea5}.negative-value{color:#b42318!important}.positive-value{color:#067647!important}
/* INÍCIO — cartões idênticos ao desktop */
.people-grid-admin{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.people-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.person-card{display:block;text-decoration:none;color:#153b66;background:#fff;border-radius:18px;padding:0;text-align:center;overflow:hidden;box-shadow:0 5px 20px rgba(19,59,102,.10);border:1px solid #d7e5f1;transition:.18s ease;height:244px;cursor:pointer}.person-card:hover{transform:translateY(-3px);border-color:#79a9d4;box-shadow:0 8px 24px rgba(19,59,102,.14)}.person-photo-area{width:100%;height:184px;background:linear-gradient(145deg,#dceaf6,#c6daeb);display:flex;align-items:center;justify-content:center;overflow:hidden}.person-photo-area img{width:100%;height:100%;object-fit:cover;object-position:50% 0%;transform-origin:50% 18%;transition:transform .2s ease}.people-grid-admin .person-photo-area img{object-position:50% 10%;transform:scale(1.02)}.people-grid .person-photo-area img{object-position:50% 8%;transform:scale(1.30);transform-origin:50% 10%}.person-photo-placeholder{width:82px;height:82px;border-radius:50%;background:#2f6ea5;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.75rem;box-shadow:0 4px 12px rgba(19,59,102,.18)}.person-name-box{height:60px;padding:7px 10px 6px;background:#fff;border-top:1px solid #e1ebf4;display:flex;flex-direction:column;justify-content:center}.person-role{display:block;font-weight:700;font-size:.68rem;color:#5680a5;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.person-name{display:block;font-weight:800;font-size:.93rem;line-height:1.15;color:#153b66}.person-sub{display:block;color:#6b7d90;font-size:.68rem;margin-top:3px}.dept-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dept-card{display:block;text-decoration:none;color:#153b66;background:#fff;border-radius:16px;padding:20px;box-shadow:0 3px 14px rgba(19,59,102,.07);border-left:6px solid #2f6ea5;font-weight:700;cursor:pointer}.dept-card:hover{background:#f9fcff}.admin-section-title,.team-section-title{color:#153b66;font-weight:800}.team-section-title{margin-top:1.3rem}
/* TABLES / DETAILS */
.table-wrap{background:#fff;border:1px solid #dbe8f3;border-radius:14px;overflow:auto;box-shadow:0 3px 14px rgba(19,59,102,.06)}.table{width:100%;border-collapse:collapse;font-size:.72rem;min-width:720px}.table th{background:#f5f9fc;color:#536e86;text-align:left;padding:9px 10px;border-bottom:1px solid #dbe8f3;white-space:nowrap;position:sticky;top:0}.table td{padding:9px 10px;border-bottom:1px solid #edf3f7;vertical-align:top}.table tr:hover td{background:#fbfdff}.table td.long{max-width:420px;white-space:normal}.empty{text-align:center;padding:26px;color:#718397}.details{background:#fff;border:1px solid #dbe8f3;border-radius:12px;margin:10px 0}.details summary{padding:11px 13px;font-weight:750;color:#153b66;cursor:pointer}.details-body{padding:0 13px 13px}.separator{height:1px;background:#dbe8f3;margin:18px 0}.kpi-line{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:.72rem;color:#718397}.code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;background:#f6f9fb;border:1px solid #dbe8f3;border-radius:7px;padding:8px;white-space:pre-wrap;overflow:auto}
/* CALENDÁRIO */
.calendar-grid{display:grid;grid-template-columns:repeat(3,minmax(300px,1fr));gap:14px}.month-card{background:#fff;border:1px solid #d7e5f1;border-radius:16px;padding:12px;box-shadow:0 3px 14px rgba(19,59,102,.07)}.month-title{text-align:center;font-weight:800;color:#153b66;font-size:1.05rem;margin:4px 0 8px}.week-head,.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.week-head span{text-align:center;font-size:.64rem;color:#526e88;padding:4px 0}.day{border:0;background:transparent;min-height:36px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#244a70;font-size:.72rem;position:relative}.day.blank{visibility:hidden}.day:hover{background:#dcecf8}.day.event-blue{background:#e8f2ff;color:#175c99;border-radius:0}.day.event-red{background:#f04b47;color:#fff;border-radius:0}.day.range-start{border-radius:10px 0 0 10px}.day.range-end{border-radius:0 10px 10px 0}.day.single{border-radius:10px}.day.today{box-shadow:inset 0 0 0 2px #70839a}.month-events{border-top:1px solid #dbe8f3;margin-top:9px;padding-top:8px;font-size:.64rem}.month-event{display:grid;grid-template-columns:26px 1fr 10px;gap:6px;padding:3px 0;align-items:center}.event-dot{width:7px;height:7px;border-radius:50%;background:#2f6ea5}.event-dot.red{background:#f04b47}
/* ITINERÁRIO */
.itinerary-people{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.itinerary-person-card{background:#fff;border-radius:16px;text-align:center;overflow:hidden;box-shadow:0 4px 15px rgba(19,59,102,.08);border:1px solid #d7e5f1;height:176px;cursor:pointer}.itinerary-person-photo{width:100%;height:126px;background:#dceaf6;display:flex;align-items:center;justify-content:center;overflow:hidden}.itinerary-person-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%}.itinerary-person-name{height:50px;display:flex;align-items:center;justify-content:center;padding:5px 8px;font-weight:700;font-size:.78rem}.quarter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.month-it-card{background:#fff;border:1px solid #dbe8f3;border-radius:14px;padding:13px}.month-it-card h4{text-align:center}.saturday-row,.itinerary-day-row{display:grid;grid-template-columns:102px 1fr;gap:8px;align-items:center;margin-bottom:7px}.saturday-row label,.itinerary-day-row label{font-size:.68rem;font-weight:700;color:#5d7892}.itinerary-day-row label span{font-size:.58rem;font-weight:600;color:#8aa0b5;margin-left:3px}.saturday-row input,.itinerary-day-row input{border:1px solid #cfe0ef;border-radius:8px;padding:6px 8px;width:100%}.itinerary-day-row.is-saturday{background:#eef6ff;border-radius:8px;padding:4px}.general-stat-text{font-size:1rem;font-weight:800;color:#12375f;margin-top:7px}.small-value{font-size:1.25rem!important}
/* MODAL */
.modal-backdrop{position:fixed;inset:0;background:rgba(16,47,87,.58);z-index:1000;display:grid;place-items:center;padding:20px}.modal{background:#fff;width:min(900px,96vw);max-height:92vh;overflow:auto;border-radius:16px;box-shadow:0 20px 70px rgba(0,0,0,.32)}.modal.wide{width:min(1200px,96vw)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 17px;border-bottom:1px solid #dbe8f3;position:sticky;top:0;background:#fff;z-index:2}.modal-head h3{margin:0}.modal-close{border:0;background:#eef3f7;border-radius:8px;width:33px;height:33px}.modal-body{padding:17px}.list-stack{display:grid;gap:8px}.list-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px;border:1px solid #dbe8f3;border-radius:10px;background:#fff}.list-item small{display:block;color:#718397;margin-top:3px;font-size:.68rem}.upload-zone{border:2px dashed #c5d8e8;border-radius:14px;padding:24px;text-align:center;background:#f9fcff}.chart-card{height:340px}.chart-card canvas{max-height:280px}
/* RESPONSIVO */
.mobile-overlay{display:none}.mobile-menu{display:none}
@media(max-width:1180px){.grid.cards{grid-template-columns:repeat(2,1fr)}.people-grid{grid-template-columns:repeat(3,1fr)}.itinerary-people{grid-template-columns:repeat(4,1fr)}.calendar-grid{grid-template-columns:repeat(2,1fr)}.filters{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.shell{display:block}.sidebar{transform:translateX(-105%);transition:.2s}.sidebar.open{transform:translateX(0)}.main{grid-column:auto}.mobile-strip{display:flex;position:sticky;top:0;z-index:50;height:52px;background:#fff;border-bottom:1px solid #dbe8f3;align-items:center;padding:0 12px;gap:10px}.mobile-menu{display:block;border:1px solid #d6e4f0;background:#fff;border-radius:9px;padding:6px 10px}.content{padding:13px 12px 30px}.brand-row{grid-template-columns:180px 1fr}.brand-row img{width:170px}.brand-row h1{font-size:1.8rem}.people-grid-admin,.people-grid,.dept-grid,.grid.two,.grid.three,.quarter-grid{grid-template-columns:1fr 1fr}.itinerary-people{grid-template-columns:repeat(3,1fr)}.calendar-grid{grid-template-columns:1fr}.mobile-overlay.show{display:block;position:fixed;inset:0;background:#0007;z-index:55}.form-grid,.form-grid.two{grid-template-columns:1fr}.span2,.span3{grid-column:auto}.page-head{flex-direction:column}.goal-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.people-grid-admin,.people-grid,.dept-grid,.grid.cards,.grid.two,.grid.three,.itinerary-people,.quarter-grid{grid-template-columns:1fr}.person-card{height:224px}.person-photo-area{height:164px}.filters{grid-template-columns:1fr}.account-top{align-items:flex-start;flex-direction:column}.brand-row{grid-template-columns:150px 1fr}.brand-row img{width:140px}}
@media print{.sidebar,.mobile-strip,.account-top,.page-actions,.btn,.subnav,.tabs,.radio-strip{display:none!important}.shell{display:block}.main{display:block}.content{padding:0;max-width:none}.card,.month-card,.goal-card{box-shadow:none;break-inside:avoid}.calendar-grid{grid-template-columns:repeat(3,1fr)}}

/* IDEA Web 2.2.0 — cartões estruturados equivalentes ao Desktop */
.goal-structure-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.baseline-value.compact-lines{font-size:1rem;line-height:1.58;font-weight:600}
.baseline-value.compact-lines b{font-weight:800;color:#153b66}
@media(max-width:900px){.goal-structure-grid{grid-template-columns:1fr}}

/* IDEA Web 2.1.7 — Itinerário: foto compacta e sábados obrigatórios */
.itinerary-profile-header{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #d7e5f1;border-radius:16px;padding:12px 14px;margin-bottom:14px;box-shadow:0 4px 15px rgba(19,59,102,.06)}
.itinerary-profile-header .itinerary-person-photo{width:74px;height:74px;min-width:74px;border-radius:50%;border:3px solid #123f70;overflow:hidden;background:#e7f0f8}
.itinerary-profile-header .itinerary-person-photo img{width:100%;height:100%;object-fit:cover;object-position:center 18%}
.itinerary-profile-copy{flex:1;min-width:0}.itinerary-profile-copy h3{margin:0 0 5px}.itinerary-required-note{font-size:.72rem;font-weight:800;color:#9d4b00}
.itinerary-day-row.is-saturday{background:#fff4df;border:2px solid #e59b2f;border-radius:10px;padding:7px 6px;box-shadow:0 2px 7px rgba(169,100,8,.12)}
.itinerary-day-row.is-saturday label{color:#713d00;font-size:.72rem}.itinerary-day-row.is-saturday label span{color:#9a610c}.itinerary-day-row.is-saturday label em{display:block;width:max-content;margin-top:3px;padding:2px 5px;border-radius:999px;background:#9d4b00;color:#fff;font-style:normal;font-size:.48rem;letter-spacing:.04em}
.itinerary-day-row.is-saturday input{border:2px solid #d78a1c;background:#fffdf8;font-weight:700}.itinerary-day-row.is-saturday input:focus{outline:3px solid rgba(215,138,28,.18);border-color:#a85f00}
@media(max-width:600px){.itinerary-profile-header{align-items:flex-start;flex-wrap:wrap}.itinerary-profile-header .btn{width:100%}}

/* IDEA 2.1.8 — histórico de batismos em cartões */
.grid.cards.group-baptism-history{
  grid-template-columns:repeat(5,minmax(0,1fr));
  margin-bottom:18px;
}
.group-baptism-history .card.metric{
  min-height:112px;
}
.group-baptism-history .card.metric .label{
  font-size:.82rem;
  font-weight:700;
}
.group-baptism-history .card.metric .value{
  font-size:1.8rem;
}

.goal-status-single{margin-top:12px}
.goal-status-single .baseline-box{min-height:92px}
@media (max-width:900px){
  .grid.cards.group-baptism-history{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:520px){
  .grid.cards.group-baptism-history{grid-template-columns:1fr;}
}

/* IDEA 2.2.0 — auditoria RID e upload inteligente */
.rid-audit-strip{margin-top:10px;padding:9px 11px;border:1px solid #cfe0ee;border-radius:10px;background:#f5faff;color:#234765;font-size:.72rem;line-height:1.45}
.rid-audit-strip>div+div{margin-top:4px;padding-top:4px;border-top:1px dashed #d8e6f1}
#smart-analysis .table-wrap{margin:10px 0 12px}

/* IDEA 2.2.4 — calendário com atualização parcial */
.calendar-approval-panel,.calendar-view-panel{background:#fff;border:1px solid #d7e5f1;border-radius:16px;padding:14px;margin:14px 0;box-shadow:0 3px 14px rgba(19,59,102,.06)}
.calendar-approval-panel{border-left:4px solid #d29b28}
.calendar-view-panel{border-left:4px solid #2f6ea5}
.calendar-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.calendar-section-head h3{margin:0;color:#153b66;font-size:1.02rem}
.calendar-section-head p{margin:4px 0 0;color:#718397;font-size:.74rem}
.calendar-count-badge{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid #bad3e8;background:#eef6fc;color:#174f7d;border-radius:999px;padding:5px 9px;font-size:.68rem;font-weight:800}
.calendar-count-badge.pending{border-color:#ead3a2;background:#fff8e8;color:#8a5d07}
.calendar-approval-actions{display:flex;gap:4px;flex-wrap:wrap}
.calendar-manage-all{margin-top:12px}
.calendar-view-panel .calendar-grid{margin-top:4px}
@media(max-width:700px){.calendar-section-head{flex-direction:column}.calendar-count-badge{align-self:flex-start}.calendar-approval-panel,.calendar-view-panel{padding:11px}}

/* IDEA 2.2.5 — controle de dados sensíveis */
.sensitive-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:10px;
  margin:14px 0 18px;
}
.sensitive-option{
  border:1px solid var(--border,#d9e3ec);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
  min-height:44px;
}
.sensitive-option input{margin-right:8px}

/* IDEA 2.3.0 — fluxo administrativo do calendário */
.calendar-approval-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:14px 0 16px;padding:12px;border:1px solid #dbe7f1;border-radius:14px;background:#f8fbfe}
.calendar-approval-toolbar .field{margin:0;min-width:190px}
.calendar-status-tabs{display:flex;gap:8px;flex-wrap:wrap}
.calendar-status-tab{border:1px solid #cbd9e5;background:#fff;border-radius:999px;padding:9px 14px;font-weight:700;color:#40556a;cursor:pointer}
.calendar-status-tab b{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;margin-left:5px;border-radius:999px;background:#edf3f8}
.calendar-status-tab.active{border-color:#2f6ea5;background:#edf5fb;color:#174f7f;box-shadow:0 0 0 2px rgba(47,110,165,.08)}
.calendar-approval-list{display:grid;gap:10px}
.calendar-approval-card{display:grid;grid-template-columns:120px 1fr;gap:14px;border:1px solid #d9e4ed;border-left:5px solid #d29b28;border-radius:14px;background:#fff;padding:12px 14px;box-shadow:0 2px 10px rgba(19,59,102,.05)}
.calendar-approval-card.calendar-status-aprovado{border-left-color:#37835a}
.calendar-approval-card.calendar-status-reprovado{border-left-color:#b64c4c}
.calendar-approval-date{display:flex;flex-direction:column;gap:4px;border-right:1px solid #e2eaf0;padding-right:12px}
.calendar-approval-date strong{font-size:1rem;color:#183b5b}
.calendar-approval-date span{font-size:.82rem;color:#718295;text-transform:uppercase;letter-spacing:.04em}
.calendar-approval-main{min-width:0}
.calendar-approval-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.calendar-approval-title-row h4{margin:0;font-size:1rem;color:#1c344a}
.calendar-status-chip{white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:.75rem;font-weight:800;border:1px solid #dfc27c;background:#fff7de;color:#805e14}
.calendar-status-chip.calendar-status-aprovado{border-color:#9bcbb2;background:#eef8f2;color:#276244}
.calendar-status-chip.calendar-status-reprovado{border-color:#deb0b0;background:#fff0f0;color:#8b3030}
.calendar-event-meta{display:flex;gap:8px 16px;flex-wrap:wrap;margin:8px 0;color:#5b6d7e;font-size:.84rem}
.calendar-conflict-badge{display:inline-block;margin:4px 0 8px;padding:6px 9px;border-radius:9px;background:#fff5dc;border:1px solid #ecd19a;color:#795512;font-size:.82rem;font-weight:700}
.calendar-approval-note{margin:5px 0 8px;padding:7px 9px;border-left:3px solid #8298ab;background:#f3f6f8;color:#516475;font-size:.82rem}
.calendar-conflict-list{display:grid;gap:8px;margin:12px 0}
.calendar-conflict-item{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid #ead39b;border-radius:10px;background:#fff9eb}
.calendar-conflict-item span{font-size:.84rem;color:#6d6250}
@media(max-width:700px){.calendar-approval-card{grid-template-columns:1fr}.calendar-approval-date{border-right:0;border-bottom:1px solid #e2eaf0;padding-right:0;padding-bottom:8px}.calendar-approval-title-row{flex-direction:column}.calendar-status-tabs{width:100%}.calendar-status-tab{flex:1;min-width:105px}.calendar-approval-toolbar{align-items:stretch}.calendar-approval-toolbar .field{min-width:100%}}

/* IDEA 2.3.3 — enquadramento uniforme das fotos */
.person-photo-area[data-person-photo="debora rodrigues"] img{transform:scale(1.58);transform-origin:50% 22%;}
.person-photo-area[data-person-photo="itamar lelis"] img,.person-photo-area[data-person-photo="daniel toledo"] img{object-position:50% 0%;}
.itinerary-person-photo img{object-position:50% 0%;}
.calendar-classification-warning{margin-top:8px;padding:8px 10px;border-radius:10px;background:#fff3cd;border:1px solid #f1cf75;color:#785600;font-size:.78rem;font-weight:700;}

/* Ajuste fino do enquadramento dos Departamentais */
.people-grid .person-photo-area[data-person-photo="fabio goncalves"] img{transform:scale(1.18);transform-origin:50% 12%;object-position:50% 10%;}
.people-grid .person-photo-area[data-person-photo="fabio rodrigues"] img{transform:scale(1.34);transform-origin:50% 9%;object-position:50% 6%;}
.people-grid .person-photo-area[data-person-photo="gabriel pasquale"] img{transform:scale(1.36);transform-origin:50% 9%;object-position:50% 6%;}
.people-grid .person-photo-area[data-person-photo="marcela borges"] img{transform:scale(1.36);transform-origin:50% 10%;object-position:50% 7%;}
.people-grid .person-photo-area[data-person-photo="mayko cordeiro"] img{transform:scale(1.52);transform-origin:50% 6%;object-position:50% 2%;}
.people-grid .person-photo-area[data-person-photo="paulo lira"] img{transform:scale(1.48);transform-origin:50% 7%;object-position:50% 3%;}
.people-grid .person-photo-area[data-person-photo="debora rodrigues"] img{transform:scale(1.46);transform-origin:50% 14%;object-position:50% 8%;}
.people-grid .person-photo-area[data-person-photo="alex da fonseca"] img{transform:scale(1.40);transform-origin:50% 8%;object-position:50% 4%;}
.people-grid .person-photo-area[data-person-photo="anderson soares"] img{transform:scale(1.40);transform-origin:50% 8%;object-position:50% 4%;}

/* 2.3.7 — restaura SOMENTE o enquadramento dos Departamentais ao padrão 2.3.2.
   Administração permanece com a configuração atual. */
.people-grid .person-photo-area img,
.people-grid .person-photo-area[data-person-photo] img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: 50% 18% !important;
  transform: none !important;
  transform-origin: initial !important;
}


/* IDEA 2.3.11 */
.negative-value{color:#c62828!important}
.person-summary-header{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid #d7e5f1;border-radius:18px;padding:14px 18px;box-shadow:0 4px 16px rgba(19,59,102,.07);margin-bottom:18px}
.person-summary-photo{width:220px;flex:0 0 220px}.person-summary-photo .itinerary-person-photo{width:220px;height:150px;border-radius:14px}
.person-summary-copy h3{margin:0 0 5px;font-size:1.3rem;color:#153b66}.person-summary-copy p{margin:0;color:#6b7d90}
.person-dept-jump{width:100%;text-align:left}.person-goal-section{scroll-margin-top:70px;margin-top:20px}.person-goal-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:2px solid #dbe8f3;margin-bottom:12px;padding-bottom:8px}.person-goal-section-head h3{margin:0}
@media(max-width:600px){.person-summary-header{flex-direction:column;align-items:flex-start}.person-summary-photo,.person-summary-photo .itinerary-person-photo{width:100%}.person-summary-photo .itinerary-person-photo{height:180px}}

/* IDEA Web 2.7.1 RC2 — usabilidade departamental */
/* Itinerário: enquadramento mais consistente, reaproveitando o ajuste visual das fotos da tela Início. */
.itinerary-person-card{height:218px}
.itinerary-person-card .itinerary-person-photo{height:168px;background:linear-gradient(145deg,#dceaf6,#c6daeb)}
.itinerary-person-card .itinerary-person-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;transform:scale(1.10);transform-origin:50% 12%}
.itinerary-person-card .itinerary-person-photo[data-person-photo="alex da fonseca"] img,
.itinerary-person-card .itinerary-person-photo[data-person-photo="anderson soares"] img{transform:scale(1.18);transform-origin:50% 9%;object-position:50% 8%}
.itinerary-person-card .itinerary-person-photo[data-person-photo="fabio goncalves"] img{transform:scale(1.08);transform-origin:50% 13%;object-position:50% 12%}
.itinerary-person-card .itinerary-person-photo[data-person-photo="fabio rodrigues"] img{transform:scale(1.20);transform-origin:50% 10%;object-position:50% 8%}
.itinerary-person-card .itinerary-person-photo[data-person-photo="gabriel pasquale"] img,
.itinerary-person-card .itinerary-person-photo[data-person-photo="marcela borges"] img{transform:scale(1.20);transform-origin:50% 11%;object-position:50% 9%}
.itinerary-person-card .itinerary-person-photo[data-person-photo="mayko cordeiro"] img{transform:scale(1.08);transform-origin:50% 38%;object-position:50% 38%}
.itinerary-person-card .itinerary-person-photo[data-person-photo="paulo lira"] img{transform:scale(1.06);transform-origin:50% 42%;object-position:50% 42%}
.itinerary-person-card .itinerary-person-photo[data-person-photo="debora rodrigues"] img{transform:scale(1.22);transform-origin:50% 14%;object-position:50% 10%}
.itinerary-person-card .itinerary-person-name{height:50px;font-size:.88rem}

/* Meta: o preenchimento é a primeira ação visual para quem lança dados. */
.goal-modal-clean .goal-modal-title{font-size:1.35rem;line-height:1.28;margin:0 0 10px}
.goal-modal-clean .goal-modal-meta{margin-bottom:14px}
.goal-entry-priority{background:#f7fbff;border:2px solid #b9d8ef;border-radius:16px;padding:16px 18px;margin:8px 0 18px;box-shadow:0 4px 14px rgba(18,63,112,.06)}
.goal-entry-priority-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.goal-entry-priority-head h3{margin:0 0 4px;color:#123f70}
.goal-entry-priority-head p{margin:0;color:#526b82;font-size:.88rem;line-height:1.45}
.goal-entry-priority h4{margin:10px 0 8px;color:#123f70}
.goal-entry-priority .separator{margin:14px 0}
.goal-history-details,.goal-tech-details{margin-top:12px}
.goal-tech-details summary{color:#61788e}
@media(max-width:700px){.itinerary-person-card{height:230px}.itinerary-person-card .itinerary-person-photo{height:180px}.goal-entry-priority{padding:13px}}


/* IDEA 2.7.2 — dados gerais por departamento na tela Início */
.department-general-panel{margin:12px 0 20px;padding:18px;border:1px solid #d8e6f2;border-radius:18px;background:#f8fbfe;box-shadow:0 3px 14px rgba(19,59,102,.05)}
.department-general-panel>h4{margin:0 0 13px;color:#123f70;font-size:1.02rem}.department-goals-title{margin:18px 0 10px;color:#123f70}.home-general-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.home-baptism-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.home-general-card{min-width:0}.home-general-card .general-stat-value{font-size:1.45rem}.home-general-subtitle{margin:18px 0 9px;color:#315f89;font-size:.9rem}.home-finance-grid{margin-bottom:10px}.home-general-empty{margin:10px 0 0}.person-goal-section{scroll-margin-top:14px}
@media(max-width:1100px){.home-general-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-baptism-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.home-general-grid,.home-baptism-grid{grid-template-columns:1fr}.department-general-panel{padding:13px}}

/* IDEA Web 2.7.4 — perfis Administração/Secretária e legenda do Calendário */
.day{flex-direction:column;gap:3px}
.day.event-neutral{background:#f7fafc;color:#244a70}
.day.event-red{background:#fff0ef;color:#b42318}
.day .day-number{line-height:1}
.calendar-dot-group{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-height:8px;vertical-align:middle}
.calendar-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 8px}
.calendar-dot.ecles{background:#2f6ea5}
.calendar-dot.admin{background:#f59e0b}
.calendar-dot.events{background:#7c3aed}
.calendar-dot.holiday{background:#ef4444}
.calendar-dot.unknown{background:#94a3b8}
.calendar-color-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;color:#526b82;font-size:.82rem}
.calendar-color-legend span{display:inline-flex;align-items:center;gap:6px}
.month-event{grid-template-columns:26px minmax(0,1fr) 34px}
.month-event .calendar-dot-group{justify-self:end}
@media(max-width:700px){.calendar-color-legend{gap:8px}.month-event{grid-template-columns:26px minmax(0,1fr) 30px}}


/* IDEA Web 2.8.8 — Agenda Concílio: visualizar + baixar PDF sem canvas contaminado */
.council-month-card{display:grid;grid-template-columns:minmax(240px,420px) 1fr;gap:16px;align-items:end;margin-bottom:16px}
.council-month-card .notice{margin:0}.council-form-card{margin-bottom:16px}
.council-brand-card{display:flex;align-items:center;gap:18px;margin-bottom:16px;min-height:112px;overflow:hidden;background:linear-gradient(135deg,#153d66,#2c5f8d);color:#fff}
.council-brand-logo{width:min(460px,54%);height:76px;display:flex;align-items:center}.council-brand-logo img{max-width:100%;max-height:72px;object-fit:contain;object-position:left center}.council-brand-card strong{display:block;font-size:1.35rem}.council-brand-card span{display:block;margin-top:4px;color:#dceaf5;font-weight:700}
.council-dept-group{margin:24px 0}.council-dept-group>h3{margin:0 0 10px;padding:12px 16px;background:#173f66;color:#fff;border-radius:14px;font-size:1.05rem;letter-spacing:.35px}
.council-items{display:grid;gap:14px}.council-item-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;background:#fff;border:1px solid #d9e6f1;border-radius:18px;padding:18px;box-shadow:0 3px 12px rgba(19,59,102,.05)}
.council-item-title-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}.council-item-number{font-size:1.2rem;font-weight:900;color:#174873;line-height:1.3}.council-item-copy h4{margin:0;font-size:1.18rem;color:#1b3147;line-height:1.3}.council-item-photo{display:block;width:min(720px,100%);max-height:360px;object-fit:contain;object-position:left center;border-radius:13px;background:#edf4f9;margin:10px 0 12px}.council-item-date{font-size:.92rem;font-weight:900;color:#425b72;margin-bottom:8px}.council-item-copy p{margin:0;color:#506476;line-height:1.5}.council-delete{align-self:start;white-space:nowrap}.btn.danger{border-color:#e7b2b2;color:#9a3232;background:#fff5f5}.btn.danger:hover{background:#ffeaea}.section-title-row{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:24px 0 12px}.section-title-row h3{margin:0}.section-title-row p{margin:3px 0 0;color:#6b7e90}
.council-cover-preview{width:100%;height:150px;border:1px solid #d8e5f0;border-radius:14px;background:#173f66;display:flex;align-items:center;justify-content:center;padding:18px;overflow:hidden}.council-cover-preview.large{height:220px}.council-cover-preview img{max-width:100%;max-height:100%;object-fit:contain}.council-cover-modal{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:24px;align-items:end}.council-cover-modal p{color:#65798b;line-height:1.45;margin-top:0}

/* Área invisível usada para rasterizar e baixar o PDF. */
.council-pdf-stage{position:fixed;left:-20000px;top:0;width:794px;z-index:-10;pointer-events:none}.council-pdf-page{width:794px;height:1123px;background:#fff;color:#1f2f3f;font-family:Arial,Helvetica,sans-serif;box-sizing:border-box;overflow:hidden;position:relative;padding:52px 50px 44px}
.council-logo-panel{display:flex;align-items:center;justify-content:center;border-radius:12px;padding:14px 18px;overflow:hidden}.council-logo-panel.dark{background:#173f66}.council-logo-panel.light{background:#f4f7fa;border:1px solid #d9e2ea}.council-logo-panel img{max-width:100%;max-height:100%;object-fit:contain}.council-pdf-content{position:relative;z-index:2}.council-pdf-intro{display:flex;align-items:center;gap:24px;margin:-18px 0 32px;position:relative;z-index:2}.council-pdf-intro-logo{width:390px;flex:0 0 390px}.intro-logo-panel{width:100%;height:112px;padding:12px 16px;border-radius:10px}.council-pdf-intro-title{min-width:0;text-align:left}.council-pdf-intro-title h1{font-size:27px;line-height:1.05;margin:0 0 9px;font-weight:900;letter-spacing:.1px;color:#173f66}.council-pdf-intro-title p{font-size:15px;margin:0;font-weight:700;color:#596b7d}.council-pdf-watermark{position:absolute;right:44px;top:34px;width:180px;max-height:72px;object-fit:contain;opacity:.075;filter:brightness(0);z-index:1;pointer-events:none}
.council-pdf-dept header,.council-pdf-upcoming header{display:block;position:relative;z-index:2}.council-pdf-dept header h2,.council-pdf-upcoming header h2{font-family:Arial,Helvetica,sans-serif;font-size:16pt;line-height:1.15;margin:0;text-transform:uppercase;font-weight:700;max-width:520px;letter-spacing:.1px;color:#173f66}.council-pdf-upcoming header p{font-family:Arial,Helvetica,sans-serif;font-size:11pt;line-height:1.3;margin:7px 0 0;color:#596b7d}.council-pdf-rule{height:2px;width:42px;background:#173f66;margin:18px 0 20px}.council-pdf-topics{display:flex;flex-direction:column;gap:20px}.council-pdf-topic{break-inside:avoid}.council-pdf-topic-title{display:flex;align-items:flex-start;gap:10px;margin-bottom:9px}.council-pdf-topic-title>span{font-family:Arial,Helvetica,sans-serif;font-size:14pt;font-weight:700;line-height:1.25;color:#173f66}.council-pdf-topic-title h3{font-family:Arial,Helvetica,sans-serif;font-size:14pt;line-height:1.25;margin:0;font-weight:700;color:#1f2f3f}.council-pdf-topic-photo{display:block;max-width:100%;width:auto;max-height:260px;object-fit:contain;object-position:left center;margin:2px 0 12px;border-radius:2px;background:#fff}.council-pdf-topic-date{font-family:Arial,Helvetica,sans-serif;font-size:12pt;font-weight:700;margin:0 0 6px;color:#1f2f3f}.council-pdf-topic-desc{font-family:Arial,Helvetica,sans-serif;font-size:12pt;line-height:1.4;font-weight:400;color:#263746}.council-upcoming-list{display:flex;flex-direction:column;gap:10px}.council-upcoming-row{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #dfe6ec}.council-upcoming-number{font-family:Arial,Helvetica,sans-serif;font-size:12pt;font-weight:700;color:#173f66;min-width:28px}.council-upcoming-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.council-upcoming-copy strong{font-family:Arial,Helvetica,sans-serif;font-size:12pt;line-height:1.3;color:#1f2f3f}.council-upcoming-copy span{font-family:Arial,Helvetica,sans-serif;font-size:10pt;line-height:1.25;color:#68798a}.council-upcoming-empty{padding:20px 0;font-family:Arial,Helvetica,sans-serif;font-size:12pt;color:#68798a}.council-pdf-dept footer,.council-pdf-upcoming footer{position:absolute;bottom:22px;left:50px;right:50px;font-size:9pt;color:#758493;text-align:right}
@media(max-width:800px){.council-month-card{grid-template-columns:1fr}.council-brand-card{align-items:flex-start;flex-direction:column}.council-brand-logo{width:100%}.council-item-card{grid-template-columns:1fr}.council-delete{justify-self:start}.council-cover-modal{grid-template-columns:1fr}.page-actions{flex-wrap:wrap}}
