.commercial-quality-panel{container-type:inline-size;background:var(--panel)}
.commercial-quality-head{padding:1.1rem 1.2rem;background:#f8faf6}
.commercial-quality-head h3{font-size:1.15rem;line-height:1.3;text-wrap:balance}
.commercial-quality-head .panel-note{max-width:none;display:grid;gap:.12rem;margin-top:.45rem;font-size:.75rem;line-height:1.45}
.commercial-quality-head .panel-note>span:first-child{font-weight:650;color:#526157}
.commercial-quality-content{gap:1.15rem}
.quality-featured,.quality-stock-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.quality-comparison{min-width:0;color:var(--ink)}
.quality-comparison h5{margin:0;font-size:.83rem;font-weight:650;line-height:1.35;overflow-wrap:anywhere}
.quality-reading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.6rem;align-items:start;font-variant-numeric:tabular-nums}
.quality-reading small{display:block;color:#667069;font-size:.68rem;font-weight:500;line-height:1.35;margin-bottom:.2rem}
.quality-reading strong{display:block;font-size:1.22rem;line-height:1.25;white-space:nowrap;font-weight:800}
.quality-reading b{display:block;font-size:.95rem;line-height:1.5;white-space:nowrap;font-weight:650;color:#435349}
.quality-reading .quality-monthly{font-size:.66rem;margin:.2rem 0 0}
.quality-comparison.is-negative .quality-actual strong,.quality-comparison.is-negative .quality-deviation{color:#a33b16}
.quality-comparison.is-positive .quality-actual strong,.quality-comparison.is-positive .quality-deviation{color:var(--green)}
.quality-highlight{display:flex;flex-direction:column;gap:.65rem;padding:.85rem;border:1px solid #dce2d9;border-radius:12px;background:#f5f7f1}
.quality-highlight .quality-reading{grid-template-columns:1fr;gap:.45rem}
.quality-highlight .quality-actual strong{font-size:1.55rem}
.quality-highlight .quality-target{display:flex;align-items:baseline;gap:.4rem}
.quality-highlight .quality-target small{margin:0}
.quality-deviation{display:flex;flex-wrap:wrap;gap:.25rem .35rem;margin-top:auto;padding-top:.55rem;border-top:1px solid #dce2d9;font-size:.78rem;font-weight:750;font-variant-numeric:tabular-nums}
.quality-deviation span{color:var(--muted);font-size:.68rem;font-weight:500}
.quality-section h4{font-size:.8rem;letter-spacing:.05em;margin-bottom:.65rem}
.quality-section+.quality-section{padding-top:0;border-top:0}
.quality-rows{padding:0 .8rem;border:1px solid #e1ddd4;border-radius:12px;background:#fffefa}
.quality-rows .quality-comparison{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.3fr);gap:.8rem;align-items:center;padding:.85rem 0}
.quality-rows .quality-comparison+.quality-comparison{border-top:1px solid #e8e4db}
.quality-stock-grid{margin-top:.65rem}
.quality-stock{border-radius:10px;background:#f0eee7;padding:.75rem .8rem}
.quality-stock .quality-reading{grid-template-columns:1fr;margin-top:.4rem}
.quality-stock .quality-actual strong{font-size:1.08rem}
@container(max-width:410px){
  .quality-rows .quality-comparison{grid-template-columns:1fr;gap:.5rem}
  .quality-reading strong{font-size:1.18rem}
  .quality-highlight{padding:.7rem}
  .quality-highlight .quality-actual strong{font-size:1.3rem}
}
@container(max-width:290px){.quality-featured,.quality-stock-grid{grid-template-columns:1fr}}

.cup-disciplines-section{container-type:inline-size}
.cup-section-title strong{font-size:1rem}
.cup-section-title small{font-size:.75rem}
.cup-disciplines{gap:.6rem}
.cup-discipline{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:.45rem;
  padding:.75rem .8rem;
}
.cup-discipline-label{
  color:#4e5e54;
  font-size:.82rem;
  font-weight:600;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.cup-discipline-result{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.3rem .6rem;margin-top:auto}
.cup-discipline .cup-discipline-value{margin:0;font-size:1.25rem;line-height:1.25;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.cup-discipline-movement{color:var(--muted);font-size:.76rem;line-height:1.3;font-weight:650;white-space:nowrap}
.cup-discipline-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.3rem .6rem;padding-top:.45rem;border-top:1px solid #e2ddd3;color:#526157;font-size:.78rem;line-height:1.3}
.cup-discipline-footer b{color:var(--ink);font-weight:750;font-variant-numeric:tabular-nums}
@container(max-width:350px){.cup-disciplines{grid-template-columns:1fr}}

.kpi-month-progress{
  margin:.75rem 0 0;
  padding:.65rem .75rem;
  border-radius:10px;
  background:#edf4ef;
  color:#285941;
  font-size:.78rem;
  font-weight:600;
  line-height:1.5;
}

.mini-chart{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  min-width:0;
  height:auto;
  gap:1rem;
  padding:0;
  overflow:visible;
  border-bottom:0;
}

.chart-half{
  min-width:0;
  padding:.75rem .8rem .35rem;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fbf9f4;
}

.chart-half-heading{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:1rem;
  padding:0 .15rem .25rem;
}

.chart-half-heading strong{
  font-size:.75rem;
}

.chart-half-heading span{
  color:var(--muted);
  font-size:.62rem;
}

.chart-half-plot{
  width:100%;
  min-width:0;
}

.chart-half-key{display:flex;align-items:center;flex-wrap:wrap;gap:.8rem;margin:.4rem .15rem 0;font-size:.7rem;font-weight:700}
.chart-half-key span{display:inline-flex;align-items:center;gap:.3rem}
.chart-half-key span::before{content:"";width:9px;height:9px;border-radius:3px;background:var(--orange)}
.chart-half-key .chart-key-plan{color:#a83e13}
.chart-half-key .chart-key-actual{color:var(--green)}
.chart-half-key .chart-key-actual::before{background:var(--green)}
.chart-half-key small{margin-left:auto;color:var(--muted);font-size:.65rem;font-weight:400}
.chart-value{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:#fbf9f4;stroke-width:3px;stroke-linejoin:round}

.chart-half svg{
  display:block;
  width:100%;
  min-width:0;
  max-width:100%;
  height:auto;
}

@media(max-width:700px){
  .chart-half-heading{align-items:flex-start;flex-direction:column;gap:.15rem}
  .chart-half{padding:.65rem .35rem .25rem}
}
