
/* V0.14.1 — rationalisation des menus */
.main-nav .installation-type{min-width:138px}
.workflow-context{margin:10px 12px}
.sidebar-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.step-number{display:none!important}
.calepinage-type-switch{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.future-tool-card{margin-top:4px}
.result-assumptions{margin:12px 0}

/* V0.14.1 — le bâtiment actif quitte Projet pour rejoindre Bâtiment */
.building-selection-card{margin-bottom:0;background:linear-gradient(135deg,#fff,#f8fbfd)}
.building-selection-help{display:block;margin:-2px 0 10px;color:#7b8b98;line-height:1.35}
.building-geometry-divider{margin-top:12px}
.building-orientation-block{padding:11px 12px;border:1px solid #dde6eb;border-radius:9px;background:#f8fbfc}
.building-orientation-heading{font-size:11px;font-weight:800;color:#405465;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.calepinage-type-switch button:disabled{opacity:.72;cursor:not-allowed}
.calepinage-type-switch button small{margin-top:3px}


/* V0.14.2 — panneau Simulation solaire plus haut et plus compact */
.sun-panel{
  top:14px;
  right:14px;
  bottom:auto;
  width:190px;
  padding:8px 9px;
  border-radius:9px;
  z-index:420;
}
.sun-title{margin-bottom:4px;font-size:11px}
.sun-panel label{display:grid;grid-template-columns:46px 1fr 36px;gap:6px;align-items:center;font-size:11px;margin-bottom:4px}
.sun-panel label:last-of-type{margin-bottom:2px}
.sun-panel output{font-size:11px;text-align:right;color:#556675}
.sun-panel .solar-legend{margin-top:4px;font-size:10px;gap:8px}
.sun-panel .legend-shadow,.sun-panel .legend-safety{width:8px;height:8px}


/* V0.14.3 — vue principale plus compacte pour remonter les résultats */
.design-area{padding:12px}
.viewport-toolbar{height:50px;padding:0 12px}
.canvas-wrap{height:clamp(300px,44vh,410px);min-height:300px}
.results-strip{margin-top:8px;gap:8px}
.metric{padding:10px 12px;border-radius:9px}
.metric strong{font-size:16px;margin-top:4px;line-height:1.15}
.metric small{display:block;margin-top:2px;font-size:11px;line-height:1.25}
.status-metric{gap:8px}
.building-results{margin-top:10px}
@media(max-width:900px){
  .design-area{padding:10px}
  .canvas-wrap{height:clamp(280px,42vh,360px);min-height:280px}
}
@media(max-width:580px){
  .canvas-wrap{height:clamp(240px,38vh,300px);min-height:240px}
  .metric strong{font-size:15px}
}


/* V0.14.4 — page Résultats séparée de la conception */
.top-actions .button.active-page-button{background:#fff;color:#c85d12;box-shadow:0 2px 6px rgba(20,38,55,.08)}
.app-page[hidden]{display:none!important}
.app-results-page{display:grid;gap:12px}
.results-page-heading{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;box-shadow:var(--shadow)}
.results-page-heading span{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#81909c;margin-bottom:4px}
.results-page-heading h2{margin:0;font-size:24px;color:#122537}
.results-page-heading p{margin:6px 0 0;color:#6f7f8b;max-width:780px;line-height:1.45}
#page-results .building-results{margin-top:0}
#page-results .building-results-heading{margin-top:0}


/* V0.14.5 — diagnostic et visibilité de la carte web */
.site-map{background:#dfe6e9;z-index:1}
.map-system-status{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:900;min-width:280px;max-width:520px;padding:14px 18px;border:1px solid #cbd8df;border-radius:10px;background:rgba(255,255,255,.96);box-shadow:0 8px 28px rgba(20,38,55,.14);text-align:center;color:#20384b}
.map-system-status strong,.map-system-status span{display:block}
.map-system-status span{margin-top:5px;font-size:11px;color:#6f7f8b;line-height:1.4}
.map-system-status.error{border-color:#e9a6a6;background:#fff7f7;color:#a02222}
.map-system-status[hidden]{display:none!important}
.leaflet-container{width:100%;height:100%;background:#dfe6e9}


/* V0.14.6 — grande zone graphique et démarrage cartographique non bloquant */
#page-design{min-height:calc(100vh - 94px)}
#page-design .viewport-card{display:flex;flex-direction:column}
#page-design .canvas-wrap{
  height:calc(100vh - 270px);
  min-height:560px;
  max-height:none;
}
#page-design .results-strip{flex:0 0 auto}
.map-system-status{pointer-events:none}
@media(max-height:820px) and (min-width:901px){
  #page-design .canvas-wrap{height:calc(100vh - 245px);min-height:460px}
}
@media(max-width:900px){
  #page-design .canvas-wrap{height:62vh;min-height:440px}
}
@media(max-width:580px){
  #page-design .canvas-wrap{height:56vh;min-height:360px}
}


/* V0.14.7 — démarrage non bloquant et plan OpenStreetMap de secours */
.fallback-map-active{background:#dfe8ec;overflow:hidden}
.fallback-map-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#dfe8ec;z-index:5}
.map-system-status.fallback{top:18px;right:18px;left:auto;transform:none;min-width:260px;max-width:360px;padding:10px 12px;text-align:left;z-index:920;border-color:#94c6d8;background:rgba(249,253,255,.97)}
.map-system-status.fallback strong{color:#17627c}
.map-system-status.fallback span{font-size:10px}
/* La zone graphique reste grande, mais ne bloque jamais le défilement de la page. */
.canvas-wrap{height:clamp(520px,calc(100vh - 275px),720px);min-height:520px;max-height:720px}
.design-area,.viewport-card,.canvas-wrap{overflow:visible}
.viewport-card{overflow:hidden}
@media(max-width:900px){.canvas-wrap{height:clamp(420px,62vh,610px);min-height:420px}}
@media(max-width:580px){.canvas-wrap{height:clamp(340px,58vh,500px);min-height:340px}}

/* V0.14.10 — aucun remplacement automatique du fond sélectionné */
.unavailable-map-tile{background:#edf2f4}


/* V0.14.13 — copier-coller des sécurités avec points d’origine */
.obstacle-copy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.obstacle-copy-grid .button.active{background:#7a3fc2;color:#fff;border-color:#7a3fc2}
.obstacle-clipboard-status{display:grid;gap:2px;margin:8px 0;padding:8px 9px;border:1px dashed #c8b0df;border-radius:8px;background:#fbf8ff;color:#5f4775}
.obstacle-clipboard-status strong{font-size:11px}
.obstacle-clipboard-status span{font-size:10px;line-height:1.35;color:#78638b}
.leaflet-container.solar-obstacle-origin-pick{cursor:crosshair!important}
@media(max-width:580px){.obstacle-copy-grid{grid-template-columns:1fr}}


/* V0.14.13 — bâtiment sans calepinage et copie guidée */
.calepinage-type-switch.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.calepinage-type-switch #layoutNoneButton.active{border-color:#7d8790;background:#f1f3f5;color:#46525c}
.no-layout-notice{display:grid;gap:4px;margin:10px 0;padding:12px;border:1px solid #cfd7dd;border-radius:9px;background:#f5f7f8;color:#42515d}
.no-layout-notice strong{font-size:12px}
.no-layout-notice span{font-size:10px;line-height:1.4;color:#687783}
.module-layout-settings[hidden],.no-layout-notice[hidden]{display:none!important}
.layout-state.none{background:#eef1f3;color:#5d6a74;border-color:#d2d9de}
.solar-obstacle-origin-pick{cursor:crosshair!important}
.obstacle-clipboard-status strong{color:#613193}
@media(max-width:580px){.calepinage-type-switch.three{grid-template-columns:1fr}}


/* V0.14.16 — affichage du fond de plan dans la vue 3D */
.plan-toggle-button{
  border:0;
  border-radius:6px;
  background:transparent;
  padding:8px 9px;
  color:#536575;
  font-weight:800;
  font-size:10px;
  cursor:pointer;
}
.plan-toggle-button:hover{background:#f7fafb}
.plan-toggle-button.active{background:#fff;color:#c85d12;box-shadow:0 2px 6px rgba(20,38,55,.08)}

/* V0.15.0 — panneaux 2D et modules sur tables */
.calepinage-type-switch.three{align-items:stretch}
.calepinage-type-switch.three button{min-width:0;line-height:1.15;padding:9px 6px}
.calepinage-type-switch.three button small{min-height:20px;line-height:1.15}
.calepinage-type-switch #layoutTablesButton.active{border-color:#ec8b3e;background:#fff3e8;color:#b64f09}
.table-layout-settings{margin:12px 0;padding:12px;border:1px solid #f0c49f;border-radius:10px;background:#fffaf5}
.table-layout-settings[hidden]{display:none!important}
.table-layout-heading{margin-bottom:10px}
.table-layout-heading span{display:block;font-size:10px;font-weight:800;letter-spacing:.08em;color:#bd6423}
.table-layout-heading strong{display:block;margin-top:3px;color:#273f51}
.table-dimensions-info{display:grid;gap:3px;margin-top:10px;padding:9px 10px;border-radius:8px;background:#eef7fa;color:#24485d}
.table-dimensions-info strong{font-size:12px}
.table-dimensions-info span{font-size:10px;color:#627887;line-height:1.35}
.leaflet-module-2d-pane{pointer-events:none}
.layout-state.tables{background:#fff1e5;color:#bd5b15;border-color:#f0b07c}
@media(max-width:580px){.calepinage-type-switch.three{grid-template-columns:1fr 1fr}.calepinage-type-switch #layoutNoneButton{grid-column:1/-1}}

/* V0.15.4 — annulation explicite du dessin */
#obstacleDrawButton.drawing-active{background:#c73543;border-color:#c73543;color:#fff}


/* V0.15.4 — listes repliables pour bâtiments et sécurités */
.collection-disclosure{
  margin:10px 0;
  border:1px solid #dbe5ea;
  border-radius:10px;
  background:#fff;
  box-shadow:0 2px 8px rgba(22,44,63,.03);
  overflow:hidden;
}
.collection-disclosure>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:48px;
  padding:9px 11px;
  cursor:pointer;
  list-style:none;
  user-select:none;
}
.collection-disclosure>summary::-webkit-details-marker{display:none}
.collection-disclosure>summary::after{
  content:"⌄";
  flex:0 0 auto;
  color:#6c7f8d;
  font-size:16px;
  transition:transform .16s ease;
}
.collection-disclosure[open]>summary::after{transform:rotate(180deg)}
.collection-disclosure>summary:hover{background:#f7fafb}
.collection-summary-main{display:grid;gap:2px;min-width:0;flex:1}
.collection-summary-main strong{color:#223b4d;font-size:12px}
.collection-summary-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#748592;font-size:10px}
.collection-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:25px;
  height:25px;
  padding:0 7px;
  border-radius:999px;
  background:#eef4f7;
  color:#345164;
  font-size:11px;
  font-weight:800;
}
.collection-content{padding:0 9px 9px;border-top:1px solid #e8eef2}
.collection-content .building-list,.collection-content .obstacle-list{
  max-height:250px;
  overflow:auto;
  padding-top:8px;
}
.building-list-item,.obstacle-list-item{
  display:flex;
  align-items:stretch;
  gap:5px;
  border:1px solid #e0e7eb;
  border-radius:8px;
  background:#fff;
  overflow:hidden;
}
.building-list-item.active,.obstacle-list-item.selected{border-color:#f19a54;background:#fff8f2}
.building-list-select{
  display:flex;
  align-items:center;
  gap:8px;
  flex:1;
  min-width:0;
  padding:8px;
  border:0;
  background:transparent;
  text-align:left;
  cursor:pointer;
}
.building-list-index{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 24px;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#eef4f7;
  color:#3c5668;
  font-size:11px;
  font-weight:800;
}
.building-list-copy{display:grid;gap:2px;min-width:0}
.building-list-copy strong,.obstacle-list-info strong{font-size:11px;color:#263f50}
.building-list-copy small,.obstacle-list-info small{font-size:9px;line-height:1.3;color:#73838f}
.building-list-remove,.obstacle-remove-button{
  flex:0 0 30px;
  width:30px;
  border:0;
  border-left:1px solid #edf1f3;
  background:transparent;
  color:#8a98a3;
  cursor:pointer;
}
.building-list-remove:hover,.obstacle-remove-button:hover{background:#fff0f1;color:#c73543}
.obstacle-list-item{cursor:pointer;padding-left:8px}
.obstacle-list-info{display:grid;gap:2px;flex:1;min-width:0;padding:8px 0}
@media(max-width:580px){
  .collection-content .building-list,.collection-content .obstacle-list{max-height:210px}
}


/* V0.15.5 — listes compactes et azimuts indépendants */
.orientation-fields-grid{display:grid;grid-template-columns:1fr;gap:10px}
.orientation-fields-grid>label{display:grid;gap:5px}
.parapet-collection{margin-top:10px}
.collection-content .parapet-list{max-height:250px;overflow:auto;padding-top:8px}
.parapet-list-item{display:flex;align-items:stretch;gap:5px;border:1px solid #e0e7eb;border-radius:8px;background:#fff;overflow:hidden}
.parapet-list-item.selected{border-color:#f19a54;background:#fff8f2}
.parapet-list-select{display:grid;gap:2px;flex:1;min-width:0;padding:8px;border:0;background:transparent;text-align:left;cursor:pointer}
.parapet-list-select strong{font-size:11px;color:#263f50}
.parapet-list-select small{font-size:9px;line-height:1.3;color:#73838f}
.collection-remove-button{flex:0 0 auto!important;width:auto!important;min-width:58px;padding:0 8px;border:0;border-left:1px solid #edf1f3;background:transparent;color:#8a98a3;font-size:9px;font-weight:700;cursor:pointer}
.collection-remove-button:hover{background:#fff0f1;color:#c73543}
.collection-clear-button{margin-top:8px}
@media(max-width:580px){.collection-content .parapet-list{max-height:210px}}


/* V0.15.6 — azimut du calepinage, boutons cartographiques et visibilité modules */
.layout-azimuth-block{
  margin:10px 0 12px;
  padding:11px 12px;
  border:1px solid #d9e5eb;
  border-radius:9px;
  background:#f8fbfc;
}
.layout-azimuth-block label{display:grid;gap:5px}
.orientation-purpose{display:block;margin-top:7px;color:#71818d;font-size:10px;line-height:1.35}
#buildingRoofAzimuthBlock[hidden]{display:none!important}
.module-visibility-button{
  border:1px solid #d9e3e8;
  border-radius:7px;
  background:#f3f6f8;
  padding:8px 10px;
  color:#566a79;
  font-size:10px;
  font-weight:800;
}
.module-visibility-button.active{background:#fff;color:#c85d12;border-color:#efc4a5;box-shadow:0 2px 6px rgba(20,38,55,.08)}
.module-visibility-button:hover{background:#fff}
/* Les contrôles techniques Leaflet.Draw sont remplacés par les boutons métier. */
.leaflet-draw{display:none!important}
.leaflet-top.leaflet-right{top:10px;right:10px}
.leaflet-control-zoom a{color:#334e60!important;font-weight:700!important}
@media(max-width:700px){
  .toolbar-right{flex-wrap:wrap;justify-content:flex-end}
  .module-visibility-button{padding:7px 8px}
}


/* V0.15.7 — ruban cartographique explicite et visibilité 2D indépendante */
.map-tool-ribbon{
  min-height:44px;
  display:flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-bottom:1px solid #dce5ea;
  background:#f5f8fa;
  overflow-x:auto;
  scrollbar-width:thin;
}
.map-tool-ribbon.hidden{display:none!important}
.map-tool-ribbon-title{
  flex:0 0 auto;
  margin-right:3px;
  color:#6f818e;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
}
.map-ribbon-button{
  flex:0 0 auto;
  min-height:30px;
  padding:6px 10px;
  border:1px solid #d6e0e5;
  border-radius:7px;
  background:#fff;
  color:#344f60;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.map-ribbon-button:hover{border-color:#efb17f;background:#fffaf6}
.map-ribbon-button.active{border-color:#f09a58;background:#fff3ea;color:#c85d12}
.map-ribbon-button.danger{color:#a53a45}
.map-ribbon-button.danger.active{border-color:#dc7c86;background:#fff0f2;color:#a92d3b}
.map-ribbon-button.confirm{border-color:#49a978;background:#eaf8f0;color:#237348}
.map-tool-ribbon-spacer{flex:1 1 auto;min-width:10px}
.module-2d-toggle.active{border-color:#efb17f;background:#fff3ea;color:#c85d12}
.map-onboarding{top:16px}
@media(max-width:900px){
  .map-tool-ribbon{padding:5px 7px;gap:5px}
  .map-ribbon-button{padding:6px 8px}
  .map-tool-ribbon-title{display:none}
}


/* V0.16.0 — Ombrières photovoltaïques 2D / 3D */
.canopy-workflow{display:block}
.canopy-workflow[hidden],.canopy-panel[hidden],.canopy-map-ribbon[hidden]{display:none!important}
.canopy-sidebar-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.canopy-context{background:linear-gradient(135deg,#173f57,#225a73)}
.canopy-active-card{margin-bottom:10px}
.canopy-draw-help{display:block;margin:7px 0 10px;color:#758794;line-height:1.4}
.canopy-list{display:grid;gap:7px;max-height:285px;overflow:auto;padding-right:2px}
.canopy-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:stretch}
.canopy-list-select{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center;border:1px solid #d9e3e8;border-radius:8px;background:#fff;padding:8px;text-align:left;color:#243746;cursor:pointer}
.canopy-list-item.active .canopy-list-select{border-color:#ff8428;background:#fff6ee;box-shadow:inset 3px 0 #ff8428}
.canopy-list-index{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#eaf3f7;color:#1d5870;font-weight:800}
.canopy-list-copy{display:grid;gap:2px;min-width:0}.canopy-list-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canopy-list-copy small{color:#72838f;line-height:1.3}
.canopy-list-remove{border:1px solid #f2c4c8;background:#fff5f6;color:#b52e3c;border-radius:8px;padding:0 9px;font-weight:700;cursor:pointer}
.canopy-status,.canopy-calculated{margin-top:10px;padding:10px 11px;border:1px solid #dbe6eb;border-radius:8px;background:#f6fafc;color:#4b6170;line-height:1.42}
.canopy-calculated strong{color:#163f56}
.canopy-map-ribbon{border-top:1px solid #dfe8ec}
body.canopy-mode .map-onboarding strong::after{content:" — mode ombrières"}
@media(max-width:900px){.canopy-sidebar-tabs{grid-template-columns:repeat(4,1fr)}.canopy-list{max-height:220px}}


/* V0.16.1 — édition complète des ombrières */
.canopy-edit-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 6px}
.canopy-edit-actions .button{min-height:42px;white-space:normal;line-height:1.15}
.canopy-action-help{display:block;color:#71808c;line-height:1.35;margin-bottom:10px}
.canopy-placement-origin{filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}
.canopy-list-remove{min-width:76px}
@media(max-width:580px){.canopy-edit-actions{grid-template-columns:1fr}}


/* V0.17.0 — ombrières dans les résultats et le rapport */
.canopy-result-card{border-left:4px solid #ff7b22}
.canopy-result-card header>div>span{color:#c65c12}
.report-supports-section{margin-top:18px;break-inside:avoid}
.report-supports-section h2{margin:0 0 8px}
.report-supports-section table{width:100%;border-collapse:collapse;font-size:12px}
.report-supports-section th,.report-supports-section td{padding:7px 8px;border:1px solid #d8e0e5;text-align:left}
.report-supports-section th{background:#eef3f5}


/* V0.17.0 — rapport de rendement PVGIS */
.yield-report-card{margin:14px 0 16px;padding:16px;border:1px solid #d9e3e8;border-radius:12px;background:#fff;box-shadow:0 5px 16px rgba(27,49,65,.06)}
.yield-report-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.yield-report-header h2{margin:3px 0 4px;font-size:21px;color:#122537}.yield-report-header p{margin:0;color:#6f7f8b;max-width:700px;line-height:1.4}
.yield-eyebrow{font-size:10px;font-weight:800;letter-spacing:.12em;color:#e66b1b}
.yield-report-actions{display:grid;grid-template-columns:130px 190px;gap:8px;min-width:350px}.yield-report-actions label{font-size:11px;font-weight:700;color:#506371}.yield-report-actions .button{align-self:end;min-height:38px}
.yield-status{display:flex;gap:8px;align-items:center;margin:14px 0 12px;padding:10px 12px;border-radius:8px;background:#eef6f8;color:#315164}.yield-status strong{white-space:nowrap}.yield-status.loading{background:#fff2e8;color:#8b4a1d}.yield-status.error{background:#fff0f1;color:#9b2b38}.yield-status.fallback{background:#fff8df;color:#725a13}.yield-status.stale{border:1px dashed #e8995d}
.yield-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}.yield-kpis .metric-card{padding:12px;border:1px solid #e0e7eb;border-radius:9px;background:#fafdfe}.yield-kpis span{display:block;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:#81909c}.yield-kpis strong{display:block;margin:4px 0 2px;font-size:19px;color:#122537}.yield-kpis small{color:#778691}
.yield-chart-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.85fr);gap:12px}.yield-chart-panel{border:1px solid #e0e7eb;border-radius:10px;padding:10px;background:#fff;min-width:0}.yield-chart-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}.yield-chart-title small{color:#83919b}.yield-chart-panel canvas{display:block;width:100%;height:auto;max-height:360px}.yield-cumulative-panel{margin-top:12px}.yield-cumulative-panel canvas{max-height:240px}
.yield-support-table{margin-top:12px}.yield-support-table table{width:100%;border-collapse:collapse;font-size:12px}.yield-support-table th,.yield-support-table td{padding:7px 8px;border-bottom:1px solid #e3e9ed;text-align:left}.yield-support-table th{color:#526574;background:#f3f7f9}.yield-support-table td:nth-child(n+3),.yield-support-table th:nth-child(n+3){text-align:right}.yield-disclaimer{margin:10px 0 0;color:#7a8893;font-size:11px;line-height:1.4}
.report-yield-section{margin-top:20px;break-before:page;break-inside:auto}.report-yield-heading{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid #ef7622;padding-bottom:7px}.report-yield-heading span{font-size:10px;letter-spacing:.11em;color:#788692}.report-yield-heading h2{margin:2px 0 0}.report-yield-heading>strong{font-size:12px;color:#496170}.report-yield-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.report-yield-kpis>div{border:1px solid #d9e1e6;padding:8px}.report-yield-kpis span{display:block;font-size:9px;text-transform:uppercase;color:#75838d}.report-yield-kpis strong{display:block;margin-top:4px;font-size:15px}.report-yield-charts{display:grid;grid-template-columns:1.55fr 1fr;gap:10px}.report-yield-charts>div,.report-yield-cumulative{border:1px solid #dfe5e9;padding:6px;break-inside:avoid}.report-yield-charts h3,.report-yield-cumulative h3{margin:0 0 4px;font-size:12px}.report-yield-charts canvas,.report-yield-cumulative canvas{display:block;width:100%;height:auto}.report-yield-cumulative{margin-top:8px}.report-yield-note{font-size:10px;color:#677782}.report-yield-section table{width:100%;border-collapse:collapse;font-size:10px;margin-top:8px}.report-yield-section th,.report-yield-section td{padding:5px 6px;border:1px solid #dce3e7}.report-yield-section th{background:#eef3f5}
@media(max-width:1050px){.yield-report-header{display:block}.yield-report-actions{margin-top:12px;min-width:0;grid-template-columns:1fr 1fr}.yield-kpis{grid-template-columns:1fr 1fr}.yield-chart-grid{grid-template-columns:1fr}}
@media(max-width:620px){.yield-report-actions,.yield-kpis{grid-template-columns:1fr}.yield-status{align-items:flex-start;flex-direction:column}.yield-chart-title{display:block}}
@media print{.report-yield-section{display:block}.report-yield-charts canvas{max-height:260px}.report-yield-cumulative canvas{max-height:180px}}
