:root{
  --brand-primary:#175E72;
  --brand-secondary:#55A6AD;
  --brand-accent:#046868;
  --brand-deep:#0B4453;
  --brand-navy:#111F3E;
  --brand-ink:#1E1E24;
  --brand-white:#FFFFFF;
  --surface:rgba(255,255,255,.82);
  --surface-strong:rgba(255,255,255,.92);
  --surface-soft:rgba(240,248,249,.82);
  --line:rgba(255,255,255,.4);
  --shadow:0 24px 70px rgba(17,31,62,.18);
  --shadow-soft:0 18px 50px rgba(17,31,62,.12);
  --folder-shadow:inset 0 1px 0 rgba(255,255,255,.26), 0 20px 40px rgba(17,31,62,.16);
  --radius-xl:34px;
  --radius-lg:24px;
  --radius-md:18px;
}

*{box-sizing:border-box}

html,body{
  margin:0;
  min-height:100%;
  font-family:"Manrope",system-ui,sans-serif;
  color:var(--brand-navy);
  background:
    radial-gradient(circle at top left, rgba(85,166,173,.28), transparent 24%),
    radial-gradient(circle at top right, rgba(4,104,104,.22), transparent 22%),
    linear-gradient(160deg, #eff8f9 0%, #ddecf0 45%, #d8e8ed 100%);
}

body{padding:22px}

body.analysis-modal-open{
  overflow:hidden;
}

button,input{
  font:inherit;
}

a{
  text-decoration:none;
}

.is-hidden{
  display:none !important;
}

.portal-app{
  max-width:1480px;
  margin:0 auto;
}

.login-screen,
.desktop-screen{
  min-height:calc(100vh - 44px);
}

.login-screen{
  display:grid;
  place-items:center;
}

.login-card{
  width:min(100%, 520px);
  padding:32px;
  border-radius:var(--radius-xl);
  background:var(--surface-strong);
  border:1px solid rgba(255,255,255,.64);
  box-shadow:var(--shadow);
  backdrop-filter:blur(18px);
}

.login-brand{
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:24px;
}

.login-logo{
  width:88px;
  height:88px;
  object-fit:contain;
}

.login-kicker,
.brand-kicker,
.panel-kicker{
  margin:0 0 8px;
  color:var(--brand-accent);
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.74rem;
  font-weight:800;
}

.login-brand h1,
.welcome-panel h1{
  margin:0;
  line-height:1.05;
}

.login-subtitle{
  margin:10px 0 0;
  color:var(--brand-deep);
  line-height:1.65;
}

.login-form{
  display:grid;
  gap:16px;
}

.field{
  display:grid;
  gap:8px;
}

.field span{
  font-size:.88rem;
  font-weight:700;
  color:var(--brand-deep);
}

.field input{
  width:100%;
  min-height:56px;
  padding:0 16px;
  border:none;
  border-radius:16px;
  background:rgba(255,255,255,.86);
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.08);
  outline:none;
}

.field input:focus{
  box-shadow:inset 0 0 0 2px rgba(4,104,104,.46);
}

.field select{
  width:100%;
  min-height:56px;
  padding:0 16px;
  border:none;
  border-radius:16px;
  background:rgba(255,255,255,.86);
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.08);
  outline:none;
}

.field select:focus{
  box-shadow:inset 0 0 0 2px rgba(4,104,104,.46);
}

.primary-btn,
.ghost-btn,
.folder-button,
.app-link,
.icon-close{
  border:none;
  cursor:pointer;
}

.primary-btn,
.ghost-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 18px;
  border-radius:999px;
  font-weight:800;
}

.primary-btn{
  color:var(--brand-white);
  background:linear-gradient(135deg, var(--brand-accent), var(--brand-primary));
  box-shadow:0 14px 30px rgba(4,104,104,.24);
}

.ghost-btn{
  color:var(--brand-navy);
  background:rgba(255,255,255,.7);
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.08);
}

.login-error{
  min-height:20px;
  margin:0;
  color:#a53b4f;
  font-size:.9rem;
  font-weight:700;
}

.login-demo{
  margin-top:22px;
  padding:18px;
  border-radius:18px;
  background:rgba(255,255,255,.62);
  color:var(--brand-deep);
}

.login-demo p{
  margin:0 0 10px;
  font-weight:700;
}

