:root{
  --navy:#153f72;
  --navy-2:#1d5a8d;
  --teal:#1f909f;
  --teal-2:#2eb9be;
  --bg:#f5f7fb;
  --card:#ffffff;
  --line:#e6edf5;
  --text:#17365d;
  --muted:#6f84a2;
  --shadow:0 14px 30px rgba(15,50,90,.06);
  --radius:24px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
body{min-height:100vh}
input,select,textarea{
  width:100%;
  padding:15px 16px;
  border-radius:14px;
  border:1px solid #d8e3ef;
  background:#fff;
  outline:none;
}
input:focus,select:focus,textarea:focus{
  border-color:#99cfda;
  box-shadow:0 0 0 4px rgba(46,185,190,.10);
}
textarea{
  min-height:120px;
  resize:vertical;
}

.page-shell{min-height:100vh;padding:24px;background:linear-gradient(135deg,#f5f8fd 0%,#eef4fb 100%)}
.auth-wrap{min-height:calc(100vh - 48px);display:grid;place-items:center}
.auth-card{
  width:min(100%,480px);
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  border-radius:28px;
  padding:34px;
}
.auth-logo{display:block;width:170px;margin:0 auto 14px}
.title{font-size:2rem;text-align:center;margin:0;color:var(--navy)}
.subtitle{text-align:center;color:var(--muted);margin:8px 0 28px}
.form-grid{display:grid;gap:18px}
.form-row-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.field label{display:block;margin-bottom:8px;font-weight:700;color:#234b79}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 18px;border-radius:14px;border:0;cursor:pointer;
  color:#fff;font-weight:700;transition:.2s ease
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--teal),var(--teal-2))}
.btn-secondary{background:#7f90ab}
.btn-ghost{background:#f4f8fc;border:1px solid var(--line);color:var(--text)}
.compact-btn{padding:10px 14px;font-size:.9rem}
.btn-link{padding:0;border:0;background:none;color:var(--teal);font-weight:700;cursor:pointer}
.auth-footer{text-align:center;margin-top:18px;color:var(--muted)}
.demo-box{margin-top:18px;padding:16px;border-radius:18px;background:#f8fbfe;border:1px solid var(--line)}
.soft-warning{background:#fffdf5}
.helper-text{margin-top:14px;color:var(--muted)}
.flash{padding:14px 16px;border-radius:14px;margin-bottom:18px;font-weight:700}
.flash-success{background:#eaf9ef;color:#1f7c45}
.flash-error{background:#fff0f0;color:#b23333}
.inline-errors{display:grid;gap:8px;margin-bottom:14px}
.field-error{padding:10px 12px;border-radius:12px;background:#fff1f1;color:#b63131;border:1px solid #ffd4d4}

.app-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:220px 1fr;
  background:var(--bg);
}
.sidebar{
  background:linear-gradient(180deg,#123f71 0%, #1b588b 45%, #2db1b6 100%);
  color:#fff;
  padding:0 18px 24px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.sidebar-brand{
  background:#133d6f;
  padding:22px 16px 18px;
  margin:0 -18px 14px;
  display:flex;
  justify-content:center;
}
.sidebar-brand-logo{
  width:128px;
  max-width:100%;
  object-fit:contain;
}
.profile-panel{
  padding:14px;
  border-radius:22px;
  background:rgba(255,255,255,.10);
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.profile-avatar{
  width:40px;height:40px;border-radius:50%;
  background:rgba(255,255,255,.18);
  display:grid;place-items:center;font-weight:800
}
.profile-meta strong{display:block;font-size:1rem}
.profile-meta span{display:block;color:#e1f0ff;line-height:1.35;font-size:.95rem}
.profile-meta small{
  display:inline-block;
  margin-top:8px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(46,185,190,.25);
  color:#fff;
  font-weight:700;
  font-size:.82rem;
}
.sidebar-nav{display:grid;gap:8px;margin-top:18px}
.nav-link{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;
  border-radius:14px;
  color:#ebf8ff;
  transition:.2s ease;
}
.nav-link:hover{background:rgba(255,255,255,.10)}
.nav-link.active{
  background:linear-gradient(135deg,#26b0b6,#2397a7);
  box-shadow:0 10px 18px rgba(8,49,72,.14);
}
.nav-icon{width:24px;text-align:center}
.sidebar-bottom{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.16);
}
.logout-link{
  display:block;
  text-align:left;
  padding:12px 10px;
  border-radius:14px;
  color:#eaf8ff;
}

.content-area{padding:0 0 24px}
.top-header{
  background:#fff;
  border-bottom:1px solid var(--line);
  padding:16px 28px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.header-left{display:flex;align-items:center;gap:22px}
.menu-icon{font-size:22px;color:var(--navy);cursor:pointer}
.header-logo{height:96px;max-width:460px;object-fit:contain}
.header-right{display:flex;align-items:center;gap:12px}
.header-pill{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px 16px;
  min-width:110px;
}
.header-pill span{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
.header-pill strong{display:block;font-size:14px;color:var(--text)}
.header-pill-wide{min-width:215px}
.notification-bell{
  width:42px;height:42px;border-radius:12px;
  display:grid;place-items:center;
  color:var(--navy);
  font-size:19px;
}

.page-intro{
  padding:22px 32px 8px;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
}
.page-intro h1{
  margin:0 0 8px;
  font-size:1.55rem;
  color:var(--navy);
}
.page-intro p{
  margin:0;
  color:var(--muted);
  font-size:1.02rem;
}
.page-intro-date{
  text-align:right;
  color:var(--muted);
  font-size:.95rem;
}
.page-intro-date strong{
  display:block;
  color:#607897;
  margin-bottom:6px;
}

.stats-grid{
  padding:12px 32px 0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin-bottom:18px;
}
.stats-card{
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  border-radius:20px;
  padding:24px 18px;
  display:flex;
  align-items:center;
  gap:16px;
}
.stats-icon-bubble{
  width:56px;height:56px;border-radius:50%;
  background:#edf4ff;
  display:grid;place-items:center;
  font-size:1.7rem;
  flex-shrink:0;
}
.stats-content{display:grid;gap:6px}
.stats-value{
  font-size:1.05rem;
  font-weight:800;
  color:var(--navy);
}
.stats-label{
  font-size:.96rem;
  color:#5f7694;
  font-weight:700;
}

.panel-grid{
  padding:0 32px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}
.panel-card,.table-card{
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  border-radius:18px;
  overflow:hidden;
}
.panel-header{
  padding:20px 24px 14px;
  border-bottom:1px solid #edf2f7;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
}
.section-title{
  margin:0;
  font-size:1rem;
  font-weight:800;
  color:var(--navy);
}
.muted{color:var(--muted)}
.section-body{padding:20px 24px}
.stack{display:grid;gap:16px}
.item{
  padding:18px;
  border:1px solid #eaf0f7;
  background:#fbfdff;
  border-radius:16px;
}
.item-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.item-title{margin:0 0 6px;color:#203e64}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{padding:14px 8px;border-bottom:1px solid #edf2f7;text-align:left;vertical-align:top}
th{color:#67809f;font-size:.92rem}
tr:last-child td{border-bottom:0}
.text-right{text-align:right}
.badge{
  display:inline-flex;align-items:center;padding:7px 12px;
  border-radius:999px;font-size:.8rem;font-weight:800
}
.badge-green{background:#e6f7eb;color:#187744}
.badge-yellow{background:#fff5d9;color:#9b6b00}
.badge-red{background:#ffe7e7;color:#b22d2d}
.badge-blue{background:#e7f0ff;color:#255fd4}
.badge-purple{background:#f0e9ff;color:#6d39d1}
.quick-grid{
  padding:0 32px;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;margin-top:18px
}
.quick-card{
  padding:20px;border-radius:18px;background:#fff;border:1px solid var(--line);
  box-shadow:var(--shadow);text-align:center
}
.quick-card span{display:block;font-size:1.8rem;margin-bottom:10px}
.quick-card strong{display:block;color:var(--navy)}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.detail-grid div{
  padding:14px 16px;border-radius:16px;background:#f9fbfe;border:1px solid #eaf0f7;
  display:grid;gap:6px
}
.tag-list{display:flex;gap:10px;flex-wrap:wrap}
.tag{padding:10px 14px;border-radius:999px;background:#eef7fb;color:var(--navy);font-weight:700}
.highlight-box{padding:16px 18px;border-radius:16px;background:#f8fcff;border:1px solid #e6eef8}
.highlight-box strong{display:block;margin-bottom:6px;color:var(--navy)}
.highlight-box p{margin:0;color:#5f7694}
.inline-form{display:inline-flex;gap:8px;flex-wrap:wrap;align-items:center}
.inline-form select,.inline-form input{padding:10px 12px;border-radius:12px}
.checkbox-row{display:flex;align-items:center;gap:10px;color:#234b79;font-weight:700}
.users-compact-table{table-layout:fixed}
.users-compact-table th:nth-child(1),.users-compact-table td:nth-child(1){width:28%}
.users-compact-table th:nth-child(2),.users-compact-table td:nth-child(2){width:18%}
.users-compact-table th:nth-child(3),.users-compact-table td:nth-child(3){width:18%}
.users-compact-table th:nth-child(4),.users-compact-table td:nth-child(4){width:36%}
.users-actions-stack{display:grid;gap:10px}
.details-trigger{width:100%}

.modal-backdrop{
  position:fixed;inset:0;background:rgba(15,23,42,.32);
  display:none;align-items:flex-end;justify-content:center;padding:0;z-index:9999;overflow-y:auto
}
.modal-backdrop.is-open{display:flex}
.modal-card{
  width:min(920px,100%);max-width:920px;max-height:88vh;display:flex;flex-direction:column;
  background:rgba(255,255,255,.98);border:1px solid #e2e8f0;border-radius:28px 28px 0 0;
  box-shadow:0 -12px 40px rgba(15,23,42,.18);margin:0 auto;animation:sheetUp .25s ease
}
.modal-card::before{
  content:"";width:64px;height:6px;border-radius:999px;background:#cbd5e1;display:block;margin:14px auto 0
}
.modal-header,.modal-footer{
  padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(255,255,255,.98)
}
.modal-header{position:sticky;top:0;border-bottom:1px solid var(--line);z-index:2}
.modal-footer{position:sticky;bottom:0;border-top:1px solid var(--line);z-index:2}
.modal-body,.modal-body-scroll{
  padding:22px;max-height:calc(88vh - 140px);overflow-y:auto;overflow-x:hidden
}
.modal-close{
  width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1.6rem
}
@keyframes sheetUp{
  from{transform:translateY(30px);opacity:.92}
  to{transform:translateY(0);opacity:1}
}

@media (max-width:1200px){
  .stats-grid,.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1024px){
  .app-shell{grid-template-columns:1fr}
  .content-area{padding:0 0 24px}
}
@media (max-width:720px){
  .page-shell{padding:14px}
  .form-row-2,.panel-grid,.quick-grid,.detail-grid,.stats-grid{grid-template-columns:1fr}
  .top-header,.page-intro{padding-left:16px;padding-right:16px}
  .panel-grid,.stats-grid,.quick-grid{padding-left:16px;padding-right:16px}
  .top-header,.page-intro{flex-direction:column;align-items:flex-start}
  .header-right{width:100%;flex-wrap:wrap}
  .header-pill,.header-pill-wide{min-width:unset;width:100%}
  .users-compact-table,.users-compact-table thead,.users-compact-table tbody,.users-compact-table tr,.users-compact-table th,.users-compact-table td{display:block;width:100%}
  .users-compact-table thead{display:none}
  .users-compact-table tr{padding:14px 0;border-bottom:1px solid var(--line)}
  .users-compact-table td{border-bottom:0;padding:8px 0}
}


/* Ajuste final: logo comprida maior e ícones corporativos */
.header-logo{
  height:104px !important;
  max-width:520px !important;
  object-fit:contain !important;
}
.top-header{
  min-height:124px !important;
  padding-top:18px !important;
  padding-bottom:18px !important;
}
.header-left{
  gap:34px !important;
}
.menu-icon{
  font-size:28px !important;
  font-weight:700;
}
.nav-icon{
  width:28px !important;
  height:28px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 28px !important;
}
.nav-icon svg{
  width:23px !important;
  height:23px !important;
  fill:#ffffff !important;
  display:block !important;
}
.stats-icon-bubble.svg-icon svg{
  width:30px !important;
  height:30px !important;
  fill:var(--navy) !important;
  display:block !important;
}
.stats-icon-bubble.svg-icon{
  background:#eef6fb !important;
}
.notification-bell{
  font-size:0 !important;
  position:relative !important;
}
.notification-bell::before{
  content:"";
  width:24px;
  height:24px;
  display:block;
  background:var(--navy);
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22a3 3 0 0 0 3-2H9a3 3 0 0 0 3 2Zm7-6v-5a7 7 0 0 0-5-6.7V3h-4v1.3A7 7 0 0 0 5 11v5l-2 2v1h18v-1l-2-2Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.notification-bell::after{
  content:"";
  position:absolute;
  right:5px;
  top:5px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--teal);
  border:2px solid #fff;
}
.sidebar-brand-logo{
  width:155px !important;
}
@media (max-width:720px){
  .header-logo{
    height:70px !important;
    max-width:310px !important;
  }
  .top-header{
    min-height:auto !important;
  }
}


/* Ajuste final para ficar mais próximo da referência enviada */
:root{
  --navy:#123f70;
  --navy-2:#195989;
  --teal:#1f9aa5;
  --teal-2:#2bb4b9;
  --bg:#f5f7fb;
  --line:#e7edf5;
  --text:#0f315c;
  --muted:#657c9d;
  --shadow:0 12px 28px rgba(15,50,90,.07);
}

.app-shell{
  grid-template-columns:225px 1fr !important;
  background:#f5f7fb !important;
}

.sidebar{
  padding:0 18px 24px !important;
  background:linear-gradient(180deg,#123f70 0%,#185a8d 48%,#27aeb6 100%) !important;
}

.sidebar-brand{
  height:112px !important;
  margin:0 -18px 16px !important;
  padding:16px 16px 12px !important;
  background:#123f70 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.sidebar-brand-logo{
  width:150px !important;
  height:auto !important;
  max-height:88px !important;
  object-fit:contain !important;
}

.profile-panel{
  border-radius:20px !important;
  padding:14px !important;
  background:rgba(255,255,255,.11) !important;
  margin-bottom:18px !important;
}

.profile-avatar{
  width:42px !important;
  height:42px !important;
  background:rgba(255,255,255,.20) !important;
}

.profile-meta strong{
  font-size:.98rem !important;
  line-height:1.15 !important;
}

.profile-meta span{
  font-size:.88rem !important;
}

.profile-meta small{
  padding:6px 10px !important;
  font-size:.75rem !important;
  background:rgba(43,180,185,.32) !important;
}

.sidebar-nav{
  gap:10px !important;
  margin-top:14px !important;
}

.nav-link{
  padding:13px 14px !important;
  border-radius:10px !important;
  font-weight:700 !important;
  font-size:.92rem !important;
}

.nav-link.active{
  background:linear-gradient(135deg,#24aeb4,#1c8fa0) !important;
}

.nav-icon svg{
  width:21px !important;
  height:21px !important;
  fill:#fff !important;
}

.content-area{
  padding:0 !important;
  background:#f5f7fb !important;
}

.top-header{
  min-height:88px !important;
  padding:14px 34px !important;
  background:#fff !important;
  border-bottom:1px solid #e6edf5 !important;
}

.header-left{
  gap:24px !important;
}

.menu-icon{
  font-size:24px !important;
  color:#123f70 !important;
  line-height:1 !important;
}

.header-logo{
  width:238px !important;
  height:64px !important;
  max-width:238px !important;
  object-fit:contain !important;
  object-position:left center !important;
}

.header-right{
  gap:12px !important;
}

.header-pill{
  min-width:112px !important;
  padding:10px 14px !important;
  border-radius:12px !important;
  background:#fff !important;
  border:1px solid #dfe8f3 !important;
}

.header-pill-wide{
  min-width:225px !important;
}

.header-pill span{
  font-size:11px !important;
  color:#5f7595 !important;
  margin-bottom:3px !important;
}

.header-pill strong{
  font-size:13px !important;
  color:#0f315c !important;
}

.notification-bell{
  width:42px !important;
  height:42px !important;
}

.page-intro{
  padding:24px 32px 14px !important;
}

.page-intro h1{
  font-size:1.55rem !important;
  margin-bottom:6px !important;
  color:#123f70 !important;
}

.page-intro p{
  font-size:1rem !important;
  color:#657c9d !important;
}

.page-intro-date{
  font-size:.9rem !important;
  padding-top:4px !important;
}

.stats-grid{
  padding:0 32px !important;
  gap:18px !important;
  margin-bottom:20px !important;
}

.stats-card{
  min-height:120px !important;
  padding:22px 20px !important;
  border-radius:14px !important;
  border:1px solid #e5edf6 !important;
  background:#fff !important;
}

.stats-icon-bubble{
  width:56px !important;
  height:56px !important;
  border-radius:50% !important;
}

.stats-card:nth-child(1) .stats-icon-bubble{background:#e9f0ff !important;}
.stats-card:nth-child(2) .stats-icon-bubble{background:#e3f8f1 !important;}
.stats-card:nth-child(3) .stats-icon-bubble{background:#fff0e9 !important;}
.stats-card:nth-child(4) .stats-icon-bubble{background:#f2e9ff !important;}

.stats-card:nth-child(1) .stats-icon-bubble svg{fill:#2d67f6 !important;}
.stats-card:nth-child(2) .stats-icon-bubble svg{fill:#20b795 !important;}
.stats-card:nth-child(3) .stats-icon-bubble svg{fill:#ff6b45 !important;}
.stats-card:nth-child(4) .stats-icon-bubble svg{fill:#7042c9 !important;}

.stats-value{
  font-size:1.75rem !important;
  color:#123f70 !important;
}

.stats-label{
  font-size:.86rem !important;
  font-weight:800 !important;
  color:#0f315c !important;
}

.panel-grid{
  padding:0 32px 30px !important;
  gap:22px !important;
}

.panel-card,.table-card{
  border-radius:13px !important;
  border:1px solid #e4edf6 !important;
  box-shadow:0 12px 26px rgba(15,50,90,.06) !important;
  overflow:hidden !important;
}

.panel-header{
  padding:20px 24px 16px !important;
  border-bottom:1px solid #edf2f7 !important;
}

.section-title{
  font-size:1.05rem !important;
  color:#123f70 !important;
  font-weight:900 !important;
}

.section-body{
  padding:22px 24px !important;
}

.item{
  border-radius:14px !important;
  border:1px solid #e6eef7 !important;
  padding:18px !important;
  background:#fff !important;
}

.item-title{
  font-size:.98rem !important;
  color:#0f315c !important;
  font-weight:900 !important;
}

.btn-primary{
  border-radius:10px !important;
  background:#1f9aa5 !important;
}

.btn-secondary{
  background:#f4fbfd !important;
  color:#1f8c9a !important;
  border:1px solid #d6edf1 !important;
}

input,select,textarea{
  border-radius:10px !important;
  border:1px solid #dfe8f2 !important;
}

@media (max-width:900px){
  .app-shell{grid-template-columns:1fr !important;}
  .top-header{min-height:auto !important;}
  .header-logo{width:190px !important;height:54px !important;}
}


/* =========================================================
   Refinamento dos cards/painéis para seguir a referência
   ========================================================= */

.panel-grid{
  align-items:start !important;
}

.panel-card,
.table-card{
  position:relative !important;
  border-radius:18px !important;
  border:1px solid #e3edf7 !important;
  background:#ffffff !important;
  box-shadow:0 14px 32px rgba(15,50,90,.07) !important;
  overflow:hidden !important;
}

.panel-card::before,
.table-card::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  width:100% !important;
  height:3px !important;
  background:linear-gradient(90deg,#1f75bd,#23b6b8) !important;
  z-index:1 !important;
}

.panel-header{
  min-height:76px !important;
  padding:18px 24px 16px !important;
  background:#ffffff !important;
  border-bottom:1px solid #edf2f7 !important;
  display:grid !important;
  grid-template-columns:48px 1fr !important;
  align-items:center !important;
  justify-content:start !important;
  gap:14px !important;
}

.panel-header::before{
  content:"" !important;
  width:42px !important;
  height:42px !important;
  border-radius:10px !important;
  display:block !important;
  background-color:#155a9b !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M4 10v4h3l7 5V5l-7 5H4Zm12-1.5a4.5 4.5 0 0 1 0 7l1.4 1.4a6.5 6.5 0 0 0 0-9.8L16 8.5Z'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:24px 24px !important;
  box-shadow:0 8px 18px rgba(21,90,155,.16) !important;
}

.panel-card:nth-child(2) .panel-header::before,
.table-card:nth-child(2) .panel-header::before{
  background-color:#15999f !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M6 2h9l4 4v16H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm8 1.8V7h3.2L14 3.8ZM8 12h8v2H8v-2Zm0 4h8v2H8v-2Z'/%3E%3C/svg%3E") !important;
}

.panel-header > div{
  min-width:0 !important;
}

.section-title{
  font-size:1.02rem !important;
  line-height:1.18 !important;
  margin:0 0 3px !important;
  font-weight:900 !important;
  color:#0f315c !important;
  letter-spacing:-.01em !important;
}

.panel-header .muted{
  font-size:.88rem !important;
  color:#6a7f9d !important;
  line-height:1.25 !important;
}

.section-body{
  padding:20px 24px 22px !important;
  background:#ffffff !important;
}

.form-grid{
  gap:16px !important;
}

.field label{
  font-size:.86rem !important;
  margin-bottom:7px !important;
  color:#273b59 !important;
}

input,
select,
textarea{
  border-radius:11px !important;
  border:1px solid #dfe8f2 !important;
  background:#ffffff !important;
  color:#18365d !important;
  padding:13px 14px !important;
  font-size:.92rem !important;
}

textarea{
  min-height:116px !important;
}

input::placeholder,
textarea::placeholder{
  color:#7b8ca4 !important;
}

.form-row-2{
  gap:16px !important;
}

.btn-primary{
  width:100% !important;
  min-height:48px !important;
  border-radius:10px !important;
  background:linear-gradient(135deg,#1f9ba5,#15939b) !important;
  box-shadow:0 10px 18px rgba(31,155,165,.16) !important;
  font-weight:800 !important;
}

.btn-primary::after{
  content:"" !important;
  width:18px !important;
  height:18px !important;
  margin-left:auto !important;
  background:#ffffff !important;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 21 23 12 2 3v7l15 2-15 2v7Z'/%3E%3C/svg%3E") center/contain no-repeat !important;
}

.item{
  background:#ffffff !important;
  border:1px solid #e7eef6 !important;
  border-radius:15px !important;
  padding:18px !important;
  box-shadow:none !important;
}

.stack{
  gap:16px !important;
}

.item-title{
  color:#0f315c !important;
  font-weight:900 !important;
  font-size:.96rem !important;
  margin-bottom:5px !important;
}

.item p{
  font-size:.9rem !important;
  line-height:1.42 !important;
  color:#203a5e !important;
}

.badge{
  border-radius:999px !important;
  padding:7px 12px !important;
  font-size:.78rem !important;
  font-weight:900 !important;
}

.badge-blue,
.badge-purple{
  background:#f1e8ff !important;
  color:#6e42d4 !important;
}

.badge-green{
  background:#e7f8eb !important;
  color:#08723d !important;
}

.badge-yellow{
  background:#fff3cf !important;
  color:#9c6a00 !important;
}

.btn-secondary{
  width:auto !important;
  min-height:auto !important;
  padding:10px 14px !important;
  border-radius:9px !important;
  background:#f4fbfd !important;
  color:#138792 !important;
  border:1px solid #d9eef2 !important;
  box-shadow:none !important;
}

.btn-secondary::after{
  content:none !important;
}

.panel-card[style],
.table-card[style]{
  margin-top:20px !important;
}

/* Quando a tela for a de comunicados, os dois cards devem lembrar a referência */
body .panel-grid .panel-card,
body .panel-grid .table-card{
  max-width:none !important;
}

/* Ajuste fino dos cards financeiros/reservas da visão geral */
.panel-card .section-body.stack .item{
  min-height:92px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

.panel-card .section-body.stack .item .stats-value{
  font-size:1.85rem !important;
  color:#0f467d !important;
  margin-top:8px !important;
}

/* Melhora a aparência dos botões dentro de itens, sem parecer botão cinza antigo */
.item .actions .btn,
.item form .btn{
  font-size:.82rem !important;
  font-weight:800 !important;
}

/* Responsivo sem perder o estilo da referência */
@media(max-width:900px){
  .panel-header{
    grid-template-columns:42px 1fr !important;
  }
  .panel-header::before{
    width:38px !important;
    height:38px !important;
    background-size:21px 21px !important;
  }
}


/* =========================================================
   AJUSTE FINAL — referência GestCondo
   ========================================================= */

/* Remove os ícones genéricos automáticos dos painéis comuns */
.panel-header::before{
  content:none !important;
  display:none !important;
}

.panel-header{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:14px !important;
  min-height:auto !important;
}

/* Topo e sidebar mais próximos da referência */
.app-shell{
  grid-template-columns:225px 1fr !important;
  background:#f5f7fb !important;
}

.sidebar{
  background:linear-gradient(180deg,#123f70 0%,#185a8d 48%,#27aeb6 100%) !important;
  padding:0 18px 24px !important;
}

.sidebar-brand{
  height:112px !important;
  margin:0 -18px 16px !important;
  padding:14px 14px 12px !important;
  background:#123f70 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.sidebar-brand-logo{
  width:150px !important;
  height:auto !important;
  max-height:88px !important;
  object-fit:contain !important;
}

.profile-panel{
  margin:0 0 18px !important;
  border-radius:20px !important;
  padding:14px !important;
  background:rgba(255,255,255,.11) !important;
}

.profile-avatar{
  width:42px !important;
  height:42px !important;
  background:rgba(255,255,255,.20) !important;
}

.profile-meta strong{
  font-size:.98rem !important;
  line-height:1.15 !important;
}

.profile-meta span{
  font-size:.88rem !important;
}

.profile-meta small{
  padding:6px 10px !important;
  font-size:.75rem !important;
  background:rgba(43,180,185,.32) !important;
}

.sidebar-nav{
  gap:10px !important;
  margin-top:14px !important;
}

.nav-link{
  padding:13px 14px !important;
  border-radius:10px !important;
  font-weight:700 !important;
  font-size:.92rem !important;
}

.nav-link.active{
  background:linear-gradient(135deg,#24aeb4,#1c8fa0) !important;
}

.nav-icon svg{
  width:21px !important;
  height:21px !important;
  fill:#fff !important;
}

.top-header{
  min-height:88px !important;
  padding:14px 34px !important;
  background:#fff !important;
  border-bottom:1px solid #e6edf5 !important;
}

.header-left{
  gap:24px !important;
}

.menu-icon{
  font-size:24px !important;
  color:#123f70 !important;
}

.header-logo{
  width:238px !important;
  height:64px !important;
  max-width:238px !important;
  object-fit:contain !important;
  object-position:left center !important;
}

.header-pill{
  min-width:112px !important;
  padding:10px 14px !important;
  border-radius:12px !important;
  border:1px solid #dfe8f3 !important;
}

.header-pill-wide{
  min-width:225px !important;
}

.page-intro{
  padding:24px 32px 14px !important;
}

.page-intro h1{
  font-size:1.55rem !important;
  margin-bottom:6px !important;
  color:#123f70 !important;
}

.page-intro p{
  font-size:1rem !important;
  color:#657c9d !important;
}

.stats-grid{
  padding:0 32px !important;
  gap:18px !important;
  margin-bottom:20px !important;
}

.stats-card{
  min-height:120px !important;
  padding:22px 20px !important;
  border-radius:14px !important;
  border:1px solid #e5edf6 !important;
  box-shadow:0 12px 26px rgba(15,50,90,.06) !important;
}

.stats-icon-bubble{
  width:56px !important;
  height:56px !important;
  border-radius:50% !important;
}

.stats-card:nth-child(1) .stats-icon-bubble{background:#e9f0ff !important;}
.stats-card:nth-child(2) .stats-icon-bubble{background:#e3f8f1 !important;}
.stats-card:nth-child(3) .stats-icon-bubble{background:#fff0e9 !important;}
.stats-card:nth-child(4) .stats-icon-bubble{background:#f2e9ff !important;}

.stats-card:nth-child(1) .stats-icon-bubble svg{fill:#2d67f6 !important;}
.stats-card:nth-child(2) .stats-icon-bubble svg{fill:#20b795 !important;}
.stats-card:nth-child(3) .stats-icon-bubble svg{fill:#ff6b45 !important;}
.stats-card:nth-child(4) .stats-icon-bubble svg{fill:#7042c9 !important;}

.stats-value{
  font-size:1.75rem !important;
  color:#123f70 !important;
}

.stats-label{
  font-size:.86rem !important;
  font-weight:800 !important;
  color:#0f315c !important;
}

/* Painéis comuns da visão geral */
.panel-grid{
  padding:0 32px 30px !important;
  gap:22px !important;
  align-items:start !important;
}

.panel-card,.table-card{
  border-radius:14px !important;
  border:1px solid #e4edf6 !important;
  background:#fff !important;
  box-shadow:0 12px 26px rgba(15,50,90,.06) !important;
  overflow:hidden !important;
}

.panel-header{
  padding:20px 24px 16px !important;
  border-bottom:1px solid #edf2f7 !important;
}

.section-title{
  font-size:1.05rem !important;
  color:#123f70 !important;
  font-weight:900 !important;
  letter-spacing:-.01em !important;
}

.panel-header .muted{
  color:#657c9d !important;
  font-size:.95rem !important;
}

.section-body{
  padding:22px 24px !important;
}

.item{
  border-radius:14px !important;
  border:1px solid #e7eef6 !important;
  background:#fff !important;
  padding:18px !important;
}

.item-title{
  color:#0f315c !important;
  font-weight:900 !important;
  font-size:.98rem !important;
}

/* =========================================================
   Página Comunicados — igual à referência
   ========================================================= */

.gest-card-grid{
  padding:0 32px 30px !important;
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:22px !important;
  align-items:start !important;
}

.gest-panel{
  position:relative !important;
  background:#fff !important;
  border:1px solid #dfeaf5 !important;
  border-radius:14px !important;
  overflow:hidden !important;
  box-shadow:0 14px 30px rgba(15,50,90,.07) !important;
}

.gest-panel::before{
  content:"" !important;
  position:absolute !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  height:3px !important;
  background:linear-gradient(90deg,#1e75bd,#22b7bb) !important;
}

.gest-panel-header{
  min-height:76px !important;
  padding:18px 22px !important;
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
  border-bottom:1px solid #edf2f7 !important;
  background:#fff !important;
}

.gest-panel-icon{
  width:42px !important;
  height:42px !important;
  border-radius:10px !important;
  display:grid !important;
  place-items:center !important;
  flex:0 0 42px !important;
  box-shadow:0 8px 18px rgba(15,50,90,.13) !important;
}

.gest-panel-icon svg{
  width:24px !important;
  height:24px !important;
  fill:#fff !important;
}

.gest-panel-icon.megaphone{
  background:#155a9b !important;
}

.gest-panel-icon.document{
  background:#15999f !important;
}

.gest-panel-title h2{
  margin:0 0 3px !important;
  color:#0f315c !important;
  font-size:1.04rem !important;
  font-weight:900 !important;
}

.gest-panel-title p{
  margin:0 !important;
  color:#657c9d !important;
  font-size:.88rem !important;
}

.gest-panel-body{
  padding:20px 22px 22px !important;
}

.gest-form{
  display:grid !important;
  gap:16px !important;
}

.gest-field label{
  display:block !important;
  margin-bottom:7px !important;
  font-size:.86rem !important;
  font-weight:800 !important;
  color:#273b59 !important;
}

.gest-field input,
.gest-field textarea,
.gest-field select{
  width:100% !important;
  border-radius:11px !important;
  border:1px solid #dfe8f2 !important;
  background:#fff !important;
  padding:13px 14px !important;
  font-size:.92rem !important;
  color:#18365d !important;
}

.gest-field textarea{
  min-height:116px !important;
}

.gest-field input::placeholder,
.gest-field textarea::placeholder{
  color:#7b8ca4 !important;
}

.gest-form-row{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:16px !important;
}

.gest-submit{
  width:100% !important;
  min-height:48px !important;
  border:0 !important;
  border-radius:10px !important;
  background:linear-gradient(135deg,#1f9ba5,#15939b) !important;
  color:#fff !important;
  font-weight:900 !important;
  cursor:pointer !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  box-shadow:0 10px 18px rgba(31,155,165,.16) !important;
}

.gest-submit svg{
  width:18px !important;
  height:18px !important;
  fill:#fff !important;
  margin-left:auto !important;
  margin-right:12px !important;
}

.gest-announcements{
  display:grid !important;
  gap:16px !important;
}

.gest-announcement{
  background:#fff !important;
  border:1px solid #e7eef6 !important;
  border-radius:15px !important;
  padding:18px !important;
}

.gest-announcement-head{
  display:flex !important;
  justify-content:space-between !important;
  gap:12px !important;
  align-items:flex-start !important;
}

.gest-announcement h3{
  margin:0 0 5px !important;
  color:#0f315c !important;
  font-size:.98rem !important;
  font-weight:900 !important;
}

.gest-announcement-meta{
  color:#657c9d !important;
  font-size:.86rem !important;
  font-weight:600 !important;
}

.gest-announcement p{
  margin:14px 0 0 !important;
  color:#203a5e !important;
  font-size:.9rem !important;
  line-height:1.42 !important;
}

.gest-priority{
  border-radius:999px !important;
  padding:7px 12px !important;
  font-size:.78rem !important;
  font-weight:900 !important;
  white-space:nowrap !important;
}

.gest-priority.urgente{
  background:#f1e8ff !important;
  color:#6e42d4 !important;
}

.gest-priority.importante{
  background:#eaf2ff !important;
  color:#2d67f6 !important;
}

.gest-priority.informacao{
  background:#e7f8eb !important;
  color:#08723d !important;
}

.gest-delete{
  margin-top:16px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:10px 14px !important;
  border-radius:9px !important;
  border:1px solid #d9eef2 !important;
  background:#f4fbfd !important;
  color:#138792 !important;
  font-weight:900 !important;
  font-size:.82rem !important;
  cursor:pointer !important;
}

@media(max-width:1000px){
  .gest-card-grid{
    grid-template-columns:1fr !important;
  }
}

@media(max-width:720px){
  .gest-card-grid{
    padding:0 16px 30px !important;
  }
  .gest-form-row{
    grid-template-columns:1fr !important;
  }
}


/* Ajuste final: quadradinho com ícone nos títulos dos comunicados */
.gest-panel-header{
  grid-template-columns:46px 1fr !important;
  display:grid !important;
  align-items:center !important;
  gap:14px !important;
}

.gest-panel-icon{
  width:42px !important;
  height:42px !important;
  border-radius:9px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 42px !important;
}

.gest-panel-icon.megaphone{
  background:#155a9b !important;
}

.gest-panel-icon.document{
  background:#15999f !important;
}

.gest-panel-icon svg{
  width:24px !important;
  height:24px !important;
  fill:#fff !important;
  display:block !important;
}

.gest-panel-title h2{
  margin:0 0 3px !important;
}

.gest-panel-title p{
  margin:0 !important;
}


/* =========================================================
   Correção: quadradinhos com ícone também nos painéis da visão geral
   ========================================================= */

.panel-header{
  display:grid !important;
  grid-template-columns:46px 1fr !important;
  align-items:center !important;
  justify-content:start !important;
  gap:14px !important;
}

.panel-header::before{
  content:"" !important;
  display:flex !important;
  width:42px !important;
  height:42px !important;
  border-radius:10px !important;
  background-color:#155a9b !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:24px 24px !important;
  box-shadow:0 8px 18px rgba(15,50,90,.13) !important;
}

/* Primeiro card da visão geral: reservas */
.panel-grid > .panel-card:nth-child(1) .panel-header::before,
.panel-grid > .table-card:nth-child(1) .panel-header::before{
  background-color:#155a9b !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M7 2h2v3h6V2h2v3h3v17H4V5h3V2Zm13 8H4v10h16V10ZM6 13h5v5H6v-5Z'/%3E%3C/svg%3E") !important;
}

/* Segundo card da visão geral: financeiro */
.panel-grid > .panel-card:nth-child(2) .panel-header::before,
.panel-grid > .table-card:nth-child(2) .panel-header::before{
  background-color:#15999f !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 16h-2v-2H8v-2h5a1 1 0 0 0 0-2h-2a3 3 0 0 1 0-6V4h2v2h3v2h-5a1 1 0 0 0 0 2h2a3 3 0 0 1 0 6v2Z'/%3E%3C/svg%3E") !important;
}

/* Para a página de comunicados, mantém os ícones próprios */
.gest-panel-header::before{
  content:none !important;
  display:none !important;
}

.gest-panel-header{
  display:grid !important;
  grid-template-columns:46px 1fr !important;
  align-items:center !important;
  gap:14px !important;
}

/* Painéis de outras páginas também ganham um quadradinho mais neutro */
.panel-card .panel-header > div,
.table-card .panel-header > div{
  min-width:0 !important;
}

/* Mantém os textos alinhados como na referência */
.panel-header .section-title{
  margin:0 0 3px !important;
}

.panel-header .muted{
  margin:0 !important;
  display:block !important;
}

/* Evita que forms inline dentro de headers quebrem o grid */
.panel-header > .inline-form,
.panel-header > form,
.panel-header > .actions{
  grid-column:1 / -1 !important;
}

/* Caso alguma tela tenha só um painel fora do grid, aplica ícone padrão */
.content-area > .panel-card > .panel-header::before,
.content-area > .table-card > .panel-header::before{
  background-color:#155a9b !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M6 2h9l4 4v16H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm8 1.8V7h3.2L14 3.8ZM8 12h8v2H8v-2Zm0 4h8v2H8v-2Z'/%3E%3C/svg%3E") !important;
}

/* Ajuste visual da borda superior para todos os painéis */
.panel-card::before,
.table-card::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  right:0 !important;
  height:3px !important;
  background:linear-gradient(90deg,#1e75bd,#22b7bb) !important;
  z-index:2 !important;
}

.panel-card,
.table-card{
  position:relative !important;
}


/* Autorização de visitantes pelo morador */
.visitor-auth-item{
  border-left:4px solid #1f9ba5 !important;
}
.visitor-note-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:16px;
}
.visitor-decision-form{
  display:grid;
  gap:10px;
}
.visitor-decision-form input{
  min-width:0;
}
.empty-state{
  background:#f8fbfe !important;
  border-style:dashed !important;
}
@media(max-width:900px){
  .visitor-note-row{grid-template-columns:1fr;}
}

.saved-visitor-helper { font-size: .9rem; color: var(--muted); }
#manual-visitor-name[readonly],
#manual-document-id[readonly] {
    background: #f7fbfd;
    color: #5f7694;
}


/* Organização da página de visitantes para remover buracos e rolagem lateral */
.visitor-lists-grid{
  padding:0 32px 30px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:22px;
  align-items:start;
}

.visitor-card-list{
  display:grid;
  gap:16px;
}

.visitor-mini-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  border:1px solid #e6eef7;
  border-radius:16px;
  padding:18px;
  background:#fff;
}

.visitor-card-main{
  min-width:0;
  display:flex;
  gap:14px;
  align-items:flex-start;
}

.visitor-avatar{
  width:44px;
  height:44px;
  border-radius:14px;
  display:grid;
  place-items:center;
  flex:0 0 44px;
  background:linear-gradient(135deg,#155a9b,#15999f);
  color:#fff;
  font-weight:900;
}

.visitor-mini-card strong{
  display:block;
  color:#0f315c;
  font-size:1rem;
  font-weight:900;
  margin-bottom:5px;
}

.visitor-mini-card span,
.visitor-mini-card em{
  display:block;
  color:#5f7694;
  font-style:normal;
  line-height:1.35;
  word-break:break-word;
}

.visitor-card-actions,
.visitor-status-actions{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-end;
  min-width:150px;
}

.visitor-status-actions .badge{
  align-self:flex-end;
  text-align:center;
}

.visitor-status-form{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
}

.visitor-status-form select{
  width:150px;
  min-width:150px;
}

.visitor-status-form .btn{
  white-space:nowrap;
}

.table-card.visitor-list-card .section-body{
  overflow:visible !important;
}

#manual-visitor-name[readonly],
#manual-document-id[readonly]{
  background:#f7fbfd;
  color:#5f7694;
}

@media(max-width:1200px){
  .visitor-mini-card{
    grid-template-columns:1fr;
  }
  .visitor-card-actions,
  .visitor-status-actions{
    align-items:flex-start;
    min-width:0;
  }
  .visitor-status-actions .badge{
    align-self:flex-start;
  }
  .visitor-status-form{
    justify-content:flex-start;
    flex-wrap:wrap;
  }
}

@media(max-width:900px){
  .visitor-lists-grid{
    grid-template-columns:1fr;
    padding-left:16px;
    padding-right:16px;
  }
}


/* Sino de notificações funcional */
.notification-wrapper{
  position:relative;
}

.notification-bell{
  width:44px !important;
  height:44px !important;
  border:0;
  background:#ffffff;
  cursor:pointer;
  position:relative;
  border-radius:14px;
  display:flex !important;
  align-items:center;
  justify-content:center;
  color:var(--navy);
  font-size:0 !important;
}

.notification-bell svg{
  width:25px;
  height:25px;
  fill:var(--navy);
}

.notification-bell::before,
.notification-bell::after{
  content:none !important;
  display:none !important;
}

.notification-bell.has-urgent{
  animation: notificationPulse 1.1s infinite;
}

.notification-count{
  position:absolute;
  right:2px;
  top:2px;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:999px;
  background:#e53935;
  color:#fff;
  border:2px solid #fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.68rem;
  font-weight:900;
  line-height:1;
}

.notification-dropdown{
  position:absolute;
  right:0;
  top:54px;
  width:360px;
  max-width:calc(100vw - 30px);
  background:#fff;
  border:1px solid #e3edf7;
  border-radius:18px;
  box-shadow:0 20px 50px rgba(15,50,90,.16);
  display:none;
  z-index:9999;
  overflow:hidden;
}

.notification-dropdown.is-open{
  display:block;
}

.notification-dropdown-header{
  padding:16px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid #edf2f7;
}

.notification-dropdown-header strong{
  color:#0f315c;
  font-size:1rem;
}

.notification-dropdown-header span{
  color:#657c9d;
  font-size:.85rem;
  font-weight:700;
}

.notification-list{
  max-height:380px;
  overflow-y:auto;
}

.notification-item{
  display:grid;
  grid-template-columns:10px 1fr;
  gap:12px;
  padding:14px 18px;
  border-bottom:1px solid #edf2f7;
  background:#fff;
}

.notification-item:hover{
  background:#f7fbfd;
}

.notification-item:last-child{
  border-bottom:0;
}

.notification-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  margin-top:5px;
  background:#15999f;
}

.notification-urgent .notification-dot{
  background:#e53935;
}

.notification-success .notification-dot{
  background:#16a34a;
}

.notification-danger .notification-dot{
  background:#dc2626;
}

.notification-info .notification-dot{
  background:#2563eb;
}

.notification-empty .notification-dot{
  background:#94a3b8;
}

.notification-item strong{
  display:block;
  color:#0f315c;
  font-size:.94rem;
  margin-bottom:4px;
}

.notification-item p{
  margin:0 0 5px;
  color:#4f6685;
  font-size:.86rem;
  line-height:1.35;
}

.notification-item small{
  color:#7b8da6;
  font-size:.78rem;
  font-weight:700;
}

@keyframes notificationPulse{
  0%{transform:rotate(0deg) scale(1);}
  15%{transform:rotate(-10deg) scale(1.05);}
  30%{transform:rotate(10deg) scale(1.08);}
  45%{transform:rotate(-6deg) scale(1.05);}
  60%{transform:rotate(0deg) scale(1);}
  100%{transform:rotate(0deg) scale(1);}
}

.page-intro-date strong,
.page-intro-date span{
  transition:.2s ease;
}

@media(max-width:720px){
  .notification-dropdown{
    right:auto;
    left:50%;
    transform:translateX(-50%);
    width:330px;
  }
}


/* Relatórios do síndico — extensão do design atual do GestCondo */
.report-filter-panel{
  margin-bottom:22px;
}
.report-filter-form{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(170px,.8fr) minmax(170px,.8fr) auto;
  gap:14px;
  align-items:end;
}
.report-custom-date{
  display:none;
}
.report-custom-date.is-visible{
  display:block;
}
.report-filter-action .btn{
  min-height:48px;
  white-space:nowrap;
}
.report-range-label{
  margin-top:14px;
  color:#607b9e;
  font-size:.92rem;
}
.report-range-label strong{
  color:#0f315c;
}
.report-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
  margin-bottom:22px;
}
.report-summary-card{
  background:#fff;
  border:1px solid #e5edf6;
  border-radius:18px;
  box-shadow:0 10px 25px rgba(15,50,90,.06);
  padding:20px 22px;
  position:relative;
  overflow:hidden;
}
.report-summary-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:linear-gradient(180deg,#155a9b,#15999f);
}
.report-summary-card span,
.report-summary-card small{
  display:block;
  color:#6b819f;
}
.report-summary-card strong{
  display:block;
  margin:7px 0;
  color:#0f315c;
  font-size:2rem;
  line-height:1;
}
.report-main-grid{
  margin-bottom:22px;
}
.report-bars{
  display:grid;
  gap:14px;
}
.report-bar-row{
  display:grid;
  gap:7px;
}
.report-bar-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.report-bar-meta strong{
  min-width:0;
  color:#173b65;
  font-size:.93rem;
}
.report-bar-meta span{
  color:#15999f;
  font-weight:900;
}
.report-bar-track{
  height:9px;
  border-radius:999px;
  overflow:hidden;
  background:#eaf1f7;
}
.report-bar-track span{
  display:block;
  height:100%;
  min-width:5px;
  border-radius:999px;
  background:linear-gradient(90deg,#155a9b,#20abb0);
}
.report-status-list{
  display:grid;
  gap:11px;
}
.report-status-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:11px 13px;
  border:1px solid #e8eff6;
  border-radius:14px;
  background:#fbfdff;
}
.report-status-item strong{
  color:#0f315c;
}
.report-empty{
  padding:18px;
  border:1px dashed #cad9e8;
  border-radius:14px;
  background:#f8fbfe;
  color:#7085a1;
  text-align:center;
}
.report-announcement-card,
.report-insights-card{
  margin-bottom:22px;
}
.report-announcement-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-bottom:18px;
}
.report-announcement-summary > div{
  border:1px solid #e6eef7;
  border-radius:15px;
  background:#f9fcfe;
  padding:15px 16px;
}
.report-announcement-summary span{
  display:block;
  color:#7185a0;
  font-size:.84rem;
}
.report-announcement-summary strong{
  display:block;
  color:#0f315c;
  font-size:1.45rem;
  margin-top:5px;
}
.report-announcement-list{
  display:grid;
  gap:12px;
}
.report-announcement-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  border:1px solid #e7eef6;
  border-radius:16px;
  padding:16px 18px;
  background:#fff;
}
.report-announcement-item > div:first-child strong{
  display:block;
  color:#0f315c;
  margin-bottom:5px;
}
.report-announcement-item > div:first-child span{
  display:block;
  color:#6b819f;
  font-size:.85rem;
}
.report-announcement-metrics{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.report-announcement-metrics span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:8px 10px;
  border-radius:999px;
  background:#eff7fb;
  color:#607b9b;
  font-size:.82rem;
}
.report-announcement-metrics b{
  color:#117f87;
}
.report-insights{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.report-insight-item{
  border-left:4px solid #15999f;
  background:#f8fcfe;
  color:#456381;
  border-radius:12px;
  padding:14px 16px;
  line-height:1.45;
}
@media(max-width:1100px){
  .report-filter-form{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .report-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .report-filter-form,
  .report-summary-grid,
  .report-announcement-summary,
  .report-insights{
    grid-template-columns:1fr;
  }
  .report-announcement-item{
    grid-template-columns:1fr;
  }
  .report-announcement-metrics{
    justify-content:flex-start;
  }
}


/* =========================================================
   Relatórios — alinhamento com a grade principal
   ========================================================= */
.report-filter-panel,
.report-announcement-card,
.report-insights-card{
  margin-left:32px !important;
  margin-right:32px !important;
}

.report-summary-grid{
  padding-left:32px !important;
  padding-right:32px !important;
}

.report-filter-panel .panel-header,
.report-filter-panel .section-body,
.report-announcement-card .panel-header,
.report-announcement-card .section-body,
.report-insights-card .panel-header,
.report-insights-card .section-body{
  width:100%;
}

.report-status-count{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-left:auto;
}

.report-status-link{
  color:inherit;
  text-decoration:none;
  cursor:pointer;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.report-status-link:hover{
  transform:translateY(-1px);
  border-color:#b9dce8;
  background:#f5fbfd;
  box-shadow:0 7px 18px rgba(15,50,90,.06);
}

.report-status-arrow{
  display:inline-flex;
  width:26px;
  height:26px;
  border-radius:999px;
  align-items:center;
  justify-content:center;
  background:#e8f6f8;
  color:#138d96;
  font-size:1rem;
  font-weight:900;
  transition:transform .18s ease;
}

.report-status-link:hover .report-status-arrow{
  transform:translateX(2px);
}

@media(max-width:720px){
  .report-filter-panel,
  .report-announcement-card,
  .report-insights-card{
    margin-left:16px !important;
    margin-right:16px !important;
  }

  .report-summary-grid{
    padding-left:16px !important;
    padding-right:16px !important;
  }
}


/* ==========================================================
   Reservas do síndico
   ========================================================== */
.reservation-filter-panel{
  margin-bottom:20px;
}
.reservation-filter-form{
  display:grid;
  grid-template-columns:1fr 1fr 1.25fr .8fr .8fr auto;
  gap:12px;
  align-items:end;
}
.reservation-filter-actions{
  display:flex;
  gap:8px;
  align-items:center;
}
.reservation-filter-actions .btn{
  min-height:46px;
  white-space:nowrap;
}
.reservation-list-card{
  margin-top:0;
}
.reservation-result-count{
  padding:8px 12px;
  border-radius:999px;
  background:#eff7fb;
  color:#557596;
  font-weight:700;
  font-size:.84rem;
}
.reservation-empty-state{
  min-height:150px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  text-align:center;
  border:1px dashed #cad9e8;
  border-radius:16px;
  background:#f9fcfe;
  color:#7186a0;
}
.reservation-empty-state strong{
  color:#173b65;
}

/* ==========================================================
   Veículos da portaria
   ========================================================== */
.vehicle-provider-panel{
  margin-bottom:20px;
}
.vehicle-control-card{
  margin-top:0;
}
.vehicle-fixed-profile{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.vehicle-type-preview{
  min-height:48px;
  display:flex;
  align-items:center;
  padding:0 15px;
  border:1px solid #dce7f1;
  border-radius:14px;
  background:#f6fbfc;
  color:#128b93;
  font-weight:800;
}
.vehicle-owner-badge{
  display:inline-flex;
  align-items:center;
  padding:7px 11px;
  border-radius:999px;
  font-size:.8rem;
  font-weight:800;
  white-space:nowrap;
}
.vehicle-owner-resident{
  background:#e8f1ff;
  color:#245da4;
}
.vehicle-owner-provider{
  background:#e6f8f5;
  color:#128275;
}

@media(max-width:1250px){
  .reservation-filter-form{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .reservation-filter-form{
    grid-template-columns:1fr;
  }
  .reservation-filter-actions{
    flex-direction:column;
    align-items:stretch;
  }
}


/* ==========================================================
   Mensagens internas — Síndico x Morador
   ========================================================== */
.nav-link{
  position:relative;
}
.nav-unread-badge{
  margin-left:auto;
  min-width:22px;
  height:22px;
  padding:0 6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#ff5b61;
  color:#fff;
  font-size:.72rem;
  font-weight:900;
  box-shadow:0 3px 10px rgba(180,30,40,.18);
}

.messages-shell{
  display:grid;
  grid-template-columns:minmax(270px,330px) minmax(0,1fr);
  min-height:620px;
  max-height:calc(100vh - 310px);
  margin:0 32px 24px;
  background:#fff;
  border:1px solid #e5edf6;
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 10px 28px rgba(15,50,90,.06);
}

.messages-sidebar-panel{
  min-width:0;
  display:flex;
  flex-direction:column;
  border-right:1px solid #e6edf5;
  background:#fbfdff;
}

.messages-sidebar-header{
  padding:20px;
  border-bottom:1px solid #e7eef6;
}

.messages-sidebar-header h2,
.messages-thread-header h2{
  margin:0;
  color:#123965;
  font-size:1.05rem;
}

.messages-sidebar-header span,
.messages-thread-header span{
  display:block;
  margin-top:4px;
  color:#7185a0;
  font-size:.84rem;
}

.messages-new-conversation{
  padding:16px;
  border-bottom:1px solid #e8eff6;
  display:grid;
  gap:9px;
}

.messages-new-conversation label{
  font-size:.82rem;
  font-weight:800;
  color:#375b80;
}

.messages-new-conversation select{
  min-width:0;
}

.messages-conversation-list{
  flex:1;
  min-height:0;
  overflow-y:auto;
  padding:10px;
}

.messages-conversation-card{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:11px;
  align-items:center;
  padding:12px;
  margin-bottom:6px;
  border:1px solid transparent;
  border-radius:15px;
  color:inherit;
  text-decoration:none;
  transition:.18s ease;
}

.messages-conversation-card:hover{
  background:#f2f8fb;
  border-color:#dceaf3;
}

.messages-conversation-card.active{
  background:linear-gradient(135deg,#edf7fb,#edfafa);
  border-color:#bfe2e8;
  box-shadow:0 5px 15px rgba(16,107,130,.05);
}

.messages-contact-avatar{
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  border-radius:50%;
  background:linear-gradient(135deg,#1f6ca7,#25a8aa);
  color:#fff;
  font-weight:900;
}

.messages-contact-avatar-large{
  width:46px;
  height:46px;
}

.messages-contact-meta{
  min-width:0;
}

.messages-contact-name-row{
  display:flex;
  align-items:center;
  gap:8px;
}

.messages-contact-name-row strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#153b66;
  font-size:.9rem;
}

.messages-unread-count{
  margin-left:auto;
  min-width:21px;
  height:21px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 6px;
  border-radius:999px;
  background:#18a0a8;
  color:#fff;
  font-size:.7rem;
  font-weight:900;
}

.messages-contact-unit,
.messages-preview{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#778ba5;
  font-size:.76rem;
  margin-top:2px;
}

.messages-preview{
  color:#617994;
  margin-top:5px;
}

.messages-empty-list{
  margin:10px 4px;
  padding:18px 14px;
  text-align:center;
  border:1px dashed #cad9e8;
  border-radius:14px;
  color:#788ca5;
  font-size:.84rem;
}

.messages-thread-panel{
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  background:#f4f7fb;
}

.messages-thread-header{
  min-height:76px;
  padding:14px 20px;
  display:flex;
  align-items:center;
  gap:12px;
  border-bottom:1px solid #e4ebf3;
  background:#fff;
}

.messages-refresh{
  margin-left:auto;
  width:38px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  border:1px solid #dbe6f0;
  background:#f7fbfd;
  color:#177e91;
  font-size:1.2rem;
  font-weight:900;
  text-decoration:none;
}

.messages-thread{
  flex:1;
  min-height:0;
  overflow-y:auto;
  padding:22px;
  display:flex;
  flex-direction:column;
  gap:9px;
  scroll-behavior:smooth;
}

.message-bubble-row{
  display:flex;
}

.message-bubble-row.mine{
  justify-content:flex-end;
}

.message-bubble-row.theirs{
  justify-content:flex-start;
}

.message-bubble{
  max-width:min(72%,620px);
  padding:11px 13px 8px;
  border-radius:17px;
  box-shadow:0 3px 10px rgba(15,50,90,.05);
}

.message-bubble-row.mine .message-bubble{
  color:#fff;
  background:linear-gradient(135deg,#167d9e,#1ea6a6);
  border-bottom-right-radius:5px;
}

.message-bubble-row.theirs .message-bubble{
  color:#254663;
  background:#fff;
  border:1px solid #e2eaf2;
  border-bottom-left-radius:5px;
}

.message-text{
  font-size:.92rem;
  line-height:1.45;
  overflow-wrap:anywhere;
}

.message-meta{
  margin-top:5px;
  display:flex;
  justify-content:flex-end;
  gap:9px;
  font-size:.68rem;
  opacity:.78;
}

.messages-first-contact,
.messages-thread-empty{
  margin:auto;
  max-width:430px;
  text-align:center;
  color:#778ba4;
}

.messages-first-contact{
  padding:20px;
  border:1px dashed #cad9e8;
  border-radius:16px;
  background:rgba(255,255,255,.7);
}

.messages-first-contact strong,
.messages-thread-empty strong{
  display:block;
  color:#244b72;
  margin-bottom:6px;
}

.messages-thread-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:400px;
  padding:30px;
}

.messages-thread-empty-icon{
  width:58px;
  height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:14px;
  border-radius:18px;
  background:#e9f5f8;
  color:#168e98;
}

.messages-thread-empty-icon svg{
  width:28px;
  height:28px;
  fill:currentColor;
}

.messages-composer{
  padding:14px 16px;
  border-top:1px solid #dde7f0;
  background:#fff;
}

.messages-composer-form{
  display:grid;
  gap:8px;
}

.messages-composer textarea{
  width:100%;
  min-height:58px;
  max-height:150px;
  resize:vertical;
  margin:0;
}

.messages-composer-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.messages-composer-footer span{
  color:#8293a8;
  font-size:.74rem;
}

.messages-composer-footer .btn{
  min-width:110px;
}

@media(max-width:980px){
  .messages-shell{
    grid-template-columns:280px minmax(0,1fr);
    margin-left:20px;
    margin-right:20px;
  }
}

@media(max-width:760px){
  .messages-shell{
    grid-template-columns:1fr;
    max-height:none;
    margin:0 16px 20px;
  }

  .messages-sidebar-panel{
    max-height:360px;
    border-right:0;
    border-bottom:1px solid #e5edf6;
  }

  .messages-thread-panel{
    min-height:560px;
  }

  .message-bubble{
    max-width:88%;
  }
}


/* ==========================================================
   Mensagens — correção de altura e rolagem
   Mantém o campo de envio sempre visível e rola somente
   o histórico da conversa.
   ========================================================== */
.messages-shell{
  height:min(640px, calc(100vh - 360px));
  min-height:430px;
  max-height:none;
}

.messages-thread-panel{
  min-height:0;
  overflow:hidden;
}

.messages-thread{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}

.messages-composer{
  position:relative;
  flex:0 0 auto;
  z-index:3;
  background:#fff;
  box-shadow:0 -8px 18px rgba(15,50,90,.035);
}

.messages-composer-form{
  min-height:0;
}

@media(max-width:980px){
  .messages-shell{
    height:min(620px, calc(100vh - 340px));
    min-height:420px;
  }
}

@media(max-width:760px){
  .messages-shell{
    height:auto;
    min-height:0;
    max-height:none;
  }

  .messages-thread-panel{
    min-height:520px;
    height:70vh;
  }

  .messages-thread{
    min-height:0;
  }
}


/* ==========================================================
   Assistente GestCondo
   Chatbot contextual por perfil
   ========================================================== */
.gc-chatbot{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:12000;
  font-family:inherit;
}

.gc-chatbot-launcher{
  min-width:58px;
  height:58px;
  padding:0 19px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:0;
  border-radius:999px;
  background:linear-gradient(135deg,#155f99,#18a5aa);
  color:#fff;
  cursor:pointer;
  box-shadow:0 14px 34px rgba(13,75,112,.24);
  transition:transform .18s ease, box-shadow .18s ease;
}

.gc-chatbot-launcher:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 38px rgba(13,75,112,.3);
}

.gc-chatbot-launcher-icon{
  width:22px;
  height:22px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.gc-chatbot-launcher-icon svg{
  width:22px;
  height:22px;
  fill:currentColor;
}

.gc-chatbot-launcher-label{
  font-weight:800;
  font-size:.9rem;
}

.gc-chatbot-panel{
  position:absolute;
  right:0;
  bottom:72px;
  width:min(390px, calc(100vw - 32px));
  height:min(610px, calc(100vh - 120px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #dfe9f3;
  border-radius:22px;
  background:#fff;
  box-shadow:0 24px 60px rgba(13,55,91,.2);
  opacity:0;
  visibility:hidden;
  transform:translateY(14px) scale(.98);
  transform-origin:bottom right;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.gc-chatbot.is-open .gc-chatbot-panel{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}

.gc-chatbot-header{
  flex:0 0 auto;
  min-height:72px;
  padding:13px 15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:#fff;
  background:linear-gradient(135deg,#174e82,#178c9d);
}

.gc-chatbot-brand{
  min-width:0;
  display:flex;
  align-items:center;
  gap:11px;
}

.gc-chatbot-avatar{
  width:44px;
  height:44px;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.08);
}

.gc-chatbot-avatar img{
  max-width:35px;
  max-height:35px;
  object-fit:contain;
}

.gc-chatbot-brand strong{
  display:block;
  font-size:.94rem;
}

.gc-chatbot-brand span{
  display:block;
  margin-top:3px;
  color:rgba(255,255,255,.78);
  font-size:.74rem;
}

.gc-chatbot-close{
  width:36px;
  height:36px;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.24);
  border-radius:12px;
  background:rgba(255,255,255,.1);
  color:#fff;
  cursor:pointer;
  font-size:1.35rem;
}

.gc-chatbot-body{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding:16px;
  background:#f4f7fb;
  overscroll-behavior:contain;
  scroll-behavior:smooth;
}

.gc-chatbot-message{
  display:flex;
  margin-bottom:10px;
}

.gc-chatbot-message.bot{
  justify-content:flex-start;
}

.gc-chatbot-message.user{
  justify-content:flex-end;
}

.gc-chatbot-bubble{
  max-width:86%;
  padding:10px 12px;
  border-radius:16px;
  font-size:.87rem;
  line-height:1.45;
  overflow-wrap:anywhere;
}

.gc-chatbot-message.bot .gc-chatbot-bubble{
  color:#294966;
  background:#fff;
  border:1px solid #dfe8f1;
  border-bottom-left-radius:5px;
  box-shadow:0 3px 10px rgba(15,50,90,.04);
}

.gc-chatbot-message.user .gc-chatbot-bubble{
  color:#fff;
  background:linear-gradient(135deg,#187e9d,#1aa2a6);
  border-bottom-right-radius:5px;
}

.gc-chatbot-text{
  white-space:pre-line;
}

.gc-chatbot-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:9px;
  padding:7px 11px;
  border-radius:10px;
  background:#eaf7f9;
  color:#137d87;
  text-decoration:none;
  font-size:.78rem;
  font-weight:800;
}

.gc-chatbot-message.user .gc-chatbot-action{
  background:rgba(255,255,255,.16);
  color:#fff;
}

.gc-chatbot-suggestions{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:4px 0 12px;
}

.gc-chatbot-suggestion{
  padding:7px 10px;
  border:1px solid #cfe2ed;
  border-radius:999px;
  background:#fff;
  color:#316180;
  cursor:pointer;
  font-size:.75rem;
  font-weight:700;
  transition:.16s ease;
}

.gc-chatbot-suggestion:hover{
  border-color:#8fcbd4;
  color:#117c86;
  background:#f2fbfc;
}

.gc-chatbot-footer{
  flex:0 0 auto;
  padding:11px 12px 10px;
  border-top:1px solid #e2eaf2;
  background:#fff;
}

.gc-chatbot-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:end;
}

.gc-chatbot-form textarea{
  width:100%;
  min-height:42px;
  max-height:110px;
  margin:0;
  padding:10px 12px;
  border:1px solid #d7e3ed;
  border-radius:13px;
  outline:none;
  resize:none;
  font:inherit;
  font-size:.86rem;
}

.gc-chatbot-form textarea:focus{
  border-color:#7cc3cf;
  box-shadow:0 0 0 3px rgba(24,165,170,.1);
}

.gc-chatbot-send{
  min-width:68px;
  height:42px;
  padding:0 12px;
  border:0;
  border-radius:12px;
  background:linear-gradient(135deg,#176f99,#19a4a7);
  color:#fff;
  cursor:pointer;
  font-weight:800;
  font-size:.8rem;
}

.gc-chatbot-send:disabled{
  opacity:.65;
  cursor:wait;
}

.gc-chatbot-disclaimer{
  margin-top:7px;
  color:#8999aa;
  font-size:.65rem;
  text-align:center;
}

.gc-chatbot-typing{
  display:flex;
  align-items:center;
  gap:4px;
  min-width:49px;
}

.gc-chatbot-typing span{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#6e879f;
  animation:gc-chatbot-dot 1s infinite ease-in-out;
}

.gc-chatbot-typing span:nth-child(2){
  animation-delay:.15s;
}

.gc-chatbot-typing span:nth-child(3){
  animation-delay:.3s;
}

@keyframes gc-chatbot-dot{
  0%,80%,100%{transform:translateY(0);opacity:.45}
  40%{transform:translateY(-4px);opacity:1}
}

@media(max-width:760px){
  .gc-chatbot{
    right:14px;
    bottom:14px;
  }

  .gc-chatbot-launcher{
    width:56px;
    min-width:56px;
    height:56px;
    padding:0;
  }

  .gc-chatbot-launcher-label{
    display:none;
  }

  .gc-chatbot-panel{
    position:fixed;
    left:12px;
    right:12px;
    bottom:80px;
    width:auto;
    height:min(620px, calc(100vh - 100px));
    transform-origin:bottom center;
  }
}


/* Assistente — catálogo ampliado de sugestões */
.gc-chatbot-suggestion-extra{
  display:none;
}

.gc-chatbot.show-all-chatbot-options .gc-chatbot-suggestion-extra{
  display:inline-flex;
}

.gc-chatbot-more-options{
  padding:7px 10px;
  border:1px dashed #8fcbd4;
  border-radius:999px;
  background:#eef9fa;
  color:#147a84;
  cursor:pointer;
  font-size:.75rem;
  font-weight:800;
}

.gc-chatbot-more-options:hover{
  background:#e4f6f7;
}


/* Filas de atenção da visão geral do síndico */
.attention-empty-state{
  padding:22px 18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-align:center;
  border:1px dashed #cbd9e7;
  border-radius:15px;
  background:#f8fbfd;
  color:#71859f;
}

.attention-empty-state strong{
  color:#173c66;
}

.attention-empty-state span{
  max-width:520px;
  font-size:.86rem;
  line-height:1.45;
}


/* ==========================================================
   GestCondo 1.0 — camada profissional
   ========================================================== */
.global-search-shell{
  position:relative;
  margin:14px 32px 18px;
  z-index:80;
}
.global-search-box{
  height:48px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 14px;
  border:1px solid #dde8f1;
  border-radius:15px;
  background:#fff;
  box-shadow:0 7px 18px rgba(15,50,90,.04);
}
.global-search-box input{
  flex:1;
  min-width:0;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  background:transparent!important;
}
.global-search-box kbd{
  padding:4px 7px;
  border:1px solid #d9e4ed;
  border-radius:7px;
  background:#f5f8fb;
  color:#70849c;
  font-size:.7rem;
}
.global-search-icon{
  color:#168b98;
  font-size:1.35rem;
}
.global-search-results{
  position:absolute;
  left:0;right:0;top:56px;
  max-height:390px;
  overflow-y:auto;
  padding:8px;
  border:1px solid #dce7f0;
  border-radius:16px;
  background:#fff;
  box-shadow:0 18px 42px rgba(15,50,90,.16);
}
.global-search-result{
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:2px 12px;
  padding:10px 12px;
  border-radius:12px;
  text-decoration:none;
}
.global-search-result:hover{background:#f1f8fb}
.global-search-result>span{grid-row:1/3;color:#188b95;font-size:.72rem;font-weight:800}
.global-search-result strong{color:#183d66;font-size:.88rem}
.global-search-result small{color:#7b8da3}
.global-search-empty{padding:18px;text-align:center;color:#7c8ea4}

.pagination-nav{
  display:flex;
  justify-content:center;
  gap:7px;
  margin:18px 0 24px;
}
.pagination-link{
  min-width:36px;height:36px;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid #dce6ef;border-radius:10px;
  background:#fff;color:#41617f;text-decoration:none;font-weight:800;
}
.pagination-link.active{background:#168d9b;color:#fff;border-color:#168d9b}

.incident-attachments{
  display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;
}
.attachment-chip{
  display:inline-flex;align-items:center;gap:5px;
  padding:7px 10px;border-radius:999px;
  background:#eef7fb;color:#176e8b;text-decoration:none;font-size:.76rem;font-weight:700;
  border:1px solid #d6e9f0;
}

.resident-timeline{display:grid;gap:0;max-width:850px}
.timeline-event{
  position:relative;
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:12px;
  padding:0 0 22px;
}
.timeline-event::before{
  content:"";position:absolute;left:6px;top:16px;bottom:0;width:2px;background:#dce9ef;
}
.timeline-event:last-child::before{display:none}
.timeline-dot{
  width:14px;height:14px;margin-top:4px;border-radius:50%;
  background:linear-gradient(135deg,#196da2,#1aa4a5);
  box-shadow:0 0 0 4px #eef7fa;
}
.timeline-event strong{color:#183d66}

.finance-evolution-card{margin-bottom:20px}
.finance-months{display:grid;gap:18px}
.finance-month-row{display:grid;gap:6px}
.finance-month-label,.finance-month-values{
  display:flex;justify-content:space-between;gap:12px;
}
.finance-month-label strong{color:#173e68}
.finance-month-label span,.finance-month-values{color:#71859f;font-size:.78rem}
.finance-bar-line{
  height:7px;border-radius:999px;background:#edf2f7;overflow:hidden;
}
.finance-bar{display:block;height:100%;border-radius:999px}
.finance-bar.previsto{background:#2b6ea7}
.finance-bar.recebido{background:#1fa98e}
.finance-bar.inadimplente{background:#e46868}

@media(max-width:760px){
  .global-search-shell{margin:12px 16px 16px}
  .global-search-box kbd{display:none}
  .global-search-result{grid-template-columns:1fr}
  .global-search-result>span{grid-row:auto}
}


/* Preview seguro de imagens anexadas às ocorrências */
.attachment-preview-trigger{
  appearance:none;
  cursor:pointer;
  font:inherit;
}

.attachment-preview-backdrop{
  position:fixed;
  inset:0;
  z-index:15000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(10,26,43,.46);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .16s ease, visibility .16s ease;
}

.attachment-preview-backdrop.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.attachment-preview-modal{
  width:min(720px, 92vw);
  max-height:86vh;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:18px;
  background:#fff;
  box-shadow:0 24px 65px rgba(9,38,64,.26);
  border:1px solid #dce7f0;
}

.attachment-preview-header,
.attachment-preview-footer{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 15px;
  background:#fff;
}

.attachment-preview-header{
  justify-content:space-between;
  border-bottom:1px solid #e5edf4;
}

.attachment-preview-header strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#173d67;
}

.attachment-preview-close{
  width:34px;
  height:34px;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #dbe6ef;
  border-radius:10px;
  background:#f7fafc;
  color:#446580;
  cursor:pointer;
  font-size:1.2rem;
}

.attachment-preview-body{
  min-height:180px;
  max-height:68vh;
  padding:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:auto;
  background:#eef3f7;
}

.attachment-preview-body img{
  display:block;
  max-width:100%;
  max-height:62vh;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:12px;
  background:#fff;
  box-shadow:0 6px 18px rgba(15,50,90,.08);
}

.attachment-preview-footer{
  justify-content:flex-end;
  border-top:1px solid #e5edf4;
}

@media(max-width:760px){
  .attachment-preview-backdrop{
    padding:12px;
  }

  .attachment-preview-modal{
    width:96vw;
    max-height:90vh;
  }

  .attachment-preview-body{
    max-height:72vh;
    padding:9px;
  }

  .attachment-preview-body img{
    max-height:68vh;
  }
}

.reservation-calendar-card{margin-bottom:18px}.reservation-calendar-header{align-items:center}.calendar-nav{display:flex;align-items:center;gap:10px}.calendar-nav strong{text-transform:capitalize;color:#173d67;min-width:150px;text-align:center}.calendar-legend{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:12px;color:#61758a;font-size:.88rem}.calendar-legend span{display:flex;align-items:center;gap:7px}.cal-dot,.cal-event{display:inline-block;width:9px;height:9px;border-radius:999px}.cal-dot.approved,.cal-event.approved{background:#26a269}.cal-dot.pending,.cal-event.pending{background:#f0a020}.cal-dot.refused,.cal-event.refused{background:#d45858}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-weekdays{margin-bottom:6px}.calendar-weekdays span{text-align:center;font-size:.78rem;font-weight:700;color:#72869a;padding:5px}.calendar-day{min-height:74px;border:1px solid #e2eaf1;background:#fff;border-radius:12px;padding:8px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;cursor:pointer;transition:.15s}.calendar-day:hover{border-color:#4aa9c1;box-shadow:0 5px 16px rgba(33,104,145,.08)}.calendar-day.is-empty{background:#f7f9fb;border-style:dashed;cursor:default}.calendar-day.is-today{outline:2px solid rgba(23,136,177,.18)}.calendar-day-number{font-weight:750;color:#183d62}.calendar-events{display:flex;gap:4px;flex-wrap:wrap}.calendar-day-details{margin-top:14px;padding:13px 15px;border:1px solid #e2eaf1;border-radius:12px;background:#f8fbfd;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.calendar-day-details>strong{color:#173d67}.calendar-detail-item{display:flex;gap:8px;align-items:flex-start;padding:7px 10px;background:#fff;border:1px solid #e4ebf1;border-radius:10px}.calendar-detail-item div{display:flex;flex-direction:column}.calendar-detail-item span:last-child{font-size:.8rem;color:#6c8195}.form-note{padding:11px 13px;background:#eef8fb;border:1px solid #cceaf2;border-radius:11px;color:#3b6878;font-size:.88rem}.requirements-summary{display:grid;gap:10px}.requirements-summary>div{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid #e3ebf2;border-radius:12px;background:#fafcfd}.requirements-summary strong{color:#167f9d}.requirements-summary span{color:#64798c}.inline-details{position:relative;display:inline-block;margin-bottom:6px}.inline-details summary{list-style:none}.inline-details summary::-webkit-details-marker{display:none}.pickup-form{position:absolute;z-index:30;right:0;top:calc(100% + 8px);width:300px;background:white;border:1px solid #dce7ef;border-radius:13px;padding:13px;box-shadow:0 15px 40px rgba(26,67,101,.18);display:grid;gap:9px}.pickup-form .field{margin:0}.pickup-form label{font-size:.78rem}@media(max-width:760px){.calendar-weekdays,.calendar-grid{gap:3px}.calendar-day{min-height:58px;padding:5px}.calendar-weekdays span{font-size:.68rem}.pickup-form{position:fixed;left:12px;right:12px;top:auto;bottom:18px;width:auto}.calendar-day-details{align-items:stretch}.calendar-detail-item{width:100%}}


/* Entregas: vínculo direto com morador */
.field-hint{margin-top:5px;font-size:.8rem}
.form-note.delivery-note-active{background:#edf9f5;border-color:#c7eadc;color:#286c59}
input[readonly]{background:#f3f7fa;color:#516b7f;cursor:not-allowed}
