#skuProductionPanel { min-width: 0; }
#skuProductionPanel[hidden] { display: none; }
.pp-board { --pp-teal:#087d75; --pp-ink:#203b3b; --pp-line:#e0eae8; --pp-spu-width:144px; --pp-code-width:136px; --pp-name-width:300px; --pp-column-width:136px; color:var(--pp-ink); font-size:14px; line-height:1.5; background:#fff; border:1px solid var(--pp-line); border-radius:16px; overflow:hidden; }
.pp-board * { box-sizing:border-box; }
.pp-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:25px 26px 16px; background:linear-gradient(120deg,#eff8f5 0%,#fff 75%); }
.pp-eyebrow { color:var(--pp-teal); font-size:12px; font-weight:750; letter-spacing:1.5px; margin-bottom:9px; }
.pp-header h2 { font-size:26px; line-height:1.4; margin:0 0 8px; letter-spacing:.3px; }
.pp-header p { margin:0; font-size:14px; color:#748784; }
.pp-header-actions { display:flex; gap:8px; flex-wrap:wrap; }
.pp-board button,.pp-notice button { cursor:pointer; border:1px solid #d8e4e1; border-radius:7px; color:#42605b; background:#fff; font:inherit; font-size:14px; padding:9px 12px; white-space:nowrap; }
.pp-board button:hover { border-color:#70b2a7; background:#f1f9f6; }
.pp-board button.pp-primary { background:var(--pp-teal); border-color:var(--pp-teal); color:#fff; }
.pp-board button:focus-visible,.pp-board input:focus-visible,.pp-board select:focus-visible,.pp-board [data-pp-edit]:focus-visible { outline:2px solid #0c9388; outline-offset:2px; }
.pp-save-line { display:flex; flex-wrap:wrap; align-items:center; gap:9px; min-height:35px; padding:0 26px 12px; font-size:12px; color:#748783; }
.pp-save-line [data-pp-status] { color:#366f61; }
.pp-save-line > span:last-of-type { margin-left:auto; }
.pp-live-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:#369981; }
.pp-summary-caption { padding:5px 26px 8px; font-size:13px; color:#85928f; }
.pp-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; padding:0 26px 23px; }
.pp-summary article { border:1px solid var(--pp-line); border-radius:10px; padding:15px 17px 12px; background:#fbfdfc; }
.pp-summary article > span { font-size:14px; color:#607970; }
.pp-summary strong { display:block; font-size:32px; line-height:1.3; font-weight:650; font-variant-numeric:tabular-nums; margin-top:7px; }
.pp-summary strong small { font-size:13px; margin-left:7px; font-weight:400; color:#83928c; }
.pp-summary p { margin:7px 0 0; font-size:12px; color:#85938d; }
.pp-summary .pp-alert-card { background:#fffbf5; border-color:#f0e4ce; }
.pp-alert-card strong { color:#ae742a; }
.pp-summary .pp-remaining-card { background:#f0f8f5; border-color:#d4e8df; }
.pp-remaining-card strong { color:var(--pp-teal); }
.pp-toolbar { padding:17px 26px; border-top:1px solid #edf2ef; border-bottom:1px solid #edf2ef; background:#fcfdfc; display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:17px 24px; }
.pp-filters,.pp-calendar { display:flex; align-items:flex-end; gap:9px; flex-wrap:wrap; }
.pp-board label { font-size:13px; color:#72877d; display:flex; flex-direction:column; gap:5px; }
.pp-board select,.pp-board input { border:1px solid #dce7e1; border-radius:6px; background:#fff; font:inherit; font-size:14px; color:#38594a; height:40px; padding:7px 10px; min-width:0; }
.pp-search input { width:205px; }
.pp-calendar > button { height:40px; }
.pp-segment { display:flex; padding:3px; border:1px solid #dde8e1; border-radius:7px; background:#edf3ef; }
.pp-segment button { border:0; background:transparent; padding:6px 11px; border-radius:4px; }
.pp-segment button.active { background:#fff; color:var(--pp-teal); box-shadow:0 1px 3px #22443312; font-weight:650; }
.pp-table-caption { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:15px 26px 12px; font-size:12px; color:#87948e; }
.pp-table-caption strong { color:#315747; font-size:14px; margin-right:10px; }
.pp-table-wrap { overflow:auto; max-height:620px; position:relative; scrollbar-color:#a1c0b4 #eef4f0; scrollbar-width:auto; border-top:1px solid var(--pp-line); }
.pp-table-wrap::after { content:'← 横向滚动查看每日预计排产与真实生产 →'; position:sticky; left:0; display:block; width:100%; padding:8px; text-align:center; font-size:12px; color:#648678; background:#f4f8f5; }
.pp-board table.pp-table { width:max-content; min-width:100%; table-layout:fixed; border-collapse:separate; border-spacing:0; font-size:15px; margin:0; }
.pp-table col.pp-col-spu { width:var(--pp-spu-width); }
.pp-table col.pp-col-code { width:var(--pp-code-width); }
.pp-table col.pp-col-name { width:var(--pp-name-width); }
.pp-table col.pp-col-metric { width:var(--pp-column-width); }
.pp-table th,.pp-table td { border:0; border-bottom:1px solid #e7eeea; padding:14px 16px; white-space:nowrap; min-width:var(--pp-column-width); max-width:var(--pp-column-width); height:76px; font-size:15px; overflow:hidden; text-overflow:ellipsis; background:#fff; text-align:left; }
.pp-table thead th { position:sticky; top:0; z-index:4; height:42px; padding:10px 14px; background:#f1f6f3; font-size:14px; font-weight:650; color:#547263; }
.pp-table thead tr:first-child th { height:42px; }
.pp-table thead tr:nth-child(2) th { top:42px; height:64px; background:#f7faf8; }
.pp-table thead tr:nth-child(3) th { top:106px; height:42px; padding:10px 14px; background:#f4f9f5; }
.pp-table th.pp-projection-header { white-space:normal; line-height:1.4; }
.pp-table thead tr:first-child th[rowspan] { top:0; }
.pp-table thead tr:nth-child(2) th[rowspan] { height:106px; }
.pp-table thead .pp-basis-group { background:#eef3f4; }
.pp-table thead .pp-plan-group { background:#eaf5ef; }
.pp-table thead .pp-date-group { background:#e3f0e9; }
.pp-table thead th span { font-weight:400; font-size:12px; opacity:.7; margin-left:8px; }
.pp-table th small,.pp-table td small { display:block; font-size:12px; color:#74867a; font-weight:400; margin-top:4px; }
.pp-table .pp-frozen { position:sticky; z-index:2; background:#fff; }
.pp-table .pp-spu { left:0; width:var(--pp-spu-width); min-width:var(--pp-spu-width); max-width:var(--pp-spu-width); }
.pp-table .pp-code { left:var(--pp-spu-width); width:var(--pp-code-width); min-width:var(--pp-code-width); max-width:var(--pp-code-width); font-variant-numeric:tabular-nums; }
.pp-table .pp-name { left:calc(var(--pp-spu-width) + var(--pp-code-width)); width:var(--pp-name-width); min-width:var(--pp-name-width); max-width:var(--pp-name-width); border-right:1px solid #cfdfd6; box-shadow:5px 0 7px -7px #284837; }
.pp-table .pp-name strong { font-size:15px; font-weight:650; }
.pp-board .pp-row-edit { display:block; padding:0; margin-top:6px; border:0; border-radius:2px; background:transparent; color:var(--pp-teal); font-size:12px; line-height:1.4; }
.pp-modal-backdrop { position:fixed; inset:0; z-index:10000; background:#102e2d70; display:flex; align-items:center; justify-content:center; padding:24px; }
.pp-entry-dialog { width:min(620px,100%); max-height:calc(100dvh - 48px); overflow:auto; background:#fff; border:1px solid #dce8e1; border-radius:16px; box-shadow:0 24px 80px #102e2d40; padding:26px; text-align:left; }
.pp-entry-dialog header { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.pp-entry-dialog h3 { margin:6px 0 0; font-size:23px; color:var(--pp-ink); }
.pp-entry-dialog p { font-size:13px; color:#647e73; line-height:1.7; }
.pp-entry-dialog form { margin:0; }
.pp-entry-modes { display:flex; gap:8px; padding:5px; margin:18px 0; background:#eff5f1; border-radius:9px; }
.pp-entry-modes button { flex:1; border-color:transparent; background:transparent; }
.pp-entry-modes button[aria-pressed="true"] { color:var(--pp-teal); background:#fff; border-color:#d9e6df; font-weight:650; box-shadow:0 1px 3px #173e2710; }
.pp-entry-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:20px; }
.pp-entry-fields label { font-size:14px; color:#496458; }
.pp-entry-wide { grid-column:1 / -1; }
.pp-entry-fields input,.pp-entry-fields select,.pp-entry-fields textarea { width:100%; font-size:15px; }
.pp-entry-fields input[readonly] { background:#f2f6f3; color:#61756b; }
.pp-entry-fields textarea { resize:vertical; min-height:80px; border:1px solid #dce7e1; border-radius:6px; padding:10px; font:inherit; }
.pp-entry-hint { padding:12px 14px; background:#f2f8f4; border-radius:8px; }
.pp-entry-message { color:#b33434; font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.pp-entry-dialog footer { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; margin-top:20px; padding-top:16px; border-top:1px solid var(--pp-line); }
.pp-entry-dialog button:disabled { opacity:.55; cursor:wait; }
@media (max-width:600px) {
  .pp-modal-backdrop { padding:12px; }
  .pp-entry-dialog { max-height:calc(100dvh - 24px); padding:18px; }
  .pp-entry-fields { grid-template-columns:1fr; }
}
.pp-table thead .pp-frozen { z-index:6; background:#f0f6f2; }
.pp-table .pp-number { text-align:right; font-variant-numeric:tabular-nums; }
.pp-table .pp-plan-cell { background:#fcfefb; }
.pp-table .pp-day-cell { background:#fff; }
.pp-table .pp-actual-cell { background:#f3f8fc; border-right:1px solid #d6e3e9; }
.pp-table thead tr:nth-child(3) .pp-actual-header { color:#416884; background:#eaf3f9; border-right:1px solid #d6e3e9; }
.pp-table thead th[colspan="2"][scope="colgroup"] { border-right:1px solid #d6e3e9; }
.pp-table [data-pp-edit] { display:block; min-height:26px; cursor:text; line-height:26px; border-bottom:1px dashed #cadbd0; }
.pp-table [data-pp-edit="note"] { overflow:hidden; text-overflow:ellipsis; color:#77897c; font-size:14px; }
.pp-table [data-pp-input] { width:100%; min-width:80px; padding:5px 6px; text-align:right; border:1px solid #0c9388; }
.pp-table .pp-reset { border:0; padding:0; font-size:12px; color:#328776; background:transparent; }
.pp-table .pp-remaining { font-weight:650; color:#1f816b; }
.pp-table .pp-window-total { background:#f2f8f3; font-weight:650; }
.pp-badge { display:inline-block; border-radius:5px; padding:4px 6px; font-size:12px; color:#8a9690; background:#f0f3f1; }
.pp-badge.pp-alert { color:#a27127; background:#fff3dc; }
.pp-badge.pp-urgent { color:#b35f4f; background:#fbece5; }
.pp-table .pp-warning { color:#c62828; font-size:16px; font-weight:750; }
.pp-table .pp-historical td { color:#83928a; }
.pp-table tbody tr:hover td { background:#f2f8f3; }
.pp-table th.pp-weekend { background:#edf2ef; color:#839087; }
.pp-table th.pp-today { background:#def0e6; color:#167557; box-shadow:inset 0 3px #25987a; }
.pp-table .pp-empty { text-align:center; height:150px; color:#778e80; }
.pp-empty p { font-size:14px; font-weight:400; }
.pp-explainer { padding:14px 26px; font-size:13px; color:#829287; background:#fcfdfb; }
.pp-explainer summary { cursor:pointer; color:#5e7968; }
.pp-explainer p { max-width:1050px; line-height:1.8; }
.pp-notice { padding:36px; border:1px solid #dce7df; border-radius:12px; color:#597465; background:#fff; font-size:14px; }
.pp-capacity-panel { padding:18px 26px; background:#fbfdfc; border-bottom:1px solid #e2ece6; }
.pp-capacity-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:12px; color:#456759; }
.pp-capacity-heading strong { font-size:16px; margin-right:12px; }
.pp-capacity-heading span,.pp-capacity-heading small { font-size:12px; color:#748c80; }
.pp-capacity-scroll { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(154px,1fr); gap:8px; overflow-x:auto; padding-bottom:6px; }
.pp-capacity-day { border:1px solid #dce8e0; border-radius:9px; padding:11px; background:#fff; min-width:0; }
.pp-capacity-day time { display:flex; justify-content:space-between; font-size:14px; font-weight:650; color:#42685a; }
.pp-capacity-day time span { color:#82968a; font-size:12px; font-weight:400; }
.pp-capacity-input { min-height:42px; margin:8px 0; }
.pp-capacity-input > span { display:block; padding:8px 2px; border-bottom:1px dashed #b6d5c4; font-size:22px; font-weight:650; color:#267760; text-align:right; }
.pp-capacity-input [data-pp-edit] { cursor:text; }
.pp-capacity-input [data-pp-edit]:hover,.pp-capacity-input [data-pp-edit]:focus { background:#eff8f2; outline:2px solid #75bfa4; outline-offset:2px; }
.pp-capacity-input input { width:100%; min-width:0; height:36px; padding:5px; text-align:right; font-size:16px; }
.pp-capacity-input small { display:block; margin-top:4px; font-size:12px; color:#769182; }
.pp-capacity-measure { display:flex; justify-content:space-between; gap:4px; font-size:13px; color:#829287; line-height:1.9; }
.pp-capacity-measure strong { color:#4c6a59; }
.pp-capacity-today { border-top:3px solid #32987b; padding-top:9px; }
.pp-over-capacity { background:#fff8f0; border-color:#efd0a8; }
.pp-over-capacity .pp-capacity-balance,.pp-over-capacity .pp-capacity-balance strong { color:#a96020; }
@media(max-width:1350px) { .pp-header { align-items:flex-start; } .pp-header h2 { font-size:24px; } .pp-header-actions { flex-direction:column; } .pp-summary { gap:8px; } .pp-summary article { padding:13px; } .pp-summary p { line-height:1.6; } }
/* Preserve a readable data column while the application's sidebar is still open. */
@media(max-width:1100px) { .pp-board { --pp-spu-width:104px; --pp-code-width:120px; --pp-name-width:200px; } .pp-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:850px) { .pp-header { flex-direction:column; padding:18px; } .pp-header-actions { flex-direction:row; } .pp-summary { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 18px 18px; } .pp-toolbar { padding:15px 18px; } .pp-save-line { padding:0 18px 10px; } .pp-save-line > span:last-of-type { margin-left:0; } }
