:root{
  --ink:#131A24; --ink2:#3A4552; --mute:#6E7A88;
  --paper:#E7EAF0; --surf:#FFFFFF; --line:#D6DBE3; --line2:#E9ECF1;
  --ai:#2A3F9D;
  --ok:#0E6E52; --warn:#9A5B08; --ng:#B02418; --fill:#5F6B79; --ref:#A9B1BC;
  --ok-bg:#E5F1EC; --warn-bg:#FAEEDC; --ng-bg:#F8E5E3; --fill-bg:#EBEEF2; --ref-bg:#F1F3F6;
  --jp:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI","Yu Gothic","Noto Sans JP","Meiryo",sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--jp);font-size:14px;line-height:1.7;
  font-feature-settings:"palt" 1;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;text-align:left}
button:disabled{cursor:default}
input,select,textarea{font-family:var(--jp);font-size:13px;color:var(--ink)}
.mono{font-family:var(--mono);font-feature-settings:normal}
:focus-visible{outline:2px solid var(--ai);outline-offset:2px}

/* ---------- shell ---------- */
.app{display:flex;min-height:100vh}
.rail{width:250px;flex:none;background:var(--ink);color:#fff;position:sticky;top:0;height:100vh;
  display:flex;flex-direction:column;padding:22px 18px;overflow:auto}
