:root{
  --bg:#f6f5f2;--surface:#fff;--sub:#faf9f6;--line:#e7e4de;--line2:#f0ede8;--line3:#d3cfc7;--chip:#f2efea;
  --ink:#1c1917;--ink2:#433e39;--mute:#6b645d;--faint:#827a72;
  --acc:#0f5f5c;--acc-bg:#e8f2f1;--acc-t:#0f5f5c;
  --pos:#1d7a3e;--pos-bg:#eaf5ee;--neg:#c2410c;--neg-bg:#fdf0e9;--warn:#a15c07;--warn-bg:#fdf4e4;
  --star:#d99a0b;--cnt:#d9d4cb;
  --r:8px;--sh:0 1px 2px rgba(28,25,23,.05);--sh2:0 2px 4px rgba(28,25,23,.06),0 8px 20px -4px rgba(28,25,23,.12);--tip:#1c1917;
}
.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh;background:linear-gradient(90deg,#fbfaf8 235px,var(--line) 235px,var(--line) 236px,transparent 236px)}
.side{background:#fbfaf8;border-right:1px solid var(--line);padding:16px 14px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;gap:10px;align-items:center;padding:2px 4px 16px;border-bottom:1px solid var(--line2);margin-bottom:12px}
.brand .title{font-size:14.5px;line-height:1.3}
.nav{display:grid;gap:2px}
.nav button{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border:0;background:none;border-radius:7px;font-size:13.5px;font-weight:600;color:var(--ink2);text-align:left}
.nav button svg{color:var(--faint)}
.nav button:hover{background:var(--chip)}
.nav button[aria-selected="true"]{background:#fff;box-shadow:0 0 0 1px var(--line),var(--sh);color:var(--ink)}
.nav button[aria-selected="true"] svg{color:var(--acc)}
.cnt{margin-left:auto;font-size:11px;font-weight:600;color:var(--mute);background:var(--chip);border-radius:4px;padding:0 6px}
.side-h{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--faint);margin:20px 6px 6px}
.stores{display:grid;gap:2px}
.stores button{display:grid;grid-template-columns:1fr auto;gap:0 8px;align-items:center;border:0;background:none;padding:7px 10px;border-radius:7px;text-align:left}
.stores button:hover{background:var(--chip)}
.stores button[aria-pressed="true"]{background:var(--acc-bg)}
.stores .nm{font-size:13px;font-weight:600}
.stores .rt{font:600 12.5px "Inter",system-ui;display:flex;align-items:center;gap:3px}
.stores .rt svg{width:12px;height:12px;fill:var(--star);stroke:var(--star)}
.stores .ct{font-size:11.5px;color:var(--mute);grid-column:1/-1}
.srcs{list-style:none;margin:0;padding:0 6px;display:grid;gap:7px;font-size:12.5px;color:var(--ink2)}
.srcs li{display:flex;align-items:center;gap:8px}
.srcs li span.num{margin-left:auto;color:var(--mute);font-size:12px}
.sdot{width:8px;height:8px;border-radius:2px}
.sdot.g{background:#2f7d5b}.sdot.t{background:#c26a1b}.sdot.h{background:#b33c4b}
.sync{display:flex;gap:8px;font-size:11.5px;color:var(--mute);margin:22px 6px 0;padding-top:12px;border-top:1px solid var(--line2);line-height:1.55}
.sync svg{margin-top:2px;color:var(--faint)}
.body{min-width:0}
.bar{display:flex;align-items:center;gap:16px;padding:18px 28px 0;max-width:1240px}
.bar h1{font-size:20px}
.bar p{font-size:13px;color:var(--mute);margin-top:2px}
.body main{max-width:1240px;margin:0;padding:16px 28px 28px}
.h230{height:230px}.h190{height:178px}
.stars{display:inline-flex;gap:1px}
.stars svg{width:13px;height:13px;stroke:var(--star);fill:var(--star);stroke-width:1.2}
.stars svg.o{fill:none;stroke:#cfc8bd}
.meter{position:absolute;right:16px;bottom:16px;width:92px;height:4px;background:var(--line2);border-radius:2px;overflow:hidden}
.meter b{display:block;height:100%;background:var(--acc);border-radius:2px}
.neg-t{color:var(--neg)}.acc-t{color:var(--acc-t)}
.lg-acc{--k:var(--acc)}.lg-cnt{--k:var(--cnt)}.lg-pos{--k:var(--pos)}.lg-neg{--k:var(--neg)}
.g-ov{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}
.g-ov2{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}
.dist{display:grid;gap:9px;margin-top:6px}
.dist .row{display:grid;grid-template-columns:34px 1fr 64px;gap:10px;align-items:center;font-size:12.5px}
.dist .row .k{display:flex;align-items:center;gap:3px;font-weight:600;color:var(--ink2)}
.dist .row .k svg{width:12px;height:12px;fill:var(--star);stroke:var(--star)}
.dist .row .b{height:10px;background:var(--line2);border-radius:2px;overflow:hidden}
.dist .row .b b{display:block;height:100%;background:#cbbfa9;border-radius:2px}
.dist .row.hi .b b{background:var(--star)}
.dist .row.lo .b b{background:var(--neg)}
.dist .row .p{text-align:right;color:var(--mute)}
.dist-sum{display:grid;grid-template-columns:repeat(3,1fr);margin-top:16px;border:1px solid var(--line2);border-radius:7px}
.dist-sum>div{padding:8px 12px;display:grid}
.dist-sum>div+div{border-left:1px solid var(--line2)}
.dist-sum b{font:700 18px/1.3 "Inter",system-ui}
.topics{padding:10px 16px 0;display:grid;gap:2px}
.tp{display:grid;grid-template-columns:72px 1fr 92px;gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line2);font-size:13px}
.tp:last-child{border-bottom:0}
.tp .nm{font-weight:600}
.tp .st{display:flex;height:10px;border-radius:2px;overflow:hidden;background:var(--line2)}
.tp .st .p{background:var(--pos)}.tp .st .n{background:var(--neg)}
.tp .v{text-align:right;font-size:12px;color:var(--mute);white-space:nowrap}
.tp .v b{color:var(--neg);font-weight:600}
.hint{font-size:11.5px;color:var(--faint);padding:8px 16px 13px}
.link{border:0;background:none;color:var(--acc-t);font-size:12px;font-weight:600;padding:0}
.link:hover{text-decoration:underline}
.rlist{margin-top:10px;border-top:1px solid var(--line)}
.rv{padding:11px 16px;border-bottom:1px solid var(--line2);display:grid;gap:4px}
.rv:last-child{border-bottom:0}
.rv .h{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mute)}
.rv .h .who{font-weight:600;color:var(--ink2)}
.rv .h .sp{flex:1}
.rv p{font-size:13px;color:var(--ink2);line-height:1.65}
.rv mark{background:none;padding:0 1px;border-bottom:2px solid}
.rv mark.n{color:var(--neg);border-color:#f2c4ad}
.rv mark.p{color:var(--pos);border-color:#b9dcc4}
.rv .tg{display:flex;gap:5px;flex-wrap:wrap}
.rlist.sm .rv{padding:10px 16px}
/* issues */
.g-is{grid-template-columns:minmax(0,1fr) minmax(0,1.9fr)}
.g-is2{grid-template-columns:minmax(0,1.05fr) minmax(0,.9fr) minmax(0,1.25fr)}
.irank{padding:8px 8px 10px}
.irank button{width:100%;display:grid;grid-template-columns:64px 1fr 44px 46px;gap:10px;align-items:center;border:0;background:none;border-radius:6px;padding:8px;text-align:left;font-size:13px}
.irank button:hover{background:var(--sub)}
.irank button[aria-pressed="true"]{background:var(--neg-bg);box-shadow:inset 2px 0 0 var(--neg)}
.irank .nm{font-weight:600}
.irank .b{height:8px;background:var(--line2);border-radius:2px;overflow:hidden}
.irank .b b{display:block;height:100%;background:var(--neg);border-radius:2px;opacity:.85}
.irank .c{font:600 13px "Inter",system-ui;text-align:right}
.irank .d{font:600 11.5px "Inter",system-ui;text-align:right}
.heat{display:grid;grid-template-columns:64px repeat(12,minmax(0,1fr));gap:3px;font-size:11.5px}
.heat .rl{color:var(--ink2);font-weight:600;display:flex;align-items:center}
.heat .cl{color:var(--faint);text-align:center;font-family:"Inter",system-ui;font-size:10.5px}
.heat .cell{height:26px;border-radius:3px;display:grid;place-items:center;font:600 11px "Inter",system-ui;color:var(--ink2)}
.heat .cell.sel{box-shadow:inset 0 0 0 1.5px var(--ink)}
.h0{background:#f4f2ee}.h1{background:#fbe3d4}.h2{background:#f5bf9f}.h3{background:#d0612c}.h4{background:#c2410c}
.cell.h3,.cell.h4{color:#fff!important}
.heat-lg{display:flex;align-items:center;gap:3px;font-size:11px}
.heat-lg i{width:12px;height:10px;border-radius:2px;display:block}
.wk{display:grid;grid-template-columns:34px repeat(7,minmax(0,1fr));gap:3px;font-size:11.5px}
.wk .cl{text-align:center;color:var(--faint)}
.wk .rl{color:var(--ink2);display:flex;align-items:center}
.wk .cell{height:30px;border-radius:3px;display:grid;place-items:center;font:600 11px "Inter",system-ui;color:var(--ink2)}
.callout{display:flex;gap:10px;margin-top:14px;padding:10px 12px;border:1px solid #f3d3c1;background:var(--neg-bg);border-radius:7px;font-size:12.5px;color:var(--ink2);line-height:1.6}
.callout svg{color:var(--neg);margin-top:2px}
.phr{padding:8px 16px 14px;display:grid;gap:0}
.phr .row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line2);font-size:13px}
.phr .row:last-child{border-bottom:0}
.phr .row q{quotes:"「" "」";font-weight:600}
.phr .row .sp{flex:1}
.phr .row .n{font:600 12.5px "Inter",system-ui}
/* actions */
.g-ac{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}
.acts{display:grid;gap:10px}
.act{display:grid;grid-template-columns:28px 1fr;gap:12px;padding:14px 16px;cursor:pointer;transition:border-color .15s}
.act:hover{border-color:var(--line3)}
.act .ck{width:20px;height:20px;border-radius:5px;border:1.5px solid var(--line3);display:grid;place-items:center;color:transparent;margin-top:2px;background:#fff}
.act .ck svg{width:13px;height:13px;stroke-width:2.6}
.act[aria-checked="true"]{border-color:#9cc3c0;box-shadow:0 0 0 1px #9cc3c0,var(--sh)}
.act[aria-checked="true"] .ck{background:var(--acc);border-color:var(--acc);color:#fff}
.act .t{display:flex;align-items:flex-start;gap:10px}
.act h3{font-size:14.5px;line-height:1.45}
.act .t .tag{margin-left:auto}
.act .why{font-size:12.5px;color:var(--mute);margin-top:4px}
.act .why b{color:var(--ink2)}
.act .mx{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:10px;border:1px solid var(--line2);border-radius:7px}
.act .mx>div{padding:7px 10px;display:grid}
.act .mx>div+div{border-left:1px solid var(--line2)}
.act .mx .sub{font-size:11px}
.act .mx b{font:700 14px/1.4 "Inter","Noto Sans CJK JP",system-ui}
.act .mx b.pos{color:var(--pos)}
.ac-side{display:grid;gap:12px}
.lg-proj{margin-top:6px}
.proj-n{display:grid;grid-template-columns:repeat(3,1fr);margin-top:12px;border:1px solid var(--line2);border-radius:7px}
.proj-n>div{padding:8px 12px;display:grid}
.proj-n>div+div{border-left:1px solid var(--line2)}
.proj-n b{font:700 19px/1.3 "Inter",system-ui}
.quote{margin:0 0 10px;padding:9px 12px;border-left:2px solid var(--line3);background:var(--sub);font-size:12.5px;color:var(--ink2);display:grid;gap:3px;border-radius:0 6px 6px 0}
.draft{border:1px solid var(--line);border-radius:7px;padding:11px 12px;font-size:13px;line-height:1.75;background:#fff}
.draft-f{display:flex;align-items:center;gap:10px;margin-top:10px;justify-content:space-between}

@media (max-width:1180px){.g-is2{grid-template-columns:1fr 1fr}.g-is2>.card:last-child{grid-column:1/-1}}
@media (max-width:900px){
  .shell{grid-template-columns:1fr}
  .side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px 12px 0;display:grid;grid-template-columns:1fr}
  .brand{border:0;padding:2px 0 8px;margin:0}
  .side-h,.srcs,.sync{display:none}
  .stores{grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto;gap:4px;padding-bottom:8px}
  .stores .ct{display:none}
  .nav{grid-auto-flow:column;grid-auto-columns:1fr;border-top:1px solid var(--line2);margin:0 -12px;padding:6px 10px;order:5}
  .nav button{justify-content:center;font-size:13px;height:34px;padding:0 6px;gap:6px}
  .nav .cnt{margin-left:2px}
  .g-ov,.g-ov2,.g-is,.g-is2,.g-ac{grid-template-columns:minmax(0,1fr)}
  .g-is2>.card:last-child{grid-column:auto}
}
@media (max-width:760px){
  .bar{padding:14px 12px 0;flex-wrap:wrap;gap:10px}
  .bar h1{font-size:18px}
  .body main{padding:12px 12px 22px}
  .h230{height:200px}
  .meter{display:none}
  .tp{grid-template-columns:64px 1fr 80px;gap:8px}
  .heat{grid-template-columns:52px repeat(12,minmax(0,1fr));gap:2px}
  .heat .cell{height:22px;font-size:10px}
  .heat .cl{font-size:9.5px}
  .act .mx{grid-template-columns:repeat(2,minmax(0,1fr))}
  .act .mx>div:nth-child(3){border-left:0}
  .act .mx>div:nth-child(n+3){border-top:1px solid var(--line2)}
  .act{grid-template-columns:22px 1fr;gap:10px;padding:12px}
  .act .t{flex-wrap:wrap}
  .irank button{grid-template-columns:60px 1fr 36px 40px;gap:8px}
}

.srcavg{margin:0 16px 14px;border-top:1px solid var(--line2);padding-top:10px}
.sa-h{font-size:12px;font-weight:700;color:var(--ink2);margin-bottom:6px}
.sa{display:grid;grid-template-columns:8px 96px 1fr 36px 44px;gap:10px;align-items:center;font-size:12.5px;padding:4px 0}
.sa .b{height:6px;background:var(--line2);border-radius:3px;overflow:hidden}
.sa .b b{display:block;height:100%;background:var(--acc);border-radius:3px}
.sa .w1{width:83.6%}.sa .w2{width:74.2%}.sa .w3{width:81%}
.sa .num{text-align:right}
@media (max-width:900px){.nav .cnt{display:none}}
@media (max-width:900px){.shell{background:none}}

/* /services/ に iframe で埋め込んだとき（is-embedded）は vh を使わない */
.is-embedded .shell{min-height:0}.is-embedded .side{height:auto}
