/* カー スペック コンペア — 計器盤(ダッシュボード)のような暗色UI。数字は細身の縦長書体、アクセントは信号灯の橙赤 */
:root{
  --bg:#eceef2;--bg2:#e2e5ec;--card:#ffffff;--card2:#f6f7fa;--tx:#12151c;--sub:#5d6575;--line:#d9dde6;
  --acc:#e8431a;--acc2:#ff7a3d;--accTx:#ffffff;--best:#0f8f55;--bestBg:rgba(15,143,85,.12);--worst:#c33a3a;--warn:#fff3da;--glass:rgba(236,238,242,.82);
  --disp:"Barlow Condensed","Arial Narrow","Hiragino Sans",sans-serif;--body:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN",-apple-system,sans-serif;
  --r:14px;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0a0c11;--bg2:#10131a;--card:#141821;--card2:#1b202b;--tx:#eef1f6;--sub:#8d96a8;--line:#262c39;
  --acc:#ff5a26;--acc2:#ff9a5c;--accTx:#120700;--best:#3ee08f;--bestBg:rgba(62,224,143,.12);--worst:#ff6b6b;--warn:#2a2210;--glass:rgba(10,12,17,.82);color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0a0c11;--bg2:#10131a;--card:#141821;--card2:#1b202b;--tx:#eef1f6;--sub:#8d96a8;--line:#262c39;
  --acc:#ff5a26;--acc2:#ff9a5c;--accTx:#120700;--best:#3ee08f;--bestBg:rgba(62,224,143,.12);--worst:#ff6b6b;--warn:#2a2210;--glass:rgba(10,12,17,.82);color-scheme:dark}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
html,body{overflow-x:hidden}
body{margin:0;background:var(--bg);color:var(--tx);font:15px/1.55 var(--body);padding-bottom:calc(84px + env(safe-area-inset-bottom));letter-spacing:.01em}
button,select,input{font-family:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}

/* ヘッダー */
header{position:sticky;top:0;z-index:20;background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:calc(12px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-left)) 8px max(16px,env(safe-area-inset-left));border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.mark{width:34px;height:34px;flex:none;border-radius:9px;background:linear-gradient(135deg,var(--acc),var(--acc2));position:relative;overflow:hidden}
.mark:before,.mark:after{content:"";position:absolute;left:-6px;right:-6px;height:5px;background:var(--accTx);opacity:.9;transform:skewY(-18deg)}
.mark:before{top:12px}.mark:after{top:21px;opacity:.55}
.brand .en{font:600 11px/1 var(--disp);letter-spacing:.28em;color:var(--acc);text-transform:uppercase}
h1{font:900 21px/1.15 var(--body);margin:3px 0 0;letter-spacing:.04em}
.search{display:block;width:100%;padding:12px 14px 12px 42px;border-radius:12px;border:1px solid var(--line);background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%238d96a8' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E") no-repeat 14px 50%;color:var(--tx);font-size:16px}
.search::placeholder{color:var(--sub)}
.chipbar{max-width:760px;margin:0 auto;padding:0 max(16px,env(safe-area-inset-left))}
.chips{display:flex;gap:8px;overflow-x:auto;padding:10px 0 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;padding:7px 13px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--tx);font-size:13px;font-weight:500;white-space:nowrap}
.chip small{font:600 11px var(--disp);letter-spacing:.06em;color:var(--sub);margin-left:5px}
.chip.on{background:var(--acc);border-color:var(--acc);color:var(--accTx);font-weight:700}
.chip.on small{color:inherit;opacity:.75}
.cats{padding-bottom:0}.chip.off{opacity:.4;border-style:dashed}

main{padding:6px max(16px,env(safe-area-inset-right)) 4px max(16px,env(safe-area-inset-left));max-width:760px;margin:0 auto}
.note{display:flex;gap:8px;align-items:flex-start;border-radius:10px;padding:9px 12px;font-size:11.5px;line-height:1.5;color:var(--sub);margin:10px 0;background:var(--card);border:1px solid var(--line)}
.note:before{content:"i";flex:none;width:16px;height:16px;border-radius:50%;background:var(--acc);color:var(--accTx);font:700 11px/16px var(--body);text-align:center;margin-top:1px}

/* 車種グループ・カード */
.grp{margin:22px 0 6px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.grp b{font:900 19px/1.2 var(--body)}
.grp small{font-weight:500;color:var(--sub);font-size:11.5px}
.card{position:relative;background:var(--card);border-radius:var(--r);padding:12px 12px 12px 16px;margin:8px 0;display:flex;gap:12px;align-items:center;border:1px solid var(--line);overflow:hidden}
.card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--mk,var(--line))}
.card[data-mk="日産"]{--mk:#e60033}.card[data-mk="トヨタ"]{--mk:#ff7a00}.card[data-mk="ホンダ"]{--mk:#2f8cff}.card[data-mk="ダイハツ"]{--mk:#e8444f}.card[data-mk="三菱"]{--mk:#c4161c}.card[data-mk="スバル"]{--mk:#2457c5}.card[data-mk="マツダ"]{--mk:#7a2df0}.card[data-mk="スズキ"]{--mk:#1aa6d9}
.card .meta{flex:1;min-width:0}
.card,.rank,.tbl,.seg{max-width:100%}
.card .name{font-weight:700;font-size:14.5px;line-height:1.35;overflow-wrap:anywhere}
.card .sub{color:var(--sub);font-size:12px;margin-top:3px;display:flex;gap:10px;flex-wrap:wrap;align-items:baseline}
.card .price{font:600 24px/1 var(--disp);letter-spacing:.01em;color:var(--tx);font-variant-numeric:tabular-nums}
.card .price i{font:500 11px var(--body);font-style:normal;color:var(--sub);margin-left:2px}
.badge{font-size:10.5px;padding:2px 8px;border-radius:5px;background:var(--card2);border:1px solid var(--line);margin-right:6px;color:var(--sub);font-weight:500}
.badge.nissan{background:rgba(230,0,51,.14);border-color:rgba(230,0,51,.5);color:#ff4d6d}
.pick{width:42px;height:42px;flex:none;border-radius:12px;border:1.5px solid var(--line);background:var(--card2);color:var(--tx);font-size:22px;line-height:1;display:grid;place-items:center}
.pick.on{background:var(--acc);border-color:var(--acc);color:var(--accTx);font-weight:700}

/* ランキング */
.seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:12px;background:var(--card);border:1px solid var(--line);margin:12px 0}
.seg button{border:0;border-radius:9px;background:none;color:var(--sub);padding:10px 8px;font-size:14px;font-weight:700}
.seg button.on{background:var(--acc);color:var(--accTx)}
.seg button small{display:block;font-weight:500;font-size:10.5px;opacity:.8}
.rtitle{font:900 17px/1.3 var(--body);margin:14px 0 0}
.rank{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 14px 10px 6px;margin:6px 0;background:var(--card);border-radius:12px;border:1px solid var(--line);position:relative;overflow:hidden}
.rank:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--p,0%);background:linear-gradient(90deg,var(--bestBg),transparent);pointer-events:none}
.rank .no{font:700 22px/1 var(--disp);color:var(--sub);text-align:center;position:relative}
.rank:nth-of-type(-n+3) .no{color:var(--acc)}
.rank .meta{position:relative;min-width:0}.rank .name{font-weight:600;font-size:13.5px;line-height:1.35;overflow-wrap:anywhere}.rank .sub{margin-top:2px}
.rank .v{font:600 22px/1 var(--disp);position:relative;font-variant-numeric:tabular-nums;white-space:nowrap}
.rank .v i{font:500 11px var(--body);font-style:normal;color:var(--sub);margin-left:3px}

