:root{
  --bg:#f6f5f4;--surface:#fff;--sub:#faf9f8;--line:#e5e2df;--line2:#efedeb;--line3:#cfcac5;--chip:#f1efed;
  --ink:#1c1917;--ink2:#3a3532;--mute:#615a55;--faint:#746c66;
  --acc:#be123c;--acc-bg:#fdecef;--acc-t:#a50f34;
  --s1:#78716c;--s2:#7c8a9a;--s3:#b4812a;--s4:#be123c;--s5:#15803d;
  --pos:#15803d;--pos-bg:#e9f6ee;--neg:#b42318;--neg-bg:#fdeceb;--warn:#9a5a06;--warn-bg:#fdf3e2;
  --mark:#be123c;--pri:#1c1917;--r:8px;
  --sh:0 1px 2px rgba(28,25,23,.05);--sh2:0 2px 4px rgba(28,25,23,.06),0 8px 22px -6px rgba(28,25,23,.18);--tip:#1c1917;
}
.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh;background:linear-gradient(90deg,#211d1b 240px,transparent 240px)}
.side{background:#211d1b;color:#d6d0cb;padding:16px 12px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
.brand{display:flex;gap:10px;align-items:center;padding:2px 6px 16px}
.brand .title{color:#fff;font-size:14.5px;line-height:1.3}
.bsub{font-size:11.5px;color:#a69d96}
.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:6px;font-size:13.5px;font-weight:600;color:#d6d0cb;text-align:left}
.nav button svg{color:#968c85}
.nav button:hover{background:#2c2724}
.nav button[aria-selected="true"]{background:#36302c;color:#fff;box-shadow:inset 2px 0 0 #f43f5e}
.nav button[aria-selected="true"] svg{color:#fda4af}
.side-h{font-size:11px;font-weight:700;letter-spacing:.06em;color:#968c85;margin:22px 8px 8px}
.today{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.today li{display:grid;grid-template-columns:40px 1fr;gap:8px;padding:7px 8px;border-radius:6px}
.today .tt{font-size:11.5px;color:#fda4af;padding-top:1px}
.today b{display:block;font-size:12.5px;color:#f1ece8;font-weight:600;line-height:1.45}
.today span{font-size:11px;color:#a69d96}
.side-f{margin-top:auto;display:flex;gap:10px;align-items:center;padding:12px 8px 0;border-top:1px solid #36302c}
.side-f b{display:block;font-size:12.5px;color:#fff}.side-f span{font-size:11px;color:#a69d96}
.av{width:28px;height:28px;border-radius:50%;background:#4b423d;color:#fff;font-size:11.5px;font-weight:700;display:inline-grid;place-items:center;flex:none}
.av.sm{width:22px;height:22px;font-size:10.5px}
.main{min-width:0}
.mh{display:flex;align-items:center;gap:14px;height:56px;padding:0 24px;border-bottom:1px solid var(--line);background:var(--surface)}
.srch{display:flex;align-items:center;gap:8px;height:34px;width:360px;max-width:100%;border:1px solid var(--line);border-radius:8px;padding:0 10px;font-size:12.5px;color:var(--faint);background:var(--sub)}
.main main{max-width:none;margin:0;padding:20px 24px 28px}
.w90{width:90px}
.kpi .mbar b{background:var(--pos)}
.h150{height:150px}.h250{height:250px}
.board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:start}
.col{background:#efedea;border:1px solid var(--line);border-radius:10px;padding:8px;min-width:0}
.colh{display:flex;align-items:center;gap:8px;padding:4px 4px 8px}
.colh i{width:8px;height:8px;border-radius:2px;flex:none}
.colh b{font-size:13px}
.colh .c{font:600 11px "Inter",sans-serif;color:var(--mute);background:#fff;border:1px solid var(--line);border-radius:4px;padding:0 5px}
.colh .amt{margin-left:auto;font:600 11.5px "Inter",sans-serif;color:var(--ink2)}
.colt{font-size:11px;color:var(--mute);padding:0 4px 8px;display:flex;justify-content:space-between}
.colt .mbar{width:60px;height:4px;margin-top:6px}
.dc{background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 10px;margin-bottom:7px;box-shadow:var(--sh);display:grid;gap:5px}
.dc:hover{border-color:var(--line3)}
.dc .co{font-size:11.5px;color:var(--mute);display:flex;justify-content:space-between;gap:6px}
.dc b{font-size:13px;line-height:1.45}
.dc .row{display:flex;align-items:center;gap:8px;font-size:12px}
.dc .am{font:700 13px "Inter",sans-serif}
.dc .pr{font:600 11px "Inter",sans-serif;color:var(--mute)}
.dc .ft{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--mute);border-top:1px solid var(--line2);padding-top:6px}
.dc .ft .sp{flex:1}
.dc .nx{border:1px solid var(--line);background:#fff;border-radius:5px;height:22px;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex;align-items:center;gap:3px;color:var(--ink2)}
.dc .nx svg{width:12px;height:12px}
.dc .nx:hover{border-color:var(--ink2)}
.stale{color:var(--warn);font-weight:700;display:inline-flex;align-items:center;gap:3px}
.stale svg{width:12px;height:12px}
.dc.won{background:#f3faf5;border-color:#cfe8d7}
.dc.moved{animation:pop .5s ease-out}
@keyframes pop{from{box-shadow:0 0 0 2px var(--acc)}to{box-shadow:var(--sh)}}
.lg-won{--k:#15803d}.lg-wt{--k:#f4a3b4}.lg-tg{--k:#1c1917}
/* account */
.g-a{grid-template-columns:280px minmax(0,1fr) 280px;align-items:start}
.colM,.colR{display:grid;gap:12px;min-width:0}
.acc .ah{padding:16px 16px 12px;border-bottom:1px solid var(--line2)}
.acc .lg{width:44px;height:44px;border-radius:10px;background:var(--acc-bg);color:var(--acc-t);display:grid;place-items:center;margin-bottom:10px}
.acc .lg svg{width:22px;height:22px}
.acc h1{font-size:17px}
.acc .ah p{font-size:12.5px;color:var(--mute);margin-top:2px}
.acc dl{display:grid;grid-template-columns:84px 1fr;gap:7px 10px;margin:0;padding:12px 16px;font-size:12.5px}
.acc dt{color:var(--mute)}.acc dd{margin:0}
.acc .hs{margin:0 16px 14px;padding:10px 12px;border-radius:8px;background:var(--sub);border:1px solid var(--line2);font-size:12.5px}
.acc .hs b{display:flex;justify-content:space-between;font-size:12px;margin-bottom:6px}
.acc .hs .mbar{height:7px}.acc .hs .mbar b{background:var(--pos);display:block}
.acc .ac{display:flex;gap:6px;padding:0 16px 16px;flex-wrap:wrap}
.acc .tgs{display:flex;gap:6px;flex-wrap:wrap;padding:0 16px 14px}
.stg{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600}
.stg i{width:8px;height:8px;border-radius:2px}
.addl{display:flex;gap:8px;padding:12px 16px 4px}
.addl input{flex:1;min-width:0;height:32px;border:1px solid var(--line);border-radius:7px;padding:0 10px;font-size:13px;background:var(--sub)}
.tl{list-style:none;margin:0;padding:8px 16px 14px;position:relative}
.tl li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;padding:9px 0;position:relative}
.tl li::before{content:"";position:absolute;left:13px;top:36px;bottom:-9px;width:1px;background:var(--line)}
.tl li:last-child::before{display:none}
.tl .ic{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--chip);color:var(--ink2);z-index:1}
.tl .ic svg{width:14px;height:14px}
.tl .ic.meet{background:var(--acc-bg);color:var(--acc-t)}
.tl b{font-size:13px}
.tl p{font-size:12.5px;color:var(--ink2);margin-top:2px;line-height:1.6}
.tl .d{font:500 11.5px "Inter",sans-serif;color:var(--faint);white-space:nowrap}
.tl li.new .ic{background:var(--pos-bg);color:var(--pos)}
.ppl{list-style:none;margin:0;padding:8px 16px 12px}
.ppl li{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--line2);font-size:12.5px;align-items:center}
.ppl li:last-child{border-bottom:0}
.ppl b{display:block;font-size:13px}
.ppl span{color:var(--mute);font-size:11.5px}
.ppl .rl{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:700;color:var(--acc-t);background:var(--acc-bg);border-radius:3px;padding:0 4px}
/* forecast */
.g-f{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}
.fn{display:grid;grid-template-columns:96px 1fr 50px;gap:8px;align-items:center;font-size:12.5px;padding:5px 0}
.fn .bx{height:22px;background:var(--line2);border-radius:4px;position:relative;overflow:hidden}
.fn .bx b{position:absolute;left:0;top:0;bottom:0;border-radius:4px;display:flex;align-items:center;padding-left:8px;font:600 11px "Inter",sans-serif;color:#fff;white-space:nowrap}
.fn .r{font:700 12.5px "Inter",sans-serif;text-align:right}
.fn-n{font-size:11.5px;color:var(--mute);margin-top:6px}
.pb{display:flex;align-items:center;gap:8px}
.pb .mbar{width:120px;height:7px;position:relative;overflow:visible}
.pb .mbar b{background:var(--pos)}
.pb .mbar i{position:absolute;top:0;height:7px;background:#f4a3b4;border-radius:0 3px 3px 0}
.pb span{font:600 12px "Inter",sans-serif}
@media (max-width:1280px){.board{grid-template-columns:repeat(3,minmax(0,1fr))}.g-a{grid-template-columns:260px minmax(0,1fr)}.colR{grid-column:1/3;grid-template-columns:1fr 1fr}}
@media (max-width:1000px){.g-f{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
  .shell{grid-template-columns:minmax(0,1fr);background:none}
  .side{position:static;height:auto;padding:12px}
  .side .side-h,.side .today,.side-f{display:none}
  .brand{padding:0 2px 10px}
  .nav{grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto}
  .nav button{font-size:12.5px;padding:0 9px}
  .mh{padding:0 12px;height:50px}.mh .sub{display:none}
  .main main{padding:14px 12px 22px}
  .board{grid-template-columns:repeat(5,82%);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
  .col{scroll-snap-align:start}
  .g-a{grid-template-columns:minmax(0,1fr)}.colR{grid-column:auto;grid-template-columns:minmax(0,1fr)}
  .addl{padding:10px 12px 4px}.tl{padding:6px 12px 12px}
  .fn{grid-template-columns:80px 1fr 44px}
}
.ppl .av{color:#fff;font-size:11.5px}
.stale{white-space:nowrap}.dc .co>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

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