:root{
  --color-primary:#3157d5;--color-primary-dark:#2544ad;--color-accent:#22c7a9;
  --color-ink:#172033;--color-muted:#667085;--color-border:#e2e7ef;
  --color-surface:#fff;--color-background:#f4f7fb;--color-danger:#b42318;
  --color-success:#067647;--color-warning:#b54708;
  --shadow-sm:0 2px 8px rgba(23,32,51,.06);
  --shadow-md:0 16px 38px rgba(23,32,51,.09);
  --radius-sm:10px;--radius-md:16px;--radius-lg:22px;
  --space-1:.5rem;--space-2:.75rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;
  --content-width:1180px;
}
*{box-sizing:border-box}
html{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--color-ink);background:var(--color-background);scroll-behavior:smooth}
body{margin:0;min-width:320px}
button,input,select,textarea{font:inherit}
a{color:var(--color-primary);text-decoration:none}
h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.5rem,3vw,2rem)}h2{font-size:1.2rem}
small,.muted{color:var(--color-muted)}
.app-shell{min-height:100vh}.wrap{width:min(var(--content-width),100%);margin:auto;padding:24px}
.app-header{background:rgba(255,255,255,.92);border-bottom:1px solid var(--color-border);position:fixed;top:0;left:0;right:0;width:100%;z-index:40;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.app-header__inner{width:min(var(--content-width),100%);min-height:68px;margin:auto;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:12px;color:var(--color-ink);font-weight:850}.brand__mark{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;color:#fff;background:linear-gradient(135deg,var(--color-primary),#6d85eb);box-shadow:var(--shadow-sm)}
.nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.nav a{padding:9px 12px;border-radius:10px;color:var(--color-muted);font-weight:700}.nav a:hover,.nav a.active{background:#edf2ff;color:var(--color-primary)}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:22px}.page-head p{margin:5px 0 0;color:var(--color-muted)}
.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm)}
.card--highlight{background:linear-gradient(135deg,#243f9f,#3157d5);color:#fff;border:0;box-shadow:var(--shadow-md)}.card--highlight p,.card--highlight small{color:#dce5ff}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.metric{min-height:120px;display:flex;flex-direction:column;justify-content:space-between}.metric strong{font-size:clamp(1.75rem,4vw,2.2rem)}.metric span{color:var(--color-muted);font-weight:650}
.stack{display:grid;gap:14px}.section{margin-top:18px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid var(--color-primary);border-radius:12px;padding:0 17px;background:var(--color-primary);color:#fff;font-weight:780;cursor:pointer;transition:.18s ease}.button:hover{background:var(--color-primary-dark);transform:translateY(-1px)}.button.secondary{background:#fff;color:var(--color-ink);border-color:var(--color-border)}.button.ghost{background:transparent;color:var(--color-primary);border-color:transparent}
.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.actions.compact{gap:7px}.actions.compact .button{min-height:38px;padding:0 13px;font-size:14px}
.menu-card{display:flex;flex-direction:column;gap:8px;color:var(--color-ink);min-height:130px;transition:.18s ease}.menu-card:hover{border-color:#b8c5ef;transform:translateY(-2px);box-shadow:var(--shadow-md)}.menu-card span{color:var(--color-muted);line-height:1.45}.menu-card__tag{margin-top:auto;font-size:.75rem;font-weight:800;color:var(--color-primary)}
.status{display:inline-flex;align-items:center;width:max-content;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;background:#eef4ff;color:#194185}.status.available,.status.paid{background:#ecfdf3;color:var(--color-success)}.status.maintenance,.status.pending{background:#fff7ed;color:var(--color-warning)}.status.overdue{background:#fff1f0;color:var(--color-danger)}
.form{display:grid;gap:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.full{grid-column:1/-1}.field{position:relative;padding-top:7px}.field span{position:absolute;top:0;left:14px;padding:0 6px;background:#fff;color:var(--color-muted);font-size:12px;font-weight:750;z-index:1}.field input,.field select,.field textarea{width:100%;min-height:48px;border:1px solid var(--color-border);border-radius:14px;padding:12px 15px;color:var(--color-ink);background:#fff;outline:0}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(49,87,213,.12)}
.alert{margin:14px 0;padding:12px 14px;border-radius:12px;background:#eef4ff;color:#194185}.error{background:#fff1f0;color:var(--color-danger)}
.item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.line{margin:6px 0}.unit-list{display:grid;gap:8px;margin-top:16px}.unit{display:grid;grid-template-columns:minmax(150px,1fr) auto auto auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--color-border);border-radius:14px}.unit small{display:block;margin-top:3px}.money{font-weight:800;white-space:nowrap}.link-danger{border:0;background:none;color:var(--color-danger);font-weight:750;padding:8px;cursor:pointer}.delete-property{margin-top:12px;text-align:right}.empty{color:var(--color-muted);text-align:center;padding:18px}
.auth{min-height:100vh;display:grid;place-items:center;padding:18px;background:radial-gradient(circle at top right,#dce5ff,transparent 42%),var(--color-background)}.auth .card{width:min(430px,100%);box-shadow:var(--shadow-md)}
.charge{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--color-border)}.charge:last-child{border-bottom:0}.property-summary{padding:18px;border-radius:16px;background:#f7f9fc;margin-bottom:14px}
@media(max-width:800px){.app-header__inner{padding:10px 14px}.nav{display:none}.wrap{padding:16px 14px 28px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--2{grid-template-columns:1fr}.page-head,.item-head{align-items:stretch;flex-direction:column}.page-head>.actions,.item-head>.actions{width:100%}.page-head>.actions .button,.item-head>.actions .button{flex:1}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.unit{grid-template-columns:1fr auto}.unit .status{justify-self:start}.unit>.actions{justify-self:end}.charge{grid-template-columns:1fr auto}.charge .money{grid-column:1}}
@media(max-width:480px){.grid{grid-template-columns:1fr}.metric{min-height:96px}.card{padding:17px}.app-header__inner .button{min-height:38px;padding:0 12px}.charge{grid-template-columns:1fr}.charge .money{grid-column:auto}}

.adjustment-card{display:grid;grid-template-columns:minmax(210px,1.5fr) repeat(3,minmax(115px,.65fr));gap:14px;padding:16px;border:1px solid var(--color-border);border-radius:16px}
.adjustment-card>div{display:grid;align-content:start;gap:4px}.adjustment-card>div strong{font-size:1rem}.adjustment-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(150px,.6fr) minmax(200px,1fr) auto;align-items:end;gap:10px}
.index-list{display:grid;gap:0}.index-list>div{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid var(--color-border)}.index-list>div:last-child{border-bottom:0}
@media(max-width:800px){.adjustment-card{grid-template-columns:repeat(2,minmax(0,1fr))}.adjustment-card>div:first-child{grid-column:1/-1}.adjustment-actions{grid-template-columns:1fr}.adjustment-actions .button{width:100%}}
@media(max-width:480px){.adjustment-card{grid-template-columns:1fr}.adjustment-card>div:first-child{grid-column:auto}.index-list>div{align-items:flex-start;flex-direction:column;gap:3px}}

/* Navegação lateral recolhível */
.header-start{display:flex;align-items:center;gap:13px;min-width:0}
.menu-toggle{width:44px;height:44px;border:1px solid var(--color-border);border-radius:13px;background:#fff;display:grid;place-content:center;gap:4px;cursor:pointer;color:var(--color-ink);box-shadow:var(--shadow-sm)}
.menu-toggle span{display:block;width:20px;height:2px;border-radius:2px;background:currentColor;transition:.2s ease}
.menu-toggle:hover{border-color:#b8c5ef;color:var(--color-primary)}
.sidebar{position:fixed;inset:0 auto 0 0;width:min(330px,88vw);z-index:60;display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--color-border);box-shadow:24px 0 70px rgba(23,32,51,.18);transform:translateX(-104%);visibility:hidden;transition:transform .24s ease,visibility .24s}
.menu-open .sidebar{transform:translateX(0);visibility:visible}
.sidebar-backdrop{position:fixed;inset:0;z-index:50;background:rgba(15,23,42,.42);backdrop-filter:blur(2px)}
.sidebar-backdrop[hidden]{display:none}
.sidebar__head{min-height:84px;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--color-border)}
.brand--sidebar{min-width:0}.brand--sidebar>span:last-child{display:grid;gap:2px}.brand--sidebar small{font-size:11px;font-weight:650}
.sidebar__close{width:40px;height:40px;flex:0 0 auto;border:0;border-radius:12px;background:#f4f7fb;color:var(--color-muted);font-size:28px;line-height:1;cursor:pointer}
.sidebar__close:hover{background:#edf2ff;color:var(--color-primary)}
.sidebar__nav{flex:1;overflow-y:auto;padding:14px 12px;display:grid;align-content:start;gap:4px}
.sidebar__label{padding:18px 12px 7px;color:#98a2b3;font-size:10px;font-weight:850;letter-spacing:.09em}
.sidebar__nav>a,.sidebar__disabled{min-height:48px;padding:9px 12px;border-radius:13px;display:flex;align-items:center;gap:12px;color:var(--color-muted);font-weight:750}
.sidebar__nav>a:hover{background:#f4f7fb;color:var(--color-ink)}
.sidebar__nav>a.active{background:#edf2ff;color:var(--color-primary)}
.sidebar__icon{width:26px;height:26px;flex:0 0 26px;display:grid;place-items:center;border-radius:8px;background:#f4f7fb;font-size:17px;font-weight:800}
.sidebar__nav>a.active .sidebar__icon{color:#fff;background:var(--color-primary)}
.sidebar__disabled{opacity:.58;cursor:not-allowed}.sidebar__disabled>span:last-child{display:grid;gap:1px}.sidebar__disabled small{font-size:10px;font-weight:600}
.sidebar__foot{padding:14px 18px 20px;border-top:1px solid var(--color-border)}
.sidebar__foot form{margin:0}.sidebar__logout{width:100%;min-height:46px;padding:0 12px;border:0;border-radius:13px;display:flex;align-items:center;gap:12px;background:#fff1f0;color:var(--color-danger);font-weight:800;cursor:pointer}
.sidebar__logout:hover{background:#fee4e2}
.menu-open{overflow:hidden}
.app-content{min-height:calc(100vh - 69px)}
@media(min-width:801px){.sidebar{width:320px}.sidebar-backdrop{background:rgba(15,23,42,.22)}}
@media(max-width:800px){.brand--header>span:last-child{font-size:14px}.header-logout{display:none}.app-header__inner{min-height:62px}.app-content{min-height:calc(100vh - 63px)}}
@media(max-width:390px){.brand--header>span:last-child{display:none}}

/* Aparência do menu inspirada na navegação On Case */
.sidebar--oncase{width:min(410px,88vw);box-shadow:18px 0 46px rgba(15,23,42,.16)}
.sidebar--oncase .sidebar__head{min-height:112px;padding:20px 22px;border-bottom:1px solid #e8eaf0}
.sidebar-logo{min-width:0;display:flex;align-items:center;gap:10px;color:#101828}
.sidebar-logo>svg{width:39px;height:39px;color:var(--color-primary);fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.sidebar-logo>span{display:flex;align-items:baseline;gap:6px;font-size:25px;letter-spacing:-.04em}
.sidebar-logo strong{font-weight:850}.sidebar-logo b{color:var(--color-primary);font-weight:850}
.sidebar__tools{display:flex;align-items:center;gap:9px}
.sidebar__tool{width:49px;height:49px;padding:0;border:1px solid #e4e7ec;border-radius:15px;background:#fff;color:#344054;display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 5px rgba(16,24,40,.03)}
.sidebar__tool:hover{border-color:#b8c5ef;color:var(--color-primary);background:#f7f9ff}
.sidebar__tool svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sidebar--oncase .sidebar__nav{padding:24px 24px 10px;gap:5px}
.sidebar--oncase .sidebar__nav>a,.sidebar--oncase .sidebar__disabled,.sidebar--oncase .sidebar__nav form button{width:100%;min-height:60px;padding:10px 12px;border:0;border-radius:13px;display:flex;align-items:center;gap:18px;background:transparent;color:#475467;font-size:16px;font-weight:650;text-align:left}
.sidebar--oncase .sidebar__nav>a:hover,.sidebar--oncase .sidebar__nav form button:hover{background:#f4f7fb;color:#344054}
.sidebar--oncase .sidebar__nav>a.active{background:#edf2ff;color:#344054}
.sidebar--oncase .sidebar__nav svg{width:27px;height:27px;flex:0 0 27px;fill:none;stroke:var(--color-primary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sidebar--oncase .sidebar__disabled{opacity:.48}
.sidebar--oncase .sidebar__disabled>span{display:grid;gap:0}
.sidebar--oncase .sidebar__disabled small{font-size:9px;color:#98a2b3;font-weight:600}
.sidebar--oncase .sidebar__nav form{margin:0}
.sidebar--oncase .sidebar__nav form button{cursor:pointer;font-family:inherit}
.sidebar__version{margin-top:auto;padding:15px 36px 28px;color:#98a2b3;font-size:12px;letter-spacing:.02em}
@media(min-width:801px){.sidebar--oncase{width:390px}}
@media(max-width:480px){.sidebar--oncase .sidebar__head{min-height:92px;padding:16px}.sidebar-logo>span{font-size:20px}.sidebar__tool{width:44px;height:44px}.sidebar__tool svg{width:24px;height:24px}.sidebar--oncase .sidebar__nav{padding:15px 17px 8px}.sidebar--oncase .sidebar__nav>a,.sidebar--oncase .sidebar__disabled,.sidebar--oncase .sidebar__nav form button{min-height:55px;font-size:15px}.sidebar__version{padding:12px 29px 22px}}


/* Menu compacto e módulo de inquilinos */
.sidebar--oncase{width:min(350px,86vw)}
.sidebar--oncase .sidebar__head{height:69px;min-height:69px;padding:9px 16px}
.sidebar-logo>svg{width:32px;height:32px}
.sidebar-logo>span{font-size:21px}
.sidebar__tool{width:42px;height:42px;border-radius:13px}
.sidebar__tool svg{width:23px;height:23px}
.sidebar--oncase .sidebar__nav{padding:14px 16px 8px;gap:3px}
.sidebar--oncase .sidebar__nav>a,.sidebar--oncase .sidebar__disabled,.sidebar--oncase .sidebar__nav form button{min-height:52px;padding:8px 10px;gap:15px;font-size:15px}
.sidebar--oncase .sidebar__nav svg{width:25px;height:25px;flex-basis:25px}
.sidebar__version{padding:12px 26px 20px}
.tenant-toolbar form{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:end;gap:10px}
.tenant-row{display:grid;grid-template-columns:minmax(220px,1fr) auto 110px auto;align-items:center;gap:18px}
.tenant-row>div:first-child{display:grid;gap:4px}
.tenant-row>div:nth-child(3){display:grid;gap:3px;text-align:center}
.document-list{display:grid;gap:8px}
.document-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--color-border)}
.document-item:last-child{border-bottom:0}
.pagination{margin-top:18px}
.pagination nav>div:first-child{display:none}
.pagination nav>div:last-child{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pagination span[aria-current="page"] span,.pagination a{display:inline-flex;min-width:38px;min-height:38px;align-items:center;justify-content:center;padding:7px 10px;border:1px solid var(--color-border);border-radius:10px;background:#fff}
.pagination span[aria-current="page"] span{background:var(--color-primary);border-color:var(--color-primary);color:#fff}
@media(min-width:801px){.sidebar--oncase{width:350px}}
@media(max-width:800px){.tenant-row{grid-template-columns:1fr auto}.tenant-row>a{grid-column:1/-1}.tenant-toolbar form{grid-template-columns:1fr auto auto}}
@media(max-width:480px){.sidebar--oncase .sidebar__head{height:63px;min-height:63px;padding:8px 14px}.sidebar-logo>svg{width:29px;height:29px}.sidebar-logo>span{font-size:18px}.sidebar__tool{width:40px;height:40px}.sidebar--oncase .sidebar__nav{padding:10px 12px 6px}.sidebar--oncase .sidebar__nav>a,.sidebar--oncase .sidebar__disabled,.sidebar--oncase .sidebar__nav form button{min-height:49px}.tenant-toolbar form,.tenant-row{grid-template-columns:1fr}.tenant-row>div:nth-child(3){text-align:left}.tenant-row>a,.tenant-toolbar .button{width:100%}}


/* Menu lateral 25% mais estreito */
.sidebar--oncase{width:min(262px,75vw)}
.sidebar--oncase .sidebar__head{gap:6px;padding-left:12px;padding-right:12px}
.sidebar-logo{gap:7px}
.sidebar-logo>svg{width:29px;height:29px;flex:0 0 29px}
.sidebar-logo>span{gap:4px;font-size:18px}
.sidebar__tools{gap:4px}
.sidebar__tool{width:38px;height:38px;flex:0 0 38px}
.sidebar--oncase .sidebar__nav{padding-left:10px;padding-right:10px}
.sidebar--oncase .sidebar__nav>a,.sidebar--oncase .sidebar__disabled,.sidebar--oncase .sidebar__nav form button{gap:12px;font-size:14px}
.sidebar__version{padding-left:22px;padding-right:22px}
@media(min-width:801px){.sidebar--oncase{width:262px}}
@media(max-width:480px){.sidebar--oncase{width:min(262px,75vw)}.sidebar-logo>span{font-size:17px}}


/* Padrão global de foco dos campos */
.field input:focus,
.field select:focus,
.field textarea:focus{
  border:2px solid var(--color-primary);
  box-shadow:none;
  outline:none;
}
.field:focus-within>span{
  color:var(--color-primary);
  background:var(--color-surface);
  border-radius:0;
}
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  border:2px solid var(--color-primary);
  box-shadow:none;
  outline:none;
}


/* Contratos, cobranças e feriados */
.lease-row,.charge-row{display:grid;grid-template-columns:minmax(220px,1fr) auto 130px 110px auto;align-items:center;gap:16px}
.lease-row>div:first-child,.charge-row>div:first-child{display:grid;gap:4px}
.charge-row{grid-template-columns:minmax(240px,1fr) 130px 140px auto;color:var(--color-ink)}
.charge-generator{display:grid;grid-template-columns:minmax(260px,1fr) minmax(170px,.4fr) auto;align-items:end;gap:10px}
.holiday-list{display:grid}.holiday-list>article{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--color-border)}.holiday-list>article>div{display:grid;gap:4px}
.section-title form{display:flex;gap:8px}.year-filter{width:100px;border:1px solid var(--color-border);border-radius:12px;padding:9px}
.pix-qr{display:block;width:min(260px,100%);margin:16px auto;border-radius:12px}
.charge-pix{grid-column:1/-1;padding-top:10px}.charge-pix summary{color:var(--color-primary);font-weight:800;cursor:pointer}.charge-pix textarea{width:100%;margin-top:10px}
@media(max-width:800px){.lease-row,.charge-row{grid-template-columns:1fr auto}.lease-row>a,.charge-row .status{justify-self:end}.charge-generator{grid-template-columns:1fr auto}.charge-generator .field:first-child{grid-column:1/-1}}
@media(max-width:480px){.lease-row,.charge-row,.charge-generator{grid-template-columns:1fr}.lease-row>a,.charge-row .status{justify-self:stretch}.charge-generator .field:first-child{grid-column:auto}}


/* Importação de feriados pela localização */
.holiday-import-form{display:grid;grid-template-columns:130px auto;align-items:end;justify-content:start;gap:10px}
@media(max-width:700px){.holiday-import-form{grid-template-columns:1fr}.holiday-import-form .button{width:100%}}


/* Página compacta de atualização */
.update-page{max-width:900px}
.update-page .page-head{margin-bottom:16px}
.update-action{margin:0 0 18px}
.update-action__button{min-width:180px}
.update-list{display:grid;gap:9px}
.update-list--current{margin-bottom:9px}
.update-run{overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}
.update-run__summary{min-height:78px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.update-run__information{min-width:0;display:grid;gap:5px}
.update-run__headline{display:flex;align-items:center;gap:9px;min-width:0}
.update-run__headline strong{font-size:17px}
.update-run__version{overflow:hidden;color:var(--color-muted);font-size:15px;text-overflow:ellipsis;white-space:nowrap}
.update-run__information small{font-size:13px}
.update-run__dot{width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:#98a2b3}
.update-run.is-success .update-run__dot{background:var(--color-success)}
.update-run.is-error .update-run__dot{background:var(--color-danger)}
.update-run.is-running .update-run__dot{background:var(--color-warning);animation:update-pulse 1.2s ease-in-out infinite}
.update-run__actions{display:flex;gap:7px;flex:0 0 auto}
.update-icon-button{width:42px;height:42px;padding:0;border:1px solid var(--color-border);border-radius:12px;background:#fff;color:var(--color-ink);display:grid;place-items:center;cursor:pointer}
.update-icon-button:hover,.update-icon-button.is-active{border-color:var(--color-primary);color:var(--color-primary);background:#f7f9ff}
.update-icon-button.is-copied{border-color:var(--color-success);color:var(--color-success);background:#ecfdf3}
.update-icon-button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.update-run__report{border-top:1px solid var(--color-border)}
.update-run__report[hidden]{display:none}
.update-run__report pre{max-height:430px;margin:0;padding:16px;overflow:auto;background:#07110c;color:#68e39b;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word}
@keyframes update-pulse{50%{opacity:.38}}
@media(max-width:480px){
.update-action__button{width:100%}
.update-run__summary{min-height:70px;padding:10px 11px}
.update-run__headline{gap:7px}
.update-run__headline strong{font-size:16px}
.update-run__version{font-size:14px}
.update-icon-button{width:38px;height:38px;border-radius:11px}
.update-icon-button svg{width:21px;height:21px}
.update-run__report pre{padding:13px}
}


/* Direção visual ampla e leve */
:root{
  --color-background:#fff;
  --color-border:#d9deeb;
  --shadow-sm:none;
  --shadow-md:0 10px 28px rgba(23,32,51,.07);
  --radius-md:20px;
  --radius-lg:26px;
}
body{background:#fff}
.wrap{padding:34px 30px 48px}
.app-content{background:#fff}
.page-head{align-items:flex-start;margin-bottom:30px}
.page-head h1{margin-bottom:8px;font-size:clamp(1.8rem,4vw,2.35rem);letter-spacing:-.025em}
.page-head p{max-width:760px;line-height:1.55}
.card{padding:26px;border-color:var(--color-border);border-radius:var(--radius-lg);box-shadow:none}
.grid{gap:18px}
.section{margin-top:26px}
.section-title{margin-bottom:18px}
.button{min-height:50px;border-radius:15px;padding:0 22px}
.field{padding-top:8px}
.field span{left:17px;padding:0 7px}
.field input,.field select,.field textarea{min-height:54px;border-color:var(--color-border);border-radius:18px;padding:14px 17px}
.property-summary{padding:22px;border-radius:20px;background:#f7f8fc}
.unit-list,.stack{gap:14px}
.unit{padding:17px;border-radius:18px}
.lease-row,.charge-row{padding:17px 0}
.menu-card{min-height:148px;padding:24px}
@media(max-width:800px){
  .wrap{padding:28px 24px 44px}
  .page-head{margin-bottom:26px}
  .card{padding:23px}
  .section{margin-top:22px}
}
@media(max-width:480px){
  .wrap{padding:25px 20px 40px}
  .card{padding:21px;border-radius:23px}
  .page-head h1{font-size:1.85rem}
  .button{min-height:50px}
  .field input,.field select,.field textarea{min-height:54px}
  .update-run__summary{padding:10px 11px}
  .update-action__button{min-height:46px}
}


/* Cabeçalho mínimo e painel resumido */
.app-header__inner{justify-content:flex-start}
.dashboard-wrap{padding-top:26px}
.dashboard-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.dashboard-metric{min-height:104px;padding:18px 20px}
.dashboard-metric span{font-size:14px}
.dashboard-metric strong{font-size:clamp(1.65rem,4vw,2.1rem)}
.dashboard-pending{margin-top:18px}
.dashboard-pending h2{margin:.35rem 0;font-size:clamp(1.8rem,5vw,2.7rem)}
.dashboard-pending p{margin:0}
@media(max-width:800px){
  .dashboard-wrap{padding-top:22px}
  .dashboard-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .dashboard-metric{min-height:96px;padding:16px 18px}
}
@media(max-width:480px){
  .dashboard-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .dashboard-metric{min-height:90px;padding:15px}
  .dashboard-metric span{font-size:13px}
  .dashboard-pending{margin-top:16px}
}


/* Remove a cor amarela do preenchimento automático do navegador */
.field input:-webkit-autofill,
.field input:-webkit-autofill:hover,
.field input:-webkit-autofill:focus,
.field input:-webkit-autofill:active{
  -webkit-text-fill-color:var(--color-ink) !important;
  -webkit-box-shadow:0 0 0 1000px var(--color-surface) inset !important;
  box-shadow:0 0 0 1000px var(--color-surface) inset !important;
  caret-color:var(--color-ink);
  background-color:var(--color-surface) !important;
}
.field input:autofill{
  color:var(--color-ink);
  background:var(--color-surface) !important;
}


/* Galeria de fotos de imóveis e unidades */
.photo-section h2{margin:0}
.photo-section .section-title small{display:block;margin-top:4px;color:var(--color-muted)}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.photo-item{position:relative;overflow:hidden;border:1px solid var(--color-border);border-radius:18px;background:#f7f8fc}
.photo-item>a{display:block;aspect-ratio:1/1;overflow:hidden}
.photo-item img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.photo-item form{position:absolute;right:8px;bottom:8px}
.photo-remove{min-height:36px;padding:0 12px;border:0;border-radius:11px;background:rgba(180,35,24,.92);color:#fff;font-weight:750;cursor:pointer}
.photo-upload{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:10px;margin-top:18px}
.photo-upload>small{grid-column:1/-1;color:var(--color-muted)}
@media(max-width:700px){
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .photo-upload{grid-template-columns:1fr}
  .photo-upload .button{width:100%}
}


/* Cabeçalho interno com voltar */
.back-page-head{display:flex;align-items:center;gap:16px;margin-bottom:26px}
.back-page-button{width:56px;height:56px;flex:0 0 56px;display:grid;place-items:center;border:0;border-radius:17px;background:#eaf1ff;color:var(--color-primary);text-decoration:none;transition:background .18s ease,transform .18s ease}
.back-page-button:hover{background:#dfe9ff}
.back-page-button:active{transform:scale(.96)}
.back-page-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}
.back-page-button svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}
.back-page-title{min-width:0}
.back-page-title h1{margin:0;color:var(--color-ink);font-size:clamp(1.45rem,4vw,2rem);line-height:1.12;letter-spacing:-.02em}
.back-page-title p{margin:5px 0 0;color:var(--color-muted);font-size:15px;line-height:1.35}
@media(max-width:480px){
  .back-page-head{gap:13px;margin-bottom:22px}
  .back-page-button{width:52px;height:52px;flex-basis:52px;border-radius:16px}
  .back-page-button svg{width:23px;height:23px}
  .back-page-title h1{font-size:1.35rem}
  .back-page-title p{font-size:14px}
}


/* Visão de imóveis com carrossel de unidades */
.property-overview{max-width:1180px}
.property-stack{display:grid;gap:24px}
.property-group{padding:24px;border:1px solid var(--color-border);border-radius:26px;background:var(--color-surface)}
.property-group__header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.property-group__identity{min-width:0}
.property-group__title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.property-group__title h2{margin:0;font-size:clamp(1.35rem,3vw,1.75rem);letter-spacing:-.02em}
.property-group__identity>p{margin:6px 0 9px;color:var(--color-muted)}
.property-mode{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:#eef3ff;color:var(--color-primary);font-size:12px;font-weight:800}
.property-summary-line{display:flex;align-items:center;gap:7px 13px;flex-wrap:wrap;color:var(--color-muted);font-size:13px;font-weight:700}
.property-summary-line span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.property-summary-line span+span::before{content:"";position:static;width:3px;height:3px;flex:0 0 3px;border-radius:50%;background:#b2b9c8}
.property-summary-line .is-available{color:var(--color-success)}
.property-summary-line .is-occupied{color:#3157d5}
.property-summary-line .is-maintenance{color:var(--color-warning)}
.property-group__actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:0 0 auto;flex-wrap:nowrap;align-self:flex-start}
.property-group__actions form{margin:0;display:flex}
.property-action-icon{width:42px;height:42px;flex:0 0 42px;padding:0;border:1px solid var(--color-border);border-radius:13px;background:#fff;color:var(--color-primary);display:grid;place-items:center;cursor:pointer;transition:.18s ease}
.property-action-icon:hover{border-color:var(--color-primary);background:#f7f9ff}
.property-action-icon:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
.property-action-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.property-action-icon--delete{color:var(--color-danger)}
.property-action-icon:disabled{border-color:var(--color-border);background:#fff;color:#cbd1dc;cursor:not-allowed;opacity:.7}
.property-unit-carousel{display:flex;gap:14px;margin:0 -4px;padding:4px 4px 10px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.property-unit-carousel::-webkit-scrollbar{display:none}
.rental-card{width:286px;min-width:286px;min-height:190px;overflow:hidden;border:1px solid var(--color-border);border-radius:20px;background:#fff;scroll-snap-align:start}
.rental-card__main{display:grid;grid-template-columns:104px minmax(0,1fr);min-height:145px;color:var(--color-ink)}
.rental-card__photo{width:100%;min-height:0;aspect-ratio:1/1;align-self:center;display:grid;place-items:center;overflow:hidden;background:#f1f4fa;color:#9ba8c4}
.rental-card__photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.rental-card__photo svg{width:42px;height:42px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.rental-card__content{min-width:0;padding:15px 13px;display:flex;flex-direction:column}
.rental-card__heading{display:grid;gap:7px}
.rental-card__heading strong{overflow:hidden;font-size:16px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.rental-card__heading .status{padding:5px 8px;font-size:11px}
.rental-card__content>small{margin-top:9px;line-height:1.35}
.rental-card__rent{margin-top:auto;padding-top:11px;font-size:18px;font-weight:850}
.rental-card__footer{min-height:44px;padding:6px 12px;border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}
.rental-card__footer>a{font-size:13px;font-weight:800}
.rental-card__footer .link-danger{padding:6px;font-size:13px}
.rental-card--add{display:grid;place-items:center;align-content:center;gap:8px;border-style:dashed;color:var(--color-primary);text-align:center}
.rental-card__plus{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#eaf1ff;font-size:28px;font-weight:400}
.rental-card--empty{display:grid;place-items:center;padding:18px;color:var(--color-muted);text-align:center}
.property-group__delete{margin-top:2px;text-align:right}
.property-group__delete .link-danger{font-size:13px}
@media(max-width:700px){
  .property-stack{gap:20px}
  .property-group{padding:20px;border-radius:23px}
  .property-group__header{align-items:flex-start;flex-wrap:nowrap;margin-bottom:15px}
  .property-group__identity{flex:1 1 auto;min-width:0}
  .property-group__identity>p{font-size:14px}
  .property-group__actions{width:auto;justify-content:flex-end}
  .rental-card{width:260px;min-width:260px}
  .rental-card__main{grid-template-columns:92px minmax(0,1fr)}
}
@media(max-width:420px){
  .property-group{padding:17px}
  .property-group__header{gap:10px}
  .property-group__title{gap:7px}
  .property-group__title h2{font-size:1.25rem}
  .property-mode{min-height:25px;padding:0 8px;font-size:10px}
  .property-summary-line{font-size:12px}
  .property-action-icon{width:40px;height:40px;flex-basis:40px;border-radius:12px}
  .property-action-icon svg{width:20px;height:20px}
}


/* Página de imóveis fixa e carrosséis independentes */
html,body{width:100%;max-width:100%;overflow-x:hidden}
.app-shell,.app-content{width:100%;max-width:100%;min-width:0;overflow-x:hidden}
.property-overview{width:100%;max-width:100%;padding-inline:clamp(16px,4vw,34px)}
.property-stack{width:100%;min-width:0;grid-template-columns:minmax(0,1fr);gap:30px}
.property-group{width:100%;min-width:0;padding:4px 0 27px;border:0;border-bottom:1px solid var(--color-border);border-radius:0;background:transparent}
.property-group:last-child{border-bottom:0}
.property-unit-carousel{width:100%;max-width:100%;min-width:0;contain:inline-size;overflow-x:auto;overflow-y:hidden;touch-action:pan-x pan-y;scroll-behavior:smooth}
@media(max-width:700px){
  .property-overview{padding-inline:18px}
  .property-stack{gap:24px}
  .property-group{padding-bottom:23px}
}
@media(max-width:480px){
  input,select,textarea{font-size:16px}
  .property-overview{padding-inline:16px}
}


/* Bloqueio global de zoom por toque */
html,body{touch-action:pan-x pan-y}
button,a,input,select,textarea,label{touch-action:manipulation}

/* Formulários de imóvel amplos e responsivos */
.property-form-page{width:100%;max-width:1180px;padding-inline:clamp(16px,4vw,34px)}
.property-form-card{padding:0;border:0;border-radius:0;background:transparent}
.property-form-card .form-grid{gap:20px 18px}
.property-form-card>.actions{margin-top:2px}
@media(max-width:800px){
  .property-form-card .form-grid{gap:17px}
}
@media(max-width:480px){
  .property-form-page{padding-inline:16px}
}

/* Busca e ações dos cartões de unidade */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.property-search{width:100%;min-height:54px;margin:0 0 24px;padding:0 17px;display:flex;align-items:center;gap:12px;border:1px solid var(--color-border);border-radius:18px;background:#fff;color:var(--color-muted)}
.property-search:focus-within{border:2px solid var(--color-primary);color:var(--color-primary)}
.property-search svg{width:22px;height:22px;flex:0 0 22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.property-search input{width:100%;min-width:0;height:50px;padding:0;border:0;background:transparent;color:var(--color-ink);font-size:16px;outline:0}
.property-search input::placeholder{color:var(--color-muted)}
.property-search-empty{margin:0 0 24px;padding:18px;text-align:center;color:var(--color-muted)}
.rental-card__main{cursor:default}
.rental-card__footer{justify-content:flex-end}
.rental-card__actions{width:100%;display:flex;align-items:center;justify-content:flex-end;gap:6px}
.rental-card__actions form{margin:0;display:flex}
@media(max-width:480px){
  .property-search{margin-bottom:20px}
}


/* Miniaturas e galeria ampliada dos imóveis */
.rental-card__photo{position:relative}
.rental-card__zoom{position:absolute;inset:0;width:100%;height:100%;padding:8px;border:0;border-radius:0;background:transparent;color:#fff;display:flex;align-items:flex-end;justify-content:flex-end;cursor:pointer;box-shadow:none;touch-action:pan-x pan-y}
.rental-card__zoom:focus-visible{outline:2px solid var(--color-primary);outline-offset:-3px}
.rental-card__zoom svg,.photo-lightbox__close svg,.photo-lightbox__nav svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rental-card__zoom svg{width:28px;height:28px;padding:5px;border-radius:9px;background:rgba(18,32,67,.58);box-shadow:0 2px 8px rgba(18,32,67,.2);backdrop-filter:blur(4px);transition:.18s ease}
.rental-card__zoom:hover svg{background:rgba(49,87,213,.88)}
.photo-lightbox[hidden]{display:none}
.photo-lightbox{position:fixed;inset:0;z-index:120;padding:clamp(14px,3vw,32px);display:grid;place-items:center;background:rgba(12,20,40,.74)}
body.photo-lightbox-open{position:fixed;inset-inline:0;width:100%;overflow:hidden;overscroll-behavior:none}
.photo-lightbox__dialog{width:min(100%,1000px);height:min(88dvh,820px);overflow:hidden;border-radius:26px;background:#fff;display:grid;grid-template-rows:auto minmax(0,1fr);box-shadow:0 24px 70px rgba(0,0,0,.34)}
.photo-lightbox__header{min-height:70px;padding:13px 16px 13px 22px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--color-border)}
.photo-lightbox__header>div{min-width:0;display:grid;gap:2px}
.photo-lightbox__header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.photo-lightbox__header small{color:var(--color-muted)}
.photo-lightbox__close,.photo-lightbox__nav{padding:0;border:1px solid var(--color-border);background:#fff;color:var(--color-ink);display:grid;place-items:center;cursor:pointer}
.photo-lightbox__close{width:44px;height:44px;flex:0 0 44px;border-radius:14px}
.photo-lightbox__stage{position:relative;min-height:0;padding:18px 72px;display:grid;place-items:center;background:#f3f5fa;overflow:hidden;touch-action:pan-y}
.photo-lightbox__stage img{width:100%;height:100%;display:block;object-fit:contain;object-position:center;border-radius:18px}
.photo-lightbox__nav{position:absolute;top:50%;width:46px;height:58px;border-radius:15px;transform:translateY(-50%);z-index:1}
.photo-lightbox__nav--previous{left:14px}
.photo-lightbox__nav--next{right:14px}
.photo-lightbox__close:hover,.photo-lightbox__nav:hover{border-color:var(--color-primary);color:var(--color-primary)}
@media(max-width:600px){
  .photo-lightbox{padding:10px}
  .photo-lightbox__dialog{height:min(86dvh,760px);border-radius:22px}
  .photo-lightbox__header{min-height:64px;padding:10px 11px 10px 16px}
  .photo-lightbox__stage{padding:12px 50px}
  .photo-lightbox__nav{width:40px;height:52px}
  .photo-lightbox__nav--previous{left:6px}
  .photo-lightbox__nav--next{right:6px}
}


/* Cabeçalho do imóvel: identidade e ações na primeira linha; resumo na segunda */
.property-group__header{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:10px;
  margin-bottom:18px;
}
.property-group__top{
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:12px;
}
.property-group__identity{min-width:0}
.property-group__title h2{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.12;
}
.property-group__identity>p{
  margin:6px 0 0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.property-group__actions{
  grid-column:2;
  grid-row:1;
  align-self:start;
}
.property-group__header>.property-summary-line{
  grid-column:1/-1;
  width:100%;
  min-width:0;
}

@media(max-width:420px){
  .property-group__top{gap:8px}
  .property-group__title h2{font-size:1.2rem}
  .property-group__identity>p{font-size:13px}
}


/* Busca com ação principal na mesma linha */
.property-search-row{
  width:100%;
  margin:0 0 24px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 54px;
  align-items:center;
  gap:10px;
}
.property-search-row .property-search{margin:0}
.property-create-button{
  width:54px;
  height:54px;
  border:1px solid var(--color-primary);
  border-radius:18px;
  background:var(--color-primary);
  color:#fff;
  display:grid;
  place-items:center;
  box-shadow:0 5px 14px rgba(49,87,213,.16);
  transition:transform .16s ease,filter .16s ease;
}
.property-create-button:hover{filter:brightness(.96)}
.property-create-button:active{transform:scale(.96)}
.property-create-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}
.property-create-button svg{
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
}
@media(max-width:480px){
  .property-search-row{margin-bottom:20px;gap:8px}
  .property-search-row .property-search{margin-bottom:0}
}


/* Cabeçalho global fixo em todas as telas administrativas */
.has-app-header .app-content{padding-top:69px}
@media(max-width:800px){
  .has-app-header .app-content{padding-top:63px}
}