/* 比較 */
.slot{display:flex;gap:8px;align-items:center;margin:8px 0}
.slotn{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--acc),var(--acc2));color:var(--accTx);display:grid;place-items:center;font:700 16px var(--disp);flex:none}
.slot select,.colsel{flex:1;min-width:0;padding:11px 12px;border-radius:11px;border:1px solid var(--line);background:var(--card);color:var(--tx);font-size:14.5px}
.colsel{width:100%;margin:6px 0}
.imgs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.car{margin:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:6px;min-width:0}
.car .ph{background:#fff;border-radius:10px;aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden}
.car img{width:100%;height:100%;object-fit:contain}
.car .phmsg{display:none;color:#555;font-size:12px;padding:8px;text-align:center}
.car .ph.err img{display:none}.car .ph.err .phmsg,.car .ph:not(:has(img)) .phmsg{display:block}
.car figcaption{font-size:12px;line-height:1.45;margin-top:7px;padding:0 4px 3px}
.car figcaption b{font-size:13.5px}
.tbl{border-radius:var(--r);border:1px solid var(--line);background:var(--card);overflow:hidden}
.tbl table{border-collapse:collapse;width:100%;table-layout:fixed}
.tbl th{padding:12px 10px;font-size:13px;font-weight:700;text-align:center;line-height:1.35;background:var(--card2);border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.tbl th small{display:block;font-weight:500;color:var(--sub);font-size:11px}
.tbl th:first-child{width:78px}
.tbl td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:center;font:600 17px/1.2 var(--disp);position:relative;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.tbl td:first-child{font:500 11.5px/1.3 var(--body);color:var(--sub);text-align:left}
.tbl tr.gh td,.tbl tr.gh td:first-child{background:var(--bg2);font:700 10.5px/1 var(--disp);letter-spacing:.22em;color:var(--acc);text-align:left;padding:8px 10px;text-transform:uppercase;width:auto;position:static;text-align:left}
.tbl td.t{font:500 13px/1.35 var(--body)}
.tbl td.best{color:var(--best)}
.tbl td.best:after{content:"BEST";position:absolute;right:5px;top:4px;font:700 8.5px/1 var(--disp);letter-spacing:.12em;color:var(--best);opacity:.9}
.tbl td .bar{display:block;height:3px;border-radius:2px;background:var(--line);margin:6px auto 0;max-width:88%;overflow:hidden}
.tbl td .bar i{display:block;height:100%;width:var(--p);background:var(--sub);border-radius:2px}
.tbl td.best .bar i{background:var(--best)}
.tbl td i.u{font:500 10.5px var(--body);font-style:normal;color:var(--sub);margin-left:2px}
.hint{font-size:11.5px;color:var(--sub);margin:8px 2px}

/* オプション・切り返し */
.sec{font:900 16px/1.3 var(--body);margin:26px 0 4px;display:flex;align-items:center;gap:8px}
.sec:before{content:"";width:4px;height:16px;border-radius:2px;background:var(--acc)}
.reb{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:10px 0}
.reb h3{margin:0 0 4px;font-size:14.5px}.reb p{margin:4px 0;font-size:13.5px}.reb .vs{font-size:11.5px;color:var(--sub)}
.empty{text-align:center;color:var(--sub);padding:44px 0;line-height:1.8}
.opt{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}
.opt input{margin-top:3px;width:20px;height:20px;flex:none;accent-color:var(--acc)}.opt span{flex:1}.opt b{white-space:nowrap;font:600 16px var(--disp)}
.opt.dis{opacity:.45}
.opt small.sub,.sub{color:var(--sub)}

/* ナビ */
nav{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom));z-index:50;display:flex;gap:4px;padding:5px;border-radius:18px;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,.28);width:min(340px,calc(100% - 32px))}
nav button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 0;border:0;border-radius:13px;background:none;color:var(--sub);font-size:13px;font-weight:700}
nav button svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
nav button.on{background:var(--acc);color:var(--accTx)}
nav #cnt{font:700 12px var(--disp);background:var(--accTx);color:var(--acc);border-radius:8px;padding:1px 6px;min-width:18px;text-align:center}
nav #cnt:empty{display:none}
@media(prefers-reduced-motion:no-preference){.card,.rank{transition:border-color .15s}.card:active{border-color:var(--acc)}}