.login-demo ul{
  margin:0;
  padding-left:18px;
  line-height:1.8;
}

.desktop-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 22px;
  border-radius:28px;
  background:var(--surface);
  border:1px solid rgba(255,255,255,.56);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(18px);
}

.brand-block{
  display:flex;
  align-items:center;
  gap:16px;
}

.brand-logo{
  width:64px;
  height:64px;
  object-fit:contain;
}

.brand-block h2{
  margin:0;
}

.header-actions{
  display:flex;
  align-items:center;
  gap:12px;
}

.profile-chip{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
  padding:10px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.72);
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.06);
}

.profile-name{
  font-size:.95rem;
  font-weight:800;
}

.profile-role{
  color:var(--brand-deep);
  font-size:.78rem;
  font-weight:700;
}

.desktop-main{
  padding-top:22px;
}

.welcome-panel{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:20px;
  padding:28px;
  border-radius:30px;
  background:var(--surface);
  border:1px solid rgba(255,255,255,.56);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(18px);
}

.welcome-panel > *{
  min-width:0;
}

.panel-copy{
  max-width:760px;
  margin:14px 0 0;
  color:var(--brand-deep);
  line-height:1.75;
}

.security-note{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  flex:1 1 320px;
  gap:10px;
  padding:14px 16px;
  border-radius:18px;
  background:rgba(255,255,255,.74);
  white-space:normal;
  max-width:min(100%, 420px);
}

.security-note p{
  margin:0;
  font-size:.92rem;
  font-weight:700;
  line-height:1.5;
  overflow-wrap:anywhere;
}

.security-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:linear-gradient(180deg, var(--brand-accent), var(--brand-secondary));
  box-shadow:0 0 0 6px rgba(85,166,173,.18);
}

.folders-area{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,320px));
  gap:26px;
  padding-top:28px;
}

.folder-button{
  position:relative;
  padding:22px 22px 24px;
  border-radius:34px;
  text-align:left;
  border:1px solid rgba(255,255,255,.48);
  background:
    linear-gradient(180deg, rgba(255,255,255,.72), rgba(235,246,248,.9));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.72),
    0 30px 50px rgba(17,31,62,.14);
  backdrop-filter:blur(16px);
  min-height:280px;
  overflow:hidden;
  transition:transform .22s ease, box-shadow .22s ease;
}

.folder-button::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.74), transparent 26%),
    linear-gradient(180deg, rgba(255,255,255,.08), transparent 36%);
  pointer-events:none;
}

.folder-button::after{
  content:"";
  position:absolute;
  right:-34px;
  bottom:-46px;
  width:180px;
  height:180px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(85,166,173,.18), transparent 66%);
  pointer-events:none;
}

.folder-button:hover{
  transform:translateY(-4px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.78),
    0 34px 56px rgba(17,31,62,.18);
}

.folder-button[data-theme="graficos"]{
  background:
    linear-gradient(180deg, rgba(255,255,255,.78), rgba(232,244,248,.94));
}

.folder-button[data-theme="sistemas"]{
  background:
    linear-gradient(180deg, rgba(255,255,255,.78), rgba(234,247,244,.94));
}

.folder-button[data-theme="administracao"]{
  background:
    linear-gradient(180deg, rgba(255,255,255,.8), rgba(231,239,247,.95));
}

.folder-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  position:relative;
  z-index:1;
}

.folder-badge{
  padding:9px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.82);
  color:var(--brand-navy);
  font-size:.75rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.12em;
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.06);
}

.folder-icon{
  width:86px;
  height:64px;
  border-radius:20px 22px 26px 26px;
  background:linear-gradient(180deg, #ffe8a8 0%, #f6ca62 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.48),
    0 18px 28px rgba(174,132,31,.22);
  position:relative;
  overflow:hidden;
}

.folder-button[data-theme="sistemas"] .folder-icon{
  background:linear-gradient(180deg, #d6f0e9 0%, #9fd9ca 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.48),
    0 18px 28px rgba(23,94,114,.18);
}

.folder-button[data-theme="administracao"] .folder-icon{
  background:linear-gradient(180deg, #d8e3f6 0%, #aebfde 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.48),
    0 18px 28px rgba(17,31,62,.18);
}

.folder-tab{
  position:absolute;
  left:10px;
  top:0;
  width:34px;
  height:16px;
  border-radius:16px 16px 0 0;
  transform:translateY(-8px);
  background:rgba(255,255,255,.38);
}

.folder-shine{
  position:absolute;
  inset:0;
  background:
    linear-gradient(135deg, rgba(255,255,255,.42), transparent 38%),
    linear-gradient(180deg, rgba(255,255,255,.08), transparent 65%);
}

.folder-preview{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:20px;
  position:relative;
  z-index:1;
}

.preview-item{
  display:grid;
  place-items:center;
  height:128px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.54);
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(238,247,249,.94));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.68),
    0 16px 28px rgba(17,31,62,.08);
}

