:root{--bg:#eef6f4;--bg-soft:#f7faf8;--text:#273033;--muted:#65706f;--line:rgba(93,124,121,.2);--sky:#0f766e;--cyan:#7bbdb5;--gold:#d4a64a;--gold-soft:#efd8a6;--teal-dark:#073f3a;--teal-deep:#052f2b;--danger:#b54747;--success:#2e7d5b;--shadow:0 18px 60px rgba(7,63,58,.11);--radius:26px;--sidebar:270px}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:radial-gradient(circle at 10% 0,rgba(212,166,74,.1),transparent 22%),radial-gradient(circle at 82% 8%,rgba(123,189,181,.18),transparent 24%),linear-gradient(180deg,#f3f5f1 0,#eef6f4 42%,#e7f1ee 100%);min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.portal-shell{display:flex;min-height:100vh}.portal-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);padding:22px 18px;display:flex;flex-direction:column;background:linear-gradient(180deg,rgba(5,47,43,.98),rgba(7,63,58,.96));color:#fff;z-index:50;box-shadow:20px 0 60px rgba(7,63,58,.12)}.portal-brand{display:flex;align-items:center;gap:12px;padding:8px 8px 24px}.brand-mark{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--cyan),var(--sky) 60%,var(--gold));color:#fff;box-shadow:0 12px 28px rgba(0,0,0,.15);font-weight:800}.portal-brand strong{display:block;font-size:17px}.portal-brand span,.auth-brand span{display:block;font-size:11px;color:rgba(255,255,255,.62);margin-top:2px}.portal-nav{display:flex;flex-direction:column;gap:4px}.portal-nav a,.sidebar-bottom a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;color:rgba(255,255,255,.72);font-size:14px;transition:.2s}.portal-nav a i,.sidebar-bottom a i{width:20px;text-align:center}.portal-nav a:hover,.portal-nav a.active,.sidebar-bottom a:hover{background:rgba(255,255,255,.1);color:#fff}.portal-nav a.active{box-shadow:inset 3px 0 0 var(--gold)}.nav-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.38);padding:20px 14px 6px}.sidebar-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding-top:12px}.portal-main{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));min-height:100vh;display:flex;flex-direction:column}.portal-topbar{min-height:96px;padding:20px 34px;display:flex;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid rgba(93,124,121,.12);background:rgba(247,250,248,.58);backdrop-filter:blur(16px);position:sticky;top:0;z-index:30}.topbar-kicker,.eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--sky);font-weight:700}.portal-topbar h1{margin:4px 0 0;font-size:24px}.topbar-actions{display:flex;align-items:center;gap:12px}.icon-button{width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.7);display:grid;place-items:center;cursor:pointer;color:var(--teal-dark)}.icon-button.small{width:34px;height:34px;border-radius:10px}.user-chip{display:flex;align-items:center;gap:10px;padding:6px 10px 6px 6px;border:1px solid var(--line);background:rgba(255,255,255,.7);border-radius:16px}.user-avatar{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--teal-dark),var(--sky));color:#fff;font-weight:800}.user-chip strong,.user-chip span{display:block}.user-chip strong{font-size:13px}.user-chip span{font-size:11px;color:var(--muted);margin-top:2px}.portal-content{padding:34px;max-width:1600px;width:100%;margin:0 auto;flex:1}.portal-footer{padding:20px 34px;border-top:1px solid rgba(93,124,121,.12);display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.mobile-sidebar-toggle{display:none}.welcome-row,.page-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:26px}.welcome-row h2,.page-intro h2{font-size:32px;margin:6px 0 8px;letter-spacing:-.03em}.welcome-row p,.page-intro p{margin:0;color:var(--muted);max-width:760px;line-height:1.65}.date-chip{padding:12px 15px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.66);font-size:13px;color:var(--muted);white-space:nowrap}.date-chip i{margin-right:8px;color:var(--sky)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.metric-card,.panel,.action-card,.meeting-card,.indicator-card,.entity-card{background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(247,250,248,.74));border:1px solid rgba(212,166,74,.19);box-shadow:var(--shadow);border-radius:var(--radius)}.metric-card{padding:20px;min-height:156px}.metric-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(15,118,110,.08);color:var(--sky);margin-bottom:18px}.metric-card>span{display:block;color:var(--muted);font-size:12px}.metric-card>strong{display:block;font-size:32px;margin:5px 0}.metric-card>strong.metric-date{font-size:24px}.metric-card small{color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:18px;margin-bottom:18px}.panel{padding:22px}.panel.wide{min-height:310px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.panel-head h3{margin:5px 0 0;font-size:19px}.text-link{color:var(--sky);font-size:13px;font-weight:700}.action-progress-list{display:grid;gap:22px}.action-progress-top{display:flex;justify-content:space-between;gap:20px;margin-bottom:8px}.action-progress-top>div{display:flex;align-items:center;gap:10px;min-width:0}.action-progress-top strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-code{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:25px;padding:0 8px;border-radius:9px;background:rgba(15,118,110,.08);color:var(--sky);font-weight:800;font-size:11px}.action-code.big{height:32px;min-width:44px;font-size:13px}.progress-track{height:8px;background:rgba(93,124,121,.12);border-radius:999px;overflow:hidden}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,var(--teal-dark),var(--sky),var(--cyan));border-radius:inherit}.progress-track.thin{height:6px}.compact-list{display:grid;gap:8px}.compact-item{display:flex;align-items:flex-start;gap:10px;padding:10px;border-radius:13px;transition:.2s}.compact-item:hover{background:rgba(15,118,110,.05)}.compact-item strong,.compact-item small{display:block}.compact-item strong{font-size:13px}.compact-item small,.meeting-mini small{color:var(--muted);font-size:11px;margin-top:4px}.status-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:0 0 auto}.status-dot.success{background:var(--success)}.status-dot.info{background:var(--sky)}.status-dot.warning{background:var(--gold)}.status-dot.danger{background:var(--danger)}.indicator-mini{margin-bottom:18px}.indicator-mini>div:first-child{display:flex;justify-content:space-between;font-size:12px;margin-bottom:7px}.indicator-mini span{color:var(--muted)}.meeting-mini{display:flex;align-items:center;gap:12px;padding:6px 0}.meeting-mini strong,.meeting-mini small{display:block}.calendar-square{width:44px;height:48px;border-radius:12px;background:var(--teal-deep);color:#fff;display:grid;place-items:center;align-content:center;line-height:1}.calendar-square strong{font-size:17px}.calendar-square span{font-size:8px;letter-spacing:.08em;margin-top:4px;color:var(--gold-soft)}.calendar-square.large{width:62px;height:68px;border-radius:18px}.calendar-square.large strong{font-size:22px}.page-intro.split{align-items:center}.primary-button{border:0;border-radius:14px;padding:13px 17px;background:linear-gradient(135deg,var(--teal-dark),var(--sky));color:#fff;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;box-shadow:0 14px 28px rgba(7,63,58,.16)}.primary-button.full{width:100%}.action-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.action-card{padding:24px}.action-card-top,.indicator-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.action-card h3{font-size:21px;margin:18px 0 9px}.action-card p{color:var(--muted);line-height:1.65;min-height:54px}.action-meta{display:grid;gap:8px;padding:16px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.action-meta i{width:20px;color:var(--sky)}.action-bottom{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}.status-badge{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:800}.status-badge.success{background:rgba(46,125,91,.1);color:var(--success)}.status-badge.info{background:rgba(15,118,110,.09);color:var(--sky)}.status-badge.warning{background:rgba(212,166,74,.13);color:#8c681f}.status-badge.danger{background:rgba(181,71,71,.1);color:var(--danger)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid rgba(93,124,121,.12);font-size:13px}th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}td{color:#414b4a}.empty-cell{text-align:center;padding:40px;color:var(--muted)}.check-button{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);background:#fff;color:transparent;cursor:pointer}.check-button.done{background:var(--sky);border-color:var(--sky);color:#fff}.meeting-grid{display:grid;gap:14px}.meeting-card{display:flex;gap:20px;padding:20px}.meeting-card-content{flex:1}.meeting-card-head{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px}.meeting-card h3{margin:10px 0 7px}.meeting-card>div p{color:var(--muted);font-size:13px}.meeting-note{background:rgba(15,118,110,.04);border-radius:14px;padding:13px;margin-top:14px}.meeting-note strong{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--sky)}.meeting-note p{margin:6px 0 0}.indicator-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.indicator-card{padding:24px}.indicator-card-head>div{display:flex;gap:8px}.indicator-card-head>strong{font-size:26px;color:var(--sky)}.indicator-card h3{font-size:16px;line-height:1.5;min-height:72px}.indicator-values{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.indicator-values>div{padding:13px;border-radius:14px;background:rgba(15,118,110,.04)}.indicator-values span,.indicator-values strong{display:block}.indicator-values span{font-size:10px;color:var(--muted);text-transform:uppercase}.indicator-values strong{font-size:22px;margin-top:4px}.inline-update{display:flex;gap:8px;margin-top:14px}.inline-update input{width:90px}.inline-update button{border:0;border-radius:10px;background:var(--teal-deep);color:#fff;padding:8px 11px;cursor:pointer}.entity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.entity-card{padding:20px;display:flex;gap:14px}.entity-initial{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--teal-deep),var(--sky));color:#fff;display:grid;place-items:center;font-size:18px;font-weight:800;flex:0 0 auto}.entity-card h3{margin:10px 0 4px;font-size:16px}.entity-card p{color:var(--muted);font-size:12px}.toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.search-box{display:flex;align-items:center;gap:10px;width:min(380px,100%);padding:0 13px;border:1px solid var(--line);background:#fff;border-radius:13px}.search-box input{border:0;outline:0;width:100%;padding:12px 0;background:transparent}.search-box i{color:var(--muted)}.file-name{display:flex;align-items:center;gap:10px}.file-name i{color:var(--sky)}.timeline-list{max-width:900px}.timeline-row{display:grid;grid-template-columns:90px 34px 1fr;min-height:120px}.timeline-date{text-align:right;padding-top:6px}.timeline-date strong,.timeline-date span{display:block}.timeline-date strong{font-size:22px}.timeline-date span{font-size:9px;color:var(--muted);margin-top:4px}.timeline-line{position:relative;display:flex;justify-content:center}.timeline-line:before{content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--line)}.timeline-line span{width:10px;height:10px;border-radius:50%;background:var(--sky);margin-top:12px;z-index:1;box-shadow:0 0 0 5px rgba(15,118,110,.08)}.timeline-content{padding:5px 0 24px 12px}.timeline-content h3{margin:8px 0 5px;font-size:16px}.timeline-content p{margin:0;color:var(--muted);font-size:12px}.modal{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:20px}.modal.open{display:grid}.modal-backdrop{position:absolute;inset:0;background:rgba(5,47,43,.45);backdrop-filter:blur(8px)}.modal-card{position:relative;width:min(620px,100%);max-height:90vh;overflow:auto;background:#f9fbf9;border:1px solid rgba(255,255,255,.6);box-shadow:0 30px 100px rgba(5,47,43,.28);border-radius:28px;padding:28px}.modal-card h3{font-size:24px;margin:6px 0 20px}.modal-close{position:absolute;right:18px;top:16px;border:0;background:transparent;font-size:28px;color:var(--muted);cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label,.auth-form label{font-size:12px;font-weight:700;color:#4b5654}.form-grid .full{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea,.auth-form input,.inline-update input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;outline:none;margin-top:6px;color:var(--text)}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.auth-form input:focus{border-color:rgba(15,118,110,.55);box-shadow:0 0 0 3px rgba(15,118,110,.08)}.empty-state{padding:22px;color:var(--muted);font-size:13px}.alert{padding:12px 14px;border-radius:13px;margin-bottom:18px;font-size:13px}.alert.success{background:rgba(46,125,91,.1);color:var(--success);border:1px solid rgba(46,125,91,.17)}.alert.danger{background:rgba(181,71,71,.09);color:var(--danger);border:1px solid rgba(181,71,71,.16)}.auth-page{overflow-x:hidden}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.auth-visual{position:relative;overflow:hidden;background:linear-gradient(145deg,#052f2b,#0a5952 60%,#0f766e);padding:9vw 7vw;color:#fff}.auth-visual:after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;border:1px solid rgba(255,255,255,.12);right:-120px;bottom:-140px;box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.018)}.auth-visual-copy{position:relative;z-index:2;max-width:650px}.auth-visual .eyebrow{color:var(--gold-soft)}.auth-visual h1{font-size:clamp(52px,6vw,96px);line-height:.94;letter-spacing:-.05em;margin:28px 0}.auth-visual h1 em{font-style:normal;color:var(--gold-soft)}.auth-visual p{max-width:560px;color:rgba(255,255,255,.72);line-height:1.7;font-size:17px}.auth-network span{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 8px rgba(212,166,74,.1)}.auth-network span:nth-child(1){left:22%;bottom:15%}.auth-network span:nth-child(2){left:38%;bottom:28%}.auth-network span:nth-child(3){left:57%;bottom:18%}.auth-network span:nth-child(4){left:71%;bottom:34%}.auth-network span:nth-child(5){left:80%;bottom:13%}.auth-panel{display:grid;place-items:center;padding:40px}.auth-card{width:min(430px,100%)}.auth-card.glass-panel{margin:8vh auto;background:rgba(255,255,255,.86);padding:32px;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:48px}.auth-brand strong{display:block;color:var(--teal-deep)}.auth-brand span{color:var(--muted)}.auth-heading>span{font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--sky);font-weight:800}.auth-heading h2,.auth-card h1{font-size:34px;margin:8px 0}.auth-heading p,.auth-card>p{color:var(--muted);line-height:1.6}.auth-form{display:grid;gap:16px;margin-top:26px}.input-wrap{position:relative}.input-wrap i{position:absolute;left:14px;top:50%;transform:translateY(-35%);color:var(--muted)}.auth-form .input-wrap input{padding-left:42px}.auth-help{display:flex;justify-content:space-between;margin-top:20px;font-size:11px;color:var(--muted)}code{background:rgba(15,118,110,.08);padding:2px 5px;border-radius:5px}.auth-card>.primary-button{margin-top:16px}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.entity-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:860px){.portal-sidebar{transform:translateX(-105%);transition:.25s}.portal-sidebar.open{transform:translateX(0)}.portal-main{margin-left:0;width:100%}.mobile-sidebar-toggle{display:grid}.portal-topbar{padding:16px 18px}.portal-content{padding:22px 16px}.user-chip>div:last-child{display:none}.action-card-grid,.indicator-grid,.entity-grid{grid-template-columns:1fr}.auth-layout{grid-template-columns:1fr}.auth-visual{display:none}.auth-panel{min-height:100vh}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}@media(max-width:620px){.metric-grid{grid-template-columns:1fr}.welcome-row,.page-intro{align-items:flex-start;flex-direction:column}.portal-topbar h1{font-size:19px}.topbar-kicker{display:none}.portal-footer{flex-direction:column;gap:5px}.meeting-card{align-items:flex-start}.portal-content{padding-top:22px}}

/* v2 - gestão de ações e indicadores */
.management-note{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;margin:-6px 0 20px;border:1px solid rgba(15,118,110,.15);background:rgba(255,255,255,.58);border-radius:16px;color:var(--muted);font-size:12px}.management-note>i{color:var(--sky);margin-top:2px}.management-note strong,.management-note span{display:block}.management-note strong{color:var(--teal-deep);font-size:12px;margin-bottom:3px}.secondary-button{margin-top:18px;width:100%;border:1px solid rgba(15,118,110,.18);border-radius:12px;padding:10px 13px;background:rgba(255,255,255,.7);color:var(--teal-dark);font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.2s}.secondary-button:hover{background:#fff;border-color:rgba(15,118,110,.36);transform:translateY(-1px);box-shadow:0 8px 20px rgba(7,63,58,.08)}.percent-input{display:flex;align-items:center;position:relative}.percent-input input{padding-right:36px!important}.percent-input span{position:absolute;right:13px;top:50%;transform:translateY(-30%);color:var(--muted);font-weight:700}.form-help{padding:12px 13px;border-radius:12px;background:rgba(15,118,110,.05);color:var(--muted);font-size:11px;line-height:1.55}.form-help i{color:var(--sky);margin-right:6px}.warning-help{background:rgba(212,166,74,.09)}.warning-help i{color:#9a721f}.modal-description{color:var(--muted);line-height:1.6;margin:-8px 0 20px;font-size:13px}.indicator-card .secondary-button{margin-top:16px}.action-card .secondary-button{margin-top:18px}

/* v3 — identidade explícita do Portal Interno da PREI */
.auth-prei-subtitle{margin:18px 0 10px!important;font-size:18px!important;font-weight:700;color:#efd8a6!important;letter-spacing:.01em}
.auth-pill-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.auth-pill-row span{padding:9px 13px;border-radius:999px;border:1px solid rgba(239,216,166,.34);background:rgba(255,255,255,.06);font-size:12px;letter-spacing:.04em;color:rgba(255,255,255,.9)}
.auth-help{justify-content:flex-start!important}
.entity-search[hidden]{display:none!important}.field-help{display:block;margin-top:7px;color:var(--muted);font-size:10px;font-weight:500;line-height:1.45}.form-grid .entity-search{margin-bottom:8px}.form-grid #userEntity{margin-top:0}

/* v8 · gestão de entidades */
.entity-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:24px}.entity-summary-grid .summary-card small{display:block;margin-top:5px;color:var(--muted)}
.entity-admin-panel{margin-bottom:24px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.panel-head h3{margin:5px 0 0}.muted-note{color:var(--muted);font-size:13px;max-width:420px;text-align:right}
.type-label-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}.type-label-grid label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.type-label-grid input{margin-top:7px;width:100%}.type-label-grid .secondary-button{height:46px}
.type-badges{display:flex;flex-wrap:wrap;gap:6px}.row-actions{display:flex;gap:6px;justify-content:flex-end}.row-actions form{margin:0}.danger-icon{color:#a23a3a}.modal-wide{width:min(760px,calc(100vw - 32px))}.type-check-field{border:0;padding:0;margin:4px 0}.type-check-field legend{font-weight:700;margin-bottom:5px}.type-check-field>p{margin:0 0 12px;color:var(--muted);font-size:13px}.type-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.check-card{display:flex!important;align-items:flex-start;gap:9px;border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(255,255,255,.55);cursor:pointer}.check-card input{width:auto!important;margin:3px 0 0}.check-card span{font-size:13px;line-height:1.35;color:var(--text)}
@media(max-width:900px){.entity-summary-grid,.type-label-grid,.type-check-grid{grid-template-columns:1fr}.muted-note{text-align:left}.panel-head{flex-direction:column}}

/* Resumo institucional */
.entity-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0 28px}.entity-stat-card{display:flex;align-items:center;gap:16px;padding:20px 22px;border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(245,250,248,.78));border:1px solid rgba(15,118,110,.12);box-shadow:0 14px 36px rgba(7,63,58,.07)}.entity-stat-icon{width:50px;height:50px;display:grid;place-items:center;flex:0 0 50px;border-radius:16px;background:linear-gradient(135deg,rgba(15,118,110,.12),rgba(212,166,74,.15));color:var(--sky);font-size:20px}.entity-stat-copy{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label count" "small count";align-items:center;gap:4px 14px;min-width:0;width:100%}.entity-stat-copy span{grid-area:label;color:var(--teal-deep);font-weight:750;font-size:14px;line-height:1.3}.entity-stat-copy strong{grid-area:count;font-size:34px;line-height:1;color:var(--teal-deep);letter-spacing:-.04em}.entity-stat-copy small{grid-area:small;color:var(--muted);font-size:11px}.type-check-field .field-rule{margin-top:8px}.check-card:has(input[data-type-code="prei_member"]){background:rgba(15,118,110,.035)}
@media(max-width:1050px){.entity-stat-grid{grid-template-columns:1fr}.entity-stat-card{padding:18px 20px}}

/* Compact page actions: page title already lives in the top bar. */
.page-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin: 0 0 22px;
}

@media (max-width: 720px) {
  .page-actions {
    justify-content: stretch;
  }

  .page-actions .primary-button {
    width: 100%;
  }
}


/* Perfil do utilizador e menu da conta */
.user-menu {
  position: relative;
}

.user-menu > summary {
  list-style: none;
}

.user-menu > summary::-webkit-details-marker {
  display: none;
}

.user-menu .user-chip {
  cursor: pointer;
  user-select: none;
  transition: 0.2s ease;
}

.user-menu .user-chip:hover {
  background: #fff;
  border-color: rgba(15, 118, 110, 0.3);
  box-shadow: 0 10px 26px rgba(7, 63, 58, 0.08);
}

.user-avatar {
  overflow: hidden;
}

.user-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.user-menu-chevron {
  margin-left: 4px;
  color: var(--muted);
  font-size: 10px;
  transition: transform 0.2s ease;
}

.user-menu[open] .user-menu-chevron {
  transform: rotate(180deg);
}

.user-dropdown {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 260px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 24px 70px rgba(7, 63, 58, 0.18);
  z-index: 80;
}

.user-dropdown-head {
  padding: 11px 12px 12px;
  border-bottom: 1px solid rgba(93, 124, 121, 0.12);
  margin-bottom: 6px;
}

.user-dropdown-head strong,
.user-dropdown-head span {
  display: block;
}

.user-dropdown-head strong {
  font-size: 13px;
  color: var(--teal-deep);
}

.user-dropdown-head span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.user-dropdown a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 12px;
  border-radius: 12px;
  font-size: 13px;
  color: #43504e;
}

