:root{
  --bg:#f4f5f7;
  --panel:#ffffff;
  --panel-2:#f0f2f5;
  --ink:#1c2128;
  --ink-sub:#5b6470;
  --line:#e2e6ec;
  --accent:#2f6df6;
  --accent-soft:#e7efff;
  --core:#f6a800;
  --core-soft:#fff3d6;
  --shadow:0 1px 2px rgba(20,30,50,.06),0 8px 24px rgba(20,30,50,.06);
  --radius:16px;
}
/* ライト表示固定（ダークモード切替は廃止） */

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",system-ui,-apple-system,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
.app{max-width:960px;margin:0 auto;padding:0 16px 64px;}

/* SP専用：1スロット=1カード表示はPCでは非表示（モバイル幅でのみ display を戻す） */
.slots-mobile{display:none;}

/* 完成ベネフィット＋操作ボタンは画面下の固定バーに集約（PC・SP共通）。
   従来の流し込み表示（.actions / .result）の非表示は、元定義より後ろ＝ファイル末尾付近で行う */
.mobile-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));
  background:color-mix(in srgb,var(--panel) 94%,transparent);
  backdrop-filter:saturate(140%) blur(10px);
  border-top:1px solid var(--line);
  box-shadow:0 -4px 18px rgba(20,30,50,.10);
}
.mobile-bar-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;gap:16px;}
.mobile-sentence{margin:0;flex:1;min-width:0;font-size:20px;font-weight:700;line-height:1.55;letter-spacing:.01em;}
.mobile-sentence.is-empty{color:var(--ink-sub);font-weight:600;}
.mobile-bar-actions{display:flex;gap:10px;align-items:center;flex:0 0 auto;}
.mobile-bar-actions .btn{min-height:44px;padding:10px 18px;}
/* コピーを最も目立たせる（シャッフル/キープは ghost で同色） */
.btn-copy{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:800;}
.btn-copy:hover{filter:brightness(1.06);}
.btn-copy.copied{background:var(--core);border-color:var(--core);color:#1c2128;}

/* noise overlay (ハンケイサン共通) */
.noise{position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:radial-gradient(rgba(17,17,15,.10) 1px,transparent 1px);background-size:18px 18px;mix-blend-mode:multiply;z-index:-1;}

/* site-header（ベネフィット変換ラボから流用：ロゴ＋ブランド名） */
.site-header{
  position:sticky;top:0;z-index:10;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:12px 16px;margin:0 -16px 12px;
  background:color-mix(in srgb,var(--bg) 86%,transparent);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);min-width:max-content;}
.brand-logo{display:block;width:34px;height:34px;object-fit:contain;flex:0 0 auto;}
.brand-name{font-size:16px;letter-spacing:.02em;font-weight:800;}
.topbar-actions{display:flex;align-items:center;gap:10px;}
.industry-field{display:flex;align-items:center;gap:8px;}
.industry-label{font-size:12px;color:var(--ink-sub);}
.industry-select{
  appearance:none;font:inherit;font-size:14px;font-weight:600;color:var(--ink);
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:8px 30px 8px 12px;cursor:pointer;box-shadow:var(--shadow);
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-sub) 50%),linear-gradient(135deg,var(--ink-sub) 50%,transparent 50%);
  background-position:calc(100% - 16px) 52%,calc(100% - 11px) 52%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}
.icon-btn{
  font:inherit;font-size:18px;width:40px;height:40px;border-radius:10px;cursor:pointer;
  background:var(--panel);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);
}
.icon-btn:active{transform:translateY(1px);}

/* slots */
.slots{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:12px;margin:8px 0 18px;}
.slot{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:14px 12px 12px;display:flex;flex-direction:column;gap:10px;
  min-height:190px;
}
.slot.core{border-color:color-mix(in srgb,var(--core) 55%,var(--line));}
.slot-head{display:flex;flex-direction:column;gap:4px;}
.slot-role{font-size:11px;color:var(--ink-sub);letter-spacing:.04em;}
.axis-select{
  appearance:none;font:inherit;font-size:13px;font-weight:600;color:var(--ink);
  background:var(--panel-2);border:1px solid var(--line);border-radius:9px;
  padding:7px 26px 7px 10px;cursor:pointer;width:100%;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-sub) 50%),linear-gradient(135deg,var(--ink-sub) 50%,transparent 50%);
  background-position:calc(100% - 14px) 52%,calc(100% - 9px) 52%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}
