:root{--bg:#f6f7fa;--card:#fff;--line:#e3e6ec;--ink:#202533;--sub:#737b8d;--brand:#2f6bff;--green:#e8f5e9;--greenInk:#2e7d32;--yellow:#fff8e1;--yellowInk:#9a6400;--red:#ffebee;--redInk:#c62828;--blue:#edf3ff;--blueInk:#2858c7}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif}.app{max-width:1500px;margin:auto;padding:24px}.header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.header h1{margin:0;font-size:25px}.subtitle{margin:6px 0 0;color:var(--sub)}.status-pill{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 13px;font-size:13px;white-space:nowrap}.status-pill.ok{background:var(--green);color:var(--greenInk)}.notice{background:#fffbe6;border:1px solid #f4da77;border-radius:12px;padding:11px 15px;margin:18px 0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;margin:16px 0;box-shadow:0 2px 8px rgba(27,39,66,.03)}.card h2{font-size:17px;margin:0 0 13px}.drop{display:block;border:2px dashed #c6ccd7;border-radius:12px;padding:23px;text-align:center;cursor:pointer}.drop:hover,.drop.over{border-color:var(--brand);background:#f3f7ff}.drop small{display:block;margin-top:6px;color:var(--sub)}.filename{color:var(--brand);font-weight:700;margin-top:9px}.mapping{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.field label{display:block;color:var(--sub);font-size:12px;margin-bottom:4px}.field select{width:100%;padding:8px;border:1px solid var(--line);border-radius:8px;background:white}.existing-cols{max-height:270px;overflow:auto;margin-top:12px;border:1px solid var(--line);border-radius:10px;padding:8px}.check-row{display:flex;gap:8px;padding:6px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{border:1px solid #bdc5d2;border-radius:9px;padding:10px 16px;background:white;cursor:pointer;font-weight:700}.btn:hover{background:#f5f7fb}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--brand);color:white;border-color:var(--brand)}.muted{color:var(--sub);font-size:13px}.compact{margin:11px 0 0;line-height:1.65}.rule-card{margin-top:0}.rule-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rule-grid span{background:#f6f8fc;border:1px solid var(--line);border-radius:8px;padding:8px 10px;text-align:center;font-size:13px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;margin:16px 0}.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.kpi .label{font-size:12px;color:var(--sub)}.kpi .num{font-size:29px;font-weight:800;margin-top:4px}.kpi.red{background:var(--red)}.kpi.red .num{color:var(--redInk)}.kpi.green{background:var(--green)}.kpi.green .num{color:var(--greenInk)}.kpi.yellow{background:var(--yellow)}.kpi.yellow .num{color:var(--yellowInk)}.kpi.blue{background:var(--blue)}.kpi.blue .num{color:var(--blueInk)}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:12px;overflow-x:auto;flex-wrap:nowrap}.tab{border:0;background:transparent;padding:10px 13px;cursor:pointer;color:var(--sub);font-weight:700}.tab.active{color:var(--brand);border-bottom:3px solid var(--brand)}.table-wrap{overflow:auto;max-height:650px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;max-width:460px;overflow:hidden;text-overflow:ellipsis}th{position:sticky;top:0;background:#fff;color:var(--sub);z-index:1}.wrap{white-space:normal;min-width:260px}.tag{display:inline-block;border-radius:999px;padding:3px 9px;font-weight:700;font-size:12px}.tag.keep{background:var(--green);color:var(--greenInk)}.tag.carry{background:var(--yellow);color:var(--yellowInk)}.tag.exclude{background:var(--red);color:var(--redInk)}a{color:var(--brand)}.footer-note{color:var(--sub);font-size:12px;margin-top:12px}.hidden{display:none!important}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(4,1fr)}.mapping{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.app{padding:12px}.grid-2{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}.mapping{grid-template-columns:1fr}.rule-grid{grid-template-columns:repeat(2,1fr)}}
.selection-note{padding:8px 10px;margin:2px 2px 8px;border-radius:8px;font-size:12px}.selection-note.ok{background:var(--green);color:var(--greenInk)}.selection-note.warn{background:var(--yellow);color:var(--yellowInk)}.check-row.standard{font-weight:700}.export-status{font-size:13px;padding:9px 11px;border-radius:8px;flex-basis:100%}.export-status.info{background:var(--blue);color:var(--blueInk)}.export-status.success{background:var(--green);color:var(--greenInk)}.export-status.error{background:var(--red);color:var(--redInk)}

.step-summary{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 14px}.step-summary .summary-chip{border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:#fff;font-size:12px}.step-summary .summary-chip strong{font-size:14px;margin-left:4px}.step-description{margin:0 0 10px}.step4-breakdown{margin:0 0 18px}.step4-breakdown h3{font-size:14px;margin:0 0 8px}.tag.pass{background:var(--green);color:var(--greenInk)}.tag.pending{background:var(--blue);color:var(--blueInk)}.tag.notrun{background:#eef0f4;color:#687083}

.chat-card{border-color:#cfdcff;background:linear-gradient(180deg,#fff 0%,#f8faff 100%)}
.chat-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.chat-card-head h2{margin-bottom:4px}.research-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:16px 0}.research-kpis>div{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}.research-kpis span{display:block;color:var(--sub);font-size:12px}.research-kpis strong{display:block;font-size:24px;margin-top:3px}.chat-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:12px;align-items:stretch}.flow-step{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px}.flow-step strong{font-size:14px}.flow-step p{color:var(--sub);font-size:12px;line-height:1.55;min-height:38px}.flow-arrow{display:flex;align-items:center;color:var(--brand);font-size:24px;font-weight:800}.btn.chat{background:#eef3ff;border-color:#b8c8f8;color:#2858c7}.btn.import-btn{display:inline-block;background:#fff;user-select:none}.research-notes{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.research-notes strong,.research-notes span{border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:#fff;font-size:12px}.research-notes strong{background:#edf3ff;color:#2858c7}.chat-card .export-status{margin-top:12px}.tag.review{background:#fff3cd;color:#856404}
@media(max-width:1100px){.research-kpis{grid-template-columns:repeat(3,1fr)}.chat-flow{grid-template-columns:1fr}.flow-arrow{display:none}}
@media(max-width:760px){.research-kpis{grid-template-columns:repeat(2,1fr)}.chat-card-head{display:block}.chat-card-head .status-pill{display:inline-block;margin-top:8px}}

.step6-card{border-color:#cfe8d1;background:linear-gradient(180deg,#fff 0%,#f8fff8 100%)}
.step6-card .research-notes strong{background:var(--green);color:var(--greenInk)}

.step8-card{border-color:#d9d2f4;background:linear-gradient(180deg,#fff 0%,#fbf9ff 100%)}
.step8-card .research-notes strong{background:#f1edff;color:#5b43a8}
.step8-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1100px){.step8-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.step8-kpis{grid-template-columns:repeat(2,1fr)}}

.step9-card{border-color:#f1d5ad;background:linear-gradient(180deg,#fff 0%,#fffaf3 100%)}
.step9-card .research-notes strong{background:#fff0dc;color:#8a5200}
.step9-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.step9-source-box{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px}
.step9-source-box strong{display:block;font-size:14px}.step9-source-box p{color:var(--sub);font-size:12px;line-height:1.6;min-height:38px}
.small-file{font-size:12px;font-weight:600;word-break:break-all}.step9-prepare-actions{margin:4px 0 12px}.step9-final-actions{margin-top:12px}
.modal-grid input,.modal-grid select,.modal-grid textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit}
.step9-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.step9-table-wrap{max-height:720px}
.step9-table-wrap th,.step9-table-wrap td{max-width:360px}
.evidence-links{display:flex;flex-direction:column;gap:4px;white-space:normal;min-width:210px}
.row-actions{display:flex;gap:6px}.btn.tiny{padding:5px 9px;font-size:12px}
.tag.complete{background:var(--green);color:var(--greenInk)}
.tag.failed{background:#eceff3;color:#4f5968}
.modal{position:fixed;inset:0;background:rgba(22,28,39,.48);z-index:50;display:flex;align-items:center;justify-content:center;padding:24px}
.modal-panel{background:#fff;border-radius:14px;box-shadow:0 18px 60px rgba(0,0,0,.25);width:min(900px,100%);max-height:92vh;overflow:auto;padding:18px}
.modal-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:14px}.modal-head h2{margin:0;font-size:18px}.modal-close{border:0;background:transparent;font-size:28px;cursor:pointer;color:var(--sub)}
.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-grid .wide{grid-column:1/-1}.modal-actions{justify-content:flex-end;margin-top:16px}
@media(max-width:1200px){.step9-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.step9-source-grid{grid-template-columns:1fr}.step9-kpis{grid-template-columns:repeat(2,1fr)}.modal-grid{grid-template-columns:1fr}.modal-grid .wide{grid-column:auto}.modal{padding:10px}}

.step10-card{border-color:#c9d9ef;background:linear-gradient(180deg,#fff 0%,#f6fbff 100%)}
.step10-card .research-notes strong{background:#e7f2ff;color:#245d9d}
.step10-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.step10-source-box{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px}
.step10-source-box strong{display:block;font-size:14px}.step10-source-box p{color:var(--sub);font-size:12px;line-height:1.6;min-height:38px}
.step10-inline-note{display:inline-block;border-radius:999px;padding:7px 11px;background:#edf6ff;color:#245d9d;font-size:12px;font-weight:700}
.step10-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.step10-prepare-actions{margin:4px 0 12px}.step10-final-actions{margin-top:12px}
.step10-table-wrap{max-height:720px}.step10-table-wrap th,.step10-table-wrap td{max-width:420px}
@media(max-width:1100px){.step10-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.step10-source-grid{grid-template-columns:1fr}.step10-kpis{grid-template-columns:repeat(2,1fr)}}


/* v0.7.0: 4工程化後も手順4・5・6の各結果欄を独立表示 */
.batch-overview-kpis{grid-template-columns:repeat(3,minmax(0,1fr));max-width:760px}
.step456-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}
.step456-panel{border:1px solid var(--line);border-radius:14px;background:#fff;padding:15px;min-width:0}
.step456-panel h3{font-size:16px;margin:2px 0 0}
.step456-panel p{color:var(--sub);font-size:12px;line-height:1.65;min-height:58px;margin:10px 0 13px}
.step456-title-row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.step-number-label{font-size:12px;font-weight:800;letter-spacing:.04em}
.step4-panel{border-top:4px solid #5b7cfa}.step4-panel .step-number-label{color:#3158d8}
.step5-panel{border-top:4px solid #e6a23c}.step5-panel .step-number-label{color:#9a5b00}
.step6-panel{border-top:4px solid #42a85a}.step6-panel .step-number-label{color:#24783a}
.step456-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.step456-kpis>div{border:1px solid var(--line);border-radius:9px;padding:8px;background:#f9fafc;min-width:0}
.step456-kpis span{display:block;color:var(--sub);font-size:10px;line-height:1.35;min-height:27px}
.step456-kpis strong{display:block;font-size:20px;margin-top:2px}
.mini-status{white-space:nowrap;border-radius:999px;padding:5px 9px;background:#edf3ff;color:#2858c7;font-size:11px;font-weight:800}
.mini-status.pending{background:var(--yellow);color:var(--yellowInk)}
.mini-status.complete{background:var(--green);color:var(--greenInk)}
.mini-status.neutral{background:#eef0f4;color:#687083}
.combined-flow{margin-top:6px}
@media(max-width:1180px){.step456-panels{grid-template-columns:1fr}.step456-panel p{min-height:0}.step456-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:760px){.batch-overview-kpis{grid-template-columns:repeat(3,1fr)}.step456-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.7.0: 画面上の操作を4工程へ集約 */
.combined-card{border-color:#bcd9d1;background:linear-gradient(180deg,#fff 0%,#f5fffb 100%)}
.combined-card .research-notes strong{background:#e3f6ef;color:#176b52}
.combined-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.final-card{border-color:#cfd5df;background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)}
.final-check-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0}
.final-check{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;min-width:0}
.final-check span{display:block;color:var(--sub);font-size:12px}
.final-check strong{display:block;font-size:26px;margin:4px 0}
.final-check small{display:block;color:var(--sub);font-size:11px;line-height:1.5}
.final-check.good{background:var(--green);color:var(--greenInk)}
.final-check.good span,.final-check.good small{color:var(--greenInk)}
.final-check.warn{background:var(--yellow);color:var(--yellowInk)}
.final-check.warn span,.final-check.warn small{color:var(--yellowInk)}
.final-check.bad{background:var(--red);color:var(--redInk)}
.final-check.bad span,.final-check.bad small{color:var(--redInk)}
.final-check.neutral{background:#f3f5f8;color:#4f5968}
.btn.subtle{background:#f6f7f9;color:#586174}
.legacy-workflow:not(.legacy-visible){display:none!important}
.legacy-workflow.legacy-visible{display:block!important}
#step8Card .actions{margin-top:10px}
#step8Card #runStep8Btn{background:#f6f7f9;color:#586174;border-color:var(--line)}
@media(max-width:1200px){.combined-kpis{grid-template-columns:repeat(3,1fr)}.final-check-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.combined-kpis{grid-template-columns:repeat(2,1fr)}.final-check-grid{grid-template-columns:1fr}}

.btn.undo-btn{background:#fff7f7;border-color:#e5a7a7;color:#a52a2a}.btn.undo-btn:hover{background:#ffeded}

/* v0.7.5: 工程②・③を常時表示し、結果Excelからの直接再開に対応 */
.btn.disabled-control{opacity:.45;cursor:not-allowed;pointer-events:none}
