:root{
  --navy:#1F497D; --navy-d:#16345b; --gold:#b8860b; --line:#e3e7ee;
  --ok:#1a7f37; --warn:#b8860b; --bad:#b42318; --bg:#f4f6fa; --card:#fff;
  --muted:#667085;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Hiragino Kaku Gothic ProN","Meiryo",system-ui,sans-serif;background:var(--bg);color:#1a2233;font-size:14px;line-height:1.6}
header{background:var(--navy);color:#fff;padding:14px 20px;display:flex;align-items:center;gap:14px}
header .logo{font-weight:800;font-size:18px;letter-spacing:.5px}
header .sub{font-size:12px;opacity:.85}
header .save{margin-left:auto;font-size:12px;opacity:.9}
nav{display:flex;gap:2px;background:var(--navy-d);padding:0 12px;flex-wrap:wrap}
nav button{background:transparent;border:0;color:#cdd7e6;padding:12px 16px;cursor:pointer;font-size:14px;border-bottom:3px solid transparent}
nav button.active{color:#fff;border-bottom-color:var(--gold);font-weight:700}
nav button .n{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;background:#fff2;border-radius:50%;margin-right:6px;font-size:12px}
main{max-width:1180px;margin:0 auto;padding:22px 20px 80px}
.view{display:none}
.view.active{display:block}
h2{font-size:20px;margin:0 0 4px;color:var(--navy)}
.lead{color:var(--muted);margin:0 0 18px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:18px}
.grid{display:grid;gap:12px}
.form-grid{grid-template-columns:repeat(2,1fr)}
label.f{display:block;font-size:12px;color:var(--muted);margin-bottom:4px;font-weight:600}
input[type=text],input[type=number],select,textarea{width:100%;padding:9px 10px;border:1px solid #cbd3e0;border-radius:7px;font-size:14px;font-family:inherit;background:#fff}
textarea{min-height:60px;resize:vertical}
.btn{background:var(--navy);color:#fff;border:0;padding:10px 18px;border-radius:7px;cursor:pointer;font-size:14px;font-weight:700}
.btn:hover{background:var(--navy-d)}
.btn.gold{background:var(--gold)}
.btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--navy)}
.btn.sm{padding:5px 10px;font-size:12px}
.btn.del{background:#fff;color:var(--bad);border:1px solid #e6b0aa}
.row-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:#eef2f8;color:var(--navy);font-size:12px;white-space:nowrap}
td.mark{text-align:center;font-weight:800;font-size:16px}
.mark-◎{color:var(--ok)} .mark-○{color:#2563eb} .mark-△{color:var(--warn)} .mark-x{color:var(--bad)}
.badge{display:inline-block;background:#eef2f8;color:var(--navy);border-radius:20px;padding:2px 9px;font-size:11px;margin:2px 3px 0 0}
.badge.good{background:#e7f5ec;color:var(--ok)}
.badge.avoid{background:#fdeceb;color:var(--bad)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.wcard{border:1px solid var(--line);border-radius:9px;padding:12px;background:#fff}
.wcard .title{font-weight:700;margin-bottom:6px}
.wcard .min{color:var(--muted);font-size:12px}
.ai-note{background:#fff8e6;border:1px dashed var(--gold);border-radius:8px;padding:10px 12px;color:#7a5b00;font-size:12px;margin-bottom:14px}
.ai-note b{color:var(--gold)}
.empty{color:var(--muted);padding:24px;text-align:center;border:1px dashed var(--line);border-radius:9px}
.person-chip{display:inline-flex;align-items:center;gap:6px;background:#eef2f8;border-radius:20px;padding:3px 10px;font-size:12px;margin:2px}
.score{font-weight:800}
.score.pos{color:var(--ok)} .score.neg{color:var(--bad)} .score.zero{color:var(--muted)}
.match-block{border:1px solid var(--line);border-radius:9px;padding:14px;margin-bottom:12px;background:#fff}
.match-block h4{margin:0 0 8px;color:var(--navy)}
.pkg-bar{height:10px;background:#e9edf4;border-radius:6px;overflow:hidden;margin:6px 0}
.pkg-bar > span{display:block;height:100%;background:var(--ok)}
.small{font-size:12px;color:var(--muted)}
.tag-picker{display:flex;flex-wrap:wrap;gap:6px}
.tag-picker .t{border:1px solid #cbd3e0;border-radius:20px;padding:4px 10px;cursor:pointer;font-size:12px;user-select:none}
.tag-picker .t.on-good{background:#e7f5ec;border-color:var(--ok);color:var(--ok);font-weight:700}
.tag-picker .t.on-avoid{background:#fdeceb;border-color:var(--bad);color:var(--bad);font-weight:700}
.hint{font-size:11px;color:var(--muted);margin-top:4px}
.flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.spacer{flex:1}
/* 画面5: 試算 */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.kpi{border:1px solid var(--line);border-radius:10px;padding:14px;background:#fff}
.kpi-l{font-size:12px;color:var(--muted);font-weight:600}
.kpi-v{font-size:24px;font-weight:800;margin:4px 0;color:var(--navy);line-height:1.2}
.kpi-s{font-size:11px;color:var(--muted)}
.kpi-bad{border-color:#e6b0aa;background:#fdf3f2}.kpi-bad .kpi-v{color:var(--bad)}
.kpi-warn{border-color:#e6cf8a;background:#fdf8ec}.kpi-warn .kpi-v{color:#8a6400}
.kpi-ok{border-color:#a9d8b8;background:#f1faf4}.kpi-ok .kpi-v{color:var(--ok)}
.money-grid{display:flex;flex-direction:column;gap:2px}
.money-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 4px;border-bottom:1px solid var(--line)}
.money-l{font-weight:700}
.money-v{font-size:18px;font-weight:800;white-space:nowrap}
.money-v.ok{color:var(--ok)}.money-v.bad{color:var(--bad)}.money-v.warn{color:#8a6400}
.impact{margin-top:14px;background:var(--navy);color:#fff;border-radius:10px;padding:14px 16px;font-size:15px}
.impact b{font-size:22px;color:#ffd97a}
.kpis-4{grid-template-columns:repeat(4,1fr)}
/* 画面2: カービング・マップ */
.carve-flow{display:flex;align-items:flex-start;gap:14px;margin-top:14px;flex-wrap:wrap}
.orig-card{flex:0 0 190px;background:linear-gradient(160deg,#1F497D,#16345b);color:#fff;border-radius:10px;padding:14px}
.orig-card .oc-t{font-size:11px;opacity:.8}
.orig-card .oc-n{font-size:17px;font-weight:800;margin:2px 0 6px}
.orig-card .small{color:#cdd7e6}
.orig-card .oc-sub{margin-top:10px;font-size:11px;background:#ffffff22;border-radius:6px;padding:6px 8px}
.flow-arrow{align-self:center;color:var(--gold);font-size:22px;font-weight:900;text-align:center;line-height:1.1}
.flow-arrow .small{color:var(--muted);font-weight:600}
.carve-cards{flex:1;min-width:260px}
.carve-card{position:relative;border-left:5px solid var(--line);opacity:0;transform:translateY(8px) scale(.98);animation:pop .32s ease forwards}
.carve-card.cl-a{border-left-color:var(--ok)} .carve-card.cl-b{border-left-color:#2563eb} .carve-card.cl-c{border-left-color:var(--warn)}
@keyframes pop{to{opacity:1;transform:none}}
.cc-top{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:4px}
.carve-badge{font-size:11px;font-weight:800;border-radius:20px;padding:2px 8px}
.carve-badge.cb-a{background:#e7f5ec;color:var(--ok)} .carve-badge.cb-b{background:#e8f0fe;color:#2563eb} .carve-badge.cb-c{background:#fdf8ec;color:#8a6400}
.fit-chip{display:inline-block;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:700;margin-top:2px}
.fit-none{background:#eef2f8;color:var(--muted);font-weight:600}
.assigned-tag{margin-top:8px;font-size:12px;font-weight:700;color:var(--navy)}
.assigned-tag.none{color:var(--muted);font-weight:600}
.assigned-tag.core{color:#8a6400}
/* 人カラー */
.fit-c0{background:#e7f0ff;color:#1d4ed8}.fit-c1{background:#e7f5ec;color:#1a7f37}.fit-c2{background:#fdeede;color:#b45309}
.fit-c3{background:#f3e8ff;color:#7e22ce}.fit-c4{background:#e0f2fe;color:#0369a1}.fit-c5{background:#fde7ef;color:#be185d}
.col-h.person.c0{border-top:4px solid #1d4ed8}.col-h.person.c1{border-top:4px solid #1a7f37}.col-h.person.c2{border-top:4px solid #b45309}
.col-h.person.c3{border-top:4px solid #7e22ce}.col-h.person.c4{border-top:4px solid #0369a1}.col-h.person.c5{border-top:4px solid #be185d}
/* カービング・ボード */
.board{display:flex;gap:12px;margin-top:14px;overflow-x:auto;padding-bottom:6px}
.col{flex:0 0 210px;background:#f4f6fa;border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;min-height:150px}
.col.drop-hover{outline:2px dashed var(--gold);background:#fff8e6}
.col-h{padding:10px;border-bottom:1px solid var(--line);background:#fff;border-radius:10px 10px 0 0}
.col-h.pool{border-top:4px solid var(--muted)} .col-h.core{border-top:4px solid var(--warn)}
.col-body{padding:8px;display:flex;flex-direction:column;gap:8px;flex:1}
.col-empty{color:var(--muted);font-size:12px;text-align:center;padding:16px 6px;border:1px dashed var(--line);border-radius:8px}
.board-card{background:#fff;border:1px solid var(--line);border-left:5px solid var(--line);border-radius:8px;padding:8px 10px;cursor:grab;box-shadow:0 1px 2px #0000000d}
.board-card:active{cursor:grabbing}
.board-card.cl-a{border-left-color:var(--ok)} .board-card.cl-b{border-left-color:#2563eb} .board-card.cl-c{border-left-color:var(--warn)}
.board-card.dragging{opacity:.4}
.board-card .bc-t{font-weight:700;font-size:13px;margin-bottom:2px}
.pkg-bar > span.over{background:var(--bad)}
.over{color:var(--bad);font-weight:800}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}.kpis,.kpis-4{grid-template-columns:1fr 1fr}}