.slot.core .axis-select{background-color:var(--core-soft);}
.window{
  flex:1;display:flex;align-items:center;justify-content:center;text-align:center;
  background:var(--panel-2);border-radius:12px;padding:10px;min-height:80px;
  overflow:hidden;
}
.slot.core .window{background:var(--core-soft);}
.window-word{font-size:19px;font-weight:700;letter-spacing:.01em;}
.slot.core .window-word{font-size:22px;}
.window.spin .window-word{opacity:.55;filter:blur(.3px);}

/* actions */
.actions{display:flex;gap:10px;justify-content:center;margin-bottom:16px;}
.btn{font:inherit;font-weight:700;font-size:15px;border-radius:12px;padding:12px 22px;cursor:pointer;border:1px solid transparent;display:inline-flex;align-items:center;gap:8px;box-shadow:var(--shadow);}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--accent);color:#fff;}
.btn-ghost{background:var(--panel);color:var(--ink);border-color:var(--line);}
.btn-ic{font-size:16px;}

/* result */
.result{
  position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:18px 18px 16px;margin-bottom:22px;
}
.result-label{font-size:12px;color:var(--ink-sub);letter-spacing:.04em;margin-bottom:8px;}
.sentence{margin:0;font-size:22px;font-weight:700;line-height:1.7;letter-spacing:.01em;min-height:1.7em;}
.copy-btn{
  position:absolute;top:14px;right:14px;font:inherit;font-size:12px;font-weight:600;
  background:var(--panel-2);color:var(--ink-sub);border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer;
}
.copy-btn.copied{color:var(--accent);border-color:var(--accent);}

/* palettes */
.palettes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px;}
.palette{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px;}
.palette-head{font-size:12px;font-weight:700;color:var(--ink-sub);margin-bottom:10px;display:flex;justify-content:space-between;}
.palette-axis{color:var(--accent);font-weight:600;}
.chips{display:flex;flex-wrap:wrap;gap:6px;}
.chip{
  font:inherit;font-size:12.5px;line-height:1.3;border-radius:999px;padding:6px 11px;cursor:pointer;
  background:var(--panel-2);color:var(--ink);border:1px solid var(--line);
}
.chip:hover{border-color:var(--accent);}
.chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:700;}

/* トーン絞り込み（タグ付き軸のパレット上部）。既存パレットの配色トークンに合わせる */
.palette-tone{display:flex;flex-direction:column;gap:5px;margin-bottom:10px;}
.tone-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.tone-row-label{font-size:11px;color:var(--ink-sub);min-width:30px;}
.tone-opt{font:inherit;font-size:11px;line-height:1.2;border-radius:999px;padding:4px 9px;cursor:pointer;background:var(--panel-2);color:var(--ink-sub);border:1px solid var(--line);}
.tone-opt:hover{border-color:var(--accent);}
.tone-opt.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:700;}

