/* CALC PAGE LAYOUT — 入力を狭く、結果を広く */
.layout{display:grid;grid-template-columns:340px 1fr;flex:1;height:calc(100vh - 54px)}
.sb{background:#ffffff;border-right:1px solid #e0e0ea;padding:24px;overflow-y:auto;max-height:calc(100vh - 54px);display:flex;flex-direction:column;gap:20px}
.sb-tabs { display:flex; margin-bottom:16px; gap:6px; }
.sb-tab { flex:1; text-align:center; padding:7px 0; font-size:12px; font-weight:700; color:#5a5a78; cursor:pointer; border-radius:8px; background:transparent; transition:all .15s; user-select:none; border:none; }
.sb-tab.active { color:#1a1a2e; background:#e0e7ff; }
.sb-panel { display:none; }
.sb-panel.active { display:flex; flex-direction:column; flex:1; }
/* master 仕様 (2026-05-10): 鋼材種類・規格 検索を一体化された pill 形式に。
   背景白、虫眼鏡は TORIAI indigo (#4f46e5)。 hover は中性 #f4f4f5。 */
.calc-steel-row {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 6px;
  background: #ffffff;
  border: 1px solid #e4e4e7;
  border-radius: 999px;
  padding: 3px 4px 3px 8px;
  transition: border-color .15s;
}
.calc-steel-row:focus-within {
  border-color: #a1a1aa;
}
.calc-browse-btn {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  background: transparent;
  border: none;
  border-radius: 999px;
  font-size: 13px;
  color: #4f46e5; /* 虫眼鏡: TORIAI indigo */
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, color .15s;
  font-family: inherit;
  padding: 0;
}
.calc-browse-btn:hover {
  background: #f4f4f5;
  color: #4338ca; /* hover で indigo を一段濃く */
}
.calc-steel-input {
  flex: 1;
  min-width: 0;
  box-sizing: border-box;
  height: 28px;
  background: transparent;
  border: none;
  padding: 0 6px;
  font-size: 13px;
  font-weight: 500;
  font-family: inherit;
  color: #18181b;
  outline: none;
}
.calc-steel-input::placeholder { color: #a1a1aa; font-weight: 400; }
/* master 仕様 (2026-05-10): refresh2026.css の `input:focus { bg #eef2ff !important }`
   グローバル rule が calc-steel-input にも適用され「内側に薄紫枠」 が見えていた。
   ID + class で specificity を勝たせて bg / hover / focus すべて透明に固定。
   data タブと同じ「単一 pill border のみ」 の見た目になる。 */
#cp .calc-steel-input,
#cp .calc-steel-input:hover,
#cp .calc-steel-input:focus,
#wpp .calc-steel-input,
#wpp .calc-steel-input:hover,
#wpp .calc-steel-input:focus,
#wpp #wCmdInput,
#wpp #wCmdInput:hover,
#wpp #wCmdInput:focus,
#cmdInput,
#cmdInput:hover,
#cmdInput:focus {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}
#wCmdInput:hover,
#wCmdInput:focus {
  background: transparent;
  outline: none;
  box-shadow: none;
}
.cmd-item { padding:8px 12px; font-size:12px; cursor:pointer; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid #f4f4f8; color:#1a1a2e; }
.cmd-item:last-child { border-bottom:none; }
/* master 仕様 (2026-05-10): dropdown ホバーも COLOR_RULES 中性 #f4f4f5 */
.cmd-item:hover, .cmd-item.cmd-focus { background:#f4f4f5; color:#1a1a2e; }
.cmd-item .cmd-sub { font-size:10px; color:#aaa; }
.cmd-cat { padding:5px 12px; font-size:10px; font-weight:700; color:#aaa; background:#f8f8fc; letter-spacing:.06em; text-transform:uppercase; }
.mn{padding:24px;overflow-y:auto;background:#f3f3f7;display:flex;flex-direction:column;gap:16px;max-height:calc(100vh - 54px)}

.hi-search-bar { padding: 12px 16px; display: flex; gap: 8px; align-items: center; border-bottom: 1px solid #f0f0f5; }
.hi-search-wrap { flex: 1; position: relative; }
.hi-search-wrap::before { content: '🔍'; position: absolute; left: 10px; top: 50%; transform: translateY(-50%); font-size: 13px; pointer-events: none; }
.hi-search-wrap input { width: 100%; background: #f8f8fc; border: 1px solid #e0e0ea; border-radius: 8px; padding: 8px 10px 8px 32px; font-size: 12px; color: #1a1a2e; outline: none; box-sizing: border-box; font-family: inherit; }
.hi-search-wrap input:focus { background: #eef2ff; outline: none; box-shadow: none; }
.hi-filter-btn { background: transparent; border: 1px solid #e0e0ea; border-radius: 8px; padding: 7px 12px; font-size: 11px; font-weight: 700; color: #5a5a78; cursor: pointer; white-space: nowrap; font-family: inherit; transition: all .15s; }
.hi-filter-btn.active { border-color: #4338ca; color: #4338ca; background: #eef2ff; }
.hi-chip-row { padding: 8px 16px; display: flex; gap: 6px; flex-wrap: wrap; border-bottom: 1px solid #f0f0f5; }
.hi-chip { padding: 4px 10px; border-radius: 20px; font-size: 11px; font-weight: 700; border: 1px solid #e0e0ea; color: #5a5a78; background: #fff; cursor: pointer; transition: all .15s; }
.hi-chip.on { background: #e0e7ff; border-color: #4338ca; color: #4338ca; }
.hi-sort-row { padding: 6px 16px 4px; display: flex; align-items: center; justify-content: space-between; }
.hi-count { font-size: 11px; color: #aaa; }
.hi-sort { background: transparent; border: none; font-size: 11px; color: #5a5a78; cursor: pointer; outline: none; font-family: inherit; font-weight: 700; }
.hi-card { border: 1px solid #eee; border-radius: 10px; padding: 10px 12px; cursor: pointer; transition: all .15s; margin-bottom: 6px; }
.hi-card:hover { border-color: #4338ca; background: #eef2ff; }
.hi-card-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 5px; }
.hi-card-client { font-size: 13px; font-weight: 700; color: #1a1a2e; }
.hi-card-date { font-size: 10px; color: #aaa; }
.hi-tags { display: flex; gap: 4px; flex-wrap: wrap; }
.hi-tag { font-size: 10px; padding: 2px 7px; border-radius: 20px; background: #f0f0f8; color: #5a5a78; font-weight: 600; }
.hi-tag-kind { background: #e0e7ff; color: #4338ca; }
.hi-tag-weight { background: #ecfdf5; color: #059669; }
.inv-card-new { border: 1px solid #eee; border-radius: 10px; padding: 10px 14px; display: flex; align-items: center; gap: 12px; margin-bottom: 6px; cursor: pointer; transition: all .15s; }
.inv-card-new:hover { border-color: #16a34a; background: #f0fdf4; }
.inv-card-len { font-size: 18px; font-weight: 800; color: #1a1a2e; min-width: 80px; }
.inv-card-len span { font-size: 11px; font-weight: 400; color: #aaa; }
.inv-card-detail { flex: 1; }
.inv-card-spec { font-size: 12px; color: #1a1a2e; font-weight: 700; }
.inv-card-meta { font-size: 10px; color: #aaa; margin-top: 2px; }
.inv-len { font-size: 18px; font-weight: 800; color: #1a1a2e; min-width: 80px; }
.inv-len span { font-size: 11px; font-weight: 400; color: #aaa; }
.inv-detail { flex: 1; }
.inv-spec-label { font-size: 12px; color: #1a1a2e; font-weight: 700; }
.inv-meta { font-size: 10px; color: #aaa; margin-top: 2px; }
.inv-qty-badge { font-size: 12px; font-weight: 700; color: #16a34a; background: #dcfce7; padding: 4px 12px; border-radius: 20px; white-space: nowrap; }
.hi-filter-panel { display: none; padding: 12px 16px; background: #f8f8fc; border-bottom: 1px solid #eee; border-top: 1px solid #eee; }
.hi-filter-panel.open { display: block; }

/* SIDEBAR COMPONENTS */
.shd{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#2a2a3e;margin-bottom:8px}
.field{margin-bottom:7px}.field:last-child{margin-bottom:0}
.field label{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#5a5a78;margin-bottom:3px}
input[type=number],input[type=text],input[type=date],select{width:100%;background:#fff;border:1px solid #d4d4dc;color:#2a2a3e;font-family:'Space Grotesk',monospace;font-size:12px;font-weight:500;padding:6px 9px;outline:none;transition:border-color .15s;appearance:none;border-radius:var(--r-sm)}

select option{background:#fff}
.r2{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.tbtn{border:1px solid #d4d4dc;background:#ffffff;color:#1a1a2e;font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:9px;font-weight:700;letter-spacing:.03em;padding:4px 2px;cursor:pointer;transition:all .15s;text-align:center;border-radius:var(--r-sm);display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1}
.tbtn:hover{background:rgba(79, 70, 229,.07);color:#1a1a2e;border-color:#d4d4dc}
.tbtn.on{background:rgba(79, 70, 229,.1);color:#1a1a2e;border-color:#a5b4fc}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}

/* STOCK ROWS */
.stk-row{display:grid;grid-template-columns:auto minmax(62px,1fr) auto minmax(132px,1.35fr);align-items:center;gap:6px;border:1px solid #e0e0ea;background:#fafafa;padding:5px 7px;border-radius:var(--r-sm)}
.stk-row.off{opacity:.35}
#stkList{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-bottom:2px}
/* master 仕様 (2026-05-10): checkbox accent を TORIAI indigo (#4f46e5) に */
input[type=checkbox]{width:13px;height:13px;accent-color:#4f46e5;cursor:pointer;flex-shrink:0}
.stk-nm{font-size:12px;font-weight:600;color:#1a1a2e;flex:1;font-family:'Space Grotesk',monospace}
.stk-nm small{font-size:10px;font-weight:600;letter-spacing:.04em;color:#5a5a78;margin-left:1px}
.stk-mx{width:48px;background:#f4f4f6;border:1px solid #d4d4dc;color:#1a1a2e;font-family:monospace;font-size:10px;padding:2px 3px;outline:none;text-align:center;-moz-appearance:textfield;appearance:textfield;border-radius:6px}
.stk-mx::-webkit-inner-spin-button,.stk-mx::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.stk-mx:focus{background:#eef2ff;outline:none;box-shadow:none}
.stock-limit-control{justify-self:end}
.stock-origin-control{display:grid;grid-template-columns:minmax(82px,1fr) minmax(106px,1fr);gap:4px;align-items:center;min-width:0}
.stk-origin,.stk-carry-date{height:26px;min-width:0;padding:3px 7px;font-size:10px;font-weight:700;border-radius:6px}
.stk-origin{font-family:'Noto Sans JP','Space Grotesk',sans-serif}
.stk-carry-date{font-family:'Space Grotesk','Noto Sans JP',sans-serif}
.stk-note{font-size:11px;color:#5a5a78;margin-top:4px;line-height:1.5}

/* ── 残材セクション ── */
.remnant-area{border:1px solid #d4d4dc;background:#fff;padding:0;border-radius:var(--r-sm);overflow:hidden}
.remnant-head{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-bottom:1px solid #d4d4dc;background:#f0f0f4}
.remnant-head span{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--cy)}
.rem-row{display:flex;align-items:center;gap:6px;padding:5px 10px;border-bottom:1px solid #e8e8ed}
.rem-row:last-child{border-bottom:none}
.rem-row input[type=number]{font-size:11px;padding:4px 6px}
.rem-del{background:transparent;border:none;color:#8888a8;cursor:pointer;font-size:14px;line-height:1;padding:0 3px;flex-shrink:0;transition:color .15s}
.rem-del:hover{color:var(--rd)}
.rem-label{font-size:11px;color:#5a5a78;flex-shrink:0;white-space:nowrap}
.add-btn{background:transparent;border:1px dashed var(--cy);color:var(--cy);font-size:11px;font-weight:700;padding:6px;cursor:pointer;width:100%;text-align:center;transition:all .15s;border-radius:var(--r-sm);font-family:inherit}
.add-btn:hover{border-color:#0891b2;color:#0891b2}

/* PARTS TABLE */
.pt-wrap{border:1px solid #e6e6ec;background:#ffffff;border-radius:10px;overflow:hidden}
.pt-hd{display:grid;grid-template-columns:28px 1fr 60px 76px;border-bottom:1px solid #e6e6ec;padding:8px 4px;background:#f3f3f7}
.pt-hd span{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#5a5a78;padding:0 8px}
.pt-row{display:grid;grid-template-columns:28px 1fr 60px 76px;border-bottom:1px solid #f0f0f4;align-items:center}
/* 工区カラム有効時 */
.pt-wrap.kuiku-on .pt-hd{grid-template-columns:28px minmax(76px,1fr) 48px 46px 52px}
.pt-wrap.kuiku-on .pt-row{grid-template-columns:28px minmax(76px,1fr) 48px 46px 52px}
#ptHdKuiku{text-align:center}
.pt-row input[id^="pz"]{text-align:center;font-size:11px;padding-left:4px;padding-right:4px}
.pt-row:last-child{border-bottom:none}
/* Ctrl+A 全選択状態 */
.pt-row.pt-selected{background:rgba(79, 70, 229,.07)}
.pt-row.pt-selected input{background:rgba(79, 70, 229,.06)}
.pt-n{font-size:10px;color:#8888a8;display:flex;align-items:center;justify-content:center;font-family:monospace}
/* 重量ページ オプションチップ */
.w-opt-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin: 8px 0 2px;
}
.w-opt-chip {
  font-size: 11px;
  font-weight: 600;
  padding: 4px 10px;
  border: 1.5px solid #e0e0ea;
  border-radius: 20px;
  background: #f8f8fc;
  color: #8888a8;
  cursor: pointer;
  transition: .15s;
  font-family: inherit;
  letter-spacing: .02em;
}
.w-opt-chip:hover {
  border-color: #818cf8;
  color: #1a1a2e;
  background: #eef2ff;
}
.w-opt-chip--on {
  border-color: #818cf8;
  background: #e0e7ff;
  color: #1a1a2e;
}
.w-opt-chip--on:hover {
  border-color: #8b5cf6;
  background: #e0d9fb;
  color: #1a1a2e;
}

/* 計算ボタン Ctrl+Enter ヒント（キーキャップ風） */
.run-hint{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:18px;
  margin-left:8px;
  padding:0 7px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:6px;
  background:rgba(255,255,255,.10);
  color:#cfcfe0;
  font-size:9px;
  font-weight:700;
  font-family:'Space Grotesk','Noto Sans JP',sans-serif;
  letter-spacing:.04em;
  text-transform:none;
  white-space:nowrap;
  transition:all .2s;
}
.run:hover .run-hint{
  border-color:rgba(26,26,46,.18);
  background:rgba(255,255,255,.55);
  color:#5a5a78;
}
.pt-row input{background:transparent;border:1px solid transparent;color:#2a2a3e;font-family:'JetBrains Mono','Space Grotesk',monospace;font-size:13px;font-weight:600;padding:9px 10px;outline:none;transition:.12s;width:100%}
/* master 仕様 (2026-05-10): hover/focus も COLOR_RULES 中性 #f4f4f5 */
.pt-row input:hover,
.pt-row input:focus{background:#f4f4f5;outline:none;box-shadow:none}
.pt-origin{
  height:30px;
  margin:2px 3px;
  padding:0 18px 0 7px;
  border:1px solid #e7e8ee;
  border-radius:8px;
  background:#fff;
  color:#2a2a3e;
  font-size:10px;
  font-weight:700;
  font-family:'Noto Sans JP','Space Grotesk',sans-serif;
  cursor:pointer;
  min-width:0;
}
.pt-origin:hover,
.pt-origin:focus{
  background:#f4f4f5;
  border-color:#a1a1aa;
  outline:none;
  box-shadow:none;
}
.origin-summary{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:5px;
  padding:7px 10px;
  border-top:1px solid #ececf2;
  border-bottom:1px solid #ececf2;
  background:#fafafa;
}
.origin-summary-label{
  font-size:10px;
  font-weight:800;
  color:#5a5a78;
  letter-spacing:.08em;
}
.origin-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:2px 7px;
  border:1px solid #d4d4dc;
  border-radius:6px;
  background:#fff;
  color:#2a2a3e;
  font-size:10px;
  line-height:1.3;
}
.origin-chip--bar{margin-right:6px}
.origin-chip strong{font-weight:800}
.origin-chip span{color:#5a5a78;font-weight:700}
.origin-chip--inventory{border-color:#a7d8bf;background:#f2fbf6}
.origin-chip--carry_in{border-color:#d9c89f;background:#fffaf0}
.origin-print-summary{
  margin-left:auto;
  font-size:9px;
  font-weight:700;
  color:#333;
}
.cost-print-summary{
  margin-left:auto;
  font-size:9px;
  font-weight:700;
  color:#111;
}
.cart-item-cost{
  margin-top:4px;
  font-size:11px;
  color:#1f2937;
  font-weight:700;
}
.origin-bar-chip{
  display:inline-block;
  margin-right:5px;
  padding:1px 5px;
  border:1px solid #777;
  border-radius:3px;
  background:#fff;
  color:#111;
  font-size:8px;
  font-weight:800;
}
/* v1.12.17 母材出所チップ (= 在庫/持ち込み/引き取り品/仕入先購入/支給材) */
.mother-src-chip{display:inline-block;margin-right:5px;padding:1px 6px;border-radius:3px;color:#fff;font-size:8px;font-weight:800}
.mother-src-legend{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 5px;font-size:8px}
.mother-src-legend .msl-item{display:inline-flex;align-items:center;gap:3px}
.mother-src-legend .msl-dot{width:9px;height:9px;border-radius:2px}
@media (max-width: 680px){
  .stk-row{grid-template-columns:auto minmax(68px,1fr) auto;align-items:start}
  .stock-origin-control{grid-column:1 / -1;grid-template-columns:minmax(112px,1fr) minmax(132px,1fr);width:100%}
}
.pt-row 
.pt-kg{display:flex;align-items:center;justify-content:flex-end;padding-right:10px;font-size:11px;font-weight:500;color:#5a5a78;font-family:monospace}
.tot{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#f3f3f7;margin-top:0;border-top:1px solid #e6e6ec;border-radius:0 0 10px 10px}
.tot-l{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#5a5a78}
.tot-v{font-size:14px;font-weight:700;color:#2a2a3e;font-family:monospace}

/* 部材ヘッダー行 */
.parts-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.parts-btns{display:flex;gap:5px;align-items:center}
.sm-btn{background:transparent;border:1px solid #d4d4dc;color:#5a5a78;font-family:'Space Grotesk',sans-serif;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;cursor:pointer;transition:all .15s;border-radius:var(--r-sm)}
.sm-btn:hover{border-color:#2a2a3e;color:#2a2a3e}
.sm-btn.del:hover{border-color:var(--rd);color:var(--rd)}
.sm-btn.add:hover{border-color:var(--gn);color:var(--gn)}
.sm-btn.paste:hover{border-color:var(--cy);color:var(--cy)}

/* ペースト入力エリア */
/* master 仕様 (2026-05-10): paste-area 全背景白 */
.paste-area{border:1px solid #d4d4dc;background:#ffffff;padding:8px;margin-bottom:6px;display:none;border-radius:var(--r-sm)}
.paste-area.show{display:block}
/* master 仕様 (2026-05-10): textarea は白背景、focus も中性 #f4f4f5 */
.paste-area textarea{width:100%;background:#ffffff;border:1px solid #d4d4dc;color:#2a2a3e;font-family:monospace;font-size:11px;padding:6px;resize:vertical;min-height:80px;outline:none;line-height:1.5;transition:border-color .12s}
.paste-area textarea:focus{background:#ffffff;border-color:#a1a1aa;outline:none;box-shadow:none}
.paste-area textarea::placeholder{color:#aaaacc}
.paste-hint{font-size:11px;color:#5a5a78;margin-bottom:5px;line-height:1.6}
.paste-hint strong{color:var(--cy)}
.paste-btns{display:flex;gap:5px;margin-top:6px}
.paste-exec{background:var(--cy);color:var(--bk);border:none;font-family:'Space Grotesk',sans-serif;font-size:10px;font-weight:700;letter-spacing:.05em;padding:5px 12px;cursor:pointer;transition:background .15s;border-radius:var(--r-sm)}
.paste-exec:hover{background:var(--wh)}
.paste-cancel{background:transparent;border:1px solid #d4d4dc;color:#5a5a78;font-family:'Space Grotesk',sans-serif;font-size:10px;font-weight:700;padding:5px 10px;cursor:pointer;transition:all .15s}
.paste-cancel:hover{border-color:var(--rd);color:var(--rd)}
.paste-file{background:#fff;border:1px solid #d4d4dc;color:#1a1a2e;font-family:'Space Grotesk',sans-serif;font-size:10px;font-weight:700;letter-spacing:.04em;padding:5px 10px;cursor:pointer;transition:all .15s;border-radius:var(--r-sm)}
.paste-file:hover{background:#f1f2f6;border-color:#1a1a2e}

/* RUN BUTTON */
.run{width:100%;min-height:50px;box-sizing:border-box;background:#1a1a2e;color:#ffffff;border:1.5px solid #1a1a2e;font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .2s;border-radius:12px;box-shadow:none}
.run:hover{background:#f8fbff;border-color:#e5e7eb;color:#1a1a2e;box-shadow:none}
.run:disabled{background:var(--g3);cursor:not-allowed;color:var(--dk)}
#runBtn,
#wAddBtn{
  min-height:50px !important;
  height:50px !important;
  padding:13px 16px !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:9px !important;
  line-height:1.2 !important;
}
.arr{font-size:16px;transition:transform .15s}
.run:hover .arr{transform:translateX(4px)}

/* RESULT AREA */
.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:14px;color:#8888a8;border:none;background:#f3f3f7;border-radius:var(--r)}
.ph p{font-size:14px;color:#2a2a3e}
.ph small{font-size:11px;color:#5a5a78}
.calc-result-toolbar{position:sticky;top:0;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin-bottom:14px;border:1px solid #ddd9ee;border-radius:16px;background:rgba(255,255,255,.98);box-shadow:0 8px 24px rgba(17,17,17,.04);backdrop-filter:blur(8px)}
.calc-result-toolbar-main{min-width:0;flex:1;display:grid;grid-template-columns:180px repeat(4,minmax(0,1fr));gap:12px;align-items:stretch}
.calc-result-cell{min-width:0;display:flex;flex-direction:column;gap:2px}
.calc-result-cell-label{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#5a5a78}
.calc-result-title{font-size:16px;font-weight:700;color:#1a1a2e}
.calc-result-edit{min-width:0;display:flex;flex-direction:column;gap:6px;padding:0 12px;border-left:1px solid #ece8f4}
.calc-result-input{width:100%;height:40px;min-height:40px;border:none;background:transparent;color:#1a1a2e;font-size:13px;font-weight:700;font-family:inherit;padding:0 12px;outline:none;border-radius:10px;display:block}
.calc-result-input::placeholder{color:#a0a0b6;font-weight:600}
.calc-result-input[type="date"]{min-width:0}
.calc-toolbar-cart{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:112px;height:48px;border:1px solid #e3e0eb;background:#fff;color:#4f4f66;border-radius:14px;box-shadow:none}
.page-calc-active.has-calc-cart .hdr-right > #cartBadge{display:none}
.res-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid #ebebf0}
.res-ttl{font-size:17px;font-weight:700;font-style:italic;text-transform:uppercase;color:#2a2a3e}
.tag{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border:1px solid;border-radius:20px}
.tag-best{background:var(--br);color:#fff;border-color:var(--br);box-shadow:0 0 10px rgba(129, 140, 248,.25)}
.tag-chg{border-color:rgba(165, 180, 252,.6);color:var(--pu)}
.tag-yield{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border-color:#22c55e;box-shadow:0 0 12px rgba(34,197,94,.3)}
.yield-card{border:2px solid #22c55e !important;box-shadow:0 4px 24px rgba(34,197,94,.2) !important}
.yield-card .cc-hd{display:flex;flex-direction:row;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #ececf1;background:#fff;flex-wrap:nowrap;overflow:hidden}
.clist{display:flex;flex-direction:column;gap:9px}
.cc{border:1px solid #dddfe7;background:#fff;margin-bottom:0;border-radius:var(--r);overflow:hidden;box-shadow:0 4px 20px rgba(17,17,17,.05)}
.cc.r1{border:1.5px solid #d4d4dc;box-shadow:0 2px 8px rgba(0,0,0,.06)}.cc.r2{border:1px solid var(--bd2)}.cc.r3{border:1px solid #d4d4dc}
.cc-hd{display:flex;flex-direction:row;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #ececf1;background:#fff;flex-wrap:nowrap}
.rbdg{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;flex-shrink:0}
.r1 .rbdg{background:var(--br);color:#fff}.r2 .rbdg{background:#f8f8fc;color:#2a2a3e;border:2px solid var(--g2)}.r3 .rbdg{background:#f8f8fc;color:#2a2a3e;border:2px solid var(--bd2)}
.cc-desc{font-size:14px;font-weight:700;flex:1;min-width:0;color:#1a1a2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r1 .cc-desc{font-size:14px;font-weight:700;flex:1;min-width:0;color:#1a1a2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.r2 .cc-desc{font-size:14px;font-weight:700;flex:1;min-width:0;color:#1a1a2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.r3 .cc-desc{font-size:14px;font-weight:700;flex:1;min-width:0;color:#1a1a2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc-stats{display:flex;gap:10px;flex-wrap:nowrap;align-items:center;flex-shrink:0}
.cs .cl{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#2a2a3e}
.cs .cv{font-size:13px;font-weight:600;font-family:monospace}
.cost-stat .cv{color:#111;font-weight:800}
.r1 .cs .cv{color:#2a2a3e}.r2 .cs .cv{color:#2a2a3e}.r3 .cs .cv{color:#2a2a3e}
.r1 .cost-stat .cv,.r2 .cost-stat .cv,.r3 .cost-stat .cv{color:#111;font-weight:800}
.cc-pat{padding:12px 16px;background:#fff}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:7px}
/* master 仕様 (2026-05-10): pc-hd 背景を白、 .px (= ×N バッジ) を黒塗白文字 */
.pc{background:#fff;border:1px solid #d4d4dc;border-radius:var(--r-sm);overflow:hidden}
.pc.best{border-color:#d4d4dc}
.pc-hd{padding:6px 10px;background:#ffffff;border-bottom:1px solid #ebebf0;font-size:11px;font-weight:600;display:flex;justify-content:space-between;color:#1a1a2e}
.pc.best .pc-hd{padding:6px 10px;background:#ffffff;border-bottom:1px solid #ebebf0;font-size:11px;font-weight:600;display:flex;justify-content:space-between;color:#1a1a2e}
.pc-row{padding:6px 12px;border-bottom:1px solid #ebebf0;font-family:monospace;font-size:12px;display:flex;gap:6px;align-items:center;color:#2a2a3e}
.pc-row:last-child{border-bottom:none}
.px{background:#18181b;color:#ffffff;padding:2px 6px;font-size:11px;font-weight:700;flex-shrink:0;border-radius:4px}
.pp{flex:1;color:#2a2a3e}.plr{font-size:10px;flex-shrink:0;color:var(--gn) !important}
.ll{color:var(--gn)}.lm{color:var(--gn)}.lh{color:var(--gn)}

/* ── 切断図ビジュアルバー ── */
.cc-detail-body{display:none}
.cc-detail-body.open{display:block}
.detail-toggle{width:100%;background:#fbfbfd;border:none;border-top:1px solid #ebebf0;color:#5a5a78;font-family:'Space Grotesk',sans-serif;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:9px 14px;cursor:pointer;text-align:left;transition:color .15s,background .15s}
.detail-toggle:hover{background:#f8f8fc;color:#2a2a3e}
.detail-toggle.open{color:var(--br)}
.cut-diagram{padding:12px 14px;background:#fff;border-top:1px solid #ececf1}
.cut-diagram-title{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#2a2a3e;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.cut-diagram-title::after{content:'';flex:1;height:1px;background:var(--bd)}
.bar-vis{margin-bottom:8px}
.bar-vis-label{font-size:11px;color:#2a2a3e;margin-bottom:4px;font-family:monospace;display:flex;align-items:center;gap:6px}
.bar-vis-label .bar-count{background:var(--bd2);color:#2a2a3e;padding:1px 6px;font-size:10px;font-weight:700}
.bar-track{position:relative;height:28px;background:#f8f8fc;border:1px solid #d4d4dc;overflow:hidden;display:flex;border-radius:0}
.bar-piece{height:100%;display:flex;align-items:center;justify-content:center;font-family:monospace;font-size:11px;font-weight:600;position:relative;transition:opacity .15s}
.bar-piece:hover{opacity:.8}
.bar-piece-inner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 3px;pointer-events:none}
.bar-kerf{width:2px;height:100%;background:#f4f4f6;flex-shrink:0}
.bar-loss{height:100%;background:rgba(255,68,68,.1);border-left:1px solid rgba(255,68,68,.4);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--gn);font-family:monospace}
.bar-rem{height:100%;background:rgba(34,68,136,.12);border-left:3px solid #224488;display:flex;align-items:center;justify-content:center;font-size:10px;color:#224488;font-family:monospace;font-weight:700}
.bar-scale{display:none}


/* アコーディオン切断図トグルボタン */
.diag-toggle{width:100%;background:transparent;border:none;border-top:1px solid #ebebf0;color:#5a5a78;font-family:'Space Grotesk',sans-serif;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:7px 14px;cursor:pointer;text-align:left;transition:color .15s,background .15s}
.diag-toggle:hover{background:#f8f8fc;color:#2a2a3e}
.diag-toggle.open{color:var(--br)}
/* 凡例 */
.diag-legend{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;padding:0 2px}
.diag-legend-item{height:18px;padding:0 8px;font-size:11px;font-weight:700;display:flex;align-items:center;min-width:0;width:auto}

/* 残材バッジ */
.rem-badge{font-size:10px;background:rgba(0,212,255,.15);border:1px solid var(--cy);color:var(--cy);padding:1px 5px;font-weight:700}

/* 切断図バー色 v1: default .b-piece は #d8d8d8 のまま、piece-color で控えめに強化 */
.piece-legend{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 8px;padding:0}
.piece-legend-item{display:inline-flex;align-items:center;gap:5px;min-height:20px;padding:2px 7px;border:1px solid var(--piece-border,#555);background-color:var(--piece-fill,#d8d8d8);background-image:var(--piece-hatch,none);color:#111;font-size:10px;font-weight:700;font-family:monospace;line-height:1.2}
.piece-swatch{width:12px;height:12px;flex-shrink:0;border:1px solid var(--piece-border,#555);background-color:var(--piece-fill,#d8d8d8);background-image:var(--piece-hatch,none)}
.b-piece[class*="piece-color-"]{background-color:var(--piece-fill,#d8d8d8);background-image:var(--piece-hatch,none);color:#111;border-left:1px solid var(--piece-border,#555);box-shadow:inset 0 0 0 1px rgba(17,17,17,.08)}
.b-piece .piece-label{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;min-width:0;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;font-variant-numeric:tabular-nums}
.piece-code{font-weight:800;letter-spacing:.02em}
.b-piece .piece-length,.piece-legend-item .piece-length{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* v1.12.14 部材ラベル (= 現場名/工区) 付き切断片: 縦積み (長さ上 / ラベル下)。 改行せず…省略 */
.b-piece--labeled{flex-direction:column;justify-content:center;gap:1px;line-height:1.15;padding:2px 0}
.b-piece--labeled .piece-label{font-size:10px}
.b-piece-zone{display:block;max-width:100%;padding:0 3px;font-size:8.5px;font-weight:700;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}
.bar-track--labeled{height:auto;min-height:46px}
.piece-color-0{--piece-fill:#e6f2ff;--piece-border:#0072b2;--piece-hatch:none}
.piece-color-1{--piece-fill:#fff1cc;--piece-border:#e69f00;--piece-hatch:repeating-linear-gradient(45deg,rgba(17,17,17,0) 0 6px,rgba(17,17,17,.16) 6px 7px)}
.piece-color-2{--piece-fill:#e4f4ef;--piece-border:#009e73;--piece-hatch:repeating-linear-gradient(-45deg,rgba(17,17,17,0) 0 6px,rgba(17,17,17,.16) 6px 7px)}
.piece-color-3{--piece-fill:#fce8e0;--piece-border:#d55e00;--piece-hatch:repeating-linear-gradient(0deg,rgba(17,17,17,0) 0 6px,rgba(17,17,17,.15) 6px 7px)}
.piece-color-4{--piece-fill:#f8e8f3;--piece-border:#cc79a7;--piece-hatch:repeating-linear-gradient(90deg,rgba(17,17,17,0) 0 6px,rgba(17,17,17,.15) 6px 7px)}
.piece-color-5{--piece-fill:#eaf4f8;--piece-border:#56b4e9;--piece-hatch:radial-gradient(circle at 2px 2px,rgba(17,17,17,.2) 1px,transparent 1.5px);background-size:7px 7px}
.piece-color-6{--piece-fill:#f2f2f2;--piece-border:#4b5563;--piece-hatch:repeating-linear-gradient(45deg,rgba(17,17,17,0) 0 5px,rgba(17,17,17,.22) 5px 7px)}
.piece-color-7{--piece-fill:#fff8b8;--piece-border:#a68a00;--piece-hatch:repeating-linear-gradient(45deg,rgba(17,17,17,0) 0 6px,rgba(17,17,17,.16) 6px 7px),repeating-linear-gradient(-45deg,rgba(17,17,17,0) 0 6px,rgba(17,17,17,.16) 6px 7px)}

/* 切断図：部材ハッチングパターン（画面＋白黒印刷兼用） */
/* 画面: 背景色+ハッチング overlay, 印刷: ハッチングのみで識別 */
.p0{background:#252530;color:#ffffff}
.p1{background:#252530;color:#ffffff}
.p2{background:#252530;color:#ffffff}
.p3{background:#252530;color:#ffffff}
.p4{background:#252530;color:#ffffff}
.p5{background:#252530;color:#ffffff}
.p6{background:#252530;color:#ffffff}
.p7{background:#252530;color:#ffffff}
.p8{background:#252530;color:#ffffff}
.p9{background:#252530;color:#ffffff}
/* ハッチングはSVGデータURIで各クラスに付与（白黒印刷で識別可能） */
.ph0{background-image:none}
.ph1{background-image:none}
.ph2{background-image:none}
.ph3{background-image:none}
.ph4{background-image:none}
.ph5{background-image:none}
.ph6{background-image:none}
.ph7{background-image:none}
.ph8{background-image:none}
.ph9{background-image:none}
/* 印刷用ハッチング（黒地なしでパターンのみ） */
@media print{
  /* 印刷時に隠すもの */
  header,nav,.pg:not(.print-target),.an:not(.print-target),
  .print-btn,.diag-toggle,.run,.sb,#hip,
  button:not(.print-allow){display:none !important}

  /* ページ設定 */
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact;box-sizing:border-box}
  body{background:#fff !important;color:#000 !important;font-size:11px;margin:0;padding:0}
  @page{margin:8mm 10mm;size:A4 landscape}
  thead{display:table-header-group}
  tfoot{display:table-footer-group}
  .work-page{break-after:page;page-break-after:always}
  .work-page:last-child{break-after:auto;page-break-after:auto}

  /* 計算ページ */
  #cp.show{display:block !important;position:static !important}
  .mn{padding:0 !important;overflow:visible !important}

  /* 印刷対象のみ表示 */
  .an{display:none !important}
  .an.print-target{display:block !important}
  .cc{display:none !important}
  .cc.print-target{display:block !important;border:1px solid #ccc !important;border-radius:6px !important;margin-bottom:12px;break-inside:avoid;page-break-inside:avoid}
  .cc.print-target + .cc.print-target{break-before:page;page-break-before:always}
  .cc-hd,.cc-pat,.pc,.pc-row,.rem-section{break-inside:avoid;page-break-inside:avoid}

  /* 作業指示書ヘッダー */
  .print-job-header{display:block !important;margin-bottom:12px;break-inside:avoid;page-break-inside:avoid}
  .ph-full,.ph-mini,.print-footer{break-inside:avoid;page-break-inside:avoid}

  /* 切断図 */
  [id^="diag_"]{display:block !important}
  .cut-diagram,.bar-vis,.bar-block,.bar-group,.bar-track{break-inside:avoid;page-break-inside:avoid}
  .bar-track,
  .b-piece,
  .piece-label,
  .piece-legend,
  .piece-legend-item,
  .piece-swatch,
  .b-rem,
  .b-loss,
  .b-end{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .b-piece[class*="piece-color-"],
  .piece-legend-item,
  .piece-swatch{background-color:var(--piece-fill,#d8d8d8) !important;background-image:var(--piece-hatch,none) !important;color:#111 !important;border-color:var(--piece-border,#555) !important}

  /* 切断図バー色 */
  .p0{background:#e8e8e8 !important;color:#000 !important;border:1px solid #999 !important}
  .p1{background:#d0d8f0 !important;color:#000 !important;border:1px solid #88a !important}
  .p2{background:#d0f0d8 !important;color:#000 !important;border:1px solid #8a8 !important}
  .p3{background:#f0d8d0 !important;color:#000 !important;border:1px solid #a88 !important}
  .p4{background:#f0ecd0 !important;color:#000 !important;border:1px solid #aa8 !important}
  .p5{background:#ddd0f0 !important;color:#000 !important;border:1px solid #99a !important}
  .p6{background:#d0f0f0 !important;color:#000 !important;border:1px solid #8aa !important}
  .p7{background:#f0d0f0 !important;color:#000 !important;border:1px solid #a8a !important}
  .p8{background:#e8e8e8 !important;color:#000 !important;border:1px solid #888 !important}
  .p9{background:#f0f0d0 !important;color:#000 !important;border:1px solid #aa9 !important}
  .ph0,.ph1,.ph2,.ph3,.ph4,.ph5,.ph6,.ph7,.ph8,.ph9{background-image:none}
}

/* CHARGE CARD */
.chg-note{font-size:11px;color:#2a2a3e;margin-bottom:12px;line-height:1.7}
.chg-note strong{color:var(--br)}

/* SPINNER */
.sp{width:13px;height:13px;border:2px solid rgba(0,0,0,.3);border-top-color:var(--bk);border-radius:50%;animation:rot .5s linear infinite;display:inline-block;vertical-align:middle}
@keyframes rot{to{transform:rotate(360deg)}}
@keyframes fi{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.an{animation:fi .2s ease both}.d1{animation-delay:.05s}.d2{animation-delay:.1s}
.calc-loading-overlay{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(16,10,6,.54);
  backdrop-filter:blur(6px);
  z-index:1200;
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease;
}
.calc-loading-overlay.show{
  opacity:1;
  pointer-events:auto;
}
.calc-loading-card{
  min-width:240px;
  padding:24px 26px 22px;
  border-radius:20px;
  background:linear-gradient(180deg,#fff8ef 0%,#ffe6c5 100%);
  border:1px solid rgba(104,54,18,.18);
  box-shadow:0 22px 50px rgba(43,18,4,.28);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}
.calc-loading-pizza{
  font-size:54px;
  line-height:1;
  animation:pizza-spin 1.8s linear infinite;
  filter:drop-shadow(0 6px 14px rgba(120,56,7,.24));
  transform-origin:center;
}
.calc-loading-spinner{
  width:24px;
  height:24px;
  border-radius:50%;
  border:3px solid rgba(120,56,7,.2);
  border-top-color:#b45309;
  animation:rot .7s linear infinite;
}
.calc-loading-title{
  font-size:16px;
  font-weight:800;
  color:#2b1608;
  letter-spacing:.04em;
}
.calc-loading-sub{
  font-size:12px;
  color:#8a5a2b;
  text-align:center;
  line-height:1.6;
}
