/* ============================================
   Cogito — 思考の型トレーニング
   セージグリーン × ボタニカル（kakeibo/基礎テストと共通の体系）
   ============================================ */
:root {
  --sage-50:#F4F7F1; --sage-100:#E5EDDF; --sage-200:#C9D9BD; --sage-300:#AEC59B;
  --sage-400:#9CAF88; --sage-500:#7E956A; --sage-600:#607851; --sage-700:#4A5E40;
  --cream-50:#FAF8EE; --cream-100:#F4F2E8; --cream-200:#ECE9D8;
  --text:#4A5240; --text-mute:#8A9080; --text-light:#B5B8A8; --text-dark:#2C3328;
  --bg:#F4F2E8; --card:#FFFFFC; --card-soft:#F8F6EC; --border:#E5E2D2; --border-soft:#EFEDE0;
  --shadow-sm:0 1px 3px rgba(74,82,64,.04);
  --shadow:0 2px 12px rgba(74,82,64,.05),0 1px 3px rgba(74,82,64,.04);
  --shadow-lg:0 8px 28px rgba(74,82,64,.08);
  --danger:#C97474; --danger-bg:#FBEEEE; --ok:#7E956A; --ok-bg:#EDF3E6;
  --gold:#C9A86A;
  /* 型カラー */
  --sum:#6E8FA8; --sum-bg:#EAF1F5;
  --abs:#8E7CA8; --abs-bg:#F0ECF5;
  --opi:#A88B6E; --opi-bg:#F5EEE6;
  --cri:#B07A78; --cri-bg:#F6EAE9;
  --font-jp:'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho',serif;
  --font-en:'Cormorant Garamond',Georgia,serif;
  --font-ui:-apple-system,BlinkMacSystemFont,'Hiragino Sans','Yu Gothic UI','Meiryo',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;overscroll-behavior:none;}
body{font-family:var(--font-ui);background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;letter-spacing:.01em;}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
svg{display:block;}
ul,ol{list-style:none;}
input,textarea{font:inherit;}

