/* v7.5.5 workspace/layout stabilization. Loaded last on purpose. */
html,body{max-width:100%;overflow-x:hidden}
body{min-width:0}
.shell,.shell>main,#app,#view{min-width:0;max-width:100%}
.shell>main{width:auto;overflow-x:clip}
#app-header{box-sizing:border-box;width:100%;max-width:100%}
#app{box-sizing:border-box;width:100%;max-width:1540px;margin:0 auto;padding:26px 30px 48px;overflow:visible}
#view{width:100%;overflow:visible}
.project-switcher{min-width:0;max-width:min(520px,52vw)}
.project-switcher select{min-width:0;width:min(360px,38vw);max-width:100%}

/* Dashboard: never force the page wider than the workspace. */
.v75-head,.v75-kpis,.v75-grid-main,.v75-grid-bottom,.v75-analytics-block{min-width:0;max-width:100%}
.v75-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.v75-kpis article,.v75-panel,.v75-panel-head,.v75-bars,.v75-bars>div{min-width:0}
.v75-kpis strong{overflow-wrap:anywhere}
.v75-grid-main{grid-template-columns:minmax(0,3fr) minmax(230px,1fr)}
.v75-chart,.v75-chart svg{max-width:100%}
.v75-bars>div{grid-template-columns:minmax(70px,90px) minmax(60px,1fr) 32px}

/* Settings is an admin workspace, not one giant document. */
.settings-tabs{position:sticky;top:78px;z-index:8;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}
.settings-tab-content,.admin-grid,.admin-grid>*{min-width:0;max-width:100%}
.admin-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px}
.admin-summary h2{font-size:clamp(22px,2vw,28px)}
.admin-metrics{justify-content:flex-end}.admin-metrics span{min-width:96px}
.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.admin-grid .admin-wide{grid-column:1/-1}
.admin-grid .panel,.admin-grid .data-action-card,.admin-grid .danger-zone{min-width:0;overflow:hidden}
.compact-form,.data-action-grid,.danger-zone,.cleanup-groups{min-width:0}
.compact-form>* ,.data-action-grid>* ,.danger-zone>* ,.cleanup-groups>*{min-width:0}
.admin-list article{min-width:0}.admin-list article>div{min-width:0}.admin-list article *{overflow-wrap:anywhere}
.role-list,.role-list details{min-width:0}.role-list p{overflow-wrap:anywhere}

/* Wide data belongs to its own scroller, never to body. */
.panel{max-width:100%}
.table{width:100%;max-width:100%}
.panel:has(.table){overflow-x:auto;overscroll-behavior-inline:contain}
pre,code{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
input,select,textarea,button{max-width:100%}

/* Dense governance controls become readable cards rather than stretched rows. */
.cleanup-groups{grid-template-columns:repeat(2,minmax(0,1fr))}
.danger-zone{grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr)}

@media(max-width:1280px){
 #app{padding:24px}
 .v75-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .v75-grid-main{grid-template-columns:minmax(0,2fr) minmax(220px,.8fr)}
 .admin-summary{grid-template-columns:1fr}.admin-metrics{justify-content:flex-start}
}
@media(max-width:1100px){
 .v75-grid-main,.v75-grid-bottom,.v75-analytics-block{grid-template-columns:1fr}
 .admin-grid{grid-template-columns:1fr}.admin-grid .admin-wide{grid-column:auto}
 .danger-zone{grid-template-columns:1fr}
}
@media(max-width:980px){
 html,body{overflow-x:hidden}
 #app{padding:20px}
 #app-header{height:auto;min-height:72px;flex-wrap:wrap;padding:14px 20px}
 .project-switcher{width:100%;max-width:none}.project-switcher select{width:auto;flex:1}
 .settings-tabs{position:static}
}
@media(max-width:700px){
 #app{padding:16px}
 .v75-kpis{grid-template-columns:1fr}
 .admin-summary{padding:20px}.admin-metrics{display:grid;grid-template-columns:1fr 1fr;width:100%}.admin-metrics span{min-width:0}
 .compact-form,.data-action-grid,.cleanup-groups{grid-template-columns:1fr}
 .settings-tabs{margin-inline:0}
}
