/* ===== rirekisy 構造・レイアウト（サイト共通コア）。配色トークンは theme.css ===== */
  *{box-sizing:border-box;}
  body{margin:0;color:var(--ink);background:#fff;line-height:1.6;-webkit-font-smoothing:antialiased;}
  h1,h2,h3,p{margin:0;}

  /* ===== 全体グリッド（PC=3カラム / スマホ=縦積み） ===== */
  .app{
    display:grid;
    grid-template-columns:minmax(360px,1.05fr) minmax(320px,1.15fr) minmax(240px,.8fr);
    height:100vh;overflow:hidden;           /* PC：全体を1画面に収め、内側だけスクロール */
  }
  .col{min-width:0;display:flex;flex-direction:column;height:100vh;}
  .col--form{background:var(--teal-l);border-right:1px solid var(--line);}
  .col--preview{background:var(--mid-bg);border-right:1px solid var(--line);}
  .col--tips{background:var(--right-bg);}

  /* ===== 左：ヒーロー ===== */
  .hero{
    background:linear-gradient(135deg,var(--teal),var(--teal-d));
    color:#fff;padding:22px 24px 18px;flex-shrink:0;
  }
  .hero__brand{font-size:12px;letter-spacing:.14em;opacity:.85;font-weight:700;}
  .hero__h1{font-size:14px;font-weight:800;letter-spacing:.03em;margin:0 0 8px;opacity:.95;}
  .hero__logolink{display:inline-block;margin-bottom:6px;}
  .hero__logo{display:block;height:40px;width:auto;}
  .hero__title{font-size:22px;font-weight:800;margin-top:4px;letter-spacing:.02em;}
  .hero__sub{font-size:12.5px;opacity:.9;margin-top:4px;line-height:1.7;}
  .preview-save-note{font-size:11.5px;color:var(--teal-d);font-weight:700;margin:18px 2px 0;line-height:1.6;text-align:center;}
  .preview-save-note[hidden]{display:none;}
  .variant{display:flex;gap:8px;margin-top:14px;}
  .variant__btn{
    flex:1;border:1.5px solid rgba(255,255,255,.55);background:rgba(255,255,255,.12);
    color:#fff;border-radius:999px;padding:7px 4px;font-size:12px;font-weight:700;
    cursor:pointer;transition:.15s;
  }
  .variant__btn.is-active{background:#fff;color:var(--teal-d);border-color:#fff;}

  /* ★ 書類切替トグル（ロゴ横・履歴書⇄職務経歴書）＝Rirekisy単一ブランド内の1機能。単一ページをCSSで切替 */
  .hero__top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px;}
  .hero__top .hero__logolink{margin-bottom:0;}
  .doctoggle{display:inline-flex;align-items:center;gap:9px;flex-shrink:0;}
  .doctoggle__label{font-size:12.5px;font-weight:800;color:#fff;opacity:.55;cursor:pointer;white-space:nowrap;transition:opacity .15s;}
  .doctoggle__label.is-active{opacity:1;}
  .doctoggle__sw{width:46px;height:25px;border-radius:999px;background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.6);position:relative;cursor:pointer;padding:0;flex-shrink:0;}
  .doctoggle__knob{position:absolute;top:1px;left:1px;width:21px;height:21px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.25);}
  [data-doc="career"] .doctoggle__knob{transform:translateX(21px);}

  /* doc_type によるコンテンツ出し分け（履歴書⇄職務経歴書） */
  [data-doc="resume"] [data-only="career"]{display:none!important;}
  [data-doc="career"] [data-only="resume"]{display:none!important;}

  /* ===== 左：プログレスバー ===== */
  .progress{
    display:flex;background:#fff;border-bottom:1px solid var(--line);
    padding:10px 12px;gap:2px;overflow-x:auto;flex-shrink:0;
  }
  .progress__step{
    flex:1;min-width:64px;text-align:center;font-size:11px;color:var(--muted);
    position:relative;padding-top:22px;cursor:pointer;white-space:nowrap;font-weight:600;
  }
  .progress__step::before{
    content:attr(data-n);position:absolute;top:0;left:50%;transform:translateX(-50%);
    width:20px;height:20px;border-radius:50%;background:#e3eaee;color:var(--muted);
    font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:1;
  }
  .progress__step::after{
    content:"";position:absolute;top:10px;left:-49%;width:98%;height:2px;background:#e3eaee;z-index:0;
  }
  .progress__step:first-child::after{display:none;}
  .progress__step.is-active{color:var(--teal-d);}
  .progress__step.is-active::before{background:var(--teal);color:#fff;box-shadow:0 0 0 3px rgba(23,176,201,.2);}
  .progress__step.is-done::before{content:"✓";background:var(--teal-d);color:#fff;}
  .progress__step.is-done::after,.progress__step.is-active::after{background:var(--teal);}

  /* ===== 左：フォーム本体 ===== */
  .form{flex:1;overflow-y:auto;padding:22px 24px 8px;}
  .step{display:none;}
  .step.is-active{display:block;animation:fade .25s ease;}
  @keyframes fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
  .step__title{font-size:19px;font-weight:800;}
  .step__lead{font-size:12.5px;color:var(--muted);margin:4px 0 18px;}

  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;}
  .field{display:flex;flex-direction:column;gap:5px;}
  .field--full{grid-column:1/-1;}
  .field > label{font-size:12.5px;font-weight:700;color:#33424e;}
  .field input,.field select,.field textarea{
    background:var(--field-bg);border:1px solid var(--field-line);border-radius:11px;
    padding:12px 14px;font-size:14.5px;line-height:1.5;color:var(--ink);font-family:inherit;width:100%;
    transition:border-color .15s,box-shadow .15s,background .15s;
  }
  .field textarea{resize:vertical;min-height:120px;line-height:1.7;}
  .field input:hover,.field select:hover,.field textarea:hover{border-color:#b9c6cf;}
  .field input:focus,.field select:focus,.field textarea:focus{
    outline:none;border-color:var(--teal);background:var(--card);box-shadow:0 0 0 3px rgba(23,176,201,.18);
  }
  .field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.6;}

  .photo{display:flex;align-items:center;gap:12px;}
  .photo__thumb{width:52px;height:66px;border-radius:8px;background:var(--field-bg);
    border:1px dashed var(--field-line);display:flex;align-items:center;justify-content:center;color:#b6c2cb;font-size:22px;}
  .photo__btn{color:var(--teal-d);font-weight:700;font-size:13px;cursor:pointer;background:none;border:none;padding:0;}

  .subhead{font-size:15px;font-weight:800;margin:26px 0 6px;color:#33424e;}
  .subhead--toggle{display:flex;align-items:center;justify-content:space-between;cursor:pointer;
    padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:10px;margin-top:22px;}
  .subhead--toggle .chev{transition:.2s;color:var(--muted);}
  .collapse{display:none;padding-top:16px;}
  .collapse.is-open{display:block;}

  /* 動的行テーブル */
  .rows{display:flex;flex-direction:column;gap:10px;}
  .row{display:grid;grid-template-columns:92px 66px 1fr 34px;gap:8px;align-items:center;}
  .row input,.row select{background:var(--field-bg);border:1px solid var(--field-line);border-radius:10px;padding:11px 12px;font-size:14px;color:var(--ink);font-family:inherit;width:100%;transition:border-color .15s,box-shadow .15s,background .15s;}
  .row__del{border:none;background:#fff;border:1px solid var(--field-line);border-radius:7px;color:#c05a5a;cursor:pointer;height:36px;}
  .rows__head{display:grid;grid-template-columns:92px 66px 1fr 34px;gap:8px;font-size:11px;color:var(--muted);font-weight:700;padding:0 2px;}
  .addrow{margin-top:12px;border:1px dashed var(--teal);color:var(--teal-d);background:rgba(23,176,201,.06);
    border-radius:8px;padding:9px;width:100%;font-weight:700;font-size:13px;cursor:pointer;}

  /* 構造化エントリ（学歴/職歴/免許：1件＝1カード。レジュ速フォームと同一構造） */
  .items{display:flex;flex-direction:column;gap:14px;}
  .item{border:1px solid var(--field-line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:12px;}
  .item__del{align-self:flex-end;border:1px solid var(--field-line);background:#fff;color:#c05a5a;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;}
  .chip-chk{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#33424e;cursor:pointer;user-select:none;}
  .chip-chk input{width:16px;height:16px;accent-color:var(--teal);}

  /* 就労希望グリッド（バイト用） */
  .baito-only{display:none;}
  .days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:6px;}
  .day{border:1px solid var(--field-line);border-radius:8px;background:var(--field-bg);text-align:center;
    padding:8px 0;font-size:13px;font-weight:700;cursor:pointer;user-select:none;}
  .day.is-on{background:var(--teal);color:#fff;border-color:var(--teal);}

  /* ===== 左：フッター（ナビ） ===== */
  .nav{
    background:#fff;border-top:1px solid var(--line);padding:12px 20px;
    display:flex;align-items:center;gap:10px 12px;flex-shrink:0;flex-wrap:wrap;row-gap:8px;
  }
  .saved{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:5px;white-space:nowrap;}
  .saved .dot{width:8px;height:8px;border-radius:50%;background:#63c58e;}
  /* ライト／ダーク切替スイッチ（保存表示の隣） */
  .theme-toggle{position:relative;width:46px;height:24px;border:1px solid var(--field-line);
    background:var(--field-bg);border-radius:999px;cursor:pointer;padding:0;flex-shrink:0;transition:background .2s,border-color .2s;}
  .theme-toggle__thumb{position:absolute;top:1px;left:1px;width:20px;height:20px;border-radius:50%;
    background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:11px;line-height:1;
    transition:transform .2s,background .2s;}
  .theme-toggle__thumb::before{content:"☀";}
  [data-theme=dark] .theme-toggle__thumb{transform:translateX(22px);background:#2b3840;}
  [data-theme=dark] .theme-toggle__thumb::before{content:"🌙";}
  /* ボタン群は1ブロックとして右寄せ。折返し時はまとめて次行へ */
  .nav__btns{display:flex;gap:10px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end;}
  .btn{border:none;border-radius:9px;padding:11px 18px;font-size:14px;font-weight:800;cursor:pointer;
    font-family:inherit;transition:.15s;text-align:center;white-space:nowrap;flex-shrink:0;}
  .btn--ghost{background:#fff;border:1px solid var(--line);color:#5a6672;}
  /* 固定幅＝遷移でラベルが変わってもサイズ・位置が動かない */
  .btn--prev{background:#fff;border:1px solid var(--line);color:#5a6672;min-width:80px;}
  .btn--next{background:var(--accent);color:#3a3300;min-width:108px;}
  .btn--next:hover{filter:brightness(1.03);}
  .btn--preview{background:var(--teal);color:#fff;min-width:140px;}
  .btn--prev.is-hidden{display:none;}   /* 1ステップ目：非表示（ボタン群は右寄せ固定なので主ボタンは動かない） */
  .btn:active{transform:translateY(1px);}

  /* ===== 中央：プレビュー ===== */
  .pane__head{padding:14px 20px;min-height:58px;font-size:13px;font-weight:800;color:#5a6672;border-bottom:1px solid var(--line);
    display:flex;align-items:center;justify-content:space-between;background:#fff;flex-shrink:0;}
  /* プレビュー見出しバー右端の認証ウィジェット（新規登録リンク／ログインボタン／ログイン後は会員表示） */
  .authbar{display:flex;align-items:center;gap:12px;font-size:12.5px;font-weight:700;}
  .authbar a{color:#0d9488;text-decoration:none;cursor:pointer;}
  .authbar a:hover{text-decoration:underline;}
  .authbar__btn{border:1px solid #0d9488;background:#0d9488;color:#fff;border-radius:7px;
    padding:5px 13px;font-size:12.5px;font-weight:800;cursor:pointer;font-family:inherit;line-height:1.4;}
  .authbar__btn:hover{background:#0b8177;border-color:#0b8177;}
  .authbar__email{color:#5a6672;font-weight:600;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  [data-theme=dark] .authbar__email{color:var(--muted);}
  .preview{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:24px;}
  .paper{width:100%;max-width:420px;aspect-ratio:210/297;background:#fff;box-shadow:var(--shadow);
    border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;
    color:#aeb8bf;text-align:center;padding:24px;gap:10px;}
  .paper .a4tag{font-size:11px;letter-spacing:.1em;border:1px solid #dde3e7;border-radius:999px;padding:3px 10px;}
  .paper strong{color:#7c8891;font-weight:700;}

  /* ===== 右：注意とポイント ===== */
  .tips{flex:1;overflow-y:auto;padding:22px 20px;}
  .tips__title{font-size:15px;font-weight:800;color:#2a5f74;display:flex;align-items:center;gap:8px;}
  .tipcard{background:#fff;border:1px solid #cfe6f3;border-radius:12px;padding:16px;margin-top:14px;box-shadow:var(--shadow);}
  .tipcard h3{font-size:13.5px;font-weight:800;margin-bottom:8px;color:#0e7290;}
  .tips ul{margin:0;padding-left:18px;}
  .tips li{font-size:12.5px;color:#3a4a53;margin-bottom:8px;}
  .tips__step{display:none;}
  .tips__step.is-active{display:block;}

  /* ===== 右：フッターリンク（静的ページへのプレースホルダ） ===== */
  .tips-footer{flex-shrink:0;padding:14px 20px 18px;border-top:1px solid #cfe6f3;}
  .tips-footer a{display:inline-block;color:#0e7290;text-decoration:none;font-size:12px;font-weight:600;margin:3px 12px 3px 0;}
  .tips-footer a:hover{text-decoration:underline;}
  .tips-footer .copyright{color:var(--muted);font-size:11px;margin-top:8px;}

  /* ===== AI動線ボタン ===== */
  .ai-btn{border:1px solid var(--teal);background:rgba(23,176,201,.08);color:var(--teal-d);
    border-radius:8px;padding:7px 12px;font-size:12.5px;font-weight:700;cursor:pointer;
    font-family:inherit;display:inline-flex;align-items:center;gap:5px;margin-top:8px;}
  .ai-btn:hover{background:rgba(23,176,201,.16);}
  .ai-btn::before{content:"\2728";font-size:12px;}   /* ✨ */

  /* ===== 汎用モーダル（AI文章生成・写真加工で使い回す器） ===== */
  .modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:18px;}
  .modal.is-open{display:flex;}
  .modal__backdrop{position:absolute;inset:0;background:rgba(15,30,42,.55);}
  .modal__box{position:relative;background:#fff;border-radius:14px;width:100%;max-width:520px;
    max-height:88vh;display:flex;flex-direction:column;box-shadow:0 24px 70px rgba(0,0,0,.35);overflow:hidden;}
  .modal__head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);}
  .modal__title{font-size:16px;font-weight:800;}
  .modal__close{border:none;background:none;font-size:24px;line-height:1;color:var(--muted);cursor:pointer;padding:0 4px;}
  .modal__body{padding:20px;overflow-y:auto;}
  .modal__foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line);}
  .modal__ph{background:var(--field-bg);border:1px dashed var(--field-line);border-radius:10px;
    padding:26px 20px;text-align:center;color:var(--muted);font-size:13px;line-height:1.9;}
  .modal__ph b{color:var(--teal-d);}
  .modal__ph code{background:rgba(23,176,201,.1);border-radius:4px;padding:1px 5px;font-size:12px;}

  /* ===== 出力ゲート／アカウント作成（プレビュー上のオーバーレイ） ===== */
  .col--preview{position:relative;}
  .gate{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:24px;
    background:rgba(15,30,42,.30);}
  .gate[hidden]{display:none;}
  .gate__box{background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.28);padding:28px 24px;
    display:flex;flex-direction:column;gap:12px;width:100%;max-width:340px;position:relative;text-align:center;}
  .gate__prim{background:var(--teal);color:#fff;border:none;border-radius:9px;padding:14px;font-weight:800;font-size:14px;cursor:pointer;font-family:inherit;}
  .gate__prim:hover{filter:brightness(1.03);}
  .gate__sec{background:#fff;border:1px solid var(--line);color:#5a6672;border-radius:9px;padding:12px;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit;}
  .gate__x{position:absolute;top:6px;right:10px;border:none;background:none;font-size:24px;line-height:1;color:var(--muted);cursor:pointer;}
  .acct__box{background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.3);padding:24px 22px;
    width:100%;max-width:380px;max-height:94%;overflow:auto;position:relative;text-align:left;}
  .acct__title{font-size:18px;font-weight:800;text-align:center;margin-bottom:4px;}
  .acct__lead{font-size:12px;color:var(--muted);text-align:center;margin-bottom:16px;line-height:1.7;}
  .acct__consent{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.6;color:var(--ink);
    background:var(--field-bg);border:1px solid var(--field-line);border-radius:9px;padding:11px 12px;margin-bottom:14px;cursor:pointer;}
  .acct__consent a{color:var(--teal-d);}
  .acct__consent input{margin-top:2px;flex-shrink:0;}
  .acct__google{width:100%;border:1px solid var(--field-line);background:#fff;border-radius:9px;padding:11px;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit;}
  .acct__or{text-align:center;font-size:11px;color:var(--muted);margin:12px 0;}
  .acct__box .field{margin-bottom:12px;}
  .acct__optin{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;margin:8px 0 4px;cursor:pointer;}
  .acct__note{font-size:11px;color:var(--muted);line-height:1.7;margin-bottom:14px;}
  .acct__note a{color:var(--teal-d);}
  .acct__submit{width:100%;background:var(--accent);color:#3a3300;border:none;border-radius:10px;padding:13px;font-weight:800;font-size:14px;cursor:pointer;font-family:inherit;transition:filter .15s;}
  .acct__submit:hover{filter:brightness(1.03);}
  .acct__skip{width:100%;background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;margin-top:10px;text-decoration:underline;font-family:inherit;}

  /* ===== レスポンシブ：スマホ縦積み ===== */
  @media(max-width:1280px){
    /* 1280px以下：縦積み＝ページ全体が自然スクロール。ボタンはフォーム末尾（固定しない） */
    .app{grid-template-columns:1fr;height:auto;overflow:visible;}
    .col{height:auto;}
    .col--form{border-right:none;border-bottom:1px solid var(--line);}
    .col--preview{border-right:none;border-bottom:1px solid var(--line);}
    .form{overflow:visible;}
    .preview{min-height:60vh;overflow:visible;}
    .tips{overflow:visible;}
    .grid2{grid-template-columns:1fr;}
    /* スマホ：ナビを常に画面最下部へ固定（内容の長短で位置が跳ねない＝親指ゾーン常駐） */
    .nav{position:fixed;bottom:0;left:0;right:0;z-index:20;box-shadow:0 -3px 12px rgba(20,40,60,.12);}
    .app{padding-bottom:76px;}   /* 固定ナビの高さ分。最後のコンテンツが隠れないように */
  }

  [data-theme=dark] body{background:#0e1418;}
  [data-theme=dark] .hero{color:#fff;}
  [data-theme=dark] .progress,[data-theme=dark] .nav,[data-theme=dark] .pane__head,[data-theme=dark] .tipcard,[data-theme=dark] .subhead--toggle,[data-theme=dark] .paper,[data-theme=dark] .modal__box,[data-theme=dark] .gate__box,[data-theme=dark] .acct__box{background:#161d22;}
  [data-theme=dark] .gate__sec,[data-theme=dark] .acct__google{background:#161d22;}
  [data-theme=dark] .variant__btn.is-active{background:#0e1418;color:#fff;border-color:#0e1418;}
  [data-theme=dark] .btn--ghost,[data-theme=dark] .btn--prev,[data-theme=dark] .row__del,[data-theme=dark] .item__del{background:#161d22;}

  /* ===== 学歴：入学・卒業年度の自動計算 ===== */
  .edu-autocalc-btn{margin:0 0 14px;border:1px dashed var(--teal);background:rgba(23,176,201,.06);color:var(--teal-d);border-radius:8px;padding:8px 12px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;}
  .edu-autocalc-btn:hover{background:rgba(23,176,201,.14);}
  .edu-modal{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,30,42,.55);}
  .edu-modal[hidden]{display:none;}
  .edu-modal__box{position:relative;background:#fff;border-radius:14px;width:100%;max-width:420px;padding:24px 22px;box-shadow:0 24px 70px rgba(0,0,0,.35);}
  .edu-modal__x{position:absolute;top:8px;right:12px;border:none;background:none;font-size:24px;color:var(--muted);cursor:pointer;line-height:1;}
  .edu-modal__title{font-size:16px;font-weight:800;margin-bottom:8px;}
  .edu-modal__lead{font-size:12.5px;color:var(--muted);line-height:1.7;margin-bottom:16px;}
  .edu-modal__lead strong{color:var(--teal-d);}
  .edu-modal__label{display:block;font-size:13px;font-weight:700;margin-bottom:14px;}
  .edu-modal__select{width:100%;margin-top:6px;background:var(--field-bg);border:1px solid var(--field-line);border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;color:var(--ink);}
  .edu-modal__chk{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;cursor:pointer;margin-bottom:18px;}
  .edu-modal__foot{display:flex;gap:10px;}
  .edu-modal__apply{flex:1;background:var(--teal);color:#fff;border:none;border-radius:9px;padding:12px;font-weight:800;font-size:14px;cursor:pointer;font-family:inherit;}
  .edu-modal__cancel{background:#fff;border:1px solid var(--line);color:#5a6672;border-radius:9px;padding:12px 16px;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit;}
  [data-theme=dark] .edu-modal__box,[data-theme=dark] .edu-modal__cancel{background:#161d22;}

  /* 学歴 自動計算：在籍年数/空白期間の個別指定 */
  .edu-modal__sub{margin:0 0 18px;padding:12px 14px;background:var(--field-bg);border-radius:8px;}
  .edu-modal__sub[hidden]{display:none;}
  .edu-sub-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap;font-size:12.5px;color:var(--ink);}
  .edu-sub-row:last-child{margin-bottom:0;}
  .edu-sub-lbl{flex:1;min-width:120px;}
  .edu-sub-row input{width:52px;padding:6px 8px;border:1px solid var(--field-line);border-radius:6px;font-size:13px;font-family:inherit;text-align:center;background:#fff;color:var(--ink);}
  .edu-sub-hint{flex-basis:100%;font-size:11px;color:var(--muted);margin-top:-2px;}
  [data-theme=dark] .edu-sub-row input{background:#0e1418;}

  /* 職歴：最終学歴リマインド */
  .final-edu-note{margin:-4px 0 18px;padding:11px 14px;background:var(--teal-l);border:1px solid rgba(23,176,201,.35);border-radius:8px;font-size:12.5px;line-height:1.7;color:var(--ink);}
  .final-edu-note strong{color:var(--teal-d);}

  /* ===== ダークモード：低コントラスト文字の是正 ===== */
  [data-theme=dark] .field > label,[data-theme=dark] .subhead,[data-theme=dark] .tips li,[data-theme=dark] .chip-chk{color:var(--ink);}
  [data-theme=dark] .tips__title,[data-theme=dark] .tipcard h3,[data-theme=dark] .tips-footer a,[data-theme=dark] .photo__btn,[data-theme=dark] .ai-btn,[data-theme=dark] .addrow,
  [data-theme=dark] .edu-autocalc-btn,[data-theme=dark] .acct__consent a,[data-theme=dark] .acct__note a,
  [data-theme=dark] .final-edu-note strong,[data-theme=dark] .edu-modal__lead strong{color:var(--teal);}
  [data-theme=dark] .pane__head,[data-theme=dark] .btn--ghost,[data-theme=dark] .btn--prev,[data-theme=dark] .gate__sec,[data-theme=dark] .paper strong{color:var(--muted);}

  /* ダーク：フォーカス時に背景が白くならないように（明色文字が読めるよう暗色） */
  [data-theme=dark] .field input:hover,[data-theme=dark] .field select:hover,[data-theme=dark] .field textarea:hover{border-color:#46545e;}
  [data-theme=dark] .field input:focus,[data-theme=dark] .field select:focus,[data-theme=dark] .field textarea:focus{background:#232c33;}

  /* 動的行(学歴/職歴/免許)の入力を他フォームと同じ挙動に揃える */
  .row input:focus,.row select:focus{outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px rgba(23,176,201,.15);}
  .row input::placeholder{color:#a9b6bf;}
  [data-theme=dark] .row input:focus,[data-theme=dark] .row select:focus{background:#232c33;}

  /* ===== 証明写真サムネイル（STEP1枠に選択中写真を表示） ===== */
  .photo__thumb{overflow:hidden;}
  #photoThumb{width:100%;height:100%;object-fit:cover;display:none;}

  /* ===== データ削除（プレビュー直下・共用PC対策） ===== */
  .data-clear{margin-top:12px;text-align:center;}
  .data-clear__btn{border:1px solid #d05a5a;background:var(--card);color:#d05a5a;
    border-radius:9px;padding:9px 16px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s;}
  .data-clear__btn:hover{background:rgba(208,90,90,.10);}
  .data-clear__note{font-size:12.5px;color:var(--ink);font-weight:700;line-height:1.7;margin:8px 4px 0;}

  /* ===== 証明写真モーダル（photo.js 制御） ===== */
  .pmodal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:18px;}
  .pmodal[hidden]{display:none;}
  .pmodal__backdrop{position:absolute;inset:0;background:rgba(15,25,32,.55);}
  .pmodal__box{position:relative;z-index:1;background:var(--card);border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.34);
    padding:24px 22px;width:100%;max-width:420px;max-height:calc(100vh - 36px);overflow-y:auto;}
  .pmodal__x{position:absolute;top:8px;right:12px;border:none;background:none;font-size:26px;line-height:1;color:var(--muted);cursor:pointer;}
  .pmodal__title{font-size:17px;font-weight:800;color:var(--ink);text-align:center;margin:0 0 4px;}
  .pmodal__lead{font-size:12px;color:var(--muted);text-align:center;line-height:1.6;margin:0 0 16px;}
  .pm-sec[hidden]{display:none;}
  .pm-choose{display:flex;flex-direction:column;gap:10px;}
  .pm-btn{border:1px solid var(--field-line);background:var(--card);color:var(--ink);border-radius:10px;
    padding:12px;font-weight:700;font-size:14px;cursor:pointer;font-family:inherit;width:100%;transition:filter .15s,border-color .15s;}
  .pm-btn:hover{border-color:var(--teal);}
  .pm-btn--prim{background:var(--accent);color:#3a3300;border-color:var(--accent);}
  .pm-btn--prim:hover{filter:brightness(1.03);border-color:var(--accent);}
  .pm-btn--ai{background:var(--teal);color:#fff;border-color:var(--teal);}
  .pm-btn--ai:hover{filter:brightness(1.04);border-color:var(--teal);}
  .pm-btn--ghost{background:none;border:none;color:var(--muted);text-decoration:underline;font-size:12.5px;padding:6px;}
  .pm-canvas-wrap{display:flex;justify-content:center;margin:4px 0 14px;}
  #pmCanvas{width:270px;height:360px;max-width:100%;border-radius:8px;background:var(--field-bg);border:1px solid var(--field-line);touch-action:none;cursor:grab;}
  .pm-actions{display:flex;gap:10px;margin-top:4px;}
  .pm-actions .pm-btn{flex:1;}
  .pm-actions--col{flex-direction:column;}
  .pm-preview{display:flex;justify-content:center;margin-bottom:14px;}
  .pm-preview img{width:180px;height:240px;object-fit:cover;border-radius:8px;box-shadow:var(--shadow);}
  .pm-gender{display:flex;align-items:center;gap:14px;justify-content:center;margin-bottom:14px;font-size:13px;color:var(--ink);flex-wrap:wrap;}
  .pm-gender__label{font-weight:700;color:var(--muted);font-size:12px;}
  .pm-gender label{display:inline-flex;align-items:center;gap:5px;cursor:pointer;}
  .pm-note{font-size:11px;color:var(--muted);line-height:1.6;margin:12px 0 0;}
  .pm-loading{text-align:center;padding:30px 0;color:var(--muted);font-size:13px;line-height:1.7;}
  .pm-spinner{width:40px;height:40px;border:4px solid var(--field-line);border-top-color:var(--teal);border-radius:50%;margin:0 auto 16px;animation:pmspin .9s linear infinite;}
  @keyframes pmspin{to{transform:rotate(360deg);}}
  .pm-compare{display:flex;gap:12px;margin-bottom:16px;}
  .pm-pick{flex:1;border:2px solid var(--field-line);background:var(--card);border-radius:12px;padding:8px;cursor:pointer;font-family:inherit;transition:border-color .15s;display:flex;flex-direction:column;align-items:center;gap:6px;}
  .pm-pick.is-active{border-color:var(--teal);box-shadow:0 0 0 3px rgba(23,176,201,.18);}
  .pm-pick img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:7px;background:var(--field-bg);}
  .pm-pick span{font-size:12.5px;font-weight:700;color:var(--ink);}
  [data-theme=dark] .pmodal__box{background:#161d22;}

  /* ===== 学歴 卒業年 早見表（右パネル step2） ===== */
  .edu-cheat{margin-top:14px;padding:12px 14px;border-radius:10px;background:var(--field-bg);border:1px solid var(--field-line);}
  .edu-cheat[hidden]{display:none;}
  .edu-cheat__h{font-size:12px;font-weight:800;color:var(--ink);margin-bottom:8px;}
  .edu-cheat__row{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--ink);padding:4px 0;border-bottom:1px dashed var(--field-line);}
  .edu-cheat__row:last-of-type{border-bottom:none;}
  .edu-cheat__row b{color:var(--teal-d);font-weight:800;white-space:nowrap;}
  .edu-cheat__note{font-size:10.5px;color:var(--muted);line-height:1.5;margin-top:8px;}

  /* ===== 業種別の文例モーダル（career-site-v2から移植）===== */
  .example-btn{border:1px solid var(--teal);background:rgba(23,176,201,.08);color:var(--teal-d);border-radius:8px;padding:7px 12px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:5px;margin:8px 0 0 8px;}
.example-btn:hover{background:rgba(23,176,201,.16);}
  [data-theme=dark] .example-btn{color:var(--teal);}
  .seo-samples{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}
/* 文例モーダル */
.modal--ex .modal__box{max-width:560px;}
.exsel{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;margin-bottom:16px;}
@media(max-width:520px){.exsel{grid-template-columns:1fr;}}
.excard{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:8px;row-gap:6px;}
.excard__arrow{grid-row:1;align-self:center;border:1px solid var(--field-line);background:var(--card);color:var(--teal-d);width:36px;height:72px;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;flex-shrink:0;}
.excard__arrow:hover:not(:disabled){background:var(--teal-l);border-color:var(--teal);}
.excard__arrow:disabled{opacity:.28;cursor:default;}
.excard__main{grid-column:2;grid-row:1;min-width:0;}
.excard__label{font-size:12px;font-weight:800;color:var(--teal-d);margin-bottom:6px;min-height:15px;}
.excard__text{background:var(--field-bg);border:1px solid var(--field-line);border-radius:11px;padding:14px 16px;font-size:13.5px;line-height:1.85;color:var(--ink);white-space:pre-wrap;word-break:break-word;height:320px;overflow-y:auto;}
.excard__count{grid-column:1 / -1;grid-row:2;text-align:center;font-size:12.5px;font-weight:800;color:var(--muted);}
.excard__empty{color:var(--muted);font-size:13px;text-align:center;padding:52px 12px;}
.exconfirm{font-size:12.5px;font-weight:800;color:#c05a5a;margin-right:auto;align-self:center;line-height:1.5;}
.btn--danger{background:#d05a5a;color:#fff;min-width:108px;}
.btn--danger:hover{filter:brightness(1.03);}
[data-theme=dark] .modal--ex .modal__box{background:#161d22;}
[data-theme=dark] .excard__arrow{background:#161d22;}
