: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{z-index:100;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;position:sticky;top:0}.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}.shipping-summary-bar{margin-bottom:8px}.shipping-customer-chips{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.chip-btn{border:1px solid var(--border);color:var(--text-2);background:#fff;padding:2px 8px;font-size:11px}.chip-btn:hover{border-color:var(--border-strong);color:var(--text)}.chip-btn.active{border-color:var(--blue-border);background:var(--blue-soft);color:var(--blue);font-weight:700}.shipping-table .ship-item-name{word-break:break-word}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#f7f9fc}.ship-badge{border:1px solid var(--border);white-space:nowrap;background:#fff;padding:2px 6px;font-size:11px;display:inline-block}.ship-badge.today{border-color:var(--blue-border);background:var(--blue-soft);color:var(--blue);font-weight:700}.ship-badge.delayed{border-color:var(--warn-border);background:var(--warn-bg);color:var(--warn-text);font-weight:700}.ship-badge.no-due{color:#8a6a20;background:#fff8ee;border-color:#e0c080}.due-cell.today{color:var(--blue);font-weight:700}.due-cell.delayed{color:var(--warn-text);font-weight:700}.due-cell.no-due{color:var(--text-3)}.shipping-drawer{width:min(420px,92vw);max-width:92vw}.ship-source-row dd{color:var(--text-3);font-size:12px}.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{flex:0 0 var(--detail-pct,30%);width:var(--detail-pct,30%);min-width:25%;max-width:45%;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-direction:column;padding:12px;display:flex;position:sticky;overflow:hidden}.detail-pane-body{flex-direction:column;flex:1;min-height:0;display:flex}.detail-item-scroll{border:1px solid var(--border);flex:1;min-height:120px;max-height:48vh;overflow:auto}.detail-compact-list{margin:0;padding:0;list-style:none}.detail-compact-row{text-align:left;border:0;border-bottom:1px solid var(--border);background:#fff;flex-direction:column;gap:2px;width:100%;padding:8px;display:flex}.detail-compact-row:hover{background:#f7f9fc}.dcr-customer{font-size:12px;font-weight:800}.dcr-drawing{color:var(--text-2);font-family:ui-monospace,monospace;font-size:11px}.dcr-meta,.dcr-dates{color:var(--text-2);font-size:11px}.dcr-link{color:var(--blue);margin-top:2px;font-size:11px}.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}.work-calendar.customer-cal .cal-cell{min-height:96px}.cal-customer-list{flex-direction:column;flex:1;gap:2px;min-height:0;margin:0;padding:0;list-style:none;display:flex}.cal-customer-row{flex-direction:column;gap:0;font-size:10px;line-height:1.25;display:flex}.cal-customer-row.oneline{white-space:nowrap;text-overflow:ellipsis;color:var(--text);font-size:11px;line-height:1.35;display:block;overflow:hidden}.cal-cust-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.cal-cust-metrics{flex-wrap:wrap;gap:2px 6px;display:flex}.cal-cust-metrics .cm{white-space:nowrap;color:var(--text-2)}.cal-cust-metrics .cm.planned.delayed,.cal-cust-metrics .cm.due.delayed{color:var(--warn-text);font-weight:700}.cal-cust-metrics .cm.planned.today,.cal-cust-metrics .cm.due.today{color:var(--blue);font-weight:700}.mgmt-points{border:1px solid var(--border);background:#fff;margin-bottom:12px;padding:10px 12px 12px}.mgmt-point-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.mgmt-point{text-align:left;border:1px solid var(--border);background:#fff;flex-direction:column;gap:2px;width:100%;padding:8px 10px;display:flex}.mgmt-point:hover{border-color:var(--blue-border);background:var(--blue-soft)}.mgmt-point-title{color:var(--text);font-size:13px;font-weight:800}.mgmt-point-hint{color:var(--text-2);font-size:12px}.mgmt-point.kind-due-delayed .mgmt-point-title,.mgmt-point.kind-work-delayed .mgmt-point-title{color:var(--warn-text)}.mgmt-point.kind-due-today .mgmt-point-title,.mgmt-point.kind-due-tomorrow .mgmt-point-title,.mgmt-point.kind-due-soon .mgmt-point-title{color:var(--blue)}.mgmt-point.active{border-color:var(--blue-border);background:var(--blue-soft)}.flow-summary{flex-wrap:wrap;align-items:center}.flow-summary .inline-title{border:0;width:100%;margin:0 0 4px;padding:0;font-size:13px}.analysis-cal-full{margin-top:12px}.analysis-cal-full .section-title{margin-bottom:8px}.analysis-day-detail{border:1px solid var(--border);background:#fff;margin-top:14px;padding:12px}.analysis-day-detail .detail-item-list.full-width{max-height:none;overflow:auto}.analysis-day-detail .detail-item-list.full-width .data-table{table-layout:auto}.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}.mobile-only{display:none!important}.desktop-nav{display:flex}.desktop-only-cal{flex-direction:column;display:flex}.desktop-only.section-title{display:block}span.desktop-only,button.desktop-only{display:inline-flex}.mobile-day-list{flex-direction:column;gap:8px;display:none}.mobile-day-card{text-align:left;border:1px solid var(--border);background:#fff;width:100%;padding:10px 12px}.mobile-day-card.is-selected{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.mobile-day-card.is-today{background:var(--blue-soft)}.mobile-day-head{margin-bottom:4px;font-size:13px;font-weight:800}.mobile-day-empty{color:var(--text-3);font-size:12px}.mobile-day-customers{margin:0;padding:0;font-size:12px;line-height:1.4;list-style:none}.hamburger-btn{padding:4px 10px;font-size:18px;line-height:1}.mobile-menu-backdrop{inset:0;top:var(--header-h);z-index:200;background:#00000040;position:fixed}.mobile-menu{border-left:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff;flex-direction:column;width:min(280px,85vw);padding:8px 0;display:flex;position:absolute;top:0;right:0}.mobile-menu-item{text-align:left;color:var(--text);background:0 0;border:0;padding:12px 16px;font-size:14px}.mobile-menu-item.active{color:var(--blue);background:var(--blue-soft);font-weight:800}.mobile-menu-item:hover{background:#f5f7fa}@media (width<=1199px){.analysis-detail-pane{min-width:28%;max-width:40%}}@media (width<=768px){.desktop-only,.desktop-nav,.desktop-only-cal{display:none!important}.mobile-only{display:inline-flex!important}.mobile-only.section-title{display:block!important}.mobile-day-list{display:flex}.app-header{z-index:100;flex-wrap:wrap;position:sticky;top:0}.app-updated{display:none}.analysis-split{flex-direction:column}.analysis-split-handle{display:none!important}.analysis-cal-pane{padding-right:0}.analysis-detail-pane{max-height:none;position:static;overflow:visible;flex:auto!important;width:100%!important;min-width:0!important;max-width:100%!important}.detail-item-scroll{max-height:60vh}.mgmt-point-list,.filter-bar{gap:8px}.page{overflow-x:hidden}}@media (width>=769px) and (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;max-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}.print-brand{color:#666;font-size:9px;font-weight:600}.print-page-name{margin:2px 0 4px;font-size:14px;font-weight:800}.print-meta-line{color:#444;margin-bottom:4px;font-size:9px}.print-filter-dl{flex-wrap:wrap;gap:4px 16px;margin:0 0 6px;font-size:9px;display:flex}.print-filter-dl>div{gap:4px;display:flex}.print-filter-dl dt{color:#666;margin:0}.print-filter-dl dd{margin:0;font-weight:700}.print-legend-line,.print-summary-line{color:#333;margin-bottom:6px;font-size:9px}.print-summary-line.secondary{color:#555;margin-bottom:10px}.print-section-title{border-bottom:1px solid #ccc;margin:10px 0 6px;padding-bottom:3px;font-size:11px;font-weight:800}.print-subsection-title{margin:8px 0 4px;font-size:10px;font-weight:700}.print-note{color:#666;margin:4px 0 8px;font-size:9px}.print-mgmt-list{margin:0 0 8px;padding-left:16px;font-size:9px}.print-mgmt-list li{margin-bottom:3px}.print-table{border-collapse:collapse;width:100%;margin-bottom:8px;font-size:8px}.print-table thead{display:table-header-group}.print-table tr{break-inside:avoid;page-break-inside:avoid}.print-table th,.print-table td{vertical-align:top;word-break:break-word;border:1px solid #999;padding:2px 4px}.print-table th{background:#e8eef6;font-weight:700}.compact-print.print-table th,.compact-print.print-table td{padding:1px 3px}.print-page-break{break-before:page;page-break-before:always;margin-top:8px}.print-calendars.vertical{flex-direction:column;gap:10px;display:flex}.print-cal-month{break-inside:avoid;page-break-inside:avoid}.print-cal-month-title{margin:0 0 4px;font-size:10px;font-weight:800}.print-cal-grid{border:1px solid #ccc;grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.print-cal-dow,.print-cal-cell{border:1px solid #ddd;min-height:28px;padding:2px;font-size:7px}.print-cal-dow{text-align:center;background:#eef1f5;font-weight:700}.print-cal-cell.empty,.print-cal-cell.past-empty{background:#fafafa}.print-cal-day{margin-bottom:2px;font-weight:700}.print-cal-line{font-size:6.5px;line-height:1.25}.print-detail-dl{gap:4px;margin:0 0 10px;font-size:9px;display:grid}.print-detail-dl>div{grid-template-columns:100px 1fr;gap:8px;display:grid}.print-detail-dl dt{color:#666;margin:0}.print-detail-dl dd{margin:0;font-weight:600}.section,.empty-state,.table-wrap,.hbar-stack,.split-layout,.analysis-split,.work-calendar,.mgmt-points,.analysis-cal-full,.analysis-day-detail,.modal-backdrop{display:none!important}}
