  :root{
    --bg:#fdf5fb; --card:#ffffff; --text:#4a3b52; --sub:#8a7a91;
    --accent:#7a4f8c; --accent2:#d6a94a; --border:#f0dceb;
    --free:#f2f0fb; --paid:#fff3e0;
    --grad1:#ffe1f0; --grad2:#f2e6ff; --grad3:#fff7e0;
  }
  *{box-sizing:border-box;}
  body{
    margin:0;color:var(--text);
    background:linear-gradient(160deg,var(--grad1) 0%,var(--grad2) 45%,var(--grad3) 100%);
    background-attachment:fixed;
    font-family:"Zen Maru Gothic","Kosugi Maru","Hiragino Maru Gothic ProN","Hiragino Sans","Yu Gothic",sans-serif;
    line-height:1.8;
  }
  .wrap{max-width:640px;margin:0 auto;padding:20px 16px 80px;}
  .konsai-header{text-align:center;padding:28px 0 10px;}
  .konsai-header h1{font-size:22.5px;margin:0 0 6px;font-weight:700;color:var(--accent);letter-spacing:.02em;}
  .konsai-header p{color:var(--sub);font-size:13px;margin:0;}
  .card{
    background:var(--card);border:1px solid var(--border);border-radius:22px;
    padding:22px;margin:16px 0;
    box-shadow:0 6px 20px rgba(122,79,140,.08);
  }
  .progress{height:8px;background:var(--border);border-radius:6px;overflow:hidden;margin-bottom:20px;}
  .progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));width:0%;transition:width .3s;border-radius:6px;}
  .q-label{font-size:12.5px;color:var(--accent2);font-weight:bold;margin-bottom:6px;}
  .q-text{font-size:17.5px;margin:0 0 16px;font-weight:700;}
  .choice{
    display:block;width:100%;text-align:left;background:#fffbfe;
    border:1.5px solid var(--border);border-radius:16px;
    padding:15px 16px;margin-bottom:10px;font-size:15px;cursor:pointer;color:var(--text);
    transition:border-color .15s, transform .1s, box-shadow .15s;
  }
  .choice:hover{border-color:var(--accent2);box-shadow:0 3px 10px rgba(214,169,74,.15);transform:translateY(-1px);}
  .choice.selected{border-color:var(--accent);background:#f5ecf8;}
  /* 開発中のジャンル: 押せない状態にする */
  .choice.disabled{background:#f7f6f7;color:var(--sub);cursor:default;opacity:.75;}
  .choice.disabled:hover{border-color:var(--border);box-shadow:none;transform:none;}
  .dev-note{display:inline-block;font-size:11px;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:1px 8px;margin-left:6px;vertical-align:middle;}
  /* 結果のシェア */
  /* シェア関連はテーマ側の同名クラスと当たらないよう konsai- を付けている */
  .konsai-share-note{font-size:12.5px;color:var(--sub);line-height:1.75;background:#fdf7fb;border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin:12px 0;}
  .konsai-share-box{background:#fdf7fb;border:1px solid var(--border);border-radius:14px;padding:14px;margin:12px 0;}
  .konsai-share-title{font-size:14.5px;font-weight:bold;text-align:center;margin:0 0 10px;}
  .konsai-share-btns{display:flex;flex-wrap:wrap;gap:8px;}
  .konsai-share-btn{flex:1 1 calc(50% - 4px);text-align:center;padding:11px 6px;border-radius:999px;
    border:1.5px solid var(--border);background:#fff;font-size:13.5px;cursor:pointer;color:var(--text);
    font-family:inherit;transition:border-color .15s;}
  .konsai-share-btn:hover{border-color:var(--accent2);}
  .konsai-share-btn.wide{flex:1 1 100%;}
  .value-card{
    display:flex;align-items:center;justify-content:space-between;background:#fffbfe;
    border:1.5px solid var(--border);border-radius:16px;padding:13px 15px;margin-bottom:8px;cursor:pointer;
  }
  .value-card.picked{border-color:var(--accent2);background:#fff6e3;}
  .badge{display:inline-block;min-width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#9d6bb0);color:#fff;font-size:12px;text-align:center;line-height:24px;margin-right:10px;}
  .badge.empty{background:var(--border);color:var(--sub);}
  button.primary{
    display:block;width:100%;color:#fff;border:none;border-radius:999px;
    background:linear-gradient(135deg,var(--accent),#9d6bb0);
    padding:15px;font-size:16px;font-weight:700;cursor:pointer;margin-top:10px;
    box-shadow:0 6px 16px rgba(122,79,140,.28);
    transition:transform .1s;
  }
  button.primary:active{transform:scale(.98);}
  button.primary:disabled{opacity:.35;cursor:not-allowed;box-shadow:none;}
  button.ghost{background:#fff;border:1.5px solid var(--border);color:var(--sub);border-radius:999px;padding:10px 16px;font-size:13.5px;cursor:pointer;}
  button.ghost:hover{border-color:var(--accent2);color:var(--accent);}
  .result-section{border-radius:20px;padding:18px;margin-bottom:16px;}
  .result-section.free{background:var(--free);border:1px solid #e3ddf7;}
  .result-section.paid{background:var(--paid);border:1px solid #f5ddb0;}
  .tag{display:inline-block;font-size:11.5px;padding:4px 12px;border-radius:20px;margin-bottom:10px;font-weight:bold;}
  .tag.free{background:#7a5fc0;color:#fff;}
  .tag.paid{background:linear-gradient(135deg,var(--accent2),#e8c37a);color:#4a2f00;}
  .type-name{font-size:21.5px;font-weight:700;margin:6px 0 8px;color:var(--accent);}
  .lock{filter:blur(4px);user-select:none;pointer-events:none;}
  .lock-wrap{position:relative;}
  .lock-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:rgba(255,251,254,.7);border-radius:20px;}
  .lock-overlay p{margin:6px 0;font-size:14.5px;color:var(--accent);font-weight:bold;}
  .konsai-footer{text-align:center;color:var(--sub);font-size:11.5px;margin-top:24px;}
  .toolbar{display:flex;gap:8px;justify-content:center;margin-top:16px;}