.brand-m{font-size:21px;font-weight:800;line-height:1.2;letter-spacing:.02em}
.brand-s{margin-top:8px;font-family:var(--mono);font-size:9px;letter-spacing:.18em;color:#7E8CA3}
/* ---------- ロールと権限 ---------- */
.who{margin-top:22px;background:#1B2532;border:1px solid #2A3746;border-radius:6px;padding:11px 12px}
.who-k{font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;color:#6C7B90}
.who-sel{width:100%;margin:7px 0 8px;background:#26344A;border:1px solid #3A4A60;color:#fff;
  border-radius:4px;padding:6px 8px;font-size:12.5px;font-weight:700}
.who-n{font-size:11.5px;font-weight:600;color:#C6D2E2;line-height:1.4}
.who-n i{display:block;font-style:normal;font-size:10px;color:#7E8CA3;font-weight:400;margin-top:1px}
.who-p{display:flex;gap:3px;flex-wrap:wrap;margin-top:9px}
.pm{font-size:9px;font-weight:700;padding:1px 5px;border-radius:2px;background:#222E3D;color:#55647A;
  border:1px solid #2E3C4E;text-decoration:line-through}
.pm.on{background:#123A2C;color:#5BC49E;border-color:#1B5140;text-decoration:none}

/* ---------- ナビ ---------- */
.nav{margin-top:20px;display:flex;flex-direction:column;gap:2px}
.nv{display:flex;flex-direction:column;gap:1px;padding:9px 11px;border-radius:5px;width:100%}
.nv-t{font-size:13px;font-weight:700;color:#B4C1D4}
.nv-d{font-size:10px;color:#6C7B90}
.nv:hover{background:#1E2836}
.nv:hover .nv-t{color:#fff}
.nv.on{background:#26344A}
.nv.on .nv-t{color:#fff}

/* ---------- ステッパー ---------- */
.stepper{display:flex;flex-direction:column;gap:1px;position:relative;margin:5px 0 8px 12px;
  padding-left:9px;border-left:1px solid #2C3949}
.sp{display:flex;gap:9px;padding:7px 9px;border-radius:4px;align-items:center}
.sp-n{font-size:9px;color:#5C6B80;font-weight:600;background:var(--ink);width:18px;height:18px;
  border:1px solid #2C3949;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}
.sp-b{display:flex;flex-direction:column;gap:1px;min-width:0}
.sp-t{font-size:12px;font-weight:600;color:#93A3B9}
.sp-s{font-size:9.5px;font-weight:700;margin-top:2px;padding:0 5px;border-radius:3px;align-self:flex-start}
.st-ok{background:#123A2C;color:#5BC49E} .st-att{background:#3D2E12;color:#E0A94A}
.st-warn{background:#3D2E12;color:#E0A94A} .st-ng{background:#3E1A17;color:#EE7A6C}
.st-todo{background:#1E2A3A;color:#8FA2BC} .st-lock{background:#1B2430;color:#5C6B80}
.sp:hover:not(.lock){background:#1E2836}
.sp:hover:not(.lock) .sp-t{color:#fff}
.sp.on{background:#26344A}
.sp.on .sp-t{color:#fff}
.sp.on .sp-n{background:var(--ai);border-color:var(--ai);color:#fff}
.sp.lock{opacity:.45}
.rail-foot{margin-top:auto;border-top:1px solid #2A3746;padding-top:14px}
.rf-k{font-size:9px;letter-spacing:.14em;color:#6C7B90;font-family:var(--mono)}
.rf-v{font-size:13px;font-weight:700;margin-top:5px}
.rf-n{font-size:10.5px;color:#7E8CA3;line-height:1.55;margin-top:4px}
.rf-btn{margin-top:11px;font-size:10.5px;font-weight:600;color:#9FADC2;border:1px solid #2C3949;
  border-radius:4px;padding:6px 9px;width:100%;text-align:center}
.rf-btn:hover{color:#fff;border-color:#4A5C74}
.main{flex:1;min-width:0}
.view{max-width:1080px;padding:34px 40px 90px;margin:0 auto}

/* ---------- type ---------- */
.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--ai);font-weight:600}
h1{font-size:31px;font-weight:800;letter-spacing:-.02em;line-height:1.25;margin:8px 0 10px}
h2{font-size:16px;font-weight:800;letter-spacing:-.01em;display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.h2-sub{font-size:11.5px;font-weight:500;color:var(--mute);letter-spacing:0;margin-left:auto}
h3{font-size:16px;font-weight:700}
.lede{color:var(--ink2);font-size:13px;line-height:1.75}
.step-head{margin-bottom:26px}
.rep-meta{font-size:12px;color:var(--ink2);line-height:1.7}

/* ---------- next bar ---------- */
.nextbar{position:sticky;bottom:0;margin:26px -40px -90px;padding:16px 40px;background:rgba(231,234,240,.92);
  backdrop-filter:blur(8px);border-top:1px solid var(--line);display:flex;align-items:center;gap:22px;z-index:20}
.next-sub{font-size:11.5px;color:var(--mute);line-height:1.5}
.btn{border:1px solid var(--ink);background:var(--ink);color:#fff;padding:11px 22px;font-size:13.5px;
  font-weight:700;border-radius:4px;text-align:center}
.btn:hover:not(:disabled){background:var(--ai);border-color:var(--ai)}
.btn:disabled{background:#C3C9D3;border-color:#C3C9D3;color:#8A94A2}
.btn-next{margin-left:auto;flex:none}
.btn-warn:not(:disabled){background:var(--warn);border-color:var(--warn)}
.btn-ng:not(:disabled){background:var(--ng);border-color:var(--ng)}
.btn-ok:not(:disabled){background:var(--ok);border-color:var(--ok)}
.btn-sm{padding:5px 12px;font-size:11.5px;flex:none}

/* ---------- STEP1 upload ---------- */
.up-sec{margin-bottom:28px}
.up-k{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;margin-bottom:12px}
.up-k i{font-style:normal;font-size:11px;font-weight:500;color:var(--mute);margin-left:2px}
.up-num{width:19px;height:19px;border-radius:50%;background:var(--ink);color:#fff;font-size:10px;
  display:flex;align-items:center;justify-content:center;font-weight:600}
.picker{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.pick{background:var(--surf);padding:14px 16px;display:flex;flex-direction:column;gap:3px}
.pick:hover{background:#F6F8FB}
.pick.on{background:#EEF1FA;box-shadow:inset 3px 0 0 var(--ai)}
.pick-n{font-size:13px;font-weight:700}
.pick-s{font-size:10.5px;color:var(--mute)}
.pick-off{opacity:.55}
.drops{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.drop{background:var(--surf);border:1px solid var(--line);padding:16px;min-height:132px;
  display:flex;flex-direction:column;gap:4px;position:relative}
.drop-t{font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px}
.drop-tag{font-size:9.5px;font-weight:600;color:var(--ai);background:#E7ECFA;padding:1px 5px;border-radius:2px}
.drop-file{font-size:10.5px;color:var(--ink2);margin-top:4px;word-break:break-all}
.drop-s{font-size:10.5px;color:var(--mute);line-height:1.55}
.drop-z{border:1.5px dashed #BFC7D3;border-radius:5px;padding:16px;text-align:center;font-size:12px;
  font-weight:600;color:var(--ai);margin:6px 0}
.drop:not(.is-set):not(.is-auto):hover .drop-z{border-color:var(--ai);background:#F4F6FC}
.drop-ok{margin-top:auto;font-size:11px;font-weight:700;color:var(--ok)}
.drop.is-set{border-color:#9CCBBA;background:#FAFDFC}
.drop.is-auto{border-color:var(--line);background:#F7F8FA}
.run{background:var(--surf);border:1px solid var(--line);border-left:3px solid var(--ai);padding:18px 20px;margin-top:26px}
.run-t{font-size:14px;font-weight:700;display:flex;justify-content:space-between}
.run-t .mono{color:var(--ai)}
.run-track{height:6px;background:var(--line2);margin:10px 0 8px;border-radius:1px;overflow:hidden}
.run-fill{height:100%;background:var(--ai);transition:width .12s linear}
.run-s{font-size:11px;color:var(--mute)}

/* ---------- STEP2 read ---------- */
.read-sum{display:grid;grid-template-columns:auto auto auto auto 1fr;gap:1px;background:var(--line);
  border:1px solid var(--line);margin-bottom:22px}
.rs{background:var(--surf);padding:13px 20px}
.rs-n{display:block;font-size:22px;font-weight:600;letter-spacing:-.02em}
.rs-l{font-size:10.5px;color:var(--mute)}
.rs-att .rs-n{color:var(--warn)}
.rs-note{background:var(--surf);padding:13px 20px;font-size:11px;color:var(--mute);line-height:1.6;display:flex;align-items:center}
.tabs{display:flex;gap:1px;background:var(--line);border:1px solid var(--line);border-bottom:none}
.tab{flex:1;background:#F2F4F8;padding:12px 16px;display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--line)}
.tab:hover{background:#F8FAFC}
.tab.on{background:var(--surf);border-bottom-color:transparent;box-shadow:inset 0 3px 0 var(--ai)}
.tab-t{font-size:13px;font-weight:700}
.tab-f{font-size:10px;color:var(--mute);word-break:break-all}
.tab-b{font-size:10.5px;color:var(--mute);margin-top:3px;display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.tab-att,.tab-emp{font-style:normal;font-size:9.5px;font-weight:700;padding:1px 5px;border-radius:2px}
.tab-att{background:var(--warn-bg);color:var(--warn)}
.tab-emp{background:var(--fill-bg);color:var(--fill)}
.read-body{background:var(--surf);border:1px solid var(--line);border-top:none}
.read-bar{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line2)}
.read-lead{font-size:11.5px;color:var(--ink2)}
.toggle{font-size:11px;color:var(--ink2);display:flex;align-items:center;gap:5px;cursor:pointer;flex:none;white-space:nowrap}
.ex-head,.ex{display:grid;grid-template-columns:1fr 1.5fr 90px .9fr;gap:16px;align-items:center}
.ex-head{padding:7px 16px;font-size:10px;letter-spacing:.08em;color:var(--mute);font-family:var(--mono);background:#F2F4F8}
.ex{padding:7px 16px;border-bottom:1px solid var(--line2);border-left:3px solid transparent}
.ex:hover{background:#F8FAFC}
.ex-conflict{border-left-color:var(--warn);background:#FFFCF5}
.ex-none{border-left-color:var(--warn);background:#FFFCF5}
.ex-empty{border-left-color:#C6CDD6}
.ex-edited{border-left-color:var(--ai)}
.ex-l{font-size:12px;font-weight:600;display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.ex-tag{font-size:9.5px;font-weight:700;padding:1px 5px;border-radius:2px}
.t-conflict{background:var(--warn-bg);color:var(--warn)}
.t-none{background:var(--warn-bg);color:var(--warn)}
.t-empty{background:var(--fill-bg);color:var(--fill)}
.ex-v{display:flex;align-items:center;gap:7px}
.ex-v input{width:100%;border:1px solid transparent;background:none;padding:5px 7px;border-radius:3px;line-height:1.5;font-size:12px}
.ex-v input:hover{border-color:var(--line);background:#fff}
.ex-v input:focus{border-color:var(--ai);background:#fff;outline:none}
.ex-v input::placeholder{color:#A9B1BC}
.ex-edit{font-size:9px;color:#fff;background:var(--ai);padding:1px 5px;border-radius:2px;flex:none}
.ex-c{display:flex;flex-direction:column;gap:3px}
.ex-cn{font-size:11px;font-weight:600;color:var(--ok)}
.ex-cn.low{color:var(--warn)}
.ex-cn.dash{color:var(--ref)}
.ex-ct{display:block;height:3px;background:var(--line2);border-radius:1px;overflow:hidden}
.ex-ct i{display:block;height:100%;background:#2E9074}
.ex-ct i.low{background:#DB9424}
.ex-s{font-size:10px;color:var(--mute);line-height:1.5}

/* ---------- gate bar ---------- */
.gate{display:flex;gap:2px;align-items:stretch}
.gate-lg{height:40px}
.tick{flex:1;min-width:2px;border-radius:1px;background:var(--ref);transition:transform .12s,background .3s}
.gate-lg .tick{cursor:pointer}
.gate-lg .tick:hover{transform:scaleY(1.14)}
.tick.v-ok{background:#2E9074}
.tick.v-warn{background:#DB9424}
.tick.v-fill{background:#B9C1CB}
.tick.v-ng{background:var(--ng)}
.tick.v-ref{background:#DDE1E8}
.tick-in{animation:tin .34s backwards cubic-bezier(.2,.8,.3,1)}
@keyframes tin{from{transform:scaleY(.12);opacity:0}to{transform:scaleY(1);opacity:1}}

/* ---------- badges ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:3px;white-space:nowrap}
.badge b{font-size:11px}
.badge-sm{font-size:10.5px;padding:2px 7px}
.badge.v-ok{background:var(--ok-bg);color:var(--ok)}
.badge.v-warn{background:var(--warn-bg);color:var(--warn)}
.badge.v-fill{background:var(--fill-bg);color:var(--fill)}
.badge.v-ng{background:var(--ng-bg);color:var(--ng)}
.badge.v-ref{background:var(--ref-bg);color:var(--mute)}

/* ---------- STEP3 match ---------- */
.verdict-panel{display:grid;grid-template-columns:1fr 1.15fr .8fr .78fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.vp-main{background:var(--surf);padding:20px;display:flex;align-items:center;gap:16px}
.vp-mark{font-size:38px;font-weight:700;line-height:1;font-family:var(--mono)}
.vp-main.v-ok .vp-mark,.vp-main.v-ok .vp-label{color:var(--ok)}
.vp-main.v-warn .vp-mark,.vp-main.v-warn .vp-label{color:var(--warn)}
.vp-main.v-ng .vp-mark,.vp-main.v-ng .vp-label{color:var(--ng)}
.vp-label{font-size:23px;font-weight:800;letter-spacing:-.02em;line-height:1.2}
.vp-sub{font-size:11px;color:var(--mute);margin-top:2px}
.vp-cell{background:var(--surf);padding:16px 18px}
.vp-k{font-size:10px;letter-spacing:.1em;color:var(--mute);font-family:var(--mono);margin-bottom:9px}
.gauge-rent{font-family:var(--mono);font-size:19px;font-weight:600;letter-spacing:-.02em}
.gauge-rent.is-over{color:var(--ng)}
.gauge-cap{font-size:10.5px;color:var(--mute);margin-left:5px}
.gauge-track{height:7px;background:var(--line2);margin:9px 0 7px;position:relative;border-radius:1px}
.gauge-fill{height:100%;background:var(--ai);border-radius:1px}
.gauge-fill.is-over{background:var(--ng)}
.gauge-cap-mark{position:absolute;right:0;top:-3px;bottom:-3px;width:2px;background:var(--ink)}
.gauge-foot{font-size:10.5px;color:var(--mute)}
.is-over-t{color:var(--ng);font-weight:600}
.cov-n{font-size:24px;font-weight:600;letter-spacing:-.03em}
.cov-d{font-size:11px;color:var(--mute);margin-left:4px}
.cov-f{font-size:10.5px;color:var(--mute);margin-top:5px;line-height:1.5}
.mix{list-style:none;display:flex;flex-direction:column;gap:2px}
.mix li{font-size:11px;color:var(--mute);display:flex;gap:7px;align-items:baseline}
.mix b{font-family:var(--mono);font-size:13px;min-width:20px;text-align:right}
.mix .v-ok b{color:var(--ok)} .mix .v-warn b{color:var(--warn)} .mix .v-ng b{color:var(--ng)}
.mix .v-fill b{color:var(--fill)} .mix .v-ref b{color:var(--mute)}
.bar-block{background:var(--surf);border:1px solid var(--line);border-top:none;padding:16px 18px 13px}
.bar-cap{display:flex;justify-content:space-between;font-size:10.5px;color:var(--mute);margin-bottom:9px}
.bar-foot{font-size:10px;color:var(--mute);margin-top:8px}
.deal{margin-top:22px;background:var(--ink);color:#fff;padding:18px 22px;display:grid;
  grid-template-columns:auto 1fr;gap:6px 22px;align-items:baseline}
.deal-k{font-size:10px;letter-spacing:.12em;color:#8B99AE;font-family:var(--mono)}
.deal-v{font-size:15px;font-weight:700;letter-spacing:-.01em}
.deal-n{grid-column:2;font-size:11.5px;color:#A9B6C8;line-height:1.6}
.lane{margin-top:38px}
.lane-tools{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:12px}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surf);padding:5px 12px;border-radius:20px;font-size:11.5px;font-weight:600;color:var(--ink2)}
.chip:hover{border-color:var(--ink)}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.chip-ok.on{background:var(--ok);border-color:var(--ok)}
.chip-warn.on{background:var(--warn);border-color:var(--warn)}
.chip-ng.on{background:var(--ng);border-color:var(--ng)}
.chip-fill.on{background:var(--fill);border-color:var(--fill)}
.chip-ref.on{background:var(--mute);border-color:var(--mute)}
.search{border:1px solid var(--line);background:var(--surf);padding:6px 12px;font-size:12px;border-radius:20px;width:240px}
.lane-head{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:22px;padding:0 16px 7px;
  font-size:10px;letter-spacing:.1em;color:var(--mute);font-family:var(--mono)}
.grp{margin-bottom:1px}
.grp-h{display:flex;align-items:baseline;gap:12px;background:#DDE2EA;padding:6px 16px}
.grp-t{font-size:12px;font-weight:700}
.grp-p{font-size:10px;color:var(--mute)}
.grp-c{font-size:10px;color:var(--mute);margin-left:auto}
.row{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:22px;background:var(--surf);
  padding:13px 16px;border-bottom:1px solid var(--line2);border-left:3px solid transparent;scroll-margin:100px}
.row.v-ok{border-left-color:#B7DACC}
.row.v-warn{border-left-color:#E8C286}
.row.v-fill{border-left-color:#C6CDD6}
.row.v-ng{border-left-color:var(--ng)}
.row.v-ref{border-left-color:#E6E9EE}
.row:hover{background:#F7F9FC}
.row.flash{animation:fl 1.4s}
@keyframes fl{0%,60%{background:#FFF6DE}100%{background:var(--surf)}}
.row-id{font-size:9.5px;color:var(--mute);letter-spacing:.04em}
.row-t{font-weight:700;font-size:13px;margin:1px 0 2px}
.row-x{font-size:11.5px;color:var(--mute);line-height:1.6}
.row-b{font-size:11.5px;color:var(--ink2);line-height:1.7}
.row-r{font-size:11.5px;color:var(--ink2);line-height:1.6;margin-top:5px}
.src-btn{font-size:10.5px;color:var(--ai);font-weight:600;margin-top:6px;border-bottom:1px solid #C3CBE6}
.src-btn:hover{border-color:var(--ai)}
.empty{background:var(--surf);padding:36px;text-align:center;font-size:12px;color:var(--mute);border:1px solid var(--line)}
.disclaimer{margin-top:26px;font-size:10.5px;color:var(--mute);line-height:1.7;border-top:1px solid var(--line);padding-top:14px}

/* ---------- STEP4 fix ---------- */
.prog-panel{display:grid;grid-template-columns:1fr 1.3fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:32px}
.pp-l,.pp-r{background:var(--surf);padding:18px 20px}
.pp-k{font-size:10px;letter-spacing:.1em;color:var(--mute);font-family:var(--mono)}
.pp-n{font-size:13px;color:var(--mute);font-weight:600;margin:2px 0 4px}
.pp-n .mono{font-size:34px;font-weight:600;color:var(--warn);letter-spacing:-.03em;margin-right:3px}
.pp-s{font-size:11px;color:var(--mute)}
.pp-ng{color:var(--ng);font-weight:700}
.pp-r{display:flex;flex-direction:column;justify-content:center;gap:9px}
.pp-kv{display:flex;justify-content:space-between;font-size:11px;color:var(--mute)}
.pp-kv b{color:var(--ink);font-size:12px}
.pp-track{height:7px;background:var(--line2);border-radius:1px;overflow:hidden}
.pp-fill{height:100%;background:var(--ai);transition:width .35s cubic-bezier(.2,.8,.3,1)}
.pp-arrow{display:flex;align-items:center;gap:9px}
.pp-to{font-size:11.5px;color:var(--ink2)}
.fx-sec{margin-bottom:34px}
.kbadge{font-size:12px;font-weight:800;padding:3px 10px;border-radius:3px}
.k-input{background:#E7ECFA;color:var(--ai)}
.k-ask{background:var(--warn-bg);color:var(--warn)}
.k-confirm{background:var(--ok-bg);color:var(--ok)}
.k-block{background:var(--ng-bg);color:var(--ng)}
.kd{font-size:11.5px;font-weight:500;color:var(--mute)}
.mailbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surf);
  border:1px solid var(--line);padding:11px 16px;font-size:11.5px;color:var(--ink2);margin-bottom:12px}
.mail{background:var(--surf);border:1px solid var(--line);border-top:none;padding:14px 16px;margin-bottom:12px}
.mail-h{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:9px}
.mail-h .mono{font-size:11px;color:var(--mute)}
.mail textarea{width:100%;border:1px solid var(--line);border-radius:4px;padding:12px;
  font-size:11.5px;line-height:1.8;resize:vertical;background:#FAFBFD;color:var(--ink2)}
.fx-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fx{background:var(--surf);border:1px solid var(--line);border-left:3px solid var(--line);padding:14px 16px;
  display:flex;flex-direction:column;gap:9px}
.fx.k-input{border-left-color:var(--ai)}
.fx.k-ask{border-left-color:var(--warn)}
.fx.k-confirm{border-left-color:var(--ok)}
.fx.k-block{border-left-color:var(--ng);background:#FFFAFA}
.fx.is-done{background:#F7FBF9;border-color:#C9E2D7;border-left-color:var(--ok)}
.fx-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.fx-t{font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:8px}
.fx-ok{font-size:10px;font-weight:700;color:var(--ok);background:var(--ok-bg);padding:1px 6px;border-radius:2px}
.fx-d{font-size:11.5px;color:var(--mute);line-height:1.6;margin-top:2px}
.fx-cov{display:flex;gap:3px;flex-wrap:wrap;justify-content:flex-end;flex:none;max-width:44%}
.cov-chip{font-size:9px;border:1px solid var(--line2);color:var(--mute);padding:0 4px;border-radius:2px;background:#F7F8FA}
.fx-form{display:flex;flex-direction:column;gap:7px}
.fld{display:grid;grid-template-columns:96px 1fr;gap:10px;align-items:center}
.fld span{font-size:11px;color:var(--mute)}
.fld input,.fld select{border:1px solid var(--line);border-radius:4px;padding:6px 9px;background:#fff;width:100%}
.fld input:focus,.fld select:focus{outline:none;border-color:var(--ai)}
.fld input::placeholder{color:#B6BDC8}
.fx-vals{display:flex;flex-wrap:wrap;gap:5px}
.kv{font-size:11px;background:#fff;border:1px solid var(--line2);border-radius:3px;padding:2px 8px}
.kv i{font-style:normal;color:var(--mute);margin-right:6px;font-size:10px}
.fx-q{background:#FCF8F0;border-left:2px solid var(--warn);padding:9px 12px;font-size:11.5px;line-height:1.7;color:var(--ink2)}
.fx-hint{font-size:11px;color:var(--mute);line-height:1.65;background:#F7F8FA;padding:8px 11px;border-radius:4px}
.fx-block{font-size:11.5px;color:var(--ng);font-weight:600;line-height:1.6}
.fx-btn{margin-top:auto;border:1px solid var(--ink);border-radius:4px;padding:8px;text-align:center;
  font-size:12px;font-weight:700;background:var(--ink);color:#fff}
.fx-btn:hover:not(:disabled){background:var(--ai);border-color:var(--ai)}
.fx-btn:disabled{background:#EDEFF3;border-color:var(--line);color:#A2AAB6}
.fx-btn.on{background:none;color:var(--mute);border-color:var(--line);font-weight:600}
.fx-btn.on:hover{background:none;color:var(--ink);border-color:var(--ink)}

/* ---------- drawer ---------- */
.dr-wrap{position:fixed;inset:0;background:rgba(19,26,36,.42);z-index:50;display:flex;justify-content:flex-end;animation:fade .16s}
@keyframes fade{from{opacity:0}}
.dr{width:min(430px,100%);background:var(--surf);height:100%;overflow:auto;padding:24px 26px 40px;
  animation:slide .22s cubic-bezier(.2,.8,.3,1)}
@keyframes slide{from{transform:translateX(24px);opacity:.4}}
.dr-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.dr-id{font-size:10px;color:var(--mute);letter-spacing:.06em}
.dr-x{font-size:22px;color:var(--mute);line-height:1}
.dr-v{display:flex;align-items:center;gap:10px;margin:14px 0 20px;flex-wrap:wrap}
.dr-r{font-size:12px;color:var(--ink2)}
.dr-sec{margin-bottom:18px}
.dr-k{font-size:10px;letter-spacing:.1em;font-family:var(--mono);color:var(--mute);margin-bottom:7px}
.dr blockquote{background:#F4F6FA;border-left:2px solid var(--ai);padding:11px 14px;font-size:12.5px;line-height:1.75}
.dr-s{font-size:10px;color:var(--mute);margin-top:6px;line-height:1.5}
.dr-note{border-top:1px solid var(--line);padding-top:14px;font-size:11px;color:var(--mute);line-height:1.7}

/* ---------- responsive ---------- */
@media (max-width:1140px){
  .verdict-panel{grid-template-columns:1fr 1fr}
  .fx-list{grid-template-columns:1fr}
  .read-sum{grid-template-columns:1fr 1fr 1fr}
  .rs-note{grid-column:1/-1}
}
@media (max-width:920px){
  .drops,.picker{grid-template-columns:1fr}
  .ex-head{display:none}
  .ex{grid-template-columns:1fr 1fr;gap:6px 14px;padding:11px 16px}
  .ex-c,.ex-s{grid-column:span 1}
}
@media (max-width:760px){
  .app{flex-direction:column}
  .rail{width:100%;height:auto;position:static;padding:14px 16px}
  .brand{display:flex;align-items:baseline;gap:10px}
  .brand-m{font-size:16px} .brand-m br{display:none}
  .brand-s{margin:0}
  .rail-k{margin:16px 0 8px}
  .sp-d{display:none}
  .rail-foot{margin-top:16px}
  .view{padding:22px 16px 60px}
  h1{font-size:23px}
  .nextbar{margin:22px -16px -60px;padding:12px 16px;flex-direction:column;align-items:stretch;gap:9px}
  .btn-next{margin:0}
  .verdict-panel,.prog-panel,.read-sum{grid-template-columns:1fr}
  .tabs{flex-direction:column}
  .row,.lane-head{grid-template-columns:1fr;gap:8px}
  .lane-head{display:none}
  .lane-tools{flex-direction:column;gap:12px}
  .search{width:100%}
  .row-b:before{content:"物件・依頼書：";color:var(--mute);font-size:10px}
  .deal{grid-template-columns:1fr}
  .deal-n{grid-column:1}
  .ex{grid-template-columns:1fr}
  .fld{grid-template-columns:1fr;gap:3px}
}
@media (max-width:1140px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  .funnel,.owners{grid-template-columns:1fr 1fr}
  .rules{grid-template-columns:1fr}
  .cv-panel{grid-template-columns:1fr}
  .q-head{display:none}
  .q-row,.q-row.q-narrow{grid-template-columns:1.4fr .8fr .8fr}
  .q-c4{grid-column:1/-1}
  .rz{grid-template-columns:1fr 62px;gap:6px 12px}
  .rz-b,.rz-i{grid-column:1/-1}
}
@media (max-width:760px){
  .kpis,.funnel,.owners,.todo,.rules{grid-template-columns:1fr}
  .gate{gap:1px}
  .gate-lg{height:32px}
  .tick{min-width:1px}
  .r-list,.r-detail{min-width:0}
  .q-row,.q-row.q-narrow,.sl{grid-template-columns:1fr;gap:8px}
  .q-c5{align-items:flex-start}
  .tool-r{flex-direction:column;width:100%}
  .search-w,.sel{width:100%}
  .toast{left:12px;right:12px;transform:none;max-width:none}
  @keyframes up{from{transform:translateY(10px);opacity:0}}
}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}

/* ---------- KPI ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr) 1.6fr;gap:1px;background:var(--line);
  border:1px solid var(--line);margin-bottom:30px}
.kp{background:var(--surf);padding:14px 18px}
.kp-n{display:block;font-size:26px;font-weight:600;letter-spacing:-.03em;line-height:1.2}
.kp-n i{font-size:12px;font-style:normal;color:var(--mute);margin-left:2px}
.kp-l{font-size:10.5px;color:var(--mute)}
.kp-ng .kp-n{color:var(--ng)}
.kp-review .kp-n{color:var(--warn)}
.kp-ok .kp-n{color:var(--ok)}
.kp-wide{display:flex;flex-direction:column;justify-content:center}

/* ---------- ブロック ---------- */
.blk{margin-bottom:34px}
.blk-lede{font-size:11.5px;color:var(--mute);line-height:1.65;margin:-4px 0 12px}

/* いま手を動かす */
.todo{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:12px}
.td{background:var(--surf);border:1px solid var(--line);border-left:3px solid var(--line);padding:14px 16px;
  display:flex;flex-direction:column;gap:5px}
.td.v-warn{border-left-color:var(--warn)} .td.v-ng{border-left-color:var(--ng)} .td.v-ok{border-left-color:var(--ok)}
.td:hover{background:#F7F9FC;box-shadow:0 2px 10px rgba(19,26,36,.07)}
.td-t{font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.td-s{font-size:11px;color:var(--mute)}
.td-h{list-style:none;margin-top:3px}
.td-h li{font-size:11px;color:var(--ink2);padding-left:11px;position:relative;line-height:1.55}
.td-h li:before{content:"";position:absolute;left:0;top:7px;width:4px;height:4px;border-radius:50%;background:var(--warn)}
.td-go{font-size:10.5px;color:var(--ai);font-weight:700;margin-top:auto;padding-top:6px}

/* ステータス */
.st{font-size:10px;font-weight:700;padding:1px 6px;border-radius:3px;white-space:nowrap}
.s-pending{background:#EBEEF2;color:var(--fill)}
.s-checked{background:#E7ECFA;color:var(--ai)}
.s-fixing{background:var(--warn-bg);color:var(--warn)}
.s-review{background:#FBE9C8;color:#8A4B00}
.s-approved{background:var(--ok-bg);color:var(--ok)}
.s-blocked{background:var(--ng-bg);color:var(--ng)}

/* ファネル */
.funnel{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.fn{background:var(--surf);padding:15px 16px}
.fn-n{font-size:25px;font-weight:600;letter-spacing:-.03em;line-height:1.2}
.fn-t{font-size:12px;font-weight:700;margin-top:1px}
.fn-s{font-size:10px;color:var(--mute);line-height:1.5;margin:3px 0 8px;min-height:30px}
.fn-bar{height:4px;background:var(--line2);border-radius:1px;overflow:hidden}
.fn-bar i{display:block;height:100%;background:var(--ai)}
.fn-ok .fn-n{color:var(--ok)} .fn-ok .fn-bar i{background:var(--ok)}
.fn-ng .fn-n{color:var(--ng)} .fn-ng .fn-bar i{background:var(--ng)}

/* 止まっている理由 */
.reasons{background:var(--surf);border:1px solid var(--line)}
.rz{display:grid;grid-template-columns:1.5fr 1fr 62px 100px;gap:16px;align-items:center;
  padding:10px 16px;border-bottom:1px solid var(--line2)}
.rz:last-child{border-bottom:none}
.rz-t{font-size:12px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rz-k{font-size:9.5px;font-weight:700;padding:1px 5px;border-radius:2px}
.rz-k.k-none,.rz-k.k-conflict{background:var(--warn-bg);color:var(--warn)}
.rz-k.k-empty{background:var(--fill-bg);color:var(--fill)}
.rz-k.k-ng{background:var(--ng-bg);color:var(--ng)}
.rz-b{height:8px;background:var(--line2);border-radius:1px;overflow:hidden}
.rz-b i{display:block;height:100%;background:#DB9424}
.rz-b i.b-empty{background:#B9C1CB}
.rz-b i.b-ng{background:var(--ng)}
.rz-n{font-size:15px;font-weight:600;text-align:right}
.rz-n span{font-size:10px;color:var(--mute);margin-left:2px;font-weight:400}
.rz-i{font-size:9.5px;color:var(--mute);text-align:right}

/* 担当者別 */
.owners{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.ow{background:var(--surf);padding:14px 18px}
.ow-n{font-size:13px;font-weight:700;margin-bottom:7px}
.ow-kv{display:flex;justify-content:space-between;font-size:11px;color:var(--mute);padding:3px 0;border-top:1px solid var(--line2)}
.ow-kv b{color:var(--ink);font-size:12.5px}
.ow-kv b.hot{color:var(--warn)} .ow-kv b.ng{color:var(--ng)}

/* 滞留 */
.stales{background:var(--surf);border:1px solid var(--line)}
.sl{display:grid;grid-template-columns:52px 1.1fr 1.4fr;gap:16px;align-items:center;width:100%;
  padding:11px 16px;border-bottom:1px solid var(--line2)}
.sl:last-child{border-bottom:none}
.sl:hover{background:#F7F9FC}
.sl-d{font-size:14px;font-weight:600;color:var(--warn)}
.sl-t{font-size:12.5px;font-weight:700}
.sl-t i{display:block;font-style:normal;font-size:10.5px;color:var(--mute);font-weight:400}
.sl-h{font-size:11px;color:var(--ink2)}

/* ---------- 案件一覧 ---------- */
.tool-r{display:flex;gap:8px;flex:none}
.sel{border:1px solid var(--line);background:var(--surf);border-radius:20px;padding:6px 12px;font-size:12px}
.chip-pending.on{background:var(--fill);border-color:var(--fill)}
.chip-checked.on{background:var(--ai);border-color:var(--ai)}
.chip-fixing.on{background:var(--warn);border-color:var(--warn)}
.chip-review.on{background:#8A4B00;border-color:#8A4B00}
.chip-approved.on{background:var(--ok);border-color:var(--ok)}
.chip-blocked.on{background:var(--ng);border-color:var(--ng)}
.q-head,.q-row{display:grid;grid-template-columns:1.5fr .62fr .5fr .5fr 1.35fr .82fr;gap:16px}
.q-head.q-narrow,.q-row.q-narrow{grid-template-columns:1.5fr .62fr .5fr 1.35fr .82fr}
.q-head{padding:0 18px 7px;font-size:10px;letter-spacing:.1em;color:var(--mute);font-family:var(--mono)}
.q-list{display:flex;flex-direction:column;gap:1px;background:var(--line)}
.q-row{background:var(--surf);padding:14px 18px;align-items:center;border-left:3px solid transparent}
.q-row:hover{background:#F8FAFC}
.q-row.v-ok{border-left-color:var(--ok)}
.q-row.v-warn{border-left-color:var(--warn)}
.q-row.v-ng{border-left-color:var(--ng)}
.q-row.v-ref{border-left-color:var(--line)}
.q-c1{width:100%}
.q-name{font-size:14px;font-weight:700;letter-spacing:-.01em}
.q-c1:hover .q-name{color:var(--ai)}
.q-sub{font-size:11px;color:var(--ink2);margin-top:1px}
.q-spec{font-size:10px;color:var(--mute);margin-top:3px}
.q-age{color:var(--warn);margin-left:6px}
.q-rule{font-size:10.5px;color:var(--ink2);display:block}
.q-cov{font-size:10px;color:var(--mute)}
.q-c6{font-size:11.5px;color:var(--ink2)}
.q-rent{font-size:13.5px;font-weight:600;letter-spacing:-.02em}
.q-rent.is-over{color:var(--ng)}
.q-cap{font-size:9.5px;color:var(--mute)}
.hit{display:block;font-size:10.5px;color:var(--ink2);padding-left:10px;position:relative;line-height:1.5}
.hit:before{content:"";position:absolute;left:0;top:6px;width:4px;height:4px;border-radius:50%;background:var(--warn)}
.q-row.v-ng .hit:before{background:var(--ng)}
.q-clean{font-size:10.5px;color:var(--mute)}
.q-c5{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.ap-btn{font-size:10.5px;font-weight:700;color:#fff;background:var(--ok);border-radius:3px;padding:3px 9px;text-align:center}
.ap-btn:hover{background:#0B5B43}
.ap-wait{font-size:9.5px;color:var(--mute)}
.q-go{font-size:10px;color:var(--mute)}
.q-go:hover{color:var(--ai)}

/* ---------- 規定マスタ ---------- */
.search-w{width:340px;margin-bottom:18px}
.rules{display:grid;grid-template-columns:1fr 290px;gap:22px;align-items:start}
.r-head,.r-row{display:grid;grid-template-columns:1.6fr .8fr .95fr .4fr .4fr .55fr;gap:12px;align-items:center}
.r-head{padding:0 14px 7px;font-size:10px;letter-spacing:.08em;color:var(--mute);font-family:var(--mono)}
.r-row{background:var(--surf);padding:11px 14px;border-bottom:1px solid var(--line2);font-size:11.5px}
.r-row:hover{background:#F6F8FB}
.r-row.on{background:#EEF1FA;box-shadow:inset 3px 0 0 var(--ai)}
.r-n{font-weight:700;font-size:12.5px}
.r-d{color:var(--mute)}
.h{font-size:10px;font-weight:700;padding:1px 6px;border-radius:3px;justify-self:start}
.h-ok{background:var(--ok-bg);color:var(--ok)}
.h-new{background:#E7ECFA;color:var(--ai)}
.h-old{background:var(--warn-bg);color:var(--warn)}
.r-more{background:var(--surf);padding:12px 14px;font-size:11px;color:var(--mute)}
.r-detail{background:var(--surf);border:1px solid var(--line);padding:18px}
.r-detail h3{margin:6px 0 14px;letter-spacing:-.01em}
.r-kv{display:flex;justify-content:space-between;font-size:11.5px;padding:6px 0;border-top:1px solid var(--line2);color:var(--mute)}
.r-kv b{color:var(--ink);font-weight:600}
.r-k2{font-size:10px;letter-spacing:.1em;font-family:var(--mono);color:var(--mute);margin:16px 0 8px}
.r-cats{display:flex;flex-wrap:wrap;gap:4px}
.cat{font-size:10.5px;border:1px solid var(--line);padding:2px 7px;border-radius:3px;color:var(--ink2)}
.cat i{font-style:normal;color:var(--mute);margin-left:5px;font-size:9.5px}
.r-empty{font-size:11px;color:var(--mute);line-height:1.7;margin-top:14px;border-top:1px solid var(--line2);padding-top:12px}

/* ---------- 受託先の閲覧ビュー ---------- */
.back{font-size:12px;color:var(--mute);font-weight:600;margin-bottom:16px}
.back:hover{color:var(--ai)}
.cv-panel{display:grid;grid-template-columns:1fr 1fr .8fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:32px}
.cv-hits{list-style:none;background:var(--surf);border:1px solid var(--line)}
.cv-hits li{display:flex;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line2);font-size:12.5px;color:var(--ink2)}
.cv-hits li:last-child{border-bottom:none}
.cv-hits .mono{color:var(--warn);font-weight:600;flex:none}
.cv-clean{background:var(--surf);border:1px solid var(--line);padding:20px;font-size:12.5px;color:var(--ok);font-weight:600}
.cv-note{font-size:11px;color:var(--mute);line-height:1.75;border-top:1px solid var(--line);padding-top:14px}
.cv-more{display:block;margin-top:5px}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:60;
  background:var(--ink);color:#fff;padding:13px 16px 13px 20px;border-radius:5px;max-width:680px;
  font-size:12px;line-height:1.7;display:flex;gap:18px;align-items:center;
  box-shadow:0 10px 30px rgba(19,26,36,.28);animation:up .2s cubic-bezier(.2,.8,.3,1)}
@keyframes up{from{transform:translate(-50%,10px);opacity:0}}
.toast button{font-size:11px;font-weight:700;color:#9FADC2;flex:none}
.toast button:hover{color:#fff}

/* ---------- 規定外費目 ---------- */
.k-um{background:#F3E8F7;color:#7A3E96}
.um-sec .ums{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.um{background:var(--surf);border:1px solid var(--line);border-left:3px solid #9B5FB8;padding:14px 16px;
  display:flex;flex-direction:column;gap:7px}
.um.is-done{background:#F7FBF9;border-color:#C9E2D7;border-left-color:var(--ok)}
.um-h{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.um-id{font-size:9.5px;color:var(--mute)}
.um-t{font-size:13.5px;font-weight:700}
.um-v{font-size:11.5px;color:#7A3E96;font-weight:600;width:100%}
.um-s{font-size:10px;color:var(--mute)}
.um-w{font-size:11.5px;color:var(--ink2);line-height:1.7}
.um-tag{font-size:9.5px;font-weight:700;background:#F3E8F7;color:#7A3E96;padding:1px 5px;border-radius:2px;margin-left:7px}
.cov-um{display:block;color:#7A3E96;margin-top:3px}
.ex-unmapped{border-left-color:#9B5FB8;background:#FDFAFE}
.t-unmapped{background:#F3E8F7;color:#7A3E96}

/* ---------- 仲介：提出 ---------- */
.bigdrop{width:100%;background:var(--surf);border:1.5px dashed #BFC7D3;border-radius:8px;padding:34px;
  text-align:center;display:flex;flex-direction:column;align-items:center;gap:5px}
.bigdrop:hover:not(:disabled){border-color:var(--ai);background:#F6F8FC}
.bd-z{font-size:30px;color:var(--ai);font-weight:300;line-height:1}
.bd-t{font-size:15px;font-weight:700}
.bd-s{font-size:11.5px;color:var(--mute);max-width:520px;line-height:1.6}
.bigdrop.is-set{border-style:solid;border-color:#9CCBBA;background:#FAFDFC}
.bd-ok{font-size:24px;color:var(--ok);font-weight:700;line-height:1}
.bd-f{font-size:13px;font-weight:600;margin-top:3px}
.bd-p{font-size:11.5px;color:var(--ink2);font-weight:600;margin-top:5px}
.sub-res{display:flex;align-items:center;gap:20px;background:var(--surf);border:1px solid var(--line);
  border-left:5px solid var(--line);padding:24px 26px;margin-bottom:30px}
.sub-res.v-ng{border-left-color:var(--ng);background:#FFFAFA}
.sub-res.v-warn{border-left-color:var(--warn);background:#FFFDF8}
.sub-res.v-ok{border-left-color:var(--ok);background:#FAFDFC}
.sr-mark{font-family:var(--mono);font-size:44px;font-weight:700;line-height:1}
.sub-res.v-ng .sr-mark{color:var(--ng)} .sub-res.v-warn .sr-mark{color:var(--warn)} .sub-res.v-ok .sr-mark{color:var(--ok)}
.sr-t{font-size:20px;font-weight:800;letter-spacing:-.02em}
.sr-s{font-size:12px;color:var(--ink2);margin-top:3px;line-height:1.6}
.sr-time{font-size:10.5px;color:var(--mute);margin-top:6px;font-family:var(--mono)}
.sr-list{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line)}
.sr-i{background:var(--surf);padding:14px 18px;border-left:3px solid transparent}
.sr-i.v-ng{border-left-color:var(--ng)} .sr-i.v-warn{border-left-color:var(--warn)} .sr-i.v-um{border-left-color:#9B5FB8}
.sr-it{font-size:13.5px;font-weight:700}
.sr-id{font-size:11.5px;color:var(--mute);line-height:1.6;margin-top:2px}
.sr-iq{font-size:11.5px;color:var(--ink2);line-height:1.7;margin-top:6px;background:#F7F8FA;padding:8px 11px;border-radius:4px}
.alt{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.al{background:var(--surf);padding:14px 16px}
.al-k{font-size:10px;color:var(--mute);font-family:var(--mono);display:block}
.al b{font-size:15px;font-weight:700;display:block;margin:2px 0}
.al i{font-style:normal;font-size:10.5px;color:var(--mute)}
.sub-tips{font-size:11.5px;color:var(--mute);margin-top:24px;border-top:1px solid var(--line);padding-top:14px}
.lnk{color:var(--ai);font-weight:600;border-bottom:1px solid #C3CBE6}

/* ---------- 仲介：照会への回答 ---------- */
.inq-sum{display:grid;grid-template-columns:auto auto 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:24px}
.inqs{display:flex;flex-direction:column;gap:12px}
.inq{background:var(--surf);border:1px solid var(--line);border-left:3px solid var(--warn);padding:14px 16px;
  display:flex;flex-direction:column;gap:8px}
.inq.inq-um{border-left-color:#9B5FB8}
.inq.is-done{background:#F7FBF9;border-color:#C9E2D7;border-left-color:var(--ok)}
.inq-h{display:flex;gap:11px;align-items:baseline}
.inq-n{font-size:12px;color:var(--mute);font-weight:600}
.inq-t{font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.inq-a{width:100%;border:1px solid var(--line);border-radius:4px;padding:9px 11px;font-size:12px;line-height:1.7;resize:vertical}
.inq-a:focus{outline:none;border-color:var(--ai)}
.inq-r{font-size:12px;color:var(--ink2);background:#fff;border:1px solid var(--line2);border-radius:4px;padding:9px 11px;line-height:1.7}

/* ---------- RAGチャット ---------- */
.chat-fab{position:fixed;right:22px;bottom:22px;z-index:70;background:var(--ink);color:#fff;
  border-radius:24px;padding:11px 18px;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;
  box-shadow:0 6px 22px rgba(19,26,36,.3)}
.chat-fab:hover{background:var(--ai)}
.chat-fab.on{border-radius:50%;width:44px;height:44px;justify-content:center;font-size:20px;padding:0}
.cf-i{width:19px;height:19px;border-radius:50%;background:var(--ai);display:flex;align-items:center;
  justify-content:center;font-size:11px;font-weight:800}
.chat{position:fixed;right:22px;bottom:78px;z-index:69;width:min(400px,calc(100vw - 44px));
  height:min(620px,calc(100vh - 120px));background:var(--surf);border:1px solid var(--line);border-radius:10px;
  display:flex;flex-direction:column;box-shadow:0 16px 48px rgba(19,26,36,.24);animation:cin .2s cubic-bezier(.2,.8,.3,1)}
@keyframes cin{from{transform:translateY(10px);opacity:0}}
.chat-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.chat-t{font-size:14px;font-weight:800}
.chat-s{font-size:9.5px;color:var(--mute);line-height:1.5;margin-top:2px}
.chat-b{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.chat-intro p{font-size:12px;color:var(--ink2);line-height:1.75}
.chat-sug{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.chat-sug button{border:1px solid var(--line);border-radius:16px;padding:7px 12px;font-size:11.5px;
  color:var(--ai);font-weight:600;text-align:left}
.chat-sug button:hover{border-color:var(--ai);background:#F4F6FC}
.msg{display:flex}
.msg.me{justify-content:flex-end}
.msg-b{background:var(--ink);color:#fff;border-radius:12px 12px 3px 12px;padding:8px 12px;font-size:12px;max-width:85%;line-height:1.6}
.msg-a{max-width:96%;width:100%}
.retr{border:1px solid var(--line2);border-radius:6px;padding:9px 11px;margin-bottom:8px;background:#F8FAFC}
.retr-k{font-size:9.5px;font-family:var(--mono);letter-spacing:.1em;color:var(--ai);font-weight:700;margin-bottom:6px}
.ch{border-top:1px solid var(--line2);padding-top:6px;margin-top:6px}
.ch:first-of-type{border-top:none;padding-top:0;margin-top:0}
.ch-s{font-size:9px;color:var(--mute)}
.ch-t{font-size:11px;color:var(--ink2);line-height:1.6;margin-top:2px}
.msg-t{font-size:12.5px;line-height:1.8;white-space:pre-wrap}
.msg-t.miss{color:var(--mute)}
.msg-r{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}
.ref-chip{font-size:10px;border:1px solid var(--line);padding:1px 7px;border-radius:3px;color:var(--mute)}
.ref-chip:hover{border-color:var(--ai);color:var(--ai)}
.dots{display:flex;gap:4px;padding:6px 0}
.dots i{width:6px;height:6px;border-radius:50%;background:#C3CBD6;animation:bl 1s infinite}
.dots i:nth-child(2){animation-delay:.15s} .dots i:nth-child(3){animation-delay:.3s}
@keyframes bl{0%,100%{opacity:.3}50%{opacity:1}}
.chat-f{display:flex;gap:7px;padding:12px 14px;border-top:1px solid var(--line)}
.chat-f input{flex:1;border:1px solid var(--line);border-radius:18px;padding:8px 13px;font-size:12.5px}
.chat-f input:focus{outline:none;border-color:var(--ai)}
.chat-n{font-size:9.5px;color:var(--mute);padding:0 14px 12px;line-height:1.5}
@media (max-width:760px){
  .alt{grid-template-columns:1fr 1fr}
  .inq-sum{grid-template-columns:1fr 1fr}
  .chat{right:10px;left:10px;width:auto;bottom:70px;height:min(560px,calc(100vh - 100px))}
  .chat-fab{right:12px;bottom:12px}
  .sub-res{flex-direction:column;align-items:flex-start;gap:10px}
}
.rs-um .rs-n{color:#7A3E96}
.tab-um{font-style:normal;font-size:9.5px;font-weight:700;padding:1px 5px;border-radius:2px;background:#F3E8F7;color:#7A3E96}

/* ---------- 規定横断チェック ---------- */
.pchips{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.pchip{background:var(--surf);border:1px solid var(--line);border-radius:6px;padding:10px 12px;
  display:flex;flex-direction:column;gap:2px}
.pchip:hover{border-color:var(--ai);background:#F8FAFC}
.pchip.on{border-color:var(--ai);background:#EEF1FA;box-shadow:inset 3px 0 0 var(--ai)}
.pc-n{font-size:12.5px;font-weight:700;letter-spacing:-.01em}
.pc-s{font-size:10px;color:var(--mute)}
.pc-f{font-size:9px;color:var(--ai);background:#E7ECFA;padding:0 4px;border-radius:2px;align-self:flex-start;margin-top:3px}
.cx-head{display:grid;grid-template-columns:1fr 240px;gap:1px;background:var(--line);border:1px solid var(--line);margin:26px 0 32px}
.cx-p{background:var(--surf);padding:18px 20px}
.cx-pn{font-size:17px;font-weight:800;letter-spacing:-.02em;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.cx-no{font-size:10px;color:var(--mute);font-weight:400}
.cx-pa{font-size:11.5px;color:var(--mute);margin-top:2px}
.cx-pd{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:10px}
.cx-pd span{font-size:12px;font-weight:600}
.cx-pd i{font-style:normal;font-size:9.5px;color:var(--mute);font-weight:400;display:block;letter-spacing:.04em}
.cx-pf{font-size:10.5px;color:var(--mute);margin-top:10px;border-top:1px solid var(--line2);padding-top:8px}
.cx-sum{background:var(--surf);padding:16px 18px;display:flex;flex-direction:column;justify-content:center;gap:7px}
.cxs{font-size:11.5px;color:var(--mute);display:flex;align-items:baseline;gap:7px}
.cxs span{font-size:22px;font-weight:600;letter-spacing:-.03em;min-width:26px;text-align:right}
.cxs-ok span{color:var(--ok)} .cxs-warn span{color:var(--warn)} .cxs-ng span{color:var(--ng)}
.cx-list{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line)}
.cx{background:var(--surf);border-left:3px solid transparent}
.cx.v-ok{border-left-color:var(--ok)} .cx.v-warn{border-left-color:var(--warn)} .cx.v-ng{border-left-color:var(--ng)}
.cx.is-open{background:#FBFCFE}
.cx-b{display:grid;grid-template-columns:30px 1fr 76px 1.15fr 46px;gap:14px;align-items:center;width:100%;padding:13px 16px}
.cx-b:hover{background:#F7F9FC}
.cx-mark{font-family:var(--mono);font-size:20px;font-weight:700;text-align:center}
.cx.v-ok .cx-mark{color:var(--ok)} .cx.v-warn .cx-mark{color:var(--warn)} .cx.v-ng .cx-mark{color:var(--ng)}
.cx-id{font-size:13.5px;font-weight:700;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.cx-rid{font-size:9.5px;color:var(--mute);font-weight:400}
.cx-note{font-size:10.5px;color:var(--mute);line-height:1.5;margin-top:1px}
.cx-mix{display:flex;gap:4px;font-size:11px;font-weight:600}
.cx-mix .v-ok{color:var(--ok)} .cx-mix .v-warn{color:var(--warn)} .cx-mix .v-ng{color:var(--ng)}
.cx-r{display:flex;flex-direction:column;gap:2px}
.cx-ngr,.cx-wr{font-size:10.5px;line-height:1.45;padding-left:10px;position:relative}
.cx-ngr{color:var(--ng);font-weight:600}
.cx-wr{color:var(--mute)}
.cx-ngr:before,.cx-wr:before{content:"";position:absolute;left:0;top:6px;width:4px;height:4px;border-radius:50%}
.cx-ngr:before{background:var(--ng)} .cx-wr:before{background:var(--warn)}
.cx-x{font-size:10px;color:var(--ai);font-weight:700;text-align:right}
.cx-d{border-top:1px solid var(--line2);padding:4px 16px 14px}
.cx-dh{display:grid;grid-template-columns:1.1fr .8fr 1.5fr;gap:16px;padding:8px 0;font-size:9.5px;
  letter-spacing:.08em;font-family:var(--mono);color:var(--mute)}
.cx-row{display:grid;grid-template-columns:1.1fr .8fr 1.5fr;gap:16px;padding:8px 0 8px 9px;
  border-top:1px solid var(--line2);border-left:2px solid transparent}
.cx-row.v-ok{border-left-color:#B7DACC} .cx-row.v-warn{border-left-color:#E8C286} .cx-row.v-ng{border-left-color:var(--ng)}
.cx-ck b{font-size:11.5px;display:block}
.cx-ck span{font-size:10.5px;color:var(--mute);line-height:1.5}
.cx-cp{font-size:11.5px;font-weight:600}
.cx-cv{display:flex;gap:8px;align-items:flex-start}
.cx-cv span{font-size:10.5px;color:var(--ink2);line-height:1.55}
.cx-um{margin-top:12px;background:#FDFAFE;border:1px solid #E8D5F0;border-radius:5px;padding:10px 12px}
.cx-um b{font-size:11.5px;color:#7A3E96;display:block;margin-bottom:6px}
.um-chip{display:inline-block;font-size:10px;background:#F3E8F7;color:#7A3E96;padding:1px 6px;border-radius:2px;margin:0 3px 3px 0}
.cx-um i{display:block;font-style:normal;font-size:10.5px;color:var(--mute);line-height:1.6;margin-top:5px}
.cx-note{font-size:11px;color:var(--mute);line-height:1.75;border-top:1px solid var(--line);padding-top:14px;margin-top:8px}

/* ヒートマップ */
.hm{display:grid;grid-template-columns:190px repeat(8,1fr);gap:2px;background:var(--surf);
  border:1px solid var(--line);padding:10px}
.hm-h{font-family:var(--mono);font-size:9.5px;color:var(--mute);text-align:center;padding-bottom:4px}
.hm-r{text-align:left;padding:4px 8px 4px 2px;display:flex;flex-direction:column;gap:0;border-radius:3px}
.hm-r:hover{background:#F2F5F9}
.hm-r.on{background:#EEF1FA}
.hm-n{font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-s{font-size:9px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-v{font-family:var(--mono);font-size:14px;font-weight:700;border-radius:3px;min-height:34px;
  display:flex;align-items:center;justify-content:center;transition:transform .1s}
.hm-v:hover{transform:scale(1.08)}
.hm-v.v-ok{background:var(--ok-bg);color:var(--ok)}
.hm-v.v-warn{background:var(--warn-bg);color:var(--warn)}
.hm-v.v-ng{background:var(--ng-bg);color:var(--ng)}
.hm-f{font-size:10.5px;color:var(--mute);margin-top:9px;line-height:1.6}

/* ---------- 規定マスタ（比較） ---------- */
.cmp-wrap{background:var(--surf);border:1px solid var(--line);padding:2px 2px 14px;overflow-x:auto}
.cmp{width:100%;border-collapse:collapse;font-size:10.5px}
.cmp th,.cmp td{border:1px solid var(--line2);padding:7px 9px;text-align:left;vertical-align:top;line-height:1.55}
.cmp thead th{background:#DDE2EA;font-size:10px;font-weight:700;white-space:nowrap;position:sticky;top:0}
.cmp .cmp-k{background:#F2F4F8;font-weight:700;font-size:10.5px;white-space:nowrap;text-align:left}
.cmp td{min-width:118px;color:var(--ink2)}
.cmp-none{color:#B6BDC8}
.cmp-f{font-size:10.5px;color:var(--mute);padding:12px 10px 0;line-height:1.6}
.r-cap{font-size:10.5px}
.r-note{font-size:11px;color:var(--ink2);line-height:1.7;margin:6px 0 12px;background:#F7F8FA;padding:9px 11px;border-radius:4px}
.r-rows{display:flex;flex-direction:column;gap:1px}
.r-r{display:flex;flex-direction:column;padding:6px 0;border-top:1px solid var(--line2)}
.r-r span{font-size:9.5px;color:var(--mute);font-family:var(--mono)}
.r-r b{font-size:11px;font-weight:600;line-height:1.55;margin-top:1px}
.r-r b.none{color:#B6BDC8;font-weight:400}
.r-ng{list-style:none;display:flex;flex-direction:column;gap:4px}
.r-ng li{font-size:10.5px;color:var(--ng);line-height:1.55;padding-left:11px;position:relative}
.r-ng li:before{content:"×";position:absolute;left:0;font-family:var(--mono)}

@media (max-width:1140px){
  .pchips{grid-template-columns:1fr 1fr}
  .cx-head{grid-template-columns:1fr}
  .cx-b{grid-template-columns:26px 1fr 60px;gap:10px}
  .cx-r,.cx-x{grid-column:2/-1}
  .cx-row,.cx-dh{grid-template-columns:1fr}
  .cx-dh{display:none}
  .hm{grid-template-columns:130px repeat(8,1fr);font-size:9px}
}
@media (max-width:760px){
  .pchips{grid-template-columns:1fr}
  .hm{grid-template-columns:96px repeat(8,1fr);padding:6px}
  .hm-v{min-height:26px;font-size:11px}
  .hm-s{display:none}
}
.ins{background:var(--ink);color:#fff;padding:20px 24px}
.ins-k{font-size:10px;letter-spacing:.12em;color:#8B99AE;font-family:var(--mono);margin-bottom:12px}
.ins ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.ins li{font-size:12px;line-height:1.75;color:#B9C5D6;padding-left:14px;position:relative}
.ins li:before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:#4A6BC8}
.ins b{color:#fff;font-weight:700}

/* ---------- 規定原本ビュー ---------- */
.doc{background:#fff;border:1px solid var(--ink);font-size:11px;line-height:1.5}
.doc-h{display:flex;justify-content:space-between;align-items:center;padding:9px 12px}
.doc-t{font-size:13px;font-weight:800}
.doc-t i{font-style:italic;font-weight:500;font-size:11px;margin-left:8px}
.doc-brand{font-size:11px;font-weight:800;color:#D8232A;letter-spacing:-.02em}
.doc-gid{display:flex;align-items:stretch;border:1px solid var(--ink);margin:0 12px 10px}
.doc-gid span{background:#F2F4F8;padding:5px 12px;font-weight:700;font-size:11.5px;border-right:1px solid var(--ink)}
.doc-gid b{padding:5px 14px;font-size:13px;border-right:1px solid var(--ink);min-width:52px;text-align:center}
.doc-gid b:last-child{border-right:none;flex:1;text-align:left}
.doc-mask{font-weight:400;color:var(--mute);font-size:10.5px}
.doc-tb{width:100%;border-collapse:collapse;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.doc-tb tr{border-bottom:1px solid #B9C0CB}
.doc-g{width:26px;background:#F2F4F8;border-right:1px solid var(--ink);border-left:1px solid var(--ink);
  font-size:9.5px;font-weight:700;writing-mode:vertical-rl;text-align:center;padding:6px 2px;line-height:1.3;letter-spacing:.08em}
.doc-g span{display:block;font-size:11px;margin-bottom:4px}
.doc-k{width:132px;text-align:left;padding:4px 8px;font-weight:500;font-size:10.5px;border-right:1px solid #B9C0CB;background:#FBFCFD}
.doc-v{width:66px;padding:4px 6px;font-size:10px;border-right:1px solid #B9C0CB;text-align:center;white-space:nowrap}
.kd-ng{color:var(--ng);font-weight:700}
.kd-y{font-weight:600}
.kd-n{color:var(--mute)}
.doc-x{padding:4px 8px;font-size:10.5px;color:var(--ink2);border-right:1px solid var(--ink)}
.doc-tb .dr-empty td,.doc-tb .dr-empty th{background:#FCFCFD}
.doc-tb .dr-ok{background:#EFF7F3} .doc-tb .dr-warn{background:#FDF6E9} .doc-tb .dr-ng{background:#FCEDEB}
.doc-tb .dr-ok .doc-k{box-shadow:inset 3px 0 0 var(--ok)}
.doc-tb .dr-warn .doc-k{box-shadow:inset 3px 0 0 var(--warn)}
.doc-tb .dr-ng .doc-k{box-shadow:inset 3px 0 0 var(--ng)}
.dr-click{cursor:pointer}
.dr-click:hover{filter:brightness(.97)}
.doc-tb tr.flash{animation:dfl 1.6s}
@keyframes dfl{0%,50%{background:#FFF0BF}100%{}}
.doc-m{display:block;margin-top:3px;font-size:10px;font-weight:700;padding:2px 6px;border-radius:2px;width:fit-content}
.doc-m b{margin-right:4px;font-family:var(--mono)}
.doc-m.v-ok{background:var(--ok-bg);color:var(--ok)}
.doc-m.v-warn{background:var(--warn-bg);color:var(--warn)}
.doc-m.v-ng{background:var(--ng-bg);color:var(--ng)}
.doc-f{font-size:9.5px;color:var(--mute);padding:7px 12px;background:#FBFCFD}
.docsec{margin-top:34px}
.doclegend{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px;font-size:10.5px;color:var(--mute)}
.dl{padding-left:16px;position:relative}
.dl:before{content:"";position:absolute;left:0;top:4px;width:10px;height:10px;border-radius:2px}
.dl-ok:before{background:#EFF7F3;border:1px solid var(--ok)}
.dl-warn:before{background:#FDF6E9;border:1px solid var(--warn)}
.dl-ng:before{background:#FCEDEB;border:1px solid var(--ng)}
.dl-none:before{background:#FCFCFD;border:1px solid var(--line)}
.row-jump{font-size:9.5px;color:var(--ai);font-weight:600;border-bottom:1px solid #C3CBE6;padding:0}
.row-jump:hover{border-color:var(--ai)}

/* ---------- 物件概要書ビュー ---------- */
.pdoc{background:#fff;border:1px solid var(--line)}
.pdoc-h{display:flex;justify-content:space-between;align-items:flex-start;padding:12px 14px;border-bottom:2px solid var(--ink)}
.pdoc-t{font-size:14px;font-weight:800}
.pdoc-s{font-size:10px;color:var(--mute);margin-top:2px}
.pdoc-no{font-size:11px;color:var(--mute)}
.pblk{border-bottom:1px solid var(--line2)}
.pblk-t{background:#F2F4F8;padding:5px 14px;font-size:10.5px;font-weight:700}
.pblk-e{padding:9px 14px;font-size:11px;color:var(--mute)}
.prow{display:grid;grid-template-columns:132px 1fr;gap:12px;padding:5px 14px;border-bottom:1px solid #F1F3F6;font-size:11px}
.prow-k{color:var(--mute)}
.prow-v{color:var(--ink);font-weight:500}
.prow-um{grid-template-columns:1fr;background:#FDFAFE}
.prow-um .prow-v{color:#7A3E96;font-weight:600;padding-left:12px;position:relative}
.prow-um .prow-v:before{content:"×";position:absolute;left:0;font-family:var(--mono)}
.prow-hit{background:#FFF6DE}
.pdoc-f{padding:8px 14px;font-size:9.5px;color:var(--mute);line-height:1.5}
.read-doc{padding:14px 16px}
.rq{border:1px solid var(--line);padding:14px 16px}
.rq-t{font-size:14px;font-weight:800}
.rq-s{font-size:10px;color:var(--mute);margin-top:2px}
.rq-b{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}
.rq-i{font-size:11px;background:#F2F4F8;border-radius:3px;padding:3px 9px}
.rq-e{font-size:11px;color:var(--fill);margin-top:12px;border-top:1px solid var(--line2);padding-top:9px}

/* ---------- 受託先セレクタ ---------- */
.gsel{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.gs{background:var(--surf);border:1px solid var(--line);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.gs:hover{border-color:var(--ai);background:#F8FAFC}
.gs.on{border-color:var(--ai);background:#EEF1FA;box-shadow:inset 3px 0 0 var(--ai)}
.gs-id{font-size:12.5px;font-weight:700}
.gs-r{font-size:9.5px;color:var(--mute)}
.gs-n{font-size:10.5px;color:var(--ink2);line-height:1.5;margin-top:3px}
.drop-sel{width:100%;border:1px solid var(--line);border-radius:4px;padding:7px 9px;font-size:11.5px;margin:6px 0}
.drop-sel-w{margin-bottom:12px;max-width:520px}
.drop-zb{width:100%;border:1.5px dashed #BFC7D3}
.drop-p{cursor:default}
.drop-doc{font-size:10.5px;color:var(--ai);font-weight:700;margin-top:auto;padding-top:6px;text-align:left}
.drop-tag2{font-size:9px;font-weight:600;color:var(--mute);background:#EDEFF3;padding:1px 5px;border-radius:2px}
.lnk-doc{display:inline-block;margin-top:12px;font-size:11.5px}
.sr-row{font-size:9.5px;color:var(--mute);font-weight:400;margin-left:8px}
.sr-doc{flex:none}
.rf-g{font-size:9.5px;color:#7E8CA3;margin-top:2px}
.rf-doc{display:flex;gap:4px;margin-top:10px}
.rf-doc button{flex:1;font-size:10px;font-weight:600;color:#9FADC2;border:1px solid #2C3949;border-radius:4px;padding:5px;text-align:center}
.rf-doc button:hover{color:#fff;border-color:#4A5C74}

/* ---------- 原本モーダル ---------- */
.dm-wrap{position:fixed;inset:0;background:rgba(19,26,36,.5);z-index:55;display:flex;align-items:center;
  justify-content:center;padding:30px;animation:fade .16s}
.dm{background:var(--paper);border-radius:8px;width:min(880px,100%);max-height:100%;display:flex;flex-direction:column;
  box-shadow:0 20px 60px rgba(19,26,36,.35)}
.dm-h{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;border-bottom:1px solid var(--line)}
.dm-t{font-size:15px;font-weight:800}
.dm-s{font-size:10px;color:var(--mute);margin-top:2px}
.dm-b{overflow:auto;padding:16px 20px 24px}
.dr-doc{border:1px solid var(--ink)}
.dr-dh{font-size:9px;color:#fff;background:var(--ink);padding:3px 8px}
.dr-dr{display:flex;flex-direction:column}
.dr-dk{font-size:10.5px;font-weight:700;padding:5px 9px;background:#F2F4F8;border-bottom:1px solid #B9C0CB}
.dr-dv{font-size:10.5px;padding:4px 9px;border-bottom:1px solid #B9C0CB;font-weight:600}
.dr-dx{font-size:11px;padding:7px 9px;color:var(--ink2);line-height:1.7}

@media (max-width:1140px){ .gsel{grid-template-columns:1fr 1fr} }
@media (max-width:760px){
  .gsel{grid-template-columns:1fr}
  .doc-k{width:88px;font-size:9.5px}
  .doc-v{width:48px;font-size:9px}
  .doc-x{font-size:9.5px}
  .prow{grid-template-columns:1fr;gap:1px}
  .dm-wrap{padding:0}
  .dm{border-radius:0;height:100%}
}

/* 別紙 */
.bessi{border-top:2px solid var(--ink);background:#FFFCF5;padding:12px 14px}
.bessi-h{font-size:12.5px;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bessi-h i{font-style:normal;font-size:10px;color:var(--mute);font-weight:400}
.bessi-tag{font-size:9.5px;font-weight:700;background:var(--ink);color:#fff;padding:1px 6px;border-radius:2px}
.bessi-l{list-style:none;counter-reset:b;margin:9px 0;display:flex;flex-direction:column;gap:3px}
.bessi-l li{counter-increment:b;display:flex;gap:10px;align-items:baseline;font-size:11px;padding-left:22px;position:relative}
.bessi-l li:before{content:"①②③④⑤" attr(x);position:absolute;left:0;width:0;overflow:hidden}
.bessi-l li:nth-child(1):before{content:"①";width:auto} .bessi-l li:nth-child(2):before{content:"②";width:auto}
.bessi-l li:nth-child(3):before{content:"③";width:auto} .bessi-l li:nth-child(4):before{content:"④";width:auto}
.bessi-l li:nth-child(5):before{content:"⑤";width:auto}
.bessi-l b{font-weight:700;min-width:180px}
.bessi-l span{color:var(--mute);font-size:10.5px}
.bessi-f{font-size:10px;color:var(--mute);line-height:1.6;border-top:1px solid var(--line2);padding-top:8px}
.prow-cf{background:#FFFCF5;grid-template-columns:96px 1fr}
.prow-cf .prow-k{color:var(--warn);font-weight:700}
.prow-cf .prow-v{color:var(--ink2)}
.gs-p{font-size:9.5px;color:var(--ai);background:#EEF1FA;border-radius:3px;padding:3px 6px;margin-top:5px;line-height:1.4}
.gs-p i{font-style:normal;color:var(--mute);display:block;font-size:9px}
.drop-real{font-size:10px;font-weight:700;color:var(--ai);background:#E7ECFA;padding:2px 6px;border-radius:2px;margin-top:4px;width:fit-content}
.real-tag{font-size:9px;font-weight:700;background:var(--ai);color:#fff;padding:1px 6px;border-radius:2px;margin-left:8px;letter-spacing:0}
.real-dot{font-size:9px;font-weight:700;background:#E7ECFA;color:var(--ai);padding:0 5px;border-radius:2px;margin-left:6px;vertical-align:1px}

/* ---------- 自分の社宅 ---------- */
.room{display:grid;grid-template-columns:1fr 240px;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:26px}
.room-l{background:var(--surf);padding:18px 20px}
.room-n{font-size:19px;font-weight:800;letter-spacing:-.02em}
.room-a{font-size:11.5px;color:var(--mute);margin-top:2px}
.room-d{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:12px}
.room-d span{font-size:12.5px;font-weight:600}
.room-d i{font-style:normal;font-size:9.5px;color:var(--mute);font-weight:400;display:block;letter-spacing:.04em}
.room-f{display:flex;gap:14px;margin-top:14px;border-top:1px solid var(--line2);padding-top:11px}
.room-f button{font-size:11px;color:var(--ai);font-weight:700}
.room-r{background:var(--surf);padding:18px 20px;display:flex;flex-direction:column;justify-content:center}
.room-rent{font-family:var(--mono);font-size:24px;font-weight:600;letter-spacing:-.03em}
.room-rent i{display:block;font-style:normal;font-size:9.5px;color:var(--mute);font-family:var(--jp);letter-spacing:.04em;margin-bottom:2px}
.room-rent b{font-size:12px;color:var(--mute);font-weight:400}
.room-rn{font-size:10.5px;color:var(--mute);line-height:1.6;margin-top:8px}
.paysum{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:30px}
.ps{background:var(--surf);padding:14px 18px;font-size:12px;color:var(--mute);display:flex;align-items:baseline;gap:9px}
.ps span{font-size:24px;font-weight:600;letter-spacing:-.03em}
.ps-co span{color:var(--ok)} .ps-me span{color:var(--ai)} .ps-nd span{color:var(--warn)}
.payt{background:var(--surf);border:1px solid var(--line)}
.payh,.payr{display:grid;grid-template-columns:1fr 1.1fr 1.35fr 1.5fr;gap:16px;align-items:center}
.payh{padding:8px 16px;background:#F2F4F8;font-size:10px;letter-spacing:.08em;font-family:var(--mono);color:var(--mute)}
.payr{padding:11px 16px;border-bottom:1px solid var(--line2);border-left:3px solid transparent}
.payr:last-child{border-bottom:none}
.payr.pay-co{border-left-color:var(--ok)} .payr.pay-me{border-left-color:var(--ai)}
.payr.pay-cond,.payr.pay-none{border-left-color:var(--warn);background:#FFFCF5}
.payk{font-size:12.5px;font-weight:700}
.paytag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:3px;white-space:nowrap}
.paytag.pay-co{background:var(--ok-bg);color:var(--ok)}
.paytag.pay-me{background:#E7ECFA;color:var(--ai)}
.paytag.pay-cond,.paytag.pay-none{background:var(--warn-bg);color:var(--warn)}
.payv i{font-style:normal;display:block;font-size:9.5px;color:var(--mute);margin-top:2px}
.paya{font-size:11.5px;color:var(--ink2);line-height:1.55}
.payn{font-size:10.5px;color:var(--mute);line-height:1.5}
.payn .mono{font-size:9px;display:block}
.payn i{font-style:normal;display:block;font-size:10px;margin-top:2px}

/* ---------- チャットページ ---------- */
.cw{display:grid;grid-template-columns:250px 1fr;gap:16px;align-items:start}
.cw-l{position:sticky;top:16px}
.cw-src{background:var(--surf);border:1px solid var(--line);padding:11px 12px;margin-bottom:12px}
.cw-k{font-size:9px;letter-spacing:.12em;color:var(--mute);margin-bottom:7px}
.cw-d{display:block;width:100%;text-align:left;border:1px solid var(--line2);border-radius:4px;padding:6px 9px;margin-bottom:5px}
.cw-d:hover{border-color:var(--ai);background:#F6F8FC}
.cw-d b{font-size:11px;font-weight:700;display:block}
.cw-d i{font-style:normal;font-size:9.5px;color:var(--mute)}
.cw-c{margin-bottom:14px}
.cw-ct{font-size:10px;letter-spacing:.1em;font-family:var(--mono);color:var(--mute);margin-bottom:6px}
.cw-q{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--surf);
  border-radius:16px;padding:6px 11px;font-size:11.5px;color:var(--ink2);margin-bottom:4px;line-height:1.4}
.cw-q:hover{border-color:var(--ai);color:var(--ai);background:#F4F6FC}
.cw-qu{border-color:#E8D5F0;color:#7A3E96}
.cw-qu:hover{border-color:#9B5FB8;color:#7A3E96;background:#FDFAFE}
.cw-r{background:var(--surf);border:1px solid var(--line);display:flex;flex-direction:column;min-height:560px}
.cw-b{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:14px;max-height:520px}
.cw-empty{margin:auto;text-align:center;max-width:380px}
.cw-ei{width:38px;height:38px;border-radius:50%;background:#EEF1FA;color:var(--ai);font-size:18px;font-weight:800;
  display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.cw-empty p{font-size:12.5px;color:var(--ink2);line-height:1.7}
.cw-es{font-size:11px;color:var(--mute);margin-top:5px}
.cw-f{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}
.cw-f input{flex:1;border:1px solid var(--line);border-radius:20px;padding:9px 14px;font-size:12.5px}
.cw-f input:focus{outline:none;border-color:var(--ai)}
.cw-n{font-size:9.5px;color:var(--mute);padding:0 14px 12px;line-height:1.6}
.pay-hero{display:flex;align-items:baseline;gap:10px;padding:9px 13px;border-radius:5px;margin-bottom:9px;flex-wrap:wrap}
.pay-hero b{font-size:15px;font-weight:800}
.pay-hero span{font-size:11px}
.pay-hero.pay-co{background:var(--ok-bg);color:var(--ok)}
.pay-hero.pay-me{background:#E7ECFA;color:var(--ai)}
.pay-hero.pay-cond,.pay-hero.pay-none{background:var(--warn-bg);color:var(--warn)}
.who-t{font-size:10px;color:#7E8CA3;line-height:1.5;margin-top:9px}
@media (max-width:1140px){
  .room,.paysum{grid-template-columns:1fr}
  .payh{display:none}
  .payr{grid-template-columns:1fr 1fr;gap:6px 14px}
  .paya,.payn{grid-column:1/-1}
  .cw{grid-template-columns:1fr}
  .cw-l{position:static}
  .cw-c{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
  .cw-ct{width:100%}
  .cw-q{width:auto;display:inline-block}
}
@media (max-width:760px){ .payr{grid-template-columns:1fr} }

