/* マチコエ：試作（mock/index.html）と同じ配色・部品。B案：赤みのあるブルー＋差し色アプリコット */
:root{--p:#5560A8;--p-dk:#3F4889;--p-lt:#ECEEF8;--acc:#F3B95F;--acc-lt:#FDF3E1;--g:#2E8B57;--g-lt:#E7F4EC;--ink:#262A45;--txt:#474B66;--cap:#6A6E86;--line:#DDE0F0;--bg:#F8F8FC;--white:#fff;--warn:#C0392B}
*{box-sizing:border-box}
body{margin:0;font-family:"Noto Sans JP",sans-serif;color:var(--txt);background:var(--bg);font-size:14px;line-height:1.6}
a{color:var(--p-dk)}
.center{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px}
.card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:28px;width:100%;max-width:400px}
.logo{display:flex;justify-content:center;margin-bottom:18px}.logo img{height:46px;width:auto}
h1{font-size:18px;color:var(--ink);margin:0 0 16px;text-align:center}
.field{margin-bottom:16px}
.field label{display:block;font-weight:500;color:var(--ink);margin-bottom:6px;font-size:13px}
input[type=email],input[type=password],input[type=text]{width:100%;font:inherit;font-size:15px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--txt)}
input:focus{outline:2px solid var(--p-lt);border-color:var(--p)}
/* 入力欄にあらかじめ入れておく文字（例：〜）は、入力した文字と見分けがつくよう薄いグレーにする（2026-10-20・今後の入力欄すべて） */
input::placeholder,textarea::placeholder{color:#B4B7C9;opacity:1}
/* プルダウン：ブラウザ既定の見た目をやめ、入力欄と同じ線・角丸・高さにそろえる。矢印は右に余白をとって描く */
select{-webkit-appearance:none;appearance:none;width:100%;font:inherit;font-size:15px;line-height:1.4;padding:11px 42px 11px 12px;border:1px solid var(--line);border-radius:8px;color:var(--txt);cursor:pointer;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%236A6E86' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center/12px 8px}
select:hover{border-color:#C5C9E2}
select:focus,textarea:focus{outline:2px solid var(--p-lt);border-color:var(--p)}
select:disabled{background-color:var(--bg);color:var(--cap);cursor:not-allowed}
.check{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--white);color:var(--txt);padding:10px 16px;border-radius:8px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;min-height:44px}
.btn.pri{background:var(--p);border-color:var(--p);color:#fff}
.card .btn.pri{width:100%}
.btn.pri:hover{background:var(--p-dk)}
.err{background:#FBECEA;border:1px solid #F0C9C4;color:var(--warn);border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:16px}
.ok{background:var(--g-lt);border:1px solid #BFE0CC;color:var(--g);border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:16px}
.note{font-size:12px;color:var(--cap);text-align:center;margin:14px 0 0}
.top{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:var(--white);border-bottom:1px solid var(--line)}
.top img{height:34px}
.page{padding:28px}
/* 管理・店舗の画面の骨組み（試作と同じ並び） */
.shell{display:flex;min-height:100vh}
.side{width:264px;flex:none;background:var(--white);border-right:1px solid var(--line);padding:18px 12px;position:sticky;top:0;height:100vh;overflow-y:auto;align-self:flex-start}
.slogo{padding:2px 10px 20px}.slogo img{height:42px}
.who{margin:0 6px 16px;padding:10px;border-radius:10px;background:var(--p-lt);font-size:13px}.who b{display:block;color:var(--ink)}
.chip{display:inline-block;font-size:11px;padding:1px 8px;border-radius:999px;background:var(--white);color:var(--p-dk);border:1px solid var(--line);margin-top:4px}
.nav a{display:block;padding:9px 10px;border-radius:8px;color:var(--txt);font-weight:500;text-decoration:none}
.nav a:hover,.nav a.on{background:var(--p-lt);color:var(--p)}.nav a.on{font-weight:700}
.backlink{display:block;width:calc(100% - 12px);margin:0 6px 12px;padding:8px 10px;border-radius:8px;background:#FFF4D6;color:#6B4E00;font:inherit;font-weight:700;font-size:13px;border:0;text-align:left;cursor:pointer}
.main{flex:1;min-width:0}
.asadmin{background:#FFF4D6;color:#6B4E00;padding:10px 24px;display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;align-items:center;font-weight:500;border-bottom:1px solid #F1DFA6}
.asadmin .back{background:#6B4E00;color:#fff;border:0;border-radius:8px;padding:8px 12px;font:inherit;font-weight:700;cursor:pointer}
.page h1{text-align:left;font-size:22px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
h2{font-size:16px;color:var(--ink);margin:0 0 12px}
.box{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:18px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.stat .l{font-size:13px;font-weight:700}.stat .v{font-size:34px;font-weight:700;color:var(--ink)}.stat .v small{font-size:13px;margin-left:2px}
table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--cap);font-weight:500;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:12px 10px;border-bottom:1px solid var(--line)}.nw{white-space:nowrap}.tablewrap{overflow-x:auto}
.pill{display:inline-block;font-size:12px;padding:2px 10px;border-radius:999px;font-weight:500}.pill.on{background:var(--g-lt);color:var(--g)}.pill.off{background:#F1EFF4;color:var(--cap)}
.btn.sm{padding:4px 10px;font-size:12px;min-height:36px}
.req{font-size:11px;background:#D9534F;color:#fff;border-radius:4px;padding:1px 6px;margin-left:6px}
.help{font-size:12px;color:var(--cap);margin-top:4px}
textarea{width:100%;font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:8px}
.empty{color:var(--cap);text-align:center;padding:20px}
.row1{padding:10px 0;border-bottom:1px solid var(--line)}
@media (max-width:900px){.shell{flex-direction:column}.side{width:auto;position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.grid3{grid-template-columns:1fr}.page{padding:16px}}

/* 店舗の画面の黄色い帯：別の店舗に切り替える */
.asadmin-acts{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.asadmin .switch select{width:auto;font-size:14px;padding:6px 34px 6px 10px;border:1px solid #d8b84a;background-color:#fff;background-position:right 12px center;max-width:240px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ===== 回答者の画面（スマホ） ===== */
/* 中身が短くても、最後のボタンは画面の下端に付ける（下にすき間を作らない・高さはアドレスバーの出入りに合わせる） */
.rs{max-width:480px;margin:0 auto;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:#F4F2F7}
.rs-brand{background:#fff;padding:8px;text-align:center;border-bottom:1px solid #EEE}
.rs-brand img{height:18px;width:auto;vertical-align:middle}
.rs-brand-own{padding:10px 8px}.rs-brand-own .rs-logo{height:34px;width:auto;max-width:220px;object-fit:contain;background:none;padding:0;border-radius:0}
.rs-head{background:var(--sh,var(--p));color:var(--st,#fff);display:flex;align-items:center;gap:12px;padding:14px 18px;font-weight:700;font-size:17px}
.rs-head small{display:block;font-weight:400;font-size:11px;opacity:.75}
.rs-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:12px 16px;background:#fff}
.rs-steps b{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:500;color:#9A94A8}
.rs-steps b::before{content:"";display:block;height:6px;border-radius:4px;background:#E6E3EC}
.rs-steps b.on{color:var(--ss,var(--p));font-weight:700}
.rs-steps b.on::before{background:var(--ss,var(--p))}
.rs-steps b.now::before{background:linear-gradient(90deg,var(--ss,var(--p)) 60%,#E6E3EC 60%)}
.rs-body{flex:1;display:flex;flex-direction:column;padding:16px}
.rs-form{flex:1;display:flex;flex-direction:column}
.to-bottom{margin-top:auto}
.pcard{background:var(--sc,#fff);border-radius:14px;padding:16px;margin:0 0 12px;border:0;min-width:0}
.pcard h3{margin:0 0 10px;font-size:16px}
.pq{display:block;font-weight:700;font-size:15px;margin:0 0 10px;padding:0}
.rq{font-size:10px;background:#D9534F;color:#fff;border-radius:3px;padding:1px 5px;margin-right:6px;vertical-align:2px}
.rs-p{margin:0;font-size:14px}
.rs-c{text-align:center}
.choice{display:flex;align-items:center;gap:10px;border:1px solid #E2DDE8;border-radius:10px;padding:11px 12px;margin-bottom:8px;background:#fff;font-size:14px;cursor:pointer}
.choice input{width:18px;height:18px;accent-color:var(--sb,var(--p));margin:0;flex:none}
.choice:has(input:checked){border-color:var(--sb,var(--p));background:color-mix(in srgb,var(--sb,var(--p)) 8%,#fff)}
.pbtn{display:block;width:100%;border:0;border-radius:999px;padding:14px;font:inherit;font-size:15px;font-weight:700;background:var(--ss,var(--p));color:#fff;text-align:center;text-decoration:none;cursor:pointer}
.pbtn:disabled{opacity:.6}
.plink{display:block;width:100%;background:none;border:0;text-align:center;color:var(--p-dk);font:inherit;font-weight:700;font-size:13px;margin-top:12px;cursor:pointer;text-decoration:none}
.plink:disabled{color:#B5B0C0;cursor:default}
.draft{width:100%;min-height:190px;border:1px solid #E2DDE8;border-radius:10px;padding:12px;font:inherit;font-size:14px;line-height:1.8;background:#FAF9FC;box-sizing:border-box}
.draft.short{min-height:90px}
.rs-left{color:#D9342B;font-weight:700;font-size:13px;text-align:center;margin:8px 0 0}
.rs-err{background:#FDECEA;color:#B3261E;border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:12px}
.rs-howto-t{font-size:13px;margin:14px 0 8px;font-weight:700}
.howto{border:1px solid #E2DDE8;border-radius:10px;padding:12px;background:#fff;font-size:13px}
.howto div{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px dashed #EEE}
.howto div:last-child{border:0}
.howto b{width:22px;height:22px;border-radius:6px;background:var(--ss,var(--p));color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;flex:none}
/* fieldset の legend は枠線の上に乗るので、ふつうの見出しとして枠の中に置く */
.rs-logo{height:36px;width:auto;max-width:120px;object-fit:contain;background:#fff;border-radius:6px;padding:3px;flex:none}
fieldset.pcard>legend.pq{float:left;width:100%}
fieldset.pcard>legend.pq+*{clear:both}

/* ===== 店舗：アンケート一覧（カード）と編集 ===== */
.grp{font-size:14px;font-weight:700;color:var(--p);letter-spacing:.12em;padding:20px 10px 4px;margin-bottom:6px;border-bottom:1px solid #A3AADB;display:flex;align-items:center;gap:8px}
/* 第2段階（Googleとの連携のあと）の画面の印 */
.p2{display:inline-block;font-size:10px;font-weight:700;color:#6B4E00;background:#FFF4D6;border:1px solid #F1DFA6;border-radius:999px;padding:0 7px;letter-spacing:.02em;white-space:nowrap}
.nav a .p2{margin-left:6px;vertical-align:1px}
h1 .p2,h2 .p2{font-size:11px;margin-left:8px;vertical-align:3px;padding:1px 8px}
.svlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.sv{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px}
.sv .hd{display:flex;align-items:flex-start;gap:8px}
.sv .nm{flex:1;min-width:0}.sv .nm a{font-weight:700;color:var(--ink);text-decoration:none;font-size:16px}.sv .nm small{display:block;color:var(--cap);font-size:12px;margin-top:2px}
.sv .nums{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;text-align:center;font-size:11px;color:var(--cap)}
.sv .nums b{display:block;font-size:20px;color:var(--ink)}.sv .nums b.sm{font-size:13px;line-height:2.2}
.sv .url input{font-size:12px;padding:6px 8px}
.sv .acts{display:flex;gap:8px}.sv .acts .btn{flex:1}
.sv.add{align-items:center;justify-content:center;border-style:dashed;color:var(--p);text-decoration:none;font-weight:700;min-height:180px;font-size:24px}.sv.add span{font-size:14px}
.pill{font-size:11px;font-weight:700;border-radius:999px;padding:2px 10px;white-space:nowrap}.pill.on{background:var(--g-lt);color:var(--g)}.pill.off{background:#EEE;color:#777}
.more{position:relative}.more summary{list-style:none;cursor:pointer;padding:2px 10px;border-radius:8px;font-weight:700;color:var(--cap)}.more summary::-webkit-details-marker{display:none}
.more .menu{position:absolute;right:0;top:28px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.08);min-width:150px;z-index:5;padding:6px}
.more .menu a,.more .menu button{display:block;width:100%;text-align:left;background:none;border:0;padding:8px 10px;border-radius:6px;font:inherit;font-size:14px;color:var(--txt);cursor:pointer;text-decoration:none}
.more .menu a:hover,.more .menu button:hover{background:var(--p-lt)}.more .menu .del{color:var(--warn)}.more .menu hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.sticky{position:sticky;top:16px}
.phone{background:#F4F2F7;border:1px solid var(--line);border-radius:24px;overflow:hidden;max-height:calc(100vh - 80px);overflow-y:auto}
.phone .rs-body{min-height:0}.phone .pbtn{margin-top:4px}
.ta-c{text-align:center}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 16px}
.tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:10px 14px;font:inherit;font-weight:700;color:var(--cap);cursor:pointer}
.tabs button.on{color:var(--p);border-bottom-color:var(--p)}
.cnt{display:inline-block;background:var(--p-lt);color:var(--p);border-radius:999px;font-size:11px;padding:0 7px;margin-left:4px}
.sw{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;cursor:pointer}
.sw .t{display:block;font-weight:700;color:var(--ink)}.sw .d{display:block;font-size:12px;color:var(--cap)}
.tg{appearance:none;width:44px;height:26px;border-radius:999px;background:#CCC;position:relative;flex:none;cursor:pointer;transition:background .2s}
.tg::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .2s}
.tg:checked{background:var(--p)}.tg:checked::after{left:21px}
.help.warn{color:var(--warn)}
.range{display:flex;gap:8px;align-items:center;max-width:300px}.range input{width:90px}
.q .qhd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.q .qhd select{width:auto}
.q .qn{color:var(--p);font-size:15px}
.q .mini{font-size:13px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.q .qacts{margin-left:auto;display:flex;gap:4px}.q .qacts .del{color:var(--warn)}
.q .opts{margin-top:8px}
.err ul{margin:6px 0 0;padding-left:18px}
.err.guard{background:#FFF4E5;border-color:#F3C98B;color:#7A4B00}
@media (max-width:1100px){.split{grid-template-columns:1fr}.sticky{position:static}}
/* スマホ幅：左メニューを横いっぱいにする（縦並びのときに幅が縮まないように） */
@media (max-width:900px){.side{align-self:stretch}.q .qacts{margin-left:0}}
.edot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--warn);margin-left:6px;vertical-align:2px}
.ack{display:flex;gap:8px;align-items:flex-start;margin-top:10px;font-weight:700;cursor:pointer}.ack input{margin-top:3px}

/* ===== 店舗：QRコードと入口 ===== */
.entries{display:flex;flex-direction:column;gap:0}
.ent{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}
.ent.focus{border-color:var(--p);box-shadow:0 0 0 3px var(--p-lt)}
.ent-qr{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.qrimg{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px}.qrimg svg{width:100%;height:auto;display:block}
.copyrow{display:flex;gap:8px}.copyrow input{flex:1;min-width:0;font-size:13px}
.ent-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.phr{margin:0 0 8px;padding-left:18px;color:var(--ink);font-size:14px;line-height:1.8}
@media (max-width:700px){.ent{grid-template-columns:1fr}.ent-qr{max-width:240px}}

/* ===== 店舗：デザイン編集 ===== */
.colors{display:grid;gap:10px}
.colorrow{display:flex;align-items:center;gap:12px}
.colorrow input[type=color]{width:48px;height:40px;padding:2px;border:1px solid var(--line);border-radius:8px;background:#fff;flex:none;cursor:pointer}
.colorrow .nm{flex:1;font-weight:700;font-size:14px;color:var(--ink)}
.colorrow input[type=text]{width:110px;font-family:monospace}
.logoprev{display:flex;align-items:center;gap:12px;margin-bottom:8px}.logoprev img{height:48px;width:auto;border:1px solid var(--line);border-radius:8px;padding:4px;background:#fff}

/* ===== 数字の画面（ダッシュボード・回答結果） ===== */
.periods{display:inline-flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px;margin-bottom:14px}
.periods a{padding:6px 12px;border-radius:7px;font-size:13px;font-weight:700;color:var(--cap);text-decoration:none}.periods a.on{background:var(--p-lt);color:var(--p)}
.page h1 .periods{margin:0;font-size:13px}
.lead{font-size:15px;color:var(--ink);font-weight:500;margin:0 0 14px}
.funnel{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.fs{background:var(--bg);border-radius:10px;padding:10px}
.fl{font-size:12px;color:var(--cap);font-weight:700}.fv{margin:4px 0 6px;color:var(--ink)}.fv b{font-size:24px}.fv small{margin-left:6px;color:var(--cap);font-size:12px}
.fb{height:8px;background:#E6E3EC;border-radius:4px;overflow:hidden}.fb span{display:block;height:100%;background:#A9AED4}
.fs.main{background:var(--acc-lt)}.fs.main .fb span{background:var(--acc)}.fs.main .fv b{color:#9A5B00}
.lc{width:100%;height:auto;display:block}.lc .ax{stroke:var(--line)}.lc .tk{font-size:11px;fill:var(--cap)}
.lc polyline{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.lc .l1{stroke:#A9AED4}.lc .l2{stroke:var(--acc)}
.legend{font-size:12px;color:var(--cap);display:flex;gap:6px;align-items:center}.legend span{display:inline-block;width:14px;height:3px;border-radius:2px}.legend .k1{background:#A9AED4}.legend .k2{background:var(--acc);margin-left:12px}
th.num,td.num{text-align:right}
.lat{padding:8px 0;border-bottom:1px solid var(--line)}.lat:last-child{border:0}
.empty-cta{text-align:center;padding:40px 20px}.empty-cta p{color:var(--ink);font-size:15px}
.tq{margin-bottom:18px}.tqh{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.bar{display:grid;grid-template-columns:minmax(80px,200px) 1fr 90px;gap:10px;align-items:center;font-size:13px;margin:4px 0}
.bt{height:10px;background:#EEE;border-radius:5px;overflow:hidden}.bt span{display:block;height:100%;background:#A9AED4}.bn{color:var(--cap);text-align:right}
.rl td{vertical-align:top;font-size:13px}.draftcell{min-width:260px;max-width:420px;white-space:pre-wrap}
.pager{display:flex;gap:16px;justify-content:center;margin-top:14px;font-size:14px}.pager span{color:var(--cap)}
@media (max-width:900px){.funnel{grid-template-columns:repeat(2,1fr)}.bar{grid-template-columns:1fr 70px}.bar .bt{grid-column:1/-1;grid-row:2}}
.pill.warn{background:#FBECEA;color:var(--warn)}
.rl th{white-space:nowrap;font-size:12px}.rl .ans{white-space:nowrap}.rl .freecell{min-width:240px;max-width:360px}
.testbar{background:#F3C93F;color:#3A2E00;text-align:center;font-size:12px;font-weight:700;padding:6px 10px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.testbar a{color:#3A2E00}

/* ===== 回答者の画面のフッター・規約のページ ===== */
.rs-foot{text-align:center;padding:10px 16px 14px;font-size:11px}.rs-foot a{color:var(--cap)}
.legal{max-width:760px;margin:0 auto;background:#fff;min-height:100vh}
.legal-body{padding:24px 20px 48px;color:var(--txt);line-height:1.85;font-size:15px}
.legal-body h1{text-align:left;font-size:22px;margin:0 0 16px}.legal-body h2{font-size:16px;color:var(--ink);margin:28px 0 8px}
.legal-body ul,.legal-body ol{padding-left:22px}
/* エラーの画面 */
.errcard{text-align:center}.errcard .logo{justify-content:center;display:flex;margin-bottom:12px}.errcard .logo img{height:28px}
.errcode{font-size:13px;color:var(--cap);margin:0 0 4px;letter-spacing:.1em}.errmsg{font-size:14px;line-height:1.8;color:var(--txt)}
/* スマホ幅の左メニュー：ふだんはたたみ、「メニュー」ボタンで開く（試作と同じ） */
.slogo{display:flex;align-items:center;justify-content:space-between;gap:8px}
.menubtn{display:none;font:inherit;font-size:13px;font-weight:700;border:1px solid var(--line);background:#fff;color:var(--p-dk);border-radius:8px;padding:6px 12px;cursor:pointer}
@media (max-width:900px){
  .side{padding:10px 16px}
  .menubtn{display:inline-block}
  .side .sidemenu{display:none;padding-top:8px}
  .side.open .sidemenu{display:block}
}
.ready summary{cursor:pointer;list-style:none}.ready summary::-webkit-details-marker{display:none}.ready summary h2{margin:0}

/* ===== 紹介ページ（ログインしていない人の入口） ===== */
.lp{max-width:860px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}
.lp-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px}.lp-head img{height:32px}
.lp-body{flex:1;padding:8px 20px 32px}
.lp-hero{padding:28px 0 20px}.lp-hero h1{text-align:left;font-size:28px;margin:0 0 12px;color:var(--ink)}.lp-hero p{font-size:16px;line-height:1.9;margin:0}
.lp-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;line-height:1.85}.lp-box h2{margin:0 0 10px;font-size:18px}
.lp-steps{padding-left:22px;margin:0 0 8px}.lp-steps li{margin-bottom:6px}
.lp-foot{text-align:center;padding:18px;font-size:13px;color:var(--cap)}.lp-foot a{color:var(--cap)}
@media (max-width:600px){.lp-hero h1{font-size:22px}}
.legal-body h2.part{font-size:18px;color:var(--p-dk);border-top:2px solid var(--p-lt);padding-top:18px;margin-top:36px}.legal-body .toc{background:var(--bg);border-radius:10px;padding:10px 14px}
.lp-name{font-weight:700;color:var(--p);margin:0 0 6px;font-size:14px;letter-spacing:.05em}
/* 見出しの中のボタン（「＋ 店舗を追加」など）：見出しの文字の大きさを受け継がせず、普通のボタンの大きさにする */
.page h1 .btn{font-size:14px;padding:8px 16px;min-height:40px}
/* 重ねて開く説明（Google place ID とは など） */
.linkbtn{background:none;border:0;padding:0;font:inherit;font-size:12px;color:var(--p);text-decoration:underline;cursor:pointer}
.linkbtn:hover{color:var(--p-dk)}
.linkbtn + .linkbtn{margin-left:14px}
dialog.overlay{border:0;border-radius:14px;padding:0;width:min(560px,calc(100% - 32px));max-height:calc(100% - 48px);color:var(--txt);box-shadow:0 20px 60px rgba(38,42,69,.25)}
dialog.overlay::backdrop{background:rgba(38,42,69,.5)}
dialog.overlay .ov-in{padding:24px 24px 20px;overflow:auto}
dialog.overlay h2{margin:0 0 12px;font-size:18px;color:var(--ink)}
dialog.overlay p{margin:0 0 12px;line-height:1.8}
dialog.overlay ol{padding-left:22px;margin:0 0 14px;line-height:1.8}
dialog.overlay li{margin-bottom:6px}
dialog.overlay code{background:var(--p-lt);border-radius:4px;padding:1px 6px;font-size:13px}
dialog.overlay .ov-tip{background:var(--bg);border-radius:10px;padding:12px 14px;font-size:13px;margin-bottom:16px}
dialog.overlay .ov-foot{display:flex;justify-content:flex-end}

/* 第2段階の画面の側（診断レポート・キーワード順位・月次レポート）。試作 mock/index.html から移した */
.p2note{font-size:13px;color:var(--p-dk);background:var(--p-lt);border-radius:10px;padding:10px 14px;margin:-4px 0 16px;line-height:1.7}
.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.gr{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;font-weight:700;font-size:30px;line-height:1}
.gr.A{background:var(--g-lt);color:var(--g)}.gr.B{background:var(--p-lt);color:var(--p)}.gr.C{background:var(--acc-lt);color:#9A6200}.gr.D{background:#FBECEA;color:var(--warn)}
.gr.big{width:96px;height:96px;font-size:58px;border-radius:22px}.gr.sm{width:38px;height:38px;font-size:20px;border-radius:10px}
.gbox{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px;text-align:center}
.gbox .l{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:8px}.gbox .s{font-size:12px;color:var(--cap);margin-top:6px}
.fix{padding:10px 0;border-top:1px solid var(--line);font-size:13px}.fix:first-of-type{border-top:0}
.up{color:var(--g);font-size:12px;font-weight:700}.down{color:var(--warn);font-size:12px;font-weight:700}.flat{color:var(--cap);font-size:12px;font-weight:700}
.rank{display:inline-block;min-width:64px;text-align:center;font-weight:700;border-radius:10px;padding:4px 10px;font-size:20px;line-height:1.3}.rank small{font-size:12px;margin-left:1px}
.rank.t3{background:var(--g-lt);color:var(--g)}.rank.t10{background:var(--p-lt);color:var(--p)}.rank.t20{background:var(--acc-lt);color:#9A6200}.rank.out{background:#F1EFF4;color:var(--cap)}
.stat{margin:0}.stat .v .rank{font-size:30px;min-width:76px}
.qkey{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;font-size:12px;color:var(--cap)}.qkey span{display:inline-flex;align-items:center;gap:5px}.qkey i{width:9px;height:9px;border-radius:50%;display:inline-block}
.tabs a.tbtn{background:none;border-bottom:3px solid transparent;padding:10px 14px;font-weight:700;color:var(--cap);text-decoration:none;margin-bottom:-1px;white-space:nowrap}
.tabs a.tbtn.on{color:var(--p);border-bottom-color:var(--p)}.tabs .cnt{font-size:11px;background:var(--p-lt);color:var(--p-dk);border-radius:999px;padding:0 7px;margin-left:4px}
.tabs{overflow-x:auto}
@media (max-width:900px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g2{grid-template-columns:1fr}}
@media (max-width:480px){.hsm{display:none}}
.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed}
/* サーバーの利用状況ゲージ（管理者のダッシュボード） */
.cap-hd{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.cap-pct{font-size:30px;color:var(--ink)}.cap-pct small{font-size:14px;margin-left:2px}
.cap-bar{position:relative;height:14px;background:#EEF0F7;border-radius:999px;margin:10px 0 12px;overflow:hidden}
.cap-bar i{position:absolute;inset:0 auto 0 0;background:var(--g);border-radius:999px}
.cap-mk{position:absolute;top:0;bottom:0;width:2px;background:rgba(38,42,69,.18)}
.cap-yellow .cap-bar i{background:#E0A43A}.cap-red .cap-bar i{background:var(--warn)}
.cap-msg{margin:0;font-size:14px;color:var(--txt)}.cap-yellow .cap-msg b{color:#9A6200}.cap-red .cap-msg b{color:var(--warn)}
.cap-yellow{border-color:#F1D9AE;background:var(--acc-lt)}.cap-red{border-color:#F2C4BE;background:#FDF3F2}
.cap-tbl{margin-top:10px}.cap-tbl td{padding:6px 8px}
.endopts{margin-top:8px}.endopts label{display:block;font-size:12px;font-weight:700;color:var(--ink);margin-bottom:4px}.endopts input{font-size:14px;padding:8px 10px}
.legal-fold{margin-top:28px;border-top:2px solid var(--p-lt);padding-top:12px}.legal-fold summary{cursor:pointer;font-weight:700;color:var(--p-dk)}
.todo{background:var(--acc-lt);border:1px solid #F1D9AE;border-radius:14px;padding:16px 18px;margin-bottom:18px}
.todo h2{margin:0 0 10px}
.todo-i{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 0;border-top:1px solid #F1D9AE;font-size:14px;color:var(--ink)}
.todo-i:first-of-type{border-top:0;padding-top:0}.todo-i.warn>span:first-child{font-weight:700}
.stall{display:inline-block;font-size:11px;font-weight:700;color:#9A6200;background:var(--acc-lt);border:1px solid #F1D9AE;border-radius:999px;padding:1px 8px;margin-top:4px}
/* 口コミ一覧 */
.rv-hd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.stars{color:#E0A43A;letter-spacing:1px;font-size:16px}
.rv-body{color:var(--ink);line-height:1.8;white-space:pre-wrap}
.rv-reply{margin-top:12px;background:var(--bg);border-radius:10px;padding:12px 14px;font-size:14px}
.rv-reply textarea{min-height:90px;background:var(--white)}
.ov-steps{display:grid;gap:14px;margin:0 0 14px}
.ov-step{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}
.ov-step .n{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--p);color:#fff;font-size:13px}
.ov-step p{margin:2px 0 8px}.ov-step img{display:block;width:100%;max-width:420px;border:1px solid var(--line);border-radius:10px}
/* 投稿の予約 */
.pban{display:flex;flex-direction:column;gap:2px;border-radius:12px;padding:12px 16px;margin-bottom:16px;border:1px solid}
.pban b{color:var(--ink)}.pban span{font-size:13px}
.pban.ok{background:var(--g-lt);border-color:#BFE0CC}.pban.soon{background:var(--acc-lt);border-color:#F1D9AE}.pban.now{background:#FBECEA;border-color:#F2C4BE}.pban.now b{color:var(--warn)}
.slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.slot{border:1px solid var(--line);border-radius:10px;padding:10px;font-size:13px;background:var(--white)}
.slot .d{font-weight:700;color:var(--ink)}.slot .st{font-size:12px;font-weight:700;margin:2px 0 4px}.slot .tt{font-size:12px;color:var(--cap)}
.slot.posted .st,.slot.scheduled .st{color:var(--g)}.slot.wait .st{color:#9A6200}.slot.empty .st{color:var(--warn)}.slot.empty{border-style:dashed}.slot.failed .st{color:var(--warn)}
.post{display:grid;grid-template-columns:140px 1fr;gap:14px;align-items:start;padding:10px 0;border-top:1px solid var(--line)}
.box>.post:first-of-type,.box h2+.post{border-top:0}
.post .ph{width:140px;height:105px;border-radius:10px;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:12px;color:var(--cap)}
.post .ph img{width:100%;height:100%;object-fit:cover}
.phgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:14px}
.phc img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
@media (max-width:700px){.slots{grid-template-columns:repeat(2,minmax(0,1fr))}.post{grid-template-columns:1fr}.post .ph{width:100%;height:auto;aspect-ratio:4/3}}
/* はじめての設定の案内（docs/04 B1） */
.setup-hd{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.setup-hd h2{margin:0}
.setup-bar{height:6px;background:var(--p-lt);border-radius:999px;margin:12px 0 6px;overflow:hidden}.setup-bar span{display:block;height:100%;background:var(--p);border-radius:999px}
.setup-l{list-style:none;margin:0;padding:0}
.setup-l li{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.setup-l li:first-child{border-top:0}
.setup-n{flex:none;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:var(--p-lt);color:var(--p-dk)}
.setup-t{flex:1;min-width:0;font-size:14px;color:var(--ink)}.setup-t .pill{margin-left:8px}
.pill.tm{background:var(--acc-lt);color:#8A5A12}
.setup-l li.done .setup-n{background:var(--g-lt);color:var(--g)}.setup-l li.done .setup-t b{color:var(--cap);font-weight:500;text-decoration:line-through}
@media (max-width:600px){.setup-l li{flex-wrap:wrap}.setup-l li>.btn{margin-left:40px}}
/* AIに拾われやすい選択肢のコツ（docs/04 B9） */
.tipbox summary{cursor:pointer;font-weight:700;color:var(--p-dk)}
.tipbox table{margin-top:4px}.tiplist{margin:12px 0 0;padding-left:1.2em}.tiplist li{margin:4px 0}
.qtip{background:var(--acc-lt);border-radius:8px;padding:8px 10px;color:var(--ink)}
/* Googleでの見られ方（インサイトの数字・docs/02 8-1） */
.ins-hd{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}.ins-hd h2{margin:0}
.ins-f{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ins-f select{width:auto;padding-top:8px;padding-bottom:8px;font-size:14px}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ins-c{display:flex;flex-direction:column;gap:2px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;text-decoration:none;color:var(--txt);transition:border-color .15s,background .15s}
.ins-c:hover{border-color:var(--p);background:var(--white)}.ins-c.on{border-color:var(--p);background:var(--p-lt)}
.ins-c .l{font-size:13px;font-weight:700;color:var(--ink)}.ins-c .v{font-size:24px;font-weight:700;color:var(--ink);line-height:1.3}
.ins-chart{margin-top:16px}.ins-chart h3{font-size:14px;margin:0 0 6px;color:var(--ink)}
.lc .l1.cmp{stroke-dasharray:5 5;opacity:.7}.legend .k1.cmp{background:repeating-linear-gradient(90deg,#A9AED4 0 4px,transparent 4px 7px);margin-left:12px}
.ins .ins-c .l{display:block}
/* 診断レポート：項目ごとの次にすること */
.gbox .fixs{color:var(--ink);margin-top:8px;text-align:left;line-height:1.6}
@media (max-width:760px){.g3{grid-template-columns:repeat(2,minmax(0,1fr))}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 運営設定の鍵：先頭と末尾だけ。I（アイ）と l（エル）・0 と O を見分けやすい等幅の書体で出す */
.keyrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.keymask{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace;font-size:16px;letter-spacing:.06em;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;color:var(--ink);word-break:break-all}
/* デザイン：ロゴの3択（カードで選ぶ） */
.logopick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.lpk{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;border:2px solid var(--line);border-radius:12px;padding:12px 8px;cursor:pointer;text-align:center;background:var(--white);transition:border-color .15s,background .15s}
.lpk:hover{border-color:#A9AED4}
.lpk input{position:absolute;opacity:0;pointer-events:none}
.lpk:has(input:checked){border-color:var(--p);background:var(--p-lt)}
.lpk:has(input:focus-visible){outline:2px solid var(--p);outline-offset:2px}
.lpk-img{height:44px;width:100%;display:flex;align-items:center;justify-content:center}.lpk-img img{max-height:40px;max-width:100%;object-fit:contain}
.lpk-up{font-size:12px;color:var(--cap);border:1px dashed var(--line);border-radius:8px;padding:6px 10px}
.lpk-none{font-size:12px;font-weight:700;color:var(--cap)}
.lpk-t{font-size:14px;font-weight:700;color:var(--ink)}.lpk-d{font-size:11px;color:var(--cap)}
.lpk-own{margin-top:12px;padding:12px;border-radius:10px;background:var(--bg)}
.dropzone{margin-top:10px;border:2px dashed var(--line);border-radius:10px;background:#fff;padding:18px 12px;text-align:center;color:var(--cap);font-size:13px;transition:border-color .15s,background .15s}
.dropzone b{display:block;color:var(--ink);font-size:14px;margin-bottom:2px}
.dropzone.over{border-color:var(--p);background:var(--p-lt)}
.err-t{color:var(--warn)!important;font-weight:700}
@media (max-width:480px){.logopick{grid-template-columns:1fr}.lpk{flex-direction:row;justify-content:flex-start;text-align:left;gap:12px}.lpk-img{width:72px;flex:none}}
/* 設問の「AIにおまかせ」 */
.aibox{border-color:#C9CDEA;background:linear-gradient(180deg,#F6F7FD,#fff)}
.aigrid .field{margin-bottom:0}
.aiact{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.aileft{font-size:13px;color:var(--cap)}.aileft.warn{color:var(--warn);font-weight:700}
@media (max-width:760px){.aigrid{grid-template-columns:1fr}}
/* 設定などの画面：枠は右端まで、パソコンでは入力欄を2列（3列）、スマホでは1列（2026-10-20） */
.f2,.f3{display:grid;column-gap:28px;align-items:start}
.f2{grid-template-columns:repeat(2,minmax(0,1fr))}.f3{grid-template-columns:repeat(3,minmax(0,1fr))}
.sws .sw{border-top:1px solid var(--line)}
@media (min-width:900px){.page .box{padding:24px 28px}}
@media (max-width:900px){.f2,.f3{grid-template-columns:1fr}}
/* 業種の欄（選択式＋その他） */
.indf{display:flex;flex-direction:column;gap:8px}
/* 保存し忘れの見張り（変更があると保存ボタンが差し色になり、3回だけ脈打つ。ボタンが見えないときは下に帯） */
.btn.unsaved{background:var(--acc);border-color:var(--acc);color:#3A2A00;animation:savepulse 1.6s ease-in-out infinite}
.btn.unsaved:hover{background:#E9A945}
@keyframes savepulse{0%,100%{box-shadow:0 0 0 0 rgba(243,185,95,.75);transform:scale(1)}50%{box-shadow:0 0 0 9px rgba(243,185,95,0);transform:scale(1.04)}}
@media (prefers-reduced-motion:reduce){.btn.unsaved{animation:none}}
.savebar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 16px;background:#fff;border-top:3px solid var(--acc);box-shadow:0 -4px 16px rgba(38,42,69,.12);font-size:14px;font-weight:700;color:var(--ink)}
.savebar .btn{width:auto;min-height:40px}
.savebar[hidden]{display:none}
.poptypes{display:flex;flex-wrap:wrap;gap:6px 18px}
/* 声かけPOP：表面デザインを小さな見本で選ぶ */
.poppick{display:flex;flex-wrap:wrap;gap:12px}
.poppick .popk{position:relative;display:flex;margin:0;font-weight:400;flex-direction:column;align-items:center;gap:6px;border:2px solid var(--line);border-radius:12px;padding:8px;cursor:pointer;background:var(--white);transition:border-color .15s,background .15s}
.popk:hover{border-color:#A9AED4}.popk input{position:absolute;opacity:0;pointer-events:none}
.popk:has(input:checked){border-color:var(--p);background:var(--p-lt)}.popk:has(input:focus-visible){outline:2px solid var(--p);outline-offset:2px}
.popk img{width:120px;height:auto;border-radius:4px;box-shadow:0 1px 4px rgba(38,42,69,.15)}.popk span{font-size:14px;font-weight:700;color:var(--ink)}
.popgo{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px}.popgo .btn{width:auto}
@media (max-width:480px){.popk img{width:84px}}
/* 編集画面の見出しとボタン（一覧に戻る・プレビュー・保存する）を、スクロールしても上に残す（2026-10-21） */
.page h1.stickhead{position:sticky;top:0;z-index:30;background:var(--bg);margin:-12px -28px 16px;padding:12px 28px;border-bottom:1px solid transparent;transition:border-color .15s,box-shadow .15s}
.page h1.stickhead.stuck{border-bottom-color:var(--line);box-shadow:0 4px 10px rgba(38,42,69,.06)}
.page:has(h1.stickhead) .sticky{top:84px}
@media (max-width:900px){.page h1.stickhead{margin:-8px -16px 12px;padding:8px 16px}}
/* アイコン（Lucide）：左メニューだけ。項目は文字と同じ色で小さめ（乗せる・開いている画面で青紫）、見出しは青紫で大きめ（2026-10-21：各画面の見出しには付けない） */
.nav a{display:flex;align-items:center;gap:9px}
.nav .ni{width:17px;height:17px;flex:none;stroke-width:2}
.grp .gi{width:20px;height:20px;flex:none;color:var(--p);margin-right:-2px}
@media (max-width:900px){