/* 背景装飾 */
.bg-decor{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;}
.bg-leaf{position:absolute;background-repeat:no-repeat;background-size:contain;opacity:.15;}
.bg-leaf-tr{width:62vw;height:62vw;max-width:560px;max-height:560px;top:-13vw;right:-13vw;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'><g fill='none' stroke='%237E956A' stroke-width='1.2' stroke-linecap='round'><path d='M50 350 Q 200 200 380 50'/><path d='M70 360 Q 110 280 80 240'/><path d='M120 320 Q 160 250 130 220'/><path d='M170 280 Q 210 220 180 195'/><path d='M220 235 Q 260 180 230 160'/><ellipse cx='90' cy='250' rx='6' ry='14' fill='%23AEC59B' stroke='none' transform='rotate(-30 90 250)'/><ellipse cx='140' cy='230' rx='6' ry='14' fill='%23AEC59B' stroke='none' transform='rotate(-25 140 230)'/><ellipse cx='190' cy='200' rx='6' ry='14' fill='%23AEC59B' stroke='none' transform='rotate(-22 190 200)'/></g></svg>");}
.bg-leaf-br{width:42vw;height:42vw;max-width:420px;max-height:420px;bottom:-9vw;left:-9vw;opacity:.11;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'><g fill='none' stroke='%237E956A' stroke-width='1.2' stroke-linecap='round'><path d='M20 380 Q 150 250 320 80'/><path d='M60 380 Q 80 320 120 300'/><ellipse cx='100' cy='320' rx='6' ry='14' fill='%23AEC59B' stroke='none' transform='rotate(-40 100 320)'/></g></svg>");}
.bg-glow{position:absolute;width:80vw;height:80vw;top:-30vw;left:-20vw;background:radial-gradient(circle,rgba(255,250,220,.5) 0%,rgba(255,250,220,0) 60%);}

/* レイアウト */
#app{position:relative;min-height:100vh;z-index:1;display:flex;flex-direction:column;}
.screen{position:relative;z-index:2;flex:1;width:100%;max-width:540px;margin:0 auto;
  padding:calc(env(safe-area-inset-top) + 18px) 20px calc(env(safe-area-inset-bottom) + 32px);}
.fade{animation:fade .35s ease;}
@keyframes fade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

/* ブランド見出し */
.home-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:6px;}
.brand{font-family:var(--font-en);font-size:38px;font-weight:600;color:var(--sage-600);letter-spacing:.02em;line-height:1;}
.brand-dot{color:var(--sage-400);}
.brand-sub{font-family:var(--font-jp);font-size:12.5px;color:var(--text-mute);margin-top:8px;letter-spacing:.05em;}
.lead{font-family:var(--font-jp);font-size:14px;color:var(--text-mute);margin:30px 2px 14px;letter-spacing:.03em;}
.lead2{font-family:var(--font-jp);font-size:13.5px;color:var(--text-dark);font-weight:600;margin:26px 2px 12px;}
.section-em{font-family:var(--font-en);font-size:12px;color:var(--text-light);font-weight:500;letter-spacing:.12em;display:block;margin-bottom:3px;text-transform:uppercase;}
.footnote{font-family:var(--font-jp);font-size:11px;color:var(--text-light);text-align:center;margin-top:30px;line-height:1.7;}
.note-mini{font-family:var(--font-jp);font-size:11.5px;color:var(--text-light);margin-top:12px;line-height:1.7;}

.icon-btn{width:42px;height:42px;border-radius:14px;background:var(--card);border:1px solid var(--border-soft);
  display:flex;align-items:center;justify-content:center;color:var(--text-mute);box-shadow:var(--shadow-sm);flex:none;}
.icon-btn svg{width:21px;height:21px;}

/* 戻る/トップバー */
.appbar{position:relative;z-index:2;display:flex;align-items:center;gap:10px;
  max-width:540px;margin:0 auto;width:100%;
  padding:calc(env(safe-area-inset-top) + 14px) 18px 4px;}
.back{display:inline-flex;align-items:center;gap:5px;color:var(--text-mute);font-family:var(--font-jp);font-size:13px;padding:6px 4px;}
.back svg{width:17px;height:17px;}
.appbar-title{font-family:var(--font-jp);font-size:14px;font-weight:600;color:var(--text-dark);margin-left:auto;}

/* 統計 */
.stat-row{display:flex;gap:11px;margin-top:22px;}
.stat{flex:1;background:var(--card);border:1px solid var(--border-soft);border-radius:18px;
  padding:15px 10px;text-align:center;box-shadow:var(--shadow-sm);position:relative;}
.stat b{font-family:var(--font-en);font-size:28px;font-weight:600;color:var(--sage-600);line-height:1;display:block;}
.stat-lab{font-family:var(--font-jp);font-size:11px;color:var(--text-mute);margin-top:6px;display:block;}
.stat-ic{position:absolute;top:11px;right:11px;color:var(--gold);opacity:.8;}
.stat-ic svg{width:16px;height:16px;}

/* CTA */
.cta{display:flex;align-items:center;gap:15px;width:100%;text-align:left;margin-top:18px;
  background:var(--sage-500);color:#fff;border-radius:22px;padding:20px;box-shadow:var(--shadow-lg);
  transition:transform .18s ease;}
.cta:active{transform:scale(.98);}
.cta-ic{width:46px;height:46px;border-radius:15px;flex:none;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.18);}
.cta-ic svg{width:24px;height:24px;}
.cta-t{font-family:var(--font-jp);font-size:16px;font-weight:600;display:block;}
.cta-s{font-family:var(--font-jp);font-size:11.5px;opacity:.88;margin-top:3px;display:block;}
.cta-meta{flex:1;}
.cta-arrow{opacity:.9;}.cta-arrow svg{width:22px;height:22px;}

