.client-portal{display:grid;gap:18px;color:#17231e}.portal-hero{position:relative;overflow:hidden;padding:24px;border:1px solid #d4e3da;border-radius:18px;background:linear-gradient(135deg,#f7fbf8,#eaf5ee);box-shadow:0 12px 34px rgba(15,83,54,.08)}.portal-hero:after{content:"";position:absolute;right:-70px;bottom:-100px;width:280px;height:280px;border-radius:50%;background:rgba(20,132,81,.08)}.portal-brand{display:flex;align-items:center;gap:18px;max-width:780px}.portal-brand img{width:76px;height:76px;object-fit:contain}.portal-brand h1{margin:3px 0 8px;font-size:clamp(1.55rem,3vw,2.25rem);color:#103f2c}.portal-brand p{margin:0;line-height:1.55;color:#50645b}.portal-hero-actions{position:absolute;z-index:1;top:24px;right:24px;display:flex;align-items:center;gap:9px}.portal-notifications{min-width:46px;min-height:44px;border:1px solid #c9dbd1;border-radius:11px;background:#fff;color:#16774d;font-weight:850}.portal-client-meta{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid #cfdfd6}.portal-client-meta span,.portal-detail-grid span{display:block;margin-bottom:5px;color:#6b7972;font-size:.75rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.portal-client-meta strong{font-size:.92rem}.portal-filters{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;padding:14px;border:1px solid #d8e5dd;border-radius:14px;background:#fff}.portal-filters label{display:grid;gap:6px;font-weight:750;color:#40534a}.portal-filters select{width:100%;padding:11px;border:1px solid #cedbd3;border-radius:8px;background:#fff}.portal-summary{padding:15px 18px;border-left:4px solid #168451;border-radius:0 12px 12px 0;background:#eef7f2;color:#274b3b;font-size:1rem;line-height:1.55}.portal-summary p{margin:0}.portal-compliance,.portal-panel{padding:22px;border:1px solid #d9e5de;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(16,70,48,.055)}.portal-compliance h2,.portal-panel h2{margin:4px 0 18px;font-size:1.2rem}.portal-score-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.portal-score{padding:15px;border:1px solid #dce8e1;border-radius:12px;background:#fafcfb}.portal-score>div:first-child{display:flex;justify-content:space-between;gap:12px}.portal-score strong{font-size:1.35rem}.portal-progress{height:9px;margin:12px 0 7px;overflow:hidden;border-radius:99px;background:#e5ece8}.portal-progress i{display:block;height:100%;border-radius:inherit;background:#168451}.portal-score.attention .portal-progress i{background:#e2b300}.portal-score.critical .portal-progress i{background:#dd3e3e}.portal-score.attention strong{color:#9a7600}.portal-score.critical strong{color:#c12f2f}.portal-score small{color:#69766f}.portal-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.portal-kpi{min-height:138px;padding:18px;text-align:left;border:1px solid #d7e5dc;border-top:4px solid #188251;border-radius:14px;background:#fff;box-shadow:0 6px 20px rgba(19,70,49,.05)}.portal-kpi span,.portal-kpi small{display:block;color:#5d6d65}.portal-kpi strong{display:block;margin:10px 0 7px;font-size:1.85rem;color:#12613f}.portal-kpi.blue{border-top-color:#2f78b7}.portal-kpi.blue strong{color:#22689f}.portal-kpi.yellow{border-top-color:#d6ad13}.portal-kpi.yellow strong{color:#937400}.portal-kpi.red{border-top-color:#d43e3e}.portal-kpi.red strong{color:#b82d2d}.portal-card-detail{position:relative;padding:22px;border:2px solid #b9d7c6;border-radius:15px;background:#f8fcf9}.portal-detail-close{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;background:#eaf1ed;font-size:1.3rem}.portal-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.portal-detail-grid>div,.portal-unit-list article{padding:12px;border:1px solid #dce7e0;border-radius:9px;background:#fff}.portal-detail-row,.portal-area-grid article>button{display:grid;width:100%;gap:5px;margin-top:7px;padding:12px;text-align:left;border:1px solid #dbe7df;border-radius:9px;background:#fff}.portal-detail-row small,.portal-area-grid small,.portal-unit-list small{color:#6c7973}.portal-main-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.portal-services{display:grid;gap:9px}.portal-services>button{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;width:100%;padding:15px;text-align:left;border:1px solid #dce7e0;border-radius:11px;background:#fbfdfc}.portal-services span{color:#168451;font-size:.74rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.portal-services strong,.portal-services small{display:block;margin-top:5px}.portal-services small{color:#68766f}.portal-service-stage b{font-size:.85rem}.portal-attention{border-top:4px solid #dbad16}.portal-attention>article{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:14px 0;border-top:1px solid #e2e9e5}.portal-attention article small,.portal-attention article p{display:block;margin:5px 0 0;color:#66756e;line-height:1.4}.portal-responsibility-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.portal-responsibility-grid>article{padding:15px;border:1px solid #dbe6df;border-radius:12px;background:#fafcfb}.portal-responsibility-grid article:nth-child(2){border-top:4px solid #d9ad18}.portal-responsibility-grid article:nth-child(3){border-top:4px solid #397eb8}.portal-responsibility-item{display:grid;width:100%;gap:5px;margin-top:8px;padding:10px;text-align:left;border:0;border-radius:8px;background:#fff}.portal-responsibility-item small{color:#68766f}.portal-section-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.portal-view-toggle{display:flex;gap:5px;padding:4px;border-radius:10px;background:#eef3f0}.portal-view-toggle button{padding:8px 10px;border-radius:7px;background:transparent;color:#52635b}.portal-view-toggle button.active{background:#fff;color:#12613f;box-shadow:0 2px 8px rgba(0,0,0,.08)}.portal-deadlines{display:grid;gap:8px}.portal-deadline{display:grid;grid-template-columns:100px 1fr 58px 190px;gap:13px;align-items:center;padding:12px;border-left:4px solid #168451;border-radius:9px;background:#f8fbf9}.portal-deadline.attention{border-left-color:#dfb31c;background:#fffaf0}.portal-deadline.critical{border-left-color:#dc3c3c;background:#fff5f5}.portal-deadline.protocol{border-left-color:#347db9;background:#f3f8fc}.portal-deadline time{font-weight:800}.portal-deadline small{display:block;margin-top:4px;color:#6a7871}.portal-deadline b{text-align:center;font-size:1.05rem}.portal-deadline>span{font-size:.82rem;font-weight:750}.portal-deadlines.calendar{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-deadlines.calendar .portal-deadline{display:grid;grid-template-columns:1fr;align-content:start;min-height:150px}.portal-deadlines.list .portal-deadline{border-left-width:1px;border-radius:4px}.portal-area-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.portal-area-grid>article{padding:16px;border:1px solid #dbe6df;border-radius:12px}.portal-area-score{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}.portal-area-score strong{font-size:1.8rem;color:#12613f}.portal-area-score span{color:#67766f}.portal-result,.portal-process,.portal-communications article{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 0;border-top:1px solid #e0e8e3}.portal-result small,.portal-process small,.portal-communications small{display:block;margin-top:4px;color:#69766f}.portal-result>span,.portal-process>span{padding:6px 9px;border-radius:7px;background:#edf5f0;color:#176342;font-size:.8rem;font-weight:750}.portal-communications article{justify-content:flex-start}.portal-communications article>div{flex:1}.portal-notification-dot{width:11px;height:11px;border-radius:50%;background:#168451}.portal-notification-dot.attention{background:#dfb31c}.portal-notification-dot.critical{background:#dc3c3c}.portal-notification-dot.protocol{background:#347db9}.client-management-report{display:none}.portal-report-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.portal-report-kpis div{padding:14px;border:1px solid #ccdcd2}.portal-report-kpis b,.portal-report-kpis span{display:block}.portal-report-kpis b{font-size:1.5rem;color:#12613f}
@media(max-width:1200px){.portal-client-meta{grid-template-columns:repeat(3,1fr)}.portal-filters{grid-template-columns:repeat(3,1fr)}.portal-kpis{grid-template-columns:repeat(2,1fr)}.portal-main-grid{grid-template-columns:1fr}.portal-deadlines.calendar{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.portal-hero{padding:18px}.portal-brand{align-items:flex-start}.portal-brand img{width:56px;height:56px}.portal-hero-actions{position:relative;top:auto;right:auto;margin-top:17px;flex-wrap:wrap}.portal-hero-actions .primary{flex:1}.portal-client-meta,.portal-filters,.portal-score-grid,.portal-kpis,.portal-responsibility-grid,.portal-area-grid,.portal-detail-grid{grid-template-columns:1fr}.portal-services>button,.portal-attention>article,.portal-deadline{grid-template-columns:1fr}.portal-deadline b{text-align:left}.portal-deadlines.calendar{grid-template-columns:1fr}.portal-section-title{display:grid}.portal-view-toggle{display:grid;grid-template-columns:1fr}.portal-panel,.portal-compliance{padding:16px}}
@media print{body:has(.client-management-report) #app,body:has(.client-management-report) #login{display:none!important}.client-management-report{display:block!important;color:#17231e;font-size:10pt}.client-management-report header{display:flex;gap:20px;align-items:center;border-bottom:3px solid #146b46;padding-bottom:18px}.client-management-report header img{width:90px}.client-management-report h1{margin:4px 0;color:#125f3e}.client-management-report section{margin-top:22px;break-inside:avoid}.client-management-report table{width:100%;border-collapse:collapse}.client-management-report th,.client-management-report td{border:1px solid #cad8d0;padding:7px;text-align:left}.client-management-report th{background:#edf5f0}.client-management-report footer{margin-top:28px;padding-top:10px;border-top:1px solid #cad8d0;color:#64736c}}

/* A marca oficial mantém sua proporção e definição em tela e impressão. */
.portal-brand img{display:block;width:92px;height:92px;max-width:100%;object-fit:contain;object-position:center;flex:0 0 92px}
@media(max-width:760px){.portal-brand img{width:68px;height:68px;flex-basis:68px}}
@media print{.client-management-report header{min-height:38mm;padding:3mm 0 7mm!important;overflow:visible!important;justify-content:flex-start!important;align-items:center!important;gap:6mm!important}.client-management-report header img{display:block!important;width:30mm!important;height:33mm!important;max-width:30mm!important;max-height:33mm!important;padding:2mm!important;box-sizing:border-box!important;object-fit:contain!important;object-position:center!important;flex:0 0 30mm!important;margin:0!important;overflow:visible!important;clip-path:none!important;transform:none!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}}
@media print{body.printing-client-report>.client-management-report{display:block!important;page:client-report}body.printing-client-report>.client-management-report header{display:flex!important}body.printing-client-report>.client-management-report thead{display:table-header-group}body.printing-client-report>.client-management-report tr{break-inside:avoid;page-break-inside:avoid}body.printing-client-report>.client-management-report footer{break-inside:avoid;page-break-inside:avoid}}@page client-report{size:A4 landscape;margin:12mm}
.portal-clear-filters{align-self:end;min-height:42px;white-space:nowrap}

/* Painel executivo — composição baseada no portal gerencial de referência. */
.client-portal{gap:12px;background:#f3f7f5;padding:12px;border-radius:16px}
.portal-hero{padding:16px 18px;border-radius:12px;background:#fff;box-shadow:0 3px 13px rgba(21,62,44,.06)}
.portal-hero:after{display:none}.portal-brand img{width:78px;height:78px;flex:0 0 78px;max-width:100%;object-fit:contain;object-position:center}.portal-brand h1{font-size:1.55rem;margin:1px 0 4px}.portal-brand p{font-size:.9rem;line-height:1.4}.portal-client-meta{margin-top:12px;padding-top:12px}.portal-hero-actions{top:16px;right:18px}.portal-hero-actions .primary{min-height:54px;padding:0 20px;background:linear-gradient(135deg,#f3ead0,#e9d9ac);color:#173a2b;border:1px solid #dfcf9f;box-shadow:none}

@media(max-width:760px){.portal-brand img{width:68px;height:68px;flex-basis:68px}}
@media(max-width:480px){.portal-brand img{width:60px;height:60px;flex-basis:60px}}
.portal-filters{padding:10px;border-radius:10px;box-shadow:0 3px 12px rgba(21,62,44,.04)}.portal-filters select{padding:9px}.portal-summary{padding:10px 14px;font-size:.9rem;background:#f8fbf9}
.portal-compliance{padding:0;border:0;background:transparent;box-shadow:none}.portal-compliance>div:first-child{display:none}.portal-score-grid{grid-template-columns:1.35fr 1fr 1fr;gap:10px}.portal-score{position:relative;min-height:148px;padding:18px;border:0;border-radius:11px;background:#fff;box-shadow:0 3px 13px rgba(21,62,44,.07)}.portal-score>div:first-child{align-items:center}.portal-score>div:first-child span{font-size:1rem;font-weight:800}.portal-score strong{font-size:2.4rem;color:#103f2c}.portal-score.overall{padding-right:46%;overflow:hidden}.portal-score.overall:before{content:"";position:absolute;right:20px;bottom:18px;width:42%;aspect-ratio:2/1;border-radius:999px 999px 0 0;background:conic-gradient(from 270deg at 50% 100%,#168451 0 var(--score),#dfe6e2 var(--score) 100%);clip-path:inset(0 0 0 0)}.portal-score.overall:after{content:"";position:absolute;right:calc(20px + 7%);bottom:18px;width:28%;aspect-ratio:2/1;border-radius:999px 999px 0 0;background:#fff}.portal-score.overall .portal-progress{display:none}.portal-score.overall small{display:block;margin-top:8px}.portal-score:not(.overall) .portal-progress{height:10px;margin-top:18px}
.portal-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.portal-kpi{min-height:100px;padding:14px;border:0;border-radius:11px;box-shadow:0 3px 13px rgba(21,62,44,.07)}.portal-kpi span{font-size:.86rem}.portal-kpi strong{font-size:1.85rem;margin:8px 0 2px}.portal-kpi small{font-size:.73rem}.portal-kpi-compliance,.portal-kpi-deadlines,.portal-kpi-expired,.portal-kpi-training,.portal-kpi-units{display:none}.sst-disabled .portal-kpi-training,.sst-disabled .portal-area-grid>article:last-child{display:none!important}
.portal-main-grid{grid-template-columns:1.45fr 1fr;gap:10px}.portal-panel{padding:16px;border:0;border-radius:11px;box-shadow:0 3px 13px rgba(21,62,44,.07)}.portal-panel h2{margin:2px 0 12px;font-size:1rem}.portal-services>button{padding:10px;border-radius:8px}.portal-services>button:nth-child(n+6){display:none}.portal-service-stage .portal-progress{height:8px}.portal-attention>article{padding:10px 0}.portal-attention>article:nth-of-type(n+6){display:none}.portal-attention .primary{padding:8px 10px;font-size:.76rem}
.portal-responsibility-grid{gap:8px}.portal-responsibility-grid>article{padding:12px}.portal-responsibility-grid h3{font-size:.9rem}.portal-responsibility-item:nth-of-type(n+4){display:none}.portal-deadline{grid-template-columns:62px 1fr 48px 130px;padding:9px}.portal-deadline time{font-size:.78rem}.portal-deadline:nth-child(n+6){display:none}.portal-area-grid{gap:9px}.portal-area-grid>article{background:#fbfdfc}.portal-result,.portal-process,.portal-communications article{padding:9px 0}.portal-result:nth-of-type(n+6),.portal-process:nth-of-type(n+6){display:none}
.portal-panel:has(.portal-responsibility-grid):after{content:"“Conformidade hoje. Valor para o seu negócio amanhã.”";display:block;margin-top:12px;padding:13px 16px;border-radius:9px;background:linear-gradient(135deg,#f5edda,#eee0bb);color:#315343;font-style:italic;text-align:center}
@media(max-width:1200px){.portal-score-grid{grid-template-columns:1.2fr 1fr}.portal-score-grid .portal-score:last-child{grid-column:span 2}.portal-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.client-portal{padding:7px}.portal-hero-actions{position:relative;top:auto;right:auto}.portal-score-grid,.portal-kpis{grid-template-columns:1fr}.portal-score-grid .portal-score:last-child{grid-column:auto}.portal-score.overall{padding-right:42%}.portal-main-grid{grid-template-columns:1fr}.portal-deadline{grid-template-columns:56px 1fr}.portal-deadline>b,.portal-deadline>span{grid-column:2}.portal-hero-actions .primary{width:100%}}

/* Portal orientado por ação, responsabilidade e prazo. */
#portal-overview{display:flex;flex-direction:column;gap:12px}.portal-priority-section{border-left:5px solid #d84949;background:linear-gradient(90deg,#fff8f8,#fff)}.portal-priority-section h2{font-size:1.2rem}.portal-main-grid:has(>.portal-panel:only-child){grid-template-columns:1fr}.portal-agenda-group{display:grid;gap:7px;padding:12px;border:1px solid #dce7e0;border-radius:10px;background:#fbfdfc}.portal-agenda-group>h3{display:flex;align-items:center;justify-content:space-between;margin:0 0 3px;font-size:.92rem}.portal-agenda-group>h3 span{min-width:28px;padding:3px 7px;border-radius:99px;background:#e7f2eb;color:#176342;text-align:center}.portal-deadline{width:100%;border-top:0;border-right:0;border-bottom:0;text-align:left}.portal-timeline{margin-top:18px;padding-top:14px;border-top:1px solid #dce7e0}.portal-timeline article{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid #e5ece8}.portal-timeline time{color:#617069;font-size:.8rem}.portal-timeline small{display:block;margin-top:4px;color:#68766f}.portal-score.overall{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,42%);grid-template-rows:auto 1fr;padding-right:18px;overflow:visible}.portal-score.overall:before{position:relative;right:auto;bottom:auto;grid-column:2;grid-row:1/3;align-self:center;width:100%;max-width:210px;justify-self:end}.portal-score.overall:after{right:7%;bottom:18px;width:28%;max-width:142px}.portal-score.overall>div:first-child,.portal-score.overall>small{grid-column:1}.portal-score.overall:focus-visible,.portal-deadline:focus-visible{outline:3px solid #2d7fb8;outline-offset:2px}
@media(max-width:760px){.portal-score.overall{display:block;padding:16px;min-height:auto}.portal-score.overall:before,.portal-score.overall:after{display:none}.portal-score.overall .portal-progress{display:block}.portal-timeline article{grid-template-columns:1fr}.portal-agenda-group{padding:9px}}