.preview-chart{
  background:linear-gradient(180deg, rgba(226,241,255,.98), rgba(211,233,249,.95));
}

.preview-document{
  background:linear-gradient(180deg, rgba(231,247,240,.98), rgba(214,238,229,.95));
}

.preview-wallet{
  background:linear-gradient(180deg, rgba(240,241,253,.98), rgba(224,229,247,.95));
}

.preview-people{
  background:linear-gradient(180deg, rgba(233,244,255,.98), rgba(219,233,247,.95));
}

.preview-item svg,
.app-tile-icon svg{
  width:34px;
  height:34px;
  fill:none;
  stroke:var(--brand-primary);
  stroke-width:2.4;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.folder-button h3{
  position:relative;
  z-index:1;
  margin:20px 0 8px;
  font-size:1.58rem;
  letter-spacing:-.02em;
}

.folder-button p{
  position:relative;
  z-index:1;
  margin:0;
  color:var(--brand-deep);
  line-height:1.55;
  font-size:1rem;
}

.folder-meta{
  position:relative;
  z-index:1;
  margin-top:18px;
  color:var(--brand-navy);
  font-size:.92rem;
  font-weight:800;
}

.folder-modal{
  position:fixed;
  inset:0;
  z-index:20;
}

.folder-backdrop{
  position:absolute;
  inset:0;
  background:rgba(17,31,62,.32);
  backdrop-filter:blur(12px);
}

.folder-sheet{
  position:relative;
  width:min(940px, calc(100% - 28px));
  margin:90px auto 0;
  padding:28px;
  border-radius:34px;
  background:
    linear-gradient(180deg, rgba(249,253,253,.96), rgba(236,247,248,.94));
  border:1px solid rgba(255,255,255,.58);
  box-shadow:var(--shadow);
}

.folder-sheet-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}

.folder-sheet-header h2{
  margin:0;
}

.icon-close{
  width:48px;
  height:48px;
  border-radius:50%;
  background:rgba(255,255,255,.78);
  color:var(--brand-navy);
  font-size:2rem;
  line-height:1;
}

.folder-icons-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:18px;
  padding-top:24px;
}

.app-link{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  padding:18px 16px;
  border-radius:28px;
  background:rgba(255,255,255,.5);
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.05);
  text-decoration:none;
  color:var(--brand-navy);
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}

.app-link:hover{
  background:rgba(255,255,255,.86);
  transform:translateY(-3px);
  box-shadow:
    inset 0 0 0 1px rgba(17,31,62,.05),
    0 16px 28px rgba(17,31,62,.10);
}

.app-tile-icon{
  width:102px;
  height:102px;
  border-radius:32px;
  display:grid;
  place-items:center;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(225,241,243,.9));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.8),
    0 18px 34px rgba(17,31,62,.12);
}

