/* =========================================================
   GranHub 2.2 — camada final de layout, responsividade e temas
   ========================================================= */

:root{
  --gh-sidebar:244px;
  --gh-header:72px;
  --gh-content-max:1580px;
  --gh-ease:cubic-bezier(.2,.8,.2,1);
}

html,body{max-width:100%;overflow-x:hidden}
body{min-width:0}
.portal-app,.admin-app,.portal-main,.admin-main,.portal-content,.admin-content,
.page-head,.page-actions,.dashboard-grid,.admin-grid,.home-summary-grid,.field-row,
.table-wrap,.card,.admin-card,.section-card,.ticket-layout,.conversation{min-width:0}

/* Logo com tamanho equilibrado */
.sidebar-brand,.admin-sidebar-brand{height:64px!important;padding:0 8px!important;overflow:visible!important}
.sidebar-brand .logo-image,.admin-sidebar-brand .logo-image,.brand-logo-main{
  width:158px!important;max-width:100%!important;max-height:42px!important;height:auto!important;
  object-fit:contain!important;object-position:left center!important;background:none!important;border:0!important;
  border-radius:0!important;box-shadow:none!important;padding:0!important
}

/* Conteúdo sem cortes */
.portal-main,.admin-main{width:auto;min-width:0}
.portal-content,.admin-content{width:100%;max-width:var(--gh-content-max);margin:0 auto;padding:22px clamp(16px,2.1vw,30px) 42px}
.portal-topbar,.admin-topbar{width:auto;min-width:0;padding-inline:clamp(12px,1.8vw,24px)}
.global-search{min-width:0}
.topbar-actions{min-width:0}
.user-chip{min-width:0;max-width:235px}
.user-chip>span:nth-child(2){min-width:0}

/* Relógio de Brasília */
.brasilia-clock{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--gh-border);border-radius:11px;background:rgba(255,255,255,.8);white-space:nowrap}
.brasilia-clock-dot{width:7px;height:7px;border-radius:50%;background:var(--gh-blue);box-shadow:0 0 0 4px rgba(9,114,255,.09)}
.brasilia-clock strong{display:block;font-size:.76rem;line-height:1.05;color:var(--gh-text)}
.brasilia-clock small{display:block;font-size:.58rem;color:var(--gh-muted);margin-top:2px}

