:root {
  --fc-olive-dark: #4b543a;
  --fc-olive: #727c5a;
  --fc-sage: #aeb79a;
  --fc-ivory: #e7e3d7;
  --fc-paper: #f7f5f0;
  --fc-ink: #303527;
  --fc-muted: #6f7465;
  --fc-line: #d8d5c9;
  --navy: var(--fc-olive-dark);
  --navy-soft: #60694c;
  --violet: var(--fc-olive);
  --violet-dark: var(--fc-olive-dark);
  --green: var(--fc-olive);
  --green-light: #edf0e7;
  --ink: var(--fc-ink);
  --muted: var(--fc-muted);
  --line: var(--fc-line);
  --surface: #fffefa;
  --background: var(--fc-paper);
  --paper: var(--fc-paper);
  --success: #536942;
  --warning: #906a31;
}

html { background: var(--fc-paper); font-size: 17px; }

@view-transition { navigation: auto; }
::view-transition-old(root) { animation: fc-page-out .22s ease both; }
::view-transition-new(root) { animation: fc-page-in .46s cubic-bezier(.22,1,.36,1) both; }

body {
  color: var(--fc-ink);
  background-color: var(--fc-paper);
  background-image:
    radial-gradient(circle at 12% 8%, rgba(255,255,255,.9), transparent 32%),
    linear-gradient(135deg, transparent 0 72%, rgba(114,124,90,.055) 72.2%, transparent 72.5%);
  background-repeat: no-repeat;
  background-size: 100% 100%, min(520px,52vw) min(520px,52vw);
  background-position: center, right bottom;
  background-attachment: fixed;
}