.app-link[data-icon="chart"] .app-tile-icon{
  background:linear-gradient(180deg, #e6f1ff, #d4e8fb);
}

.app-link[data-icon="document"] .app-tile-icon{
  background:linear-gradient(180deg, #e6f7ef, #d5eee3);
}

.app-link[data-icon="wallet"] .app-tile-icon{
  background:linear-gradient(180deg, #eeefff, #dbe0fa);
}

.app-link[data-icon="people"] .app-tile-icon{
  background:linear-gradient(180deg, #e7f2ff, #d4e6f8);
}

.app-link.is-disabled{
  opacity:.6;
  cursor:not-allowed;
}

.app-link.is-disabled .app-tile-icon{
  box-shadow:none;
}

.app-label{
  text-align:center;
}

.app-label strong{
  display:block;
  font-size:1.02rem;
  letter-spacing:-.01em;
}

.app-label span{
  display:block;
  margin-top:4px;
  color:var(--brand-deep);
  font-size:.84rem;
  line-height:1.45;
}

.executives-layout{
  display:grid;
  grid-template-columns:minmax(300px, 360px) minmax(0, 1fr);
  gap:22px;
  padding-top:28px;
}

.executives-sidebar,
.executives-main{
  display:grid;
  gap:22px;
  align-content:start;
}

.executives-card{
  padding:24px;
  border-radius:30px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(255,255,255,.58);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(18px);
}

.executives-card-head h3,
.executives-toolbar h3{
  margin:0;
  font-size:1.4rem;
}

.executives-copy{
  margin:12px 0 0;
  color:var(--brand-deep);
  line-height:1.7;
}

.executives-actions-column{
  display:grid;
  gap:12px;
  margin-top:18px;
}

.executives-meta{
  margin-top:16px;
  color:var(--brand-deep);
  font-size:.9rem;
  font-weight:700;
  line-height:1.6;
}

.executive-form{
  display:grid;
  gap:14px;
  margin-top:18px;
}

.executives-toolbar{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
}

.executives-toolbar-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.search-field{
  min-width:min(100%, 420px);
}

.search-field input{
  width:100%;
  min-height:54px;
  padding:0 16px;
  border:none;
  border-radius:18px;
  background:rgba(255,255,255,.9);
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.08);
  outline:none;
}

.executives-summary{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:18px;
}

.summary-pill{
  padding:10px 14px;
  border-radius:999px;
  background:rgba(230,244,247,.94);
  color:var(--brand-navy);
  font-size:.88rem;
  font-weight:800;
}

.executives-table-wrap{
  margin-top:18px;
}

.executives-table th:last-child,
.executives-table td:last-child{
  text-align:right;
}

.table-link{
  color:var(--brand-accent);
  font-weight:700;
}

.danger-btn{
  min-height:40px;
  padding:0 14px;
  border:none;
  border-radius:999px;
  background:#fce8ec;
  color:#9d2844;
  font-weight:800;
  cursor:pointer;
}

.executives-empty{
  text-align:center;
  color:var(--brand-deep);
  font-weight:700;
  padding:28px 16px !important;
}

.executives-feedback{
  min-height:24px;
  margin:16px 0 0;
  font-size:.92rem;
  font-weight:800;
}

.executives-feedback[data-type="error"]{
  color:#a53b4f;
}

.executives-feedback[data-type="success"]{
  color:#1f6b4d;
}

.executives-board{
  padding-top:28px;
}

.executives-card-main{
  padding:26px;
}

.executives-toolbar-main{
  align-items:center;
}

.executives-subbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:18px;
  padding:16px 0 18px;
  border-bottom:1px solid rgba(17,31,62,.08);
}

.executives-list-head{
  display:grid;
  grid-template-columns:1.2fr 1fr 1.6fr .85fr 64px;
  gap:14px;
  padding:18px 14px 12px;
  color:var(--brand-deep);
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.executives-head-action{
  text-align:center;
}

.executives-list{
  display:grid;
  gap:12px;
  margin-top:4px;
}

.executive-row{
  display:grid;
  grid-template-columns:1.2fr 1fr 1.6fr .85fr 64px;
  gap:14px;
  align-items:center;
  padding:14px;
  border-radius:22px;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(241,248,249,.96));
  border:1px solid rgba(17,31,62,.06);
  box-shadow:0 12px 24px rgba(17,31,62,.05);
}

.executive-row-readonly{
  grid-template-columns:1.2fr 1fr 1.6fr .85fr;
}

.executives-readonly .executives-list-head{
  grid-template-columns:1.2fr 1fr 1.6fr .85fr;
}

.executive-row-empty{
  display:block;
  text-align:center;
  color:var(--brand-deep);
  font-weight:700;
  padding:24px;
}

.executive-cell{
  min-width:0;
}

.executive-cell strong,
.executive-cell a{
  display:block;
  color:var(--brand-navy);
  font-size:.98rem;
  line-height:1.45;
  word-break:break-word;
}

.executive-cell a{
  color:var(--brand-accent);
  font-weight:800;
}

.executive-cell-label{
  display:none;
  margin-bottom:6px;
  color:var(--brand-deep);
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.executive-cell-action{
  display:flex;
  justify-content:center;
}

.remove-icon-btn{
  width:38px;
  height:38px;
  border:none;
  border-radius:50%;
  background:#fbe7ec;
  color:#ab3450;
  font-size:1.5rem;
  line-height:1;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(171,52,80,.08);
}

.remove-icon-btn:hover{
  background:#f8d8df;
}

.executive-modal{
  position:fixed;
  inset:0;
  z-index:30;
}

.executive-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(17,31,62,.24);
  backdrop-filter:blur(10px);
}

.executive-modal-card{
  position:relative;
  width:min(100%, 560px);
  margin:90px auto 0;
  padding:26px;
  border-radius:30px;
  background:rgba(248,252,252,.96);
  border:1px solid rgba(255,255,255,.7);
  box-shadow:0 30px 70px rgba(17,31,62,.18);
}

.executive-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:18px;
}

.executive-modal-head h3{
  margin:0;
  font-size:1.5rem;
}

.executive-modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:12px;
  margin-top:6px;
}