/* Carregamento de navegação */
.navigation-loader-overlay{position:fixed;inset:0;z-index:9998;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .2s ease;background:rgba(235,244,255,.28);backdrop-filter:blur(0)}
.navigation-loader-overlay.show{opacity:1;pointer-events:auto;backdrop-filter:blur(6px)}
.navigation-loader-card{display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:13px;background:rgba(255,255,255,.95);border:1px solid #d9e8fb;box-shadow:0 20px 55px rgba(16,65,125,.16);transform:translateY(7px) scale(.98);transition:.22s var(--gh-ease)}
.navigation-loader-overlay.show .navigation-loader-card{transform:none}
.navigation-loader-spinner{width:38px;height:38px;border-radius:10px;background:#eef6ff;color:var(--gh-blue);display:grid;place-items:center}
.navigation-loader-spinner svg{animation:ghSpin .72s linear infinite}
.navigation-loader-card strong{display:block;font-size:.82rem}.navigation-loader-card small{display:block;margin-top:2px;font-size:.68rem;color:var(--gh-muted)}
.is-navigating .portal-app,.is-navigating .admin-app{filter:saturate(.92)}

/* Novos indicadores de menu */
.nav-link{position:relative;min-width:0}
.nav-link span:not(.nav-count){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#e7f1ff;color:#0861cf;border:1px solid #cfe2ff;font-size:.65rem;font-weight:850;display:inline-grid;place-items:center}
.nav-count.alert{background:#fff0f1;color:#b32f3a;border-color:#ffd3d7;animation:ghBadgePulse 1.7s ease-in-out infinite}
.nav-count.new{background:#eafaf4;color:#087b57;border-color:#ccefe0}

/* Etiqueta NOVO */
.new-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;background:linear-gradient(135deg,#0972ff,#56a5ff);color:#fff;font-size:.61rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;box-shadow:0 6px 14px rgba(9,114,255,.18);animation:newPillIn .35s var(--gh-ease)}
@keyframes newPillIn{from{opacity:0;transform:translateY(-4px) scale(.95)}to{opacity:1;transform:none}}

/* Dashboard renovado */
.dashboard-welcome{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(270px,.55fr);gap:16px;margin-bottom:16px}
.dashboard-welcome-main{padding:clamp(20px,2.4vw,30px);border-radius:16px;background:linear-gradient(135deg,#fff 0%,#f6faff 62%,#edf5ff 100%);border:1px solid #dbe9fb;box-shadow:var(--gh-shadow-sm);position:relative;overflow:hidden}
.dashboard-welcome-main:after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;right:-95px;top:-110px;background:radial-gradient(circle,rgba(9,114,255,.15),rgba(9,114,255,0) 70%)}
.dashboard-welcome-main h1{margin:7px 0 8px;font-size:clamp(1.55rem,2.5vw,2.35rem);line-height:1.08;letter-spacing:-.035em;color:#0a2f61;max-width:780px}
.dashboard-welcome-main p{margin:0;max-width:760px;color:#657f9f;line-height:1.58;font-size:.9rem}
.dashboard-welcome-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.dashboard-quick-panel{display:grid;gap:10px}
.dashboard-quick-card{padding:15px;border-radius:14px;border:1px solid #dce9fa;background:#fff;box-shadow:0 8px 22px rgba(20,67,130,.06);display:flex;align-items:center;gap:11px;transition:.2s var(--gh-ease)}
.dashboard-quick-card:hover{transform:translateY(-2px);border-color:#bdd7fa;box-shadow:0 12px 28px rgba(20,67,130,.1)}
.dashboard-quick-card .qicon{width:38px;height:38px;border-radius:10px;background:#eef5ff;color:#0b68dc;display:grid;place-items:center;flex:0 0 auto}
.dashboard-quick-card strong{display:block;font-size:.82rem}.dashboard-quick-card small{display:block;color:var(--gh-muted);font-size:.68rem;margin-top:2px}

.service-shortcut-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}
.service-shortcut{overflow:hidden;border-radius:14px!important;min-width:0;transition:.24s var(--gh-ease)}
.service-shortcut:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(18,68,130,.14)}
.service-shortcut-image{height:130px!important;overflow:hidden}
.service-shortcut-image img{transition:transform .45s var(--gh-ease)}
.service-shortcut:hover .service-shortcut-image img{transform:scale(1.045)}
.service-shortcut-body{min-width:0}
.service-shortcut-body p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* gráfico/progresso */
.project-progress-overview{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;align-items:center}
.progress-donut{width:154px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--gh-blue) calc(var(--progress)*1%),#e9f1fb 0);position:relative;margin:auto}
.progress-donut:after{content:"";position:absolute;inset:13px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #e9f1fb}
.progress-donut span{position:relative;z-index:1;text-align:center}.progress-donut strong{display:block;font-size:1.55rem;color:#0b2d59}.progress-donut small{font-size:.67rem;color:var(--gh-muted)}
.progress-bars{display:grid;gap:12px}.progress-bar-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:10px;align-items:center}.progress-bar-row>div{min-width:0}.progress-bar-row strong{font-size:.75rem;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-bar-row .progress{margin-top:6px;height:7px}.progress-bar-row>span{text-align:right;font-weight:800;font-size:.72rem;color:#355b87}

/* Calendário */
.calendar-card{overflow:hidden}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.calendar-toolbar h3{margin:0;font-size:1rem}.calendar-nav{display:flex;gap:5px}.calendar-nav button{width:34px;height:34px;border:1px solid var(--gh-border);background:#fff;border-radius:9px;color:#24598f;display:grid;place-items:center}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays span{text-align:center;font-size:.61rem;text-transform:uppercase;letter-spacing:.05em;color:#8398b2;font-weight:750;padding:4px 0}.calendar-day{min-height:62px;border:1px solid #e3edf9;border-radius:9px;padding:6px;background:#fbfdff;position:relative;min-width:0}.calendar-day.muted-day{opacity:.42}.calendar-day.today{border-color:#82b7ff;background:#f2f8ff}.calendar-day-number{font-size:.66rem;font-weight:800;color:#35577f}.calendar-event-dot{width:6px;height:6px;border-radius:50%;background:var(--gh-blue);display:inline-block;margin-right:3px}.calendar-event-mini{display:block;margin-top:5px;padding:3px 4px;border-radius:5px;background:#eaf3ff;color:#1a5fae;font-size:.54rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-upcoming{display:grid;gap:7px;margin-top:12px}.calendar-upcoming-item{display:flex;gap:9px;align-items:flex-start;padding:9px 10px;border:1px solid #e5eef9;border-radius:9px;background:#fff}.calendar-date-badge{width:38px;height:38px;border-radius:9px;background:#eef6ff;color:#0a65d3;display:grid;place-items:center;flex:0 0 auto;font-weight:850;font-size:.72rem}.calendar-upcoming-item strong{display:block;font-size:.74rem}.calendar-upcoming-item small{display:block;font-size:.63rem;color:var(--gh-muted);margin-top:2px}

/* Projetos e documentos */
.project-card-renewed,.doc-card{overflow:hidden;min-width:0}
.project-card-actions,.doc-actions{display:flex;gap:7px;flex-wrap:wrap}.project-card-actions .btn,.doc-actions .btn{min-width:0}
.project-card h3,.doc-card h3{overflow-wrap:anywhere}

/* Perfil e aparência */
.profile-form-actions{gap:8px;flex-wrap:wrap}.theme-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:12px}.theme-option{border:1px solid #dbe8f8;border-radius:12px;background:#fff;padding:10px;text-align:left;transition:.2s}.theme-option:hover{transform:translateY(-2px);border-color:#a9cdfb}.theme-option.active{outline:2px solid rgba(9,114,255,.25);border-color:#72adfb}.theme-preview{height:45px;border-radius:8px;margin-bottom:8px;border:1px solid rgba(0,0,0,.05)}.theme-preview.padrao{background:linear-gradient(135deg,#fff,#eaf4ff 55%,#0972ff)}.theme-preview.escuro{background:linear-gradient(135deg,#0e1d31,#152f50 55%,#0972ff)}.theme-preview.sst{background:linear-gradient(135deg,#fff,#e9fff5 55%,#0f9f6e)}.theme-preview.engenharia{background:linear-gradient(135deg,#fff,#e9eef5 55%,#48647f)}.theme-preview.arquitetura{background:linear-gradient(135deg,#fff,#f4f0eb 55%,#0f6bdc)}.theme-option strong{display:block;font-size:.72rem}.theme-option small{display:block;font-size:.61rem;color:var(--gh-muted);margin-top:2px}

/* Status operacional */
.status-grid-clean{grid-template-columns:repeat(4,minmax(0,1fr))!important}.status-card{min-height:132px}.status-card>strong{font-size:1.42rem}.operational-socials{margin-top:16px}.social-channel-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}

/* Suporte */
.ticket-layout{grid-template-columns:minmax(250px,.72fr) minmax(0,1.5fr)!important;align-items:stretch}.ticket-list,.conversation{max-height:calc(100dvh - 170px);min-height:540px;overflow:auto}.conversation-messages{min-height:0}.attachment-button{display:inline-flex;align-items:center;gap:5px;border:1px solid #d6e5f8;background:#f7fbff;color:#285b93;padding:6px 8px;border-radius:8px;font-size:.68rem;font-weight:700;margin:4px 4px 0 0}.attachment-button:hover{background:#eef6ff}.attachment-preview img{max-width:100%;max-height:68vh;border-radius:10px;margin:auto}.attachment-preview iframe{width:100%;height:68vh;border:0;border-radius:10px}

/* Legal em formato de documento */
.legal-shell{max-width:960px;margin:0 auto}.legal-document{background:#fff;border:1px solid #dce8f7;border-radius:12px;box-shadow:0 18px 48px rgba(20,67,130,.08);overflow:hidden}.legal-doc-head{padding:28px clamp(20px,4vw,42px);border-bottom:1px solid #e6eef8;background:linear-gradient(180deg,#fbfdff,#f6faff);display:flex;align-items:center;justify-content:space-between;gap:18px}.legal-doc-head img{width:150px;height:auto}.legal-doc-head span{text-align:right}.legal-doc-head small{display:block;color:#7890ac;font-size:.67rem}.legal-doc-head strong{display:block;margin-top:3px;font-size:.78rem;color:#234d7b}.legal-body{padding:clamp(24px,4vw,46px);font-size:.88rem;line-height:1.75;color:#3f5d7e}.legal-body h1{margin:0 0 8px;color:#0c2f5f;font-size:clamp(1.6rem,3vw,2.25rem)}.legal-body h2{margin:28px 0 8px;color:#103b70;font-size:1.02rem}.legal-body p{margin:8px 0}.legal-index{padding:14px 16px;border:1px solid #e0eaf6;background:#f8fbff;border-radius:10px;margin:20px 0}.legal-index strong{display:block;margin-bottom:6px}.legal-footer{padding:18px clamp(20px,4vw,42px);border-top:1px solid #e6eef8;background:#fbfdff;font-size:.68rem;color:#7a91aa;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* Admin */
.admin-sidebar .nav-link[href="../portal.html"]{background:#edf5ff!important;color:#0d61c8!important;border:1px solid #d1e4ff!important;margin:2px 0!important;padding:10px 11px!important}.admin-sidebar .nav-link[href="../portal.html"]:hover{background:#e2efff!important;color:#064eae!important}
.admin-card{overflow:visible!important}.admin-content>.admin-card,.admin-content>form.admin-card{width:100%}
.admin-metrics{grid-template-columns:repeat(4,minmax(0,1fr))!important}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.responsive-cards{max-width:100%;overflow:auto}
.settings-renewed{padding:clamp(16px,2.2vw,24px)}
.admin-calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.55fr);gap:16px}.admin-event-list{display:grid;gap:8px}.admin-event-item{padding:12px;border:1px solid #e1ebf7;border-radius:10px;background:#fff;display:flex;justify-content:space-between;gap:10px;align-items:center}.admin-event-item strong{font-size:.78rem}.admin-event-item small{display:block;color:var(--gh-muted);font-size:.65rem;margin-top:3px}
.portfolio-grid-admin{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.portfolio-admin-card{overflow:hidden}.portfolio-admin-card img{width:100%;height:145px;object-fit:cover;background:#edf4fb}.portfolio-admin-card-body{padding:13px}.portfolio-admin-card h3{margin:4px 0 6px;font-size:.9rem}.portfolio-admin-card p{margin:0;color:var(--gh-muted);font-size:.72rem;line-height:1.45}.portfolio-admin-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}

/* Modal sempre inteiro na tela */
.modal-backdrop{padding:clamp(10px,2vw,24px)!important;overflow:auto!important;align-items:flex-start!important}
.modal{width:min(680px,100%)!important;max-width:calc(100vw - 20px)!important;max-height:calc(100dvh - 20px)!important;margin:auto!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
.modal.large{width:min(980px,100%)!important}
.modal .modal-body{overflow:auto!important;min-height:0!important;max-height:none!important}
.modal .modal-footer{flex:0 0 auto;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}

/* Aviso de inatividade */
.session-warning-v22{text-align:center;padding:4px}.session-clock-visual{width:76px;height:76px;border-radius:50%;margin:0 auto 14px;position:relative;display:grid;place-items:center;background:#eef6ff;border:1px solid #d5e8ff;color:#0870ea;box-shadow:0 12px 28px rgba(9,114,255,.12)}.session-clock-visual svg{width:30px;height:30px}.session-clock-hand{position:absolute;width:2px;height:21px;background:#0972ff;top:16px;left:50%;transform-origin:50% 22px;border-radius:3px;animation:sessionClock 2.4s linear infinite}.session-warning-v22 h3{margin:0;font-size:1rem;color:#173b66}.session-warning-v22 p{margin:7px auto 15px;max-width:440px;font-size:.76rem;line-height:1.55;color:#7189a4}.session-timer-box{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border:1px solid #dce9f8;border-radius:10px;background:#f8fbff}.session-timer-box span{font-size:.7rem;color:#7288a3}.session-timer-box strong{font-size:1rem;color:#0b63cc}.session-timer-progress{height:5px;background:#e7f0fb;border-radius:999px;overflow:hidden;margin-top:9px}.session-timer-progress span{display:block;height:100%;background:linear-gradient(90deg,#0972ff,#73b5ff);transition:width 1s linear}
@keyframes sessionClock{to{transform:rotate(360deg)}}

/* Temas */
html[data-gh-theme="escuro"]{--gh-bg:#0d1725;--gh-bg-2:#111f32;--gh-surface:#13243a;--gh-border:#243a55;--gh-border-strong:#304a68;--gh-text:#e8f1fb;--gh-muted:#9eb1c9;--gh-navy:#eaf3ff;--gh-shadow-sm:0 10px 26px rgba(0,0,0,.22)}
html[data-gh-theme="escuro"] body{background:linear-gradient(180deg,#0d1725,#101e30);color:var(--gh-text)}
html[data-gh-theme="escuro"] .portal-sidebar,html[data-gh-theme="escuro"] .portal-topbar,html[data-gh-theme="escuro"] .card,html[data-gh-theme="escuro"] .service-shortcut,html[data-gh-theme="escuro"] .metric-card,html[data-gh-theme="escuro"] .dashboard-welcome-main,html[data-gh-theme="escuro"] .dashboard-quick-card,html[data-gh-theme="escuro"] .user-chip,html[data-gh-theme="escuro"] .icon-btn,html[data-gh-theme="escuro"] .field input,html[data-gh-theme="escuro"] .field textarea,html[data-gh-theme="escuro"] .field select{background:#13243a!important;color:#e8f1fb!important;border-color:#263d59!important}
html[data-gh-theme="escuro"] .page-head h1,html[data-gh-theme="escuro"] .dashboard-welcome-main h1{color:#eff6ff}
html[data-gh-theme="sst"]{--gh-blue:#0d8f70;--gh-blue-700:#08785d;--gh-bg:#f2fbf7;--gh-bg-2:#eaf7f2;--gh-border:#d7eee5;--gh-border-strong:#bfe2d5;--gh-text:#174b3e;--gh-muted:#678c82}
html[data-gh-theme="engenharia"]{--gh-blue:#366a98;--gh-blue-700:#2b587f;--gh-bg:#f3f6f9;--gh-bg-2:#eaf0f5;--gh-border:#dbe4ec;--gh-border-strong:#c7d5e1;--gh-text:#29465f;--gh-muted:#6f8496}
html[data-gh-theme="arquitetura"]{--gh-blue:#1a76c8;--gh-blue-700:#145fa3;--gh-bg:#f8f7f5;--gh-bg-2:#f0f2f4;--gh-border:#e2e3e5;--gh-border-strong:#d4d7da;--gh-text:#263e57;--gh-muted:#748395}

/* Animações gerais */
.btn svg[data-lucide="loader-circle"],button.is-loading svg{animation:ghSpin .7s linear infinite}
.btn,.icon-btn,.nav-link,.ticket-card,.doc-card,.project-card,.admin-metric,.admin-card{transition:transform .2s var(--gh-ease),box-shadow .2s var(--gh-ease),border-color .2s ease,background .2s ease}
.project-card:hover,.doc-card:hover,.admin-metric:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(20,67,130,.1)}

/* Responsividade */
@media(max-width:1280px){
  :root{--gh-sidebar:226px}
  .sidebar-brand .logo-image,.admin-sidebar-brand .logo-image,.brand-logo-main{width:148px!important}
  .service-shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .admin-metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:980px){
  :root{--gh-sidebar:278px}
  .portal-main,.admin-main{margin-left:0!important;width:100%!important}
  .portal-sidebar,.admin-sidebar{position:fixed!important;left:0!important;top:0!important;bottom:0!important;width:min(278px,86vw)!important;transform:translateX(-105%);transition:transform .25s var(--gh-ease);box-shadow:20px 0 50px rgba(12,48,90,.14);z-index:350!important}
  .portal-sidebar.open,.admin-sidebar.open{transform:none}
  .mobile-menu{display:grid!important}
  .portal-content,.admin-content{padding:16px 14px 34px!important}
  .dashboard-welcome{grid-template-columns:1fr}.dashboard-quick-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-grid,.admin-calendar-layout{grid-template-columns:1fr!important}.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}.portfolio-grid-admin{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ticket-layout{grid-template-columns:1fr!important}.ticket-list,.conversation{max-height:none!important;min-height:auto!important}.ticket-list{display:flex;overflow:auto;gap:8px;padding:10px!important}.ticket-card{min-width:230px}
  .status-grid-clean,.social-channel-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .topbar-actions .brasilia-clock{display:none}
}
@media(max-width:760px){
  .portal-topbar,.admin-topbar{height:auto!important;min-height:64px!important;padding:9px 11px!important;gap:8px!important}
  .topbar-actions{gap:6px!important}.user-chip{max-width:44px!important;width:44px!important;padding:5px!important}.user-chip>span:nth-child(2),.user-chip>svg{display:none!important}
  .global-search{display:none!important}.topbar-actions .icon-btn{width:40px;height:40px}
  .page-head{flex-direction:column!important;align-items:stretch!important}.page-actions{width:100%}.page-actions>.btn,.page-actions>a.btn{flex:1 1 auto}
  .field-row{grid-template-columns:1fr!important}.admin-metrics{grid-template-columns:1fr 1fr!important}
  .project-progress-overview{grid-template-columns:1fr}.progress-donut{width:138px}
  .calendar-day{min-height:48px;padding:4px}.calendar-event-mini{display:none}.calendar-event-dot{position:absolute;bottom:5px;left:50%;transform:translateX(-50%)}
  .theme-grid{grid-template-columns:1fr 1fr}.portfolio-grid-admin{grid-template-columns:1fr}
  .legal-doc-head{align-items:flex-start;flex-direction:column}.legal-doc-head span{text-align:left}.legal-doc-head img{width:132px}
  .modal-backdrop{padding:8px!important}.modal{max-width:calc(100vw - 12px)!important;max-height:calc(100dvh - 12px)!important}.modal .modal-footer>.btn{flex:1 1 140px}
  table{min-width:0!important}.responsive-cards{border:0!important;background:transparent!important;overflow:visible!important}.responsive-cards table,.responsive-cards tbody,.responsive-cards tr,.responsive-cards td{display:block;width:100%}.responsive-cards thead{display:none}.responsive-cards tr{background:#fff;border:1px solid var(--gh-border);border-radius:12px;margin-bottom:10px;padding:8px;box-shadow:0 6px 18px rgba(20,67,130,.05)}.responsive-cards td{border:0!important;padding:7px 8px!important;display:grid!important;grid-template-columns:115px minmax(0,1fr)!important;gap:8px!important;align-items:start}.responsive-cards td:before{content:attr(data-label);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#8195ae}.responsive-cards td .btn{margin:2px 2px 2px 0}
}
@media(max-width:520px){
  .sidebar-brand .logo-image,.admin-sidebar-brand .logo-image,.brand-logo-main{width:138px!important}
  .portal-content,.admin-content{padding:13px 10px 28px!important}.dashboard-welcome-main{padding:18px}.dashboard-welcome-main h1{font-size:1.48rem}.dashboard-quick-panel{grid-template-columns:1fr}
  .service-shortcut-grid{grid-template-columns:1fr!important}.service-shortcut{display:grid!important;grid-template-columns:112px minmax(0,1fr)!important}.service-shortcut-image{height:100%!important;min-height:114px!important}.service-shortcut-body{padding:11px!important}
  .admin-metrics,.status-grid-clean,.social-channel-grid{grid-template-columns:1fr 1fr!important}.admin-metric{padding:12px!important}
  .project-card-actions,.doc-actions{display:grid!important;grid-template-columns:1fr 1fr}.project-card-actions .btn:first-child{grid-column:1/-1}.project-card-actions .btn,.doc-actions .btn{width:100%}
  .theme-grid{grid-template-columns:1fr}.calendar-weekdays span{font-size:.55rem}.calendar-day{min-height:43px}.calendar-day-number{font-size:.6rem}
  .responsive-cards td{grid-template-columns:92px minmax(0,1fr)!important}
}

@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* =========================================================
   GranHub 2.2.1 — acabamento visual e anti-corte
   ========================================================= */

/* Logo: um pouco menor que a revisão anterior, sem cápsula/fundo */
.sidebar-brand .logo-image,.admin-sidebar-brand .logo-image,.brand-logo-main{
  width:138px!important;max-height:37px!important;
}
.login-brand-v22 img{width:150px!important;max-height:42px!important}
.access-loader-logo img{width:150px!important}

/* Cabeçalho com identidade da empresa */
.top-company-profile{position:relative!important;overflow:hidden!important;isolation:isolate;min-width:220px;max-width:290px!important;padding:5px 10px 5px 6px!important;border-color:#d8e7f8!important;background:#fff!important}
.top-company-banner{position:absolute;inset:0;z-index:-2;opacity:.16;pointer-events:none}
.top-company-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 14%,rgba(255,255,255,.92) 46%,rgba(255,255,255,.78))}
.top-company-banner img{width:100%;height:100%;object-fit:cover;display:block}
.top-company-profile .company-avatar{width:37px;height:37px;border-radius:10px;background:#fff;border:1px solid #d9e8fa;padding:4px;box-shadow:0 4px 10px rgba(20,67,130,.08)}
.top-company-profile .company-avatar img{width:100%;height:100%;object-fit:contain}
.top-company-profile strong,.top-company-profile small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}

/* Loaders mais clean e com movimento contínuo */
.gh-page-loader{background:radial-gradient(circle at 50% 38%,#ffffff 0,#f8fbff 38%,#eff6ff 100%)!important;overflow:hidden;position:relative}
.gh-page-loader:before,.gh-page-loader:after{content:"";position:absolute;border-radius:50%;filter:blur(4px);pointer-events:none;opacity:.55}
.gh-page-loader:before{width:280px;height:280px;background:rgba(9,114,255,.08);left:-120px;top:-120px;animation:loaderOrb 7s ease-in-out infinite}
.gh-page-loader:after{width:230px;height:230px;background:rgba(90,171,255,.10);right:-110px;bottom:-110px;animation:loaderOrb 8s ease-in-out infinite reverse}
.gh-loader-logo{width:min(156px,48vw)!important;max-height:43px!important;margin-bottom:22px!important;animation:loaderLogoIn .65s var(--gh-ease) both}
.gh-loader-motion{width:44px!important;height:44px!important}
.gh-loader-motion:before{border-width:2px!important;box-shadow:0 0 18px rgba(9,114,255,.09)}
.gh-page-loader strong{font-size:.86rem!important;color:#456685!important}.gh-page-loader p{font-size:.69rem!important}
@keyframes loaderLogoIn{from{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:none}}
@keyframes loaderOrb{50%{transform:translate(18px,14px) scale(1.08)}}

/* Componentes novos */
.course-cta-v22{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:18px;align-items:center;padding:clamp(20px,3vw,30px);background:linear-gradient(135deg,#fff,#f3f8ff 62%,#eaf4ff);border:1px solid #d8e8fb;border-radius:15px;box-shadow:0 14px 34px rgba(20,67,130,.07);overflow:hidden;position:relative}
.course-cta-v22:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-100px;top:-110px;background:radial-gradient(circle,rgba(9,114,255,.14),transparent 70%)}
.course-cta-v22>*{position:relative;z-index:1}.course-cta-v22 h2{margin:7px 0 8px;color:#0b315f;font-size:clamp(1.4rem,2.4vw,2rem)}.course-cta-v22 p{color:#6883a1;line-height:1.58;font-size:.82rem;max-width:720px}.course-steps{display:grid;gap:9px}.course-step{display:flex;gap:10px;align-items:flex-start;padding:11px;border:1px solid #dce9f8;border-radius:10px;background:rgba(255,255,255,.9)}.course-step span{width:29px;height:29px;border-radius:8px;background:#eaf4ff;color:#086bdc;display:grid;place-items:center;font-weight:900;font-size:.7rem;flex:0 0 auto}.course-step strong{display:block;font-size:.74rem}.course-step small{display:block;margin-top:2px;color:#7b91aa;font-size:.63rem;line-height:1.45}
.area-project-detail{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start}.area-project-meta{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.area-project-actions,.area-doc-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.fixed-file-path{display:flex;gap:11px;padding:13px;border:1px solid #dbe9f9;border-radius:11px;background:#f8fbff;color:#315e91}.fixed-file-path>span{width:36px;height:36px;border-radius:9px;background:#e9f3ff;color:#096bdc;display:grid;place-items:center;flex:0 0 auto}.fixed-file-path small{display:block;color:#7990aa;font-size:.64rem}.fixed-file-path strong{display:block;margin-top:2px;font-size:.8rem;overflow-wrap:anywhere}.fixed-file-path p{margin:5px 0 0;color:#748aa3;font-size:.66rem;line-height:1.45}
.admin-message-attachment{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:5px 7px;border-radius:7px;border:1px solid #d9e7f7;background:#f8fbff;color:#456889;font-size:.65rem}

/* Tabelas, ações e formulários nunca estouram o viewport */
.table-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.table-actions>*{min-width:0}
.admin-card,.card,.modal,.field,.field-row>*{box-sizing:border-box;max-width:100%}
.field input,.field select,.field textarea{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.admin-content table{width:100%;max-width:100%;table-layout:auto}
.admin-content td,.admin-content th{overflow-wrap:anywhere}
.admin-content .btn{max-width:100%}
.page-head h1,.page-head p{overflow-wrap:anywhere}

/* Mobile/tablet refinado */
@media(max-width:1280px){
  .sidebar-brand .logo-image,.admin-sidebar-brand .logo-image,.brand-logo-main{width:136px!important}
  .top-company-profile{min-width:190px;max-width:225px!important}
}
@media(max-width:980px){
  .top-company-profile{min-width:44px!important;width:44px!important;max-width:44px!important;padding:4px!important}
  .top-company-profile>span:not(.company-avatar),.top-company-profile>svg{display:none!important}
  .top-company-profile .company-avatar{width:34px;height:34px}
  .course-cta-v22{grid-template-columns:1fr}
  .area-project-detail{grid-template-columns:1fr}.area-project-actions,.area-doc-actions{justify-content:flex-start}
}
@media(max-width:760px){
  .sidebar-brand .logo-image,.admin-sidebar-brand .logo-image,.brand-logo-main{width:132px!important}
  .admin-topbar .admin-environment-chip{display:none}
  .admin-topbar .user-chip:not(.top-company-profile){max-width:42px!important}
  .admin-content{overflow:visible!important}
  .admin-event-item{align-items:flex-start;flex-direction:column}.admin-event-item .table-actions{width:100%;justify-content:flex-start}
  .admin-event-item .table-actions .btn{flex:1 1 120px}
  .course-cta-v22{padding:18px 15px}.course-steps{margin-top:4px}
}
@media(max-width:520px){
  .sidebar-brand .logo-image,.admin-sidebar-brand .logo-image,.brand-logo-main{width:128px!important}
  .login-brand-v22 img{width:134px!important}.access-loader-logo img{width:138px!important}
  .admin-metrics,.status-grid-clean,.social-channel-grid{grid-template-columns:1fr!important}
  .responsive-cards td{grid-template-columns:86px minmax(0,1fr)!important}
  .responsive-cards td[data-label="Ações"]{display:block!important}.responsive-cards td[data-label="Ações"]:before{display:block;margin-bottom:5px}
  .responsive-cards td[data-label="Ações"] .btn{width:100%;margin:3px 0!important}
  .page-actions{display:grid!important;grid-template-columns:1fr}.page-actions>.btn,.page-actions>a.btn{width:100%}
}

/* Páginas públicas de Termos/Privacidade */
.legal-public-page{min-height:100dvh;background:linear-gradient(180deg,#f6faff,#edf5ff);padding-bottom:36px}
.legal-public-topbar{height:70px;display:flex;align-items:center;gap:14px;padding:0 clamp(14px,3vw,34px);background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-bottom:1px solid #dce9f8;position:sticky;top:0;z-index:20}
.legal-public-brand{margin-right:auto;display:flex;align-items:center}.legal-public-brand img{width:145px;max-height:38px;object-fit:contain}
.legal-public-shell{padding:28px 14px 0}.legal-review-note{display:flex;gap:11px;padding:14px;margin-top:28px;border:1px solid #d6e7fb;border-radius:10px;background:#f6faff;color:#42688f}.legal-review-note>svg{flex:0 0 auto;color:#0972ff}.legal-review-note strong{display:block;color:#174878}.legal-review-note p{margin:4px 0 0!important;font-size:.76rem}
@media(max-width:620px){.legal-public-topbar{height:62px;padding:0 10px}.legal-public-brand img{width:126px}.legal-public-topbar .brasilia-clock{display:none}.legal-public-shell{padding:14px 8px 0}.legal-body{padding:22px 18px}.legal-back-link{margin-left:auto}}
.course-cta-visual{min-height:190px;border-radius:14px;background:linear-gradient(145deg,#0972ff,#58a7ff);display:grid;place-items:center;position:relative;color:#fff;box-shadow:0 18px 35px rgba(9,114,255,.18);overflow:hidden}.course-cta-visual:before,.course-cta-visual:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.2)}.course-cta-visual:before{width:170px;height:170px;right:-55px;top:-55px}.course-cta-visual:after{width:110px;height:110px;left:-35px;bottom:-45px}.course-cta-visual>svg:first-child{width:54px;height:54px}.course-cta-visual>span{position:absolute;right:28%;bottom:25%;width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:rgba(255,255,255,.15);backdrop-filter:blur(8px);animation:shapeFloat 5s ease-in-out infinite}
.course-steps>div{display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:10px;align-items:start;padding:11px;border:1px solid #dce9f8;border-radius:10px;background:#fff}.course-steps>div>span{grid-row:1/3;width:30px;height:30px;border-radius:8px;background:#eaf4ff;color:#086bdc;display:grid;place-items:center;font-size:.67rem;font-weight:900}.course-steps>div>strong{font-size:.76rem;color:#234d7b}.course-steps>div>p{margin:3px 0 0;color:#7a90aa;font-size:.65rem;line-height:1.45}
@media(max-width:760px){.course-cta-visual{min-height:150px}}
