  .ga{
    --ground:#FAF8F7;--panel:#FFFFFF;--ink:#332E2E;--ink2:#3C3838;--muted:#8A7C7C;
    --line:#E4DAD6;--rose:#C2706B;--rose-d:#A4554F;--teal:#2C6E73;--xcol:#2F6FB0;--ycol:#3E7C5A;
    --good-bg:#E8F1EA;--good:#3E7C5A;--warn:#9C6A16;--warn-bg:#F7EEDC;
    --mono:ui-monospace,"SF Mono",Consolas,Menlo,monospace;
    --sans:system-ui,-apple-system,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic UI",Meiryo,sans-serif;
    font-family:var(--sans);color:var(--ink);background:var(--ground);line-height:1.55;
    max-width:1320px;margin:0 auto;padding:16px 18px 24px;-webkit-font-smoothing:antialiased;
  }
  .ga *{box-sizing:border-box;}
  .ga-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--rose-d);font-weight:600;margin:0 0 6px;}
  .ga-h1{font-size:18px;font-weight:700;letter-spacing:-.01em;margin:0 0 2px;color:var(--ink2);}
  .ga-sub{font-size:13px;color:var(--muted);margin:0;}
  .ga-sub code{font-family:var(--mono);font-size:12px;background:#F1E9E6;padding:1px 6px;border-radius:4px;color:var(--ink2);}

  /* steps nav（縦並びレール） */
  .ga-steps{display:flex;flex-direction:column;gap:7px;margin:0;position:sticky;top:8px;}
  .ga-step{display:flex;gap:8px;align-items:center;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer;transition:.15s;}
  .ga-step:hover{border-color:var(--rose);}
  .ga-step[aria-current="true"]{border-color:var(--rose);background:#FBF1EF;box-shadow:0 1px 0 var(--rose) inset;}
  .ga-step .n{width:26px;height:26px;border-radius:50%;background:#EFE3DF;color:var(--rose-d);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
  .ga-step[aria-current="true"] .n{background:var(--rose);color:#fff;}
  .ga-step .t{font-size:12px;font-weight:600;color:var(--ink2);line-height:1.25;}
  .ga-step .t small{display:block;font-size:10px;font-weight:400;color:var(--muted);}

  .ga-grid{display:grid;grid-template-columns:380px 1fr;gap:16px;align-items:start;margin-top:10px;}
  @media(max-width:980px){.ga-grid{grid-template-columns:1fr;}}
  .ga-card{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:15px;margin-bottom:14px;}
  .ga-card h3{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 11px;font-weight:600;display:flex;align-items:center;gap:7px;}
  .ga-card h3 .sw{width:11px;height:11px;border-radius:3px;}
  .ga-hide{display:none;}

  .ga-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px;font-size:13px;}
  .ga-row label{color:var(--ink2);} .ga-row label small{color:var(--muted);font-size:11.5px;}
  .ga-row input[type=number],.ga-row input[type=text]{font:inherit;font-family:var(--mono);font-size:13px;width:88px;text-align:right;padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:#FCFAF9;font-variant-numeric:tabular-nums;}
  .ga-row input:focus-visible{outline:2px solid var(--rose);outline-offset:1px;border-color:var(--rose);}
  .ga-2{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .ga-toggle{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--muted);}
  select.ga-sel{font:inherit;font-size:13px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:#FCFAF9;}
  .ga-btn{font:inherit;font-size:13px;cursor:pointer;border:1px solid var(--rose);background:var(--rose);color:#fff;padding:8px 12px;border-radius:7px;width:100%;margin-top:6px;}
  .ga-btn.sec{background:#fff;color:var(--rose-d);}
  .ga-btn.nav{background:var(--ink2);border-color:var(--ink2);}
  .ga-btn:hover{filter:brightness(1.06);}
  .ga-hint{font-size:11.5px;color:var(--muted);margin:8px 0 0;}
  .ga-modebar{display:flex;gap:6px;margin:4px 0 8px;}
  .ga-modebar button{flex:1;font:inherit;font-size:12.5px;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink2);padding:6px 4px;border-radius:7px;}
  .ga-modebar button[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:#fff;}

  .ga-logic{background:#F4EEEC;border-radius:7px;padding:10px;font-size:12px;color:var(--ink2);margin-top:9px;line-height:1.5;}
  .ga-logic b{color:var(--rose-d);} .ga-logic code{font-family:var(--mono);font-size:11.5px;}
  .ga-eq{font-family:var(--mono);font-size:15px;font-weight:700;color:var(--rose-d);background:#FBF1EF;border:1px solid var(--rose);border-radius:8px;padding:11px 12px;margin:8px 0;word-break:break-all;line-height:1.55;}
  .ga-stepbar{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
  .ga-stepbar label{font-size:12px;color:var(--muted);font-weight:600;}
  .ga-stepbar select{flex:1;font:inherit;font-size:14px;font-weight:700;padding:8px 9px;border:1.5px solid var(--rose);border-radius:8px;background:#FBF1EF;color:var(--ink2);}
  .ga-stepbar select option:disabled{color:#c2b8b4;}
  .ga-stephint{font-size:12px;color:var(--muted);margin:0 0 10px;line-height:1.5;}
  .ga-req{font-size:12px;color:#C2333A;font-weight:700;margin:4px 0 0;}
  .ga-details{font-size:12px;margin:8px 0;border:1px solid var(--line);border-radius:8px;background:#FCFAF9;}
  .ga-details summary{cursor:pointer;padding:7px 10px;font-weight:600;color:var(--rose-d);}
  .ga-mlist{margin:0;padding:2px 12px 10px 22px;color:var(--ink2);line-height:1.6;}
  .ga-mlist li{margin-bottom:6px;}
  .ga-ptable{border-collapse:collapse;width:100%;font-size:12px;margin:6px 0 2px;}
  .ga-ptable th,.ga-ptable td{border-bottom:1px solid var(--line);padding:3px 5px;text-align:center;vertical-align:middle;}
  .ga-ptable th{font-size:10.5px;color:var(--muted);text-transform:uppercase;}
  .ga-ptable input{width:64px;font:inherit;font-family:var(--mono);font-size:11.5px;text-align:right;padding:3px 5px;border:1px solid var(--line);border-radius:5px;background:#FCFAF9;}
  .ga-ptable input:disabled{background:#F0E9E7;color:var(--muted);}
  .ga-ptable .endtag{font-size:9px;color:var(--muted);}
  .ga-modetabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;}
  .ga-modetabs button{font:inherit;text-align:left;cursor:pointer;border:1.5px solid var(--line);border-radius:10px;background:#fff;padding:10px 11px;color:var(--ink2);transition:.15s;}
  .ga-modetabs button b{display:block;font-size:13.5px;}
  .ga-modetabs button small{display:block;font-size:10.5px;color:var(--muted);font-weight:400;margin-top:2px;}
  .ga-modetabs button[aria-pressed="true"]{border-color:var(--rose);background:#FBF1EF;box-shadow:0 1px 0 var(--rose) inset;}
  .ga-substeps{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap;}
  .ga-substeps button{font:inherit;font-size:11.5px;cursor:pointer;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink2);padding:4px 11px;}
  .ga-substeps button[aria-current="true"]{background:var(--ink2);border-color:var(--ink2);color:#fff;}
  .ga-substeps button:disabled{color:#c2b8b4;cursor:not-allowed;}

  .ga-out .big{font-family:var(--mono);font-size:23px;font-weight:700;color:var(--rose-d);font-variant-numeric:tabular-nums;}
  .ga-out .big span{font-size:13px;color:var(--muted);} .ga-out .meta{font-size:12px;color:var(--ink2);font-family:var(--mono);margin-top:3px;}

  .ga-stage{border:1px solid var(--line);border-radius:11px;padding:10px;background:#fff;}
  .ga-viewport{overflow:auto;max-height:72vh;border-radius:5px;overscroll-behavior:contain;}
  .ga-canvas{position:relative;width:fit-content;max-width:100%;margin:0 auto;line-height:0;}
  .ga-canvas img{display:block;width:auto;height:auto;max-height:66vh;max-width:100%;border-radius:5px;user-select:none;-webkit-user-drag:none;}
  .ga-canvas svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none;}
  .ga-legend{display:flex;flex-wrap:wrap;gap:13px;font-size:11.5px;color:var(--muted);margin-top:8px;padding:0 4px;}
  .ga-legend span{display:inline-flex;align-items:center;gap:5px;} .ga-legend i{width:15px;height:3px;border-radius:2px;display:inline-block;} .ga-legend i.dot{width:9px;height:9px;border-radius:50%;}
  .ga-banner{font-size:12.5px;padding:8px 11px;border-radius:8px;margin-bottom:10px;background:#FBF1EF;border:1px solid #EBD3CE;color:var(--ink2);}
  .ga-banner b{color:var(--rose-d);}
  .ga-dispbar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;padding:9px 11px;background:#FBF6F4;border:1px solid var(--line);border-radius:8px;margin-bottom:10px;font-size:12.5px;color:var(--muted);}
  .ga-dispbar .grp{display:flex;align-items:center;gap:6px;}
  .ga-dispbar input[type=range]{width:84px;accent-color:var(--rose);}
  .ga-dispbar .seg{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;}
  .ga-dispbar .seg button{font:inherit;font-size:12.5px;border:none;background:#fff;color:var(--ink2);padding:5px 11px;cursor:pointer;}
  .ga-dispbar .seg button[aria-pressed="true"]{background:var(--rose);color:#fff;}
  .ga-dispbar .zbtn{font:inherit;font-size:13px;line-height:1;border:1px solid var(--line);background:#fff;color:var(--ink2);border-radius:6px;padding:3px 9px;cursor:pointer;}
  .ga-dispbar .zbtn:hover{border-color:var(--rose);color:var(--rose-d);}
  .ga-dispbar .zval{font-family:var(--mono);font-size:11.5px;color:var(--ink2);min-width:42px;text-align:right;font-variant-numeric:tabular-nums;}
  .ga-coord{font-family:var(--mono);font-size:11.5px;color:var(--ink2);background:#fff;border:1px solid var(--line);border-radius:6px;padding:3px 9px;margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap;}
  .ga-imgfix{border:1px solid var(--line);border-radius:9px;padding:10px 11px;margin-bottom:11px;background:#FCFAF9;}
  .ga-imgfix .lab{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--warn);font-weight:600;margin:0 0 8px;display:flex;align-items:center;gap:6px;}
  .ga-imgfix .lab .sw{width:11px;height:11px;border-radius:3px;background:var(--warn);}
  .ga-imgfix input[type=range]{width:100%;accent-color:var(--rose);margin:2px 0 6px;}
  .ga-filelab{display:block;text-align:center;font-size:12.5px;cursor:pointer;border:1px dashed var(--rose);color:var(--rose-d);background:#fff;padding:7px 10px;border-radius:7px;margin-bottom:9px;}
  .ga-filelab:hover{background:#FBF1EF;}
  .ga-views{display:grid;grid-template-columns:1fr;gap:12px;}
  .ga-views.side{grid-template-columns:1fr 1fr;}
  @media(max-width:680px){.ga-views.side{grid-template-columns:1fr;}}
  .ga-viewcap{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:0 0 5px;}
  .ga-recon{width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:5px;background:#fff;}
  .ga-clist{display:flex;flex-direction:column;gap:5px;margin-bottom:6px;}
  .ga-citem{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;cursor:pointer;font-size:13px;background:#fff;}
  .ga-citem:hover{border-color:var(--teal);}
  .ga-citem[aria-selected="true"]{background:#EBF2F0;border-color:var(--teal);box-shadow:0 0 0 1px var(--teal) inset;}
  .ga-citem .sw{width:14px;height:14px;border-radius:3px;flex:0 0 auto;border:1px solid #0002;}
  .ga-citem .pk{font-family:var(--mono);font-weight:600;color:var(--ink2);flex:0 0 50px;}
  .ga-citem .st{font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:999px;}
  .ga-citem .st.ok{background:var(--good-bg);color:var(--good);} .ga-citem .st.no{background:#F0E9E7;color:var(--muted);}
  .ga-citem .pc{font-size:11px;color:var(--muted);margin-left:auto;font-family:var(--mono);}
  .ga-prog{font-size:12px;color:var(--muted);margin:0 0 9px;font-weight:600;}
  input[type=color]{width:42px;height:26px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:1px;cursor:pointer;}

  .ga-table{border-collapse:collapse;width:100%;font-size:12px;}
  .ga-table caption{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:7px;}
  .ga-table th,.ga-table td{padding:6px 9px;text-align:left;border-bottom:1px solid var(--line);}
  .ga-table th{font-size:10.5px;text-transform:uppercase;color:var(--muted);font-weight:600;}
  .ga-table td{font-family:var(--mono);font-size:11.5px;color:var(--ink2);}
  .ga-empty{font-size:12px;color:var(--muted);padding:8px 2px;}

/* ===== Cloudflare 公開版の追加スタイル ===== */
body{margin:0;padding:0;background:#FAF8F7;}
.ga{position:relative;}
.ga-help{position:absolute;top:12px;right:18px;font:inherit;font-size:12.5px;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--rose-d);padding:6px 12px;border-radius:999px;font-weight:600;}
.ga-help:hover{border-color:var(--rose);background:#FBF1EF;}
.ga-foot{max-width:1320px;margin:6px auto 0;padding:14px 18px 26px;font-size:11.5px;color:#8A7C7C;line-height:1.7;border-top:1px solid #E4DAD6;font-family:system-ui,-apple-system,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic UI",Meiryo,sans-serif;}

/* オンボーディング */
.ob{position:fixed;inset:0;background:rgba(51,46,46,.55);display:flex;align-items:center;justify-content:center;z-index:50;padding:18px;font-family:system-ui,-apple-system,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic UI",Meiryo,sans-serif;}
.ob.ga-hide{display:none;}
.ob-card{background:#fff;border-radius:14px;max-width:560px;width:100%;padding:26px 28px 20px;box-shadow:0 18px 50px rgba(51,46,46,.35);color:#332E2E;line-height:1.6;max-height:90vh;overflow:auto;}
.ob-eyebrow{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:#A4554F;font-weight:600;margin:0 0 6px;}
.ob-card h2{font-size:20px;margin:0 0 8px;color:#3C3838;text-wrap:balance;}
.ob-lead{font-size:13.5px;margin:0 0 14px;color:#332E2E;}
.ob-steps{display:flex;flex-direction:column;gap:9px;margin:0 0 16px;}
.ob-step{display:flex;gap:11px;align-items:flex-start;border:1px solid #E4DAD6;border-radius:10px;padding:10px 12px;background:#FCFAF9;}
.ob-step .n{width:26px;height:26px;border-radius:50%;background:#C2706B;color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;margin-top:1px;}
.ob-step b{font-size:13.5px;display:block;color:#3C3838;}
.ob-step small{font-size:12px;color:#8A7C7C;display:block;margin-top:1px;}
.ob-btns{display:flex;flex-direction:column;gap:8px;}
.ob-btns .ga-btn{margin-top:0;}
.ob-note{font-size:11.5px;color:#8A7C7C;margin:12px 0 0;text-align:center;}
@media (prefers-reduced-motion: no-preference){.ob-card{animation:ob-in .25s ease-out;}@keyframes ob-in{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}}

/* ===== 1画面フィットレイアウト（デスクトップ） ===== */
@media (min-width: 981px){
  html,body{height:100%;overflow:hidden;}
  .ga{height:100vh;box-sizing:border-box;display:flex;flex-direction:column;max-width:none;padding:10px 18px 12px;}
  .ga-eyebrow{margin-bottom:2px;font-size:11px;}
  .ga-h1{font-size:16px;}
  .ga-sub{font-size:12px;}
  .ga-grid{flex:1;min-height:0;margin-top:8px;grid-template-columns:360px 1fr;}
  .ga-grid>div:first-child{overflow-y:auto;min-height:0;padding-right:6px;}
  .ga-grid>div:last-child{display:flex;flex-direction:column;min-height:0;overflow-y:auto;}
  .ga-stage{display:flex;flex-direction:column;flex:1;min-height:0;}
  .ga-views{flex:1;min-height:0;overflow:hidden;}
  .ga-views>div{min-height:0;display:flex;flex-direction:column;}
  .ga-viewport{flex:1;min-height:0;max-height:none;}
  .ga-canvas img{max-height:none;}
  .ga-foot{display:none;}
}
@media (max-width: 680px){
  .ga-help{position:static;display:inline-block;margin:0 0 8px;}
}
.ga-mocknote{color:var(--muted);font-size:11px;margin-left:8px;white-space:nowrap;}
.ga-logdetails summary{cursor:pointer;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.ga-logdetails[open] summary{margin-bottom:7px;}