header .brand{transition:margin .2s,max-height .2s,opacity .2s;max-height:60px;overflow:hidden}
header.compact .brand{max-height:0;opacity:0;margin-bottom:0}
header.compact{padding-top:calc(8px + env(safe-area-inset-top))}

/* 切り返しトーク */
.talk{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin:12px 0;display:flex;flex-direction:column;gap:10px}
.talk .vs{font:700 14px/1.4 var(--body);color:var(--tx)}.talk .vs small{font-weight:500;color:var(--sub);font-size:11.5px}
.tk-wins{border-radius:11px;padding:10px 12px;background:var(--bestBg);border:1px solid rgba(62,224,143,.35)}
.tk-wins b{font-size:12px;color:var(--best);letter-spacing:.04em}
.tk-wins ul,.tk-say ul{margin:6px 0 0;padding-left:18px}.tk-wins li{font-size:13px;margin:3px 0}
.tk-gap{border-radius:11px;padding:11px 12px;background:var(--card2);border:1px solid var(--line);border-left:4px solid var(--acc)}
.tk-h{font:700 14px/1.4 var(--body)}
.tk-fact{margin:5px 0 8px;font-size:12.5px;color:var(--sub)}
.tk-say li{font-size:13.5px;margin:5px 0;line-height:1.6}
.tk-tag{display:inline-block;font:700 10.5px/1 var(--body);letter-spacing:.08em;padding:3px 7px;border-radius:5px;background:var(--acc);color:var(--accTx);margin-right:6px}
.tk-tag.q{background:var(--tx);color:var(--bg)}
.tk-ask{margin-top:8px;font-size:13.5px;font-weight:700;line-height:1.6}
.tk-none{font-size:13.5px;padding:6px 2px}
.copy{align-self:flex-start;border:1px solid var(--line);background:var(--card2);color:var(--tx);border-radius:10px;padding:9px 14px;font-size:13px;font-weight:700}
.copy:active{border-color:var(--acc)}