.cta.cta-alt{background:var(--card);border:1px solid var(--border-soft);box-shadow:var(--shadow);margin-top:12px;}
.cta.cta-alt .cta-t{color:var(--text-dark);}
.cta.cta-alt .cta-s{color:var(--text-mute);}
.cta.cta-alt .cta-arrow{color:var(--sage-300);}
.cta-ic.alt{background:var(--sage-50);color:var(--sage-500);}

/* 履歴 */
.hist{display:flex;flex-direction:column;gap:11px;}
.hist-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;width:100%;
  background:var(--card);border:1px solid var(--border-soft);border-radius:18px;padding:16px 18px;
  box-shadow:var(--shadow-sm);transition:transform .15s ease,border-color .15s ease;}
.hist-card:active{transform:scale(.98);border-color:var(--sage-300);}
.hist-date{font-family:var(--font-en);font-size:12px;color:var(--text-light);letter-spacing:.06em;}
.hist-title{font-family:var(--font-jp);font-size:15px;font-weight:600;color:var(--text-dark);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.hist-foot{display:flex;align-items:center;gap:10px;margin-top:2px;}
.hist-modes{font-family:var(--font-jp);font-size:11.5px;color:var(--sage-500);}
.hist-graded{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-jp);font-size:11px;color:var(--gold);}
.hist-graded svg{width:13px;height:13px;}
.empty{text-align:center;padding:36px 20px;color:var(--text-light);}
.empty svg{width:40px;height:40px;margin:0 auto 12px;opacity:.5;}
.empty p{font-family:var(--font-jp);font-size:13px;line-height:1.8;}