.user-dropdown a:hover {
  background: rgba(15, 118, 110, 0.06);
  color: var(--teal-deep);
}

.user-dropdown a i {
  width: 18px;
  text-align: center;
  color: var(--sky);
}

.user-dropdown-separator {
  height: 1px;
  background: rgba(93, 124, 121, 0.12);
  margin: 6px 4px;
}

.user-dropdown .logout-link,
.user-dropdown .logout-link i {
  color: #9f3f3f;
}

.profile-grid {
  display: grid;
  grid-template-columns: 310px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}

.profile-photo-panel,
.profile-panel {
  padding: 24px;
}

.profile-photo-panel {
  position: sticky;
  top: 120px;
}

.profile-photo-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.profile-photo-large {
  width: 118px;
  height: 118px;
  border-radius: 34px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: linear-gradient(135deg, var(--teal-dark), var(--sky));
  color: #fff;
  font-size: 42px;
  font-weight: 800;
  box-shadow: 0 18px 36px rgba(7, 63, 58, 0.18);
  margin-bottom: 16px;
}

.profile-photo-large img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-photo-wrap strong {
  font-size: 18px;
  color: var(--teal-deep);
}

.profile-photo-wrap span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 13px;
}

.profile-photo-wrap small {
  margin-top: 10px;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(15, 118, 110, 0.07);
  color: var(--sky);
  font-weight: 700;
}

.profile-photo-form {
  display: grid;
  gap: 10px;
  margin-top: 24px;
}

