@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;700;900&family=Noto+Serif+JP:wght@700;900&display=swap');
  *{margin:0;padding:0;box-sizing:border-box}

  :root{
    --ink:#1a1a1a;--sub:#444;--mute:#666;--line:#d4d4d4;--bg:#fafaf8;--card:#fff;
    --acc1:#2244cc;--acc2:#cc3344;--acc3:#118844;--acc4:#8844bb;--acc5:#cc7700;
    --acc6:#0088aa;--acc7:#aa4488;
  }

  body{font-family:'Noto Sans JP',sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}

  /* ナビ */
  nav{position:sticky;top:0;z-index:200;background:#fff;border-bottom:2px solid var(--ink);display:flex;align-items:stretch}
  nav button{padding:14px 28px;font:700 13px/1 'Noto Sans JP',sans-serif;color:var(--sub);background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;letter-spacing:.5px;transition:color .15s}
  nav button:hover{color:var(--ink)}
  nav button.on{color:var(--ink);border-bottom-color:var(--ink)}
  nav .nav-r{margin-left:auto;padding:14px 24px;font-size:11px;color:var(--mute);display:flex;align-items:center;gap:12px}

  .wrap{max-width:1440px;margin:0 auto;padding:32px 40px}
  .view{display:none}.view.on{display:block}

  /* マストヘッド */
  .mast{text-align:center;padding:48px 0 36px;border-bottom:1px solid var(--line);margin-bottom:36px}
  .mast-eyebrow{font:700 11px/1 'Noto Sans JP';letter-spacing:4px;color:var(--mute);text-transform:uppercase;margin-bottom:12px}
  .mast h1{font:900 38px/1.2 'Noto Serif JP',serif;color:var(--ink);letter-spacing:1px}
  .mast .deck{font:300 15px/1.6 'Noto Sans JP';color:var(--sub);margin-top:12px;max-width:700px;margin-left:auto;margin-right:auto}
  .mast .meta{font-size:11px;color:var(--mute);margin-top:16px;display:flex;justify-content:center;gap:24px}
  .mast .meta span{display:flex;align-items:center;gap:4px}

  /* KPI帯 */
  .kpi{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:0;margin-bottom:36px}
  .kpi-item{background:var(--card);padding:20px 16px;text-align:center}
  .kpi-num{font:900 26px/1 'Noto Serif JP';color:var(--ink)}
  .kpi-label{font-size:11px;color:var(--mute);margin-top:4px;letter-spacing:.5px}

  /* 業態セクション */
  .sector{margin-bottom:40px}
  .sector-head{display:flex;align-items:baseline;gap:12px;border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:16px}
  .sector-num{font:900 28px/1 'Noto Serif JP';color:var(--acc1)}
  .sector-title{font:900 20px/1.2 'Noto Sans JP';color:var(--ink)}
  .sector-sub{font:400 13px/1 'Noto Sans JP';color:var(--sub);margin-left:auto}
  .sector-desc{font:300 13px/1.7 'Noto Sans JP';color:var(--sub);margin-bottom:16px;max-width:900px}

  .sector.s2 .sector-num{color:var(--acc2)}
  .sector.s3 .sector-num{color:var(--acc3)}
  .sector.s4 .sector-num{color:var(--acc4)}
  .sector.s5 .sector-num{color:var(--acc5)}
  .sector.s6 .sector-num{color:var(--acc6)}
  .sector.s7 .sector-num{color:var(--acc7)}

  /* サービスグリッド */
  .svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
  .svc{padding:10px 14px;background:var(--card);border:1px solid var(--line);cursor:pointer;transition:all .15s;position:relative}
  .svc:hover{border-color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.08)}
  .svc-name{font:700 13px/1.3 'Noto Sans JP';color:var(--ink)}
  .svc-price{font:400 12px/1 'Noto Sans JP';color:var(--sub);margin-top:3px}
  .svc-arrow{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--mute);opacity:0;transition:opacity .15s}
  .svc:hover .svc-arrow{opacity:1}
  .svc.featured{border-left:3px solid var(--ink)}

  /* カテゴリ内ラベル */
  .sub-label{font:700 12px/1 'Noto Sans JP';color:var(--sub);letter-spacing:1px;text-transform:uppercase;margin:16px 0 8px;padding-top:8px;border-top:1px solid #ddd}
  .sub-label:first-of-type{border-top:none;margin-top:0;padding-top:0}

  /* サマリ・動向 */
  .article{max-width:900px}
  .article h2{font:900 24px/1.3 'Noto Serif JP';color:var(--ink);margin:36px 0 16px;padding-bottom:8px;border-bottom:1px solid var(--line)}
  .article h3{font:900 16px/1.3 'Noto Sans JP';color:var(--ink);margin:24px 0 8px}
  .article p{font:400 14px/1.9 'Noto Sans JP';color:#333;margin-bottom:14px}
  .article strong{font-weight:900;color:var(--ink)}
  .article .num-hl{font:900 22px/1 'Noto Serif JP';color:var(--acc1)}
  .article table{width:100%;border-collapse:collapse;margin:16px 0 24px;font-size:13px}
  .article th{text-align:left;padding:10px 12px;border-bottom:2px solid var(--ink);font-weight:900;color:var(--ink);font-size:12px;letter-spacing:.5px}
  .article td{padding:10px 12px;border-bottom:1px solid var(--line);color:#333}
  .article td.n{font:900 15px/1 'Noto Serif JP'}
  .article td.g{color:var(--acc3)}.article td.r{color:var(--acc2)}.article td.b{color:var(--acc1)}.article td.o{color:var(--acc5)}.article td.p{color:var(--acc4)}

  .timeline{border-left:2px solid var(--line);padding-left:20px;margin:16px 0 24px}
  .tl-item{position:relative;margin-bottom:16px}
  .tl-item::before{content:'';position:absolute;left:-26px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--card);border:2px solid var(--acc1)}
  .tl-item.done::before{background:var(--acc3);border-color:var(--acc3)}
  .tl-item.warn::before{background:var(--acc5);border-color:var(--acc5)}
  .tl-date{font:700 12px/1 'Noto Sans JP';color:var(--acc1);margin-bottom:2px}
  .tl-item.done .tl-date{color:var(--acc3)}
  .tl-item.warn .tl-date{color:var(--acc5)}
  .tl-text{font:400 13px/1.6 'Noto Sans JP';color:#444}

  .pred{background:var(--card);border:1px solid var(--line);padding:16px;margin-bottom:12px}
  .pred-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
  .pred-prob{font:700 11px/1 'Noto Sans JP';padding:2px 8px}
  .pred-prob.hi{background:#e8f5e9;color:var(--acc3)}
  .pred-prob.mi{background:#fff3e0;color:var(--acc5)}
  .pred-prob.lo{background:#fce4ec;color:var(--acc2)}
  .pred-title{font:900 14px/1.3 'Noto Sans JP'}
  .pred-body{font:400 13px/1.7 'Noto Sans JP';color:var(--sub)}

  /* パネル */
  .panel-bg{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.3);z-index:500}
  .panel-bg.on{display:block}
  .panel{position:fixed;top:0;right:-540px;width:540px;height:100vh;background:#fff;border-left:2px solid var(--ink);overflow-y:auto;transition:right .25s;z-index:600}
  .panel.on{right:0}
  .panel-hd{padding:24px 28px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;position:sticky;top:0;background:#fff;z-index:1}
  .panel-hd h2{font:900 20px/1.2 'Noto Serif JP';flex:1}
  .panel-x{width:32px;height:32px;border:1px solid var(--line);background:none;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;color:var(--sub)}
  .panel-x:hover{background:#f0f0f0}
  .panel-bd{padding:20px 28px 36px}
  .panel-desc{font:300 14px/1.7 'Noto Sans JP';color:var(--sub);margin-bottom:20px}
  .p-sec{margin-bottom:24px}
  .p-sec h3{font:700 11px/1 'Noto Sans JP';color:var(--mute);letter-spacing:2px;text-transform:uppercase;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--line)}
  .sg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .si{border:1px solid var(--line);padding:12px}
  .si .lb{font-size:10px;color:var(--mute);letter-spacing:.5px}
  .si .vl{font:900 15px/1.3 'Noto Sans JP';color:var(--ink);margin-top:3px}
  .si .vl.g{color:var(--acc3)}.si .vl.b{color:var(--acc1)}.si .vl.p{color:var(--acc4)}.si .vl.r{color:var(--acc2)}
  .si.f{grid-column:1/-1}
  .rl{list-style:none}
  .rl li{padding:10px 0;border-bottom:1px solid #eee;font-size:13px;display:flex;align-items:center;gap:8px}
  .rl li:last-child{border:none}
  .rd{width:8px;height:8px;flex-shrink:0}
  .rd.inv{background:var(--acc3)}.rd.part{background:var(--acc1)}.rd.comp{background:var(--acc2)}.rd.acq{background:var(--acc4)}.rd.other{background:var(--mute)}
  .btn-e{display:inline-flex;padding:8px 16px;font:700 12px/1 'Noto Sans JP';text-decoration:none;color:var(--ink);border:1px solid var(--ink);margin:0 6px 6px 0;transition:all .15s}
  .btn-e:hover{background:var(--ink);color:#fff}
  .diff-bar{display:flex;gap:3px;margin-top:4px}
  .diff-bar span{width:24px;height:6px;background:#eee}
  .diff-bar span.on{background:var(--acc5)}
  .diff-bar span.on.hi{background:var(--acc2)}

  .source-box{margin-top:24px;padding:16px 20px;border:1px solid var(--line);font:400 11px/1.8 'Noto Sans JP';color:var(--mute)}
  .source-box strong{color:var(--sub)}

  .footer{text-align:center;padding:24px;font-size:11px;color:var(--mute);border-top:2px solid var(--ink);margin-top:40px}

  /* 異業種ナビ */
  .industry-nav{margin:40px 0 0;padding:32px 0;border-top:2px solid var(--ink)}
  .industry-nav h2{font:900 20px/1.2 'Noto Serif JP';margin-bottom:6px}
  .industry-nav .in-sub{font:400 13px/1.6 'Noto Sans JP';color:var(--sub);margin-bottom:16px}
  .ind-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
  .ind-card{display:flex;align-items:center;gap:10px;padding:12px 16px;border:1px solid var(--line);background:var(--card);text-decoration:none;color:var(--ink);transition:all .15s}
  .ind-card:hover{border-color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.06)}
  .ind-card.current{border-left:4px solid var(--ink);background:#f0f0ee;pointer-events:none}
  .ind-card .ind-num{font:900 11px/1 'Noto Sans JP';color:var(--mute);min-width:20px}
  .ind-card .ind-name{font:700 13px/1.3 'Noto Sans JP'}
  .ind-card .ind-status{font:400 10px/1 'Noto Sans JP';color:var(--mute);margin-left:auto;white-space:nowrap}
  .ind-card .ind-status.live{color:var(--acc3);font-weight:700}
  .ind-card .ind-status.soon{color:var(--acc5)}

  /* モバイル対応 */
  @media(max-width:768px){
    header{flex-wrap:wrap;padding:8px 12px!important;gap:8px!important}
    header>div:nth-child(2){margin-left:0!important;width:100%}
    header select{font-size:12px!important;padding:6px 8px!important}
    header>div:last-child{display:none}
    nav{overflow-x:auto;-webkit-overflow-scrolling:touch}
    nav button{padding:10px 14px;font-size:11px;white-space:nowrap}
    .wrap{padding:16px 12px}
    .mast{padding:24px 0 20px}
    .mast h1{font-size:22px}
    .mast .deck{font-size:13px}
    .kpi{grid-template-columns:repeat(3,1fr)}
    .kpi-num{font-size:18px}
    .kpi-label{font-size:9px}
    .sector-head{flex-wrap:wrap;gap:6px}
    .sector-num{font-size:20px}
    .sector-title{font-size:16px}
    .sector-sub{margin-left:0;width:100%;font-size:11px}
    .svc-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px}
    .svc{padding:8px 10px}
    .svc-name{font-size:12px}
    .svc-price{font-size:10px}
    .panel{width:100vw;right:-100vw}
    .panel.on{right:0}
    .panel-hd{padding:14px 16px}
    .panel-hd h2{font-size:16px}
    .panel-bd{padding:14px 16px}
    .sg{grid-template-columns:1fr 1fr;gap:6px}
    .si{padding:8px}
    .si .vl{font-size:13px}
    .article h2{font-size:18px;margin:24px 0 10px}
    .article p{font-size:13px}
    .article table{font-size:11px;display:block;overflow-x:auto}
    .ind-grid{grid-template-columns:1fr}
  }