.kmp-wrap{--kmp-a:#5b5bd6;--kmp-b:#4f7cff;--kmp-c:#8b5cf6;--kmp-ink:#1f2340;--kmp-mute:#6b7090;--kmp-line:#e6e8f5;--kmp-bg:#f6f7ff;max-width:960px;margin:0 auto;padding:8px 16px 40px;color:var(--kmp-ink);line-height:1.8;font-size:16px;box-sizing:border-box}
.kmp-wrap *,.kmp-wrap *::before,.kmp-wrap *::after{box-sizing:border-box}
.kmp-wrap h2,.kmp-wrap h3{line-height:1.4;margin:1.6em 0 .6em}
.kmp-small{font-size:.85rem;color:var(--kmp-mute)}
.kmp-req{display:inline-block;font-size:.7rem;font-weight:700;color:#fff;background:var(--kmp-a);border-radius:4px;padding:0 6px;line-height:1.6;vertical-align:middle}
.kmp-hp{position:absolute!important;left:-9999px!important;height:0;overflow:hidden}
.kmp-js .kmp-hide{display:none}

/* ボタン */
.kmp-btn{display:inline-block;border:1px solid transparent;border-radius:999px;padding:.55em 1.3em;font-size:.95rem;font-weight:700;line-height:1.5;cursor:pointer;text-decoration:none!important;transition:transform .15s,box-shadow .15s,background .15s}
.kmp-btn-primary{color:#fff!important;background:linear-gradient(135deg,var(--kmp-b),var(--kmp-c));box-shadow:0 6px 16px rgba(91,91,214,.28)}
.kmp-btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(91,91,214,.36)}
.kmp-btn-ghost{color:var(--kmp-a)!important;background:#fff;border-color:var(--kmp-line)}
.kmp-btn-ghost:hover{background:var(--kmp-bg)}
.kmp-btn-lg{padding:.8em 2em;font-size:1.05rem}
.kmp-btn-sm{padding:.35em 1em;font-size:.85rem}

/* 通知 */
.kmp-notice{border-radius:14px;padding:14px 18px;margin:16px 0;border:1px solid var(--kmp-line);background:var(--kmp-bg)}
.kmp-notice p{margin:.3em 0}.kmp-notice ul,.kmp-notice ol{margin:.4em 0 .4em 1.2em}
.kmp-notice-ok{background:#f0fbf6;border-color:#bfe9d3}
.kmp-notice-err{background:#fff4f4;border-color:#f3c4c4}
.kmp-notice-warn{background:#fffaf0;border-color:#f3dfb2}
.kmp-ok{color:#1e8a57;font-weight:700}

/* ボックス・フォーム */
.kmp-box,.kmp-card-box{background:#fff;border:1px solid var(--kmp-line);border-radius:18px;padding:20px 22px;margin:18px 0;box-shadow:0 2px 10px rgba(60,60,140,.04)}
.kmp-box legend{font-weight:700;padding:0 8px}
.kmp-form label{display:block;font-weight:600;margin-bottom:4px}
.kmp-form .kmp-check,.kmp-account .kmp-check{display:flex;gap:10px;align-items:flex-start;font-weight:500}
.kmp-form input[type=text],.kmp-form input[type=file],.kmp-form select,.kmp-form textarea,.kmp-account input[type=text],.kmp-account input[type=email],.kmp-account input[type=password],.kmp-filters input,.kmp-filters select{width:100%;max-width:100%;border:1px solid #d6d9ee;border-radius:12px;padding:.6em .8em;font-size:1rem;background:#fff;color:var(--kmp-ink)}
.kmp-form textarea{resize:vertical}
.kmp-form input:focus,.kmp-form select:focus,.kmp-form textarea:focus,.kmp-account input:focus,.kmp-filters input:focus,.kmp-filters select:focus{outline:2px solid rgba(91,91,214,.35);border-color:var(--kmp-a)}
.kmp-grid{display:grid;grid-template-columns:1fr;gap:4px 16px}
.kmp-plan{display:grid;grid-template-columns:1fr;gap:12px;margin:8px 0 18px}
.kmp-plan-opt{display:block;cursor:pointer;margin:0!important}
.kmp-plan-opt input{position:absolute;opacity:0}
.kmp-plan-opt span{display:block;border:2px solid var(--kmp-line);border-radius:16px;padding:14px 18px;background:#fff;transition:.15s}
.kmp-plan-opt small{display:block;color:var(--kmp-mute);font-weight:500}
.kmp-plan-opt input:checked+span{border-color:var(--kmp-a);background:linear-gradient(135deg,rgba(79,124,255,.08),rgba(139,92,246,.1))}
.kmp-plan-opt input:focus-visible+span{outline:2px solid var(--kmp-a)}
.kmp-problem{border-top:1px dashed var(--kmp-line);padding-top:8px;margin-top:14px}
.kmp-problem:first-of-type{border-top:0}
.kmp-problem h3{margin:.4em 0}
.kmp-problem[hidden],.kmp-form [hidden]{display:none!important}
.kmp-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
.kmp-tb{border:1px solid var(--kmp-line);background:var(--kmp-bg);color:var(--kmp-a);border-radius:10px;padding:.25em .8em;font-size:.9rem;cursor:pointer}
.kmp-tb:hover{background:#ebecff}
.kmp-tb-prev{margin-left:auto;background:#fff}
.kmp-preview{margin-top:8px;padding:12px 14px;border-radius:12px;background:var(--kmp-bg);border:1px solid var(--kmp-line)}
.kmp-more{margin-top:8px}.kmp-more summary{cursor:pointer;color:var(--kmp-a);font-weight:600}
.kmp-submit{text-align:center;margin:26px 0 6px}

/* 一覧 */
.kmp-filters{background:#fff;border:1px solid var(--kmp-line);border-radius:18px;padding:16px;margin:8px 0 20px}
.kmp-filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.kmp-filter-row+.kmp-filter-row{margin-top:10px}
.kmp-filter-row input[type=search]{flex:1 1 220px;min-width:0}
.kmp-filter-sel select{flex:1 1 140px;width:auto}
.kmp-cards{display:grid;grid-template-columns:1fr;gap:16px}
.kmp-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--kmp-line);border-radius:18px;padding:18px 20px;box-shadow:0 2px 10px rgba(60,60,140,.05);transition:transform .15s,box-shadow .15s}
.kmp-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(60,60,140,.1)}
.kmp-card-tags{display:flex;flex-wrap:wrap;gap:6px}
.kmp-tag{font-size:.78rem;border-radius:999px;padding:.1em .8em;background:var(--kmp-bg);color:var(--kmp-a);border:1px solid var(--kmp-line)}
.kmp-tag-grade{background:linear-gradient(135deg,var(--kmp-b),var(--kmp-c));color:#fff;border:0}
.kmp-wrap h3.kmp-card-title{font-size:1.05rem;margin:.7em 0 .4em}
.kmp-card-title a{color:var(--kmp-ink);text-decoration:none}
.kmp-card-meta{display:flex;justify-content:space-between;color:var(--kmp-mute);font-size:.9rem}
.kmp-price{font-weight:800;color:var(--kmp-a)}.kmp-price.is-free{color:#1e8a57}
.kmp-card-foot{display:flex;justify-content:space-between;align-items:center;margin:auto 0 0;padding-top:12px}
.kmp-empty{text-align:center;color:var(--kmp-mute);padding:40px 0}
.kmp-pager{display:flex;justify-content:center;gap:6px;margin-top:24px;flex-wrap:wrap}
.kmp-pager .page-numbers{padding:.3em .9em;border:1px solid var(--kmp-line);border-radius:999px;text-decoration:none;color:var(--kmp-a)}
.kmp-pager .current{background:var(--kmp-a);color:#fff;border-color:var(--kmp-a)}

/* 詳細 */
.kmp-facts{display:flex;flex-wrap:wrap;gap:8px 22px;margin:8px 0 18px;padding:16px 20px;background:var(--kmp-bg);border-radius:16px}
.kmp-facts div{min-width:110px}.kmp-facts dt{font-size:.75rem;color:var(--kmp-mute);margin:0}.kmp-facts dd{margin:0;font-weight:700}
.kmp-comment{margin:16px 0;padding:14px 18px;border-left:4px solid var(--kmp-c);background:#fff;border-radius:0 12px 12px 0}
.kmp-comment-label{font-size:.78rem;color:var(--kmp-mute);margin:0}
.kmp-pv{background:#fff;border:1px solid var(--kmp-line);border-radius:18px;padding:18px 22px;margin:18px 0;box-shadow:0 2px 10px rgba(60,60,140,.04)}
.kmp-wrap h3.kmp-pv-no{margin:0 0 .5em;color:var(--kmp-a);font-size:1rem}
.kmp-pv-text{font-size:1.05rem;overflow-x:auto}
.kmp-pv-img{max-width:100%;height:auto;border-radius:10px}
.kmp-hint{margin:12px 0}.kmp-hint summary{cursor:pointer;color:var(--kmp-a);font-weight:600}
.kmp-reveal{margin-top:14px}
.kmp-ans,.kmp-exp{margin-top:12px;padding:12px 16px;border-radius:12px;background:var(--kmp-bg);overflow-x:auto}
.kmp-exp{background:#fff;border:1px dashed #c9cdf0}
.kmp-ans-label{font-size:.78rem;font-weight:700;color:var(--kmp-a);margin:0}
.kmp-ans .kmp-show{margin-top:12px}
.kmp-buy{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;background:linear-gradient(135deg,rgba(79,124,255,.08),rgba(139,92,246,.12));border-radius:18px;padding:20px 24px;margin:18px 0}
.kmp-buy form{margin:0}.kmp-buy-price{font-size:1.8rem;font-weight:800;color:var(--kmp-a);margin:0}.kmp-buy-price small{font-size:.8rem;color:var(--kmp-mute);margin-left:6px}
.kmp-locked{text-align:center;padding:26px;border:2px dashed #c9cdf0;border-radius:18px;background:#fff;margin:18px 0}
.kmp-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:28px}
.kmp-like{border:1px solid var(--kmp-line);background:#fff;color:var(--kmp-mute);border-radius:999px;padding:.5em 1.2em;font-size:.95rem;font-weight:700;cursor:pointer}
.kmp-like .kmp-like-ico{color:#c4c7de}
.kmp-like.is-liked{color:#e0457b;border-color:#f6b9cf;background:#fff4f8}.kmp-like.is-liked .kmp-like-ico{color:#e0457b}

/* アカウント・ダッシュボード */
.kmp-cols{display:grid;grid-template-columns:1fr;gap:16px}
.kmp-steps{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:12px 0;list-style:none;counter-reset:s}
.kmp-steps li{counter-increment:s;font-size:.85rem;background:var(--kmp-bg);border-radius:999px;padding:.2em 1em}
.kmp-steps li::before{content:counter(s) ". ";color:var(--kmp-a);font-weight:700}
.kmp-links{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.kmp-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.kmp-stats div{background:var(--kmp-bg);border-radius:14px;padding:12px 14px}
.kmp-stats span{display:block;font-size:.75rem;color:var(--kmp-mute)}.kmp-stats strong{font-size:1.1rem}
.kmp-table-wrap{overflow-x:auto}
.kmp-table{width:100%;border-collapse:collapse;font-size:.92rem}
.kmp-table th,.kmp-table td{padding:10px 12px;border-bottom:1px solid var(--kmp-line);text-align:left;white-space:nowrap}
.kmp-table td:first-child{white-space:normal;min-width:180px}
.kmp-status{font-size:.78rem;border-radius:999px;padding:.1em .8em;background:var(--kmp-bg);color:var(--kmp-a)}
.kmp-status-pending{background:#fff6e0;color:#a06a00}.kmp-status-publish{background:#e6f8ee;color:#1e8a57}.kmp-status-draft{background:#eee;color:#666}

@media (min-width:640px){
  .kmp-grid{grid-template-columns:1fr 1fr}
  .kmp-plan{grid-template-columns:1fr 1fr}
  .kmp-cards{grid-template-columns:1fr 1fr}
  .kmp-cols{grid-template-columns:1fr 1fr}
}
@media (min-width:900px){.kmp-cards{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.kmp-stats{grid-template-columns:1fr}.kmp-buy{flex-direction:column;align-items:stretch;text-align:center}}

.kmp-dl{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 0}
.kmp-h2{font-size:1.15rem}