/* PDF取り込み */
.import-row{margin-bottom:10px;}
.import-row .ghost{color:var(--sage-600);border-color:var(--sage-200);background:var(--sage-50);}
.import-row .ghost svg{width:19px;height:19px;}
.import-status{font-family:var(--font-jp);font-size:12px;margin-bottom:8px;min-height:1px;}
.import-status .ok{display:inline-flex;align-items:center;gap:5px;color:var(--ok);}
.import-status .ok svg{width:15px;height:15px;}
.import-status .err{color:var(--danger);line-height:1.7;}
.pdf-thumbs{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:8px;}
.pdf-thumbs img{height:96px;border-radius:10px;border:1px solid var(--border);box-shadow:var(--shadow-sm);flex:none;background:#fff;}
.pdf-thumbs:empty{display:none;}

/* 記事ページ画像（学習中・見直し） */
.art-imgs{display:flex;flex-direction:column;gap:10px;margin-bottom:12px;}
.art-imgs:empty{display:none;}
.art-imgs img{width:100%;border-radius:10px;border:1px solid var(--border);box-shadow:var(--shadow-sm);}
.art-text{font-family:var(--font-jp);font-size:13px;line-height:1.9;color:var(--text);}

/* フォーム */
.field{margin-bottom:16px;}
.field label{display:block;font-family:var(--font-jp);font-size:12.5px;font-weight:600;color:var(--text-dark);margin-bottom:7px;}
.req{font-family:var(--font-jp);font-size:10px;color:var(--danger);background:var(--danger-bg);padding:2px 7px;border-radius:999px;margin-left:7px;font-weight:600;}
.opt{font-family:var(--font-jp);font-size:10px;color:var(--text-light);background:var(--cream-200);padding:2px 7px;border-radius:999px;margin-left:7px;}
.inp{width:100%;background:var(--card);border:1.5px solid var(--border);border-radius:14px;padding:13px 14px;color:var(--text-dark);outline:none;transition:border-color .15s;}
.inp:focus{border-color:var(--sage-400);}
.ta{width:100%;background:var(--card);border:1.5px solid var(--border);border-radius:16px;padding:14px;color:var(--text-dark);outline:none;resize:vertical;line-height:1.8;transition:border-color .15s;}
.ta:focus{border-color:var(--sage-400);}
.ta-body{min-height:150px;font-size:13.5px;}
.ta-ans{min-height:120px;font-size:14.5px;margin-top:14px;}
.ta-count{text-align:right;font-family:var(--font-en);font-size:12px;color:var(--text-light);margin-top:5px;letter-spacing:.04em;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media (max-width:380px){.row2{grid-template-columns:1fr;}}

/* 型選択 */
.mode-pick{display:flex;flex-direction:column;gap:11px;}
.mode-card{display:flex;align-items:center;gap:14px;width:100%;text-align:left;
  background:var(--card);border:1.5px solid var(--border);border-radius:18px;padding:15px 16px;
  box-shadow:var(--shadow-sm);transition:border-color .15s,background .15s;}
.mode-card.on{border-color:var(--sage-400);background:var(--sage-50);}
.mode-ic{width:44px;height:44px;border-radius:14px;flex:none;display:flex;align-items:center;justify-content:center;}
.mode-ic svg{width:24px;height:24px;}
.mode-ic.sm{width:30px;height:30px;border-radius:10px;}.mode-ic.sm svg{width:17px;height:17px;}
.mode-ic.sum{background:var(--sum-bg);color:var(--sum);}
.mode-ic.abs{background:var(--abs-bg);color:var(--abs);}
.mode-ic.opi{background:var(--opi-bg);color:var(--opi);}
.mode-ic.cri{background:var(--cri-bg);color:var(--cri);}
.mode-meta{flex:1;min-width:0;}
.mode-name{font-family:var(--font-jp);font-size:14.5px;font-weight:600;color:var(--text-dark);display:block;}
.mode-desc{font-family:var(--font-jp);font-size:11.5px;color:var(--text-mute);margin-top:3px;display:block;}
.mode-tick{width:26px;height:26px;border-radius:50%;flex:none;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;color:transparent;transition:all .15s;}
.mode-tick svg{width:15px;height:15px;}
.mode-card.on .mode-tick{background:var(--sage-500);border-color:var(--sage-500);color:#fff;}

/* ボタン */
.primary{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--sage-500);color:#fff;border-radius:16px;padding:16px;font-family:var(--font-jp);font-size:15px;font-weight:600;
  box-shadow:var(--shadow);transition:transform .15s,opacity .15s;margin-top:8px;}
.primary:active{transform:scale(.98);}
.primary:disabled{opacity:.45;}
.primary svg{width:18px;height:18px;}
.primary.loading{opacity:.6;}
.ghost{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  background:var(--card);border:1.5px solid var(--border);border-radius:14px;padding:13px 16px;
  font-family:var(--font-jp);font-size:13.5px;font-weight:600;color:var(--text-mute);transition:transform .15s;}
.ghost:active{transform:scale(.98);}
.ghost.wide{width:100%;}
.ghost svg{width:17px;height:17px;}
.danger-text{display:inline-flex;align-items:center;gap:6px;color:var(--danger);font-family:var(--font-jp);font-size:13px;font-weight:600;padding:10px;}
.danger-text svg{width:16px;height:16px;}

/* トレーニング */
.t-progress{margin-bottom:16px;}
.t-progrow{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;}
.t-step{font-family:var(--font-en);font-size:14px;color:var(--text-mute);letter-spacing:.05em;}
.t-step b{color:var(--sage-600);font-size:19px;font-weight:600;}
.t-badge{font-family:var(--font-jp);font-size:11px;font-weight:600;padding:4px 12px;border-radius:999px;}
.t-badge.sum{background:var(--sum-bg);color:var(--sum);}
.t-badge.abs{background:var(--abs-bg);color:var(--abs);}
.t-badge.opi{background:var(--opi-bg);color:var(--opi);}
.t-badge.cri{background:var(--cri-bg);color:var(--cri);}
.progress-track{height:6px;background:var(--cream-200);border-radius:999px;overflow:hidden;}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--sage-300),var(--sage-500));border-radius:999px;transition:width .4s ease;}