.remuneracao-shell{
  display:grid;
  gap:22px;
  padding-top:28px;
}

.remuneracao-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.tab-pill{
  min-height:52px;
  padding:0 20px;
  border:none;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:var(--brand-navy);
  font-weight:800;
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.08);
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.tab-pill:hover{
  transform:translateY(-2px);
}

.tab-pill.is-active{
  color:var(--brand-white);
  background:linear-gradient(135deg, var(--brand-accent), var(--brand-primary));
  box-shadow:0 16px 28px rgba(4,104,104,.22);
}

.rem-grid,
.rem-detail-grid{
  display:grid;
  gap:22px;
}

.rem-detail-grid{
  grid-template-columns:1fr;
}

.rem-detail-grid-single{
  position:fixed;
  inset:0;
  z-index:40;
  display:grid;
  place-items:center;
  padding:18px;
  max-width:none;
  margin:0;
  background:
    radial-gradient(circle at 50% 42%, rgba(85,166,173,.22), transparent 36%),
    rgba(17,31,62,.28);
  backdrop-filter:blur(14px);
  opacity:0;
  pointer-events:none;
  transform:scale(.98);
  transition:opacity .22s ease, transform .22s ease;
}

.rem-detail-grid-single.is-open{
  opacity:1;
  pointer-events:auto;
  transform:scale(1);
}

.rem-card{
  padding:26px;
  border-radius:30px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(255,255,255,.58);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(18px);
}

.rem-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:20px;
}

.rem-card-head h3,
.rem-placeholder-card h3{
  margin:0;
  font-size:1.45rem;
}

.rem-card-map-full{
  overflow:hidden;
}

.rem-region-highlight{
  display:grid;
  gap:8px;
  padding:18px;
  border-radius:24px;
  background:linear-gradient(180deg, rgba(230,244,247,.94), rgba(215,236,240,.9));
  color:var(--brand-navy);
}

.rem-region-highlight strong{
  font-size:1.1rem;
}

.rem-region-highlight span{
  color:var(--brand-deep);
  line-height:1.6;
}

.rem-map-stage{
  position:relative;
}

.rem-region-floating{
  position:absolute;
  left:20px;
  top:20px;
  z-index:2;
  width:min(360px, calc(100% - 40px));
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(18px);
  box-shadow:0 24px 56px rgba(17,31,62,.12);
}

.rem-map-panel{
  display:grid;
  place-items:center;
  min-height:420px;
  padding:18px;
  border-radius:28px;
  background:
    radial-gradient(circle at top left, rgba(85,166,173,.24), transparent 28%),
    radial-gradient(circle at bottom right, rgba(4,104,104,.14), transparent 26%),
    linear-gradient(180deg, rgba(255,255,255,.88), rgba(232,244,247,.92));
  position:relative;
  overflow:hidden;
}

.rem-map-panel-large{
  min-height:820px;
}

.map-image-wrap{
  position:relative;
  width:min(100%, 860px);
  margin:0 auto;
  isolation:isolate;
}

.brasil-state-map{
  display:block;
  width:100%;
  height:auto;
  max-height:760px;
  filter:drop-shadow(0 18px 40px rgba(17,31,62,.12));
  outline:none;
}