.tk-price{border-radius:11px;padding:11px 12px;background:var(--card2);border:1px solid var(--line);border-left:4px solid var(--best)}
.pt{border-top:1px solid var(--line);padding:8px 0 4px}
.pt:first-of-type{border-top:0}
.pt summary{cursor:pointer;font-weight:700;font-size:13.5px;line-height:1.5;list-style:none;display:flex;gap:8px;align-items:flex-start}
.pt summary::-webkit-details-marker{display:none}
.pt summary:before{content:"+";flex:none;width:20px;height:20px;border-radius:6px;background:var(--bg2);border:1px solid var(--line);text-align:center;line-height:18px;font-weight:700;color:var(--acc)}
.pt[open] summary:before{content:"−"}
.pt ul{margin:8px 0 0;padding-left:20px}.pt li{font-size:13.5px;line-height:1.65;margin:5px 0}

.seg-s{margin:8px 0}.seg-s button{padding:8px 6px;font-size:12.5px}
.bks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 8px}
.bk{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12px;line-height:1.5;min-width:0}
.bk b{font-size:12.5px}.bk ul{margin:4px 0;padding:0;list-style:none}.bk li{display:flex;justify-content:space-between;gap:6px;border-top:1px dashed var(--line);padding:3px 0;font-size:11.5px}
.bk li span{white-space:nowrap;font-weight:700}.bk-t{margin-top:4px;font:600 16px var(--disp);color:var(--acc)}

/* 装備の違い */
.eqt td{font:500 13px/1.35 var(--body)}.eqt td:first-child{font:500 12px/1.35 var(--body);color:var(--sub)}
.eqt tr.eqd td{background:rgba(255,90,38,.07)}
.eq{display:inline-block;font-weight:700;font-size:12.5px;padding:3px 8px;border-radius:6px;line-height:1.4}
.eq small{font-weight:500;font-size:11px}
.eq.std{background:var(--bestBg);color:var(--best)}
.eq.opt{background:rgba(255,170,40,.16);color:#e8a000}
.eq.no{background:rgba(255,107,107,.14);color:var(--worst)}
.eq.unk{color:var(--sub);font-weight:500}

.seg3{grid-template-columns:repeat(3,1fr);margin:18px 0 6px}.seg3 button{font-size:12px;padding:10px 2px;line-height:1.3;letter-spacing:-.01em}

/* プルダウン(開閉)セクション */
.acc{margin:14px 0;border:1px solid var(--line);border-radius:var(--r);background:var(--card);overflow:hidden}
.acc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;font:900 16px/1.3 var(--body);user-select:none}
.acc>summary::-webkit-details-marker{display:none}
.acc>summary:before{content:"";width:4px;height:16px;border-radius:2px;background:var(--acc);flex:none;margin-right:2px}
.acc>summary{justify-content:flex-start}
.acc>summary:after{content:"";margin-left:auto;width:9px;height:9px;border-right:2.5px solid var(--sub);border-bottom:2.5px solid var(--sub);transform:rotate(45deg);transition:transform .2s;margin-top:-3px}
.acc[open]>summary:after{transform:rotate(-135deg);margin-top:3px}
.acc>.acc-b{padding:0 14px 14px}
.acc>.acc-b>.tbl{margin-top:2px}
.acc .reb:first-child,.acc .talk:first-of-type{margin-top:4px}