.art-panel{background:var(--card-soft);border:1px solid var(--border-soft);border-radius:16px;margin-bottom:16px;overflow:hidden;}
.art-panel summary{display:flex;align-items:center;gap:8px;padding:13px 16px;font-family:var(--font-jp);font-size:13px;font-weight:600;color:var(--text-mute);cursor:pointer;list-style:none;}
.art-panel summary::-webkit-details-marker{display:none;}
.art-panel summary svg{width:17px;height:17px;}
.art-body{padding:0 16px 16px;font-family:var(--font-jp);font-size:13px;line-height:1.9;color:var(--text);max-height:300px;overflow:auto;border-top:1px solid var(--border-soft);padding-top:14px;}

.q-card{background:var(--card);border:1px solid var(--border-soft);border-radius:22px;padding:22px 20px;box-shadow:var(--shadow);}
.q-no{font-family:var(--font-jp);font-size:17px;font-weight:700;color:var(--text-dark);}
.q-inst{font-family:var(--font-jp);font-size:14px;color:var(--text);line-height:1.75;margin-top:10px;}
.q-hint{display:flex;align-items:flex-start;gap:7px;font-family:var(--font-jp);font-size:11.5px;color:var(--sage-600);background:var(--sage-50);padding:10px 12px;border-radius:12px;margin-top:14px;line-height:1.7;}
.q-hint svg{width:15px;height:15px;flex:none;margin-top:2px;}

.t-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;}
.t-nav .ghost{flex:none;}
.t-nav .primary{flex:1;margin-top:0;}
.t-nav span{flex:none;}
.t-dots{display:flex;justify-content:center;gap:7px;margin-top:18px;}
.t-dots .dot{width:7px;height:7px;border-radius:50%;background:var(--cream-200);transition:all .2s;}
.t-dots .dot.done{background:var(--sage-300);}
.t-dots .dot.cur{background:var(--sage-600);transform:scale(1.4);}

/* 見直し */
.rv-head{margin-bottom:18px;}
.rv-title{font-family:var(--font-jp);font-size:18px;font-weight:700;color:var(--text-dark);line-height:1.5;}
.rv-sub{font-family:var(--font-jp);font-size:12px;color:var(--text-mute);margin-top:6px;}
.rv-actions{display:flex;flex-direction:column;gap:10px;}
.rv-actions .primary{margin-top:0;}
.grade-box{background:var(--card);border:1px solid var(--sage-200);border-radius:18px;padding:18px;margin:16px 0 6px;box-shadow:var(--shadow);}
.grade-h{display:flex;align-items:center;gap:8px;font-family:var(--font-jp);font-size:13px;font-weight:700;color:var(--sage-600);margin-bottom:12px;}
.grade-h svg{width:18px;height:18px;color:var(--gold);}
.grade-body{font-family:var(--font-jp);font-size:13.5px;line-height:1.95;color:var(--text);}
.grade-body .err{color:var(--danger);font-size:12.5px;line-height:1.8;}
.dots-anim i{animation:blink 1.2s infinite;}.dots-anim i:nth-child(2){animation-delay:.2s;}.dots-anim i:nth-child(3){animation-delay:.4s;}
@keyframes blink{0%,100%{opacity:.2;}50%{opacity:1;}}

.rv-mode{margin-top:22px;}
.rv-mode-h{display:flex;align-items:center;gap:9px;font-family:var(--font-jp);font-size:14px;font-weight:700;color:var(--text-dark);margin-bottom:11px;}
.rv-item{background:var(--card);border:1px solid var(--border-soft);border-radius:14px;padding:14px 16px;margin-bottom:9px;box-shadow:var(--shadow-sm);}
.rv-q{font-family:var(--font-jp);font-size:12px;font-weight:600;color:var(--sage-600);margin-bottom:6px;}
.rv-a{font-family:var(--font-jp);font-size:13.5px;line-height:1.85;color:var(--text-dark);white-space:normal;}
.rv-a.blank{color:var(--text-light);font-style:normal;}
.rv-foot{display:flex;align-items:center;justify-content:space-between;margin-top:26px;}