.state-shape{
  fill:rgba(203,213,225,.68);
  stroke:rgba(255,255,255,.84);
  stroke-width:1.7;
  stroke-linejoin:round;
  cursor:pointer;
  pointer-events:all;
  transition:fill .22s ease, stroke .22s ease, filter .22s ease, opacity .22s ease, transform .22s ease;
  transform-origin:center;
  transform-box:fill-box;
  outline:none;
  -webkit-tap-highlight-color:transparent;
}

.state-shape:focus,
.state-shape:focus-visible{
  outline:none;
}

.state-shape:not(.is-empty){
  fill:#55a6ad;
  stroke:#155f75;
  stroke-width:2.1;
}

.state-shape:hover{
  fill:#6bc2c6;
  stroke:rgba(255,255,255,.92);
  filter:drop-shadow(0 10px 24px rgba(23,94,114,.18));
}

.state-shape.is-active{
  fill:#046868;
  stroke:rgba(255,255,255,.9);
  stroke-width:3;
  filter:drop-shadow(0 16px 30px rgba(23,94,114,.22));
}

.state-shape.is-empty{
  fill:rgba(203,213,225,.72);
  stroke:rgba(148,163,184,.72);
  opacity:.72;
}

.state-shape.is-disabled{
  cursor:default;
}

.state-shape.is-disabled:hover{
  fill:rgba(203,213,225,.72);
  stroke:rgba(148,163,184,.72);
  filter:none;
}

.state-shape.is-pressing{
  animation:regionPulse .4s ease;
}

.region-hitbox{
  position:absolute;
  border:none;
  background:rgba(255,255,255,.02);
  cursor:pointer;
  outline:none;
  border-radius:28px;
  transition:transform .24s ease, box-shadow .24s ease, background .24s ease, opacity .24s ease;
  z-index:2;
  pointer-events:auto;
  appearance:none;
  -webkit-appearance:none;
}

.region-hitbox:hover{
  transform:scale(1.02);
  background:rgba(85,166,173,.28);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.55);
}

.region-hitbox.is-active{
  background:rgba(4,104,104,.12);
  box-shadow:0 0 0 3px rgba(255,255,255,.8), 0 0 0 10px rgba(23,94,114,.22), 0 18px 45px rgba(23,94,114,.24);
}

.region-hitbox.is-empty{
  background:rgba(148,163,184,.10);
  opacity:.48;
}

.region-hitbox.is-disabled{
  cursor:default;
}

.region-hitbox.is-disabled:hover{
  transform:none;
  background:rgba(148,163,184,.10);
}

.region-hitbox.is-pressing{
  animation:regionPulse .4s ease;
}

.shopping-popup{
  position:absolute;
  width:320px;
  left:20px;
  top:150px;
  padding:18px;
  border-radius:26px;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(255,255,255,.62);
  box-shadow:0 30px 70px rgba(17,31,62,.18);
  backdrop-filter:blur(24px);
  z-index:3;
  transform:translateY(10px) scale(.96);
  opacity:0;
  transform-origin:center;
  transition:transform .22s ease, opacity .22s ease;
  pointer-events:none;
}

.shopping-popup.is-open{
  transform:translateY(0) scale(1);
  opacity:1;
  pointer-events:auto;
}

.shopping-popup-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.shopping-popup-head h4{
  margin:0;
  font-size:1.12rem;
}

.shopping-popup-close{
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgba(255,255,255,.8);
  color:var(--brand-navy);
  font-size:1.8rem;
}

.shopping-popup-grid{
  display:grid;
  gap:10px;
  max-height:320px;
  overflow:auto;
  padding-right:4px;
}

.shopping-chip{
  display:grid;
  gap:6px;
  padding:18px;
  border:none;
  border-radius:20px;
  text-align:left;
  background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(236,246,248,.94));
  color:var(--brand-navy);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.76), 0 14px 24px rgba(17,31,62,.08);
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease;
  animation:chipRise .28s ease both;
}

.shopping-chip:hover{
  transform:translateY(-3px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82), 0 18px 30px rgba(17,31,62,.12);
}

.shopping-chip strong{
  font-size:1rem;
}

.shopping-chip span{
  color:var(--brand-deep);
  font-size:.9rem;
}

