  :root{
    --bg:#fdf6ec; --card:#fffaf3;
    --ink:#3d2914; --ink-2:#6b4423; --muted:#a8896b;
    --accent:#c8682a; --accent-2:#a04e1a; --accent-soft:#fbe4cf;
    --border:#e8d9c3; --border-strong:#d4b896;
    --ok:#7a8c3a;
  }
  .gwc-app, .gwc-app *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  .gwc-app *{margin:0;padding:0}
  .gwc-app{-webkit-text-size-adjust:100%;font-size:15px;line-height:1.6;color:var(--ink)}
  .gwc-app{
    font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI","Meiryo",sans-serif;
    background:linear-gradient(135deg,#f5e0c0 0%,#e8b88a 50%,#d49560 100%);
    padding:24px;border-radius:16px;
    color:var(--ink);line-height:1.6;font-size:15px;
  }
  .app{max-width:100%;margin:0 auto;width:100%}
  @media (min-width:1900px){.app{max-width:1800px}}
  @media (max-width:768px){.gwc-app{padding:14px 12px}}
  @media (max-width:480px){.gwc-app{padding:10px 8px}}

  /* ─── ヘッダ ─── */
  .head{display:flex;align-items:center;gap:14px;color:#3d2914;margin-bottom:20px;flex-wrap:wrap}
  .head .logo{
    width:48px;height:48px;border-radius:14px;
    background:linear-gradient(135deg,#fef3e2,#fde4c1);
    display:flex;align-items:center;justify-content:center;font-size:24px;
    box-shadow:0 4px 14px rgba(139,90,43,.25);border:1px solid #f5d6a8;flex-shrink:0;
  }
  .head .title-block{min-width:0;flex:1}
  .head h1{font-size:24px;font-weight:700;letter-spacing:-.02em}
  .head .sub{font-size:14px;opacity:.78;margin-top:3px;color:#6b4423}
  @media (max-width:640px){
    .head{gap:10px;margin-bottom:14px}
    .head h1{font-size:17px}
    .head .sub{font-size:11px;line-height:1.4}
    .head .logo{width:40px;height:40px;font-size:20px;border-radius:11px}
  }

  /* ─── ステップ表示バー ─── */
  .stepper{
    background:rgba(255,250,243,.75);backdrop-filter:blur(10px);
    border:1px solid rgba(139,111,71,.2);border-radius:14px;
    padding:14px 20px;margin-bottom:18px;
    display:flex;align-items:center;gap:14px;
    box-shadow:0 4px 16px rgba(139,90,43,.12);overflow-x:auto;
  }
  @media (max-width:640px){
    .stepper{padding:10px 12px;gap:6px}
    .dot .lbl{display:none}
    .dot.now .lbl{display:block;font-size:11px;max-width:60px}
    .dot .circle{width:26px;height:26px;font-size:12px}
    .step-line{min-width:8px}
  }
  .step-dots{display:flex;align-items:center;gap:8px;flex:1}
  .dot{
    display:flex;align-items:center;gap:8px;flex:1;min-width:0;
  }
  .dot .circle{
    width:30px;height:30px;border-radius:50%;
    background:#f5e6d3;border:2px solid #e8d9c3;
    display:flex;align-items:center;justify-content:center;
    font-size:13px;font-weight:700;color:var(--muted);flex-shrink:0;
    transition:.25s;
  }
  .dot.done .circle{background:var(--accent);border-color:var(--accent);color:#fff}
  .dot.done .circle::after{content:"✓";font-size:14px}
  .dot.done .circle span{display:none}
  .dot.now .circle{
    background:#fffaf3;border-color:var(--accent);color:var(--accent-2);
    box-shadow:0 0 0 4px rgba(200,104,42,.15);
  }
  .dot .lbl{
    font-size:12px;color:var(--muted);font-weight:600;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .dot.now .lbl{color:var(--ink)}
  .dot.done .lbl{color:var(--ink-2)}
  .step-line{height:2px;background:#e8d9c3;flex:1;border-radius:2px;min-width:10px}
  .step-line.done{background:var(--accent)}

  /* ─── メイン2カラム ─── */
  .main{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
  @media (min-width:1400px){.main{grid-template-columns:5fr 7fr;gap:24px}}
  @media (max-width:1024px){.main{grid-template-columns:1fr;gap:14px}}

  .panel{
    background:var(--card);border-radius:18px;padding:26px 24px;
    box-shadow:0 12px 40px rgba(139,90,43,.18);
    border:1px solid #f0dcc0;
  }
  @media (max-width:640px){
    .panel{padding:18px 16px;border-radius:14px}
    .panel-title{font-size:18px}
    .panel-desc{font-size:12.5px;margin-bottom:14px}
  }
  .panel-eyebrow{
    font-size:12px;color:var(--accent-2);font-weight:700;
    letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px;
  }
  .panel-title{font-size:24px;font-weight:700;color:var(--ink);
               letter-spacing:-.01em;margin-bottom:6px}
  .panel-desc{font-size:15px;color:var(--ink-2);margin-bottom:22px;line-height:1.7}

  /* ─── 大きい選択カード ─── */
  .choices{display:grid;gap:10px;margin-bottom:18px}
  .choice{
    display:flex;align-items:center;gap:14px;
    padding:16px 18px;border:2px solid var(--border);
    border-radius:14px;cursor:pointer;background:#fdf6ec;
    transition:.18s;text-align:left;min-height:60px;width:100%;
  }
  @media (max-width:640px){
    .choice{padding:14px 14px;gap:11px}
    .choice .ico{width:38px;height:38px;font-size:18px}
    .choice .name{font-size:14px}
    .choice .hint{font-size:11.5px}
  }
  .choice:hover{border-color:var(--border-strong);background:#fffaf3;transform:translateY(-1px)}
  .choice.selected{
    border-color:var(--accent);background:linear-gradient(135deg,#fef3e2,#fde4c1);
    box-shadow:0 6px 18px rgba(200,104,42,.18);
  }
  .choice .ico{
    width:44px;height:44px;border-radius:11px;flex-shrink:0;
    background:#fff;display:flex;align-items:center;justify-content:center;
    font-size:22px;box-shadow:inset 0 0 0 1px var(--border);
  }
  .choice.selected .ico{background:#fff;box-shadow:inset 0 0 0 1px var(--accent-soft)}
  .choice .txt{flex:1;min-width:0}
  .choice .name{font-size:16px;font-weight:700;color:var(--ink)}
  .choice .hint{font-size:13.5px;color:var(--ink-2);margin-top:3px;line-height:1.5}
  .choice .arrow{color:var(--muted);font-size:18px}
  .choice.selected .arrow{color:var(--accent)}

  /* ─── 数値入力＋プリセット ─── */
  .num-input{
    display:flex;align-items:center;background:#fdf6ec;
    border:2px solid var(--border);border-radius:12px;
    padding:6px 8px 6px 18px;margin-bottom:12px;transition:.15s;
  }
  .num-input:focus-within{border-color:var(--accent);background:#fff;
                           box-shadow:0 0 0 4px rgba(200,104,42,.15)}
  .num-input input{
    flex:1;border:none;background:transparent;font-size:28px;
    font-weight:700;color:var(--ink);outline:none;padding:8px 0;
    font-variant-numeric:tabular-nums;min-width:0;
  }
  .num-input .unit{font-size:16px;color:var(--ink-2);font-weight:600;padding-right:8px;flex-shrink:0}
  @media (max-width:640px){
    .num-input input{font-size:24px}
  }

  .chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}
  .chip{
    padding:10px 16px;border:1.5px solid var(--border);border-radius:20px;
    background:#fff;cursor:pointer;font-size:14.5px;font-weight:600;
    color:var(--ink-2);transition:.15s;min-height:40px;
  }
  .chip:hover{border-color:var(--accent);color:var(--accent-2)}
  .chip.on{background:var(--accent);border-color:var(--accent);color:#fff}

  .small-note{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:18px}

  /* ─── ナビボタン ─── */
  .nav{display:flex;gap:10px;margin-top:8px}
  .btn{
    padding:13px 22px;border-radius:12px;font-size:14.5px;font-weight:700;
    cursor:pointer;border:none;transition:.15s;display:inline-flex;
    align-items:center;gap:8px;min-height:46px;
  }
  @media (max-width:640px){
    .btn{padding:12px 16px;font-size:14px}
  }
  .btn-primary{
    background:linear-gradient(135deg,#c8682a,#a04e1a);color:#fff;flex:1;
    justify-content:center;box-shadow:0 4px 14px rgba(160,78,26,.3);
  }
  .btn-primary:hover{box-shadow:0 6px 18px rgba(160,78,26,.4);transform:translateY(-1px)}
  .btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}
  .btn-back{
    background:#fdf6ec;color:var(--ink-2);border:1.5px solid var(--border);
  }
  .btn-back:hover{background:#fff;border-color:var(--border-strong)}
  .btn-restart{
    background:transparent;color:var(--accent-2);font-size:13px;font-weight:600;
    padding:8px 12px;border:none;cursor:pointer;
  }
  .btn-restart:hover{text-decoration:underline}

  /* ─── 結果パネル ─── */
  .summary{
    background:linear-gradient(135deg,#fef3e2,#fde4c1);
    border-radius:12px;padding:16px 18px;margin-bottom:14px;
    border:1px solid #f5d6a8;
  }
  .summary h4{font-size:11px;color:var(--accent-2);font-weight:700;
              letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px}
  .summary .item{display:flex;justify-content:space-between;align-items:center;
                 padding:6px 0;font-size:13px;border-bottom:1px dashed #e8c895}
  .summary .item:last-child{border-bottom:none}
  .summary .item .k{color:var(--ink-2);font-weight:500}
  .summary .item .v{color:var(--ink);font-weight:700}
  .summary .empty{color:var(--muted);font-size:13px;text-align:center;padding:14px 0}

  .result-hero{
    background:linear-gradient(135deg,#fffaf3,#fef3e2);
    border:2px solid var(--accent);border-radius:14px;
    padding:24px 20px;text-align:center;margin-bottom:14px;
    box-shadow:0 6px 20px rgba(200,104,42,.18);
  }
  .result-hero .label{
    font-size:11px;font-weight:700;color:var(--accent-2);
    letter-spacing:.12em;text-transform:uppercase;
  }
  .result-hero .value{
    font-size:54px;font-weight:800;color:var(--accent-2);
    margin:8px 0 2px;letter-spacing:-.04em;line-height:1;
  }
  .result-hero .unit{font-size:22px;color:var(--ink-2);font-weight:600;margin-left:2px}
  .result-hero .sub{font-size:14.5px;color:var(--ink-2);margin-top:10px;line-height:1.6}
  @media (max-width:640px){
    .result-hero{padding:20px 14px}
    .result-hero .value{font-size:44px}
    .result-hero .unit{font-size:18px}
  }

  .wire-vis{
    display:flex;align-items:center;justify-content:center;gap:24px;
    background:linear-gradient(135deg,#4a2c1a,#3d2914);
    border-radius:12px;padding:18px;margin-bottom:14px;
    border:1px solid #8b6f47;
  }
  .wire-info{color:#fef3e2}
  .wire-info .lbl{font-size:11px;color:#d4b896;text-transform:uppercase;letter-spacing:.08em}
  .wire-info .dim{font-size:18px;font-weight:700;margin-top:2px;color:#fff8ee}
  .wire-info .dim2{font-size:12px;color:#e8d3b3;margin-top:1px}

  .calc-box{
    background:#fdf6ec;border:1px solid var(--border);border-radius:12px;
    padding:14px 16px;margin-bottom:12px;
  }
  .calc-box h3{font-size:11px;color:var(--muted);font-weight:700;
               text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}
  .calc-box .row{display:flex;justify-content:space-between;font-size:14px;
                 padding:5px 0;color:var(--ink-2);line-height:1.55}
  .calc-box .row strong{color:var(--ink);font-weight:600;text-align:right}

  .placeholder{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    padding:40px 20px;text-align:center;color:var(--muted);
  }
  .placeholder .ico{font-size:40px;margin-bottom:10px;opacity:.4}
  .placeholder .msg{font-size:14px;font-weight:600}
  .placeholder .hint{font-size:12px;margin-top:4px}

  table{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:6px}
  th,td{padding:8px 10px;border-bottom:1px solid var(--border);text-align:center}
  th{background:#f5e6d3;color:var(--ink-2);font-weight:600;font-size:12px;letter-spacing:.05em}
  tr.hit{background:#fde4c1}
  tr.hit td{font-weight:700;color:#a04e1a}

  .footer{text-align:center;color:rgba(61,41,20,.65);font-size:13px;margin-top:24px}

  /* ─── SEO セクション ─── */
  .seo-section{
    background:rgba(255,250,243,.78);backdrop-filter:blur(6px);
    border:1px solid rgba(139,111,71,.15);border-radius:18px;
    padding:30px 32px;margin-top:24px;color:var(--ink);
  }
  @media (max-width:640px){.seo-section{padding:22px 18px;border-radius:14px}}
  .seo-section h2{
    font-size:23px;font-weight:800;color:var(--ink);letter-spacing:-.01em;
    margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid #f5d6a8;
    display:flex;align-items:center;gap:8px;
  }
  .seo-section h3{
    font-size:17px;font-weight:700;color:var(--accent-2);
    margin:20px 0 10px;display:flex;align-items:center;gap:6px;
  }
  .seo-section p{
    font-size:15px;line-height:1.9;color:var(--ink-2);margin-bottom:12px;
  }
  .seo-section p b, .seo-section li b{color:var(--ink)}
  .seo-section ul{margin:8px 0 14px 26px;font-size:14.5px;color:var(--ink-2);
                   line-height:1.9}
  .seo-section li{margin-bottom:5px}
  .seo-faq details{
    background:#fdf6ec;border:1px solid var(--border);border-radius:10px;
    padding:14px 18px;margin-bottom:10px;
  }
  .seo-faq details summary{
    font-size:15px;font-weight:700;color:var(--ink);cursor:pointer;
    display:flex;align-items:flex-start;gap:8px;list-style:none;line-height:1.55;
  }
  .seo-faq details summary::-webkit-details-marker{display:none}
  .seo-faq details summary::before{content:"Q.";color:var(--accent-2);font-weight:800}
  .seo-faq details[open] summary{margin-bottom:10px;color:var(--accent-2)}
  .seo-faq details p{
    font-size:14px;color:var(--ink-2);line-height:1.85;
    padding-left:28px;position:relative;margin:0;
  }
  .seo-faq details p::before{
    content:"A.";color:var(--ok);font-weight:800;
    position:absolute;left:0;
  }
  .seo-refs{
    background:#fdf6ec;border:1px solid var(--border);border-radius:10px;
    padding:14px 18px;font-size:13.5px;color:var(--ink-2);line-height:1.8;
  }
  .seo-refs ul{margin-left:20px;font-size:13.5px}

  @media print{
    .seo-section{display:none !important}
  }

  /* アニメーション */
  .step-content{animation:fadeIn .25s ease-out}
  @keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

  /* ─── イントロ ─── */
  .intro{
    background:linear-gradient(135deg,#fffaf3 0%,#fef3e2 100%);
    border-radius:20px;padding:32px 30px;margin-bottom:20px;
    box-shadow:0 12px 40px rgba(139,90,43,.2);
    border:1px solid #f0dcc0;position:relative;overflow:hidden;
  }
  @media (max-width:640px){
    .intro{padding:22px 18px;border-radius:16px}
    .intro h2{font-size:22px}
    .intro .lead{font-size:13px}
  }
  .intro::before{
    content:"";position:absolute;top:-60px;right:-60px;width:220px;height:220px;
    background:radial-gradient(circle,rgba(200,104,42,.12),transparent 70%);
    border-radius:50%;
  }
  .intro::after{
    content:"";position:absolute;bottom:-40px;left:-40px;width:160px;height:160px;
    background:radial-gradient(circle,rgba(251,191,36,.15),transparent 70%);
    border-radius:50%;
  }
  .intro-inner{position:relative;z-index:1}
  .intro-tagline{
    display:inline-block;font-size:11px;font-weight:700;color:var(--accent-2);
    background:#fde4c1;padding:5px 12px;border-radius:20px;
    letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px;
  }
  .intro h2{
    font-size:30px;font-weight:800;color:var(--ink);
    letter-spacing:-.02em;margin-bottom:10px;line-height:1.3;
  }
  .intro .lead{
    font-size:16px;color:var(--ink-2);max-width:680px;line-height:1.75;margin-bottom:22px;
  }
  .features{
    display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px;
  }
  @media (max-width:980px){.features{grid-template-columns:repeat(2,1fr)}}
  @media (max-width:480px){.features{grid-template-columns:1fr}}
  .feature{
    background:rgba(255,255,255,.7);backdrop-filter:blur(6px);
    border:1px solid #f0dcc0;border-radius:12px;padding:14px 14px;
  }
  .feature .fico{
    width:36px;height:36px;border-radius:10px;
    background:linear-gradient(135deg,#fde4c1,#f5d6a8);
    display:flex;align-items:center;justify-content:center;
    font-size:18px;margin-bottom:8px;
  }
  .feature .fname{font-size:14.5px;font-weight:700;color:var(--ink);margin-bottom:4px}
  .feature .fhint{font-size:13px;color:var(--ink-2);line-height:1.6}

  .scenarios-overview{
    display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;
  }
  .scen-pill{
    display:inline-flex;align-items:center;gap:6px;
    background:rgba(255,255,255,.7);border:1px solid #e8d9c3;
    padding:6px 12px;border-radius:18px;font-size:13.5px;color:var(--ink-2);font-weight:600;
  }
  .scen-pill .pi{font-size:14px}

  .intro-cta{
    display:flex;gap:10px;flex-wrap:wrap;align-items:center;
  }
  .start-btn{
    padding:15px 28px;font-size:16px;font-weight:700;
    background:linear-gradient(135deg,#c8682a,#a04e1a);color:#fff;
    border:none;border-radius:12px;cursor:pointer;
    box-shadow:0 6px 18px rgba(160,78,26,.35);
    display:inline-flex;align-items:center;gap:8px;transition:.18s;
    min-height:50px;
  }
  .start-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(160,78,26,.45)}
  @media (max-width:480px){
    .start-btn{width:100%;justify-content:center}
    .intro-cta{flex-direction:column;align-items:stretch}
    .cta-note{text-align:center}
  }
  .cta-note{font-size:13px;color:var(--muted)}

  .wizard-area{display:none}
  .wizard-area.visible{display:block;animation:fadeIn .3s ease-out}
  .intro.hidden{display:none}

  /* ─── ロジック解説 ─── */
  .logic{
    margin:24px 0 8px;padding:22px 0 0;
    border-top:1px dashed #d4b896;
  }
  .logic-head{
    display:flex;align-items:center;justify-content:space-between;
    flex-wrap:wrap;gap:10px;margin-bottom:14px;
  }
  .logic-title{
    font-size:18px;font-weight:800;color:var(--ink);letter-spacing:-.01em;
    display:flex;align-items:center;gap:8px;
  }
  .logic-title .lbadge{
    font-size:10px;font-weight:700;color:#fff;background:var(--accent);
    padding:3px 10px;border-radius:20px;letter-spacing:.06em;
  }
  .logic-sub{font-size:13px;color:var(--ink-2)}
  .logic-tabs{
    display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;
    background:rgba(255,255,255,.5);padding:6px;border-radius:12px;
    border:1px solid #f0dcc0;
  }
  @media (max-width:640px){
    .logic-tab{padding:8px 11px;font-size:12px}
  }
  .logic-tab{
    padding:8px 14px;border:none;background:transparent;border-radius:8px;
    cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-2);
    display:inline-flex;align-items:center;gap:6px;transition:.15s;
  }
  .logic-tab:hover{background:rgba(255,250,243,.7);color:var(--ink)}
  .logic-tab.on{
    background:linear-gradient(135deg,#fffaf3,#fef3e2);color:var(--accent-2);
    box-shadow:0 2px 8px rgba(160,78,26,.15);
  }
  .logic-panel{
    background:rgba(255,255,255,.65);backdrop-filter:blur(4px);
    border:1px solid #f0dcc0;border-radius:14px;padding:20px 22px;
    animation:fadeIn .2s ease-out;
  }
  .logic-panel h4{
    font-size:15px;font-weight:700;color:var(--ink);margin-bottom:10px;
    display:flex;align-items:center;gap:8px;
  }
  .logic-panel p{
    font-size:14.5px;color:var(--ink-2);line-height:1.8;margin-bottom:12px;
  }
  .logic-panel .principle{
    background:#fef3e2;border-left:3px solid var(--accent);
    padding:12px 16px;border-radius:6px;margin-bottom:14px;
    font-size:14.5px;color:var(--ink);line-height:1.75;
  }
  .logic-panel .principle b{color:var(--accent-2)}
  .logic-panel .formula{
    background:#3d2914;color:#fde4c1;padding:12px 16px;border-radius:10px;
    font-family:"SF Mono",Consolas,"Courier New",monospace;font-size:14px;
    text-align:center;margin:10px 0;letter-spacing:.02em;
  }
  .logic-panel .formula .small{font-size:11px;color:#d4b896;display:block;margin-top:6px}
  .logic-panel .grid2{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;
  }
  @media (max-width:600px){.logic-panel .grid2{grid-template-columns:1fr}}
  .logic-panel .grid2 .cell{
    background:rgba(253,246,236,.8);border:1px solid var(--border);
    border-radius:10px;padding:11px 16px;font-size:14px;color:var(--ink-2);line-height:1.65;
  }
  .logic-panel .grid2 .cell b{display:block;color:var(--ink);margin-bottom:4px;font-size:14.5px}
  .logic-panel ul{margin:8px 0 0 22px;font-size:14.5px;color:var(--ink-2);line-height:1.85}
  .logic-panel li{margin-bottom:3px}
  .logic-panel li b{color:var(--ink)}

  /* 結果内の解説 */
  .why-box{
    background:linear-gradient(135deg,#fef3e2,#fffaf3);
    border:1px solid #f5d6a8;border-radius:12px;
    padding:14px 16px;margin-bottom:12px;
  }
  .why-box h3{font-size:11px;color:var(--accent-2);font-weight:700;
              text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px;
              display:flex;align-items:center;gap:5px}
  .why-box p{font-size:14.5px;color:var(--ink-2);line-height:1.75}
  .why-box .mini-formula{
    display:inline-block;background:#3d2914;color:#fde4c1;
    padding:2px 8px;border-radius:5px;font-family:Consolas,monospace;
    font-size:12px;margin:0 2px;
  }

  /* ─── 履歴ボタン（ヘッダ右） ─── */
  .head{position:relative}
  .head-right{margin-left:auto;display:flex;gap:8px;flex-shrink:0}
  .hist-btn{
    display:inline-flex;align-items:center;gap:6px;
    background:rgba(255,250,243,.85);color:var(--ink);
    border:1px solid #f5d6a8;border-radius:12px;
    padding:10px 16px;font-size:13.5px;font-weight:700;cursor:pointer;
    box-shadow:0 4px 14px rgba(139,90,43,.18);transition:.15s;
    min-height:44px;
  }
  .hist-btn:hover{background:#fff;transform:translateY(-1px)}
  .hist-btn .badge-n{
    background:var(--accent);color:#fff;border-radius:10px;
    font-size:11px;padding:1px 7px;font-weight:700;min-width:18px;text-align:center;
  }
  @media (max-width:640px){
    .head-right{margin-left:0;width:100%;justify-content:flex-end}
    .hist-btn, .bulk-btn{padding:9px 12px;font-size:12.5px}
    .hist-btn .lbl-full, .bulk-btn .lbl-full{display:none}
  }

  /* ─── 履歴パネル（モーダル） ─── */
  .hist-overlay{
    position:fixed;inset:0;background:rgba(61,41,20,.5);backdrop-filter:blur(4px);
    z-index:100;display:none;align-items:flex-start;justify-content:center;
    padding:40px 16px;overflow-y:auto;
  }
  .hist-overlay.open{display:flex;animation:fadeIn .2s ease-out}
  .hist-modal{
    background:var(--card);border-radius:20px;padding:24px;max-width:780px;width:100%;
    box-shadow:0 20px 60px rgba(0,0,0,.3);border:1px solid #f0dcc0;
  }
  @media (max-width:768px){
    .hist-overlay{padding:0;align-items:stretch}
    .hist-modal{border-radius:0;padding:18px 14px;max-height:100vh;
                 overflow-y:auto;min-height:100vh}
  }
  .hist-modal-head{
    display:flex;align-items:center;justify-content:space-between;
    margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border);
  }
  .hist-modal-head h3{font-size:18px;font-weight:800;color:var(--ink);
                      display:flex;align-items:center;gap:8px}
  .hist-modal-head .close{
    background:#fdf6ec;border:1px solid var(--border);border-radius:10px;
    width:34px;height:34px;font-size:18px;cursor:pointer;color:var(--ink-2);
  }
  .hist-modal-head .close:hover{background:#fff;color:var(--ink)}
  .hist-actions{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;align-items:center}
  @media (max-width:640px){
    .hist-actions{gap:6px}
    .hist-actions .small-btn{padding:8px 11px;font-size:11.5px;min-height:36px}
    .hist-search{font-size:12px;padding:8px 11px;min-height:36px}
  }
  .hist-actions .small-btn{
    padding:7px 12px;background:#fdf6ec;border:1px solid var(--border);
    border-radius:8px;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;
  }
  .hist-actions .small-btn:hover{background:#fff;color:var(--ink)}
  .hist-actions .small-btn.danger{color:#a83838}
  .hist-actions .small-btn.danger:hover{background:#fef2f2;color:#7f1d1d}

  .hist-list{display:flex;flex-direction:column;gap:10px;max-height:55vh;overflow-y:auto;
             padding-right:4px}
  .hist-empty{
    text-align:center;padding:40px 20px;color:var(--muted);font-size:13px;
    background:#fdf6ec;border-radius:12px;border:1px dashed var(--border);
  }
  .hist-empty .ico{font-size:32px;margin-bottom:8px;opacity:.5}

  .hist-item{
    background:#fdf6ec;border:1px solid var(--border);border-radius:12px;
    padding:14px 16px;transition:.15s;
  }
  .hist-item:hover{border-color:var(--border-strong);background:#fffaf3}
  .hist-row1{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
  .hist-scen{
    font-size:12px;font-weight:700;padding:3px 10px;border-radius:14px;
    background:#fde4c1;color:#a04e1a;display:inline-flex;align-items:center;gap:4px;
  }
  .hist-ts{font-size:11px;color:var(--muted);font-weight:600}
  .hist-result{
    font-size:22px;font-weight:800;color:var(--accent-2);margin-left:auto;
    letter-spacing:-.02em;font-variant-numeric:tabular-nums;
  }
  .hist-result .u{font-size:13px;color:var(--ink-2);font-weight:600}
  .hist-row2{
    display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;
  }
  .hist-tag{
    font-size:11.5px;background:#fff;border:1px solid var(--border);
    color:var(--ink-2);padding:2px 9px;border-radius:14px;font-weight:600;
  }
  .hist-memo{
    font-size:12.5px;color:var(--ink-2);margin-top:6px;line-height:1.5;
    background:#fff;border-left:3px solid #f5d6a8;padding:6px 10px;border-radius:4px;
  }
  .hist-row3{display:flex;gap:6px;margin-top:8px}
  .hist-row3 button{
    flex:1;padding:7px 10px;border:1px solid var(--border);background:#fff;
    border-radius:8px;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center;gap:4px;
  }
  .hist-row3 button:hover{background:#fdf6ec;color:var(--ink)}
  .hist-row3 button.del{color:#a83838}
  .hist-row3 button.del:hover{background:#fef2f2}
  .hist-row3 button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
  .hist-row3 button.primary:hover{background:var(--accent-2);color:#fff}

  /* ─── 結果画面の保存フォーム ─── */
  .save-form{
    background:linear-gradient(135deg,#fffaf3,#fef3e2);
    border:1.5px solid #f5d6a8;border-radius:14px;padding:14px;margin-bottom:14px;
  }
  .save-form .sf-title{
    font-size:11px;color:var(--accent-2);font-weight:700;
    letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;
    display:flex;align-items:center;gap:6px;
  }
  .save-form .sf-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;
  }
  .save-form .sf-grid.one{grid-template-columns:1fr}
  @media (max-width:540px){
    .save-form .sf-grid{grid-template-columns:1fr}
  }
  .save-form input{min-height:44px;font-size:15px}
  .save-form .sf-label{font-size:12px}
  .save-form input{
    padding:10px 12px;background:#fff;border:1.5px solid var(--border);
    border-radius:9px;font-size:13px;color:var(--ink);width:100%;
  }
  .save-form input:focus{outline:none;border-color:var(--accent);
                          box-shadow:0 0 0 3px rgba(200,104,42,.12)}
  .save-form input::placeholder{color:#c5a988}
  .save-form .sf-label{
    font-size:11px;color:var(--ink-2);font-weight:600;margin-bottom:3px;
  }
  .save-form .sf-label .req{color:#a83838;margin-left:2px}
  .save-btn{
    width:100%;padding:12px 14px;background:linear-gradient(135deg,#c8682a,#a04e1a);
    color:#fff;border:none;border-radius:11px;font-size:14px;font-weight:700;
    cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;
    box-shadow:0 4px 12px rgba(160,78,26,.25);transition:.15s;margin-top:6px;
  }
  .save-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(160,78,26,.35)}
  .save-btn.saved{background:linear-gradient(135deg,#7a8c3a,#5a6c2a)}

  /* ─── 履歴：表モード ─── */
  .hist-view-toggle{
    display:inline-flex;background:#f5e6d3;border-radius:8px;padding:3px;gap:2px;
  }
  .hist-view-toggle button{
    padding:6px 12px;border:none;background:transparent;border-radius:6px;
    font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;
  }
  .hist-view-toggle button.on{background:#fff;color:var(--accent-2);
                              box-shadow:0 1px 3px rgba(0,0,0,.08)}

  .hist-search{
    flex:1;min-width:160px;padding:7px 12px;background:#fdf6ec;
    border:1px solid var(--border);border-radius:8px;font-size:12px;color:var(--ink);
  }
  .hist-search:focus{outline:none;border-color:var(--accent);background:#fff}

  .hist-table-wrap{max-height:55vh;overflow:auto;border:1px solid var(--border);
                    border-radius:10px;-webkit-overflow-scrolling:touch}
  .hist-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;
              min-width:920px}
  .hist-table thead{position:sticky;top:0;background:#f5e6d3;z-index:1}
  .hist-table th{
    padding:9px 10px;border-bottom:1.5px solid var(--border-strong);
    color:var(--ink-2);font-weight:700;font-size:11px;letter-spacing:.05em;
    text-align:left;cursor:pointer;user-select:none;white-space:nowrap;
  }
  .hist-table th:hover{background:#ecd4ad}
  .hist-table th .arr{font-size:10px;opacity:.5;margin-left:3px}
  .hist-table th.sort-on{color:var(--accent-2)}
  .hist-table th.sort-on .arr{opacity:1}
  .hist-table td{
    padding:9px 10px;border-bottom:1px solid var(--border);text-align:left;
    color:var(--ink-2);white-space:nowrap;
  }
  .hist-table tr:hover td{background:#fdf6ec}
  .hist-table .wire-no{font-weight:700;color:var(--ink);font-family:"SF Mono",Consolas,monospace}
  .hist-table .res{font-weight:800;color:var(--accent-2);font-variant-numeric:tabular-nums}
  .hist-table .scen-mini{font-size:11px;background:#fde4c1;color:#a04e1a;
                          padding:2px 7px;border-radius:10px;font-weight:600;display:inline-block}
  .hist-table .actions{display:flex;gap:4px}
  .hist-table .actions button{
    padding:4px 8px;background:#fff;border:1px solid var(--border);border-radius:6px;
    font-size:11px;color:var(--ink-2);cursor:pointer;font-weight:600;
  }
  .hist-table .actions button:hover{background:#fdf6ec;color:var(--ink)}
  .hist-table .actions button.del{color:#a83838}
  .hist-table .actions button.del:hover{background:#fef2f2}

  .hist-summary-bar{
    background:#fef3e2;border:1px solid #f5d6a8;border-radius:8px;
    padding:8px 12px;margin-bottom:10px;font-size:12px;color:var(--ink-2);
    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;
  }
  .hist-summary-bar b{color:var(--accent-2);font-weight:800}

  /* ─── 集計パネル ─── */
  .summary-panel{
    background:#fffaf3;border:1px solid #f0dcc0;border-radius:12px;
    padding:14px 16px;margin-bottom:12px;
  }
  .summary-panel .sp-title{
    font-size:12px;color:var(--accent-2);font-weight:700;letter-spacing:.08em;
    text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:6px;
  }
  .summary-panel .sp-grid{
    display:grid;grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));gap:10px;
  }
  .sp-card{
    background:#fdf6ec;border:1px solid var(--border);border-radius:10px;
    padding:10px 12px;
  }
  .sp-card .sp-lbl{font-size:10.5px;color:var(--muted);font-weight:700;
                    text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
  .sp-card .sp-val{font-size:22px;font-weight:800;color:var(--ink);line-height:1.15;
                    font-variant-numeric:tabular-nums}
  .sp-card .sp-val .u{font-size:12.5px;color:var(--ink-2);font-weight:600;margin-left:3px}
  .sp-card .sp-sub{font-size:12px;color:var(--ink-2);margin-top:4px}

  .size-breakdown{
    background:#fdf6ec;border:1px solid var(--border);border-radius:10px;
    padding:10px 12px;margin-top:8px;
  }
  .size-breakdown table{width:100%;border:none;font-size:13.5px;margin:0}
  .size-breakdown table th,
  .size-breakdown table td{padding:4px 8px;border-bottom:1px dashed #e8d9c3;
                            text-align:center;background:transparent}
  .size-breakdown table tr:last-child td{border-bottom:none}
  .size-breakdown table tr.totals td{font-weight:800;color:var(--accent-2);
                                       background:#fef3e2;border-top:1.5px solid #f5d6a8}

  .dup-warn{
    background:#fef2f2;border:1px solid #fecaca;color:#991b1b;
    padding:8px 12px;border-radius:8px;font-size:12.5px;margin-top:8px;
    display:flex;align-items:flex-start;gap:6px;
  }
  .dup-warn b{color:#7f1d1d}
  .dup-warn .dup-tags{display:inline-flex;flex-wrap:wrap;gap:4px;margin-left:6px}
  .dup-warn .dup-tag{
    background:#fff;border:1px solid #fecaca;padding:1px 7px;border-radius:10px;
    font-family:Consolas,monospace;font-weight:700;font-size:11.5px;
  }

  /* ─── イントロの「最近の計算」 ─── */
  .recent{
    margin-top:22px;padding-top:20px;border-top:1px dashed #d4b896;
  }
  .recent-head{
    display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;
  }
  .recent-head h3{
    font-size:14px;font-weight:800;color:var(--ink);
    display:flex;align-items:center;gap:6px;
  }
  .recent-head a{font-size:12px;color:var(--accent-2);font-weight:600;cursor:pointer}
  .recent-head a:hover{text-decoration:underline}
  .recent-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  @media (max-width:900px){.recent-list{grid-template-columns:repeat(2,1fr)}}
  @media (max-width:520px){.recent-list{grid-template-columns:1fr}}
  .recent-card{
    background:rgba(255,255,255,.7);border:1px solid #f0dcc0;
    border-radius:12px;padding:12px 14px;cursor:pointer;transition:.15s;text-align:left;
  }
  .recent-card:hover{transform:translateY(-2px);border-color:var(--accent);background:#fff}
  .recent-card .rs{font-size:11px;color:var(--accent-2);font-weight:700;margin-bottom:4px}
  .recent-card .rv{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
  .recent-card .rv .u{font-size:11px;color:var(--ink-2);font-weight:600}
  .recent-card .rt{font-size:11px;color:var(--muted);margin-top:3px}

  /* ─── 一括入力モード ─── */
  .bulk-btn{
    display:inline-flex;align-items:center;gap:6px;
    background:rgba(255,250,243,.85);color:var(--ink);
    border:1px solid #f5d6a8;border-radius:12px;
    padding:10px 16px;font-size:13.5px;font-weight:700;cursor:pointer;
    box-shadow:0 4px 14px rgba(139,90,43,.18);transition:.15s;
    min-height:44px;
  }
  .bulk-btn:hover{background:#fff;transform:translateY(-1px)}

  .bulk-modal{
    background:var(--card);border-radius:20px;padding:24px;max-width:1400px;width:100%;
    box-shadow:0 20px 60px rgba(0,0,0,.3);border:1px solid #f0dcc0;
  }
  @media (max-width:768px){
    .bulk-modal{border-radius:0;padding:14px 12px;min-height:100vh;max-width:100%}
    .bulk-intro{font-size:11.5px;padding:8px 11px}
    .bulk-actions-top{padding:8px;gap:6px}
    .act-btn{padding:8px 11px;font-size:11.5px;min-height:38px}
    .act-btn .lbl-min{display:none}
  }
  .bulk-intro{
    background:#fef3e2;border:1px solid #f5d6a8;border-radius:10px;
    padding:12px 16px;margin-bottom:14px;font-size:13.5px;color:var(--ink-2);line-height:1.7;
  }
  .bulk-intro b{color:var(--accent-2)}
  .bulk-actions-top{
    display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;align-items:center;
    padding:10px;background:#fdf6ec;border-radius:12px;border:1px solid var(--border);
  }
  .bulk-actions-top .grow{flex:1}
  .bulk-actions-top .divider{
    width:1px;height:22px;background:var(--border-strong);margin:0 4px;opacity:.6;
  }
  /* アクションボタン共通 */
  .act-btn{
    display:inline-flex;align-items:center;gap:6px;
    padding:8px 14px;border-radius:9px;font-size:12.5px;font-weight:700;
    cursor:pointer;transition:.15s;border:none;
    font-family:inherit;letter-spacing:.01em;
  }
  .act-btn .ico{font-size:14px;line-height:1}
  .act-btn:hover{transform:translateY(-1px)}
  /* 追加（プライマリ系：温かみのある黄土色） */
  .act-add{
    background:linear-gradient(135deg,#fde4c1,#f5d6a8);color:#7a4515;
    box-shadow:0 2px 6px rgba(160,78,26,.15);border:1px solid #e8c895;
  }
  .act-add:hover{background:linear-gradient(135deg,#fef0d8,#fbe2bf);
                 box-shadow:0 4px 10px rgba(160,78,26,.25)}
  /* CSV取込（情報系：栗色） */
  .act-import{
    background:#fffaf3;color:#a04e1a;border:1.5px solid #d4b896;
    box-shadow:0 2px 4px rgba(139,90,43,.1);
  }
  .act-import:hover{background:#fef3e2;border-color:var(--accent)}
  /* 種別一括（モスグリーン系のトーン） */
  .act-type{
    background:#fffaf3;color:#5d6c2a;border:1.5px solid #d4b896;
  }
  .act-type:hover{background:#f4f1e0;border-color:#7a8c3a;color:#3d4a1a}
  .act-type.d{}
  .act-type.c{}
  /* 削除（控えめな赤茶） */
  .act-danger{
    background:#fffaf3;color:#a83838;border:1.5px solid #e8c0c0;
  }
  .act-danger:hover{background:#fef2f2;border-color:#a83838}
  /* CSV出力（ニュートラル） */
  .act-export{
    background:#fffaf3;color:var(--ink-2);border:1.5px solid var(--border-strong);
  }
  .act-export:hover{background:#fdf6ec;color:var(--ink);border-color:var(--accent)}
  .bulk-table-wrap{
    border:1px solid var(--border);border-radius:10px;overflow:auto;
    max-height:55vh;margin-bottom:12px;-webkit-overflow-scrolling:touch;
  }
  .bulk-table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;
              min-width:860px}
  @media (max-width:768px){
    .bulk-table-wrap{max-height:50vh}
  }
  .bulk-table thead{position:sticky;top:0;background:#f5e6d3;z-index:1}
  .bulk-table th{
    padding:9px 8px;border-bottom:1.5px solid var(--border-strong);
    color:var(--ink-2);font-size:11px;font-weight:700;letter-spacing:.05em;
    text-align:center;white-space:nowrap;
  }
  .bulk-table td{
    padding:5px 6px;border-bottom:1px solid var(--border);text-align:center;
    background:#fffaf3;
  }
  .bulk-table tr:hover td{background:#fdf6ec}
  .bulk-table input, .bulk-table select{
    width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:6px;
    background:#fff;font-size:14.5px;color:var(--ink);min-height:40px;
  }
  .bulk-table input:focus, .bulk-table select:focus{
    outline:none;border-color:var(--accent);
    box-shadow:0 0 0 2px rgba(200,104,42,.15);
  }
  .bulk-table .col-no{width:34px;color:var(--muted);font-size:11px;font-weight:700;background:#f5e6d3}
  .bulk-table .col-result{
    font-weight:800;color:var(--accent-2);font-size:15px;background:#fef3e2;
    font-variant-numeric:tabular-nums;white-space:nowrap;
  }
  .bulk-table .col-result.err{background:#fef2f2;color:#a83838;font-size:11px;font-weight:600}
  .bulk-table .col-result.pending{color:var(--muted);font-weight:500;font-size:11px}
  .bulk-table .del-btn{
    width:28px;height:28px;border-radius:6px;background:#fff;
    border:1px solid var(--border);color:#a83838;cursor:pointer;font-size:14px;
  }
  .bulk-table .del-btn:hover{background:#fef2f2}
  .bulk-table .wn-cell{min-width:110px}
  .bulk-table .eq-cell{min-width:140px}
  .bulk-table .memo-cell{min-width:130px}
  .bulk-table .type-cell{width:80px}
  .bulk-table .amp-cell{width:90px}
  .bulk-table .len-cell{width:90px}

  .bulk-empty-row{
    text-align:center;padding:30px;color:var(--muted);background:#fdf6ec;
    font-size:13px;
  }

  .bulk-bottom{
    display:flex;justify-content:space-between;gap:12px;align-items:center;
    flex-wrap:wrap;
  }
  @media (max-width:640px){
    .bulk-bottom{flex-direction:column;align-items:stretch}
    .bulk-bottom .btns{justify-content:space-between}
    .bulk-bottom .bulk-save-all{flex:1;justify-content:center}
  }
  .bulk-stat{font-size:13px;color:var(--ink-2)}
  .bulk-stat b{color:var(--accent-2);font-weight:800}
  .bulk-bottom .btns{display:flex;gap:8px;flex-wrap:wrap}
  .bulk-add{
    padding:9px 16px;background:#fff;border:1.5px dashed var(--border-strong);
    border-radius:10px;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer;
  }
  .bulk-add:hover{background:#fdf6ec;color:var(--ink);border-color:var(--accent)}
  .bulk-save-all{
    padding:10px 20px;background:linear-gradient(135deg,#c8682a,#a04e1a);
    color:#fff;border:none;border-radius:10px;font-size:13.5px;font-weight:700;
    cursor:pointer;box-shadow:0 4px 14px rgba(160,78,26,.3);
    display:inline-flex;align-items:center;gap:8px;transition:.15s;
    letter-spacing:.02em;
  }
  .bulk-save-all:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(160,78,26,.4)}
  .bulk-save-all:disabled{opacity:.45;cursor:not-allowed;transform:none;
                           box-shadow:0 2px 6px rgba(160,78,26,.15);
                           background:linear-gradient(135deg,#d4b896,#a8896b)}

  .csv-paste-area{
    width:100%;min-height:80px;padding:10px 12px;
    border:1.5px solid var(--border);border-radius:8px;
    background:#fdf6ec;font-family:Consolas,monospace;font-size:12px;
    color:var(--ink);resize:vertical;
  }
  .csv-paste-area:focus{outline:none;border-color:var(--accent);background:#fff}

  /* ─── 印刷プレビュー ─── */
  .print-area{
    background:#fff;border:1px solid #ddd;border-radius:8px;
    padding:30px 36px;margin-top:14px;color:#1a1a1a;
    font-family:"Hiragino Mincho ProN","Yu Mincho",serif;
  }
  .print-area h1{font-size:22px;text-align:center;margin-bottom:6px;
                  font-family:inherit;font-weight:700;letter-spacing:.04em;color:#1a1a1a}
  .print-area .doc-sub{text-align:center;font-size:12px;color:#555;margin-bottom:18px;
                        border-bottom:2px solid #1a1a1a;padding-bottom:8px}
  .proj-info-grid{
    display:grid;grid-template-columns:repeat(2,1fr);gap:6px 18px;
    margin-bottom:16px;font-size:12px;font-family:-apple-system,sans-serif;
  }
  .proj-info-grid label{
    display:block;font-size:10px;color:#666;font-weight:600;margin-bottom:2px;
  }
  .proj-info-grid input{
    width:100%;border:none;border-bottom:1px solid #aaa;padding:4px 0;
    font-size:13px;background:transparent;color:#1a1a1a;font-family:inherit;
  }
  .proj-info-grid input:focus{outline:none;border-bottom-color:#a04e1a}

  .print-table{width:100%;border-collapse:collapse;font-size:11px;margin-top:6px;
                font-family:-apple-system,sans-serif}
  .print-table th, .print-table td{
    border:1px solid #555;padding:4px 6px;text-align:center;color:#1a1a1a;
  }
  .print-table th{background:#eee;font-weight:700;font-size:10px}
  .print-table td.no{background:#f8f8f8;font-weight:600}
  .print-table .res{font-weight:700}

  .print-summary{
    margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:14px;
    font-family:-apple-system,sans-serif;font-size:11px;
  }
  .print-summary table{width:100%;border-collapse:collapse}
  .print-summary th, .print-summary td{
    border:1px solid #555;padding:3px 6px;text-align:center;
  }
  .print-summary th{background:#eee;font-weight:700}
  .print-summary tr.tot td{background:#f0f0f0;font-weight:700}
  .print-foot{
    margin-top:18px;font-size:10px;color:#666;text-align:right;
    font-family:-apple-system,sans-serif;border-top:1px solid #aaa;padding-top:8px;
  }
  .print-bar{
    display:flex;gap:10px;justify-content:flex-end;margin-bottom:10px;
    flex-wrap:wrap;
  }

  /* 印刷時 */
  @media print{
    .gwc-app{background:#fff !important;padding:0 !important}
    .head, .stepper, .main, .footer, .intro, .wizard-area,
    .hist-modal-head, .hist-summary-bar, .hist-actions,
    .print-bar, #histSummaryPanel, #histBody{display:none !important}
    .hist-overlay{position:static !important;background:transparent !important;
                  padding:0 !important;display:block !important;
                  backdrop-filter:none !important}
    .hist-modal, .bulk-modal{box-shadow:none !important;border:none !important;
                              padding:0 !important;max-width:100% !important;
                              border-radius:0 !important;background:#fff !important}
    .print-area{border:none !important;padding:0 !important;margin:0 !important;
                page-break-inside:auto}
    .print-table{font-size:10px !important;page-break-inside:auto}
    .print-table tr{page-break-inside:avoid}
    .print-table th{background:#e0e0e0 !important;
                     -webkit-print-color-adjust:exact;print-color-adjust:exact}
    @page{margin:14mm 10mm 14mm 10mm}
  }

  /* ─── 発注リスト ─── */
  .order-area{
    background:#fffaf3;border:1px solid var(--border);border-radius:12px;
    padding:18px 20px;margin-top:14px;
  }
  .order-area h3{font-size:14px;color:var(--ink);margin-bottom:10px;
                  display:flex;align-items:center;gap:6px}
  .order-controls{
    display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px;
    padding:10px 12px;background:#fdf6ec;border-radius:10px;border:1px solid var(--border);
  }
  .order-controls label{font-size:12px;color:var(--ink-2);font-weight:600;
                         display:flex;align-items:center;gap:6px}
  .order-controls input{
    width:70px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;
    text-align:right;font-size:13px;font-weight:600;
  }
  .order-table{width:100%;border-collapse:collapse;font-size:14.5px}
  .order-table th, .order-table td{
    padding:9px 11px;border:1px solid var(--border);text-align:center;
  }
  .order-table th{background:#f5e6d3;color:var(--ink-2);font-weight:700;font-size:11px}
  .order-table td.size{font-weight:800;color:var(--accent-2);font-size:15px}
  .order-table td.qty{font-weight:700;font-variant-numeric:tabular-nums}
  .order-table tr.tot td{background:#fef3e2;font-weight:800;color:var(--accent-2)}

  /* ─── 早見表モード ─── */
  .ref-btn{
    display:inline-flex;align-items:center;gap:6px;
    background:linear-gradient(135deg,#fef3e2,#fde4c1);
    color:#7a4515;border:1px solid #e8c895;border-radius:12px;
    padding:10px 16px;font-size:13.5px;font-weight:700;cursor:pointer;
    box-shadow:0 4px 14px rgba(160,78,26,.18);transition:.15s;min-height:44px;
  }
  .ref-btn:hover{transform:translateY(-1px);background:linear-gradient(135deg,#fef0d8,#fbe2bf)}
  @media (max-width:640px){
    .ref-btn{padding:9px 12px;font-size:12.5px}
    .ref-btn .lbl-full{display:none}
  }

  .ref-area{padding:0}
  .ref-quick-filter{
    background:linear-gradient(135deg,#fef3e2,#fde4c1);border:1.5px solid #f5d6a8;
    border-radius:14px;padding:16px 20px;margin-bottom:18px;
  }
  .ref-quick-filter .qf-title{
    font-size:13px;font-weight:700;color:var(--accent-2);
    letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;
    display:flex;align-items:center;gap:6px;
  }
  .ref-quick-filter .qf-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .ref-quick-filter input{
    flex:1;min-width:120px;padding:12px 14px;background:#fff;
    border:2px solid var(--border);border-radius:10px;
    font-size:24px;font-weight:700;color:var(--ink);
    font-variant-numeric:tabular-nums;
  }
  .ref-quick-filter input:focus{outline:none;border-color:var(--accent);
                                  box-shadow:0 0 0 4px rgba(200,104,42,.15)}
  .ref-quick-filter .qf-hit{
    background:#fff;border:1px solid var(--accent);border-radius:10px;
    padding:11px 16px;font-size:14px;font-weight:600;color:var(--ink-2);
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  }
  .ref-quick-filter .qf-hit b{font-size:24px;color:var(--accent-2);font-weight:800}

  .ref-nav{
    display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;
    padding:8px;background:#fdf6ec;border-radius:12px;border:1px solid var(--border);
    position:sticky;top:0;z-index:5;
  }
  .ref-nav a{
    padding:8px 14px;background:#fff;border:1px solid var(--border);
    border-radius:8px;font-size:13px;font-weight:600;color:var(--ink-2);
    text-decoration:none;display:inline-flex;align-items:center;gap:5px;transition:.15s;
  }
  .ref-nav a:hover{background:var(--accent);color:#fff;border-color:var(--accent)}

  .ref-card{
    background:#fffaf3;border:1px solid var(--border);border-radius:14px;
    padding:18px 20px;margin-bottom:16px;
  }
  .ref-card h4{
    font-size:17px;font-weight:800;color:var(--ink);margin-bottom:4px;
    display:flex;align-items:center;gap:8px;
  }
  .ref-card .sub{font-size:13px;color:var(--muted);margin-bottom:12px}
  .ref-card .badge{
    background:var(--accent-soft);color:var(--accent-2);font-size:11px;
    font-weight:700;padding:3px 10px;border-radius:14px;letter-spacing:.05em;
  }

  .ref-table{width:100%;border-collapse:separate;border-spacing:0;
              font-size:15px;border:1px solid var(--border);border-radius:10px;overflow:hidden}
  .ref-table th, .ref-table td{padding:12px 14px;text-align:center;
                                 border-bottom:1px solid var(--border)}
  .ref-table thead th{background:#f5e6d3;color:var(--ink);font-weight:700;
                        font-size:13px;letter-spacing:.04em}
  .ref-table tbody tr:last-child td{border-bottom:none}
  .ref-table tbody tr:nth-child(even) td{background:#fdf6ec}
  .ref-table .amp{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
  .ref-table .sz{font-size:18px;font-weight:800;color:var(--accent-2);
                  font-variant-numeric:tabular-nums}
  .ref-table .sz small{font-size:11px;color:var(--muted);font-weight:600}
  .ref-table tr.highlight td{
    background:#fef3e2 !important;color:var(--accent-2);
    box-shadow:inset 0 0 0 2px var(--accent);font-weight:800;
  }
  .ref-table tr.highlight .sz{font-size:22px}

  .formula-box{
    background:linear-gradient(135deg,#3d2914,#4a2c1a);color:#fde4c1;
    padding:18px 22px;border-radius:12px;text-align:center;
    font-family:"SF Mono",Consolas,monospace;font-size:17px;letter-spacing:.04em;
    margin:8px 0;
  }
  .formula-box .small{font-size:12px;color:#d4b896;display:block;margin-top:8px;
                       font-family:-apple-system,sans-serif;letter-spacing:.02em}

  .ref-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
  @media (max-width:640px){.ref-grid2{grid-template-columns:1fr}}
  .ref-grid2 .cell{
    background:#fdf6ec;border:1px solid var(--border);border-radius:10px;
    padding:12px 16px;
  }
  .ref-grid2 .cell b{display:block;font-size:15px;color:var(--ink);margin-bottom:5px}
  .ref-grid2 .cell .v{font-size:20px;font-weight:800;color:var(--accent-2);
                       font-variant-numeric:tabular-nums}
  .ref-grid2 .cell .n{font-size:12.5px;color:var(--ink-2);line-height:1.55}

  @media print{
    .ref-nav, .ref-quick-filter{display:none !important}
    .ref-card{break-inside:avoid;page-break-inside:avoid}
  }

  /* ─── かんたん質問モード ─── */
  .qa-btn{
    display:inline-flex;align-items:center;gap:8px;
    background:linear-gradient(135deg,#fde4c1,#f5d6a8);color:#7a4515;
    border:1px solid #e8c895;border-radius:12px;
    padding:15px 28px;font-size:16px;font-weight:700;cursor:pointer;
    box-shadow:0 4px 14px rgba(160,78,26,.18);transition:.18s;min-height:50px;
  }
  .qa-btn:hover{transform:translateY(-2px);
                background:linear-gradient(135deg,#fef0d8,#fbe2bf);
                box-shadow:0 8px 24px rgba(160,78,26,.28)}

  .qa-modal{
    background:var(--card);border-radius:20px;padding:28px;max-width:720px;width:100%;
    box-shadow:0 20px 60px rgba(0,0,0,.3);border:1px solid #f0dcc0;
  }
  @media (max-width:768px){
    .qa-modal{border-radius:0;padding:18px 14px;min-height:100vh;max-width:100%}
  }

  .qa-progress{
    display:flex;gap:6px;margin-bottom:18px;
  }
  .qa-progress .qd{
    flex:1;height:6px;background:#f5e6d3;border-radius:3px;transition:.3s;
  }
  .qa-progress .qd.done{background:var(--accent)}
  .qa-progress .qd.now{background:linear-gradient(90deg,var(--accent),var(--accent-soft))}

  .qa-step{animation:fadeIn .3s ease-out}
  .qa-eyebrow{
    font-size:12px;color:var(--accent-2);font-weight:700;letter-spacing:.1em;
    text-transform:uppercase;margin-bottom:6px;
  }
  .qa-title{
    font-size:23px;font-weight:800;color:var(--ink);letter-spacing:-.01em;
    line-height:1.4;margin-bottom:18px;
  }
  @media (max-width:640px){.qa-title{font-size:19px}}

  .qa-choices{display:grid;gap:10px;margin-bottom:16px}
  .qa-choice{
    display:flex;align-items:center;gap:14px;padding:18px 20px;
    border:2px solid var(--border);border-radius:14px;cursor:pointer;
    background:#fdf6ec;transition:.18s;text-align:left;width:100%;min-height:68px;
  }
  .qa-choice:hover{
    border-color:var(--accent);background:#fffaf3;transform:translateX(4px);
    box-shadow:0 4px 14px rgba(160,78,26,.12);
  }
  .qa-choice .qi{
    width:46px;height:46px;border-radius:12px;flex-shrink:0;
    background:linear-gradient(135deg,#fef3e2,#fde4c1);
    display:flex;align-items:center;justify-content:center;
    font-size:22px;font-weight:800;color:#a04e1a;
    box-shadow:inset 0 0 0 1px var(--border);
  }
  .qa-choice .qc-name{font-size:15.5px;font-weight:700;color:var(--ink);line-height:1.4}
  .qa-choice .qc-hint{font-size:12.5px;color:var(--ink-2);margin-top:3px;line-height:1.5}
  .qa-choice .qa-arrow{
    margin-left:auto;color:var(--muted);font-size:20px;flex-shrink:0;
  }
  .qa-choice:hover .qa-arrow{color:var(--accent)}

  .qa-num-area{margin-bottom:16px}
  .qa-num-input{
    display:flex;align-items:center;background:#fdf6ec;
    border:2px solid var(--border);border-radius:14px;
    padding:10px 14px;margin-bottom:14px;
  }
  .qa-num-input:focus-within{border-color:var(--accent);background:#fff;
                              box-shadow:0 0 0 4px rgba(200,104,42,.15)}
  .qa-num-input input{
    flex:1;border:none;background:transparent;font-size:36px;
    font-weight:800;color:var(--ink);outline:none;
    font-variant-numeric:tabular-nums;min-width:0;text-align:right;
  }
  .qa-num-input .qu{font-size:18px;color:var(--ink-2);font-weight:700;padding-left:10px}

  .qa-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
  .qa-chip{
    padding:11px 18px;border:1.5px solid var(--border);border-radius:24px;
    background:#fff;cursor:pointer;font-size:15px;font-weight:700;
    color:var(--ink-2);transition:.15s;min-height:42px;
    font-variant-numeric:tabular-nums;
  }
  .qa-chip:hover{border-color:var(--accent);color:var(--accent-2);
                  background:#fef3e2}

  .qa-nav{display:flex;gap:10px;margin-top:8px}
  .qa-back{
    padding:13px 22px;border-radius:12px;font-size:14.5px;font-weight:700;
    background:#fdf6ec;color:var(--ink-2);border:1.5px solid var(--border);
    cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:46px;
  }
  .qa-back:hover{background:#fff;border-color:var(--border-strong)}
  .qa-next{
    flex:1;padding:13px 22px;border-radius:12px;font-size:15px;font-weight:700;
    background:linear-gradient(135deg,#c8682a,#a04e1a);color:#fff;border:none;
    cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
    gap:8px;min-height:46px;box-shadow:0 4px 14px rgba(160,78,26,.25);
  }
  .qa-next:hover{transform:translateY(-1px)}
  .qa-next:disabled{opacity:.4;cursor:not-allowed;transform:none}

  .qa-result-card{
    background:linear-gradient(135deg,#fef3e2,#fde4c1);
    border:2px solid var(--accent);border-radius:16px;
    padding:26px 22px;text-align:center;margin-bottom:14px;
    box-shadow:0 8px 24px rgba(200,104,42,.2);
  }
  .qa-result-card .rl{font-size:12px;color:var(--accent-2);font-weight:700;
                       letter-spacing:.1em;text-transform:uppercase}
  .qa-result-card .rv{
    font-size:64px;font-weight:800;color:var(--accent-2);
    margin:10px 0 4px;letter-spacing:-.03em;line-height:1;
  }
  .qa-result-card .ru{font-size:24px;color:var(--ink-2);font-weight:600;margin-left:3px}
  .qa-result-card .rs{font-size:14.5px;color:var(--ink-2);margin-top:10px;line-height:1.6}

  .qa-answer-summary{
    background:#fdf6ec;border:1px solid var(--border);border-radius:12px;
    padding:14px 16px;margin-bottom:14px;
  }
  .qa-answer-summary h4{font-size:11.5px;color:var(--muted);font-weight:700;
                         text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
  .qa-answer-summary .as-row{display:flex;justify-content:space-between;
                              padding:5px 0;font-size:13.5px;border-bottom:1px dashed #e8d9c3}
  .qa-answer-summary .as-row:last-child{border-bottom:none}
  .qa-answer-summary .as-row .k{color:var(--ink-2)}
  .qa-answer-summary .as-row .v{color:var(--ink);font-weight:700}

  .qa-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
  .qa-actions button{flex:1;min-width:140px}