:root{--bg:#f5f6f8;--surface:#fff;--border:#d8dde6;--border-strong:#c0c7d2;--text:#222831;--text-2:#4a5563;--text-3:#7a8699;--blue:#2b6cb0;--blue-soft:#eaf2fa;--blue-due:#d6e8fb;--blue-border:#90b6df;--planned:#2b6cb0;--due:#a33a4a;--warn-bg:#fdf2f2;--warn-border:#efc0c0;--warn-text:#9b2c2c;--overdue-bg:#fde8e8;--weekend-bg:#f4f5f7;--header-h:52px;--w-customer:100px;--w-drawing:170px;--w-name:220px;--w-qty:56px;--w-date:30px;--font:"Malgun Gothic", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:var(--bg);font-size:13px;line-height:1.4}button,input,select{font-family:inherit}button{cursor:pointer}.boot-screen{min-height:100%;color:var(--text-3);justify-content:center;align-items:center;display:flex}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.login-box{background:var(--surface);border:1px solid var(--border);width:100%;max-width:320px;padding:28px 24px 24px}.login-title{text-align:center;margin:0 0 20px;font-size:18px;font-weight:800}.login-label{color:var(--text-2);margin-bottom:6px;font-size:12px;display:block}.login-input{border:1px solid var(--border-strong);width:100%;margin-bottom:12px;padding:8px 10px;font-size:14px}.login-input:focus{outline:1px solid var(--blue);border-color:var(--blue)}.login-error{color:var(--warn-text);margin-bottom:10px;font-size:12px}.login-btn{width:100%}.app-shell{background:var(--bg);flex-direction:column;min-height:100%;display:flex}.app-header{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:0 14px;display:flex}.app-header-left{align-items:center;gap:18px;min-width:0;display:flex}.app-brand{white-space:nowrap;font-size:15px;font-weight:800}.app-nav{gap:2px;display:flex}.app-nav-item{color:var(--text-2);background:0 0;border:0;padding:6px 10px;font-size:13px}.app-nav-item:hover{color:var(--blue)}.app-nav-item.active{color:var(--blue);box-shadow:inset 0 -2px 0 var(--blue);font-weight:700}.app-header-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.app-updated{color:var(--text-3);font-size:12px}.btn-link{color:var(--text-2);background:0 0;border:0;padding:4px 0;font-size:12px}.btn-link:hover{color:var(--blue)}.app-main{flex:1;min-height:0;padding:10px 12px 16px}.load-hint{color:var(--text-3);margin-bottom:6px;font-size:12px}.btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:2px;padding:5px 11px;font-size:13px}.btn:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(.96);color:#fff}.page-title{margin:0;font-size:18px;font-weight:800}.page-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.page-head-actions{gap:6px;display:flex}.filter-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:6px;padding:6px 0 8px;display:flex}.filter-field{color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:flex}.filter-field select,.filter-field input{border:1px solid var(--border-strong);background:#fff;min-width:120px;padding:4px 8px;font-size:13px}.filter-search input{min-width:200px}.filter-legend{color:var(--text-2);gap:12px;margin-left:auto;font-size:12px;display:flex}.leg-planned{color:var(--planned);font-weight:700}.leg-due{color:var(--due);font-weight:700}.summary-bar{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:4px 2px;padding:4px 0 8px;font-size:12px;display:flex}.summary-bar .dot{color:var(--text-3);margin:0 6px}.text-warn{color:var(--warn-text);font-weight:700}.empty-state,.section-empty{border:1px dashed var(--border-strong);text-align:center;color:var(--text-3);background:#fff;padding:28px 16px;font-size:13px}.error-box{border:1px solid var(--warn-border);background:var(--warn-bg);color:var(--warn-text);white-space:pre-line;margin-bottom:8px;padding:8px 10px;font-size:12px}.section{background:var(--surface);border:1px solid var(--border);margin-top:14px;padding:10px 12px 12px}.section-title{border-bottom:1px solid var(--border);margin:0 0 8px;padding-bottom:6px;font-size:14px;font-weight:800}.table-wrap{overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:12px}.data-table th,.data-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:5px 8px}.data-table th{color:var(--text-2);white-space:nowrap;background:#f0f2f5;font-weight:700}.data-table .num{text-align:right;white-space:nowrap}.data-table .mono{font-variant-numeric:tabular-nums;white-space:nowrap}.data-table.compact td{padding:4px 8px}.meta-dl{gap:6px;margin:0 0 10px;display:grid}.meta-dl>div{grid-template-columns:100px 1fr;gap:8px;font-size:13px;display:grid}.meta-dl dt{color:var(--text-3);margin:0}.meta-dl dd{margin:0;font-weight:600}.plain-list{margin:0;padding-left:18px;font-size:13px}.upload-ok{background:var(--blue-soft);border:1px solid var(--blue-border);white-space:pre-line;margin:10px 0 0;padding:8px 10px;font-family:inherit;font-size:12px}.hbar-list{flex-direction:column;gap:4px;display:flex}.hbar-row{grid-template-columns:48px 1fr 48px;align-items:center;gap:8px;font-size:12px;display:grid}.hbar-label{color:var(--text-2);font-variant-numeric:tabular-nums}.hbar-track{border:1px solid var(--border);background:#eef1f5;height:14px}.hbar-fill{background:var(--blue);height:100%}.hbar-count{text-align:right;color:var(--text-2)}.metric-badge{color:var(--blue);border:1px solid var(--blue-border);background:var(--blue-soft);margin-left:auto;padding:3px 8px;font-size:11px;font-weight:700}.insight-box{border:1px solid var(--border);background:#fff;margin-bottom:10px;padding:10px 12px}.insight-title{margin:0 0 8px;font-size:13px;font-weight:800}.insight-dl{gap:6px;margin:0;display:grid}.insight-dl>div{grid-template-columns:100px 1fr;gap:8px;font-size:13px;display:grid}.insight-dl dt{color:var(--text-3);margin:0}.insight-dl dd{margin:0;font-weight:600}.analysis-summary-bar{border:1px solid var(--border);background:#fff;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px;padding:8px 10px;display:flex}.sum-chip{border:1px solid var(--border);color:var(--text);background:#fff;padding:4px 8px;font-size:12px}.sum-chip strong{font-weight:800}.sum-chip.delayed{color:#9a4d12;background:#fff4e8;border-color:#f0c9a0}.sum-chip.today{background:var(--blue-soft);border-color:var(--blue-border);color:var(--blue)}.sum-chip.due-delayed{color:var(--warn-text);background:#fde8e8;border-color:#efc0c0}.sum-chip:disabled{opacity:.45;cursor:default}.sum-sep{background:var(--border);width:1px;height:16px}.sum-link{color:var(--text-2);background:0 0;border:0;padding:0;font-size:12px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.sum-link:hover:not(:disabled){color:var(--blue);-webkit-text-decoration-color:var(--blue);text-decoration-color:var(--blue)}.sum-link:disabled{opacity:.5;cursor:default}.analysis-split{align-items:start;gap:0;display:flex}.analysis-split.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.analysis-cal-pane{flex:auto;min-width:0;padding-right:6px}.analysis-cal-pane .section-title{margin-top:0}.analysis-split-handle{cursor:col-resize;touch-action:none;z-index:2;flex:0 0 8px;align-self:stretch;min-height:120px;position:relative}.analysis-split-handle:after{content:"";background:#c5ced8;border-radius:1px;width:2px;position:absolute;top:24px;bottom:24px;left:3px}.analysis-split-handle:hover:after,.analysis-split.is-resizing .analysis-split-handle:after{background:var(--blue)}.analysis-detail-pane{width:420px;max-width:100%;top:calc(var(--header-h) + 8px);max-height:calc(100vh - var(--header-h) - 16px);border:1px solid var(--border);box-sizing:border-box;background:#fff;flex:none;padding:12px;position:sticky;overflow:auto}.detail-pane-head{margin-bottom:8px}.detail-pane-title{margin:0;font-size:15px;font-weight:800}.detail-pane-status{color:var(--text-2);flex-direction:column;gap:2px;margin-top:4px;font-size:12px;font-weight:600;display:flex}.delay-note{color:#9a4d12;font-weight:700}.detail-pane-search{margin:8px 0}.detail-pane-search input{border:1px solid var(--border);width:100%;padding:6px 8px;font-size:12px}.detail-item-list{border:1px solid var(--border);max-height:42vh;overflow:auto}.detail-item-list .data-table.compact{table-layout:fixed;border-collapse:collapse;width:100%;min-width:520px;font-size:11px}.detail-item-list .data-table.compact th,.detail-item-list .data-table.compact td{vertical-align:top;text-overflow:ellipsis;white-space:nowrap;padding:4px 6px;overflow:hidden}.detail-item-list .col-customer{width:72px}.detail-item-list .col-drawing{width:100px}.detail-item-list .col-item-name{word-break:break-word;overflow-wrap:anywhere;width:auto;max-width:0;line-height:1.3;white-space:normal!important}.detail-item-list .col-qty{width:44px}.detail-item-list .col-date{width:78px}.detail-item-list .col-action{white-space:nowrap;width:56px}.share-list.compact li{grid-template-columns:72px 1fr 56px;font-size:11px}.share-name.active-filter{color:var(--blue);text-decoration:underline}.work-calendar.vertical{flex-direction:column;gap:16px;display:flex}.cal-month{border:1px solid var(--border);background:#fff;padding:10px 12px}.cal-month-title{margin:0 0 8px;font-size:14px;font-weight:800}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.cal-dow{text-align:center;color:var(--text-3);padding:2px 0 6px;font-size:11px;font-weight:700}.cal-cell{border:1px solid var(--border);text-align:left;min-height:72px;color:var(--text);cursor:pointer;background:#fff;flex-direction:column;gap:2px;padding:4px 5px;display:flex}.cal-cell.empty{cursor:default;pointer-events:none;background:0 0;border-color:#0000;min-height:72px}.cal-cell.tone-past-empty,.cal-cell.past-empty{color:#d0d4db;cursor:default;background:0 0;border-color:#eef0f3}.cal-cell.tone-past-empty .cal-daynum,.cal-cell.past-empty .cal-daynum{color:#d0d4db;font-weight:500}.cal-cell.tone-empty{background:#fff}.cal-cell.tone-planned-future{background:#f3f8fd;border-color:#c5d8ef}.cal-cell.tone-planned-today{border-color:var(--blue-border);background:#e4effb}.cal-cell.tone-planned-delayed{background:#fff4e8;border-color:#f0c9a0}.cal-cell.tone-due-only{background:#faf6f6;border-color:#e8d0d0}.cal-cell.has-data:hover{outline:1px solid var(--blue-border)}.cal-cell.is-today{box-shadow:inset 0 0 0 1.5px var(--blue)}.cal-cell.is-selected{box-shadow:inset 0 0 0 2px var(--blue);border-color:var(--blue)}.cal-daynum{font-size:12px;font-weight:800;line-height:1.2}.cal-dow-inline{color:var(--text-3);margin-left:3px;font-size:10px;font-weight:600}.cal-line{text-align:left;color:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-size:11px;font-weight:700;line-height:1.25}.cal-line:disabled{cursor:default;opacity:.55;font-weight:500}.cal-line.planned.future{color:var(--blue)}.cal-line.planned.today{color:#1a4f8a}.cal-line.planned.delayed{color:#9a4d12}.cal-line.due.future{color:#a33a4a;font-weight:600}.cal-line.due.today,.cal-line.due.delayed{color:#8b1e2d;font-weight:800}@media (width<=960px){.analysis-split{flex-direction:column}.analysis-split-handle{display:none}.analysis-detail-pane{max-height:none;position:static;flex-basis:auto!important;width:100%!important}}.week-flow{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.week-card{border:1px solid var(--border);text-align:left;background:#fff;flex:0 0 132px;min-width:132px;padding:10px 8px}.week-card.level-high{background:#fdf2f2;border-color:#efc0c0}.week-card.level-low{background:#f3f6fa}.week-card.active{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.week-card-range{color:var(--text);text-align:center;margin-bottom:6px;font-size:12px;font-weight:700}.week-metric{flex-wrap:wrap;align-items:baseline;gap:4px 6px;margin-top:4px;display:flex}.week-metric.primary .week-metric-value{font-size:18px;font-weight:800;line-height:1.1}.week-metric.secondary{border-top:1px dashed var(--border);margin-top:6px;padding-top:4px}.week-metric-label{color:var(--text-3);min-width:42px;font-size:10px;font-weight:600}.week-metric-value.sm{font-size:13px;font-weight:700}.week-tag{padding:1px 4px;font-size:9px;font-weight:700}.week-tag.planned-tag{color:var(--warn-text);background:#fce8e8}.week-tag.due-tag{color:#1a4a7a;background:#e8f0f8}.week-card-value{margin-top:6px;font-size:20px;font-weight:800;line-height:1.1}.week-card-level{color:var(--text-2);text-align:center;margin-top:6px;font-size:11px;font-weight:700}.week-card-aux{color:var(--text-3);margin-top:2px;font-size:10px}.axis-summary{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:10px;font-size:13px;display:flex}.axis-summary-sep{color:var(--text-3)}.axis-summary-item strong{font-weight:800}.axis-tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:10px;display:flex}.axis-tab{color:var(--text-2);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-size:13px;font-weight:600}.axis-tab:hover{color:var(--text)}.axis-tab.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:800}.detail-split{grid-template-columns:1fr 1fr;gap:16px;display:grid}.share-list{margin:0 0 6px;padding:0;list-style:none}.share-list li{grid-template-columns:88px 1fr 72px;align-items:center;gap:8px;padding:4px 0;font-size:12px;display:grid}.share-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.share-bar-wrap{border:1px solid var(--border);background:#eef1f5;height:10px}.share-bar{background:var(--blue);height:100%;display:block}.share-meta{text-align:right;color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}.day-strip{flex-wrap:wrap;gap:4px;display:flex}.day-cell{border:1px solid var(--border);text-align:center;background:#fff;flex:52px;min-width:48px;padding:6px 4px}.day-cell.empty{color:var(--text-3);background:#f7f8fa}.day-cell.peak{background:#fdf2f2;border-color:#efc0c0}.day-num{font-size:11px;font-weight:700}.day-val{margin-top:4px;font-size:13px;font-weight:800}.day-tag{color:var(--warn-text);margin-top:2px;font-size:10px;font-weight:700}.narrative-box{border-top:1px solid var(--border);color:var(--text);margin-top:12px;padding-top:10px;font-size:13px}.narrative-box p{margin:0 0 4px}.period-line{color:var(--text-3);margin:-4px 0 10px;font-size:12px}.clickable-text{color:var(--text);font:inherit;font-weight:inherit;text-align:left;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;margin:0;padding:0;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.clickable-text:hover:not(:disabled){color:var(--blue);-webkit-text-decoration-color:var(--blue);text-decoration-color:var(--blue)}.clickable-text:disabled{cursor:default;opacity:.7}.section-title-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:6px;display:flex}.section-title-btn{font-size:14px;font-weight:800}.day-cell.clickable{cursor:pointer}.day-cell.clickable:hover:not(:disabled){border-color:var(--blue)}.drawer-backdrop{z-index:80;background:#141c2859;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer-backdrop.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.drawer-panel{border-left:1px solid var(--border);background:#fff;flex-direction:column;flex-shrink:0;width:720px;max-width:92vw;height:100%;display:flex;position:relative;box-shadow:-8px 0 24px #00000014}.drawer-resize-handle{cursor:col-resize;z-index:2;touch-action:none;width:8px;margin-left:-4px;position:absolute;top:0;bottom:0;left:0}.drawer-resize-handle:after{content:"";background:#c5ced8;border-radius:1px;width:2px;height:48px;position:absolute;top:50%;left:3px;transform:translateY(-50%)}.drawer-resize-handle:hover:after,.drawer-backdrop.is-resizing .drawer-resize-handle:after{background:var(--blue);height:72px}.drawer-width-hint{color:var(--text-3);font-weight:500}.drawer-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.drawer-title{margin:0;font-size:16px;font-weight:800}.drawer-sub{color:var(--text-3);margin-top:4px;font-size:12px}.drawer-search{border-bottom:1px solid var(--border);padding:10px 16px}.drawer-search input{box-sizing:border-box;border:1px solid var(--border);width:100%;padding:7px 10px;font-size:13px}.drawer-body{flex:1;padding:0 0 24px;overflow:auto}.drawer-body .data-table{min-width:100%;font-size:12px}.drawer-body .data-table th,.drawer-body .data-table td{white-space:nowrap;padding:6px 8px}.drawer-body .data-table td.drawer-item-name{white-space:normal;word-break:break-word;max-width:280px;line-height:1.35}.section-note{color:var(--text-3);margin:0 0 8px;font-size:12px}.hbar-stack{flex-direction:column;gap:4px;display:flex}.hbar-btn{text-align:left;width:100%;color:var(--text);background:0 0;border:1px solid #0000;grid-template-columns:140px 1fr 64px;align-items:center;gap:8px;padding:4px 6px;font-size:12px;display:grid}.hbar-btn:not(:disabled):hover{background:#f5f7fa}.hbar-btn.active{border-color:var(--blue-border);background:var(--blue-soft)}.hbar-btn-label{flex-direction:column;gap:1px;font-weight:700;display:flex}.hbar-btn-sub{color:var(--text-3);font-size:10px;font-weight:500}.hbar-btn.tone-high .hbar-btn-fill{background:#c45c5c}.hbar-btn.tone-low .hbar-btn-fill{background:#8aa4c0}.hbar-btn-track{border:1px solid var(--border);background:#eef1f5;height:14px}.hbar-btn-fill{background:var(--blue);height:100%;display:block}.hbar-btn-value{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-2);font-weight:700}.filter-check{color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:flex}.split-layout{grid-template-columns:1fr 300px;align-items:start;gap:10px;display:grid}.split-main{border:1px solid var(--border);background:#fff;overflow:auto}.split-side{border:1px solid var(--border);background:#fff;min-height:240px;padding:10px 12px}.side-title{margin:0;font-size:14px;font-weight:800}.side-sub{color:var(--text-3);margin:2px 0 8px;font-size:12px}.side-h{color:var(--text-2);border-top:1px solid var(--border);margin:12px 0 6px;padding-top:8px;font-size:12px;font-weight:800}.history-list{margin:0;padding:0;font-size:12px;list-style:none}.history-list li{border-bottom:1px solid #eef1f5;padding:6px 0}.hist-line{font-weight:700}.hist-sub{color:var(--text-3);margin-top:2px}.data-table tbody tr{cursor:pointer}.data-table tbody tr.row-active{background:var(--blue-soft)}.tab-bar{border-bottom:1px solid var(--border);gap:2px;margin-bottom:10px;display:flex}.tab-btn{color:var(--text-2);background:0 0;border:0;padding:8px 12px;font-size:13px}.tab-btn.active{color:var(--blue);box-shadow:inset 0 -2px 0 var(--blue);font-weight:700}.form-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin-bottom:10px;display:grid}.form-field{color:var(--text-2);flex-direction:column;gap:4px;font-size:12px;display:flex}.form-field input{border:1px solid var(--border-strong);padding:5px 8px;font-size:13px}.modal-backdrop{z-index:100;background:#00000059;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--border);background:#fff;width:min(640px,100%);max-height:90vh;padding:14px 16px 16px;overflow:auto}.modal-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.mini-bar-inline{align-items:center;gap:8px;display:flex}.mini-inline-fill{background:var(--blue);max-width:80px;height:8px;display:inline-block}@media (width<=900px){.split-layout,.detail-split{grid-template-columns:1fr}.hbar-btn{grid-template-columns:100px 1fr 52px}.app-nav{flex-wrap:wrap}}.matrix-wrap{background:var(--surface);border:1px solid var(--border)}.matrix-empty-box{text-align:center;color:var(--text-3);padding:28px}.matrix-scroll{width:100%;max-height:calc(100vh - 168px);overflow:auto}.matrix-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12px}.matrix-table th,.matrix-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);vertical-align:middle;background:#fff;padding:2px 5px}.matrix-table thead .month-row th{z-index:6;text-align:center;border-bottom:1px solid var(--border-strong);background:#e4ebf3;padding:3px 2px;font-size:11px;font-weight:700;position:sticky;top:0}.matrix-table thead .week-row th{z-index:5;text-align:center;color:var(--text-2);background:#e9eef5;padding:2px 1px;font-size:10px;font-weight:600;position:sticky;top:22px}.matrix-table thead .day-row th{z-index:5;text-align:center;box-shadow:0 1px 0 var(--border-strong);background:#eef2f7;font-weight:700;position:sticky;top:42px}.matrix-table thead th.corner{z-index:9;vertical-align:middle;background:#dce5ef;top:0}.matrix-table tbody tr:hover td{background:#f7f9fc}.sticky-col{z-index:3;text-align:left;white-space:normal;word-break:break-word;overflow-wrap:anywhere;position:sticky}.sticky-customer{min-width:var(--w-customer);max-width:var(--w-customer);width:var(--w-customer);left:0}.sticky-drawing{left:var(--w-customer);min-width:var(--w-drawing);max-width:var(--w-drawing);width:var(--w-drawing)}.sticky-name{left:calc(var(--w-customer) + var(--w-drawing));min-width:var(--w-name);max-width:var(--w-name);width:var(--w-name)}.sticky-qty{left:calc(var(--w-customer) + var(--w-drawing) + var(--w-name));min-width:var(--w-qty);max-width:var(--w-qty);width:var(--w-qty);text-align:right;border-right:2px solid var(--border-strong)!important}.matrix-table tbody .sticky-col{background:#fff}.matrix-table tbody tr:hover .sticky-col{background:#f7f9fc}.date-col{width:var(--w-date);min-width:var(--w-date);max-width:var(--w-date);text-align:center;padding:1px 0!important}.date-num{font-size:11px;font-weight:700;line-height:1.1;display:block}.date-dow{color:var(--text-3);font-size:9px;font-weight:500;line-height:1.1;display:block}.weekend{background:var(--weekend-bg)!important}.matrix-table thead th.weekend{color:#6b7280;background:#e4e7ec!important}.today-col{box-shadow:inset 0 0 0 1px var(--blue-border);background:#f0f6ff!important}.matrix-table thead th.today-col{color:var(--blue);background:#cfe0f5!important}.col-hover{background:#eef4fb!important}.has-planned,.has-due,.has-both{background:#f7fbff}.cell-overdue{background:var(--overdue-bg)!important}.marker{flex-direction:column;align-items:center;gap:0;line-height:1;display:inline-flex}.mk-planned{color:var(--planned);font-size:10px;font-weight:700}.mk-due{color:var(--due);font-size:10px;font-weight:700}.marker.overdue .mk-due{color:#8b1e2d;font-size:11px}.matrix-empty{text-align:center;color:var(--text-3);padding:24px!important}.print-only{display:none}@media (width<=900px){.app-header{flex-wrap:wrap;height:auto;padding:8px 10px}.app-header-left{flex-wrap:wrap}.filter-legend{margin-left:0}.matrix-scroll{max-height:none}}@page{size:A4 landscape;margin:7mm}@media print{body{color:#000;background:#fff;font-size:8px}.no-print{display:none!important}.app-shell,.app-main,.page{width:100%;display:block}.print-only{display:block!important}.matrix-wrap{display:none!important}.print-doc-header{margin-bottom:4px}.print-doc-header h1{margin:0;font-size:12px}.print-doc-header .sub{margin-top:1px;font-size:9px}.print-meta{color:#555;font-size:8px}.print-matrix-table{border-collapse:collapse;table-layout:auto;width:max-content;max-width:none}.print-matrix-table thead{display:table-header-group}.print-matrix-table tr{break-inside:avoid;page-break-inside:avoid}.print-matrix-table th,.print-matrix-table td{vertical-align:middle;word-break:break-word;overflow-wrap:anywhere;border:1px solid #999;padding:1px 2px}.print-matrix-table th{text-align:center;background:#e8eef6;font-size:7px}.pc-customer{min-width:70px}.pc-drawing{min-width:100px}.pc-name{min-width:120px}.pc-qty{text-align:right;min-width:36px}.pc-date{text-align:center;width:22px;min-width:20px;padding:0!important}.print-matrix-table .weekend{background:#f0f0f0}.print-matrix-table .has-planned,.print-matrix-table .has-due,.print-matrix-table .has-both{background:#eef5fc}.print-matrix-table .cell-overdue{background:#fde8e8}.print-matrix-table .mk-planned{color:#2b6cb0;font-size:8px}.print-matrix-table .mk-due{color:#a33a4a;font-size:8px}}
