/* ============================================================
   GGPL Codex レポート共通デザインシステム
   - 全レポートページ(トップ/日次/週次/月次)で共有
   - Codexはこのファイルを変更しない
   ============================================================ */

:root{
  --ink:#171B20;
  --sub:#5C6672;
  --line:#E4E8ED;
  --bg:#FFFFFF;
  --bg-alt:#F6F8FA;

  --felt:#0E6B4A;
  --felt-soft:#E4F1EB;

  --ok:#0E6B4A;
  --bad:#B3372B;
  --watch:#9A6B10;
  --watch-soft:#FBF3E0;
  --bad-soft:#F9EAE8;
  --neutral:#5C6672;
  --neutral-soft:#EDF0F3;

  --bar-main:#0E6B4A;
  --bar-sub:#8FB8A6;
  --bar-comp:#B9C2CC;
  --seg-ring:#0E6B4A;
  --seg-tourney:#2E8FB0;
  --seg-service:#C9A227;
}

*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic Medium","Yu Gothic",Meiryo,system-ui,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.65;
  font-feature-settings:"palt";
}
.num{
  font-family:"Helvetica Neue",Arial,"Hiragino Sans",sans-serif;
  font-variant-numeric:tabular-nums;letter-spacing:-0.01em;
}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.wrap.narrow{max-width:860px}

/* ---------- ヘッダー / ナビ ---------- */
header{border-bottom:3px solid var(--felt);padding:24px 0 18px}
.brand{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 16px}
.brand h1{font-size:24px;font-weight:800;letter-spacing:.01em}
.brand .period{font-size:14px;color:var(--sub);font-weight:600}
.brand .updated{margin-left:auto;font-size:12px;color:var(--sub)}
.header-note{margin-top:8px;font-size:12.5px;color:var(--sub)}
.crumb{font-size:12px;font-weight:700;margin-bottom:6px}
.crumb a{color:var(--felt);text-decoration:none}
.crumb a:hover{text-decoration:underline}
.crumb span{color:var(--sub)}

/* ---------- セクション共通 ---------- */
section{padding:36px 0}
section.alt{background:var(--bg-alt)}
.sec-head{margin-bottom:20px}
.sec-eyebrow{display:inline-block;font-size:12px;font-weight:700;color:var(--felt);letter-spacing:.12em;margin-bottom:6px}
.sec-head h2{font-size:23px;font-weight:800;letter-spacing:.01em}
.sec-head .sec-desc{font-size:13.5px;color:var(--sub);margin-top:6px}