.file-picker {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 45px;
  border: 1px dashed rgba(15, 118, 110, 0.32);
  border-radius: 13px;
  background: rgba(15, 118, 110, 0.035);
  color: var(--teal-dark);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.file-picker input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.profile-help {
  margin: 9px 0 0;
  text-align: center;
  color: var(--muted);
  font-size: 10px;
}

.profile-remove-photo {
  margin-top: 7px;
  text-align: center;
}

.text-danger-button {
  border: 0;
  background: transparent;
  color: #9f3f3f;
  font-size: 11px;
  cursor: pointer;
  padding: 7px;
}

.profile-main-column {
  display: grid;
  gap: 20px;
}

.profile-section-head {
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(93, 124, 121, 0.12);
}

.profile-section-head h2 {
  margin: 0;
  font-size: 20px;
}

.profile-section-head p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.profile-form-actions {
  display: flex;
  justify-content: flex-end;
  padding-top: 4px;
}

@media (max-width: 900px) {
  .profile-grid {
    grid-template-columns: 1fr;
  }

  .profile-photo-panel {
    position: static;
  }
}

@media (max-width: 860px) {
  .user-chip-copy,
  .user-menu-chevron {
    display: none;
  }

  .user-dropdown {
    right: -4px;
  }
}


/* Pesquisa da Rede PREI */
.rede-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 22px}
.rede-search-box{width:min(620px,100%);min-height:50px;padding:0 14px 0 16px;border-radius:16px;background:rgba(255,255,255,.82);box-shadow:0 12px 34px rgba(7,63,58,.07);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.rede-search-box:focus-within{border-color:rgba(15,118,110,.42);background:#fff;box-shadow:0 14px 38px rgba(7,63,58,.11),0 0 0 3px rgba(15,118,110,.06)}
.rede-search-box input{font-size:14px}
.rede-search-count{display:grid;place-items:center;min-width:32px;height:28px;padding:0 9px;border-radius:999px;background:rgba(15,118,110,.09);color:var(--sky);font-size:11px;font-weight:800}
.entity-card[hidden]{display:none!important}
.rede-empty-state{margin-top:36px;text-align:center;padding:52px 20px;color:var(--muted)}
.rede-empty-state i{display:block;font-size:28px;color:var(--sky);margin-bottom:12px}
.rede-empty-state strong,.rede-empty-state span{display:block}
.rede-empty-state strong{color:var(--text);font-size:17px;margin-bottom:5px}
.rede-empty-state span{font-size:13px}

.user-dropdown-action{width:100%;border:0;background:transparent;font:inherit;color:inherit;text-align:left;display:flex;align-items:center;gap:14px;padding:13px 16px;cursor:pointer}.user-dropdown-action:hover{background:rgba(7,118,109,.06)}

/* Multi-select com checkboxes */
.checkbox-multiselect{border:1px solid var(--border,#d7e2df);border-radius:16px;background:#fff;max-height:220px;overflow:auto;padding:8px 10px}.checkbox-multiselect label{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:10px;cursor:pointer;font-weight:500}.checkbox-multiselect label:hover{background:rgba(7,118,109,.06)}.checkbox-multiselect input[type="checkbox"]{width:18px;height:18px;margin:0;accent-color:#08786f;flex:0 0 auto}.checkbox-multiselect .participant-copy{display:flex;align-items:baseline;gap:6px;min-width:0}.checkbox-multiselect .participant-copy strong{font-size:14px}.checkbox-multiselect .participant-copy span{font-size:13px;color:#66736f}.checkbox-multiselect-empty{padding:12px;color:#66736f;font-size:14px}

.multi-dropdown{position:relative}.multi-dropdown .field-label{display:block;margin-bottom:8px;font-weight:700}.multi-dropdown-toggle{width:100%;min-height:50px;border:1px solid #d7e1df;border-radius:14px;background:#fff;padding:0 16px;display:flex;align-items:center;justify-content:space-between;font:inherit;color:#263536;cursor:pointer;text-align:left}.multi-dropdown-toggle:focus{outline:none;border-color:#11877d;box-shadow:0 0 0 3px rgba(17,135,125,.10)}.multi-dropdown-toggle i{font-size:12px;transition:transform .18s ease}.multi-dropdown.open .multi-dropdown-toggle i{transform:rotate(180deg)}.multi-dropdown-menu{display:none;position:absolute;z-index:50;left:0;right:0;top:calc(100% + 7px);max-height:240px;overflow:auto;background:#fff;border:1px solid #d7e1df;border-radius:14px;box-shadow:0 16px 36px rgba(24,55,52,.15);padding:7px}.multi-dropdown.open .multi-dropdown-menu{display:block}.multi-dropdown-option{display:flex!important;align-items:center;gap:11px;padding:10px 11px!important;border-radius:9px;cursor:pointer;margin:0!important;font-weight:400!important}.multi-dropdown-option:hover{background:#eef7f5}.multi-dropdown-option input{width:17px!important;height:17px!important;min-height:0!important;accent-color:#08776f;flex:0 0 auto}.multi-dropdown-option span{line-height:1.3}.multi-dropdown-empty{padding:12px;color:#6a7776}

/* User dropdown actions: buttons must render exactly like menu links */
.user-dropdown .user-dropdown-action{
    -webkit-appearance:none;
    appearance:none;
    box-sizing:border-box;
    width:100%;
    min-height:0;
    margin:0;
    padding:12px 14px;
    border:0;
    border-radius:10px;
    background:transparent;
    box-shadow:none;
    color:#415554;
    font:inherit;
    font-size:14px;
    font-weight:400;
    line-height:1.35;
    text-align:left;
    text-decoration:none;
    display:flex;
    align-items:center;
    gap:12px;
    cursor:pointer;
}
.user-dropdown .user-dropdown-action:hover,
.user-dropdown .user-dropdown-action:focus{
    background:#eef7f5;
    color:#073f3b;
    outline:none;
    box-shadow:none;
}
.user-dropdown .user-dropdown-action i{
    width:18px;
    flex:0 0 18px;
    text-align:center;
    color:#08776f;
}

.contract-activities{margin-top:16px;border-top:1px solid rgba(14,88,80,.10);padding-top:12px}.contract-activities summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;font-weight:800;color:#076c64}.contract-activities summary::-webkit-details-marker{display:none}.contract-activities summary>span:first-child{display:flex;align-items:center;gap:8px}.contract-count{display:grid;place-items:center;min-width:27px;height:27px;padding:0 8px;border-radius:999px;background:#e8f4f2;color:#076c64}.contract-activities-list{display:grid;gap:9px;margin-top:12px}.contract-activity{display:grid;grid-template-columns:42px 1fr;gap:11px;padding:12px;border-radius:13px;background:rgba(237,247,245,.72);border:1px solid rgba(14,88,80,.07)}.contract-activity-code{width:42px;height:34px;display:grid;place-items:center;border-radius:10px;background:#fff;color:#076c64;font-weight:900;font-size:12px}.contract-activity-copy strong{display:block;font-size:13px;line-height:1.35}.contract-activity-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px;color:#61706e;font-size:11px}.contract-activity-meta span{display:flex;align-items:center;gap:5px}.contract-activity-copy small{display:block;margin-top:5px;color:#77827f;font-size:11px}.task-activity{margin-top:6px;max-width:380px;font-size:12px;line-height:1.35;color:#5f6e6b}.task-activity strong{color:#08776f;margin-right:4px}

.activity-title-row{display:flex;align-items:center;justify-content:space-between;gap:14px}
.activity-title-row>strong{flex:1}
.activity-state-controls{display:flex;align-items:center;gap:9px;white-space:nowrap}
.activity-status-form{margin:0}
.activity-status-select{min-height:30px;padding:5px 28px 5px 10px;border:1px solid #d9e6e3;border-radius:999px;background:#f6f2e7;color:#8b6511;font:inherit;font-size:10px;font-weight:800;cursor:pointer}
.activity-percent{font-size:13px;color:#006e66}
.activity-progress-track{height:4px;margin:8px 0;background:#dce9e7;border-radius:999px;overflow:hidden}
.activity-progress-track span{display:block;height:100%;background:#18877e;border-radius:999px}

/* Código de cores dos estados das atividades */
.activity-status-select.status-por-iniciar{
    background:#f6f0df;
    border-color:#eadcb8;
    color:#936900;
}
.activity-status-select.status-em-curso{
    background:#e4f3f1;
    border-color:#b8ddd8;
    color:#006e66;
}
.activity-status-select.status-concluida{
    background:#e5f3e9;
    border-color:#b9dcc4;
    color:#287443;
}
.activity-state-controls:has(.status-por-iniciar) .activity-percent{color:#936900}
.activity-state-controls:has(.status-em-curso) .activity-percent{color:#006e66}
.activity-state-controls:has(.status-concluida) .activity-percent{color:#287443}
.contract-activity:has(.status-por-iniciar) .activity-progress-track span{background:#c89b32}
.contract-activity:has(.status-em-curso) .activity-progress-track span{background:#16877d}
.contract-activity:has(.status-concluida) .activity-progress-track span{background:#3b8b57}

/* Estados das Ações: mesma semântica cromática das Atividades */
.status-badge.action-status.status-por-iniciar{
    background:#f6f0df;
    color:#936900;
    border:1px solid #eadcb8;
}
.status-badge.action-status.status-em-curso{
    background:#e4f3f1;
    color:#006e66;
    border:1px solid #b8ddd8;
}
.status-badge.action-status.status-concluida{
    background:#e5f3e9;
    color:#287443;
    border:1px solid #b9dcc4;
}

/* Paleta única de estados em todo o portal */
.status-badge.status-por-iniciar,
.task-state-select.status-por-iniciar,
.task-state-badge.status-por-iniciar,
.activity-status-select.status-por-iniciar{
    background:#f6f0df !important;border:1px solid #eadcb8 !important;color:#936900 !important;
}
.status-badge.status-em-curso,
.task-state-select.status-em-curso,
.task-state-badge.status-em-curso,
.activity-status-select.status-em-curso{
    background:#e4f3f1 !important;border:1px solid #b8ddd8 !important;color:#006e66 !important;
}
.status-badge.status-concluida,
.task-state-select.status-concluida,
.task-state-badge.status-concluida,
.activity-status-select.status-concluida{
    background:#e5f3e9 !important;border:1px solid #b9dcc4 !important;color:#287443 !important;
}
.status-badge.action-status,.task-state-badge{border-radius:999px !important}
.task-state-form{margin:0}
.task-state-select{
    appearance:auto;-webkit-appearance:auto;min-width:124px;min-height:36px;
    padding:7px 30px 7px 13px;border-radius:14px !important;
    font:inherit;font-size:12px;font-weight:800;cursor:pointer;outline:none;
}
.task-state-select:focus{box-shadow:0 0 0 3px rgba(22,135,125,.10)}
.task-state-badge{display:inline-flex;align-items:center;min-height:32px;padding:6px 12px;font-size:11px;font-weight:800}
.panel,.table-wrap{border-radius:22px !important}
.table-wrap{overflow:hidden}

/* Tarefas — seletor de estado com o mesmo desenho das Atividades */
table .task-state-form{margin:0;display:inline-flex}
table .task-state-select{
    -webkit-appearance:auto !important;
    appearance:auto !important;
    box-sizing:border-box !important;
    min-width:132px !important;
    width:auto !important;
    height:38px !important;
    min-height:38px !important;
    padding:7px 32px 7px 14px !important;
    border-radius:999px !important;
    font-family:inherit !important;
    font-size:12px !important;
    line-height:1 !important;
    font-weight:800 !important;
    cursor:pointer !important;
    box-shadow:none !important;
}
table .task-state-select.status-por-iniciar{
    background-color:#f6f0df !important;
    border:1px solid #eadcb8 !important;
    color:#936900 !important;
}
table .task-state-select.status-em-curso{
    background-color:#e4f3f1 !important;
    border:1px solid #b8ddd8 !important;
    color:#006e66 !important;
}
table .task-state-select.status-concluida{
    background-color:#e5f3e9 !important;
    border:1px solid #b9dcc4 !important;
    color:#287443 !important;
}
table .task-state-select:hover{filter:brightness(.985)}
table .task-state-select:focus{
    outline:none !important;
    box-shadow:0 0 0 3px rgba(22,135,125,.10) !important;
}


/* CORREÇÃO: aplicar dimensões ao SELECT editável das tarefas (não ao badge de estado) */
.tasks-table td:first-child form.task-state-form > select.task-state-select,
table td:first-child .task-state-select{
    box-sizing:border-box !important;
    width:124px !important;
    min-width:124px !important;
    max-width:124px !important;
    height:32px !important;
    min-height:32px !important;
    padding:4px 28px 4px 12px !important;
    border-radius:999px !important;
    font-size:11px !important;
    line-height:20px !important;
}

.auth-help-split{display:flex;justify-content:space-between;align-items:center;gap:18px}
.auth-help-split a:last-child{font-weight:700;color:#08786f}
.reset-auth-page{min-height:100vh;background:linear-gradient(135deg,#f8f8f3,#e9f5f3)}
.reset-auth-shell{min-height:100vh;display:grid;place-items:center;padding:32px}
.reset-auth-card{width:min(520px,100%);background:rgba(255,255,255,.94);border:1px solid rgba(8,120,111,.12);border-radius:28px;padding:38px;box-shadow:0 24px 70px rgba(15,61,57,.12)}
.local-reset-link{margin-top:18px;padding:15px 17px;border-radius:16px;background:#edf7f5;display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:13px}
.local-reset-link a{font-weight:800;color:#08786f}
.reset-button-link{text-decoration:none;display:flex;align-items:center;justify-content:center}
@media(max-width:620px){.auth-help-split{align-items:flex-start;flex-direction:column}.reset-auth-card{padding:26px}}

/* Login — composição do bloco esquerdo */
.auth-visual-copy .auth-description{max-width:none}
@media(max-width:1100px){
    .auth-visual-copy .auth-description br{display:none}
}

/* Login — marca principal sem subtítulo */
.auth-card .auth-brand > div:last-child{display:flex;align-items:center}
.auth-card .auth-brand strong{
    font-size:20px !important;
    line-height:1.15 !important;
    font-weight:800 !important;
    letter-spacing:-.2px;
}

/* Login — destaque da recuperação de palavra-passe */
.auth-help-split{
    justify-content:flex-end !important;
}
.auth-help-split a{
    font-size:14px !important;
    font-weight:800 !important;
    color:#08786f !important;
}

.task-title-link{color:inherit;text-decoration:none}.task-title-link:hover{color:#08786f}
.form-grid textarea{width:100%;resize:vertical;min-height:120px;border:1px solid #d8e2e0;border-radius:15px;padding:14px;font:inherit;background:#fff}
.task-detail-top{margin-bottom:16px}.back-link{color:#08786f;text-decoration:none;font-weight:800}
.task-detail-card{padding:28px}.task-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-bottom:1px solid #dce7e5;padding-bottom:22px}.task-detail-head h2{margin:7px 0 0;font-size:28px}
.task-meta-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:14px;margin:22px 0}.task-meta-grid>div{background:#f2f8f7;border-radius:16px;padding:15px;display:flex;flex-direction:column;gap:3px}.task-meta-grid small{color:#667875}.task-description,.task-files{border-top:1px solid #dce7e5;padding-top:22px;margin-top:22px}.task-description h3,.task-files h3{margin:0 0 12px}.task-description p{line-height:1.65}
.task-files-head{display:flex;justify-content:space-between;gap:18px;align-items:center}.inline-upload{display:flex;gap:8px;align-items:center}.attachment-list{display:grid;gap:8px}.attachment-list a{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid #dce7e5;border-radius:14px;text-decoration:none;color:inherit}.attachment-list a span{display:flex;flex:1;flex-direction:column}.attachment-list a small{color:#71817f}
@media(max-width:900px){.task-meta-grid{grid-template-columns:1fr 1fr}.task-files-head{align-items:flex-start;flex-direction:column}}

/* Tarefas — acesso claro à página de detalhe */
.task-detail-link{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:max-content;max-width:100%}
.task-detail-link span{font-size:11px;font-weight:800;color:#08786f;opacity:.78}
.task-detail-link:hover span{opacity:1}
.task-detail-col{width:82px;text-align:center}
.task-detail-button{width:38px;height:38px;border:1px solid #cfe1de;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:#08786f;text-decoration:none;background:#fff;transition:.18s ease}
.task-detail-button:hover{background:#08786f;color:#fff;border-color:#08786f;transform:translateX(2px)}

/* Detalhe da tarefa — upload de anexos */
.task-upload-form{
    display:flex;
    align-items:stretch;
    gap:10px;
    width:min(560px,100%);
}
.task-file-picker{
    flex:1;
    min-width:0;
    height:54px;
    padding:0 16px;
    display:flex;
    align-items:center;
    gap:12px;
    border:1px dashed #a9cbc6;
    border-radius:16px;
    background:#f5faf9;
    cursor:pointer;
    transition:.18s ease;
}
.task-file-picker:hover,.task-file-picker.has-files{
    border-color:#08786f;
    background:#edf7f5;
}
.task-file-input{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    opacity:0!important;
    overflow:hidden!important;
    pointer-events:none!important;
}
.task-file-icon{
    width:34px;
    height:34px;
    flex:0 0 34px;
    border-radius:11px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#dfeeed;
    color:#08786f;
    font-size:15px;
}
.task-file-copy{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:2px;
    line-height:1.15;
}
.task-file-copy strong{
    font-size:13px;
    color:#123c39;
}
.task-file-copy small{
    max-width:300px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#71817f;
    font-size:11px;
}
.task-upload-button{
    height:54px;
    min-width:126px;
    border-radius:16px!important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
}
@media(max-width:650px){
    .task-upload-form{flex-direction:column}
    .task-upload-button{width:100%}
}

/* Tarefas — workspace pessoal + visão global */
.tasks-workspace{margin-bottom:18px}
.task-tabs{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.task-tab{border:1px solid #d3e2df;background:rgba(255,255,255,.72);color:#536966;border-radius:14px;padding:11px 15px;font:inherit;font-weight:800;cursor:pointer;display:flex;align-items:center;gap:9px}
.task-tab span{min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:#e8f2f0;color:#08786f;display:inline-flex;align-items:center;justify-content:center;font-size:11px}
.task-tab.active{background:#075f58;color:#fff;border-color:#075f58;box-shadow:0 8px 22px rgba(7,95,88,.13)}
.task-tab.active span{background:rgba(255,255,255,.16);color:#fff}
.task-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.task-summary-item{border:1px solid #dce8e6;border-radius:16px;background:rgba(255,255,255,.72);padding:12px 15px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;text-align:left;font:inherit}
.task-summary-item span{font-size:12px;font-weight:800}.task-summary-item strong{font-size:19px}
.summary-start strong{color:#9b6800}.summary-progress strong{color:#08786f}.summary-done strong{color:#187a46}
.task-summary-item:hover{border-color:#aaccc7;background:#fff}
.task-filters{display:grid;grid-template-columns:minmax(260px,1fr) 190px 190px 190px;gap:9px}
.task-filters select,.task-search{height:46px;border:1px solid #d4e2e0;border-radius:14px;background:#fff}
.task-filters select{padding:0 13px;font:inherit;color:#334b48}
.task-search{display:flex;align-items:center;gap:9px;padding:0 14px;color:#71817f}
.task-search input{width:100%;border:0!important;outline:0!important;background:transparent!important;padding:0!important;box-shadow:none!important;font:inherit}
.task-title-link{display:inline-block!important;width:auto!important}
.task-title-link strong{transition:.15s ease}.task-title-link:hover strong{color:#08786f;text-decoration:underline;text-underline-offset:3px}
@media(max-width:1050px){.task-filters{grid-template-columns:1fr 1fr}.task-summary{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:650px){.task-tabs{overflow:auto}.task-summary,.task-filters{grid-template-columns:1fr}.task-tab{white-space:nowrap}}

/* Tarefas — correção dos filtros e botão limpar */
.task-filters{
    grid-template-columns:minmax(260px,1fr) 190px 190px 190px auto!important;
}
.clear-task-filters{
    height:46px;
    padding:0 16px;
    border:1px solid #cddfdb;
    border-radius:14px;
    background:rgba(255,255,255,.82);
    color:#0b6f67;
    font:inherit;
    font-size:13px;
    font-weight:800;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    cursor:pointer;
    white-space:nowrap;
    transition:.18s ease;
}
.clear-task-filters:hover{
    background:#edf7f5;
    border-color:#94c4bd;
}
@media(max-width:1180px){
    .task-filters{grid-template-columns:1fr 1fr!important}
}
@media(max-width:650px){
    .task-filters{grid-template-columns:1fr!important}
    .clear-task-filters{width:100%}
}

/* Tarefas: garantir isolamento real da vista pessoal */
.task-row[hidden]{display:none!important;}

/* Detalhe da tarefa — mais respiro antes da zona de anexos */
.task-detail-attachments,
.task-attachments-section{
    margin-top:28px;
}

/* Compatibilidade com a estrutura atual da página */
.task-detail-card h2,
.task-detail-card h3{
    scroll-margin-top:20px;
}

.task-attachments-heading{
    margin-top:34px!important;
}

/* Reuniões — edição */
.meeting-edit-btn{
    border:1px solid #cfe2df;background:#fff;color:#08786f;border-radius:999px;
    padding:8px 13px;font:inherit;font-weight:700;cursor:pointer;margin-left:8px;
}
.meeting-edit-btn:hover{background:#edf8f6}
.meeting-multiselect{position:relative;margin-top:7px}
.meeting-multiselect-trigger{
    width:100%;min-height:52px;border:1px solid #d3dfdd;border-radius:15px;background:#fff;
    padding:0 18px;display:flex;align-items:center;justify-content:space-between;
    font:inherit;color:#263638;cursor:pointer;
}
.meeting-multiselect-menu{
    display:none;position:absolute;z-index:40;left:0;right:0;top:calc(100% + 7px);
    max-height:230px;overflow:auto;background:#fff;border:1px solid #d3dfdd;
    border-radius:15px;padding:8px;box-shadow:0 16px 35px rgba(18,72,67,.14)
}
.meeting-multiselect.open .meeting-multiselect-menu{display:block}
.meeting-check-option{
    display:flex!important;align-items:center;gap:11px;padding:10px 11px;border-radius:10px;
    cursor:pointer;font-weight:600!important
}
.meeting-check-option:hover{background:#eff7f6}
.meeting-check-option input{width:18px;height:18px;accent-color:#08786f}

/* Navegação principal — Projeto + Rede PREI */
.portal-nav .nav-group{margin:3px 0}
.portal-nav .nav-group>summary{
    list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;
    gap:10px;padding:12px 14px;border-radius:13px;color:inherit;font-weight:700;
    user-select:none;transition:.18s ease;
}
.portal-nav .nav-group>summary::-webkit-details-marker{display:none}
.portal-nav .nav-group>summary:hover{background:rgba(255,255,255,.07)}
.portal-nav .nav-group>summary.active-parent{background:rgba(255,255,255,.055)}
.portal-nav .nav-group-title{display:flex;align-items:center;gap:12px;min-width:0}
.portal-nav .nav-group-title>i{width:20px;text-align:center}
.portal-nav .nav-group-chevron{font-size:11px;opacity:.65;transition:transform .18s ease}
.portal-nav .nav-group[open] .nav-group-chevron{transform:rotate(180deg)}
.portal-nav .nav-submenu{
    display:flex;flex-direction:column;gap:2px;margin:2px 0 7px 26px;
    padding-left:17px;border-left:1px solid rgba(255,255,255,.13)
}
.portal-nav .nav-submenu a{
    min-height:38px;padding:9px 12px!important;border-radius:11px!important;
    font-size:13px;font-weight:650;
}
.portal-nav .nav-submenu a.active{font-weight:800}

/* Ajuste final dos grupos da sidebar */
.portal-nav details.nav-group,
.portal-nav details.nav-group > summary {
    list-style: none !important;
}
.portal-nav details.nav-group > summary {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}
.portal-nav details.nav-group > summary::marker {
    display: none !important;
    content: "" !important;
    font-size: 0 !important;
}
.portal-nav details.nav-group > summary::-webkit-details-marker {
    display: none !important;
}
.portal-nav .nav-group-title {
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
}
.portal-nav .nav-group-chevron {
    margin-left:auto !important;
    flex:0 0 auto !important;
}
.portal-nav .nav-submenu {
    margin-left:18px !important;
    padding-left:10px !important;
    border-left:1px solid rgba(255,255,255,.12) !important;
}
.portal-nav .nav-submenu a {
    display:flex !important;
    align-items:center !important;
    gap:11px !important;
    min-height:40px !important;
    padding:9px 12px !important;
}
.portal-nav .nav-submenu a > i {
    width:19px !important;
    text-align:center !important;
    flex:0 0 19px !important;
    opacity:.82 !important;
}

/* Sidebar v3: sem marcador nativo; grupos abertos por defeito */
.portal-nav details.nav-group > summary {
    list-style-type:none !important;
}
.portal-nav details.nav-group > summary::-webkit-details-marker,
.portal-nav details.nav-group > summary::marker {
    display:none !important;
    content:"" !important;
}
.portal-nav details.nav-group > summary::after {
    content:"\f078";
    font-family:"Font Awesome 6 Free";
    font-weight:900;
    font-size:11px;
    margin-left:auto;
    opacity:.75;
    transition:transform .18s ease;
}
.portal-nav details.nav-group[open] > summary::after {
    transform:rotate(180deg);
}
/* neutraliza qualquer pseudo-elemento antigo que desenhe seta à esquerda */
.portal-nav details.nav-group > summary::before {
    content:none !important;
    display:none !important;
}

/* FIX definitivo das setas dos menus agrupados */
.portal-nav details.nav-group > summary {
    list-style: none !important;
    list-style-type: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}
.portal-nav details.nav-group > summary::-webkit-details-marker {
    display: none !important;
}
.portal-nav details.nav-group > summary::marker {
    content: "" !important;
    font-size: 0 !important;
}
.portal-nav details.nav-group > summary::before {
    content: none !important;
    display: none !important;
}
.portal-nav details.nav-group > summary::after {
    content: "\f078" !important;
    display: inline-block !important;
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 900 !important;
    font-size: 11px !important;
    line-height: 1 !important;
    margin-left: auto !important;
    opacity: .8 !important;
    transform: rotate(0deg);
    transition: transform .18s ease;
}
.portal-nav details.nav-group[open] > summary::after {
    transform: rotate(180deg) !important;
}

/* Sidebar groups sem details/summary: uma única seta, sempre à direita */
.portal-nav .nav-group{margin:3px 0}
.portal-nav .nav-group-toggle{
    width:100%;
    border:0;
    background:transparent;
    color:inherit;
    font:inherit;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:12px 14px;
    border-radius:13px;
    text-align:left;
}
.portal-nav .nav-group-toggle:hover{background:rgba(255,255,255,.07)}
.portal-nav .nav-group-toggle.active-parent{background:rgba(255,255,255,.055)}
.portal-nav .nav-group-title{display:flex;align-items:center;gap:12px;min-width:0}
.portal-nav .nav-group-title>i{width:20px;text-align:center}
.portal-nav .nav-group-toggle .nav-group-chevron{
    display:block!important;
    position:static!important;
    margin-left:auto!important;
    width:auto!important;
    font-size:11px!important;
    opacity:.8!important;
    flex:0 0 auto!important;
}
.portal-nav .nav-group-toggle::before,
.portal-nav .nav-group-toggle::after{content:none!important;display:none!important}
.portal-nav .nav-submenu[hidden]{display:none!important}

/* REPARAÇÃO SIDEBAR — grupos sem details/summary */
.portal-nav .nav-group{margin:2px 0!important}
.portal-nav .nav-group-toggle{
    box-sizing:border-box!important;
    width:100%!important;
    border:0!important;
    outline:0!important;
    background:transparent!important;
    color:inherit!important;
    font:inherit!important;
    cursor:pointer!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    padding:12px 14px!important;
    border-radius:13px!important;
    text-align:left!important;
}
.portal-nav .nav-group-toggle:hover,
.portal-nav .nav-group-toggle.active-parent{
    background:rgba(255,255,255,.07)!important;
}
.portal-nav .nav-group-title{
    display:flex!important;
    align-items:center!important;
    gap:12px!important;
}
.portal-nav .nav-group-title>i{
    width:20px!important;
    text-align:center!important;
}
.portal-nav .nav-group-chevron{
    display:inline-block!important;
    position:static!important;
    margin:0 0 0 auto!important;
    padding:0!important;
    width:auto!important;
    flex:0 0 auto!important;
    font-size:11px!important;
    opacity:.8!important;
}
.portal-nav .nav-group-toggle::before,
.portal-nav .nav-group-toggle::after{
    display:none!important;
    content:none!important;
}
.portal-nav .nav-submenu[hidden]{display:none!important}

/* Tipografia uniforme da sidebar — igual aos menus de Gestão */
.portal-nav .nav-group-toggle,
.portal-nav .nav-group-toggle .nav-group-title,
.portal-nav .nav-group-toggle .nav-group-title span,
.portal-nav .nav-submenu a,
.portal-nav .nav-submenu a span {
    font-weight: 400 !important;
}

/* Marca NORTEtur funciona como Home */
.portal-sidebar .portal-brand-home{
    text-decoration:none!important;
    color:inherit!important;
    cursor:pointer!important;
}
.portal-sidebar .portal-brand-home strong,
.portal-sidebar .portal-brand-home span{
    color:inherit;
}
.portal-sidebar .portal-brand-home:hover{
    opacity:.92;
}

/* Estado automático das reuniões */
.status-badge.meeting-status{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:999px!important;
    padding:7px 12px!important;
    font-weight:600!important;
    line-height:1!important;
}
.status-badge.meeting-status-scheduled{
    background:#e8f4f2!important;
    color:#007f73!important;
    border:1px solid #cfe8e3!important;
}
.status-badge.meeting-status-done{
    background:#e8f5ec!important;
    color:#087a3f!important;
    border:1px solid #b9dfc8!important;
}

/* Filtros rápidos dos Membros da Rede */
.rede-stat-filter{cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.rede-stat-filter:hover{transform:translateY(-1px)}
.rede-stat-filter.active{border-color:#0b8278!important;box-shadow:0 0 0 2px rgba(11,130,120,.12)!important}
.rede-stat-filter.active .entity-stat-icon{background:#e4f3ef!important}

/* Cartões de tipologia da Rede: affordance clara de botão/filtro */
.rede-stat-filter{
    cursor:pointer;
    position:relative;
    user-select:none;
    transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.rede-stat-filter::after{
    content:"Filtrar";
    position:absolute;
    right:18px;
    bottom:10px;
    font-size:11px;
    font-weight:700;
    color:#087d73;
    opacity:0;
    transform:translateY(3px);
    transition:opacity .16s ease,transform .16s ease;
}
.rede-stat-filter:hover{
    transform:translateY(-3px);
    border-color:#74bdb5!important;
    box-shadow:0 10px 28px rgba(0,78,70,.12)!important;
    background:#fbfefd;
}
.rede-stat-filter:hover::after{
    opacity:1;
    transform:translateY(0);
}
.rede-stat-filter:focus-visible{
    outline:3px solid rgba(11,130,120,.22);
    outline-offset:3px;
}
.rede-stat-filter.active{
    border-color:#0b8278!important;
    box-shadow:0 0 0 2px rgba(11,130,120,.14),0 10px 28px rgba(0,78,70,.10)!important;
    background:#f3fbf9;
}
.rede-stat-filter.active::after{
    content:"Filtro ativo ×";
    opacity:1;
    transform:none;
}

/* Cartões-filtro: feedback visual de botão, sem textos adicionais */
.rede-stat-filter::after{
    content:none!important;
    display:none!important;
}
.rede-stat-filter:hover::after,
.rede-stat-filter.active::after{
    content:none!important;
    display:none!important;
}

/* Entidades: pesquisa fora da tabela e cartões de tipologia como filtros */
.entity-search-toolbar{margin:18px 0 16px}
.entity-search-toolbar .rede-search{width:100%}
.entity-stat-filter{
    cursor:pointer;
    user-select:none;
    transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
}
.entity-stat-filter:hover{
    transform:translateY(-3px);
    border-color:#74bdb5!important;
    box-shadow:0 10px 28px rgba(0,78,70,.12)!important;
    background:#fbfefd;
}
.entity-stat-filter:focus-visible{
    outline:3px solid rgba(11,130,120,.22);
    outline-offset:3px;
}
.entity-stat-filter.active{
    border-color:#0b8278!important;
    box-shadow:0 0 0 2px rgba(11,130,120,.14),0 10px 28px rgba(0,78,70,.10)!important;
    background:#f3fbf9;
}
.entity-stat-filter::after{content:none!important;display:none!important}

/* Entidades — seleção exclusiva isolada de qualquer .active global */
.entity-stat-grid .entity-stat-filter.active{
    border-color:var(--border, #d8e5e2)!important;
    box-shadow:none!important;
    background:#fff!important;
}
.entity-stat-grid .entity-stat-filter.entity-filter-selected{
    border-color:#0b8278!important;
    box-shadow:0 0 0 2px rgba(11,130,120,.14),0 10px 28px rgba(0,78,70,.10)!important;
    background:#f3fbf9!important;
}

/* Entidades: apenas o cartão explicitamente selecionado recebe o contorno ativo */
.entity-stat-grid .entity-stat-filter:not(.entity-filter-selected){
    border-color:#d8e5e2!important;
    box-shadow:none!important;
    background:#fff!important;
}
.entity-stat-grid .entity-stat-filter:not(.entity-filter-selected):hover{
    border-color:#74bdb5!important;
    box-shadow:0 10px 28px rgba(0,78,70,.12)!important;
    background:#fbfefd!important;
}
.entity-stat-grid .entity-stat-filter.entity-filter-selected{
    border-color:#0b8278!important;
    box-shadow:0 0 0 2px rgba(11,130,120,.14),0 10px 28px rgba(0,78,70,.10)!important;
    background:#f3fbf9!important;
}

/* Ficha de entidade PREI */
.entity-detail-card{max-width:760px}.entity-detail-hero{display:flex;align-items:center;gap:18px;padding-bottom:22px;border-bottom:1px solid #dce8e5}.entity-detail-hero h3{margin:4px 0 0;font-size:25px;line-height:1.25}.entity-detail-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:#e8f5f2;color:#087c72;font-size:22px}.entity-detail-tags{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.entity-detail-tags span{padding:8px 13px;border-radius:999px;background:#edf7f5;color:#08776e;font-weight:700;font-size:13px}.entity-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.entity-detail-item{display:flex;gap:13px;padding:18px;border-radius:16px;background:#f5faf9;border:1px solid #e2eeeb}.entity-detail-item.full{grid-column:1/-1}.entity-detail-item>i{color:#087c72;margin-top:3px}.entity-detail-item small{display:block;color:#687a77;margin-bottom:5px}.entity-detail-item a{color:#102d2a;text-decoration:none;overflow-wrap:anywhere}@media(max-width:700px){.entity-detail-grid{grid-template-columns:1fr}.entity-detail-item.full{grid-column:auto}}

/* Marca de autenticação: título e subtítulo em linhas separadas */
.auth-brand > div:last-child{display:flex;flex-direction:column;align-items:flex-start}
.auth-brand > div:last-child > strong,.auth-brand > div:last-child > span{display:block}
.auth-brand > div:last-child > span{margin-top:2px}

/* Membros da Rede — o card inteiro comporta-se visualmente como botão */
.entity-card-clickable{
    cursor:pointer;
    user-select:none;
    transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
}
.entity-card-clickable:hover{
    transform:translateY(-3px);
    border-color:#74bdb5!important;
    box-shadow:0 10px 28px rgba(0,78,70,.12)!important;
    background:#fbfefd!important;
}
.entity-card-clickable:focus-visible{
    outline:3px solid rgba(11,130,120,.22);
    outline-offset:3px;
}

/* Rede PREI: feedback visual inequívoco no hover dos cartões de entidade */
#entityGrid .entity-card.entity-card-clickable{
    position:relative;
    cursor:pointer!important;
    border:1px solid rgba(212,166,74,.19)!important;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease!important;
}
#entityGrid .entity-card.entity-card-clickable:hover{
    transform:translateY(-4px)!important;
    border-color:#07877d!important;
    box-shadow:0 18px 42px rgba(7,63,58,.18)!important;
    background:linear-gradient(180deg,#ffffff,#f2faf8)!important;
}
#entityGrid .entity-card.entity-card-clickable:hover .entity-avatar{
    box-shadow:0 0 0 4px rgba(7,135,125,.10);
}
#entityGrid .entity-card.entity-card-clickable:focus-visible{
    border-color:#07877d!important;
    outline:3px solid rgba(7,135,125,.16)!important;
    outline-offset:3px;
}


/* Calendário PREI — apenas reuniões */
.prei-calendar-panel{padding:0;overflow:hidden}
.prei-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;border-bottom:1px solid #dfe9e7}
.prei-calendar-nav{display:flex;align-items:center;gap:9px}.prei-calendar-nav h2{margin:0 0 0 12px;font-size:22px}
.calendar-icon-btn,.calendar-today-btn,.prei-calendar-views button{border:1px solid #d6e3e0;background:#fff;color:#17312e;height:40px;border-radius:12px;cursor:pointer;font:inherit;transition:.16s ease}
.calendar-icon-btn{width:40px}.calendar-today-btn{padding:0 16px;font-weight:700}
.calendar-icon-btn:hover,.calendar-today-btn:hover,.prei-calendar-views button:hover{border-color:#0b8278;background:#f2faf8;transform:translateY(-1px)}
.prei-calendar-views{display:flex;padding:4px;background:#edf5f3;border-radius:13px;gap:3px}
.prei-calendar-views button{height:34px;padding:0 15px;border:0;background:transparent;font-weight:700}
.prei-calendar-views button.active{background:#087c72;color:#fff;box-shadow:0 3px 10px rgba(0,78,70,.16)}
.calendar-month-head{display:grid;grid-template-columns:repeat(7,1fr);background:#f6faf9;border-bottom:1px solid #dfe9e7}
.calendar-month-head div{padding:11px 12px;font-size:11px;letter-spacing:.1em;font-weight:800;color:#617572}
.calendar-month-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.calendar-day-cell{min-height:126px;padding:9px;border-right:1px solid #e3ecea;border-bottom:1px solid #e3ecea;background:#fff;overflow:hidden}
.calendar-day-cell:nth-child(7n){border-right:0}.calendar-day-cell.outside{background:#fafcfc;color:#9aaba8}
.calendar-day-number{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;font-weight:700;font-size:13px;margin-bottom:6px}
.calendar-day-cell.today .calendar-day-number{background:#087c72;color:#fff}
.calendar-day-events{display:flex;flex-direction:column;gap:5px}
.calendar-event{width:100%;border:1px solid #b9ddd8;background:#e8f5f2;color:#075f58;border-radius:10px;padding:9px 10px;display:flex;gap:8px;align-items:flex-start;text-align:left;cursor:pointer;font:inherit;font-weight:700;transition:.15s ease}
.calendar-event:hover{background:#d9efeb;border-color:#087c72;transform:translateY(-1px);box-shadow:0 5px 14px rgba(0,78,70,.10)}
.calendar-event.compact{font-size:12px;padding:6px 7px;border-radius:7px;white-space:nowrap;overflow:hidden}
.calendar-event.compact span:last-child{overflow:hidden;text-overflow:ellipsis}.calendar-event-time{font-size:.9em;opacity:.72;flex:none}
.calendar-week-grid{display:grid;grid-template-columns:repeat(7,1fr);min-height:520px}
.calendar-week-day{border-right:1px solid #e3ecea;padding:0 9px}.calendar-week-day:last-child{border:0}
.calendar-week-day-head{text-align:center;padding:16px 4px;border-bottom:1px solid #e3ecea;margin-bottom:10px}
.calendar-week-day-head span{display:block;font-size:11px;letter-spacing:.08em;color:#6a7b78;font-weight:800}.calendar-week-day-head strong{display:block;font-size:23px;margin-top:4px}
.calendar-week-events{display:flex;flex-direction:column;gap:8px}.calendar-no-event{display:block;text-align:center;color:#98a6a4;font-size:12px;padding:15px 3px}
.calendar-day-view{min-height:460px;padding:24px;display:flex;flex-direction:column;gap:10px}.calendar-day-view .calendar-event{max-width:700px}
.calendar-empty-day{min-height:380px;display:grid;place-items:center;align-content:center;gap:12px;color:#7b8c89}.calendar-empty-day i{font-size:30px;color:#0b8278}
.calendar-meeting-modal-card{max-width:680px}.calendar-meeting-modal-card h3{font-size:25px;margin:7px 38px 22px 0}
.calendar-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.calendar-detail-item{display:flex;gap:13px;padding:16px;border-radius:15px;background:#f4faf8;border:1px solid #e0ece9}
.calendar-detail-item.full{grid-column:1/-1}.calendar-detail-item>i{color:#087c72;margin-top:3px}.calendar-detail-item small{display:block;color:#6d7e7b;margin-bottom:5px}.calendar-detail-item strong{font-weight:700}
@media(max-width:850px){.prei-calendar-toolbar{align-items:flex-start;flex-direction:column}.calendar-month-grid,.calendar-month-head{min-width:760px}.prei-calendar{overflow-x:auto}.calendar-week-grid{min-width:850px}.calendar-detail-grid{grid-template-columns:1fr}.calendar-detail-item.full{grid-column:auto}}

/* Utilizadores — ativar/inativar sem apagar histórico */
.user-actions-head,.user-actions-cell{text-align:right;width:84px}
.user-toggle-form{display:inline-flex;margin:0}
.table-icon-button{width:38px;height:38px;border:1px solid #d6e3e0;border-radius:11px;background:#fff;color:#075f58;display:inline-grid;place-items:center;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease}
.table-icon-button:hover:not(:disabled){transform:translateY(-2px);border-color:#0b8278;background:#eef8f6;box-shadow:0 5px 14px rgba(0,78,70,.10)}
.table-icon-button.user-reactivate{background:#edf7f2;color:#16704d}
.table-icon-button:disabled{opacity:.35;cursor:not-allowed}

/* Entidades — ações visualmente distintas */
.entity-action-view{color:#087c72;background:#eef8f6;border-color:#c9e4df}
.entity-action-view:hover{background:#dff2ee!important;border-color:#087c72!important}
.entity-action-edit{color:#9a6500;background:#fff8e8;border-color:#ead9ae}
.entity-action-edit:hover{background:#fff0c8!important;border-color:#c9911a!important}
.entity-action-toggle.is-active{color:#9a3d3d;background:#fff2f1;border-color:#efd0cd}
.entity-action-toggle.is-active:hover{background:#ffe4e1!important;border-color:#c96760!important}
.entity-action-toggle.is-inactive{color:#27704e;background:#edf7f2;border-color:#cce4d7}
.entity-action-toggle.is-inactive:hover{background:#ddf0e6!important;border-color:#5a9a79!important}

/* Feedback de ações — mesmas famílias cromáticas dos botões de Entidades */
.alert.added{background:#eef8f6;border-color:#c9e4df;color:#087c72}
.alert.edited{background:#fff8e8;border-color:#ead9ae;color:#9a6500}
.alert.reactivated{background:#edf7f2;border-color:#cce4d7;color:#27704e}
.alert.inactivated,.alert.deleted{background:#fff2f1;border-color:#efd0cd;color:#9a3d3d}

.meeting-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.meeting-edit-button{margin-left:auto;color:#9a6500;background:#fff8e8;border-color:#ead9ae}
.meeting-edit-button:hover{background:#fff0c8!important;border-color:#c9911a!important;transform:translateY(-1px)}
.meeting-created-by{display:flex;align-items:center;gap:7px}

/* Reuniões — ações reservadas ao utilizador que agendou */
.meeting-card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.meeting-cancel-form{display:inline-flex;margin:0}
.meeting-cancel-button{color:#9a3d3d!important;background:#fff2f1!important;border-color:#efd0cd!important}
.meeting-cancel-button:hover{background:#ffe4e1!important;border-color:#c96760!important}
.meeting-status-cancelled{color:#9a3d3d!important;background:#fff2f1!important;border-color:#efd0cd!important}
.calendar-event.cancelled{opacity:.68;text-decoration:none;border-color:#efd0cd!important;background:#fff2f1!important}
.calendar-event.cancelled small{margin-left:auto;font-size:10px;font-weight:700;color:#9a3d3d}

/* Correção modal de edição de reunião */
.meeting-modal-panel{width:min(720px,100%)}
.meeting-modal-panel .meeting-form{margin-top:18px}
.meeting-modal-panel .meeting-form>div.full>label{display:block;font-size:12px;font-weight:700;color:#4b5654;margin-bottom:6px}
.calendar-modal-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:6px 0 20px}
.calendar-modal-heading h3{margin:0!important}

/* Estados das reuniões no calendário */
.calendar-event.cancelled{background:#fff0ef!important;border-color:#e6aaa5!important;color:#9a3d3d!important;opacity:1!important}
.calendar-event.cancelled:hover{background:#ffe5e2!important;border-color:#c96760!important;box-shadow:0 5px 14px rgba(154,61,61,.12)!important}
.calendar-event.done{background:#e8f5ec!important;border-color:#b9dfc8!important;color:#087a3f!important}
.calendar-event.done:hover{background:#dcf0e3!important;border-color:#68b486!important;box-shadow:0 5px 14px rgba(8,122,63,.12)!important}
.calendar-event.scheduled{background:#e8f4f2!important;border-color:#cfe8e3!important;color:#007f73!important}
.calendar-event.cancelled small,.calendar-event.done small{margin-left:auto;font-size:10px;font-weight:700;color:inherit}

/* Centro de notificações */
.notification-menu{position:relative}
.notification-menu>summary{list-style:none;position:relative;cursor:pointer}
.notification-menu>summary::-webkit-details-marker{display:none}
.notification-count{position:absolute;right:-5px;top:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:#c45149;color:#fff;border:2px solid #f7fbfa;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}
.notification-dropdown{position:absolute;right:0;top:calc(100% + 12px);width:min(430px,calc(100vw - 30px));max-height:580px;background:rgba(255,255,255,.98);border:1px solid #d8e4e1;border-radius:22px;box-shadow:0 22px 60px rgba(10,61,57,.18);overflow:hidden;z-index:120}
.notification-dropdown-head{padding:18px 20px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e4ecea}
.notification-dropdown-head>div{display:flex;flex-direction:column;gap:3px}.notification-dropdown-head strong{font-size:16px}
.notification-unread-total{font-size:11px;font-weight:750;color:#087c72;background:#e8f5f2;padding:6px 9px;border-radius:99px}
.notification-list{max-height:470px;overflow:auto;padding:8px}
.notification-item{border-radius:15px;position:relative}.notification-item.unread{background:#eef8f6}
.notification-open{width:100%;border:0;background:transparent;text-align:left;display:grid;grid-template-columns:42px 1fr 8px;gap:11px;padding:12px;border-radius:15px;cursor:pointer;color:inherit}
.notification-open:hover{background:#e5f2ef}
.notification-icon{width:40px;height:40px;border-radius:13px;background:#e1f1ee;color:#087c72;display:flex;align-items:center;justify-content:center}
.notification-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.notification-copy strong{font-size:13px}.notification-copy>span{font-size:12px;color:#536c68;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-copy small{font-size:10px;color:#83928f}
.notification-dot{width:7px;height:7px;border-radius:50%;background:#0b8d81;align-self:center}
.notification-empty{padding:34px 20px;display:flex;flex-direction:column;align-items:center;gap:9px;color:#71837f}.notification-empty i{font-size:22px}
.notification-modal-card{max-width:560px}.notification-modal-date{font-size:12px;color:#71837f;margin-top:-8px}.notification-modal-message{margin-top:18px;padding:18px;border-radius:16px;background:#eef6f4;color:#263d39;line-height:1.6;white-space:pre-wrap}.notification-modal-actions{display:flex;justify-content:flex-end;margin-top:18px}.notification-modal-actions form{margin:0}
@media(max-width:650px){.notification-dropdown{position:fixed;right:14px;left:14px;top:74px;width:auto}.notification-dropdown-head{padding:15px}}

/* Confirmação de presença em reuniões */
.meeting-participants{display:flex;gap:9px;align-items:flex-start;color:#536c68;margin:8px 0}
.meeting-participant-list{display:flex;flex-wrap:wrap;gap:6px 12px}
.meeting-participant{display:inline-flex;align-items:center;gap:5px}
.attendance-icon{font-size:11px;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.attendance-confirmed{color:#16845e;background:#e7f6ed}.attendance-declined{color:#b34c45;background:#fff0ee}.attendance-pending{color:#9b7a28;background:#fff7df}
.meeting-rsvp{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:13px 0;padding:12px 14px;border-radius:14px;background:#f0f7f5}
.meeting-rsvp>span{font-weight:700;margin-right:4px}.meeting-rsvp form{margin:0}
.rsvp-button{border:1px solid #d4e2df;background:#fff;border-radius:11px;padding:8px 11px;font-weight:700;cursor:pointer}
.rsvp-button.yes:hover,.rsvp-button.yes.active{color:#126c50;background:#e7f6ed;border-color:#acd8c3}
.rsvp-button.no:hover,.rsvp-button.no.active{color:#a13e38;background:#fff0ee;border-color:#e4bbb7}
.notification-modal-actions{gap:9px;align-items:center;flex-wrap:wrap}

.multi-select-all{border-bottom:1px solid #e2ece9;margin-bottom:5px;padding-bottom:10px!important}

/* Âncoras de reuniões: não deixar o card escondido pelo header */
.meeting-card[id^="reuniao-"]{
    scroll-margin-top: 120px;
}

.meeting-inline-action{display:inline-flex;margin:0}
.meeting-complete-button{display:inline-flex;align-items:center;gap:7px;border:1px solid #b9ddce;background:#e9f6f0;color:#126c50;border-radius:10px;padding:8px 11px;font-weight:700;cursor:pointer}
.meeting-complete-button:hover{background:#dff1e8;border-color:#8fc9b1}

.meeting-attachments{margin-top:12px;padding:13px 15px;border-radius:14px;background:#f3f8f7}
.meeting-attachments>strong{display:flex;align-items:center;gap:7px;color:#075f58;font-size:13px}
.meeting-attachment-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.meeting-attachment-link{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #d6e5e1;border-radius:10px;background:#fff;color:#244743;text-decoration:none;font-weight:600;font-size:13px}
.meeting-attachment-link:hover{border-color:#78b9aa;background:#eef8f5}
.field-help{display:block;margin-top:6px;color:#6a7d79;font-weight:400;font-size:12px}

/* Participantes das reuniões: separação visual clara entre pessoas */
.meeting-participant-list{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
}
.meeting-participant{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:5px 9px;
    border:1px solid #d7e4e1;
    border-radius:9px;
    background:#f7faf9;
    line-height:1.25;
}
.meeting-participant + .meeting-participant{
    margin-left:0;
}

/* Dashboard dos Membros PREI: composição sem os espaços deixados pelas tarefas */
.prei-metric-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.prei-dashboard-grid{
    grid-template-columns:1fr;
}
.prei-dashboard-grid>.panel.wide{
    grid-column:1/-1;
}
.prei-bottom-grid{
    grid-template-columns:minmax(0,2fr) minmax(320px,1fr);
}
@media (max-width:1100px){
    .prei-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .prei-bottom-grid{grid-template-columns:1fr}
}
@media (max-width:700px){
    .prei-metric-grid{grid-template-columns:1fr}
}

.indicator-mini-identification{display:flex;align-items:baseline;gap:10px;min-width:0}
.indicator-mini-description{font-size:12px;font-weight:400;color:#61716e;line-height:1.35}
@media (max-width:700px){
    .indicator-mini-identification{display:block}
    .indicator-mini-description{display:block;margin-top:3px}
}

/* Dashboard: manter valor/meta dos indicadores sempre juntos */
.indicator-mini > div:first-child > span{
    white-space:nowrap;
    flex:0 0 auto;
    margin-left:14px;
}
.indicator-mini-identification{
    flex:1 1 auto;
}


/* RESPONSIVIDADE GLOBAL — impedir cortes e sobreposições em tablet/telemóvel */
html,body{max-width:100%;overflow-x:hidden}
.portal-main,.portal-content,.panel,.metric-card,.action-card,.indicator-card,.meeting-card{min-width:0}
.panel{max-width:100%}

/* Tabelas: o conteúdo deixa de ser cortado; quando necessário a própria tabela desliza horizontalmente */
.table-wrap{
    width:100%;
    max-width:100%;
    overflow-x:auto !important;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
}
.table-wrap table{
    width:max-content;
    min-width:100%;
}
.table-wrap th,.table-wrap td{
    white-space:normal;
    overflow-wrap:anywhere;
}
.table-wrap::-webkit-scrollbar{height:8px}
.table-wrap::-webkit-scrollbar-thumb{background:rgba(7,95,88,.25);border-radius:999px}

/* Cards/linhas nunca podem invadir a coluna seguinte */
.dashboard-grid>*,
.action-card-grid>*,
.entity-grid>*,
.indicator-grid>*{min-width:0}
.action-card,.task-detail-card{overflow:hidden}
.action-card h3,.action-card p,.action-meta,.task-title-link{overflow-wrap:anywhere}

/* Breakpoints intermédios: reduzir antes de começar a comprimir conteúdo */
@media(max-width:1280px){
    .portal-content{padding:28px 24px}
    .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .dashboard-grid{grid-template-columns:1fr}
    .action-card-grid{grid-template-columns:1fr}
    .indicator-grid{grid-template-columns:1fr}
    .entity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* A partir daqui o menu passa a móvel e todo o conteúdo usa a largura do ecrã */
@media(max-width:980px){
    .portal-sidebar{transform:translateX(-105%);transition:.25s}
    .portal-sidebar.open{transform:translateX(0)}
    .portal-main{margin-left:0!important;width:100%!important;max-width:100vw}
    .mobile-sidebar-toggle{display:grid}
    .portal-topbar{padding:14px 16px;min-height:82px}
    .portal-content{padding:20px 14px}
    .portal-footer{padding:18px 16px}
    .entity-grid{grid-template-columns:1fr}
    .prei-bottom-grid{grid-template-columns:1fr}
}

/* Telemóvel */
@media(max-width:700px){
    .portal-topbar{gap:10px}
    .portal-topbar>div:first-child{min-width:0}
    .portal-topbar h1{font-size:21px;white-space:normal}
    .topbar-actions{gap:7px;flex:0 0 auto}
    .user-chip{padding:5px}
    .user-chip>div:last-child{display:none}
    .portal-content{padding:16px 10px}
    .metric-grid,.prei-metric-grid{grid-template-columns:1fr}
    .metric-card{min-height:0;padding:17px}
    .dashboard-grid,.prei-dashboard-grid,.prei-bottom-grid{grid-template-columns:1fr!important}
    .panel{padding:18px!important}
    .panel-head{gap:10px;flex-wrap:wrap}
    .panel-head .text-link{margin-left:0}
    .action-card-grid,.indicator-grid,.entity-grid{grid-template-columns:1fr!important}
    .action-card{padding:18px}
    .action-card-top{align-items:flex-start;flex-wrap:wrap}
    .action-bottom{grid-template-columns:1fr;gap:8px}
    .meeting-card{flex-direction:column;gap:12px;padding:16px}
    .meeting-card-content{width:100%;min-width:0}
    .meeting-participants{flex-wrap:wrap}
    .meeting-participant-list{width:100%}
    .indicator-mini>div:first-child{align-items:flex-start}
    .indicator-mini-identification{min-width:0;padding-right:6px}
    .indicator-mini-description{overflow-wrap:anywhere}
    .indicator-mini>div:first-child>span{margin-left:8px}
    .modal{padding:10px}
    .modal-card{padding:20px;border-radius:20px}
}

/* Ecrãs muito estreitos */
@media(max-width:480px){
    .portal-content{padding-left:8px;padding-right:8px}
    .portal-topbar{padding-left:10px;padding-right:10px}
    .mobile-sidebar-toggle,.icon-button{width:40px;height:40px}
    .metric-card>strong{font-size:28px}
    .panel{padding:15px!important}
    .indicator-mini>div:first-child{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
    .indicator-mini-identification{display:block}
    .indicator-mini-description{display:block;margin-top:3px}
    .table-wrap{margin-left:0;margin-right:0}
}


/* RESPONSIVIDADE MOBILE v2 — evitar qualquer conteúdo cortado lateralmente */
@media(max-width:700px){
    /* Conteúdo geral: texto pode encolher/quebrar sem alargar a página */
    .portal-content *{min-width:0}
    h1,h2,h3,h4,p,span,strong,small,a{overflow-wrap:anywhere}

    /* Dashboard — ações: títulos longos quebram dentro do cartão */
    .dashboard-grid .panel{overflow:hidden}
    .compact-list,.compact-item,.compact-item>div{min-width:0;max-width:100%}
    .compact-item{width:100%}
    .compact-item strong,.compact-item span{white-space:normal;overflow-wrap:anywhere}
    .indicator-mini{min-width:0;overflow:hidden}

    /* Página Ações — atividade deixa de usar linha rígida no telemóvel */
    .activity-row,.activity-card,.activity-item{
        max-width:100%;
        min-width:0;
    }
    .activity-row{
        grid-template-columns:52px minmax(0,1fr)!important;
        gap:10px!important;
    }
    .activity-row .activity-status,
    .activity-row .activity-status-select,
    .activity-row .activity-status-form{
        grid-column:2!important;
        justify-self:start!important;
        max-width:100%;
    }
    .activity-row .activity-status-select{
        width:auto!important;
        max-width:100%!important;
    }
    .activity-row .progress-track,
    .activity-row .activity-meta,
    .activity-row .activity-partners{
        grid-column:2!important;
        width:100%!important;
    }

    /* Tarefas — tabs e filtros sem criarem largura superior ao viewport */
    .task-tabs,.tasks-tabs{
        width:100%;
        max-width:100%;
        overflow-x:auto;
        overflow-y:hidden;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:thin;
    }
    .task-tabs>a,.tasks-tabs>a{flex:0 0 auto}
    .task-filter-grid,.tasks-filter-grid,.filter-grid{
        grid-template-columns:1fr!important;
        width:100%;
    }
    .task-filter-grid>*,.tasks-filter-grid>*,.filter-grid>*{width:100%;max-width:100%}
    .tasks-toolbar,.task-toolbar{flex-direction:column;align-items:stretch}
    .tasks-toolbar .primary-button,.task-toolbar .primary-button{width:100%}

    /* Calendário — mês legível no telemóvel: 7 dias continuam disponíveis via scroll interno */
    .prei-calendar{
        width:100%;
        max-width:100%;
        overflow-x:auto!important;
        -webkit-overflow-scrolling:touch;
    }
    .calendar-month-head,.calendar-month-grid{
        min-width:700px!important;
        width:700px!important;
    }
    .prei-calendar-toolbar{
        width:100%;
        max-width:100%;
        align-items:flex-start!important;
    }
    .calendar-toolbar-main{
        width:100%;
        flex-wrap:wrap;
    }
    .calendar-view-switch{max-width:100%}
}

/* Ajustes específicos às estruturas reais da página de Ações */
@media(max-width:700px){
    .activity-list .activity-row,
    .activities-list .activity-row{
        overflow:hidden;
    }
    .activity-row h3,.activity-row h4{
        white-space:normal!important;
        overflow-wrap:anywhere!important;
    }
    .activity-row .status-badge{
        white-space:nowrap;
    }
}


/* MOBILE v3 — correções baseadas nas vistas reais */
@media(max-width:700px){
    /* Não aplicar quebra letra-a-letra global: era isso que partia A1/A2 e outros textos. */
    .portal-content h1,.portal-content h2,.portal-content h3,.portal-content h4,
    .portal-content p,.portal-content span,.portal-content strong,.portal-content small,
    .portal-content a{
        overflow-wrap:normal;
        word-break:normal;
    }

    /* Dashboard: linhas das ações compactas mas sem qualquer corte horizontal. */
    .compact-list{width:100%;overflow:hidden}
    .compact-item{
        display:grid;
        grid-template-columns:auto minmax(0,1fr) auto;
        align-items:center;
        width:100%;
        gap:9px;
        padding:10px 0;
        overflow:hidden;
    }
    .compact-item>*{min-width:0}
    .compact-item strong{
        white-space:normal;
        overflow-wrap:break-word;
        word-break:normal;
        line-height:1.35;
    }

    /* Tarefas: dois separadores cabem no ecrã, sem barra horizontal. */
    .task-tabs{
        display:grid!important;
        grid-template-columns:minmax(0,1fr) minmax(0,1fr);
        gap:8px;
        width:100%;
        overflow:visible!important;
    }
    .task-tab{
        width:100%;
        min-width:0;
        justify-content:center;
        padding:11px 9px;
        white-space:normal;
        text-align:center;
        line-height:1.15;
    }
    .task-tab span{flex:0 0 auto}

    /* Calendário: toolbar deixa de esmagar o título. */
    .prei-calendar-toolbar{
        padding:16px 12px;
        gap:14px;
    }
    .prei-calendar-nav{
        width:100%;
        display:grid;
        grid-template-columns:40px auto 40px;
        justify-content:center;
        align-items:center;
        gap:8px;
    }
    .prei-calendar-nav h2{
        grid-column:1/-1;
        grid-row:1;
        margin:0 0 8px!important;
        text-align:center;
        font-size:20px!important;
        line-height:1.2;
    }
    .prei-calendar-nav .calendar-icon-btn:first-child{grid-column:1;grid-row:2}
    .prei-calendar-nav .calendar-today-btn{grid-column:2;grid-row:2}
    .prei-calendar-nav .calendar-icon-btn:nth-of-type(3){grid-column:3;grid-row:2}
    .prei-calendar-views{
        align-self:center;
        width:auto;
        max-width:100%;
        justify-content:center;
    }

    /* Semana: não comprimir 7 colunas até tornar o texto vertical.
       Scroll fica apenas no corpo do calendário. */
    .prei-calendar{overflow-x:auto!important;overflow-y:hidden}
    .calendar-week-grid{
        width:840px!important;
        min-width:840px!important;
        grid-template-columns:repeat(7,120px)!important;
    }
    .calendar-week-day{min-width:120px;padding:0 8px}
    .calendar-week-day-head span,
    .calendar-week-day-head strong,
    .calendar-event,
    .calendar-no-event{
        word-break:normal!important;
        overflow-wrap:normal!important;
    }
    .calendar-event span{white-space:normal;overflow-wrap:break-word!important}
    .calendar-month-head,.calendar-month-grid{
        width:700px!important;
        min-width:700px!important;
    }

    /* Entidades: pesquisa ocupa a largura disponível e não corta o texto/contador. */
    .toolbar{width:100%;justify-content:stretch}
    .toolbar .search-box{
        width:100%!important;
        max-width:none!important;
        min-width:0;
    }
    .search-box input{
        min-width:0;
        text-overflow:ellipsis;
    }
}

/* No telemóvel, manter o título do calendário acima da navegação sem depender
   da ordem dos botões. */
@media(max-width:480px){
    .prei-calendar-nav{display:flex;flex-wrap:wrap;justify-content:center}
    .prei-calendar-nav h2{order:-1;flex:0 0 100%;text-align:center;margin:0 0 4px!important}
    .prei-calendar-views button{padding:0 13px}
}

/* Modal de notificações: ações proporcionais e alinhadas */
.notification-modal-actions{
    display:flex;
    align-items:stretch;
    justify-content:center;
    gap:10px;
    flex-wrap:wrap;
}
.notification-modal-actions>form{
    margin:0;
    display:flex;
}
.notification-modal-actions .primary-button,
.notification-modal-actions .secondary-button{
    min-height:48px;
    height:48px;
    padding:0 18px;
    border-radius:14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    line-height:1;
    white-space:nowrap;
    font-size:14px;
    font-weight:700;
}
@media(max-width:560px){
    .notification-modal-actions{
        display:grid;
        grid-template-columns:1fr;
    }
    .notification-modal-actions>form{width:100%}
    .notification-modal-actions .primary-button,
    .notification-modal-actions .secondary-button{width:100%}
}

/* Calendário — compactação efetiva das vistas Semana e Dia */
@media(max-width:700px){
  .prei-calendar-panel{min-height:0!important}

  /* Semana: mantém scroll interno, mas sem bloco vertical gigante */
  .calendar-week-grid{
    width:630px!important;
    min-width:630px!important;
    grid-template-columns:repeat(7,90px)!important;
    min-height:0!important;
    height:auto!important;
  }
  .calendar-week-day{
    min-width:90px!important;
    min-height:260px!important;
    height:auto!important;
    padding:0 5px 10px!important;
  }
  .calendar-week-day-head{
    padding:8px 2px!important;
    margin-bottom:6px!important;
  }
  .calendar-week-day-head span{font-size:10px!important}
  .calendar-week-day-head strong{font-size:18px!important;margin-top:2px!important}
  .calendar-week-events{gap:5px!important}
  .calendar-no-event{padding:10px 2px!important;font-size:10px!important}
  .calendar-week-grid .calendar-event{
    padding:6px!important;
    min-height:0!important;
    gap:4px!important;
    border-radius:8px!important;
    font-size:10px!important;
    line-height:1.2!important;
  }
  .calendar-week-grid .calendar-event-time{font-size:10px!important}

  /* Dia: conteúdo compacto e sem altura mínima artificial */
  .calendar-day-view{
    min-height:0!important;
    height:auto!important;
    padding:14px!important;
    gap:7px!important;
    align-items:flex-start!important;
  }
  .calendar-day-view .calendar-event{
    width:min(100%,520px)!important;
    max-width:520px!important;
    min-height:0!important;
    padding:8px 10px!important;
    gap:7px!important;
    border-radius:9px!important;
    font-size:12px!important;
    line-height:1.25!important;
  }
  .calendar-day-view .calendar-event-time{font-size:11px!important}
}

.document-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;white-space:nowrap}
.document-actions .inline-form{display:inline-flex;margin:0}
.icon-button.danger{color:#b63a32;border-color:#efd0cc;background:#fff8f7}
.icon-button.danger:hover{background:#fcebea}
@media(max-width:700px){.document-actions{justify-content:flex-start}}


/* Utilizadores — MESMA paleta das ações de Entidades */
.table-icon-button.user-deactivate{
    color:#9a3d3d !important;
    background:#fff2f1 !important;
    border-color:#efd0cd !important;
    opacity:1 !important;
}
.table-icon-button.user-deactivate:hover:not(:disabled){
    color:#9a3d3d !important;
    background:#ffe4e1 !important;
    border-color:#c96760 !important;
}
.table-icon-button.user-reactivate{
    color:#27704e !important;
    background:#edf7f2 !important;
    border-color:#cce4d7 !important;
    opacity:1 !important;
}
.table-icon-button.user-reactivate:hover:not(:disabled){
    color:#27704e !important;
    background:#ddf0e6 !important;
    border-color:#5a9a79 !important;
}
.table-icon-button.user-deactivate:disabled,
.table-icon-button.user-reactivate:disabled{
    opacity:.35 !important;
}

/* Notificações — botões com a mesma caixa e alinhamento */
.notification-modal-actions{
    display:flex!important;align-items:center!important;justify-content:center!important;
    gap:10px!important;flex-wrap:wrap;
}
.notification-modal-actions>a,
.notification-modal-actions>form{
    margin:0!important;padding:0!important;display:flex!important;
    align-items:center!important;height:48px!important;
}
.notification-modal-actions>a,
.notification-modal-actions>form>button{
    box-sizing:border-box!important;height:48px!important;min-height:48px!important;
    margin:0!important;padding:0 18px!important;border-radius:14px!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    gap:9px!important;line-height:1!important;font-size:14px!important;
    font-weight:700!important;white-space:nowrap!important;
}
.notification-modal-actions>a i,
.notification-modal-actions>form>button i{margin:0!important;line-height:1!important}
@media(max-width:560px){
    .notification-modal-actions{display:grid!important;grid-template-columns:1fr!important}
    .notification-modal-actions>a,
    .notification-modal-actions>form,
    .notification-modal-actions>form>button{width:100%!important}
}

/* Modal de notificação — ações encostadas à direita */
.notification-modal-actions{justify-content:flex-end!important}
@media(max-width:560px){.notification-modal-actions{justify-content:stretch!important}}

.documents-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.document-clear-filter{white-space:nowrap}
.notification-item{position:relative}
.notification-delete-form{position:absolute;top:8px;right:8px;margin:0;z-index:3}
.notification-delete{width:26px;height:26px;border:0;background:transparent;border-radius:8px;color:#6b7977;font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}
.notification-delete:hover{background:#fff0ef;color:#b33a36}
.notification-item .notification-open{padding-right:42px}
@media(max-width:600px){.documents-toolbar{align-items:stretch;flex-direction:column}.document-clear-filter{align-self:flex-end}}

/* Documentos — Ver todos alinhado com a caixa de pesquisa */
.documents-toolbar{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:10px!important;
}
.documents-toolbar .document-clear-filter,
.documents-toolbar .search-box{
    box-sizing:border-box!important;
    height:54px!important;
    min-height:54px!important;
    margin:0!important;
}
.documents-toolbar .document-clear-filter{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0 22px!important;
    line-height:1!important;
}
.documents-toolbar .search-box{
    display:flex!important;
    align-items:center!important;
}

/* Reuniões filtradas por notificação */
.meeting-page-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.meeting-page-actions .meeting-view-all,
.meeting-page-actions .primary-button{box-sizing:border-box;min-height:48px;margin:0;display:inline-flex;align-items:center;justify-content:center}

/* Reuniões — ações compactas, iguais à barra de Documentos */
.page-actions.meeting-page-actions{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:10px!important;
    width:auto!important;
}
.page-actions.meeting-page-actions .meeting-view-all,
.page-actions.meeting-page-actions .meeting-new-button{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:0!important;
    height:54px!important;
    min-height:54px!important;
    margin:0!important;
    padding:0 22px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    white-space:nowrap!important;
    line-height:1!important;
}
@media(max-width:700px){
    .page-actions.meeting-page-actions{
        flex-wrap:wrap!important;
    }
    .page-actions.meeting-page-actions .meeting-view-all,
    .page-actions.meeting-page-actions .meeting-new-button{
        width:auto!important;
        flex:0 0 auto!important;
    }
}

/* Documentos — ficheiro atual no modal de edição */
.document-current-file{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #d7e2df;border-radius:14px;background:#f8fbfa;margin-top:7px}
.document-current-file-link{display:inline-flex;align-items:center;gap:9px;min-width:0;color:inherit;text-decoration:none;font-weight:700}
.document-current-file-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.document-remove-file{display:inline-flex!important;align-items:center;flex:0 0 auto;margin:0!important;cursor:pointer}
.document-remove-file input{width:auto!important;margin:0 7px 0 0!important}
.document-remove-file span{color:#9a3d3d;font-weight:700;white-space:nowrap}
@media(max-width:600px){.document-current-file{align-items:flex-start;flex-direction:column}.document-remove-file{margin-top:4px!important}}

/* Reuniões — documentos existentes no modal de edição */
.meeting-existing-files{display:flex;flex-direction:column;gap:8px;margin-top:7px}
.meeting-existing-file{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border:1px solid #d7e2df;border-radius:13px;background:#f8fbfa}
.meeting-existing-file-link{display:inline-flex;align-items:center;gap:8px;min-width:0;color:inherit;text-decoration:none;font-weight:700}
.meeting-existing-file-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meeting-existing-file-remove{display:inline-flex!important;align-items:center;flex:0 0 auto;margin:0!important;cursor:pointer}
.meeting-existing-file-remove input{width:auto!important;margin:0 7px 0 0!important}
.meeting-existing-file-remove span{color:#9a3d3d;font-weight:700;white-space:nowrap}
.meeting-existing-files-empty{padding:11px 13px;border:1px dashed #d7e2df;border-radius:13px;color:#687976}
@media(max-width:600px){.meeting-existing-file{align-items:flex-start;flex-direction:column}}

/* Setup — alinhar o subtítulo com o início de NORTEtur Conectado */
.setup-card .auth-brand > div:last-child{
    align-items:flex-start!important;
}
.setup-card .auth-brand > div:last-child > span{
    width:100%;
    margin-top:2px!important;
    padding:0!important;
    text-align:left!important;
}

/* Setup — alinhamento exato do subtítulo pelo início do título */
body.auth-page .setup-card .auth-brand > div:last-child{
    display:grid!important;
    grid-template-columns:max-content!important;
    justify-items:start!important;
    align-items:start!important;
    text-align:left!important;
}
body.auth-page .setup-card .auth-brand > div:last-child > strong,
body.auth-page .setup-card .auth-brand > div:last-child > span{
    display:block!important;
    width:auto!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    text-align:left!important;
    justify-self:start!important;
    transform:none!important;
}

/* Fórum PREI — módulo nativo */
.forum-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px;flex-wrap:wrap}.forum-head h2{font-size:25px;margin:6px 0}.forum-head p{color:var(--muted);margin:0}.forum-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px;align-items:start}.forum-main,.forum-side,.forum-detail-card,.forum-post,.forum-reply-form,.forum-moderation{padding:24px}.forum-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.forum-filters .search-box{flex:1;min-width:180px}.forum-filters select{max-width:235px}.forum-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:17px 0 3px;padding-bottom:13px}.forum-tabs a{color:var(--muted);text-decoration:none;border-radius:10px;padding:9px 12px;font-size:13px;font-weight:700}.forum-tabs a.active{background:#e8f4f1;color:#087568}.forum-topic{display:flex;align-items:flex-start;gap:14px;padding:20px 3px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.forum-topic:last-child{border-bottom:0}.forum-topic:hover .forum-topic-info>strong{color:#08766d}.forum-topic-icon{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;background:#eaf5f2;color:#08766d;flex-shrink:0}.forum-topic-info{flex:1;min-width:0}.forum-topic-info>strong{font-size:16px;line-height:1.4}.forum-topic-excerpt{font-size:13px;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}.forum-topic-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:9px}.forum-topic-meta span+span:before{content:'·';margin-right:10px}.forum-topic-count{text-align:right;white-space:nowrap;font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:7px}.forum-topic-count small{font-size:11px}.forum-green{color:#087568!important}.forum-side h3,.forum-moderation h3{margin:0 0 15px}.forum-side>a{display:flex;gap:12px;padding:13px 0;text-decoration:none;color:inherit;border-top:1px solid var(--line)}.forum-side>a i{color:#087568;margin-top:4px}.forum-side>a span{display:flex;flex-direction:column;gap:3px}.forum-side>a small{color:var(--muted);line-height:1.5}.forum-empty{padding:60px 15px;display:flex;align-items:center;flex-direction:column;gap:12px;color:var(--muted)}.forum-empty i{font-size:30px}.forum-empty strong{color:var(--text)}.forum-back{display:inline-flex;gap:9px;align-items:center;color:#087568;text-decoration:none;font-weight:700;margin-bottom:19px}.forum-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}.forum-thread{min-width:0;display:flex;flex-direction:column;gap:17px}.forum-detail-card h2{font-size:26px;margin:13px 0}.forum-detail-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.forum-status{font-size:12px;font-weight:700;border-radius:20px;padding:6px 12px;background:#edf3f2;color:#42645f}.forum-status-resolved{background:#e2f4e9;color:#267048}.forum-status-closed{background:#f4ece8;color:#805b4d}.forum-body{font-size:14px;line-height:1.85;overflow-wrap:anywhere;white-space:normal;margin:22px 0}.forum-mention{background:#e6f3f0;border-radius:5px;padding:2px 5px;color:#087568;font-weight:700}.forum-files{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.forum-files a{padding:9px 12px;border:1px solid var(--line);border-radius:9px;text-decoration:none;font-size:12px;color:#087568}.forum-conclusion{padding:18px;border:1px solid #c8e6d5;background:#f0faf4;border-radius:14px}.forum-conclusion strong{color:#28744d}.forum-conclusion p{margin:9px 0 0}.forum-action-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:17px}.forum-action-row form{margin:0}.forum-section-title{font-size:18px;margin:5px 0}.forum-post-head{display:flex;align-items:center;gap:11px}.forum-post-head>div:last-child{display:flex;flex-direction:column;gap:4px}.forum-post-head small{color:var(--muted)}.forum-avatar{width:39px;height:39px;display:grid;place-items:center;border-radius:50%;background:#d8eee8;color:#07695f;font-weight:800}.forum-text-button{border:0;background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:13px;font-weight:700;padding:5px}.forum-text-button:hover{color:#087568}.forum-reply-ref{display:block;color:#087568;font-size:12px;font-weight:700;margin-top:14px}.forum-reply-form form,.forum-moderation form{display:flex;flex-direction:column;gap:14px}.forum-reply-form label,.forum-moderation label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700}.forum-reply-form textarea,.forum-moderation textarea,.forum-inline-edit textarea{width:100%;min-height:100px}.forum-mention-tools{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.forum-mention-tools label{flex:1;min-width:150px}.forum-check{flex-direction:row!important;align-items:center}.forum-check input{width:auto}.forum-inline-edit{display:flex;flex-direction:column;gap:10px;margin-top:15px}.forum-inline-edit[hidden]{display:none}.forum-detail-layout:has(.forum-thread:only-child){grid-template-columns:minmax(0,1fr)}
@media(max-width:1050px){.forum-layout,.forum-detail-layout{grid-template-columns:1fr}.forum-side{order:2}}@media(max-width:620px){.forum-main,.forum-side,.forum-detail-card,.forum-post,.forum-reply-form,.forum-moderation{padding:16px}.forum-filters select,.forum-filters .search-box{max-width:none;width:100%}.forum-filters button{width:100%}.forum-topic-icon{width:35px;height:35px}.forum-topic{gap:10px}.forum-topic-count{font-size:12px}.forum-head h2{font-size:21px}.forum-detail-card h2{font-size:22px}}

/* Fórum PREI — selects com o mesmo desenho dos filtros e formulários do portal */
.forum-filters select,
#forumNewTopic select,
.forum-reply-form select,
.forum-moderation select {
    display:block;
    width:100%;
    min-height:48px;
    padding:0 44px 0 16px;
    border:1px solid #d4e2e0;
    border-radius:15px;
    background-color:#fff;
    color:#334b48;
    font:inherit;
    font-size:14px;
    font-weight:500;
    line-height:1.4;
    appearance:none;
    -webkit-appearance:none;
    cursor:pointer;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23334b48' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 15px center;
    background-size:18px 18px;
    transition:border-color .18s,box-shadow .18s;
}
.forum-filters select:focus,
#forumNewTopic select:focus,
.forum-reply-form select:focus,
.forum-moderation select:focus {
    outline:none;
    border-color:#0f766e;
    box-shadow:0 0 0 3px rgba(15,118,110,.12);
}
.forum-filters select:hover,
#forumNewTopic select:hover,
.forum-reply-form select:hover,
.forum-moderation select:hover {border-color:#a9c7c1}
.forum-filters select {max-width:235px;flex:0 1 235px}
@media(max-width:620px){.forum-filters select{max-width:none;flex:1 1 100%}}

/* Fórum — painel de gestão do tema */
.forum-moderation{padding:26px 22px}
.forum-moderation h3{margin:0 0 24px;display:flex;align-items:center;gap:10px;font-size:20px;line-height:1.25}
.forum-moderation .forum-management-form{gap:18px}
.forum-moderation .forum-management-form>label{gap:9px}
.forum-moderation .forum-conclusion-field textarea{display:block;min-height:118px;resize:vertical;border:1px solid #d4e2e0;border-radius:15px;background:#fff;color:var(--text);padding:13px 15px;font:inherit;font-size:13px;font-weight:400;line-height:1.6;outline:none;box-sizing:border-box}
.forum-moderation .forum-conclusion-field textarea:focus{border-color:#0f766e;box-shadow:0 0 0 3px rgba(15,118,110,.12)}
.forum-moderation .forum-management-save{width:100%;min-height:47px;margin-top:2px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:14px;border-radius:13px}
.forum-moderation .forum-management-divider{height:1px;background:#dce8e5;margin:23px 0 20px}
.forum-moderation .forum-pin-form{gap:13px}
.forum-moderation .forum-pin-form .forum-check{display:flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important;margin:0;cursor:pointer;font-size:13px}
.forum-moderation .forum-pin-form .forum-check input{appearance:auto!important;-webkit-appearance:checkbox!important;display:inline-block!important;flex:0 0 17px;width:17px!important;height:17px!important;margin:0!important;accent-color:#0f766e}
.forum-moderation .forum-pin-form .forum-check span{line-height:1.4}
.forum-moderation .forum-pin-save{width:100%;min-height:43px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:13px;font-size:13px;font-weight:700}
@media(max-width:620px){.forum-moderation{padding:22px 18px}}

/* Fórum — página de discussão eliminada (links de notificações antigas) */
.forum-deleted-panel{max-width:690px;margin:44px auto;padding:55px 42px!important;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.forum-deleted-symbol{width:78px;height:78px;display:grid;place-items:center;border-radius:23px;background:#edf5f3;color:#0b7167;font-size:30px;margin-bottom:8px}
.forum-deleted-panel .eyebrow{font-size:11px;letter-spacing:.16em}
.forum-deleted-panel h2{margin:0;font-size:clamp(23px,3vw,31px);line-height:1.25;color:var(--text)}
.forum-deleted-panel p{max-width:490px;margin:0 0 12px;color:var(--muted);font-size:15px;line-height:1.75}
.forum-deleted-back{display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;min-height:48px;padding:0 25px;border-radius:14px}
@media(max-width:620px){.forum-deleted-panel{margin:20px auto;padding:40px 20px!important}.forum-deleted-back{width:100%}}