/* keeps */
.keeps{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;}
.keeps-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.keeps-title{margin:0;font-size:15px;display:flex;align-items:center;gap:8px;}
.keeps-count{font-size:12px;font-weight:700;color:#fff;background:var(--accent);border-radius:999px;padding:1px 9px;}
.link-btn{font:inherit;font-size:12px;color:var(--ink-sub);background:none;border:none;cursor:pointer;text-decoration:underline;}
.keep-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.keep-item{display:flex;align-items:flex-start;gap:10px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:11px 12px;}
.keep-text{flex:1;font-size:14.5px;font-weight:600;line-height:1.6;}
.keep-del{flex:none;font:inherit;font-size:12px;color:var(--ink-sub);background:none;border:1px solid var(--line);border-radius:8px;padding:5px 9px;cursor:pointer;}
.keep-del:hover{color:#e5484d;border-color:#e5484d;}
.keeps-empty{color:var(--ink-sub);font-size:13px;margin:6px 2px 0;}

/* site-footer（ベネフィット変換ラボから流用：お問い合わせ／ロゴ／コピーライト） */
.site-footer{margin-top:28px;padding-top:22px;border-top:1px solid var(--line);color:var(--ink-sub);font-size:13px;}
.footer-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;}
.footer-contact{text-decoration:underline;text-underline-offset:4px;color:var(--ink);justify-self:start;}
.footer-contact:hover{color:var(--ink-sub);}
.footer-logo-link{display:inline-flex;align-items:center;justify-content:center;justify-self:center;}
.footer-logo{display:block;width:86px;height:auto;max-height:22px;object-fit:contain;}
.footer-copy{justify-self:end;margin:0;}

/* 旧・流し込みの操作行／完成文は固定バーへ移設したため非表示（元定義より後ろで上書き） */
.actions,.result{display:none;}

@media (max-width:640px){
  /* ヘッダー：タイトル優先。業種セレクタは小さめ・狭幅にして場所を空ける */
  .site-header{gap:8px;padding:12px;margin:0 -16px 12px;}
  .brand{min-width:0;flex:1 1 auto;}
  .brand-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .topbar-actions{flex:0 0 auto;gap:6px;}
  .industry-field{gap:5px;}
  .industry-label{font-size:11px;}
  .industry-select{width:88px;max-width:88px;font-size:12px;padding:7px 22px 7px 9px;background-position:calc(100% - 12px) 52%,calc(100% - 8px) 52%;}

  .footer-inner{grid-template-columns:1fr;justify-items:center;text-align:center;}
  .footer-contact,.footer-copy{justify-self:center;}

  /* PCのスロット行／パレット行はSPでは隠し、「1スロット=1カード」のモバイル版を使う
     （.actions/.result はPC・SP共通で固定バーに移設済み） */
  #slots,#palettes{display:none;}

  .slots-mobile{display:flex;flex-direction:column;gap:12px;margin:4px 0 10px;}

  .mslot{
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    box-shadow:var(--shadow);padding:12px;display:flex;flex-direction:column;gap:10px;
  }
  .mslot.core{border-color:color-mix(in srgb,var(--core) 55%,var(--line));}
  .mslot-ctrl{display:flex;align-items:center;gap:12px;justify-content:space-between;}
  .mslot-role{font-size:11px;color:var(--ink-sub);font-weight:700;letter-spacing:.02em;white-space:nowrap;}
  /* プルダウン（軸セレクタ）は小さすぎたので少し大きく。選択肢も読みやすく */
  .mslot-ctrl .axis-select{width:auto;flex:1;max-width:66%;min-height:44px;font-size:15px;}
  .mslot-ctrl .axis-select option{font-size:15px;}

  /* 窓＝アコーディオンのヘッダ（タップで一覧を開閉） */
  .mslot-window{
    width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:8px 14px;cursor:pointer;text-align:left;
    background:var(--panel-2);border:1px solid var(--line);border-radius:12px;color:var(--ink);
  }
  .mslot.core .mslot-window{background:var(--core-soft);}
  .mslot-window .window-word{font-size:15px;font-weight:700;letter-spacing:.01em;}
  .mslot.core .mslot-window .window-word{font-size:16px;}
  .mslot-window.spin .window-word{opacity:.55;filter:blur(.3px);}
  .mslot-chev{flex:0 0 auto;font-size:18px;color:var(--ink-sub);transition:transform .18s;}
  .mslot.open .mslot-chev{transform:rotate(180deg);}

  /* 語彙一覧（アコーディオン本体・デフォルト閉じ／開いたカードのみ表示） */
  .mslot-panel{display:none;}
  .mslot.open .mslot-panel{display:block;padding-top:2px;}
  .mslot-panel .chips{display:flex;flex-wrap:wrap;gap:8px;}
  /* チップは上下paddingが広すぎたので圧縮（高さは内容なり） */
  .mslot-panel .chip{min-height:0;padding:7px 12px;font-size:10px;line-height:1.3;}

  /* 固定バーはSPでは縦積み（完成文の上に操作ボタン3つを横並び）・小さめ文字 */
  .mobile-bar{padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));}
  .mobile-bar-inner{flex-direction:column;align-items:stretch;gap:8px;}
  .mobile-sentence{font-size:13px;line-height:1.5;}
  .mobile-bar-actions{gap:8px;align-items:stretch;}
  /* 上下余白を詰め、ラベルは折り返さない（シャッフルの改行防止） */
  .mobile-bar-actions .btn{flex:1;justify-content:center;gap:5px;min-height:38px;padding:7px 6px;font-size:12px;white-space:nowrap;}
  .mobile-bar-actions .btn-ic{font-size:13px;}
}