/* 設定 */
.card{background:var(--card);border:1px solid var(--border-soft);border-radius:18px;box-shadow:var(--shadow-sm);}
.card.pad{padding:18px;}
.set-desc{font-family:var(--font-jp);font-size:12px;color:var(--text-mute);line-height:1.85;margin-bottom:16px;}
.set-howto ol{counter-reset:n;display:flex;flex-direction:column;gap:11px;margin-bottom:14px;}
.set-howto li{counter-increment:n;position:relative;padding-left:32px;font-family:var(--font-jp);font-size:13px;line-height:1.7;color:var(--text);}
.set-howto li::before{content:counter(n);position:absolute;left:0;top:0;width:22px;height:22px;border-radius:50%;background:var(--sage-100);color:var(--sage-600);font-family:var(--font-en);font-weight:600;font-size:13px;display:flex;align-items:center;justify-content:center;}
.model-pick{display:flex;gap:9px;}
.model-opt{flex:1;background:var(--card);border:1.5px solid var(--border);border-radius:14px;padding:12px 8px;text-align:center;transition:all .15s;}
.model-opt.on{border-color:var(--sage-400);background:var(--sage-50);}
.model-opt b{font-family:var(--font-jp);font-size:13px;font-weight:600;color:var(--text-dark);display:block;}
.model-opt span{font-family:var(--font-jp);font-size:10.5px;color:var(--text-mute);margin-top:3px;display:block;}
.set-row{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-jp);font-size:13px;color:var(--text);padding-bottom:14px;border-bottom:1px solid var(--border-soft);margin-bottom:14px;}
.set-row b{font-family:var(--font-en);font-size:16px;color:var(--sage-600);}
.set-btns{display:flex;gap:9px;flex-wrap:wrap;}
.set-btns .ghost{flex:1;padding:11px 8px;font-size:12.5px;}

/* 採点サマリー（見直し画面） */
.score-card{background:var(--card);border:1px solid var(--sage-200);border-radius:18px;padding:18px;margin:16px 0 6px;box-shadow:var(--shadow);}
.score-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px;font-family:var(--font-jp);font-size:12.5px;font-weight:600;color:var(--text-dark);}
.score-top b{font-family:var(--font-en);font-size:26px;font-weight:600;color:var(--sage-600);}
.score-top small,.sc-val small{font-family:var(--font-jp);font-size:11px;color:var(--text-light);font-weight:400;}
.sc-row{display:flex;align-items:center;gap:11px;margin-bottom:9px;}
.sc-name{font-family:var(--font-jp);font-size:12px;font-weight:600;width:42px;flex:none;padding:3px 0;border-radius:6px;text-align:center;}
.sc-name.sum{color:var(--sum);}.sc-name.abs{color:var(--abs);}.sc-name.opi{color:var(--opi);}.sc-name.cri{color:var(--cri);}
.sc-bar{flex:1;height:9px;background:var(--cream-200);border-radius:999px;overflow:hidden;}
.sc-bar i{display:block;height:100%;border-radius:999px;}
.sc-bar i.sum{background:var(--sum);}.sc-bar i.abs{background:var(--abs);}.sc-bar i.opi{background:var(--opi);}.sc-bar i.cri{background:var(--cri);}
.sc-val{font-family:var(--font-en);font-size:15px;font-weight:600;color:var(--text-dark);width:42px;text-align:right;flex:none;}
.issue-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px;}
.issue-tag{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-jp);font-size:11px;color:var(--cri);background:var(--cri-bg);padding:4px 10px;border-radius:999px;}
.issue-tag b{font-family:var(--font-en);font-size:12px;}
.score-comment{font-family:var(--font-jp);font-size:12.5px;color:var(--text);line-height:1.8;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-soft);}