/* ---------- 信頼度バッジ ---------- */
.badge{
  display:inline-block;font-size:11.5px;font-weight:700;
  padding:2px 10px;border-radius:999px;white-space:nowrap;border:1.5px solid;
}
.badge.possible {color:var(--ok);border-color:var(--ok);background:var(--felt-soft)}
.badge.hypothesis{color:#2E5FB0;border-color:#2E5FB0;background:#E8EFFA}
.badge.verifying{color:var(--watch);border-color:var(--watch);background:var(--watch-soft)}
.badge.unknown  {color:var(--neutral);border-color:#AEB7C0;background:var(--neutral-soft)}
.badge.risk     {color:var(--bad);border-color:var(--bad);background:var(--bad-soft)}

/* ---------- 結論ボックス ---------- */
.summary-box{border:2px solid var(--felt);border-radius:14px;overflow:hidden}
.summary-verdict{background:var(--felt);color:#fff;padding:18px 24px}
.summary-verdict .label{font-size:12px;font-weight:700;letter-spacing:.14em;opacity:.85}
.summary-verdict p{font-size:18px;font-weight:700;line-height:1.55;margin-top:4px}
.summary-body{padding:20px 24px}
.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.summary-item .k{font-size:12.5px;font-weight:700;color:var(--sub);margin-bottom:4px}
.summary-item .v{font-size:14.5px;line-height:1.6}
.summary-caveat{margin-top:18px;padding-top:14px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--sub)}

/* ---------- データ同期/品質ストリップ ---------- */
.sync-strip{
  margin-top:14px;border:1px solid var(--line);border-left:4px solid var(--watch);
  border-radius:10px;background:var(--watch-soft);padding:14px 18px;
}
.sync-strip.ok{border-left-color:var(--ok);background:var(--felt-soft)}
.sync-strip h3{font-size:13px;font-weight:800;color:var(--watch);margin-bottom:8px}
.sync-strip.ok h3{color:var(--ok)}
.sync-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 18px}
.sync-item .sk{font-size:11.5px;font-weight:700;color:var(--sub)}
.sync-item .sv{font-size:13px;font-weight:700}
.sync-item .sn{font-size:11.5px;color:var(--sub)}

/* ---------- KPIカード ---------- */
.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.kpi{
  background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:16px 18px 14px;border-top:4px solid var(--felt);
}
.kpi.is-bad{border-top-color:var(--bad)}
.kpi.is-watch{border-top-color:var(--watch)}
.kpi .k-label{font-size:12.5px;font-weight:700;color:var(--sub)}
.kpi .k-value{font-size:32px;font-weight:800;line-height:1.2;margin:4px 0 2px}
.kpi .k-value small{font-size:15px;font-weight:700;color:var(--sub);margin-left:2px}
.kpi .k-delta{font-size:12.5px;font-weight:700}
.kpi .k-delta.up{color:var(--ok)}
.kpi .k-delta.down{color:var(--bad)}
.kpi .k-delta.flat{color:var(--neutral)}
.kpi .k-note{font-size:11.5px;color:var(--sub);margin-top:4px}

/* ---------- スコアボード(日次のコンパクト帯) ---------- */
.scoreboard{
  display:grid;grid-template-columns:repeat(6,1fr);
  border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;
}
.scoreboard .sb{padding:12px 14px;border-left:1px solid var(--line)}
.scoreboard .sb:first-child{border-left:none}
.scoreboard .sb .l{font-size:11px;font-weight:700;color:var(--sub)}
.scoreboard .sb .n{font-size:20px;font-weight:800;line-height:1.3}
.scoreboard .sb .n.down{color:var(--bad)}
.scoreboard .sb .n.up{color:var(--ok)}
.scoreboard .sb .s{font-size:10.5px;color:var(--sub)}

/* ---------- グラフ共通 ---------- */
.chart-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;overflow-x:auto}
.chart-title{font-size:15px;font-weight:800;margin-bottom:2px}
.chart-sub{font-size:12px;color:var(--sub);margin-bottom:16px}
.legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:14px}
.legend .li{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--sub);font-weight:600}
.legend .sw{width:12px;height:12px;border-radius:3px;flex:0 0 auto}
.chart-finding{
  margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);
  font-size:13px;line-height:1.6;display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap;
}
.chart-finding .badge{flex:0 0 auto;margin-top:1px}

