/* ========== 质量驾驶舱独立样式（不影响旧质量中台） ========== */
/* 导航项可见性由 app.js 按显式 quality-cockpit 权限控制，管理员不自动放行。 */

/* 品牌紫 V2：取自公司 PPT 母版，且仅在集团质量总览激活时生效。 */
html[data-theme="violet"] body.quality-cockpit-active {
  --bg:#F6F5F8; --panel:#FFFFFF; --panel2:#F5F2F8; --border:#E2DBE9;
  --txt:#373545; --muted:#62596D; --blue:#7A60A1; --blue2:#7A60A1;
  --cyan:#397C98; --green:#2E7D5B; --red:#C83F49; --orange:#B56B1E;
  --input-bg:#FFFFFF; --detail-bg:#FAF8FB; --badge-bg:#EEE6F3;
  --card-bg:linear-gradient(180deg,#FFFFFF 0%,#FAF8FB 100%);
  --card-border:#E2DBE9;
  --nav-hover-bg:#F5F2F8; --nav-hover-border:#D8CEE1;
  --nav-active-bg:#7A60A1; --nav-active-border:#7A60A1;
  --c-muted:#62596D; --c-label:#373545; --c-white:#373545;
  --c-axis:#9F95A8; --c-grid:#E2DBE9; --c-border:#D8CEE1;
  --c-blue:#7A60A1; --c-red:#C83F49; --c-green:#2E7D5B; --c-cyan:#397C98; --c-orange:#B56B1E;
  --c-detail:#FAF8FB; --c-input:#FFFFFF;
}

html[data-theme="violet"] body.quality-cockpit-active .qcc-page-title,
html[data-theme="violet"] body.quality-cockpit-active .qcc-title { color:#5A3471; }

#qualityCockpit.qcc-executive-v2 {
  min-height:100%;
  background:var(--bg);
  color:var(--txt);
}

/* 进入新驾驶舱时沿用全站主题；退出后 class 会移除。 */
body.quality-cockpit-active,
body.quality-cockpit-active #dashView { background:var(--bg); color:var(--txt); }
body.quality-cockpit-active .sidebar { position:sticky; top:0; height:100vh; overflow-y:auto; background:var(--panel); border-right:1px solid var(--border); box-shadow:none; }
body.quality-cockpit-active .logo { color:var(--blue2); }
body.quality-cockpit-active .logo-sub,
body.quality-cockpit-active .nav-section-title { color:var(--muted); }
body.quality-cockpit-active .sidebar-foot .btn-ghost { background:var(--panel); border-color:var(--border); color:var(--muted); }

#qualityCockpit #qccThemeDd { display:block; }
#qualityCockpit .topbar { margin-bottom:6px; background:var(--panel); border:1px solid var(--border); box-shadow:none; border-radius:8px; }
#qualityCockpit .topbar .filters { align-items:center; gap:10px; padding:7px 10px; }
#qualityCockpit .qcc-global-filters .filters { flex-wrap:nowrap; }
#qualityCockpit .topbar-right { align-self:center; padding-top:0; }
#qualityCockpit .topbar label { color:var(--muted); }
#qualityCockpit .multi-dd-btn,
#qualityCockpit select { background:var(--input-bg); border-color:var(--border); color:var(--txt); }
#qualityCockpit .multi-dd-btn { min-height:30px; padding:6px 10px; }
#qualityCockpit .multi-dd-panel { background:var(--panel); border-color:var(--border); color:var(--txt); box-shadow:0 10px 28px rgba(0,0,0,.20); }
#qualityCockpit .kc-tabs-wrap { margin-bottom:6px; background:transparent; border:0; border-bottom:1px solid var(--border); border-radius:0; padding:0 4px; box-shadow:none; }
#qualityCockpit .kc-tabs { gap:26px; }
#qualityCockpit .kc-tab { position:relative; border:0; border-radius:0; background:transparent; color:var(--muted); box-shadow:none; padding:6px 2px 8px; }
#qualityCockpit .kc-tab:hover { color:var(--blue2); background:transparent; }
#qualityCockpit .kc-tab.active { color:var(--blue2); background:transparent; border:0; box-shadow:none; }
#qualityCockpit .kc-tab.active::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--blue2); }
#qualityCockpit .kc-tab-zh { color:var(--muted); opacity:.78; }
#qualityCockpit .panel { background:var(--panel); border-color:var(--border); box-shadow:none; color:var(--txt); }
#qualityCockpit .panel-title { color:var(--txt); }
#qualityCockpit .panel-title > .muted,
#qualityCockpit .qcc-section-title > .muted { display:block; margin-top:2px; font-size:.86em; font-weight:400; line-height:1.25; }
#qualityCockpit table { color:var(--txt); }
#qualityCockpit th { color:var(--muted); }
#qualityCockpit td, #qualityCockpit th { border-color:var(--border); }

.qcc-head { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.qcc-page-head { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom:6px; }
.qcc-page-actions { display:flex; align-items:center; gap:12px; }
.qcc-page-title { font-size:22px; font-weight:600; color:var(--txt); letter-spacing:.3px; }
.qcc-page-sub { margin-top:4px; font-size:10px; color:var(--muted); letter-spacing:.7px; }
.qcc-data-scope { font-size:12px; color:var(--blue2); font-weight:600; }
.qcc-title { font-size:20px; font-weight:800; color:var(--blue2); }
.qcc-title span { color:var(--c-cyan); }
.qcc-legend { display:flex; align-items:center; gap:14px; flex-wrap:wrap; font-size:12px; color:var(--muted); }
.qcc-lg { display:inline-flex; align-items:center; gap:5px; }
.qcc-lg .dot { display:inline-block; width:9px; height:9px; border-radius:50%; }

.qcc-tab { padding-top:0; }
.qcc-tab .kpi-row { margin-bottom:14px; }

/* ===== 管理层总览（确认版） ===== */
.qcc-tab { padding-top:0; }
.qcc-executive-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
.qcc-executive-card { position:relative; overflow:hidden; background:var(--panel); border:1px solid var(--border); border-radius:11px; padding:13px 15px 12px; min-width:0; }
.qcc-executive-card::after { content:""; position:absolute; width:58px; height:58px; right:-22px; top:-24px; border-radius:50%; background:var(--panel2); }
.qcc-executive-label { position:relative; z-index:1; color:var(--muted); font-size:11px; margin-bottom:7px; }
.qcc-executive-value { position:relative; z-index:1; color:var(--txt); font-size:22px; line-height:1.15; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qcc-executive-value small { font-size:11px; font-weight:500; color:var(--muted); }
.qcc-executive-value.brand { color:var(--blue2); }
.qcc-executive-value.risk { color:var(--c-red); }
.qcc-executive-value.watch { color:var(--c-orange); }
.qcc-rank-moves { display:flex; align-items:center; gap:10px; font-size:13px; line-height:1.25; white-space:nowrap; }
.qcc-rank-move { display:inline-flex; align-items:center; gap:3px; }
.qcc-rank-move b { color:var(--txt); font-weight:700; }
.qcc-rank-move.up { color:var(--c-green); }
.qcc-rank-move.flat, .qcc-rank-move.none { color:var(--muted); }
.qcc-rank-move.down { color:var(--c-red); }
.qcc-executive-value.cap { white-space:normal; overflow:visible; }
.qcc-cap-sites { display:flex; flex-direction:column; gap:4px; font-size:10px; line-height:1; }
.qcc-cap-site { display:grid; grid-template-columns:38px minmax(34px,1fr) 78px; align-items:center; gap:6px; }
.qcc-cap-site b { color:var(--txt); font-size:10px; }
.qcc-cap-site i { height:5px; overflow:hidden; border-radius:999px; background:var(--panel2); }
.qcc-cap-site i em { display:block; width:0; height:100%; border-radius:inherit; background:var(--blue2); }
.qcc-cap-site small { color:var(--muted); font-size:9px; text-align:right; white-space:nowrap; }
.qcc-executive-sub { position:relative; z-index:1; color:var(--muted); font-size:10px; margin-top:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.qcc-overview-panel { background:var(--panel); border:1px solid var(--border); border-radius:11px; padding:13px 14px; min-width:0; }
.qcc-sites-panel { margin-bottom:12px; }
.qcc-section-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:10px; }
.qcc-section-title { color:var(--txt); font-size:13px; font-weight:600; }
.qcc-section-title small { color:var(--muted); font-size:10px; font-weight:400; margin-left:5px; }
.qcc-link { padding:0; border:0; background:transparent; color:var(--blue2); font:inherit; font-size:10px; cursor:pointer; white-space:nowrap; }
.qcc-link:hover { text-decoration:underline; }
.qcc-site-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.qcc-site-card { border:1px solid var(--border); border-radius:9px; padding:11px 12px; background:var(--detail-bg); min-width:0; }
.qcc-site-card.good { border-top:2px solid var(--c-green); }
.qcc-site-card.watch { border-top:2px solid var(--c-orange); }
.qcc-site-card.risk { border-top:2px solid var(--c-red); }
.qcc-site-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.qcc-site-top > strong { color:var(--blue2); font-size:12px; }
.qcc-status-pill { padding:2px 7px; border-radius:9px; font-size:9px; }
.qcc-status-pill.good { background:rgba(52,211,153,.14); color:var(--c-green); }
.qcc-status-pill.watch { background:rgba(251,191,36,.14); color:var(--c-orange); }
.qcc-status-pill.risk { background:rgba(248,113,113,.14); color:var(--c-red); }
.qcc-site-main { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:12px; padding-bottom:9px; border-bottom:1px solid var(--border); }
.qcc-site-score { color:var(--txt); font-size:28px; line-height:1; font-weight:600; }
.qcc-site-score small { display:block; margin-top:4px; color:var(--muted); font-size:9px; font-weight:400; }
.qcc-site-rank { text-align:right; }
.qcc-site-rank span { display:block; color:var(--muted); font-size:9px; }
.qcc-site-rank strong { display:block; color:var(--txt); font-size:12px; margin-top:4px; }
.qcc-site-rank em { margin-left:4px; font-style:normal; font-size:9px; }
.qcc-site-rank em.good { color:var(--c-green); }
.qcc-site-rank em.risk { color:var(--c-red); }
.qcc-site-loss { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding-top:8px; }
.qcc-site-loss span { display:block; color:var(--muted); font-size:9px; }
.qcc-site-loss strong { display:block; color:var(--txt); font-size:11px; margin-top:3px; }
.qcc-site-loss strong.risk { color:var(--c-red); }

.qcc-overview-middle { display:grid; grid-template-columns:1.15fr .85fr; gap:12px; margin-bottom:12px; }
.qcc-overview-legend { display:flex; gap:10px; color:var(--muted); font-size:9px; }
.qcc-overview-legend span { display:inline-flex; align-items:center; gap:4px; }
.qcc-overview-legend i { width:6px; height:6px; border-radius:50%; }
.qcc-overview-legend .hy { background:var(--c-blue); }
.qcc-overview-legend .gx { background:var(--c-green); }
.qcc-overview-legend .id { background:var(--c-cyan); }
.qcc-risk-list { display:flex; flex-direction:column; }
.qcc-risk-row { display:grid; grid-template-columns:64px minmax(0,1fr) 56px; align-items:center; gap:8px; padding:10px 0; border-top:1px solid var(--border); }
.qcc-risk-row:first-child { border-top:0; padding-top:3px; }
.qcc-risk-base { color:var(--txt); font-size:10px; font-weight:600; }
.qcc-risk-base i { display:inline-block; width:6px; height:6px; margin-right:6px; border-radius:50%; }
.qcc-risk-base i.risk { background:var(--c-red); }
.qcc-risk-base i.watch { background:var(--c-orange); }
.qcc-risk-issue { min-width:0; }
.qcc-risk-issue strong, .qcc-risk-issue small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.qcc-risk-issue strong { color:var(--txt); font-size:10px; font-weight:500; }
.qcc-risk-issue small { color:var(--muted); font-size:9px; margin-top:3px; }
.qcc-risk-side { text-align:right; }
.qcc-risk-side span { display:block; color:var(--muted); font-size:8px; }
.qcc-risk-side strong { display:block; margin-top:3px; font-size:10px; }
.qcc-risk-side strong.risk { color:var(--c-red); }
.qcc-risk-side strong.watch { color:var(--c-orange); }

.qcc-overview-summary { display:grid; grid-template-columns:1.1fr .9fr; gap:12px; }
.qcc-mini-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.qcc-mini-kpi, .qcc-gate, .qcc-drill { appearance:none; text-align:left; border:1px solid var(--border); background:var(--detail-bg); color:var(--txt); border-radius:8px; cursor:pointer; transition:border-color .15s, transform .15s; }
.qcc-mini-kpi:hover, .qcc-gate:hover, .qcc-drill:hover { border-color:var(--blue2); transform:translateY(-1px); }
.qcc-mini-kpi { padding:8px 9px; min-width:0; }
.qcc-mini-kpi span { display:block; color:var(--muted); font-size:8px; line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qcc-mini-kpi strong { display:block; color:var(--blue2); font-size:13px; font-weight:600; margin-top:5px; }
.qcc-mini-kpi strong.risk { color:var(--c-red); }
.qcc-gate-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.qcc-gate { padding:8px 7px; text-align:center; }
.qcc-gate strong { display:block; color:var(--blue2); font-size:11px; }
.qcc-gate span { display:block; color:var(--muted); font-size:7px; line-height:1.35; margin-top:3px; }
.qcc-drill-grid { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:7px; }
.qcc-drill { padding:8px 9px; }
.qcc-drill strong { display:block; font-size:10px; font-weight:600; }
.qcc-drill span { display:block; color:var(--muted); font-size:8px; margin-top:3px; }

/* 旧总览结构已停用，保留选择器只用于防止旧缓存意外显示。 */
.qcc-status-bar, .qcc-banner, .qcc-compare, .qcc-chart-panel { display:none; }

/* 客户 TMS 卡 */
.qcc-kpi-panel { margin-bottom:12px !important; padding:11px 12px 12px !important; }
.qcc-kpi-panel-head { margin-bottom:8px !important; }
.qcc-kpi-panel-head .panel-title { margin-bottom:0 !important; font-size:13px !important; }
.qcc-kpi-panel-head > span { color:var(--muted); font-size:9px; }
#qualityCockpit .qcc-kpi-strip { display:grid; gap:0; margin-bottom:0; border:1px solid var(--border); border-radius:12px; overflow:hidden; background:var(--panel); }
#qualityCockpit .qcc-tms-strip { grid-template-columns:repeat(6,minmax(0,1fr)); }
#qualityCockpit .qcc-internal-strip { grid-template-columns:repeat(4,minmax(0,1fr)); }
#qualityCockpit .qcc-kpi-strip .kpi-card { --accent:var(--txt); --glow:transparent; min-width:0; min-height:126px; padding:11px 11px 10px; text-align:left; background:var(--panel); border:0; border-right:1px solid var(--border); border-radius:0; box-shadow:none; transition:background .15s ease; }
#qualityCockpit .qcc-kpi-strip .kpi-card:last-child { border-right:0; }
#qualityCockpit .qcc-kpi-strip .kpi-card::after { display:none; }
#qualityCockpit .qcc-kpi-strip .kpi-card::before { content:""; position:absolute; top:0; left:0; right:0; height:3px; background:transparent; }
#qualityCockpit .qcc-kpi-strip .kpi-card:hover { transform:none; background:var(--detail-bg); box-shadow:none; }
#qualityCockpit .qcc-kpi-strip .kpi-card.active { background:linear-gradient(180deg,var(--panel2) 0%,var(--detail-bg) 100%); border-color:var(--border); box-shadow:none; }
#qualityCockpit .qcc-kpi-strip .kpi-card.active::before { background:var(--blue2); }
.qcc-kpi-top { min-height:23px; display:flex; align-items:flex-start; justify-content:space-between; gap:5px; margin-bottom:7px; }
#qualityCockpit .qcc-kpi-strip .kpi-tag { order:0; flex:0 0 auto; display:inline-flex; align-items:center; min-height:20px; margin:0; padding:2px 7px; border:0; border-radius:10px; background:var(--panel2); color:var(--blue2); font-size:8px; letter-spacing:.2px; }
#qualityCockpit .qcc-kpi-strip .qcc-kpi-en { min-height:30px; color:var(--txt); font-size:10px; line-height:1.35; font-weight:700; letter-spacing:0; }
.qcc-kpi-zh { min-height:16px; margin-top:2px; color:var(--muted); font-size:8px; line-height:1.3; }
#qualityCockpit .qcc-kpi-strip .num { margin-top:7px; color:var(--txt); font-size:23px; line-height:1; font-weight:700; text-shadow:none; }
.qcc-tms-card .num .unit { margin-left:2px; color:var(--muted); font-size:8px; font-weight:500; }
.qcc-kpi-status { min-width:0; text-align:right; white-space:nowrap; }
.qcc-kpi-status b, .qcc-kpi-status small { display:block; }
.qcc-kpi-status b { font-size:9px; font-weight:700; }
.qcc-kpi-status small { margin-top:2px; font-size:7px; font-weight:500; }
.qcc-kpi-status.up { color:var(--c-red); }
.qcc-kpi-status.down { color:var(--c-green); }
.qcc-kpi-status.flat { color:var(--muted); }
.qcc-kpi-relative { min-height:13px; margin-top:7px; color:var(--muted); font-size:7px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qcc-tms-rank-head, .qcc-tms-rank-row { display:grid; grid-template-columns:minmax(80px,1fr) 62px minmax(92px,1fr) 84px; gap:7px; align-items:center; }
.qcc-tms-rank-head { padding:5px 7px; background:var(--panel2); border-radius:6px; color:var(--muted); font-size:8px; }
.qcc-tms-rank-row { min-height:50px; padding:6px 7px; border-bottom:1px solid var(--border); }
.qcc-tms-rank-row strong { color:var(--blue2); font-size:10px; }
.qcc-tms-rank-row > b { color:var(--txt); font-size:11px; }
.qcc-tms-rank-row .qcc-kpi-status { text-align:left; }
.qcc-tms-rank-row em { justify-self:end; color:var(--blue2); font-size:8px; font-style:normal; font-weight:600; }
.qcc-tms-fact { min-height:32px; margin-top:8px; padding:8px 10px; border-left:3px solid var(--blue2); border-radius:6px; background:var(--detail-bg); color:var(--muted); font-size:9px; }
.qcc-tms-fact:empty { display:none; }
.qcc-empty { padding:22px 0; text-align:center; color:var(--muted); }

/* 内部KPI：类别 Tab + 趋势图 + 数值表 */
.qcc-cat-tabs { display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
.qcc-cat-tab { padding:8px 18px; font-size:13px; border:1px solid var(--border); border-radius:8px; background:var(--input-bg); color:var(--muted); cursor:pointer; transition:all .15s ease; }
.qcc-cat-tab:hover { border-color:var(--blue); color:var(--txt); }
.qcc-cat-tab.active { background:var(--blue); color:#fff; border-color:var(--blue); font-weight:600; box-shadow:0 4px 12px rgba(59,130,246,.3); }
.qcc-cell-val { padding:2px 10px; border-radius:6px; font-weight:700; }
.qcc-cell-val.v0 { background:rgba(52,211,153,.16); color:var(--c-green); }
.qcc-cell-val.v1 { background:rgba(251,191,36,.16); color:var(--c-orange); }
.qcc-cell-val.v2 { background:rgba(248,113,113,.2); color:var(--c-red); }

/* Plastic Internal KPI：三类指标同屏，版式向Defect Type靠拢 */
.qcc-internal-main-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; }
.qcc-internal-main-grid > .panel,
.qcc-internal-side > .panel { min-width:0; margin-bottom:0 !important; padding:9px 11px; }
.qcc-internal-primary { display:flex; flex-direction:column; }
.qcc-internal-primary .panel-head { margin-bottom:3px; }
#qccGateTrend { flex:1; min-height:260px; height:auto; }
.qcc-internal-side { display:flex; flex-direction:column; gap:8px; }
.qcc-internal-side .panel { display:flex; flex-direction:column; }
.qcc-internal-side .panel:not(.qcc-internal-empty-panel) { flex:1 1 0; }
.qcc-internal-side .panel.qcc-internal-empty-panel { flex:0 0 auto; }
.qcc-internal-side .panel-title { margin-bottom:2px; font-size:11px; }
#qccScrapTrend, #qccInternalFinalTrend { flex:1; min-height:126px; height:auto; }
.qcc-internal-empty { min-height:68px !important; height:68px !important; flex:0 0 68px !important; }
.qcc-internal-base-panel { margin-top:8px; margin-bottom:0 !important; padding:8px 10px !important; }
.qcc-internal-base-panel .panel-head { margin-bottom:5px; }
.qcc-internal-base-panel .panel-title { font-size:12px; }
.qcc-internal-base-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.qcc-internal-base { overflow:hidden; border:1px solid var(--border); border-radius:9px; background:var(--panel); }
.qcc-internal-base-head { display:flex; align-items:center; justify-content:space-between; padding:6px 8px; background:var(--panel2); }
.qcc-internal-base-head b { color:var(--txt); font-size:11px; }
.qcc-internal-base-head span { color:var(--muted); font-size:8px; }
.qcc-internal-base-body { padding:2px 7px 4px; }
.qcc-internal-base-row { display:grid; grid-template-columns:minmax(72px,1fr) 58px 48px; align-items:center; gap:6px; min-height:25px; border-top:1px solid var(--border); font-size:9px; }
.qcc-internal-base-row:first-child { border-top:0; }
.qcc-internal-base-row > span { overflow:hidden; color:var(--txt); text-overflow:ellipsis; white-space:nowrap; }
.qcc-internal-base-row > i { height:5px; overflow:hidden; border-radius:4px; background:var(--panel2); }
.qcc-internal-base-row > i > b { display:block; height:100%; border-radius:4px; background:linear-gradient(90deg,var(--blue),var(--blue2)); }
.qcc-internal-base-row > strong { color:var(--txt); font-size:9px; text-align:right; white-space:nowrap; }

/* Poka Yoke：单指标趋势 + 最新月基地排名 + 月度矩阵 */
.qcc-py-fill { position:relative; min-height:calc(100vh - 208px); overflow:hidden; }
.qcc-py-watermark { position:absolute; z-index:3; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:space-around; overflow:hidden; pointer-events:none; user-select:none; }
.qcc-py-watermark span { display:block; opacity:.20; color:var(--blue2); font-size:clamp(17px,1.25vw,22px); font-weight:700; letter-spacing:3px; white-space:nowrap; transform:rotate(-16deg); }
.qcc-py-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px !important; padding:8px 11px !important; }
.qcc-py-toolbar .panel-title { margin:0; }
.qcc-py-layout { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); gap:8px; }
.qcc-py-chart-panel { display:flex; flex-direction:column; min-width:0; height:calc((100vh - 270px) * .61); min-height:300px; margin-bottom:0 !important; padding:9px 11px !important; }
.qcc-py-chart-panel .panel-title { margin-bottom:2px; font-size:12px; }
#qccPyTrend, #qccPyRank { flex:1; min-height:0; height:auto; }
.qcc-py-matrix-panel { min-height:190px; margin-top:8px; margin-bottom:0 !important; padding:9px 11px !important; }
.qcc-py-matrix-panel .panel-title { margin-bottom:7px; font-size:12px; }
.qcc-py-empty { display:flex; align-items:center; justify-content:center; min-height:112px; margin-bottom:0 !important; color:var(--muted); font-size:12px; }
.qcc-py-matrix { width:100%; border-collapse:separate; border-spacing:0; table-layout:fixed; }
.qcc-py-matrix th, .qcc-py-matrix td { height:38px; padding:6px 9px; text-align:center; border-right:1px solid var(--border); border-bottom:1px solid var(--border); font-size:11px; }
.qcc-py-matrix th:last-child, .qcc-py-matrix td:last-child { border-right:0; }
.qcc-py-matrix thead th { background:var(--panel2); color:var(--muted); font-weight:600; }
.qcc-py-matrix tbody tr:last-child td { border-bottom:0; }
.qcc-py-matrix .qcc-py-base { color:var(--blue2); font-weight:700; text-align:left; }
.qcc-py-matrix .qcc-py-value { color:var(--txt); font-weight:700; }
.qcc-py-matrix .qcc-py-none { color:var(--muted); font-weight:400; }

/* 内部 KPI 热力矩阵 */
.qcc-heat-legend { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--muted); margin:6px 0 10px; flex-wrap:wrap; }
.qcc-heat-legend .h { display:inline-block; width:26px; height:12px; border-radius:3px; }
.qcc-heat-legend .g0 { background:rgba(52,211,153,.28); }
.qcc-heat-legend .g1 { background:rgba(251,191,36,.28); }
.qcc-heat-legend .g2 { background:rgba(248,113,113,.34); }
.qcc-heat .qcc-sec td { background:var(--panel2); font-weight:600; color:var(--blue2); text-align:left; border-bottom:1px solid var(--border); }
.qcc-heat .qcc-bv { display:flex; gap:8px; align-items:center; justify-content:center; flex-wrap:wrap; padding:3px 4px; border-radius:4px; margin:1px 0; font-size:11px; }
.qcc-heat .qcc-bv.g0 { background:rgba(52,211,153,.16); }
.qcc-heat .qcc-bv.g1 { background:rgba(251,191,36,.18); }
.qcc-heat .qcc-bv.g2 { background:rgba(248,113,113,.22); }
.qcc-heat .qcc-bv .b { color:var(--muted); }
.qcc-heat .qcc-bv .b.v0 { color:var(--c-green); }
.qcc-heat .qcc-bv .b.v1 { color:var(--c-orange); }
.qcc-heat .qcc-bv .b.v2 { color:var(--c-red); }
.qcc-heat td.qcc-none { color:var(--muted); font-style:italic; }
.qcc-heat .rowname { text-align:left; font-weight:600; min-width:150px; }
.qcc-heat .rowname .muted { font-weight:400; font-size:11px; }

/* Tab④ 缺陷类型：Gate与全局基地、月份共用同一筛选行 */
.qcc-inline-filter { flex-direction:row; align-items:center; gap:6px; }
.qcc-inline-filter > label { flex:0 0 auto; white-space:nowrap; font-size:10px !important; }
.qcc-defect-current { align-self:center; margin-left:auto; padding:3px 6px; border-radius:8px; background:var(--panel2); color:var(--muted); font-size:8px; text-align:right; white-space:nowrap; }
.qcc-gate-switch { display:flex; align-items:center; gap:7px; }
.qcc-stage-btn { min-width:38px; min-height:30px; padding:0 9px; border:1px solid var(--border); border-radius:7px; background:var(--panel); color:var(--muted); cursor:pointer; font-size:12px; transition:border-color .15s, color .15s, background .15s; }
.qcc-stage-btn:hover { border-color:var(--blue2); color:var(--blue2); }
.qcc-stage-btn.active { border-color:var(--blue2); background:var(--panel2); color:var(--blue2); box-shadow:0 0 0 1px rgba(103,59,146,.06); }
.qcc-product-filter { min-width:0; }
.qcc-product-picker { position:relative; min-width:158px; }
.qcc-product-btn { width:100%; min-height:30px; max-width:190px; overflow:hidden; padding:0 24px 0 10px; border:1px solid var(--border); border-radius:7px; background:var(--panel); color:var(--txt); cursor:pointer; font-size:10px; font-weight:600; text-align:left; text-overflow:ellipsis; white-space:nowrap; }
.qcc-product-btn::after { content:"⌄"; position:absolute; right:9px; top:6px; color:var(--muted); font-size:12px; }
.qcc-product-btn[aria-expanded="true"] { border-color:var(--blue2); background:var(--detail-bg); color:var(--blue2); }
.qcc-product-btn[aria-expanded="true"]::after { content:"⌃"; }
.qcc-product-panel { position:absolute; z-index:30; top:35px; right:0; width:430px; max-height:330px; grid-template-columns:minmax(145px,.8fr) minmax(220px,1.2fr); grid-template-rows:auto minmax(0,1fr); overflow:hidden; border:1px solid var(--border); border-radius:10px; background:var(--panel); box-shadow:0 14px 34px rgba(55,31,72,.16); }
.qcc-product-search { grid-column:1/-1; padding:8px; border-bottom:1px solid var(--border); background:var(--detail-bg); }
.qcc-product-search input { width:100%; height:30px; padding:0 10px; border:1px solid var(--border); border-radius:7px; outline:0; background:var(--input-bg); color:var(--txt); font-size:11px; }
.qcc-product-search input:focus { border-color:var(--blue2); box-shadow:0 0 0 2px rgba(103,59,146,.10); }
.qcc-product-column { min-width:0; max-height:280px; overflow:auto; padding:8px; }
.qcc-product-column:first-child { background:var(--panel2); border-right:1px solid var(--border); }
.qcc-product-head { position:sticky; top:-8px; z-index:1; margin:-8px -8px 5px; padding:9px 9px 6px; background:inherit; color:var(--muted); font-size:9px; font-weight:700; white-space:nowrap; }
.qcc-product-option { display:flex; align-items:center; justify-content:space-between; gap:7px; width:100%; min-height:29px; margin:2px 0; padding:5px 8px; overflow:hidden; border:0; border-radius:6px; background:transparent; color:var(--txt); cursor:pointer; font-size:10px; text-align:left; text-overflow:ellipsis; white-space:nowrap; }
.qcc-product-option:hover { background:var(--panel2); color:var(--blue2); }
.qcc-product-option.active { background:var(--blue2); color:#FFFFFF; font-weight:700; }
.qcc-product-option small { flex:0 0 auto; color:inherit; font-size:8px; opacity:.72; }
.qcc-product-match { padding:0; border-radius:2px; background:#F2D98A; color:inherit; }
.qcc-product-empty { padding:28px 10px; color:var(--muted); font-size:10px; text-align:center; }
.qcc-insight { margin-top:12px; background:var(--panel2); border-left:3px solid var(--c-orange); border-radius:6px; padding:10px 14px; font-size:13px; color:var(--txt); line-height:1.8; }

/* Tab④ 缺陷类型：帕累托与TOP5/环形图区各半 */
.qcc-defect-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.qcc-defect-grid > .panel { margin-bottom:0; }
.qcc-pareto-panel, .qcc-defect-right { min-width:0; }
.qcc-defect-right { display:flex; flex-direction:column; }
#qccTab-defect .panel { padding:9px 11px; }
#qccTab-defect .panel-head { margin-bottom:4px; }
#qccTab-defect .panel-title { margin-bottom:4px; font-size:12px; }
.qcc-defect-switch { display:flex; gap:6px; margin-bottom:12px; flex-shrink:0; }
.qcc-defect-right-content { display:grid; grid-template-columns:minmax(0,42fr) minmax(0,58fr); align-items:center; gap:5px; flex:1; min-height:0; }
.qcc-defect-right-body { min-width:0; }
.qcc-defect-donut { width:100%; min-width:0; height:200px; }
.qcc-cum-badge { padding:4px 8px; border-radius:10px; background:rgba(251,191,36,.14); color:var(--c-orange); font-size:9px; white-space:nowrap; }
.qcc-structured-top5-list { display:flex; flex-direction:column; }
.qcc-structured-top5-item { display:grid; grid-template-columns:18px minmax(0,1fr) auto 38px 32px; align-items:center; gap:4px; min-height:34px; border-top:1px solid var(--border); }
.qcc-structured-top5-item:first-child { border-top:0; }
.qcc-structured-rank { display:flex; align-items:center; justify-content:center; width:19px; height:19px; border-radius:5px; background:var(--panel2); color:var(--blue2); font-size:9px; font-weight:700; }
.qcc-structured-name { min-width:0; }
.qcc-structured-name strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.qcc-structured-name strong { color:var(--txt); font-size:11px; font-weight:600; }
.qcc-structured-qty { color:var(--muted); font-size:9px; white-space:nowrap; text-align:right; }
.qcc-structured-pct { color:var(--txt); font-size:10px; font-weight:600; text-align:right; }
.qcc-top5-progress { display:block; height:6px; overflow:hidden; border-radius:4px; background:var(--input-bg); }
.qcc-top5-progress > i { display:block; height:100%; min-width:2px; border-radius:4px; }
.qcc-defect-list { display:flex; flex-direction:column; gap:4px; }
.qcc-d-row { display:grid; grid-template-columns:34px 1fr 64px 44px minmax(90px,140px); align-items:center; gap:8px; padding:9px 12px; background:var(--panel2); border:1px solid var(--border); border-radius:8px; }
.qcc-d-rank { font-size:13px; font-weight:800; color:var(--blue2); }
.qcc-d-name { font-size:13px; color:var(--txt); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.qcc-d-qty { font-size:12px; color:var(--muted); text-align:right; }
.qcc-d-pct { font-size:13px; font-weight:700; color:var(--c-orange); text-align:right; }
.qcc-d-bar { height:8px; background:var(--input-bg); border-radius:5px; overflow:hidden; }
.qcc-d-bar i { display:block; height:100%; background:linear-gradient(90deg, var(--c-red), var(--c-orange)); border-radius:5px; }
.qcc-d-cum { margin-top:12px; padding:10px 12px; border:1px dashed var(--border); border-radius:8px; }
.qcc-d-cum-head { display:flex; justify-content:space-between; font-size:12px; color:var(--muted); margin-bottom:8px; }
.qcc-d-cum-head b { font-size:14px; color:var(--c-green); }
.qcc-base-top5-panel { margin-top:7px; margin-bottom:0 !important; padding:8px 10px !important; }
.qcc-base-top5-panel > .panel-head { margin-bottom:4px !important; }
.qcc-base-top5-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.qcc-base-top5 { border:1px solid var(--border); border-radius:10px; overflow:hidden; background:var(--panel); }
.qcc-base-top5-head { display:flex; justify-content:space-between; align-items:center; padding:5px 8px; color:var(--txt); font-size:11px; font-weight:700; background:var(--panel2); }
.qcc-base-top5-head span:last-child { color:var(--muted); font-size:10px; font-weight:500; }
.qcc-base-top5-content { display:grid; grid-template-columns:minmax(0,3fr) minmax(88px,2fr); align-items:center; gap:3px; padding-right:3px; }
.qcc-base-top5-list { min-width:0; }
.qcc-base-top5-item { display:grid; grid-template-columns:12px minmax(0,1fr) auto 42px 29px; gap:4px; align-items:center; min-height:22px; padding:2px 3px 2px 6px; border-top:1px solid var(--border); font-size:9px; }
.qcc-base-top5-item i { color:var(--blue2); font-style:normal; font-weight:800; }
.qcc-base-top5-item span { color:var(--txt); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.qcc-base-top5-item strong { color:var(--muted); font-size:9px; font-weight:600; text-align:right; }
.qcc-base-top5-item .qcc-top5-progress { height:5px; }
.qcc-base-top5-item .qcc-base-pct { color:var(--txt); }
.qcc-base-donut { width:100%; min-width:0; height:112px; }
.qcc-stage-badge { display:inline-block; margin-left:8px; padding:3px 9px; border-radius:10px; background:var(--badge-bg); color:var(--blue2); font-size:11px; font-weight:700; }

/* Tab⑤ 3K质量风险拦截：老板一屏管理视图 */
#qccTab-level { position:relative; overflow:hidden; }
.qcc-level-watermark { z-index:3; }
#qccTab-level .panel { margin-bottom:0; padding:8px 11px; }
.qcc-level-gatebar { display:flex; align-items:center; justify-content:space-between; min-height:42px; margin-bottom:7px !important; }
.qcc-level-stage-flow { display:flex; align-items:center; gap:9px; min-width:0; font-size:11px; font-weight:600; color:var(--muted); }
.qcc-level-stage { padding:5px 12px; border:1px solid var(--border); border-radius:7px; background:var(--detail-bg); color:var(--muted); }
.qcc-level-stage.active { border-color:var(--blue2); background:var(--blue2); color:#FFFFFF; }
.qcc-level-gate-metric { white-space:nowrap; }
.qcc-level-gate-metric b { margin-left:3px; font-size:16px; }
.qcc-level-gate-metric.critical { color:var(--c-red); }
.qcc-level-gate-metric.major { color:var(--c-orange); }
.qcc-level-stop { padding:5px 10px; border-radius:8px; font-size:10px; white-space:nowrap; }
.qcc-level-stop.blocked { background:rgba(248,113,113,.14); color:var(--c-red); }
.qcc-level-stop.clear { background:rgba(52,211,153,.14); color:var(--c-green); }
.qcc-level-stop.no-data { background:var(--panel2); color:var(--muted); }
.qcc-level-flow-arrow { color:var(--muted); font-size:15px; }
.qcc-level-demo { padding:3px 7px; border-radius:8px; background:var(--panel2); color:var(--muted); font-size:8px; letter-spacing:.5px; }
.qcc-level-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin-bottom:7px; }
#qccLevelKpis .qcc-executive-card { padding:9px 12px 8px; }
#qccLevelKpis .qcc-executive-label { margin-bottom:5px; }
#qccLevelKpis .qcc-executive-value { font-size:20px; }
#qccLevelKpis .qcc-executive-sub { margin-top:4px; }
.qcc-level-main-grid { display:grid; grid-template-columns:minmax(0,54fr) minmax(0,46fr); gap:7px; margin-bottom:7px; }
.qcc-level-main-grid > .panel { height:228px; min-width:0; overflow:hidden; }
.qcc-level-main-grid .panel-head, .qcc-level-detail-panel .panel-head { margin-bottom:4px; }
.qcc-level-main-grid .panel-title, .qcc-level-detail-panel .panel-title { margin-bottom:0; font-size:11px; }
.qcc-level-month, .qcc-level-scope { padding:2px 7px; border-radius:8px; background:var(--panel2); color:var(--blue2); font-size:8px; white-space:nowrap; }
.qcc-level-matrix { border:1px solid var(--border); border-radius:7px; overflow:hidden; }
.qcc-level-matrix-head, .qcc-level-matrix-row { display:grid; grid-template-columns:minmax(92px,1.35fr) repeat(3,minmax(46px,.65fr)) minmax(62px,.8fr) minmax(62px,.75fr); align-items:center; min-height:35px; }
.qcc-level-matrix-head { min-height:27px; background:var(--panel2); color:var(--muted); font-size:9px; font-weight:600; }
.qcc-level-matrix-row { border-top:1px solid var(--border); color:var(--txt); font-size:11px; }
.qcc-level-matrix-head > span, .qcc-level-matrix-row > span { padding:0 6px; text-align:center; }
.qcc-level-matrix-head > span:first-child, .qcc-level-matrix-row > span:first-child { text-align:left; }
.qcc-level-base { font-weight:700; color:var(--blue2); }
.qcc-level-count { font-size:13px; font-weight:700; }
.qcc-level-count.critical { color:var(--c-red); }
.qcc-level-count.major { color:var(--c-orange); }
.qcc-level-count.minor { color:var(--blue2); }
.qcc-level-risk { display:inline-flex; align-items:center; justify-content:center; padding:3px 7px; border-radius:9px; font-size:8px; font-weight:700; }
.qcc-level-risk.high { background:rgba(248,113,113,.14); color:var(--c-red); }
.qcc-level-risk.watch { background:rgba(251,191,36,.14); color:var(--c-orange); }
.qcc-level-risk.controlled { background:rgba(52,211,153,.14); color:var(--c-green); }
.qcc-level-risk.no-data { background:var(--panel2); color:var(--muted); }
#qccLevelChart { height:190px; }
.qcc-level-detail-panel { min-height:38px; margin-bottom:7px !important; }
.qcc-level-detail-heading { display:flex; align-items:center; gap:12px; }
.qcc-level-detail-meta { display:flex; align-items:center; gap:12px; }
.qcc-level-detail-meta > span { padding:2px 7px; border-radius:8px; background:var(--panel2); color:var(--muted); font-size:8px; }
.qcc-toggle { color:var(--blue2); cursor:pointer; font-size:9px; font-weight:600; user-select:none; }
.qcc-toggle-prominent { display:inline-flex; align-items:center; padding:4px 10px; border:1px solid var(--blue2); border-radius:6px; background:var(--detail-bg); font-size:10px; }
.qcc-toggle-prominent:hover { background:var(--panel2); }
#qccLevelTbl { max-width:100%; overflow:auto; margin-top:7px; border:1px solid var(--border); border-radius:8px; }
.qcc-level-excel { min-width:720px; border-collapse:separate; border-spacing:0; table-layout:fixed; }
.qcc-level-excel th, .qcc-level-excel td { height:28px; padding:4px 8px; text-align:center; border-right:1px solid var(--border); border-bottom:1px solid var(--border); font-size:10px; }
.qcc-level-excel th:last-child, .qcc-level-excel td:last-child { border-right:0; }
.qcc-level-excel thead tr:first-child th { background:var(--panel2); color:var(--blue2); font-weight:700; }
.qcc-level-excel thead tr:nth-child(2) th { background:var(--detail-bg); color:var(--muted); font-size:9px; font-weight:600; }
.qcc-level-excel tbody tr:nth-child(3n+1) td { border-top:1px solid var(--border); }
.qcc-level-base-band-0 td { background:var(--panel); }
.qcc-level-base-band-1 td { background:var(--detail-bg); }
.qcc-level-excel-base { width:110px; color:var(--blue2); font-weight:700; text-align:left !important; vertical-align:middle; }
.qcc-level-excel-name { width:92px; font-weight:700; text-align:left !important; }
.qcc-level-excel-name.critical, .qcc-level-excel-qty.critical { color:var(--c-red); }
.qcc-level-excel-name.major, .qcc-level-excel-qty.major { color:var(--c-orange); }
.qcc-level-excel-name.minor, .qcc-level-excel-qty.minor { color:var(--blue2); }
.qcc-level-excel-qty { font-weight:700; }
.qcc-level-excel-rate { color:var(--muted); }

/* 图表通用 */
#qualityCockpit .chart { width:100%; }
#qualityCockpit .panel { margin-bottom:14px; }
.qcc-status-meta { display:none !important; }

@media (min-width:901px) {
  #qccGateBody.qcc-internal-fill { min-height:calc(100vh - 208px); display:grid; grid-template-rows:minmax(360px,2fr) minmax(146px,1fr); gap:8px; }
  #qccGateBody.qcc-internal-fill .qcc-internal-main-grid { min-height:0; }
  #qccGateBody.qcc-internal-fill .qcc-internal-base-panel { display:flex; flex-direction:column; min-height:0; margin-top:0; }
  #qccGateBody.qcc-internal-fill .qcc-internal-base-grid,
  #qccGateBody.qcc-internal-fill .qcc-internal-base,
  #qccGateBody.qcc-internal-fill .qcc-internal-base-body { flex:1; min-height:0; }
  #qccGateBody.qcc-internal-fill .qcc-internal-base { display:flex; flex-direction:column; }
  #qccGateBody.qcc-internal-fill .qcc-internal-base-body { display:grid; grid-auto-rows:minmax(25px,1fr); }
}

/* 1920×1080管理者主版：按浏览器可视高度自适应，不写死物理分辨率。 */
@media (min-width:1200px) and (min-height:781px) {
  #qccTab-overview #qccOvTrend { height:clamp(205px,24vh,255px) !important; }
}

/* 1920×1080@125% 与 1366×768：压缩留白，保留全部核心数据。 */
@media (min-width:901px) and (max-height:780px) {
  #qualityCockpit .qcc-page-head { margin-bottom:4px; }
  #qualityCockpit .qcc-page-title { font-size:19px; }
  #qualityCockpit .qcc-page-sub { margin-top:2px; }
  #qualityCockpit .kc-tabs-wrap,
  #qualityCockpit .topbar { margin-bottom:4px; }
  #qualityCockpit .topbar .filters { gap:7px; padding:5px 8px; }
  #qccTab-overview .qcc-executive-grid { gap:8px; margin-bottom:8px; }
  #qccTab-overview .qcc-executive-card { padding:8px 10px; }
  #qccTab-overview .qcc-executive-label { margin-bottom:3px; font-size:10px; }
  #qccTab-overview .qcc-executive-value { font-size:19px; }
  #qccTab-overview .qcc-executive-sub { margin-top:3px; font-size:9px; }
  #qccTab-overview .qcc-overview-panel { padding:8px 10px; }
  #qccTab-overview .qcc-sites-panel,
  #qccTab-overview .qcc-overview-middle { margin-bottom:8px; }
  #qccTab-overview .qcc-section-head { margin-bottom:6px; }
  #qccTab-overview .qcc-site-grid,
  #qccTab-overview .qcc-overview-middle,
  #qccTab-overview .qcc-overview-summary { gap:8px; }
  #qccTab-overview .qcc-site-card { padding:7px 9px; }
  #qccTab-overview .qcc-site-top { margin-bottom:5px; }
  #qccTab-overview .qcc-site-main { padding-bottom:5px; }
  #qccTab-overview .qcc-site-score { font-size:23px; }
  #qccTab-overview .qcc-site-loss { padding-top:5px; }
  #qccTab-overview #qccOvTrend { height:170px !important; }
  #qccTab-overview .qcc-risk-row { padding:6px 0; }
  #qccTab-overview .qcc-mini-grid,
  #qccTab-overview .qcc-gate-grid,
  #qccTab-overview .qcc-drill-grid { gap:5px; }
  #qccTab-overview .qcc-mini-kpi,
  #qccTab-overview .qcc-gate,
  #qccTab-overview .qcc-drill { padding:5px 7px; }
  #qccTab-overview .qcc-mini-kpi strong { margin-top:3px; }
  #qccTab-overview .qcc-drill-grid { margin-top:5px; }
}

@media (min-width:901px) and (max-width:1439px) {
  body.quality-cockpit-active .sidebar { width:180px; padding-left:9px; padding-right:9px; }
}

/* 高桌面视口：保持既有信息结构，让缺陷类型主图和基地卡片填满可用高度 */
@media (min-width:901px) and (min-height:900px) {
  #qccTab-defect > .qcc-defect-grid { height:calc((100vh - 208px) * .56); }
  #qccTab-defect > .qcc-base-top5-panel { display:flex; flex-direction:column; height:calc((100vh - 208px) * .42); }
  #qccTab-defect .qcc-pareto-panel,
  #qccTab-defect .qcc-defect-right,
  #qccTab-defect .qcc-base-top5 { display:flex; flex-direction:column; }
  #qccTab-defect #qccPareto,
  #qccTab-defect .qcc-defect-right-content,
  #qccTab-defect .qcc-base-top5-grid,
  #qccTab-defect .qcc-base-top5-content { flex:1; min-height:0; }
  #qccTab-defect #qccPareto { height:auto !important; }
  #qccTab-defect .qcc-defect-donut,
  #qccTab-defect .qcc-base-donut { height:100%; min-height:0; }
  #qccTab-defect .qcc-base-top5-list { display:grid; grid-template-rows:repeat(5,minmax(0,1fr)); height:100%; }
  #qccTab-defect .qcc-base-top5-item { min-height:0; padding-top:0; padding-bottom:0; font-size:clamp(10px,.68vw,12px); }
  #qccTab-defect .qcc-base-top5-item strong { font-size:clamp(10px,.62vw,11px); }
}

@media (max-width:1100px) {
  .qcc-executive-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .qcc-mini-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #qualityCockpit .qcc-tms-strip { grid-template-columns:repeat(3,minmax(0,1fr)); }
  #qualityCockpit .qcc-tms-strip .kpi-card:nth-child(3) { border-right:0; }
  #qualityCockpit .qcc-tms-strip .kpi-card:nth-child(-n+3) { border-bottom:1px solid var(--border); }
}
@media (max-width:900px) {
  body.quality-cockpit-active .sidebar { position:static; height:auto; overflow:visible; }
  .qcc-site-grid, .qcc-overview-middle, .qcc-overview-summary, .qcc-base-top5-grid, .qcc-defect-grid, .qcc-level-main-grid, .qcc-internal-main-grid, .qcc-internal-base-grid, .qcc-py-layout { grid-template-columns:1fr; }
  #qualityCockpit .qcc-global-filters .filters { flex-wrap:wrap; }
  .qcc-product-panel { left:0; right:auto; width:min(430px,calc(100vw - 36px)); }
  .qcc-defect-right-content { grid-template-columns:minmax(0,3fr) minmax(130px,2fr); }
  .qcc-level-main-grid > .panel { height:auto; min-height:218px; }
  #qualityCockpit .qcc-tms-strip, #qualityCockpit .qcc-internal-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #qualityCockpit .qcc-kpi-strip .kpi-card { border-right:1px solid var(--border); border-bottom:1px solid var(--border); }
  #qualityCockpit .qcc-kpi-strip .kpi-card:nth-child(2n) { border-right:0; }
  #qualityCockpit .qcc-kpi-strip .kpi-card:nth-last-child(-n+2) { border-bottom:0; }
  .qcc-py-fill { min-height:0; }
  .qcc-py-chart-panel { height:280px; min-height:280px; }
}
@media (max-width:600px) {
  .qcc-page-head { align-items:flex-start; flex-direction:column; }
  .qcc-executive-grid { grid-template-columns:1fr; }
  .qcc-section-head { align-items:flex-start; flex-direction:column; }
  .qcc-mini-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .qcc-gate-grid, .qcc-drill-grid { grid-template-columns:1fr 1fr; }
  .qcc-risk-row { grid-template-columns:54px minmax(0,1fr) 48px; }
  .qcc-executive-value { white-space:normal; }
  .qcc-inline-filter { align-items:flex-start; flex-direction:column; }
  .qcc-defect-current { width:100%; margin-left:0; padding-bottom:0; text-align:left; white-space:normal; }
  .qcc-defect-right-content { grid-template-columns:1fr; }
  .qcc-defect-donut { height:170px; }
  .qcc-base-top5-content { grid-template-columns:minmax(0,3fr) minmax(100px,2fr); }
  .qcc-d-row { grid-template-columns:28px minmax(0,1fr) 54px 40px; }
  .qcc-d-bar { display:none; }
  .qcc-level-stage-flow { flex-wrap:wrap; gap:5px; }
  .qcc-level-kpis { grid-template-columns:1fr 1fr; }
  .qcc-level-matrix { overflow-x:auto; }
  .qcc-level-matrix-head, .qcc-level-matrix-row { min-width:560px; }
}