/* 採点結果の貼り付け */
.paste-box{background:var(--card-soft);border:1px solid var(--border-soft);border-radius:14px;margin:10px 0 6px;overflow:hidden;}
.paste-box summary{display:flex;align-items:center;gap:8px;padding:13px 16px;font-family:var(--font-jp);font-size:12.5px;font-weight:600;color:var(--text-mute);cursor:pointer;list-style:none;}
.paste-box summary::-webkit-details-marker{display:none;}
.paste-box summary svg{width:16px;height:16px;}
.paste-box .paste-body{padding:0 14px 14px;}
.paste-box .ta{min-height:90px;font-size:12.5px;}

/* 弱点分析 */
.radar-card{display:flex;flex-direction:column;align-items:center;}
.radar{width:100%;max-width:300px;height:auto;}
.radar-lab{font-family:var(--font-jp);font-size:11px;font-weight:600;fill:var(--text-dark);}
.radar-val{font-family:var(--font-en);font-size:12px;font-weight:600;fill:var(--sage-600);}
.radar-foot{font-family:var(--font-jp);font-size:12px;color:var(--text-mute);margin-top:6px;}
.radar-foot b{font-family:var(--font-en);font-size:15px;color:var(--sage-600);}
.insight{display:flex;flex-direction:column;gap:10px;margin-top:16px;}
.insight-row{display:flex;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--border-soft);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow-sm);}
.insight-lab{font-family:var(--font-jp);font-size:12.5px;color:var(--text-mute);}
.insight-val{font-family:var(--font-jp);font-size:15px;font-weight:700;color:var(--text-dark);}
.insight-val small{font-family:var(--font-en);font-size:13px;font-weight:600;color:var(--text-mute);margin-left:4px;}
.insight-val.sum{color:var(--sum);}.insight-val.abs{color:var(--abs);}.insight-val.opi{color:var(--opi);}.insight-val.cri{color:var(--cri);}
.ib-row{display:flex;align-items:center;gap:11px;margin-bottom:11px;}
.ib-row:last-child{margin-bottom:0;}
.ib-lab{font-family:var(--font-jp);font-size:12px;color:var(--text-dark);width:96px;flex:none;}
.ib-bar{flex:1;height:10px;background:var(--cream-200);border-radius:999px;overflow:hidden;}
.ib-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--cri),#c79390);border-radius:999px;}
.ib-n{font-family:var(--font-en);font-size:14px;font-weight:600;color:var(--text-dark);width:24px;text-align:right;flex:none;}
.empty.big{padding:54px 24px;}
.empty.big .ghost{margin-top:16px;}

/* ホーム 2カラム導線 */
.home-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;}
.mini-card{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;
  background:var(--card);border:1px solid var(--border-soft);border-radius:18px;padding:16px;box-shadow:var(--shadow-sm);transition:transform .15s,border-color .15s;}
.mini-card:active{transform:scale(.97);border-color:var(--sage-300);}
.mini-ic{width:38px;height:38px;border-radius:12px;background:var(--sage-50);color:var(--sage-500);display:flex;align-items:center;justify-content:center;margin-bottom:6px;}
.mini-ic svg{width:20px;height:20px;}
.mini-t{font-family:var(--font-jp);font-size:14px;font-weight:600;color:var(--text-dark);}
.mini-s{font-family:var(--font-jp);font-size:11px;color:var(--text-mute);}

/* サブページのブランド小 */
.brand.sm{font-size:28px;margin-bottom:14px;}

/* セグメント切替 */
.seg{display:flex;gap:6px;background:var(--cream-200);border-radius:14px;padding:4px;margin-bottom:18px;}
.seg-btn{flex:1;padding:10px;border-radius:11px;font-family:var(--font-jp);font-size:13px;font-weight:600;color:var(--text-mute);transition:all .15s;}
.seg-btn.on{background:var(--card);color:var(--sage-600);box-shadow:var(--shadow-sm);}

/* クリップ追加 */
.clip-add{background:var(--card-soft);border:1px solid var(--border-soft);border-radius:16px;padding:16px;margin-top:24px;}
.clip-add>label{display:flex;align-items:center;gap:7px;font-family:var(--font-jp);font-size:12.5px;font-weight:600;color:var(--text-dark);margin-bottom:10px;}
.clip-add>label svg{width:16px;height:16px;color:var(--sage-500);}
.clip-add-row{display:flex;gap:9px;}
.clip-add-row .inp{flex:1;}
.clip-add-row .ghost{flex:none;padding:0 18px;}

