html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
input,select,textarea{min-width:0}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
.modal-open{overflow:hidden}.modal-open body{overflow:hidden}
@supports(height:100dvh){.shell,.login{min-height:100dvh}dialog{max-height:92dvh}#edit{max-height:90dvh}}
@media(max-width:700px){
 body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
 .shell,.login{min-width:0;min-height:100svh}
 aside{padding:calc(16px + env(safe-area-inset-top)) 16px 14px;height:auto;min-width:0}
 nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-top:16px;overflow:visible}
 nav button{min-height:48px;padding:10px 3px;text-align:center;font-size:12px;white-space:normal;overflow-wrap:anywhere}
 .side-bottom{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:6px 10px;margin-top:14px;padding-top:12px;border-top:1px solid #ffffff25;font-size:11px}
 .side-bottom br{display:none}.side-bottom button[data-action=logout]{width:auto;margin:0 0 0 auto;min-height:44px;padding:9px 13px}
 .side-bottom button.settings-button{margin:0;min-width:44px;min-height:44px}
 main{padding:0 14px calc(24px + env(safe-area-inset-bottom));min-width:0}
 .heading{flex-wrap:wrap;gap:16px;margin:22px 0}.heading>div{min-width:0;width:100%}
 h1,.property h3,.panel-head h2{overflow-wrap:anywhere}.heading>button{min-height:44px;font-size:14px}
 button,button.small{min-height:44px}button.small{font-size:13px;padding:10px 13px}
 input,select,textarea,#edit input:not([type=radio]),#edit select,#edit textarea,.finance-panel select{font-size:16px;max-width:100%;min-height:46px}
 input[type=radio]{min-height:0;flex-shrink:0}
 input[type=date]{min-width:0;max-width:100%;width:100%;-webkit-appearance:none;appearance:none;min-height:46px}
 input[type=date]::-webkit-date-and-time-value{text-align:left}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{min-width:0;padding:16px 12px}.stat strong{font-size:21px;overflow-wrap:anywhere}.stat label{line-height:1.4;margin-bottom:12px}
 .portfolio-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.portfolio-tabs button{padding:10px 8px;white-space:normal;min-width:0;font-size:12px}
 .detail-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-tabs button{font-size:12px}
 .toolbar{flex-wrap:wrap}.toolbar input{max-width:none}.toolbar label,.finance-filters label{min-width:0;width:100%}.toolbar select{min-width:0}
 .panel-head{padding:17px 14px;gap:12px;flex-wrap:wrap}.panel-body{padding:16px}.panel-head>div{min-width:0}
 .property{padding:18px}.property footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.property .price{line-height:1.5}.property .price small{display:block}
 .alert-row{align-items:flex-start;flex-wrap:wrap}.alert-row>div{min-width:0;overflow-wrap:anywhere}
 .attachment-row{align-items:flex-start}.attachment-row>div{min-width:0}.attachment-row button{flex-shrink:0}
 /* Cada linha vira um cartão com rótulos, sem perder a tabela no desktop. */
 .table-wrap{overflow:visible}.table-wrap table,.table-wrap tbody{display:block;width:100%}
 .table-wrap thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .table-wrap tr{display:block;padding:10px 14px;border-bottom:1px solid #dce4f0}
 .table-wrap td{display:grid;grid-template-columns:minmax(90px,.7fr) minmax(0,1.3fr);gap:5px 12px;align-items:start;padding:10px 0;border:0;overflow-wrap:anywhere}
 .table-wrap td::before{content:attr(data-label);grid-column:1;grid-row:1 / span 8;font-size:11px;font-weight:600;color:#637994;padding-top:3px}
 .table-wrap td>*{grid-column:2;min-width:0}.table-wrap td small{margin-top:0}.table-wrap td .pill{justify-self:start;white-space:normal}
 .table-wrap td button{width:100%;margin:2px 0}.finance-panel select{min-width:0;width:100%}
 dialog{position:fixed;inset:auto;margin:0;top:calc(var(--visible-top,0px) + 8px);left:8px;width:calc(100% - 16px);max-width:none;max-height:calc(var(--visible-height,100dvh) - 16px);padding:20px;border-radius:14px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
 dialog:has(#edit){padding:0;max-width:none}
 #edit{max-height:calc(var(--visible-height,100dvh) - 16px);min-height:0}
 #edit>.fields{min-width:0;min-height:0;padding:18px 16px;scrollbar-gutter:auto;-webkit-overflow-scrolling:touch;scroll-padding-block:20px}
 form .fields{grid-template-columns:minmax(0,1fr)}.modal-header{padding:16px;gap:10px}.modal-header h2{font-size:22px;margin-top:5px}.modal-header p{font-size:11px}
 .modal-close{width:44px;height:44px;min-width:44px}
 #edit>.actions{padding:12px 16px calc(12px + env(safe-area-inset-bottom));gap:10px}#edit>.actions button{padding:12px 8px}
 #edit .rental-options label{min-width:0;width:100%;flex-basis:100%}
 #toast{left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));max-width:calc(100% - 28px);font-size:14px;z-index:20}
 .login-brand{padding:calc(25px + env(safe-area-inset-top)) 24px 25px}.login-brand h1{font-size:28px;margin-top:10px}.login-brand p{font-size:13px}
 .login-form{padding:28px 24px calc(28px + env(safe-area-inset-bottom))}.login-form form{max-width:100%}
}
@media(max-width:360px){.stats{grid-template-columns:minmax(0,1fr)}.table-wrap td{grid-template-columns:90px minmax(0,1fr)}}
@media(max-width:700px) and (max-height:500px){.modal-header p,.modal-header .eyebrow{display:none}.modal-header{padding:10px 16px}#edit>.actions{padding-block:8px}}

@media(max-width:700px){nav{grid-template-columns:repeat(3,minmax(0,1fr))}#report-filter{display:grid;grid-template-columns:minmax(0,1fr);width:100%}#report-filter label{min-width:0}.finance-panel .panel-head>button{width:100%}}

@media(max-width:700px){.detail-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Navegação mobile: barra compacta e menu lateral acessível. */
.mobile-header,.mobile-menu-close{display:none}.mobile-menu-backdrop[hidden]{display:none}
@media(max-width:900px){
 html.mobile-nav-open,html.mobile-nav-open body{overflow:hidden;overscroll-behavior:none}
 .shell{display:block;min-height:100svh}.mobile-header{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:40;min-height:68px;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;background:#f5f8fcf5;border-bottom:1px solid #dce6f1;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
 .mobile-header img{width:86px;height:43px;object-fit:contain;flex-shrink:0}.mobile-header>span{font-size:13px;font-weight:600;color:#49647e;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-header>button{width:44px;height:44px;min-height:44px;padding:10px;background:#e4eef8;color:#244c73;display:grid;place-items:center}.mobile-header svg{width:22px;height:22px}
 #main-sidebar{position:fixed;inset:0 auto 0 0;width:min(320px,87vw);height:100vh;height:100dvh;z-index:70;padding:calc(18px + env(safe-area-inset-top)) 18px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transform:translateX(-105%);visibility:hidden;transition:transform .2s ease,visibility .2s;background:#eef4fb;border-right:1px solid #d6e2ef;box-shadow:12px 0 40px #12304720}
 .mobile-nav-open #main-sidebar{transform:translateX(0);visibility:visible}.mobile-menu-close{display:grid;place-items:center;align-self:flex-end;flex-shrink:0;width:44px;height:44px;min-height:44px;font-size:26px;background:#dfeaf6;color:#294f74;padding:0;margin-bottom:5px}
 .mobile-menu-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:60;border:0;border-radius:0;background:#12283f66;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);padding:0;width:100%;height:100dvh}
 #main-sidebar .brand{width:180px;max-width:100%;align-self:center;padding:0;border:0;background:transparent;flex-shrink:0}#main-sidebar>.tagline{text-align:center;margin:12px 0 18px;font-size:9px}
 #main-sidebar nav{display:flex;flex-direction:column;gap:5px;margin:0;overflow:visible}#main-sidebar nav button{display:flex;align-items:center;justify-content:flex-start;gap:14px;text-align:left;min-height:48px;padding:12px 16px;font-size:14px;white-space:nowrap;border-radius:9px}#main-sidebar nav .menu-icon{width:21px;height:21px}#main-sidebar nav button.active{background:#dbeafa;box-shadow:inset 3px 0 #2e97c5}
 #main-sidebar .side-bottom{display:block;margin-top:22px;padding-top:18px;border-top:1px solid #d7e3ef;font-size:11px;line-height:1.6;overflow-wrap:anywhere;flex-shrink:0}#main-sidebar .side-bottom br{display:block}#main-sidebar .side-bottom button.settings-button{display:inline-grid;place-items:center;width:40px;height:40px;min-width:40px;min-height:40px;margin:0 0 0 7px;padding:0}#main-sidebar .side-bottom button[data-action=logout]{width:100%;min-height:44px;margin:12px 0 0;padding:12px 14px}
 main{padding:0 16px calc(28px + env(safe-area-inset-bottom));min-width:0}.heading{margin:22px 0 18px;gap:12px;align-items:flex-start}.heading h1{font-size:26px;line-height:1.2}.heading p{font-size:12px}.heading .eyebrow{font-size:9px;margin-bottom:7px}.heading>button{font-size:12px;min-height:44px;padding:11px 14px;flex-shrink:0}.heading>div{min-width:0}
 .portfolio-tabs{display:flex;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:2px 0 10px;margin-bottom:10px;-webkit-overflow-scrolling:touch}.portfolio-tabs::-webkit-scrollbar{display:none}.portfolio-tabs button{flex:0 0 auto;min-height:42px;white-space:nowrap;padding:10px 13px;font-size:11px}
 .cards,.grid{grid-template-columns:minmax(0,1fr)}.overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-intro{margin-top:12px;gap:12px}.overview-intro h2{font-size:21px}.overview-intro>button{font-size:11px;min-height:44px}.overview-portfolio{gap:12px;font-size:11px}.overview .calendar-view{grid-template-columns:minmax(0,1fr)}.overview .calendar-toolbar{gap:10px}.calendar-toolbar .field{min-width:0}.calendar-navigation .field{width:auto}.calendar-navigation input[type=month]{min-width:0;width:100%;font-size:16px;min-height:46px}.calendar-toolbar>label{flex:1;min-width:120px}.calendar-navigation{flex-basis:100%}.calendar-navigation .field{flex:1}
 .alert-banner{padding:15px;gap:12px;flex-wrap:wrap}.alert-banner p{font-size:12px}.alert-banner button{min-height:44px}.registry-report-tabs{gap:7px}.registry-report-tabs button{min-height:44px}.detail-tabs{overflow-x:auto}.footnote{font-size:11px}
}
@media(max-width:700px){
 .heading{flex-direction:row;flex-wrap:wrap}.heading>div{width:auto;flex:1;min-width:160px}.heading>button{align-self:center}.overview-stat{padding:14px 12px}.overview-stat strong{font-size:20px}.overview-stat-top{gap:5px;font-size:11px}.overview-stat-icon{width:25px;height:25px}.overview .dashboard-calendar-heading{gap:10px}.overview .dashboard-calendar-heading p{font-size:11px}.calendar-cell,.overview .calendar-cell{min-height:75px}.calendar-agenda .panel-head h2{font-size:16px}.calendar-toolbar input,.calendar-toolbar select{font-size:16px}.calendar-navigation{gap:6px}.calendar-navigation>button{min-width:40px;padding:10px}.calendar-navigation>button#calendar-today{padding:10px 12px}.calendar-toolbar>label{width:auto}.overview .calendar-toolbar>label{width:auto}.login-brand{padding-top:calc(20px + env(safe-area-inset-top));padding-bottom:6px}.login-brand .brand{width:220px}.login-form{padding:18px 16px calc(26px + env(safe-area-inset-bottom))}.login-form form{width:100%;padding:25px 22px}.login-form h1{font-size:27px}.login-form .field{margin-top:20px}.login-form button{width:100%;min-height:48px}.login-form .note{margin-top:18px}
}
@media(prefers-reduced-motion:reduce){#main-sidebar{transition:none}}
@media print{.mobile-header,.mobile-menu-close,.mobile-menu-backdrop{display:none!important}#main-sidebar{display:none!important}main{padding:0}}
@media(max-width:900px){.portfolio-tabs{flex-wrap:nowrap;max-width:100%}}
