/* Sprint 2 — acabamento progressivo e reversível */
body:is(.bovi-dashboard-page,.bovi-page-dashboard) .bovi-page-frame,
body:is(.bovi-properties-page,.bovi-page-properties) .bovi-page-frame,
body:is(.bovi-animals-page,.bovi-page-animals) .bovi-page-frame,
body:is(.bovi-lots-page,.bovi-page-lots) .bovi-page-frame{
 display:grid;
 gap:22px;
}

body:is(.bovi-dashboard-page,.bovi-page-dashboard) .bovi-page-frame>header,
body:is(.bovi-dashboard-page,.bovi-page-dashboard) .bovi-page-frame>.page-header{
 margin-bottom:0;
 padding:clamp(20px,2.5vw,32px);
 border:1px solid var(--bovi-border);
 border-radius:var(--bovi-radius-lg);
 background:linear-gradient(135deg,#fff 0%,#f1f8f4 100%);
 box-shadow:var(--bovi-shadow);
}

body:is(.bovi-dashboard-page,.bovi-page-dashboard) .bovi-page-frame h1{
 margin-bottom:8px;
}

.bovi-s2-quick-actions,
.bovi-s2-page-actions{
 display:grid;
 grid-template-columns:repeat(4,minmax(0,1fr));
 gap:14px;
 margin:0;
}
.bovi-s2-page-actions{grid-template-columns:repeat(3,minmax(0,1fr));}
.bovi-s2-action{
 display:flex;
 align-items:center;
 gap:12px;
 min-height:78px;
 padding:15px 16px;
 border:1px solid var(--bovi-border);
 border-radius:16px;
 background:#fff;
 color:var(--bovi-text);
 text-decoration:none;
 box-shadow:var(--bovi-shadow);
 transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.bovi-s2-action:hover{
 transform:translateY(-2px);
 border-color:#a8cbb6;
 box-shadow:0 12px 30px rgba(18,72,43,.1);
}
.bovi-s2-action:focus-visible{
 outline:3px solid rgba(18,107,61,.18);
 outline-offset:2px;
}
.bovi-s2-action-icon{
 display:grid;
 place-items:center;
 flex:0 0 42px;
 height:42px;
 border-radius:12px;
 background:var(--bovi-primary-soft);
 font-size:21px;
}
.bovi-s2-action strong,.bovi-s2-action small{display:block;}
.bovi-s2-action small{
 margin-top:3px;
 color:var(--bovi-muted);
 font-weight:500;
 line-height:1.25;
}

body:is(.bovi-dashboard-page,.bovi-page-dashboard) .bovi-kpi-grid,
body:is(.bovi-dashboard-page,.bovi-page-dashboard) [class*="metric-grid"]{
 gap:16px;
}
body:is(.bovi-dashboard-page,.bovi-page-dashboard) .bovi-kpi,
body:is(.bovi-dashboard-page,.bovi-page-dashboard) [class*="metric-card"]{
 min-width:0;
 border-radius:var(--bovi-radius);
 border-color:var(--bovi-border);
 box-shadow:var(--bovi-shadow);
}
body:is(.bovi-dashboard-page,.bovi-page-dashboard) .bovi-page-frame>section,
body:is(.bovi-dashboard-page,.bovi-page-dashboard) .bovi-page-frame>.card,
body:is(.bovi-dashboard-page,.bovi-page-dashboard) .bovi-page-frame>[class*="card"],
body:is(.bovi-animals-page,.bovi-page-animals) .bovi-page-frame>section,
body:is(.bovi-lots-page,.bovi-page-lots) .bovi-page-frame>section{
 border-radius:var(--bovi-radius-lg);
 border-color:var(--bovi-border);
 box-shadow:var(--bovi-shadow);
}

body:is(.bovi-properties-page,.bovi-page-properties) form:not(.bovi-v3-search){
 padding:clamp(18px,2.4vw,30px)!important;
}
body:is(.bovi-properties-page,.bovi-page-properties) form:not(.bovi-v3-search)>*{min-width:0;}
body:is(.bovi-properties-page,.bovi-page-properties) .bovi-form-grid>button,
body:is(.bovi-properties-page,.bovi-page-properties) .bovi-form-grid>input[type="submit"]{
 justify-self:start;
 min-width:180px;
}

body:is(.bovi-animals-page,.bovi-page-animals) .bovigestor-table-scroll,
body:is(.bovi-lots-page,.bovi-page-lots) .bovigestor-table-scroll{
 border:1px solid var(--bovi-border);
 border-radius:16px;
 background:#fff;
 box-shadow:var(--bovi-shadow);
 overflow:auto;
}
body:is(.bovi-animals-page,.bovi-page-animals) table,
body:is(.bovi-lots-page,.bovi-page-lots) table{
 min-width:760px;
 box-shadow:none!important;
 border:0!important;
}
body:is(.bovi-animals-page,.bovi-page-animals) tbody tr:hover,
body:is(.bovi-lots-page,.bovi-page-lots) tbody tr:hover{background:#f5faf7;}
body:is(.bovi-animals-page,.bovi-page-animals) .bovi-s2-toolbar,
body:is(.bovi-lots-page,.bovi-page-lots) .bovi-s2-toolbar{
 display:flex!important;
 flex-wrap:wrap;
 align-items:end;
 gap:12px!important;
 padding:14px!important;
 background:#fff;
 border:1px solid var(--bovi-border);
 border-radius:14px;
 box-shadow:var(--bovi-shadow);
}
body:is(.bovi-animals-page,.bovi-page-animals) .bovi-s2-toolbar>*,
body:is(.bovi-lots-page,.bovi-page-lots) .bovi-s2-toolbar>*{
 min-width:min(220px,100%);
 flex:1 1 220px;
}
body:is(.bovi-animals-page,.bovi-page-animals) .bovi-s2-toolbar button,
body:is(.bovi-lots-page,.bovi-page-lots) .bovi-s2-toolbar button{
 flex:0 0 auto;
 min-width:130px;
}

@media(max-width:1180px){
 .bovi-s2-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));}
 .bovi-s2-page-actions{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:620px){
 .bovi-s2-quick-actions,.bovi-s2-page-actions{grid-template-columns:1fr;gap:10px;}
 .bovi-s2-action{min-height:68px;padding:12px 13px;}
 body:is(.bovi-dashboard-page,.bovi-page-dashboard) .bovi-page-frame>header,
 body:is(.bovi-dashboard-page,.bovi-page-dashboard) .bovi-page-frame>.page-header{
  padding:18px 16px;
 }
 body:is(.bovi-properties-page,.bovi-page-properties) .bovi-form-grid>button,
 body:is(.bovi-properties-page,.bovi-page-properties) .bovi-form-grid>input[type="submit"]{
  width:100%;
  justify-self:stretch;
 }
 body:is(.bovi-animals-page,.bovi-page-animals) .bovi-s2-toolbar,
 body:is(.bovi-lots-page,.bovi-page-lots) .bovi-s2-toolbar{
  display:grid!important;
  grid-template-columns:1fr;
  padding:12px!important;
 }
 body:is(.bovi-animals-page,.bovi-page-animals) .bovi-s2-toolbar>*,
 body:is(.bovi-lots-page,.bovi-page-lots) .bovi-s2-toolbar>*{
  width:100%!important;
  min-width:0!important;
 }
}

/* Responsividade global para páginas operacionais e configurações */
body.bovi-v7-ready main,
body.bovi-v7-ready [role="main"]{min-width:0!important;overflow-x:hidden!important}
body.bovi-v7-ready main *,
body.bovi-v7-ready [role="main"] *{min-width:0;max-width:100%;box-sizing:border-box}
body.bovi-v7-ready main img,
body.bovi-v7-ready [role="main"] img{height:auto}

@media(max-width:1350px){
 body.bovi-v7-ready main :is(.grid,.cards,.card-grid,.form-grid,.steps-grid,[class*="-grid"],[class*="_grid"],[class*="columns"]),
 body.bovi-v7-ready [role="main"] :is(.grid,.cards,.card-grid,.form-grid,.steps-grid,[class*="-grid"],[class*="_grid"],[class*="columns"]){
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
 }
 body.bovi-v7-ready main :is(.row,.columns,[class*="row"],[class*="columns"]),
 body.bovi-v7-ready [role="main"] :is(.row,.columns,[class*="row"],[class*="columns"]){
  flex-wrap:wrap!important;
 }
 body.bovi-v7-ready main :is(.row,.columns,[class*="row"],[class*="columns"])>* ,
 body.bovi-v7-ready [role="main"] :is(.row,.columns,[class*="row"],[class*="columns"])>*{
  flex:1 1 min(360px,100%)!important;
 }
}

@media(max-width:980px),(max-height:720px){
 body.bovi-v7-ready main,
 body.bovi-v7-ready [role="main"]{padding-left:0!important;margin-left:0!important;width:100%!important}
 body.bovi-v7-ready main :is(.grid,.cards,.card-grid,.form-grid,.steps-grid,[class*="-grid"],[class*="_grid"],[class*="columns"]),
 body.bovi-v7-ready [role="main"] :is(.grid,.cards,.card-grid,.form-grid,.steps-grid,[class*="-grid"],[class*="_grid"],[class*="columns"]),
 body.bovi-v7-ready main [style*="grid-template-columns"],
 body.bovi-v7-ready [role="main"] [style*="grid-template-columns"]{
  grid-template-columns:1fr!important;
 }
 body.bovi-v7-ready main :is(.row,.columns,[class*="row"],[class*="columns"]),
 body.bovi-v7-ready [role="main"] :is(.row,.columns,[class*="row"],[class*="columns"]){
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
 }
 body.bovi-v7-ready main :is(.row,.columns,[class*="row"],[class*="columns"])>* ,
 body.bovi-v7-ready [role="main"] :is(.row,.columns,[class*="row"],[class*="columns"])>*{
  width:100%!important;
  flex:0 0 auto!important;
 }
 body.bovi-v7-ready main :is(input,select,textarea,button),
 body.bovi-v7-ready [role="main"] :is(input,select,textarea,button){max-width:100%!important}
}

@media(max-width:620px){
 body.bovi-v7-ready main,
 body.bovi-v7-ready [role="main"]{padding-inline:12px!important}
 body.bovi-v7-ready main :is(section,article,.card,[class*="card"]),
 body.bovi-v7-ready [role="main"] :is(section,article,.card,[class*="card"]){padding-left:14px!important;padding-right:14px!important}
}