/* 用語生成バナー */
.gen-banner{background:var(--sage-50);border:1px solid var(--sage-200);border-radius:16px;padding:16px;margin-top:16px;}
.gen-banner>p{font-family:var(--font-jp);font-size:12.5px;color:var(--sage-700);line-height:1.7;margin-bottom:12px;}
.gen-banner>p b{font-family:var(--font-en);font-size:15px;}
.gen-actions{display:flex;flex-direction:column;gap:9px;}
.gen-actions .primary{margin-top:0;}
.gen-banner .paste-box{margin:10px 0 0;background:var(--card);}

/* 用語リスト */
.clip-list{display:flex;flex-direction:column;gap:9px;}
.clip-item{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border-soft);border-radius:14px;padding:13px 15px;box-shadow:var(--shadow-sm);}
.clip-main{flex:1;min-width:0;}
.clip-term{font-family:var(--font-jp);font-size:14.5px;font-weight:700;color:var(--text-dark);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.clip-field{font-family:var(--font-jp);font-size:10.5px;font-weight:600;color:var(--biz,#A88B6E);background:var(--opi-bg);padding:2px 8px;border-radius:999px;}
.clip-sum{font-family:var(--font-jp);font-size:12.5px;color:var(--text-mute);margin-top:4px;display:block;line-height:1.6;}
.clip-pending{font-family:var(--font-jp);font-size:11.5px;color:var(--gold);margin-top:4px;display:block;}
.clip-side{display:flex;align-items:center;gap:8px;flex:none;}
.clip-stat{font-family:var(--font-en);font-size:12px;color:var(--sage-500);}
.clip-del{color:var(--text-light);padding:4px;}
.clip-del svg{width:17px;height:17px;}

/* 3択クイズ */
.quiz-prog{display:flex;justify-content:space-between;font-family:var(--font-en);font-size:13px;color:var(--text-mute);letter-spacing:.05em;margin-bottom:10px;}
.quiz-q{text-align:center;margin-bottom:16px;}
.quiz-ask{font-family:var(--font-jp);font-size:12px;color:var(--text-mute);margin-bottom:10px;}
.quiz-term{font-family:var(--font-jp);font-size:24px;font-weight:700;color:var(--text-dark);display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;}
.quiz-opts{display:flex;flex-direction:column;gap:11px;margin-bottom:18px;}
.qopt{text-align:left;background:var(--card);border:1.5px solid var(--border);border-radius:16px;padding:16px 18px;
  font-family:var(--font-jp);font-size:14px;line-height:1.6;color:var(--text-dark);box-shadow:var(--shadow-sm);transition:border-color .15s,background .15s,transform .12s;}
.qopt:active{transform:scale(.99);}
.qopt:disabled{opacity:1;}
.qopt.ok{border-color:var(--ok);background:var(--ok-bg);color:var(--sage-700);font-weight:600;}
.qopt.ng{border-color:var(--danger);background:var(--danger-bg);color:var(--danger);}
#qNext{align-items:center;}
.quiz-done{text-align:center;padding:36px 24px;}
.qd-score{font-family:var(--font-en);font-size:52px;font-weight:600;color:var(--sage-600);line-height:1;}
.qd-score small{font-size:24px;color:var(--text-light);}
.qd-lab{font-family:var(--font-jp);font-size:12px;color:var(--text-mute);margin:6px 0 20px;}

/* トースト */
.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 28px);transform:translateX(-50%) translateY(20px);
  background:var(--text-dark);color:#fff;font-family:var(--font-jp);font-size:13px;font-weight:500;
  padding:12px 20px;border-radius:999px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;
  transition:opacity .25s,transform .25s;z-index:100;max-width:90vw;text-align:center;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