.shopping-chip.is-active{
  background:linear-gradient(135deg, rgba(4,104,104,.96), rgba(23,94,114,.92));
  color:var(--brand-white);
}

.shopping-chip.is-active span{
  color:rgba(255,255,255,.82);
}

.rem-helper{
  margin:18px 0 0;
  color:var(--brand-deep);
  line-height:1.65;
  font-size:.95rem;
}

.shopping-overview{
  margin-top:24px;
}

.rem-focus-card{
  background:rgba(255,255,255,.64);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 32px 80px rgba(17,31,62,.14);
  backdrop-filter:blur(28px);
  width:min(100%, 1280px);
  max-height:calc(100vh - 36px);
  overflow:auto;
}

.analysis-close{
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgba(255,255,255,.8);
  color:var(--brand-navy);
  font-size:1.8rem;
  flex:0 0 auto;
}

@keyframes regionPulse{
  0%{transform:scale(1)}
  45%{transform:scale(1.045)}
  100%{transform:scale(1)}
}

@keyframes chipRise{
  from{
    opacity:0;
    transform:translateY(10px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

.overview-empty,
.band-empty,
.empty{
  padding:18px;
  border-radius:22px;
  background:rgba(239,248,249,.88);
  color:var(--brand-deep);
  line-height:1.65;
}

.overview-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:18px;
}

.overview-grid-compact{
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
}

.overview-item{
  display:grid;
  gap:8px;
  padding:18px;
  border-radius:22px;
  background:rgba(255,255,255,.7);
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.06);
}

.overview-item span{
  color:var(--brand-deep);
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:800;
}

.overview-item strong{
  font-size:1rem;
  line-height:1.45;
}

.overview-item.is-hidden,
.salary-average-card.is-hidden{
  display:none;
}

.band-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  margin-top:24px;
  margin-bottom:36px;
}

.salary-average-panel{
  display:grid;
  gap:16px;
  margin:28px 0 6px;
  padding:18px;
  border-radius:26px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.78), rgba(232,244,247,.72)),
    radial-gradient(circle at top left, rgba(85,166,173,.18), transparent 42%);
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.06);
}

.salary-average-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
}

.salary-average-head span,
.salary-average-card span{
  display:block;
  color:var(--brand-deep);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.78rem;
  font-weight:800;
}

.salary-average-head strong{
  display:block;
  margin-top:4px;
  color:var(--brand-navy);
  font-size:1.08rem;
}

.salary-average-head small,
.salary-average-card small{
  color:var(--brand-deep);
  font-weight:700;
}

.salary-average-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.salary-average-card{
  display:grid;
  gap:8px;
  padding:16px;
  border-radius:20px;
  background:rgba(255,255,255,.78);
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.06);
}

.salary-average-card strong{
  color:var(--brand-navy);
  font-size:1.25rem;
}

.salary-average-card.is-active{
  background:linear-gradient(180deg, rgba(212,239,231,.96), rgba(191,229,218,.92));
  box-shadow:inset 0 0 0 1px rgba(4,104,104,.14), 0 12px 28px rgba(4,104,104,.10);
}

.band-card{
  display:grid;
  gap:8px;
  padding:20px;
  border-radius:24px;
  background:rgba(255,255,255,.74);
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.06);
}

.band-card span{
  color:var(--brand-deep);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.78rem;
  font-weight:800;
}

.band-card strong{
  font-size:1.6rem;
}

.band-card small{
  color:var(--brand-deep);
  line-height:1.55;
}

.band-card-ideal{
  background:linear-gradient(180deg, rgba(227,244,238,.95), rgba(208,236,226,.92));
}

.range-track{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:14px;
  align-items:center;
  margin-top:10px;
}

.range-stop{
  font-size:.85rem;
  font-weight:800;
  color:var(--brand-deep);
}

.range-line{
  position:relative;
  height:14px;
  border-radius:999px;
  background:rgba(17,31,62,.08);
  overflow:visible;
}