/* Transparência e fluidez compartilhadas por todos os módulos. */
:root { --fc-glass:rgba(255,254,250,.70);--fc-glass-strong:rgba(255,254,250,.86);--fc-glass-line:rgba(255,255,255,.66); }
body{animation:fc-page-in .48s cubic-bezier(.22,1,.36,1) both}
.panel,.panel-card,.metric-card,.registration-card,.tabs,.toolbar,.list-item,.document-card,.vehicle-card,.conversation-shell,.metrics article,.unit-card,.staff-card,.common-area-card,.commercial-card,.budget-card,.expense-table,.platform-list,.platform-aside,.platform-metrics article,.module-grid>*,.expense-layout>*,.complaint-card,.feed-card,.notice-card,.logbook-panel{background-color:var(--fc-glass)!important;border-color:var(--fc-glass-line)!important;box-shadow:0 16px 44px rgba(48,53,39,.09)!important;-webkit-backdrop-filter:blur(18px) saturate(1.08);backdrop-filter:blur(18px) saturate(1.08)}
.modal-card,.form-modal,.confirm-modal,.drawer,.commercial-drawer,.login-card,.state-card{background-color:var(--fc-glass-strong)!important;-webkit-backdrop-filter:blur(24px) saturate(1.12);backdrop-filter:blur(24px) saturate(1.12)}
input,select,textarea,.search{background-color:rgba(255,255,255,.68)!important}.app-header,.social-topbar{background-color:rgba(75,84,58,.78)!important;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.sidebar,.social-sidebar{background-color:rgba(48,57,40,.90)!important;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}
a,button,.unit-card,.registration-card,.metric-card,.panel,.panel-card{transition-duration:.28s!important;transition-timing-function:cubic-bezier(.22,1,.36,1)!important}
@keyframes fc-page-in{from{opacity:0;transform:translateY(7px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}@keyframes fc-page-out{to{opacity:0;transform:translateY(-4px);filter:blur(2px)}}

body, button, input, select, textarea { font-family: Arial, Helvetica, sans-serif; }
h1, h2, h3, .brand-name, .unit-number, .report-highlight > strong { font-family: Georgia, "Times New Roman", serif; }

button, a, input, select, textarea { transition: border-color .2s ease, background-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease; }
input:focus, select:focus, textarea:focus { outline-color: rgba(114,124,90,.22); border-color: var(--fc-olive); }

/* Página de entrada */
.landing {
  color: var(--fc-ink);
  background:
    radial-gradient(circle at 13% 12%, rgba(255,255,255,.94), transparent 33%),
    linear-gradient(135deg, transparent 0 74%, rgba(114,124,90,.08) 74.2%, transparent 74.5%),
    var(--fc-paper);
}
.landing::before, .landing::after { display: none; }
.marble-detail { display: none; }
.landing .eyebrow, .brand-logo, .brand-copy { color: var(--fc-olive-dark); }
.landing .eyebrow { font-size: 10px; font-weight: 700; }
.brand-symbol { stroke-width: 1.8; }
.brand-name { font-size: clamp(36px,4vw,48px); }
.brand-copy { color: var(--fc-muted); font-size: 15px; }
.access-card { border-color: rgba(75,84,58,.32); border-radius: 8px; }
.access-card-portaria {
  color: var(--fc-ink);
  background: var(--fc-ivory);
  box-shadow: 0 22px 36px rgba(75,84,58,.18);
}
.access-card-gestao {
  color: var(--fc-paper);
  border-color: #3e4630;
  background: var(--fc-olive-dark);
  box-shadow: 0 25px 42px rgba(48,53,39,.23);
}
.access-card strong { font-family: Georgia, "Times New Roman", serif; }
.card-copy strong { font-size: 20px; }
.card-copy small { font-size: 11px; }
.card-arrow { background: var(--fc-olive-dark); border-color: rgba(255,255,255,.35); }
.access-card-gestao .card-arrow { color: var(--fc-olive-dark); background: var(--fc-ivory); }
.card-handle { border-color: var(--fc-olive); background: linear-gradient(#aeb79a,#727c5a); }
.landing footer { color: var(--fc-muted); font-size: 9px; }
.signature-mark { border-color: var(--fc-sage); }

/* Autenticação e Portaria */
.centered-view { background: transparent; }
.login-card {
  position: relative;
  overflow: hidden;
  border-color: var(--fc-line);
  border-radius: 14px;
  background: rgba(255,254,250,.96);
  box-shadow: 0 26px 70px rgba(75,84,58,.16);
}
.login-card::after {
  content: "";
  position: absolute;
  z-index: 0;
  right: -88px;
  bottom: -98px;
  width: 260px;
  height: 260px;
  opacity: .48;
  pointer-events: none;
  background: linear-gradient(135deg, transparent 0 48%, rgba(114,124,90,.12) 48.4%, transparent 49%);
}
.login-card > * { position: relative; z-index: 1; }
.brand-mark {
  width: 170px;
  height: 100px;
  margin-bottom: 20px;
  color: transparent;
  background-color: transparent;
  background-image: url("./fcgrupo-logo.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  border-radius: 0;
  box-shadow: none;
  mix-blend-mode: multiply;
}
.login-card h1 { color: var(--fc-olive-dark); font-size: clamp(2.25rem,4vw,3.35rem); }
.login-card .eyebrow { color: var(--fc-olive); font-size: .82rem; }
.help-text, .form-note, .password-rule, .muted { color: var(--fc-muted); font-size: .94rem; }
.primary-button, .tab.active { color: #fff; background: var(--fc-olive); box-shadow: 0 7px 18px rgba(75,84,58,.18); }
.primary-button:hover, .tab.active:hover { background: var(--fc-olive-dark); }
.secondary-button, .small-button, .upload-button { color: var(--fc-olive-dark); border-color: var(--fc-line); background: var(--fc-ivory); }
.secondary-button:hover, .small-button:hover, .upload-button:hover { background: #dcd8cb; }
.text-button { color: var(--fc-olive-dark); }
.app-header { color: #fff; background: var(--fc-olive-dark); box-shadow: 0 4px 20px rgba(48,53,39,.18); }
.header-logo { color: var(--fc-olive-dark); background: var(--fc-ivory); border-radius: 8px; box-shadow: none; font-family: Georgia, "Times New Roman", serif; font-size: .9rem; letter-spacing: -.04em; }
.brand-line strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.3rem; }
.brand-line span, .role-badge { color: #f2f0e8; border-color: rgba(247,245,240,.24); background: rgba(247,245,240,.10); }
.header-brand small, .session-strip { color: #d6dacb; }
.header-search input, .test-access-controls select { color: #fff; border-color: #7e866b; background: #5d6649; }
.header-exit { color: #fff; border-color: #7e866b; background: #5d6649; }
.session-strip { border-color: rgba(247,245,240,.12); }
.session-strip > span { color: #d8ddb9; }
.hero-panel {
  color: #fff;
  border: 1px solid rgba(247,245,240,.12);
  border-radius: 14px;
  background: linear-gradient(135deg,var(--fc-olive-dark),#626b4d);
  box-shadow: 0 18px 42px rgba(75,84,58,.16);
}
.hero-chip { color: #f1f0e7; border-color: rgba(247,245,240,.24); background: rgba(247,245,240,.10); }
.eyebrow.light { color: #dfe2d4; }
.hero-panel > p:last-child { color: #e1e4d9; }
.tabs, .panel-card, .metric-card, .registration-card, .list-item, .document-card, .vehicle-card, .conversation-shell {
  border-color: var(--fc-line);
  background: rgba(255,254,250,.96);
  box-shadow: 0 8px 26px rgba(75,84,58,.07);
}
.tabs, .panel-card, .metric-card { border-radius: 12px; }
.tab { color: var(--fc-muted); }
.tab:hover { background: #eeece4; }
.metric-card::after { color: var(--fc-olive); }
.metric-card.indigo, .metric-card.emerald, .metric-card.slate { color: var(--fc-olive); }
.metric-card strong, .section-heading h2, .registration-title h3 { color: var(--fc-olive-dark); }
.metric-card span { font-size: .83rem; }
.metric-card small { font-size: .78rem; }
.tab, .filter-pill { font-size: .84rem; }
.filter-pill.active, .access-pill { color: #fff; background: var(--fc-olive); }
.status-checked_in { color: #596549; border-color: #c9cfbb; background: #ecefe5; }
.toolbar, .list-item, .registration-card, .info-box, .empty-state, .empty-hint, .host-conversation-area, .conversation-list, .conversation-main, .conversation-compose {
  border-color: var(--fc-line);
  background: #fffefa;
}
.toolbar { box-shadow: 0 7px 20px rgba(75,84,58,.06); }
.list-item, .info-box, .empty-hint, .host-conversation-area, .conversation-compose { background: #f3f2eb; }
.unit-icon, .report-icon { color: #fff; background: var(--fc-olive); border-radius: 8px; }
.host-actions-banner, .vehicle-card, .rules-accept {
  color: #f4f3ed;
  border-color: #70795c;
  background: var(--fc-olive-dark);
}
.host-actions-banner p:last-child, .rules-summary { color: #d9ddcf; }
.unit-summary, .conversation-unit.active { color: var(--fc-olive-dark); border-color: #cbd1bc; background: #ecefe5; }
.unit-summary strong, .conversation-unit.active { color: var(--fc-olive-dark); }
.conversation-unit:hover { background: #f1f2eb; }
.conversation-unit strong { font-size: .88rem; }
.conversation-unit span { font-size: .79rem; }
.message-bubble { background: #eeede6; }
.message-bubble.mine { color: #fff; background: var(--fc-olive); }
.live-indicator { color: #5c7149; }
.notice { border-color: #cbd2bb; background: #f1f4eb; }
.modal-backdrop { background: rgba(48,53,39,.80); }
.modal, .modal-header, .modal-footer { border-color: var(--fc-line); background: #fffefa; }
.modal-header h2 { color: var(--fc-olive-dark); }
.modal-tabs button.active { color: var(--fc-olive-dark); border-color: var(--fc-olive); }
.form-section, .upload-card, .companion-row, .details-summary, .identity-title, .document-card, .pass-summary, .pass-box {
  border-color: var(--fc-line);
  background: #f5f3ec;
}
.form-section h3 > span { background: var(--fc-olive); }
.rules-summary { background: #5d6649; }
.modal-footer { background: #f1efe8; }
.upload-card.featured { border-color: #c7cdb8; background: #ecefe5; }
.vehicle-plate { border-color: #899078; background: #5d6649; }
.pass-protocol { color: var(--fc-olive-dark); border-color: #c7cdb8; background: #ecefe5; }
.pass-rules { color: #625532; border-color: #d8cfad; background: #f4f0df; }
.form-grid label, .form-stack label, .rules-editor-form label { font-size: .92rem; }
.form-grid .administration-form-title, .form-grid .rental-form-title { grid-column: 1 / -1; }
#unit-form .administrator-fields, #unit-form .broker-fields { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 13px; padding: 15px; border: 1px solid var(--fc-line); border-radius: 9px; background: #f1f1e9; }
#unit-form .administrator-fields[hidden], #unit-form .broker-fields[hidden] { display: none; }
#unit-form .administrator-fields .wide-field, #unit-form .broker-fields .wide-field { grid-column: 1 / -1; }
#unit-form .managed-unit-check { grid-column: 1 / -1; }
.registration-title h3 { font-size: 1.15rem; }
.info-box > small { font-size: .73rem; }
.info-box span { font-size: .85rem; }
.mfa-secret { color: var(--fc-olive-dark); background: #eeece4; }

/* Acabamento sofisticado compartilhado por todos os módulos */
:root { --fc-glass: rgba(255,254,250,.78); --fc-glass-line: rgba(255,255,255,.62); --fc-soft-shadow: 0 16px 46px rgba(48,53,39,.085); --fc-lift-shadow: 0 24px 58px rgba(48,53,39,.14); --fc-ease: cubic-bezier(.22,1,.36,1); }
.workspace, .module-content, .social-layout { animation: fcPageIn .55s var(--fc-ease) both; }
.topbar, .feed-heading { animation: fcFadeDown .52s .04s var(--fc-ease) both; }
.panel, .metrics article, .unit-card, .report-grid > article, .owner-directory article, .staff-card, .common-area-card, .tenant-admin-card, .complaint-card, .asset-panel, .notice-admin-panel, .social-post, .composer, .notice-board {
  border-color: var(--fc-glass-line);
  background-color: var(--fc-glass);
  box-shadow: var(--fc-soft-shadow);
  backdrop-filter: blur(16px) saturate(1.05);
}
.panel, .metrics article, .unit-card, .staff-card, .common-area-card, .complaint-card, .social-post, .notice-card, .admin-notice-card {
  transition: transform .28s var(--fc-ease), box-shadow .28s ease, border-color .28s ease;
}
.metrics article:hover, .unit-card:hover, .staff-card:hover, .common-area-card:hover, .social-post:hover {
  transform: translateY(-3px);
  border-color: rgba(174,183,154,.72);
  box-shadow: var(--fc-lift-shadow);
}
.sidebar { background: linear-gradient(180deg,rgba(75,84,58,.97),rgba(54,62,42,.98)); box-shadow: 12px 0 40px rgba(48,53,39,.10); }
.sidebar .condo, .sidebar-summary, .privacy-note { background: rgba(255,255,255,.065); backdrop-filter: blur(10px); }
.primary, .secondary, .header-exit, .social-account a, .social-account button { border-radius: 9px; }
.primary { box-shadow: 0 10px 23px rgba(75,84,58,.19); }
.primary:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(75,84,58,.27); }
.modal-backdrop, .notice-modal-backdrop, .social-modal-backdrop { backdrop-filter: blur(8px); }
.form-modal, .confirm-modal, .notice-modal, .social-modal { box-shadow: 0 30px 90px rgba(35,41,29,.24); animation: fcModalIn .34s var(--fc-ease) both; }
@keyframes fcPageIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes fcFadeDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
@keyframes fcModalIn { from { opacity: 0; transform: translateY(16px) scale(.985); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .workspace, .module-content, .social-layout, .topbar, .feed-heading, .form-modal, .confirm-modal, .notice-modal, .social-modal { animation: none; } }

/* Gestão Condominial */
.sidebar { background: linear-gradient(180deg,rgba(75,84,58,.97),rgba(54,62,42,.98)); }
.brand { border-color: rgba(247,245,240,.14); }
.brand > span { width: 42px; height: 42px; color: var(--fc-olive-dark); background: var(--fc-ivory); border-radius: 8px; font: 700 13px/1 Georgia, "Times New Roman", serif; letter-spacing: -.04em; }
.brand strong { font-family: Georgia, "Times New Roman", serif; font-size: 21px; }
.brand small { color: #d3d8c8; font-size: 9px; }
.condo { border-color: rgba(247,245,240,.14); background: rgba(247,245,240,.07); }
.condo small { color: #cbd0bf; font-size: 9px; }
.condo strong { font-size: 14px; }
.condo span { color: #d3d8c8; font-size: 11px; }
.sidebar nav button, .sidebar nav a { color: #d9ddcf; font-size: 14px; }
.sidebar nav button.active, .sidebar nav button.current, .sidebar nav a.active, .sidebar nav a.current { color: #fff; background: rgba(247,245,240,.11); box-shadow: inset 3px 0 0 var(--fc-sage); }
.sidebar nav button b { color: var(--fc-olive-dark); background: var(--fc-ivory); }
.sidebar-summary small, .user small { color: #cbd0bf; font-size: 11px; }
.sidebar-summary p, .user strong { font-size: 13px; }
.workspace, .module-content { background: transparent; }
.topbar small { color: var(--fc-olive); font-size: 10px; letter-spacing: .12em; }
.topbar h1 { color: var(--fc-olive-dark); font-size: clamp(31px,3vw,40px); }
.topbar p { color: var(--fc-muted); font-size: 15px; }
.primary { color: #fff; background: var(--fc-olive); font-size: 12px; }
.primary:hover { background: var(--fc-olive-dark); }
.secondary { color: var(--fc-olive-dark); border-color: var(--fc-line); background: var(--fc-ivory); font-size: 12px; }
.panel, .metrics article, .unit-card, .report-grid > article, .owner-directory article, .staff-card, .common-area-card, .tenant-admin-card, .complaint-card {
  border-color: var(--fc-line);
  background: rgba(255,254,250,.96);
  box-shadow: 0 8px 26px rgba(75,84,58,.06);
}
.panel, .metrics article, .unit-card, .report-grid > article { border-radius: 10px; }
.panel-head h2, .section-title h3, .owner-directory h3, .report-grid h3 { color: var(--fc-olive-dark); font-family: Georgia, "Times New Roman", serif; }
.panel-head h2 { font-size: 22px; }
.panel-head p { color: var(--fc-muted); font-size: 13px; }
.update { color: var(--fc-olive-dark); background: #edf0e7; font-size: 9px; }
.update i { background: var(--fc-olive); }
.metrics small { color: var(--fc-muted); font-size: 10px; }
.metrics strong { color: var(--fc-olive-dark); font-size: 32px; }
.metrics p { color: var(--fc-muted); font-size: 12px; }
.metrics em { color: var(--fc-olive-dark); background: #edf0e7; font-size: 9px; }
.metric-icon.green, .metric-icon.blue, .metric-icon.slate { color: var(--fc-olive-dark); background: #e8ebdf; }
.search, .toolbar select, .toolbar > button, .view-switch, .pagination button { border-color: var(--fc-line); background: #fffefa; }
.search input, .toolbar select, .toolbar > button { color: var(--fc-ink); font-size: 13px; }
.toolbar > button.filter-active, .view-switch button.active, .pagination button.active { color: #fff; border-color: var(--fc-olive); background: var(--fc-olive); }
.results-label { color: var(--fc-muted); font-size: 10px; }
.unit-card::before { background: var(--fc-olive); }
.unit-number { color: var(--fc-olive-dark); font-size: 29px; }
.unit-number small { color: var(--fc-muted); font-size: 10px; }
.status { font-size: 11px; }
.status.regular { color: #4e6741; background: #e9eee2; }
.owner-name > span, .avatar { color: var(--fc-olive-dark); background: #e8ebdf; }
.owner-name small { color: var(--fc-muted); font-size: 10px; }
.owner-name strong { font-size: 14px; }
.owner-name p { color: var(--fc-muted); font-size: 12px; }
.unit-bottom { color: var(--fc-muted); font-size: 11px; }
.data-table th { color: var(--fc-muted); font-size: 11px; }
.data-table td, .data-table td strong { font-size: 14px; }
.data-table button, .owner-directory button, .activity-log button { color: var(--fc-olive-dark); background: #e8ebdf; font-size: 11px; }
.owner-directory small, .activity-log small { font-size: 11px; }
.owner-directory h3 { font-size: 19px; }
.owner-directory p, .activity-log p { font-size: 13px; }
.owner-directory em { font-size: 12px; }
.drawer:not([hidden]), .commercial-drawer, .form-modal, .confirm-modal, .complaint-detail { border-color: var(--fc-line)!important; background: #fffefa!important; }
.drawer > header, .commercial-drawer > header, .form-modal > header { border-color: var(--fc-line); background: #f5f3ec; }
.drawer > header h2, .commercial-drawer header h2, .form-modal header h2 { color: var(--fc-olive-dark); font-family: Georgia, "Times New Roman", serif; }
.drawer > header h2 { font-size: 29px; }
.drawer > header small, .drawer > header p { font-size: 11px; }
.section-title h3 { font-size: 18px; }
.section-title button, .section-title span { color: var(--fc-olive); font-size: 12px; }
.details article small, .info-row small, .administrator-details small, .rental-details small { font-size: 10px; }
.details article strong, .info-row strong, .administrator-details strong, .rental-details strong { font-size: 13px; }
.details article p, .resident-access-empty, .administration-empty, .rental-direct, .rental-empty { font-size: 12px; }
.type-tabs button { font-size: 12px; }
.type-tabs button.active { color: var(--fc-olive-dark); }
.new-entry textarea, .timeline article p { font-size: 13px; }
.timeline article strong { font-size: 12px; }
.timeline article time, .timeline article small { font-size: 11px; }
.form-modal header small, .form-grid-local label { font-size: 13px; }
.form-modal header h2 { font-size: 28px; }
.form-modal header p, .administration-form-title small, .rental-form-title small, .form-note { font-size: 12px; }
.form-grid-local input, .form-grid-local select, .form-grid-local textarea { color: var(--fc-ink); border-color: var(--fc-line); background: #fffefa; font-size: 14px; }
.administration-form-title strong, .rental-form-title strong { color: var(--fc-olive-dark); font-size: 18px; }
.managed-unit-check, .administrator-fields, .broker-fields, .details article, .summary-cards article { background: #f1f1e9; }
.managed-badge { color: var(--fc-olive-dark); background: #e4e8da; font-size: 9px; }
.report-highlight, .gallery-banner, .complaint-intro { background: linear-gradient(135deg,var(--fc-olive-dark),#626b4d)!important; }
.report-highlight > i b { background: var(--fc-sage); }
.toast { background: var(--fc-olive-dark); }
.management-access-message { color: var(--fc-ink); background: var(--fc-paper); }
.management-access-message span, .management-access-message a { background: var(--fc-olive-dark); }

@media (max-width: 650px) {
  body { background-size: 100% 100%, 360px 360px; }
  .brand-name { font-size: 34px; }
  .brand-copy { font-size: 13px; }
  .login-card { padding: 28px 22px; }
  .brand-mark { width: 145px; height: 84px; }
  .topbar h1 { font-size: 29px; }
  .topbar p { font-size: 12px; }
  .sidebar nav button, .sidebar nav a { font-size: 12px; }
  .metrics small { font-size: 9px; }
  .metrics p { font-size: 10px; }
  .panel-head h2 { font-size: 19px; }
  #unit-form .administrator-fields, #unit-form .broker-fields { grid-template-columns: 1fr; }
  #unit-form .administrator-fields .wide-field, #unit-form .broker-fields .wide-field { grid-column: auto; }
}

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