/* ---------- 売上棒 + 目標折れ線(同一円スケール) ---------- */
.sales-goal-chart{min-width:max(760px,calc(var(--cols,7) * 86px))}
.sales-goal-chart.compact{min-width:max(620px,calc(var(--cols,7) * 82px))}
.sales-goal-plot{height:220px;position:relative;border-bottom:1px solid var(--line);background:linear-gradient(to top,transparent 24%,var(--neutral-soft) 25%,transparent 26%,transparent 49%,var(--neutral-soft) 50%,transparent 51%,transparent 74%,var(--neutral-soft) 75%,transparent 76%)}
.sales-goal-chart.compact .sales-goal-plot{height:170px}
.sales-goal-bars,.sales-goal-points,.sales-goal-labels{display:grid;grid-template-columns:repeat(var(--cols,7),minmax(0,1fr));gap:10px}
.sales-goal-bars,.sales-goal-points{position:absolute;inset:0}
.sales-goal-slot{position:relative;display:flex;align-items:flex-end;justify-content:center;min-width:0}
.actual-sales-bar{width:min(48px,58%);height:var(--v,0%);background:var(--bar-sub);border-radius:4px 4px 0 0;min-height:2px;position:relative;z-index:1}
.sales-goal-slot.achieved .actual-sales-bar{background:var(--bar-main)}
.sales-goal-slot.missing{margin:8px 4px;border:1px dashed var(--line);border-radius:6px;background:rgba(236,239,242,.45)}
.sales-goal-slot.missing .actual-sales-value{bottom:50%;transform:translate(-50%,50%);color:var(--sub)}
.actual-sales-value{position:absolute;left:50%;bottom:calc(var(--v,0%) + 5px);transform:translateX(-50%);font-size:10.5px;font-weight:800;white-space:nowrap;z-index:4}
.sales-goal-line{position:absolute;inset:0;width:100%;height:100%;z-index:2;overflow:visible;pointer-events:none}
.sales-goal-line polyline{fill:none;stroke:var(--bad);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.sales-goal-points{z-index:3;pointer-events:none}
.goal-point-slot{position:relative}
.goal-point{position:absolute;left:50%;bottom:var(--goal,0%);width:8px;height:8px;border:2px solid #fff;border-radius:50%;background:var(--bad);transform:translate(-50%,50%);box-shadow:0 0 0 1px var(--bad)}
.sales-goal-labels{margin-top:8px}
.sales-goal-label{text-align:center;min-width:0;line-height:1.25}
.sales-goal-label strong,.sales-goal-label span,.sales-goal-label small{display:block;white-space:nowrap}
.sales-goal-label strong{font-size:11px;color:var(--sub)}
.sales-goal-label span{font-size:11px;font-weight:800;margin-top:2px;color:var(--ok)}
.sales-goal-label.unmet span{color:var(--bad)}
.sales-goal-label.missing span{color:var(--sub)}
.sales-goal-label small{font-size:9.5px;color:var(--sub);margin-top:2px}
.sales-goal-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:11px;color:var(--sub);font-weight:700}
.sales-goal-legend span{display:flex;align-items:center;gap:6px}
.sales-goal-legend i{display:inline-block;flex:0 0 auto}
.sales-goal-legend .actual{width:12px;height:12px;border-radius:3px;background:var(--bar-main)}
.sales-goal-legend .target{width:18px;border-top:3px solid var(--bad)}

/* ---------- 横積み上げ ---------- */
.stackbar{display:flex;height:44px;border-radius:8px;overflow:hidden}
.stackbar .seg{
  width:var(--v,0%);display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:12.5px;font-weight:700;min-width:0;overflow:hidden;white-space:nowrap;
}
.seg.ring{background:var(--seg-ring)}
.seg.tourney{background:var(--seg-tourney)}
.seg.service{background:var(--seg-service)}
.stack-detail{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.stack-detail .cell{border-left:3px solid var(--line);padding-left:10px}
.stack-detail .cell.ring{border-color:var(--seg-ring)}
.stack-detail .cell.tourney{border-color:var(--seg-tourney)}
.stack-detail .cell.service{border-color:var(--seg-service)}
.stack-detail .t{font-size:12px;font-weight:700;color:var(--sub)}
.stack-detail .n{font-size:18px;font-weight:800}
.stack-detail .c{font-size:11.5px;color:var(--sub)}

/* ---------- グループ棒 ---------- */
.gchart{display:flex;align-items:flex-end;gap:14px;height:190px;padding-top:8px;min-width:max-content}
.ggroup{
  flex:0 0 66px;max-width:66px;display:flex;align-items:flex-end;justify-content:center;gap:6px;
  height:100%;position:relative;padding-bottom:24px;
}
.ggroup .glabel{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:11px;color:var(--sub);font-weight:600}
.gbar{width:24px;max-width:38%;display:flex;flex-direction:column;justify-content:flex-end;height:100%}
.gbar .fill{height:var(--v,0%);border-radius:3px 3px 0 0;min-height:2px}
.gbar.new .fill{background:var(--bar-main)}
.gbar.repeat .fill{background:var(--bar-comp)}
.gbar .n{text-align:center;font-size:11px;font-weight:800;margin-top:3px}

/* ---------- 横棒 ---------- */
.hchart{display:flex;flex-direction:column;gap:10px}
.hrow{display:grid;grid-template-columns:130px 1fr 44px;align-items:center;gap:10px}
.hrow .hl{font-size:12.5px;font-weight:700;color:var(--sub);text-align:right}
.hrow .track{background:var(--neutral-soft);border-radius:4px;height:18px;overflow:hidden}
.hrow .fill{width:var(--v,0%);height:100%;background:var(--bar-main);border-radius:4px}
.hrow.comp .fill{background:var(--bar-comp)}
.hrow.zero .hl,.hrow.zero .hv{color:var(--bad)}
.hrow .hv{font-size:13px;font-weight:800;text-align:right}

/* ---------- 対比 ---------- */
.duel-card{border:1px solid var(--line);border-radius:10px;padding:16px;background:#fff}
.duel-card+.duel-card{margin-top:14px}
.duel-card h4{font-size:13.5px;font-weight:800;margin-bottom:12px}
.duel-row{margin-bottom:12px}
.duel-row .dl{display:flex;justify-content:space-between;font-size:12px;font-weight:700;margin-bottom:3px}
.duel-row .dl .who{color:var(--sub)}
.duel-row .track{background:var(--neutral-soft);border-radius:4px;height:14px;overflow:hidden}
.duel-row .fill{width:var(--v,0%);height:100%;border-radius:4px}
.duel-row.mine .fill{background:var(--bar-main)}
.duel-row.theirs .fill{background:var(--bar-comp)}
.duel-note{font-size:12px;color:var(--sub);margin-top:6px;padding-top:10px;border-top:1px dashed var(--line);line-height:1.6}

/* ---------- テーブル ---------- */
.qtable{width:100%;border-collapse:collapse;margin-top:4px}
.qtable th,.qtable td{padding:9px 10px;font-size:12.5px;text-align:center;border-bottom:1px solid var(--line)}
.qtable th{font-size:11.5px;color:var(--sub);font-weight:700;background:var(--bg-alt)}
.qtable td:first-child,.qtable th:first-child{text-align:left}
.qtable .good{color:var(--ok);font-weight:800}
.qtable .none{color:var(--bad);font-weight:800}
.qtable .num-cell{text-align:right}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* ---------- 課題カード ---------- */
.issue-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.issue{
  background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;
  display:flex;flex-direction:column;gap:8px;
}
.issue.top{border:1.5px solid var(--bad)}
.issue .i-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.issue h3{font-size:15px;font-weight:800;line-height:1.5}
.issue .i-body{font-size:13.5px}
.issue .i-kpi{font-size:12px;color:var(--sub);border-top:1px dashed var(--line);padding-top:8px;margin-top:auto}
.issue .i-kpi b{color:var(--ink)}

/* ---------- アクションリスト ---------- */
.action-list{display:flex;flex-direction:column;gap:12px;counter-reset:act}
.action{
  background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:16px 18px;display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;
}
.action::before{
  counter-increment:act;content:counter(act);
  width:44px;height:44px;border-radius:10px;background:var(--felt);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;font-weight:800;font-family:"Helvetica Neue",Arial,sans-serif;
}
.action .a-title{font-size:15px;font-weight:800;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.action .a-why{font-size:13px;color:var(--sub);margin-top:3px}
.action .a-kpi{font-size:12px;color:var(--sub);margin-top:6px}
.action .a-kpi b{color:var(--ink)}

/* ---------- 明日やること(日次ヒーロー) ---------- */
.hero-action{
  border:2px solid var(--felt);border-radius:14px;overflow:hidden;background:#fff;
}
.hero-action .ha-head{
  background:var(--felt);color:#fff;padding:10px 20px;
  font-size:12px;font-weight:700;letter-spacing:.14em;
}
.hero-action .ha-body{padding:20px 22px}
.hero-action .ha-title{font-size:20px;font-weight:800;line-height:1.5}
.hero-action .ha-why{font-size:13.5px;color:var(--sub);margin-top:8px}
.hero-action .ha-meta{
  display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:12px;
  padding-top:12px;border-top:1px dashed var(--line);
  font-size:12.5px;color:var(--sub);
}
.hero-action .ha-meta b{color:var(--ink)}

/* ---------- 良かった/悪かった ---------- */
.gb-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gb{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.gb h3{font-size:13.5px;font-weight:800;margin-bottom:8px}
.gb.good h3{color:var(--ok)}
.gb.badp h3{color:var(--bad)}
.gb ul{list-style:none}
.gb li{font-size:13.5px;padding:5px 0 5px 16px;position:relative;line-height:1.6}
.gb li::before{content:"";position:absolute;left:2px;top:13px;width:6px;height:6px;border-radius:50%}
.gb.good li::before{background:var(--ok)}
.gb.badp li::before{background:var(--bad)}

/* ---------- 投稿案カード ---------- */
.post-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.post-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.post-card .p-head{
  padding:9px 16px;font-size:12px;font-weight:800;
  background:var(--felt-soft);color:var(--felt);
}
.post-card.staff .p-head{background:var(--neutral-soft);color:var(--sub)}
.post-card .p-body{
  padding:14px 16px;font-size:13.5px;line-height:1.75;white-space:pre-line;
}
.post-card .p-note{padding:0 16px 14px;font-size:11.5px;color:var(--sub)}

/* ---------- 継続/修正/廃止/保留ボード(週次) ---------- */
.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.kcol{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.kcol .k-head{padding:9px 14px;font-size:12.5px;font-weight:800;color:#fff;display:flex;justify-content:space-between;align-items:center}
.kcol .k-head .cnt{font-size:11px;opacity:.9}
.kcol.keep .k-head{background:var(--ok)}
.kcol.fix  .k-head{background:var(--watch)}
.kcol.kill .k-head{background:var(--bad)}
.kcol.hold .k-head{background:var(--neutral)}
.kcol .k-body{padding:10px 12px;display:flex;flex-direction:column;gap:8px;min-height:80px}
.kitem{border:1px solid var(--line);border-radius:8px;padding:9px 11px}
.kitem .kt{font-size:13px;font-weight:700;line-height:1.5}
.kitem .kr{font-size:11.5px;color:var(--sub);margin-top:2px}
.kempty{font-size:12px;color:var(--sub);text-align:center;padding:14px 0}

/* ---------- 検証トラッキング表(週次) ---------- */
.track-table{width:100%;border-collapse:collapse}
.track-table th,.track-table td{
  padding:10px;font-size:12.5px;border-bottom:1px solid var(--line);
  text-align:left;vertical-align:top;
}
.track-table th{font-size:11.5px;color:var(--sub);font-weight:700;background:var(--bg-alt)}
.track-table .tt-name{font-weight:800}
.track-table .num-cell{text-align:right;white-space:nowrap}

/* ---------- 対比カード(月次: イベント日vs通常日) ---------- */
.vs-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.vs-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.vs-card h4{font-size:13.5px;font-weight:800;margin-bottom:10px}
.vs-pair{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;text-align:center}
.vs-pair .side .vl{font-size:11.5px;font-weight:700;color:var(--sub)}
.vs-pair .side .vn{font-size:22px;font-weight:800}
.vs-pair .vsx{font-size:11px;font-weight:800;color:var(--sub)}
.vs-diff{text-align:center;font-size:12.5px;font-weight:800;margin-top:8px}
.vs-diff.up{color:var(--ok)}
.vs-diff.down{color:var(--bad)}
.vs-note{font-size:11.5px;color:var(--sub);margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);line-height:1.6}

/* ---------- 差分分解リスト(月次) ---------- */
.delta-list{display:flex;flex-direction:column;gap:8px}
.delta-row{display:grid;grid-template-columns:150px 1fr 90px;align-items:center;gap:10px}
.delta-row .dn{font-size:12.5px;font-weight:700;color:var(--sub);text-align:right}
.delta-row .dtrack{position:relative;height:16px;background:var(--neutral-soft);border-radius:4px;overflow:hidden}
.delta-row .dfill{
  position:absolute;top:0;bottom:0;left:0;
  width:var(--v,0%);
  border-radius:0 4px 4px 0;background:var(--ok);
}
.delta-row.minus .dfill{left:0;right:auto;border-radius:0 4px 4px 0;background:var(--bad)}
.delta-row .dv{font-size:13px;font-weight:800;text-align:right;white-space:nowrap}
.delta-row.minus .dv{color:var(--bad)}
.delta-row.plus .dv{color:var(--ok)}
.delta-center{position:relative}
.delta-center::before{display:none}

/* ---------- レポートリンク ---------- */
.link-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.rlink{
  display:block;text-decoration:none;color:var(--ink);
  background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:16px 18px;transition:border-color .15s, box-shadow .15s;
}
.rlink:hover{border-color:var(--felt);box-shadow:0 2px 10px rgba(14,107,74,.10)}
.rlink .r-freq{font-size:11px;font-weight:700;color:var(--felt);letter-spacing:.08em}
.rlink .r-title{font-size:14.5px;font-weight:800;margin:3px 0 4px}
.rlink .r-desc{font-size:12px;color:var(--sub);line-height:1.5}
.rlink .r-go{font-size:12px;font-weight:700;color:var(--felt);margin-top:8px;display:inline-block}

footer{border-top:1px solid var(--line);padding:26px 0 40px;font-size:12px;color:var(--sub)}
footer p+p{margin-top:6px}

/* ============================================================
   レスポンシブ
   ============================================================ */
@media (max-width:760px){
  .brand h1{font-size:20px}
  .brand .updated{margin-left:0;width:100%}
  section{padding:28px 0}
  .sec-head h2{font-size:19px}
  .summary-verdict p{font-size:16px}
  .summary-grid,.sync-grid{grid-template-columns:1fr;gap:12px}
  .kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .kpi .k-value{font-size:26px}
  .scoreboard{grid-template-columns:repeat(3,1fr)}
  .scoreboard .sb:nth-child(4){border-left:none}
  .scoreboard .sb:nth-child(n+4){border-top:1px solid var(--line)}
  .two-col,.gb-grid,.post-grid,.vs-grid,.issue-grid,.link-grid{grid-template-columns:1fr}
  .kanban{grid-template-columns:repeat(2,1fr)}
  .stack-detail{grid-template-columns:1fr;gap:8px}
  .vchart{height:180px}
  .hrow{grid-template-columns:96px 1fr 36px}
  .hrow .hl{font-size:11px}
  .qtable th,.qtable td{padding:7px 6px;font-size:11.5px}
  .track-table{display:block;overflow-x:auto;white-space:nowrap}
  .delta-row{grid-template-columns:96px 1fr 76px}
  .delta-row .dn{font-size:11px}
}