.range-fill{
  position:absolute;
  inset:0;
  border-radius:999px;
  background:linear-gradient(90deg, #8bc3c7 0%, #55a6ad 50%, #046868 100%);
}

.range-marker{
  position:absolute;
  left:50%;
  top:-34px;
  transform:translateX(-50%);
  padding:8px 12px;
  border-radius:999px;
  background:var(--brand-navy);
  color:var(--brand-white);
  font-size:.8rem;
  font-weight:800;
  white-space:nowrap;
}

.range-marker::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-8px;
  width:10px;
  height:10px;
  background:var(--brand-navy);
  transform:translateX(-50%) rotate(45deg);
}

.compare-shell{
  display:grid;
  gap:22px;
}

.compare-filters{
  display:grid;
  gap:18px;
}

.compare-field{
  display:grid;
  gap:8px;
}

.compare-field-wide select,
.compare-field select{
  min-height:56px;
  border:none;
  border-radius:20px;
  background:rgba(255,255,255,.84);
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.08);
  padding:0 16px;
  color:var(--brand-navy);
  font-weight:700;
}

.compare-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:34px;
  align-items:start;
}

.compare-panel{
  display:grid;
  gap:18px;
}

.compare-results{
  display:grid;
  gap:18px;
}

.compare-result-card{
  display:grid;
  gap:16px;
  padding:20px;
  border-radius:26px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(240,247,248,.92));
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.06), 0 16px 30px rgba(17,31,62,.05);
}

.compare-result-head{
  display:grid;
  gap:6px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(17,31,62,.08);
}

.compare-result-head strong{
  color:var(--brand-navy);
  font-size:1.05rem;
}

.compare-result-head span{
  color:var(--brand-deep);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.76rem;
  font-weight:800;
}

.compare-result-list{
  display:grid;
  gap:12px;
}

.compare-result-item{
  display:grid;
  gap:6px;
  padding:14px 16px;
  border-radius:18px;
  background:rgba(255,255,255,.82);
  box-shadow:inset 0 0 0 1px rgba(17,31,62,.05);
}

.compare-result-item span{
  color:var(--brand-deep);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.74rem;
  font-weight:800;
}

.compare-result-item strong{
  color:var(--brand-navy);
  line-height:1.45;
}

.compare-empty{
  padding:20px;
  border-radius:22px;
  background:rgba(239,248,249,.88);
  color:var(--brand-deep);
  line-height:1.65;
  font-weight:700;
}

.rem-placeholder-card p{
  margin:0;
  color:var(--brand-deep);
  line-height:1.7;
}

@media (max-width:880px){
  body{padding:14px}

  .desktop-header,
  .welcome-panel{
    flex-direction:column;
    align-items:flex-start;
  }

  .header-actions{
    width:100%;
    justify-content:space-between;
  }

  .folder-sheet{
    margin-top:32px;
  }

  .executives-layout{
    grid-template-columns:1fr;
  }

  .executives-toolbar{
    flex-direction:column;
    align-items:flex-start;
  }

  .rem-grid,
  .rem-detail-grid,
  .rem-map-layout{
    grid-template-columns:1fr;
  }

  .rem-map-panel{
    min-height:0;
  }

  .rem-map-panel-large{
    min-height:560px;
    padding-top:120px;
  }

  .rem-region-floating{
    position:relative;
    left:auto;
    top:auto;
    width:100%;
    margin-bottom:18px;
  }

  .shopping-popup{
    left:18px !important;
    right:18px;
    top:146px !important;
    bottom:auto;
    width:auto;
  }

  .band-cards{
    grid-template-columns:1fr;
    gap:16px;
  }

  .compare-columns{
    grid-template-columns:1fr;
    gap:22px;
  }

  .salary-average-head,
  .salary-average-grid{
    display:grid;
    grid-template-columns:1fr;
  }

  .search-field{
    min-width:0;
    width:100%;
  }

  .executives-subbar{
    flex-direction:column;
    align-items:flex-start;
  }

  .executives-list-head{
    display:none;
  }

  .executive-row{
    grid-template-columns:1fr;
  }

  .executive-cell-label{
    display:block;
  }

  .executive-cell-action{
    justify-content:flex-end;
  }

  .executive-modal-card{
    width:calc(100% - 20px);
    margin-top:28px;
    padding:20px;
  }
}

@media (max-width:580px){
  .login-card,
  .folder-sheet{
    padding:20px;
  }

  .login-brand{
    flex-direction:column;
    align-items:flex-start;
  }

  .remuneracao-tabs{
    display:grid;
  }

  .folder-icons-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
