/* 생산 · 구매 계획표 — 왼쪽 품목 · 완 · 결과 날짜 머리글을 고정한다. */
#dlgPlanning{width:calc(100vw - 36px);max-width:1680px;max-height:calc(100vh - 28px)}
.planning-dialog{height:calc(100vh - 30px);max-height:calc(100vh - 30px)}
.planning-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line)}
.planning-toolbar label,.planning-range label,.planning-write label,.planning-reassign label{display:inline-flex;gap:5px;align-items:center}
.planning-toolbar input[type=search]{width:230px}
.planning-guide{margin:0;padding:6px 12px;color:var(--muted);font-size:11px;line-height:1.6}
.planning-legend{display:flex;align-items:center;flex-wrap:wrap;gap:5px 14px;padding:2px 12px 7px;font-size:11px;color:var(--muted)}
.planning-legend>span{display:inline-flex;align-items:center;gap:5px}
.planning-legend-dot{display:inline-block;width:8px;height:8px;background:currentColor;border-radius:2px}
.planning-legend-line{display:inline-block;width:16px;height:8px}
.planning-legend-note{margin-left:auto;font-size:10px}
.planning-chart{flex:1 1 45%;min-height:170px;overflow:auto;border-top:1px solid var(--grid);border-bottom:1px solid var(--line);isolation:isolate;background:#fff;position:relative;--planning-item-width:260px;--planning-count-width:60px;--planning-day-width:64px;--planning-month-height:24px}
.planning-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;font-variant-numeric:tabular-nums}
.planning-item-col{width:var(--planning-item-width)}
.planning-count-col{width:var(--planning-count-width)}
.planning-day-col{width:var(--planning-day-width)}
.planning-table th,.planning-table td{padding:0;border-right:1px solid var(--grid);border-bottom:1px solid var(--grid);text-align:right;vertical-align:middle;background:#fff;font-weight:400}
.planning-table thead th{position:sticky;top:0;z-index:3;background:var(--head);height:var(--planning-month-height);text-align:center;font-weight:600}
.planning-table thead .planning-month{font-size:11px;border-bottom-color:#bcc8c0;white-space:nowrap}
.planning-table .planning-days th{top:var(--planning-month-height);min-width:var(--planning-day-width);font-size:12px}
.planning-table thead .planning-fixed{height:calc(var(--planning-month-height) * 2)}
.planning-table .planning-fixed{position:sticky;z-index:2;background:#fff}
.planning-table thead .planning-fixed{z-index:5;background:var(--head)}
.planning-table .planning-item{left:0;width:var(--planning-item-width);min-width:var(--planning-item-width);max-width:var(--planning-item-width);text-align:left}
.planning-table thead .planning-item{padding-left:10px}
.planning-table .planning-complete{left:var(--planning-item-width);width:var(--planning-count-width);min-width:var(--planning-count-width);max-width:var(--planning-count-width);padding:5px;font-weight:600}
.planning-table .planning-short{left:calc(var(--planning-item-width) + var(--planning-count-width));width:var(--planning-count-width);min-width:var(--planning-count-width);max-width:var(--planning-count-width);padding:5px;font-weight:600;box-shadow:2px 0 2px #0002}
.planning-item-button{background:none;border:0;text-align:left;width:100%;padding:7px 10px;cursor:pointer;white-space:normal;line-height:1.5}
.planning-item-button small{display:block;color:var(--muted);font-size:10px;font-weight:400}
.planning-item-button .planning-spec{max-width:235px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.planning-selected .planning-item-button{box-shadow:inset 3px 0 var(--xl);background:var(--xl-soft)}
.planning-table tbody .planning-selected .planning-complete,.planning-table tbody .planning-selected .planning-short{background:var(--xl-soft)}
.planning-cell{border:0;background:transparent;display:flex;flex-direction:column;align-items:flex-end;gap:4px;width:calc(var(--planning-day-width) - 1px);min-height:48px;padding:5px;cursor:pointer;text-align:right}
.planning-cell>span{display:inline-flex;align-items:baseline;max-width:100%}
.planning-quantity{display:inline-flex;align-items:baseline;gap:2px;white-space:nowrap}
.planning-quantity b{font-size:12px;font-weight:600}
.planning-quantity-small b{font-size:10px}
.planning-unit{font-size:9px;font-weight:400}
.planning-need{color:#9a3b36}.planning-make{color:#17613b}.planning-buy{color:#215b8c}
.planning-carry{border-bottom:2px solid currentColor}
.planning-undated{border-bottom:2px dotted currentColor}
.planning-table td.planning-picked{background:#e2f0d9;box-shadow:inset 0 0 0 1px #83ad75}
.planning-table th.planning-today{background:#dbeadf;color:var(--xl)}
.planning-cell:hover,.planning-item-button:hover{background:#eef5f1}
.planning-cell:focus-visible,.planning-item-button:focus-visible,.planning-link:focus-visible{outline:2px solid var(--xl);outline-offset:-2px}
.planning-no-rows{padding:20px!important;text-align:left!important;color:var(--muted)}
.planning-no-dates{position:sticky;left:0;max-width:calc(100vw - 64px);padding:12px;margin:0;color:var(--muted);line-height:1.6}
.planning-detail{flex:0 1 48%;min-height:80px;overflow:auto;padding:8px 12px 10px;background:#fafafa}
.planning-detail-head{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.planning-detail h3{margin:0;font-size:13px}
.planning-detail h3 small,.planning-detail h4 small{color:var(--muted);font-size:11px;font-weight:400;margin-left:6px}
.planning-detail h4{font-size:12px;margin:9px 0 5px}
.planning-range{display:flex;align-items:center;gap:5px}
.planning-range input[type=date]{width:124px}
.planning-comparison{display:flex;align-items:stretch;flex-wrap:wrap;margin:8px 0;gap:0;border:1px solid var(--grid);background:#fff}
.planning-comparison>span{padding:6px 12px;border-right:1px solid var(--grid);display:flex;align-items:center;gap:15px}
.planning-comparison b{font-size:16px;font-variant-numeric:tabular-nums}
.planning-comparison .planning-additional{background:var(--xl-soft);color:var(--xl)}
.planning-demand-list{padding:4px 0}
.planning-demand-list summary{cursor:pointer;color:var(--muted);margin-bottom:4px}
.planning-need-edit{padding:5px 0}
.planning-table-wrap{overflow-x:auto}
.planning-supplies{border-collapse:collapse;width:100%;font-size:11px;background:#fff}
.planning-supplies th,.planning-supplies td{border:1px solid var(--grid);padding:4px 6px;text-align:left;vertical-align:top;line-height:1.5}
.planning-supplies th{background:var(--head);font-weight:400;white-space:nowrap}
.planning-supplies td.num{text-align:right;white-space:nowrap}
.planning-supplies small{display:block;color:var(--muted);font-size:10px}
.planning-supplies input[type=date]{width:123px}
.planning-supplies .btn{margin-top:3px}
.planning-link{border:0;background:none;color:#17613b;text-decoration:underline;text-underline-offset:2px;padding:0;cursor:pointer;font:inherit}
.planning-write,.planning-reassign{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;border:1px solid var(--grid);background:#fff;padding:9px;margin-top:10px}
.planning-write-note{width:100%;margin:0;font-size:11px;line-height:1.5;color:var(--muted)}
.planning-preview{margin-top:9px;padding:10px 12px;border:2px solid var(--xl);background:#f4f9f2}
.planning-preview h4{margin-top:0}.planning-preview p{margin:4px 0 9px}
.planning-preview-columns{display:flex;gap:28px;flex-wrap:wrap}
.planning-preview-columns p{line-height:1.8;min-width:100px}
.planning-reassign h4,.planning-reassign p{width:100%;margin:0}
.planning-reassign input:not([type=number]){width:240px}
.planning-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){
  #dlgPlanning{width:100vw;max-width:100vw;max-height:100dvh}
  .planning-dialog{height:100dvh;max-height:100dvh}
  .planning-toolbar{gap:5px;padding:6px 8px}
  .planning-toolbar input[type=search]{width:160px}
  .planning-guide{padding:5px 8px;font-size:10px}
  .planning-chart{--planning-item-width:160px;min-height:200px}
  .planning-legend{padding:2px 8px 6px;gap:5px 10px}.planning-legend-note{margin-left:0}
  .planning-item-button{padding:5px 6px;font-size:11px}.planning-item-button .planning-spec{max-width:148px}
  .planning-table .planning-complete,.planning-table .planning-short{padding:4px 5px}
  .planning-detail{padding:6px 8px}.planning-comparison>span{padding:5px 8px;gap:8px}
  .planning-supplies{min-width:840px}.planning-demand-list{overflow-x:auto}
  .planning-range input[type=date]{width:115px}.planning-range{font-size:10px}
}
@media print{#dlgPlanning{display:none!important}}
