:root{--canvas:#f8fafc;--ink:#0f172a;--sub:#475569;--faint:#64748b;--navy:#1e293b;--accent:#0284c7;--hair:1px solid rgba(15,23,42,.08);--hair2:1px solid rgba(15,23,42,.14);--plate:#f1f5f9;--r:4px;--r2:2px;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--good:#0f766e;--warn:#b45309}
*{box-sizing:border-box}
html,body{margin:0;background:var(--canvas);color:var(--ink);font-family:Inter,"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;line-height:1.7}
button,input,select{font:inherit}
.top{background:#fff;border-bottom:var(--hair);position:sticky;top:0;z-index:10}
.top-in{max-width:1180px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.logo{text-decoration:none;color:var(--navy);display:flex;align-items:baseline;gap:8px}.logo b{font-size:1.1rem;letter-spacing:-.01em}.logo span{font-size:.8rem;color:var(--faint)}
.badge{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;color:var(--warn);border:1px solid #fcd34d;background:#fffbeb;border-radius:var(--r2);padding:2px 8px}
.tabs{margin-left:auto;display:flex;gap:4px}
.tab{border:var(--hair2);background:#fff;color:var(--sub);padding:6px 14px;border-radius:var(--r2);cursor:pointer}
.tab[aria-selected=true]{background:var(--navy);color:#fff;border-color:var(--navy)}
.wrap{max-width:1180px;margin:0 auto;padding:14px 16px 60px}
.lead{color:var(--sub);font-size:.9rem;margin:6px 0 14px}
.pane{display:none}.pane.on{display:block}
.indbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.indbar label{display:flex;align-items:center;gap:6px;color:var(--navy);font-weight:600}
.indbar select{padding:5px 8px;border:var(--hair2);border-radius:var(--r2);background:#fff;font-weight:400}
.indnote{display:block;font-size:.78rem;color:var(--faint)}
.safe{display:flex;gap:10px;align-items:flex-start;background:#f0fdfa;border:1px solid #99f6e4;border-left:4px solid #0f766e;border-radius:0 var(--r) var(--r) 0;padding:10px 14px;margin:0 0 14px;font-size:.86rem;color:#134e4a}
.safe svg{flex:none;margin-top:2px}.safe b{color:#0f766e;margin-right:6px}
.safe summary{cursor:pointer;color:#0f766e;margin-top:4px;font-size:.82rem}.safe ul{margin:6px 0 0;padding-left:1.2em}.safe li{margin:2px 0}
.card{background:#fff;border:var(--hair);border-radius:var(--r);padding:16px 18px;margin-bottom:14px}
.h{font-size:1.05rem;color:var(--navy);margin:0 0 12px;padding:8px 12px;background:var(--plate);border-left:4px solid var(--accent);border-radius:0 var(--r) var(--r) 0}
.h small{color:var(--faint);font-weight:400}
.h3{font-size:.95rem;margin:0;color:var(--navy)}
.grid2{display:grid;grid-template-columns:minmax(320px,440px) minmax(0,1fr);gap:14px;align-items:start}
.form label{display:flex;flex-direction:column;font-size:.8rem;color:var(--sub);margin-bottom:8px}
.form label small{color:var(--faint);font-size:.72rem}
.form input,.form select{margin-top:3px;padding:6px 8px;border:var(--hair2);border-radius:var(--r2);background:#fff;color:var(--ink);min-width:0}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.form input,.form select{width:100%}
fieldset{border:var(--hair);border-radius:var(--r);padding:8px 10px 2px;margin:6px 0 10px}legend{font-size:.78rem;color:var(--navy);font-weight:600;padding:0 4px}
.btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
button{border:var(--hair2);background:#fff;color:var(--navy);padding:6px 12px;border-radius:var(--r2);cursor:pointer}
button:hover{border-color:var(--accent)}
button.primary{background:var(--accent);color:#fff;border-color:var(--accent);width:100%;margin-top:6px}
.file{position:relative;border:var(--hair2);border-radius:var(--r2);padding:6px 12px;font-size:.88rem;color:var(--navy);cursor:pointer;background:#fff}
.form .file{flex-direction:row;display:inline-flex;margin:0}.form .file.wide{display:flex;margin-bottom:8px}
.file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.note{font-size:.76rem;color:var(--faint);margin:8px 0 0}
.out .card{margin-bottom:12px}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.kpi{border:var(--hair);border-radius:var(--r);padding:10px 12px;background:#fff}
.kpi .lab{font-size:.74rem;color:var(--faint)}.kpi .val{font-family:var(--mono);font-size:1.35rem;color:var(--navy);line-height:1.3}
.kpi .cmp{font-size:.74rem;color:var(--sub)}
.pos{display:grid;grid-template-columns:150px 1fr 70px;gap:8px;align-items:center;padding:7px 0;border-bottom:var(--hair);font-size:.85rem}
.pos:last-child{border-bottom:0}
.pos .nm{color:var(--ink)}.pos .pc{font-family:var(--mono);text-align:right;color:var(--navy)}
.bar{position:relative;height:16px;margin-bottom:6px;background:linear-gradient(90deg,#f1f5f9 0 25%,#e2e8f0 25% 75%,#f1f5f9 75% 100%);border-radius:var(--r2)}
.bar .mid{position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:#94a3b8}
.bar .me{position:absolute;top:-3px;width:10px;height:22px;margin-left:-5px;background:var(--accent);border-radius:var(--r2)}
.read{font-size:.82rem;color:var(--sub);margin:8px 0 0;padding:8px 10px;background:var(--plate);border-radius:var(--r2)}
.pos-read{grid-column:1/-1;font-size:.74rem;color:var(--faint);margin-top:-4px}
.tbl2{width:100%;border-collapse:collapse;font-size:.84rem}.tbl2 th,.tbl2 td{border-bottom:var(--hair);padding:6px 8px;text-align:left}
.tbl2 td.n{text-align:right;font-family:var(--mono);white-space:nowrap}.tbl2 th{color:var(--navy);font-weight:600;background:#f8fafc}
.src{font-size:.72rem;color:var(--faint);margin:8px 0 0}
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:8px}
.filters label{display:flex;flex-direction:column;font-size:.78rem;color:var(--sub)}
.filters select{margin-top:3px;padding:5px 8px;border:var(--hair2);border-radius:var(--r2);background:#fff}
.filters .chk{flex-direction:row;align-items:center;gap:6px}
#plot svg{width:100%;height:auto;display:block}
.tablehead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.sc{overflow:auto;max-height:520px;border:var(--hair);border-radius:var(--r2)}
#tbl{border-collapse:collapse;width:100%;font-size:.82rem;background:#fff}
#tbl th{position:sticky;top:0;background:#f8fafc;color:var(--navy);text-align:left;padding:7px 8px;border-bottom:var(--hair2);cursor:pointer;white-space:nowrap}
#tbl th.sorted::after{content:" ▼";color:var(--accent)}#tbl th.sorted.asc::after{content:" ▲"}
#tbl td{padding:6px 8px;border-bottom:var(--hair);white-space:nowrap}#tbl td.n{text-align:right;font-family:var(--mono)}
#tbl tr:hover td{background:#f0f9ff}#tbl tr.pick td{background:#e0f2fe}
/* M5 一枚 */
.m5{grid-template-columns:minmax(260px,320px) 1fr}
.sheetwrap{overflow:hidden;background:#e2e8f0;border-radius:var(--r);padding:20px;position:relative}
#sheets{width:210mm;transform-origin:top left}
#sheets .a4+.a4{margin-top:10mm}   /* 画面では、ページのあいだに灰色の間を空ける */   /* 画面では、灰色の枠の幅に合わせて縮めて、左右の余白をそろえる（fitSheet）。印刷では縮めない */
.a4{width:210mm;height:297mm;overflow:hidden;margin:0 auto;background:#fff;color:#111;padding:11mm 13mm 9mm;position:relative;box-shadow:0 1px 6px rgba(15,23,42,.18);font-size:9.2pt;line-height:1.5;display:flex;flex-direction:column}
.a4 .sh{display:flex;align-items:center;gap:12px;border-bottom:2.5pt solid var(--t);padding-bottom:3mm;margin-bottom:3mm}
.a4 .sh img{max-height:14mm;max-width:40mm;object-fit:contain}
.a4 .firm{font-size:12pt;font-weight:700;color:var(--t)}.a4 .when{margin-left:auto;font-size:8.5pt;color:#555;text-align:right}
.a4 h1{font-size:14pt;margin:0 0 .5mm;color:#111}.a4 .for{font-size:9.8pt;color:#333;margin:0 0 2.5mm}
.a4 .memo{border-left:3pt solid var(--t);padding:2mm 3mm;background:#f8fafc;margin:0 0 4mm;font-size:9.5pt}
.a4 h2{font-size:10.2pt;color:var(--t);margin:3mm 0 1.5mm;padding-bottom:.8mm;border-bottom:.6pt solid #ccc}
.a4 .k3{display:grid;grid-template-columns:repeat(3,1fr);gap:3mm}
.a4 .k3 div{border:.6pt solid #ccc;border-radius:1.5mm;padding:1.5mm 2.5mm;line-height:1.4}.a4 .k3 b{display:block;font-size:12.5pt;color:#111}.a4 .k3 span{display:block;font-size:7.8pt;color:#555}
.a4 table{width:100%;border-collapse:collapse;font-size:8.6pt}.a4 th,.a4 td{border-bottom:.5pt solid #ddd;padding:.8mm 1.5mm;text-align:left;line-height:1.4}.a4 td.n{text-align:right;white-space:nowrap}
.a4 .mb{position:relative;height:3mm;background:#eef2f7;border-radius:1mm;min-width:30mm}.a4 .mb i{position:absolute;top:-1mm;width:2mm;height:5mm;margin-left:-1mm;background:var(--t);border-radius:.5mm}
.a4 .mb .md{position:absolute;left:50%;top:-.6mm;bottom:-.6mm;width:.4mm;background:#999}
.a4 .foot{margin-top:auto;padding-top:2.5mm;border-top:.6pt solid #bbb;font-size:6.9pt;color:#444;line-height:1.45}
.a4 .foot .dis{font-weight:600;color:#222;margin-bottom:1mm}
.a4 .credit{text-align:right;color:#777}
.a4 .sm{font-size:7.8pt;color:#555;margin:1mm 0 0}
.a4 tr.rd td{font-size:7.6pt;color:#555;border-bottom:.5pt solid #ddd;padding-top:0;padding-bottom:1.2mm}
.a4 tr.rd + tr td{padding-top:1.2mm}
.a4 .ul{margin:1mm 0 0;padding-left:5mm;font-size:9pt}.a4 .ul li{margin:.5mm 0}
.a4 svg{display:block;margin:1mm 0 2mm}
.a4 .wm{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;font-size:70pt;color:rgba(2,132,199,.06);font-weight:700;transform:rotate(-24deg)}
@media (max-width:900px){.grid2,.m5{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}.tabs{margin-left:0}}
@media print{
  /* 印刷のときは、画面の二つの列の並びを解いて、紙をちょうど A4 の幅で左上から置く（2026-10-19：細い列に押し込まれて縮んでいたのを直した） */
  @page{size:A4 portrait;margin:0}
  html,body{width:210mm;margin:0;padding:0;background:#fff}
  .no-print,.top,.lead,.safe,#m1,#m2{display:none!important}
  .wrap{padding:0!important;margin:0!important;max-width:none!important;width:210mm}
  #m5{display:block!important}
  .grid2,.m5{display:block!important}
  .sheetwrap{height:auto!important;padding:0!important;margin:0!important;background:#fff!important;overflow:visible!important;border-radius:0;width:210mm}
  #sheets{transform:none!important;margin:0!important;width:210mm}
  .a4{transform:none!important;box-shadow:none!important;margin:0!important;width:210mm!important;height:297mm;min-height:0;overflow:hidden;break-after:page;page-break-after:always}
  .a4:last-child{break-after:auto;page-break-after:auto}
  .a4 .wm{color:rgba(2,132,199,.08)}   /* 見本のあいだは、印刷にも透かしを残す */
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* 出店と商圏の画面で足したもの（2026-10-19） */
.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.minibar{display:inline-block;width:90px;height:8px;background:#eef2f7;border-radius:2px;vertical-align:middle;margin-right:6px;overflow:hidden}
.minibar i{display:block;height:100%;background:#0284c7}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.three ul{margin:6px 0 0;padding-left:1.2em;font-size:.86rem}.three li{margin:2px 0}
.filters input{margin-top:3px;padding:5px 8px;border:var(--hair2);border-radius:var(--r2);background:#fff}
#ftbl td a{color:var(--accent);text-decoration:none}
@media (max-width:900px){.three{grid-template-columns:1fr}}

/* 3D で見る（別のページへ行くタブ・2026-10-25）。.tab と同じ見た目で、JS のタブの切り替えには入れない */
.tabx{border:1px solid rgba(15,23,42,.14);background:#fff;color:#475569;padding:6px 14px;border-radius:999px;text-decoration:none;white-space:nowrap}
.tabx:hover{border-color:#b45309;color:#0f172a}
.tabx b{color:#b45309;font-weight:700}
@media (max-width:640px){.tabx{flex:0 0 auto;font-size:.8rem;padding:5px 12px}}
/* 体験版：Yamagishi Sync Lab の色に寄せる（2026-10-19） */
:root{--canvas:#f6f4ef;--ink:#121a2c;--navy:#121a2c;--accent:#b45309;--plate:#efece4;--good:#0f766e}
html,body{font-family:"Hiragino Sans","Yu Gothic UI","Yu Gothic","Meiryo",system-ui,sans-serif}
.top{background:rgba(255,253,249,.96);border-bottom:1px solid rgba(18,26,44,.12)}
.logo b{color:#121a2c}.logo span{color:#8b909c}
.badge{color:#0a0f1c;background:#f5a524;border-color:#f5a524}
.tab{background:#fff;color:#4a5162;border-color:rgba(18,26,44,.16);border-radius:999px}
.tab:hover{border-color:#b45309;color:#121a2c}
.tab[aria-selected=true]{background:#121a2c;color:#fff;border-color:#121a2c}
.sc table td,.sc table th{white-space:nowrap}
select,input{max-width:100%}
@media (max-width:760px){
  .top{position:static}
  .top-in{padding:8px 12px;gap:6px 10px}
  .logo b{font-size:.95rem}.logo span{display:none}
  .badge{font-size:.62rem;padding:1px 8px}
  .tabs{order:3;width:100%;margin-left:0;flex-wrap:nowrap;overflow-x:auto;gap:6px;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab{flex:0 0 auto;white-space:nowrap;font-size:.8rem;padding:5px 12px}
  .wrap{padding-left:12px;padding-right:12px}
}
button.primary{background:#0a0f1c;border-color:#0a0f1c}
.trialbar{max-width:1180px;margin:0 auto;padding:10px 16px 0;font-size:.86rem;color:#4a5162}
.trialbar b{color:#b45309}
.trialbar a{color:#0f766e;margin-left:8px}
.tfoot{background:#0a0f1c;color:#9aa4b8;margin-top:30px;font-size:.82rem}
.tfoot div{max-width:1180px;margin:0 auto;padding:22px 16px;display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between}
.tfoot a{color:#e6e9f0;text-decoration:none;margin-right:16px}.tfoot a:hover{color:#f5a524}
@media print{.trialbar,.tfoot{display:none}}
/* 2026-10-19 作り直し：白・プラチナ × ディープネイビー × 落ち着いたアンバー（黒の帯とビビッドな色はやめた） */
:root{--canvas:#f8fafc;--paper:#f8fafc;--card:#ffffff;--plate:#f1f5f9;--ink:#0f172a;--navy:#0f172a;--sub:#475569;--faint:#64748b;--accent:#b45309;--amber:#b45309;--amber2:#b45309;--teal2:#1e293b;--good:#1e293b}
html,body{background:#f8fafc}
.top{background:rgba(255,255,255,.95);border-bottom:1px solid rgba(15,23,42,.08)}
.logo b{color:#0f172a}.logo span{color:#64748b}
.badge{color:#9a3412;background:#fbf3ea;border:1px solid rgba(180,83,9,.3)}
.tab{background:#fff;color:#475569;border-color:rgba(15,23,42,.14)}
.tab:hover{border-color:#b45309;color:#0f172a}
.tab[aria-selected=true]{background:#1e293b;color:#fff;border-color:#1e293b}
button.primary{background:#1e293b;border-color:#1e293b}button.primary:hover{background:#b45309;border-color:#b45309}
.safe{background:#ffffff;border:1px solid rgba(15,23,42,.08);border-left:3px solid #1e293b;color:#1e293b}
.h{background:#f1f5f9;border-left-color:#b45309}
.read{background:#f1f5f9}
.trialbar a{color:#1e293b}
.tfoot{background:#f1f5f9;color:#64748b;border-top:1px solid rgba(15,23,42,.08)}
.tfoot a{color:#1e293b}.tfoot a:hover{color:#b45309}
.sheetwrap{background:#e2e8f0}
