:root {
  --navy-950: #06263d;
  --navy-900: #073653;
  --navy-800: #0a466a;
  --steel-600: #648ba2;
  --steel-400: #93adbc;
  --steel-100: #e9f0f4;
  --ink: #152c3b;
  --muted: #687d8b;
  --line: #dfe7eb;
  --canvas: #f3f6f8;
  --white: #fff;
  --green: #238763;
  --green-bg: #e7f5ef;
  --amber: #987029;
  --amber-bg: #fff5dc;
  --red: #aa3f4b;
  --red-bg: #fff0f1;
  --shadow-sm: 0 6px 24px rgba(7, 54, 83, .06);
  --shadow-lg: 0 28px 70px rgba(3, 32, 51, .18);
  --radius: 18px;
}
* { box-sizing: border-box; }
html { min-height: 100%; }
body { margin: 0; color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button, input { font: inherit; }
button:disabled { cursor: not-allowed; opacity: .48; }
.section-kicker { color: var(--steel-600); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.notice { margin: 0 0 18px; padding: 14px 17px; border: 1px solid; border-radius: 12px; font-size: 13px; }
.notice.success { color: #176447; border-color: #b7dfce; background: #eaf8f1; }
.notice.error { color: #8f313c; border-color: #ecc5ca; background: #fff1f2; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 9px 14px; border: 1px solid transparent; border-radius: 10px; text-decoration: none; cursor: pointer; font-size: 12px; font-weight: 750; transition: .18s ease; }
.button:hover { transform: translateY(-1px); }
.button.primary { color: #fff; background: var(--navy-800); }
.button.secondary { color: var(--navy-800); border-color: #cbd9e1; background: #fff; }
.button.danger-quiet { color: var(--red); border-color: #efcdd1; background: var(--red-bg); }
.button.danger { color: #fff; background: var(--red); }
.button.full { width: 100%; }

/* Login próprio do Portal */
.portal-login-body { min-height: 100vh; background: #fff; }
.portal-login { min-height: 100vh; display: grid; grid-template-columns: minmax(430px, 44%) 1fr; }
.login-entry { position: relative; z-index: 2; display: grid; grid-template-rows: auto 1fr auto; gap: 34px; padding: clamp(38px, 5vw, 78px); background: #fff; }
.login-brand-block { display: grid; justify-items: start; gap: 15px; }
.login-logo { display: block; width: min(318px, 80%); height: auto; }
.login-product-label { padding: 6px 12px; border: 1px solid #dbe4e9; border-radius: 30px; color: var(--navy-900); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.login-intro { align-self: center; width: min(510px, 100%); }
.login-intro h1 { margin: 15px 0 24px; color: var(--navy-950); font-size: clamp(44px, 5vw, 72px); line-height: .98; letter-spacing: -.06em; }
.login-intro h1 em { color: var(--steel-600); font-family: Georgia, "Times New Roman", serif; font-weight: 500; }
.login-intro p { max-width: 450px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
.login-primary { width: min(430px, 100%); display: flex; align-items: center; justify-content: space-between; margin-top: 42px; padding: 17px 19px; border-radius: 12px; color: #fff; background: var(--navy-800); box-shadow: 0 16px 34px rgba(8, 66, 100, .22); text-decoration: none; font-size: 14px; font-weight: 750; transition: .2s ease; }
.login-primary b { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; color: var(--navy-900); background: #fff; }
.login-primary:hover { transform: translateY(-2px); background: var(--navy-900); box-shadow: 0 20px 38px rgba(8, 66, 100, .28); }
.login-trust { align-self: end; width: min(430px, 100%); display: flex; justify-content: space-between; gap: 16px; margin-top: 18px; color: #7d8e99; font-size: 10px; font-weight: 650; }
.login-landscape { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(44px, 6vw, 86px); color: #fff; background: linear-gradient(145deg, #0b496b 0%, #073652 45%, #041f32 100%); }
.login-landscape::after { content: ""; position: absolute; z-index: -1; width: 680px; height: 680px; right: -260px; top: -210px; border-radius: 50%; background: radial-gradient(circle at 36% 64%, rgba(121, 169, 194, .32), transparent 64%); }
.landscape-grid { position: absolute; z-index: -2; inset: 0; opacity: .09; background-image: linear-gradient(rgba(255,255,255,.65) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.65) 1px, transparent 1px); background-size: 72px 72px; }
.landscape-orbit { position: absolute; z-index: -1; border: 1px solid rgba(255,255,255,.17); border-radius: 50%; }
.orbit-one { width: 560px; height: 560px; right: -130px; top: 12%; }
.orbit-two { width: 880px; height: 880px; right: -310px; top: -4%; }
.landscape-tag { display: flex; align-items: center; gap: 9px; font-size: 10px; font-weight: 750; letter-spacing: .17em; text-transform: uppercase; opacity: .78; }
.landscape-tag span { width: 7px; height: 7px; border-radius: 50%; background: #8bbbcf; box-shadow: 0 0 0 5px rgba(139,187,207,.14); }
.landscape-copy { position: relative; max-width: 670px; margin: auto 0; }
.landscape-copy p { margin: 0 0 19px; color: #9db9c8; font-size: 12px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.landscape-copy h2 { margin: 0; font-size: clamp(50px, 6vw, 92px); line-height: .9; letter-spacing: -.065em; }
.landscape-foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.14); }
.landscape-foot span { font-weight: 800; letter-spacing: .08em; }
.landscape-foot small { color: #9db9c8; }

/* Shell do Portal */
.portal-body { min-height: 100vh; background: var(--canvas); }
.portal-sidebar { position: fixed; z-index: 20; inset: 0 auto 0 0; width: 248px; display: flex; flex-direction: column; padding: 24px 18px; color: #d6e2e8; background: var(--navy-950); }
.holding-brand { display: grid; justify-items: start; gap: 12px; padding: 8px 10px 4px; color: #fff; text-decoration: none; }
.holding-logo { display: block; width: 100%; max-width: 172px; height: auto; }
.portal-product { padding: 5px 11px; border: 1px solid rgba(255,255,255,.22); border-radius: 30px; color: #b3cbd9; font-size: 9px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; line-height: 1; }
.portal-nav { display: grid; gap: 5px; margin-top: 34px; }
.nav-section { margin: 22px 12px 7px; color: #6f93a6; font-size: 9px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.portal-nav a { display: flex; align-items: center; gap: 11px; padding: 11px 12px; border-radius: 10px; color: #adc2cd; text-decoration: none; font-size: 12px; font-weight: 650; transition: .18s ease; }
.portal-nav a:hover { color: #fff; background: rgba(255,255,255,.06); }
.portal-nav a.active { color: #fff; background: #124b6b; box-shadow: inset 3px 0 #8db2c5; }
.nav-glyph { width: 20px; color: #89a9ba; font-size: 16px; text-align: center; }
.sidebar-foot { display: flex; align-items: center; gap: 10px; margin-top: auto; padding: 15px 11px; border-top: 1px solid rgba(255,255,255,.1); }
.sidebar-foot > span:last-child { display: grid; gap: 3px; }
.sidebar-foot strong { color: #d6e2e8; font-size: 10px; }
.sidebar-foot small { color: #708f9f; font-size: 9px; }
.security-dot { width: 8px; height: 8px; border-radius: 50%; background: #54b78d; box-shadow: 0 0 0 5px rgba(84,183,141,.1); }
.portal-workspace { min-height: 100vh; margin-left: 248px; }
/* Visão simulada: precisa ser impossível de confundir com a sessão normal. */
.simulacao-aviso { position: sticky; z-index: 20; top: 0; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding: 11px clamp(24px, 4vw, 58px); border-bottom: 1px solid #e0b400; background: #fff6d6; color: #6b4e00; font-size: 13px; }
.simulacao-aviso p { margin: 0; flex: 1 1 320px; }
.simulacao-marca { font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.simulacao-aviso form { margin: 0; }
.simulacao-aviso button { border: 1px solid #6b4e00; border-radius: 999px; padding: 7px 15px; background: #6b4e00; color: #fff6d6; font: inherit; font-weight: 700; font-size: 12px; cursor: pointer; }
.simulacao-aviso button:hover { background: #4d3800; }
.simulacao-aviso ~ .portal-topbar { top: 45px; }
.open-action.muted { color: var(--steel-600); font-weight: 700; }
/* Seletor de visão: mora na sidebar, logo abaixo da marca. */
.ver-como-seletor { display: grid; gap: 6px; margin-top: 20px; padding: 11px 10px; border: 1px solid rgba(255,255,255,.11); border-radius: 11px; background: rgba(255,255,255,.045); }
.ver-como-seletor label { color: #8fa9b8; font-size: 9px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.ver-como-seletor select { width: 100%; padding: 7px 8px; border: 1px solid rgba(255,255,255,.16); border-radius: 8px; background: var(--navy-900); color: #e4edf2; font: inherit; font-size: 11.5px; }
.ver-como-seletor select:focus { outline: 2px solid #4d90b4; outline-offset: 1px; }
.ver-como-seletor optgroup { color: #9fb6c3; background: var(--navy-950); }
.ver-como-seletor option { color: #e4edf2; background: var(--navy-900); }
.ver-como-seletor button { padding: 6px 10px; border: 1px solid rgba(255,255,255,.2); border-radius: 8px; background: transparent; color: #e4edf2; font: inherit; font-size: 11px; cursor: pointer; }
.ordem-modulos { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin: 0 0 18px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.ordem-modulos .ordem-legenda { color: var(--steel-600); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ordem-modulos label { display: grid; gap: 5px; color: var(--navy-900); font-size: 11px; font-weight: 700; }
.ordem-modulos input { width: 74px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: 12px; }
.ordem-modulos button { margin-left: auto; }
.empty-hint { grid-column: 1 / -1; margin: 0; color: var(--steel-600); font-size: 13px; }
.portal-topbar { position: sticky; z-index: 15; top: 0; height: 72px; display: flex; align-items: center; padding: 0 clamp(24px, 4vw, 58px); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.93); backdrop-filter: blur(12px); }
.topbar-context { color: #718590; font-size: 11px; font-weight: 700; }
.account-menu { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.account-avatar, .person-avatar { display: grid; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg, var(--steel-600), var(--navy-800)); font-weight: 800; }
.account-avatar { width: 35px; height: 35px; font-size: 11px; }
.account-copy { display: grid; gap: 2px; min-width: 140px; }
.account-copy strong { font-size: 11px; }
.account-copy small { color: var(--muted); font-size: 9px; }
.logout-link { margin-left: 8px; padding: 7px 10px; border-left: 1px solid var(--line); color: var(--steel-600); text-decoration: none; font-size: 10px; font-weight: 750; }
.account-profile-link { color:inherit; text-decoration:none; border-radius:7px; }
.account-profile-link:hover strong { color:var(--navy-800); text-decoration:underline; }
.portal-content { max-width: 1460px; margin: 0 auto; padding: clamp(35px, 5vw, 68px); }

/* Home */
.welcome-panel { position: relative; overflow: hidden; display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; padding: clamp(30px, 4vw, 52px); border-radius: 24px; color: #fff; background: linear-gradient(125deg, var(--navy-900), #0d5276); box-shadow: var(--shadow-sm); }
.welcome-panel::after { content: ""; position: absolute; width: 420px; height: 420px; right: -100px; top: -210px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 80px rgba(255,255,255,.025), 0 0 0 160px rgba(255,255,255,.018); }
.welcome-panel .section-kicker { color: #9bbccc; }
.welcome-panel h1 { margin: 10px 0 8px; font-size: clamp(36px, 5vw, 64px); line-height: 1; letter-spacing: -.055em; }
.welcome-panel p { margin: 0; color: #b9ccd6; }
.identity-chip { position: relative; z-index: 1; display: flex; align-items: center; gap: 11px; min-width: 270px; padding: 13px 15px; border: 1px solid rgba(255,255,255,.15); border-radius: 13px; background: rgba(255,255,255,.07); backdrop-filter: blur(10px); }
.identity-chip > span:last-child { display: grid; gap: 3px; }
.identity-chip strong { font-size: 11px; }.identity-chip small { color: #a9c1cd; font-size: 9px; }
.identity-shield { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; color: #dff6ec; background: rgba(70,181,134,.2); font-size: 12px; font-weight: 800; }
.content-section { margin-top: 52px; }
.content-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 20px; }
.content-heading h2, .panel-heading h2 { margin: 6px 0 5px; color: var(--navy-950); font-size: 23px; letter-spacing: -.025em; }
.content-heading p, .panel-heading p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.section-count, .lab-badge, .locked-label { padding: 7px 10px; border: 1px solid var(--line); border-radius: 30px; color: var(--muted); background: #fff; font-size: 9px; font-weight: 750; }
.lab-badge { color: #7e652e; border-color: #ead9a5; background: var(--amber-bg); }
.module-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.product-card { position: relative; overflow: hidden; display: flex; flex-direction: column; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); text-decoration: none; transition: .2s ease; }
a.product-card:hover { transform: translateY(-4px); border-color: #a7bfcc; box-shadow: 0 18px 38px rgba(7,54,83,.11); }
.product-card::after { content: none; }
.product-topline, .product-copy, .product-footer { position: relative; z-index: 1; }
.product-nexus { --card-color: #174f6d; --card-tint: #dcecf3; }
.product-horus { --card-color: #7b6b53; --card-tint: #f0e9df; }
.product-chatbot { --card-color: #5b4b8a; --card-tint: #e7e2f3; }
.product-catelli { --card-color: #536d68; --card-tint: #dfebe8; }
.product-topline { display: flex; align-items: center; justify-content: space-between; }
.product-symbol { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 15px; color: #fff; background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.3); font-size: 21px; font-weight: 850; }
.product-kind { color: #8a9aa4; font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.product-copy { display: grid; gap: 5px; margin-top: 30px; }
.product-copy strong { color: var(--navy-950); font-size: 18px; letter-spacing: -.03em; }
.product-copy small { color: var(--muted); font-size: 10.5px; line-height: 1.5; }
.product-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; margin-top: auto; padding-top: 12px; border-top: 1px solid #edf1f3; }
.availability { padding: 4px 7px; border-radius: 20px; font-size: 8.5px; font-weight: 800; }
.availability.active { color: #1b6a4c; background: var(--green-bg); }
.availability.building { color: #806629; background: var(--amber-bg); }
.availability.blocked { color: #87505a; background: #f7ecee; }
.open-action { color: var(--navy-800); font-size: 9.5px; font-weight: 800; }
.product-card.unavailable { box-shadow: none; filter: grayscale(85%); opacity: .58; }
.product-card.unavailable:hover { transform: none; }
.tool-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }
.tool-card { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: start; padding: 19px; border: 1px dashed #cbd8df; border-radius: 15px; background: rgba(255,255,255,.62); }
.tool-icon { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 11px; color: var(--navy-800); background: var(--steel-100); font-size: 12px; font-weight: 850; }
.tool-copy { display: grid; gap: 4px; }.tool-copy > span { color: var(--steel-600); font-size: 8px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.tool-copy strong { font-size: 12px; }.tool-copy p { margin: 2px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.tool-status { padding: 4px 7px; border-radius: 20px; color: #806629; background: var(--amber-bg); font-size: 8px; font-weight: 800; white-space: nowrap; }

/* Administração */
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 28px; }
.page-heading h1, .person-hero h1 { margin: 7px 0 6px; color: var(--navy-950); font-size: clamp(36px, 4vw, 53px); line-height: 1; letter-spacing: -.055em; }
.page-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.large-stat { display: grid; min-width: 132px; padding: 15px 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; text-align: right; }
.large-stat strong { color: var(--navy-900); font-size: 24px; }.large-stat small { color: var(--muted); font-size: 9px; }
.directory-toolbar { position: relative; display: flex; gap: 12px; margin-bottom: 14px; }
.search-form { flex: 1; display: flex; align-items: center; gap: 10px; padding: 0 13px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.search-form span { color: var(--steel-600); font-size: 18px; }.search-form input { flex: 1; min-height: 45px; border: 0; outline: 0; color: var(--ink); background: transparent; }
.search-form button { border: 0; color: var(--navy-800); background: transparent; cursor: pointer; font-size: 10px; font-weight: 800; }
.create-person summary { min-height: 47px; display: flex; align-items: center; padding: 0 17px; border-radius: 12px; color: #fff; background: var(--navy-800); cursor: pointer; font-size: 11px; font-weight: 800; list-style: none; }
.create-person summary::-webkit-details-marker { display: none; }
.create-person[open] > form { position: absolute; z-index: 10; top: 58px; right: 0; width: min(780px, 100%); display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; padding: 25px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow-lg); }
.create-person form > div { grid-column: 1 / -1; }.create-person h2 { margin: 5px 0; }.create-person p { margin: 0 0 5px; color: var(--muted); font-size: 11px; }
label { display: grid; gap: 7px; color: var(--muted); font-size: 10px; font-weight: 750; }
input { min-width: 0; padding: 11px 12px; border: 1px solid #cbd8df; border-radius: 9px; color: var(--ink); background: #fff; outline: 0; }
input:focus { border-color: var(--steel-600); box-shadow: 0 0 0 3px rgba(100,139,162,.13); }
.directory-list { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow-sm); }
.directory-header, .directory-row { display: grid; grid-template-columns: minmax(280px,1.4fr) minmax(170px,.7fr) 150px 36px; gap: 20px; align-items: center; }
.directory-header { padding: 12px 20px; color: #81919b; background: #f7f9fa; font-size: 8px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.directory-row { min-height: 74px; padding: 13px 20px; border-top: 1px solid #edf1f3; text-decoration: none; transition: .15s ease; }
.directory-row:hover { background: #f7fafb; }
.muted-row { opacity: .65; }
.person-cell { min-width: 0; display: flex; align-items: center; gap: 12px; }
.person-avatar { flex: 0 0 40px; width: 40px; height: 40px; font-size: 12px; }
.person-avatar.large { width: 68px; height: 68px; flex-basis: 68px; font-size: 22px; }
.person-cell > span:last-child { min-width: 0; display: grid; gap: 3px; }
.person-cell strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.person-cell small { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.identity-cell { display: grid; gap: 3px; }.identity-cell small { color: var(--muted); font-size: 8px; }.identity-cell code { color: var(--navy-800); font-size: 10px; }
.state-badge { width: fit-content; display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 20px; font-size: 9px; font-weight: 800; }
.state-badge i { width: 6px; height: 6px; border-radius: 50%; }
.state-badge.online { color: #1c684c; background: var(--green-bg); }.state-badge.online i { background: #38a077; }
.state-badge.offline { color: #7e5960; background: #f6edef; }.state-badge.offline i { background: #b67984; }
.row-arrow { color: var(--steel-600); font-size: 17px; }
.empty-panel { padding: 45px 20px; color: var(--muted); text-align: center; }.empty-panel strong { color: var(--ink); }.empty-panel p { margin: 6px 0; font-size: 11px; }
.empty-panel.compact { padding: 22px; }
.back-link { display: inline-block; margin-bottom: 18px; color: var(--steel-600); text-decoration: none; font-size: 10px; font-weight: 750; }
.person-hero { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-bottom: 24px; }
.person-hero-identity { display: flex; align-items: center; gap: 17px; }.person-hero h1 { font-size: clamp(34px,4vw,48px); }.person-hero p { margin: 0; color: var(--muted); font-size: 12px; }
.person-hero-actions { display: flex; align-items: center; gap: 10px; }
.detail-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 18px; align-items: start; }
.detail-main, .detail-side { display: grid; gap: 18px; }
.panel { padding: 23px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 3px 16px rgba(7,54,83,.035); }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.panel-heading h2 { font-size: 18px; }
.locked-label { color: var(--navy-800); background: var(--steel-100); }
.identity-grid { display: grid; grid-template-columns: repeat(2,1fr); border: 1px solid #e7ecef; border-radius: 13px; overflow: hidden; }
.identity-grid > div { min-width: 0; display: grid; gap: 6px; padding: 17px; border-right: 1px solid #e7ecef; border-bottom: 1px solid #e7ecef; }
.identity-grid > div:nth-child(even) { border-right: 0; }.identity-grid > div:nth-last-child(-n+2) { border-bottom: 0; }
.identity-grid small { color: var(--muted); font-size: 9px; }.identity-grid strong { font-size: 11px; }.identity-grid code { overflow: hidden; color: var(--navy-800); font-size: 9px; text-overflow: ellipsis; }
.governance-note { display: flex; align-items: flex-start; gap: 11px; margin-top: 16px; padding: 13px; border-radius: 11px; color: #496879; background: #edf4f7; }
.governance-note > span { flex: 0 0 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--steel-600); font-size: 10px; font-weight: 850; }
.governance-note p { margin: 0; font-size: 10px; line-height: 1.55; }.governance-note.warning { color: #715c2d; background: var(--amber-bg); }.governance-note.warning > span { background: #a5823c; }
.access-list { display: grid; border: 1px solid #e7ecef; border-radius: 13px; overflow: hidden; }
.access-row { display: grid; grid-template-columns: auto 1fr auto; gap: 13px; align-items: center; padding: 15px; border-bottom: 1px solid #e7ecef; }
.access-row:last-child { border-bottom: 0; }
.access-symbol { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 11px; color: #fff; font-size: 12px; font-weight: 850; }
.module-color-nexus { background: #174f6d; }.module-color-horus { background: #7b6b53; }.module-color-chatbot { background: #5b4b8a; }.module-color-catelli { background: #536d68; }.tool-color { color: var(--navy-800); background: var(--steel-100); }
.access-copy { display: grid; gap: 2px; }.access-copy strong { font-size: 11px; }.access-copy small { color: var(--muted); font-size: 9px; }.access-copy em { color: var(--steel-600); font-size: 8px; font-style: normal; }
.access-copy em.access-role-note { color: #806629; background: var(--amber-bg); display: inline-block; padding: 1px 6px; border-radius: 10px; font-weight: 700; text-transform: uppercase; }
.toggle { display: flex; align-items: center; gap: 7px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 20px; color: var(--muted); background: #f5f7f8; cursor: pointer; font-size: 8px; font-weight: 800; }
.toggle i { position: relative; width: 27px; height: 15px; border-radius: 20px; background: #a9b6bd; }.toggle i::after { content: ""; position: absolute; width: 11px; height: 11px; left: 2px; top: 2px; border-radius: 50%; background: #fff; transition: .15s ease; }
.toggle.on { color: #176447; border-color: #bae0cf; background: var(--green-bg); }.toggle.on i { background: #39a078; }.toggle.on i::after { transform: translateX(12px); }
.toggle.locked { cursor: default; opacity: .65; }.toggle.locked::before { content: "🔒"; font-size: 8px; margin-right: 1px; }
select:disabled { opacity: .55; cursor: default; }
.security-panel .panel-heading { margin-bottom: 13px; }
.security-fact { display: flex; align-items: center; gap: 11px; padding: 12px 0; border-bottom: 1px solid #edf1f3; }
.security-fact > span { flex: 0 0 31px; width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; font-size: 10px; font-weight: 850; }
.fact-ok { color: #176447; background: var(--green-bg); }.fact-warn { color: #856824; background: var(--amber-bg); }.fact-neutral { color: var(--navy-800); background: var(--steel-100); }
.security-fact div { display: grid; gap: 2px; }.security-fact strong { font-size: 10px; }.security-fact small { color: var(--muted); font-size: 8px; }
.pending-actions { display: flex; flex-wrap: wrap; gap: 5px; margin: 15px 0; }.pending-actions strong { width: 100%; margin-bottom: 3px; font-size: 9px; }.pending-actions span { padding: 4px 6px; border-radius: 5px; color: #7b632b; background: var(--amber-bg); font-size: 7px; font-weight: 800; }
.stack-form { display: grid; gap: 14px; }.stack-form .confirm-actions { margin-top: 4px; }
.danger-zone h2 { margin: 7px 0; font-size: 17px; }.danger-zone p { margin: 0 0 16px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.timeline { display: grid; }.timeline article { display: grid; grid-template-columns: 10px 1fr; gap: 10px; min-height: 50px; }
.timeline article > span { position: relative; width: 7px; height: 7px; margin-top: 5px; border-radius: 50%; background: var(--steel-600); box-shadow: 0 0 0 4px var(--steel-100); }.timeline article > span::after { content: ""; position: absolute; width: 1px; height: 38px; left: 3px; top: 9px; background: #dfe7eb; }.timeline article:last-child > span::after { display: none; }
.timeline article div { display: grid; gap: 3px; align-content: start; }.timeline article strong { font-size: 9px; }.timeline article small { color: var(--muted); font-size: 8px; }
.catalog-section { margin-top: 40px; }.catalog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.catalog-card { display: flex; flex-direction: column; min-height: 255px; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow-sm); }
.catalog-card-head { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 20px; }.catalog-card > strong { font-size: 17px; }.catalog-card > p { min-height: 44px; margin: 7px 0; color: var(--muted); font-size: 10px; line-height: 1.55; }.catalog-card > small { overflow: hidden; margin-bottom: 18px; color: #8b9aa3; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.catalog-card form { margin-top: auto; }
.confirm-card { width: min(680px,100%); margin: 7vh auto; padding: clamp(28px,5vw,52px); border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: var(--shadow-lg); }.confirm-card h1 { margin: 8px 0 16px; font-size: 42px; letter-spacing: -.05em; }.confirm-card > p { color: var(--muted); line-height: 1.6; }.danger-icon { width: 45px; height: 45px; display: grid; place-items: center; margin-bottom: 18px; border-radius: 50%; color: var(--red); background: var(--red-bg); font-size: 20px; font-weight: 850; }.danger-text { color: var(--red); }.confirm-actions { display: flex; justify-content: flex-end; gap: 10px; }

@media (max-width: 1100px) {
  .module-grid { grid-template-columns: repeat(3,1fr); }
  .tool-grid, .catalog-grid { grid-template-columns: repeat(2,1fr); }
  .detail-layout { grid-template-columns: 1fr; }.detail-side { grid-template-columns: repeat(2,1fr); }.detail-side .danger-zone { grid-column: 1 / -1; }
}
@media (max-width: 780px) {
  .portal-login { grid-template-columns: 1fr; }.login-landscape { display: none; }.login-entry { min-height: 100vh; }.login-logo { width: min(250px, 70%); }.login-entry { padding: 34px 26px; gap: 26px; }
  .portal-sidebar { position: static; width: 100%; height: 68px; flex-direction: row; align-items: center; padding: 8px 16px; }.holding-brand { grid-auto-flow: column; align-items: center; gap: 10px; padding: 0; }.holding-logo { width: 124px; }.portal-nav { display: none; }.sidebar-foot { display: none; }.ver-como-seletor { display: none; }
  .portal-workspace { margin-left: 0; }.portal-topbar { height: 60px; padding: 0 18px; }.account-copy { display: none; }.topbar-context { font-size: 10px; }.portal-content { padding: 30px 16px 60px; }
  .welcome-panel, .page-heading, .person-hero { align-items: flex-start; flex-direction: column; }.identity-chip { min-width: 0; width: 100%; }
  .module-grid, .tool-grid, .catalog-grid, .detail-side { grid-template-columns: 1fr; }.detail-side .danger-zone { grid-column: auto; }
  .content-heading { align-items: flex-start; flex-direction: column; gap: 12px; }.directory-header { display: none; }.directory-row { grid-template-columns: 1fr auto; gap: 10px; }.identity-cell { display: none; }.directory-row > span:nth-child(3) { display: none; }
  .create-person[open] > form { position: fixed; inset: 76px 14px auto; width: auto; max-height: calc(100vh - 100px); overflow: auto; grid-template-columns: 1fr; }.create-person form > div { grid-column: auto; }
  .person-hero-actions { width: 100%; flex-wrap: wrap; }.identity-grid { grid-template-columns: 1fr; }.identity-grid > div { border-right: 0; }.identity-grid > div:nth-last-child(-n+2) { border-bottom: 1px solid #e7ecef; }.identity-grid > div:last-child { border-bottom: 0; }
  .access-row { grid-template-columns: auto 1fr; }.access-row form { grid-column: 2; }.login-trust { flex-direction: column; }
}

/* Entrada do System_Master */
.master-body { display: grid; place-items: center; min-height: 100vh; background: linear-gradient(150deg, #08304a, #041d2e); }
.master-shell { width: min(430px, calc(100% - 32px)); }
.master-card { display: grid; gap: 14px; padding: clamp(28px, 5vw, 42px); border-radius: 22px; background: #fff; box-shadow: var(--shadow-lg); }
.master-logo { width: min(220px, 66%); height: auto; }
.master-card h1 { margin: 0; color: var(--navy-950); font-size: 30px; letter-spacing: -.04em; }
.master-sobre { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.master-card .back-link { margin: 4px 0 0; }
.endereco-nota { display: block; color: var(--muted); font-size: 9px; line-height: 1.5; }
/* display: grid venceria o [hidden] { display: none } do navegador */
.master-oculto[hidden] { display: none; }
.master-oculto { display: grid; gap: 12px; width: min(430px, 100%); margin-top: 26px; padding: 20px; border: 1px dashed #cbd8df; border-radius: 14px; background: #fbfcfd; }
.config-create-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
.config-create-grid .create-person form { grid-template-columns:repeat(2,minmax(0,1fr)); }
.config-create-grid .create-person form>div,.config-create-grid .create-person form>button { grid-column:1/-1; }
.appearance-form { margin:14px 0; padding-bottom:14px; border-bottom:1px solid var(--line); }

/* Home visual e logos dos aplicativos */
.product-card { min-height: 246px; padding: 16px; }
.product-visual { position: absolute; z-index: 0; inset: 0 0 auto; height: 108px; display: grid; place-items: center; overflow: hidden; background: var(--navy-900); }
.product-visual::after { content:none; }
.product-visual-nexus { grid-template-columns: 74px auto; color:#fff; justify-content:center; }
.product-visual-nexus canvas { width: 78px; height: 78px; }
.product-visual-nexus b { z-index:1; margin-left:-4px; font-size:15px; letter-spacing:.2em; }
.product-visual-horus img { z-index:1; max-width:66%; max-height:64px; object-fit:contain; }
.configured-module-logo { z-index:1; max-width:72%; max-height:64px; object-fit:contain; }
.refrisizing-card-logo { z-index:1; display:flex; align-items:center; gap:9px; color:#fff; }
.refrisizing-card-logo svg { width:24px; height:24px; color:#38bdf8; }
.refrisizing-card-logo b { font-size:21px; font-weight:900; letter-spacing:.11em; }
.refrisizing-card-logo b span { color:#38bdf8; }
.chatbot-logo { z-index:1; color:#fff; font-size:23px; font-weight:900; letter-spacing:.08em; }.chatbot-logo small { margin-left:5px; color:#9edbbd; font-size:10px; }
.product-card .product-topline { margin-top:96px; }.product-copy { margin-top:12px; }
.tool-card { color:inherit; text-decoration:none; transition:.18s ease; }.tool-card[href]:hover { transform:translateY(-2px); border-style:solid; box-shadow:var(--shadow-sm); }

/* Organograma */
.org-create form { display:grid; grid-template-columns:130px 1fr 1fr 1fr auto; gap:12px; align-items:end; }
select { min-width:0; padding:11px 12px; border:1px solid #cbd8df; border-radius:9px; color:var(--ink); background:#fff; }
.org-chart { display:grid; gap:18px; margin-top:20px; }.org-node { padding:18px; border:1px solid var(--line); border-left:4px solid #628ca3; border-radius:15px; background:#fff; box-shadow:var(--shadow-sm); }.org-node header { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; }.org-node header div,.org-members>div>span:nth-child(2) { display:grid; gap:3px; }.org-node header small,.org-members small { color:var(--muted); font-size:9px; }.org-type { padding:5px 8px; border-radius:20px; color:var(--navy-800); background:var(--steel-100); font-size:8px; font-weight:850; text-transform:uppercase; }.org-members { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0; }.org-members>div { display:flex; align-items:center; gap:8px; padding:7px 8px; border:1px solid var(--line); border-radius:10px; }.org-members .person-avatar { width:29px; height:29px; flex-basis:29px; }.org-members strong { font-size:10px; }.icon-button { border:0; color:var(--red); background:transparent; cursor:pointer; }.org-empty { padding:8px; }.org-inline-form { display:grid; grid-template-columns:1.3fr 1fr auto auto; gap:10px; align-items:end; padding-top:12px; }.check-line { display:flex; align-items:center; gap:6px; padding-bottom:10px; }.check-line input { width:auto; }.org-children { display:grid; gap:12px; margin:18px 0 0 26px; padding-left:18px; border-left:2px solid #d6e2e8; }.org-level-1 { border-left-color:#7e9c8d; }.org-level-2 { border-left-color:#b19a6b; }

/* Permissões */
.table-scroll { overflow:auto; }.permission-matrix table { width:100%; border-collapse:collapse; }.permission-matrix th,.permission-matrix td { min-width:180px; padding:13px; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; }.permission-matrix th:first-child,.permission-matrix td:first-child { min-width:260px; }.permission-matrix th small,.permission-matrix td:first-child small,.permission-matrix td:first-child strong,.permission-matrix td:first-child code,.permission-matrix td:first-child span { display:block; margin-top:3px; }.permission-matrix th small,.permission-matrix td:first-child small { color:var(--muted); font-size:8px; }.permission-matrix td:first-child span { color:var(--steel-600); font-size:8px; font-weight:800; text-transform:uppercase; }.permission-matrix td:first-child code { font-size:8px; }.permission-exceptions { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }.permission-exceptions article { display:grid; grid-template-columns:1fr 150px; gap:12px; align-items:center; padding:11px; border:1px solid var(--line); border-radius:10px; }.permission-exceptions article>span { display:grid; gap:3px; }.permission-exceptions strong { font-size:10px; }.permission-exceptions small { color:var(--muted); font-size:8px; }.permission-exceptions select { width:100%; padding:8px; font-size:9px; }

/* Férias */
.vacation-calendar { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:22px; }.vacation-event { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; padding:14px; border:1px solid var(--line); border-top:3px solid #d7a950; border-radius:13px; background:#fff; }.vacation-event.status-aprovado { border-top-color:#3b9c76; }.vacation-event.status-concluido { border-top-color:#7390a1; opacity:.8; }.vacation-event.status-cancelado { border-top-color:#b87984; opacity:.55; }.vacation-event time { display:grid; font-size:15px; font-weight:850; }.vacation-event time small,.vacation-event div small { color:var(--muted); font-size:8px; }.vacation-event div { display:grid; gap:3px; }.vacation-event select { width:100px; padding:7px; font-size:8px; }.vacation-people { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }.vacation-person header { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; }.vacation-person header>div { display:grid; gap:3px; }.vacation-person header small { color:var(--muted); font-size:9px; }.vacation-balance { display:grid; color:#236c50; font-size:24px; text-align:right; }.vacation-balance small { font-size:8px; }.vacation-balance.negative { color:var(--red); }.vacation-person details { margin-top:15px; }.vacation-person summary,.org-node summary { color:var(--navy-800); cursor:pointer; font-size:10px; font-weight:800; }.vacation-forms { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:14px; }

/* Calculadora e dashboard */
.calculator-layout { display:grid; grid-template-columns:minmax(320px,.8fr) minmax(360px,1.2fr); gap:18px; align-items:start; }.calculator-form { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.calculator-form .panel-heading,.calculator-form button { grid-column:1/-1; }.calculator-result { min-height:420px; background:linear-gradient(145deg,var(--navy-900),#0d5276); color:#fff; }.calculator-result h2,.calculator-result p { color:#c1d5de; }.cable-main { display:grid; margin:35px 0; }.cable-main strong { font-size:58px; letter-spacing:-.05em; }.cable-main small { color:#a9c6d3; }.calculator-result dl { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; overflow:hidden; border-radius:12px; background:rgba(255,255,255,.14); }.calculator-result dl div { display:grid; gap:4px; padding:15px; background:rgba(4,31,47,.55); }.calculator-result dt { color:#9dbdca; font-size:9px; }.calculator-result dd { margin:0; font-size:16px; font-weight:800; }.calculator-decision { margin-top:18px!important; font-size:10px; line-height:1.6; }.conversor-layout { display:grid; grid-template-columns:minmax(300px,.85fr) minmax(340px,1.15fr); gap:18px; align-items:start; }
.conversor-form { display:grid; gap:14px; }
.conversor-result { background:linear-gradient(145deg,var(--navy-900),#0d5276); color:#fff; }
.conversor-result .section-kicker { color:#9dbdca; }
.conversor-valor { display:flex; align-items:baseline; gap:10px; margin:22px 0 6px; }
.conversor-valor strong { font-size:46px; letter-spacing:-.045em; line-height:1; }
.conversor-valor small { color:#a9c6d3; font-size:17px; font-weight:700; }
.conversor-formula { margin:0 0 24px; color:#c1d5de; font-size:12px; }
.conversor-tabela dl { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; margin:10px 0 0; overflow:hidden; border-radius:12px; background:rgba(255,255,255,.14); }
.conversor-tabela dl div { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:11px 13px; background:rgba(4,31,47,.55); }
.conversor-tabela dt { color:#9dbdca; font-size:10px; font-weight:800; }
.conversor-tabela dd { margin:0; font-size:13px; font-weight:700; }
.dashboard-placeholder { padding:45px; border-radius:24px; background:linear-gradient(135deg,#eef4f6,#fff); }.dashboard-placeholder h1 { margin:8px 0; font-size:55px; }.dashboard-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:35px 0; }.dashboard-grid article { display:grid; gap:8px; padding:25px; border:1px solid var(--line); border-radius:15px; background:#fff; }.dashboard-grid small { color:var(--muted); }.dashboard-grid strong { font-size:34px; }.dashboard-grid i { height:6px; border-radius:5px; background:linear-gradient(90deg,#6691a8 35%,#e2e9ec 35%); }

@media (max-width: 1000px) { .org-create form,.org-inline-form { grid-template-columns:1fr 1fr; }.vacation-calendar { grid-template-columns:1fr 1fr; }.calculator-layout { grid-template-columns:1fr; } }
@media (max-width: 780px) { .permission-exceptions,.vacation-people,.vacation-calendar,.vacation-forms,.dashboard-grid { grid-template-columns:1fr; }.org-create form,.org-inline-form,.calculator-form,.conversor-layout { grid-template-columns:1fr; }.calculator-form .panel-heading,.calculator-form button { grid-column:auto; }.org-children { margin-left:8px; padding-left:8px; }.product-visual-nexus { grid-template-columns:100px auto; } }

/* Governança de permissões: abas, chips de role e o tri-estado do grupo. */
.abas { display:flex; gap:6px; margin:0 0 18px; padding:5px; border:1px solid var(--line); border-radius:13px; background:#fff; }
.permission-domains { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0 0 16px; }
.permission-domains article { display:flex; gap:12px; padding:15px 17px; border:1px solid var(--line); border-radius:13px; background:#fff; }
.permission-domains article>span { display:grid; place-items:center; flex:none; width:34px; height:34px; border-radius:10px; color:#fff; background:var(--navy-900); font-weight:850; }
.permission-domains strong { font-size:12px; }.permission-domains p { margin:4px 0 0; color:var(--muted); font-size:10.5px; line-height:1.55; }
.permission-domain-modulo td:first-child { border-left:3px solid #477da0; }.permission-domain-ferramenta td:first-child { border-left:3px solid #4d9275; }
.abas a { padding:9px 16px; border-radius:9px; color:var(--muted); text-decoration:none; font-size:12px; font-weight:750; }
.abas a:hover { background:#f1f5f7; }
.abas a.ativa { background:var(--navy-900); color:#fff; }
.chip-row { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin:6px 0 18px; }
.chip-row form { margin:0; }
.chip { padding:7px 13px; border:1px solid var(--line); border-radius:20px; background:#fff; color:var(--muted); font:inherit; font-size:11.5px; font-weight:750; cursor:pointer; }
.chip:hover { border-color:#a7bfcc; }
.chip.on { border-color:transparent; background:var(--navy-900); color:#fff; }
.chip.locked { opacity:.58; cursor:not-allowed; }
.grupo-permissoes { margin:0 0 10px; padding:14px 16px; border:1px solid var(--line); border-radius:13px; background:#fff; }
.grupo-permissoes summary { display:flex; align-items:center; gap:10px; cursor:pointer; font-size:13px; }
.grupo-permissoes summary small { margin-left:auto; color:var(--muted); font-size:11px; }
.grupo-permissoes[open] summary { margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.tipo-badge { padding:3px 8px; border-radius:20px; background:#eef3f6; color:var(--steel-600); font-size:9px; font-weight:800; text-transform:uppercase; }
.tri-estado code { display:block; margin-top:3px; color:var(--muted); font-size:10px; }
.tri-botoes { display:flex; gap:4px; }
.tri-botoes form { margin:0; }
.tri { padding:6px 11px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--muted); font:inherit; font-size:11px; font-weight:750; cursor:pointer; }
.tri:hover { border-color:#a7bfcc; }
.tri.permitir.ativo { border-color:#b7dfce; background:#eaf8f1; color:#176447; }
.tri.negar.ativo { border-color:#ecc5ca; background:#fff1f2; color:#8f313c; }
.tri.herdar.ativo { border-color:#cfdae1; background:#eef3f6; color:var(--navy-900); }
.origem { display:block; margin-top:4px; color:var(--muted); font-size:10px; }
.seletor-pessoa { display:flex; align-items:flex-end; gap:12px; margin-bottom:6px; }
.seletor-pessoa label { display:grid; gap:5px; flex:1 1 320px; color:var(--navy-900); font-size:11px; font-weight:700; }
.seletor-pessoa select { padding:9px 10px; border:1px solid var(--line); border-radius:9px; font:inherit; font-size:12px; }
.selector-search .button { display:none; }
.tag-construcao { display:inline-block; margin-left:10px; padding:5px 10px; border-radius:20px; background:var(--amber-bg); color:#806629; font-size:10px; font-weight:800; letter-spacing:.06em; vertical-align:middle; text-transform:uppercase; }
.nav-tag { margin-left:auto; padding:2px 7px; border-radius:20px; background:rgba(255,255,255,.12); color:#e0c98a; font-size:8.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.profile-access-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.profile-access-grid>div { padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--canvas); }
.profile-access-grid small { color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.profile-access-grid p { display:flex; flex-wrap:wrap; gap:7px; margin:11px 0 0; }

/* Organograma: quadro de arrastar e soltar. */
.org-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:18px; align-items:start; margin-top:20px; }
.org-pessoas { position:sticky; top:92px; max-height:calc(100vh - 120px); display:flex; flex-direction:column; }
.org-busca { display:grid; gap:5px; margin-bottom:12px; color:var(--navy-900); font-size:11px; font-weight:700; }
.org-busca input { padding:9px 10px; border:1px solid var(--line); border-radius:9px; font:inherit; font-size:12px; }
.org-pessoas-lista { overflow-y:auto; display:grid; gap:6px; padding-right:4px; }
.pessoa-card { display:flex; align-items:center; gap:9px; padding:8px 9px; border:1px solid var(--line); border-radius:11px; background:#fff; cursor:grab; }
.pessoa-card:hover { border-color:#a7bfcc; }
.pessoa-card>span:nth-child(2) { display:grid; gap:2px; min-width:0; }
.pessoa-card strong { font-size:11px; }
.pessoa-card small { overflow:hidden; color:var(--muted); font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.pessoa-card em { margin-left:auto; padding:3px 7px; border-radius:20px; background:var(--amber-bg); color:#806629; font-size:8px; font-style:normal; font-weight:800; text-transform:uppercase; }
.pessoa-card.sem-time { border-color:#e6d3a8; }
.arrastando { opacity:.45; }
.alvo-ativo { outline:2px dashed #4d90b4; outline-offset:2px; background:#f2f8fb; }
.org-node[draggable=true] header { cursor:grab; }
.org-membro { cursor:grab; }
.org-members { min-height:44px; }
.org-raiz-alvo { padding:16px; border:2px dashed var(--line); border-radius:14px; color:var(--muted); font-size:11px; text-align:center; }
@media (max-width: 1000px) { .org-layout { grid-template-columns:1fr; } .org-pessoas { position:static; max-height:none; } }
@media (max-width: 850px) { .config-create-grid,.permission-domains,.profile-access-grid { grid-template-columns:1fr; } .config-create-grid .create-person form { grid-template-columns:1fr; } .config-create-grid .create-person form>* { grid-column:auto; } }

/* Uso do ChatBot: tabela de quem usou e a transcrição de uma conversa. */
.uso-chatbot table { width:100%; border-collapse:collapse; }
.uso-chatbot th,.uso-chatbot td { padding:12px 13px; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; font-size:10px; }
.uso-chatbot th { color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.uso-chatbot td strong { display:block; font-size:11px; }
.celula-sub { display:block; margin-top:2px; color:var(--muted); font-size:8px; }
.uso-chatbot .button { padding:7px 13px; font-size:9px; }
.vazio-tabela { padding:26px 13px; color:var(--muted); font-size:10px; text-align:center; }
.transcricao { display:grid; gap:10px; }
.transcricao-item { padding:13px 16px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:var(--shadow-sm); }
.transcricao-item.assistente { background:var(--canvas); box-shadow:none; }
.transcricao-item header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:6px; }
.transcricao-item strong { color:var(--navy-800); font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.transcricao-item time { color:var(--muted); font-size:8.5px; }
.transcricao-item p { margin:0; font-size:11.5px; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }

/* Fluxos administrativos redesenhados */
.permission-heading,.config-heading { align-items:flex-end; }
.precedence-mini { display:flex; align-items:center; gap:8px; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:#fff; font-size:10px; }
.precedence-mini strong { margin-right:4px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; }.precedence-mini span { padding:5px 8px; border-radius:7px; background:var(--steel-100); font-weight:800; }.precedence-mini i { color:var(--muted); font-style:normal; }
.permission-workbench { display:grid; grid-template-columns:260px minmax(0,1fr); gap:18px; align-items:start; }
.permission-selector { position:sticky; top:90px; padding:18px; }.permission-selector h2 { margin-top:4px; }.permission-selector p { color:var(--muted); font-size:10.5px; line-height:1.55; }.permission-selector nav { display:grid; gap:5px; max-height:52vh; margin:15px -5px; overflow:auto; }.permission-selector nav a { display:grid; gap:3px; padding:10px; border-radius:9px; color:var(--ink); text-decoration:none; }.permission-selector nav a:hover { background:#f3f7f9; }.permission-selector nav a.selected { color:#fff; background:var(--navy-900); }.permission-selector nav strong { font-size:11.5px; }.permission-selector nav small { overflow:hidden; color:inherit; opacity:.7; font-size:8.5px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }.selector-search { display:grid; gap:9px; margin-top:15px; }.selector-search select { width:100%; }
.permission-editor { display:grid; gap:10px; }.editor-intro { display:flex; align-items:center; justify-content:space-between; gap:18px; }.editor-intro h2 { margin:4px 0; }.editor-intro p { margin:0; color:var(--muted); font-size:10.5px; }.editor-intro code { white-space:nowrap; }.permission-domain-card { overflow:hidden; border:1px solid var(--line); border-radius:14px; background:#fff; }.permission-domain-card>summary { display:flex; align-items:center; justify-content:space-between; padding:17px 19px; cursor:pointer; list-style:none; }.permission-domain-card>summary::-webkit-details-marker { display:none; }.permission-domain-card>summary span { display:grid; gap:3px; }.permission-domain-card>summary strong { font-size:13px; }.permission-domain-card>summary small { color:var(--muted); font-size:9px; }.permission-domain-card>summary i { color:var(--muted); font-style:normal; transition:.2s; }.permission-domain-card[open]>summary i { transform:rotate(180deg); }.permission-list { border-top:1px solid var(--line); }.permission-list article { display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:20px; align-items:center; padding:14px 18px; border-bottom:1px solid #edf1f3; }.permission-list article:last-child { border:0; }.permission-list article>div:first-child { display:grid; gap:3px; }.permission-list strong { font-size:11px; }.permission-list p { margin:0; color:var(--muted); font-size:9.5px; }.permission-list code { color:#718590; font-size:8px; }.permission-line-state { display:flex; align-items:center; gap:12px; }.effective-state { display:grid; min-width:75px; color:#8f313c; font-size:9px; font-weight:850; text-align:right; }.effective-state.allowed { color:#176447; }.effective-state small { max-width:130px; color:var(--muted); font-size:7.5px; font-weight:600; }.group-role-box { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }.group-role-box>div:first-child { display:grid; gap:3px; }.group-role-box small { color:var(--muted); font-size:9px; }.group-role-box .chip-row { justify-content:flex-end; margin:0; }.precedence-note { margin:16px 0 0 278px; padding:12px 15px; border-radius:10px; color:var(--muted); background:#eef3f6; font-size:9.5px; line-height:1.55; }

.portal-dialog { width:min(600px,calc(100% - 28px)); max-height:calc(100vh - 40px); padding:0; overflow:auto; border:0; border-radius:18px; background:#fff; box-shadow:0 24px 80px rgba(3,29,45,.28); }.portal-dialog::backdrop { background:rgba(3,24,37,.56); backdrop-filter:blur(3px); }.portal-dialog>form,.portal-dialog>.audit-shell { display:grid; gap:14px; padding:24px; }.portal-dialog header { display:flex; justify-content:space-between; gap:20px; }.portal-dialog header h2 { margin-top:4px; }.portal-dialog>form>p { margin:0; color:var(--muted); font-size:10.5px; }.portal-dialog label { display:grid; gap:5px; color:var(--navy-900); font-size:10px; font-weight:750; }.portal-dialog textarea { resize:vertical; }.portal-dialog footer { display:flex; justify-content:flex-end; gap:8px; padding-top:8px; }.dialog-close { width:34px; height:34px; border:0; border-radius:50%; color:var(--muted); background:#eef3f6; font-size:22px; cursor:pointer; }.dialog-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.dialog-grid .wide { grid-column:1/-1; }
.config-actions { display:flex; gap:8px; }.module-config-list { display:grid; gap:12px; }.module-config-card { overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:var(--shadow-sm); }.module-config-card>header { display:grid; grid-template-columns:150px 1fr auto; gap:18px; align-items:center; padding:17px; }.module-config-card>header>div { display:grid; gap:4px; }.module-config-card>header p { margin:0; color:var(--muted); font-size:10px; }.module-config-card>header code { font-size:8px; }.module-brand-preview { display:grid; place-items:center; width:150px; height:76px; overflow:hidden; border-radius:11px; color:var(--brand-color); background:var(--navy-900); }.module-brand-preview>img { max-width:78%; max-height:54px; object-fit:contain; }.module-brand-preview>b { font-size:24px; letter-spacing:.08em; }.module-brand-preview .refrisizing-card-logo b { color:#fff; font-size:13px; }.module-brand-preview .refrisizing-card-logo svg { color:var(--brand-color); }.nexus-wordmark { color:#fff; letter-spacing:.2em; }.module-config-sections { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }.module-config-sections details+details { border-left:1px solid var(--line); }.module-config-sections summary { display:flex; justify-content:space-between; gap:10px; padding:13px 17px; cursor:pointer; color:var(--navy-800); font-size:10px; font-weight:850; }.module-config-sections summary small { max-width:65%; overflow:hidden; color:var(--muted); font-weight:500; text-overflow:ellipsis; white-space:nowrap; }.module-config-sections form { padding:4px 17px 18px; }.compact-catalog .catalog-card { min-height:150px; }

.user-profile-grid { display:grid; grid-template-columns:minmax(0,1fr) 315px; gap:18px; align-items:start; }.user-profile-primary,.user-profile-security { display:grid; gap:18px; }.user-profile-security { position:sticky; top:88px; }.profile-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }.profile-form-grid label { display:grid; gap:5px; color:var(--navy-900); font-size:10px; font-weight:750; }.profile-form-grid .wide { grid-column:1/-1; }.profile-form-grid button { justify-self:start; }.role-checklist { display:grid; grid-template-columns:1fr 1fr; gap:9px; }.role-checklist form { margin:0; }.role-check { width:100%; height:100%; display:grid; grid-template-columns:24px 1fr auto; gap:10px; align-items:center; padding:13px; border:1px solid var(--line); border-radius:11px; color:var(--ink); background:#fff; text-align:left; cursor:pointer; }.role-check:hover { border-color:#9bb7c6; }.role-check>i { display:grid; place-items:center; width:22px; height:22px; border:1px solid #b8c8d0; border-radius:6px; color:#fff; font-style:normal; }.role-check.checked>i { border-color:var(--navy-900); background:var(--navy-900); }.role-check span { display:grid; gap:3px; }.role-check strong { font-size:10.5px; }.role-check small { color:var(--muted); font-size:8px; line-height:1.4; }.role-check em { color:#876d28; font-size:7px; font-style:normal; text-transform:uppercase; }.role-check.protected { background:#fffaf0; }.role-check:disabled { opacity:.58; cursor:not-allowed; }.organization-summary { display:grid; grid-template-columns:1.3fr .7fr; gap:12px; }.organization-summary>div { padding:15px; border:1px solid var(--line); border-radius:11px; background:var(--canvas); }.organization-summary>div>small { display:block; color:var(--muted); font-size:8px; font-weight:800; text-transform:uppercase; }.organization-summary>div>strong { display:block; margin-top:10px; font-size:22px; }.organization-summary p { color:var(--muted); font-size:9px; }.organization-summary a { color:var(--navy-800); font-size:9px; font-weight:800; text-decoration:none; }
.audit-dialog { width:min(900px,calc(100% - 28px)); }.audit-toolbar { display:grid; grid-template-columns:240px 1fr; gap:10px; }.audit-toolbar>[data-audit-sources] { display:flex; flex-wrap:wrap; gap:5px; }.source-chip { display:flex; gap:5px; align-items:center; padding:7px 10px; border:1px solid var(--line); border-radius:20px; color:var(--muted); background:#fff; font-size:9px; font-weight:800; cursor:pointer; }.source-chip.active { border-color:var(--navy-900); color:#fff; background:var(--navy-900); }.source-chip small { font-size:7px; opacity:.72; }.source-chip.status-indisponivel { border-color:#e5bbc0; }.audit-status { color:var(--muted); font-size:9px; }.audit-status.error { color:var(--red); }.audit-timeline { max-height:52vh; overflow:auto; }.audit-timeline article { display:grid; grid-template-columns:10px 1fr; gap:12px; padding:12px 4px; border-bottom:1px solid var(--line); }.audit-dot { width:8px; height:8px; margin-top:4px; border:2px solid #fff; border-radius:50%; background:#3d89ae; box-shadow:0 0 0 2px #c9dce5; }.audit-timeline article>div { display:grid; gap:4px; }.audit-timeline header { display:flex; justify-content:flex-start; align-items:center; gap:8px; }.audit-timeline header strong { font-size:10.5px; }.audit-timeline header em { padding:3px 6px; border-radius:10px; color:var(--steel-600); background:var(--steel-100); font-size:7px; font-style:normal; }.audit-timeline p { margin:0; color:var(--muted); font-size:9.5px; }.audit-timeline small { color:#8798a1; font-size:8px; }
@media (max-width:900px) { .permission-workbench,.user-profile-grid { grid-template-columns:1fr; }.permission-selector,.user-profile-security { position:static; }.permission-selector nav { max-height:240px; }.precedence-note { margin-left:0; }.module-config-sections { grid-template-columns:1fr; }.module-config-sections details+details { border-left:0; border-top:1px solid var(--line); }.role-checklist { grid-template-columns:1fr; } }
@media (max-width:650px) { .precedence-mini { display:none; }.config-actions { width:100%; flex-wrap:wrap; }.module-config-card>header { grid-template-columns:1fr; }.module-brand-preview { width:100%; }.permission-list article { grid-template-columns:1fr; }.permission-line-state { justify-content:space-between; }.tri { padding:6px 7px; }.dialog-grid,.profile-form-grid,.organization-summary,.audit-toolbar { grid-template-columns:1fr; }.dialog-grid .wide,.profile-form-grid .wide { grid-column:auto; }.editor-intro,.group-role-box { align-items:flex-start; flex-direction:column; }.person-hero { align-items:flex-start; }.person-hero-actions { align-items:flex-start; }.user-profile-security { position:static; } }
.brand-source { display:grid; gap:3px; padding:11px 12px; border:1px solid #dbe6eb; border-radius:9px; background:#f5f8fa; }
.brand-source span { color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.brand-source strong { color:var(--navy-800); font-size:10px; overflow-wrap:anywhere; }
.module-brand-preview .product-visual-nexus { display:grid; grid-template-columns:64px auto; align-items:center; }
.module-brand-preview .product-visual-nexus canvas { width:64px; height:64px; }
.module-brand-preview .product-visual-nexus b { color:#fff; font-size:11px; letter-spacing:.15em; }
.permission-editor { transition:opacity .15s ease; }
.permission-editor.is-loading { opacity:.45; pointer-events:none; }
.logout-link:hover { color: var(--navy-800); }


/* Aviso de privacidade (PORTAL-07) */
.aviso-privacidade h2 { margin-top: .5rem; }
.aviso-privacidade h3 { margin: 1.25rem 0 .35rem; font-size: 1rem; }
.aviso-privacidade ul { padding-left: 1.25rem; }
.aviso-rascunho { border: 2px dashed #b45309; background: #fef3c7; color: #78350f; padding: .75rem 1rem; border-radius: 8px; margin: .5rem 0 1rem; }
.aviso-registro { color: #475569; }
