/* Layout compartilhado. Impressões conservam o formato original. */
:root[data-theme]{--yellow:var(--accent);--brand-2:var(--accent);--brand-warm:var(--panel-soft);--line-strong:var(--line);--blue:var(--brand);--green:var(--safe)}
:root[data-theme=dark]{--button-brand:#2766b4;--blue-dark:#204f83;--green-dark:#176447}
:root{--button-brand:var(--brand)}
body{background:var(--bg);color:var(--text)}
main,.main,.page,.container,.shell,.content,section,article,form,fieldset,.card,.panel,.grid,.workspace,.chart-grid,.chart-area,.table-wrap,.table-wrapper{min-width:0;max-width:100%;box-sizing:border-box}
header:first-of-type{flex-wrap:wrap;background:var(--header);color:var(--text)}
.portal-theme-control{display:flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap;margin:4px 0;color:var(--text)}
label,header p,.metric span{color:var(--muted)}
.portal-theme-control{flex-direction:row!important}
.secondary,.btn.secondary{background:var(--panel-soft);color:var(--text)}
:root[data-theme=dark] .sidebar{background:linear-gradient(180deg,#101e34,#080e19)}
:root[data-theme=dark] .nav button,:root[data-theme=dark] .nav a{color:var(--text)}
.nav button.active,.nav button:hover,.nav a:hover{color:var(--on-accent)}
:root[data-theme=dark] tbody tr:hover,:root[data-theme=dark] tbody tr:hover td{background-color:var(--panel-soft)}
.portal-report-header{display:flex;width:100%;justify-content:flex-end;padding:14px;position:absolute;left:0;top:0}
.portal-theme-control select{width:auto;min-width:130px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text)}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{background-color:var(--panel);color:var(--text);border-color:var(--line);max-width:100%;box-sizing:border-box}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
dialog,.modal,.modal-content,.modal-box,.dialog,.card,.panel,.filters,.metric,.kpi,.stat,.stat-card{background-color:var(--panel);color:var(--text);border-color:var(--line)}
table{color:var(--text);border-color:var(--line);max-width:100%}
thead,thead th{background-color:var(--panel-soft);color:var(--text)}
td,th{border-color:var(--line);overflow-wrap:anywhere}
.top-actions,.actions,.header-actions,.toolbar,.buttons,.button-row{flex-wrap:wrap;min-width:0;max-width:100%}
img,svg,canvas,video{max-width:100%}
.chart-area,.chart-container,.chart-wrap{min-width:0}
.portal-stock-lookup{padding:20px;margin:18px 0;background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:14px}
.portal-stock-lookup h2{margin:0 0 8px;font-size:19px}.portal-stock-lookup p{color:var(--muted);font-size:13px}
.portal-lookup-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:16px 0}
.portal-lookup-form label{flex:1 1 260px;display:grid;gap:6px}.portal-lookup-form input{width:100%;padding:12px}
#addressLookupStatus{padding:8px 0;font-size:13px;color:var(--muted)}
.portal-lookup-totals{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.portal-lookup-totals strong{background:var(--panel-soft);padding:9px 12px;border-radius:8px}
.portal-lookup-rows{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}
.portal-lookup-row{border:1px solid var(--line);border-radius:10px;padding:14px;overflow-wrap:anywhere}.portal-lookup-row p{margin:8px 0}
.portal-mobile-menu{display:none}
/* Tables change to labeled records when the available width cannot contain them. */
@media screen{
 table.portal-table-cards{display:block!important;width:100%!important;min-width:0!important;table-layout:auto!important}
 table.portal-table-cards thead{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)}
 table.portal-table-cards tbody,table.portal-table-cards tfoot{display:block!important;width:100%!important}
 table.portal-table-cards tr{display:block!important;margin:0 0 14px;border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--panel)}
 table.portal-table-cards td,table.portal-table-cards tfoot th{display:block!important;width:auto!important;min-width:0!important;max-width:100%!important;white-space:normal!important;text-align:left!important;padding:9px 6px!important;overflow-wrap:anywhere}
 table.portal-table-cards td[data-label]:not([colspan])::before{content:attr(data-label);display:block;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:5px}
 table.portal-table-cards td>*{max-width:100%;min-width:0}
 table.portal-table-cards input,table.portal-table-cards select{min-width:0!important}
}
@media(max-width:900px){
 .app>.shell{display:block!important;grid-template-columns:minmax(0,1fr)!important}
 .sidebar{width:100%!important;max-width:100%;position:static!important;min-height:0!important}
 .sidebar .nav{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .sidebar .nav>*{min-width:0;white-space:normal;overflow-wrap:anywhere}
 .portal-mobile-menu{display:inline-flex;padding:10px 14px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px}
 .sidebar.portal-menu-closed{display:none!important}
 .grid,.cards,.stats,.metrics,.kpis,.chart-grid,.charts-grid,.workspace,.columns,.two-cols,.two-columns,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 header:first-of-type{position:relative;gap:12px;padding:14px!important}
 .topbar .brand,.brand-text{min-width:0}.brand-text span{white-space:normal}
 .modal,.modal-content,.modal-box,dialog{max-width:calc(100vw - 24px)!important;box-sizing:border-box}
}
@media(max-width:600px){
 main,.main,.page,.container{padding-left:12px!important;padding-right:12px!important;width:100%!important}
 .grid,.cards,.stats,.metrics,.kpis,.chart-grid,.charts-grid,.workspace,.columns,.two-cols,.two-columns,.form-grid,.filters,.review-grid{grid-template-columns:minmax(0,1fr)!important}
 .top-actions,.header-actions{width:100%;justify-content:flex-start!important}
 .top-actions>*{max-width:100%}.brand{max-width:100%;min-width:0}
 h1{font-size:clamp(20px,6vw,28px)!important;overflow-wrap:anywhere}
 h2,h3,p,label,a,button,summary{overflow-wrap:anywhere}
 button,.btn{white-space:normal;min-height:42px;max-width:100%}
 input,select,textarea{font-size:16px!important;min-width:0!important}
 .observed-item{min-width:0!important}.actions>label{min-width:0!important}
 .portal-stock-lookup{padding:14px}.portal-lookup-form button{width:100%}
 .card{max-width:100%;box-sizing:border-box}
 .periodo label,.saldo-inicial label{width:100%!important}
 #cardRelatorio{width:calc(100% - 24px);margin:12px;padding:22px 16px}
 body:has(#cardRelatorio){display:block;padding-top:80px}
 .portal-report-header{position:absolute!important;top:0;left:0;width:100%;display:flex;justify-content:space-between}
}
@media print{.portal-theme-control,.portal-mobile-menu,.portal-report-header,.portal-stock-lookup{display:none!important}}
