:root {
  --blue:#2563eb; --bdim:#1d4ed8; --bbg:rgba(37,99,235,.05);
  --bborder:rgba(37,99,235,.18); --dark:#f1f5f9;
  --text:#1e293b; --muted:#64748b; --vm:#94a3b8;
  --green:#059669; --gdim:#047857;
  --pink:#db2777;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--dark);color:var(--text);font-family:'Exo 2',sans-serif;min-height:100vh;}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes pulse{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes heartPop{0%{transform:scale(1)}50%{transform:scale(1.45)}100%{transform:scale(1)}}
@keyframes highlight{0%,100%{background:rgba(0,170,255,.04)}50%{background:rgba(0,170,255,.18)}}
.app{padding:28px 20px;max-width:1200px;margin:0 auto;}
.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:10px;}
.logo{font-family:'Share Tech Mono',monospace;font-size:.95rem;color:var(--blue);
  letter-spacing:.12em;white-space:nowrap;}
.tagline{display:none;}
.loginbar{font-family:'Share Tech Mono',monospace;font-size:.72rem;white-space:nowrap;}
.loginbar a{color:var(--muted);text-decoration:none;padding:6px 14px;border:1px solid var(--bborder);
  border-radius:3px;transition:all .2s;display:inline-block;}
.loginbar a:hover{color:var(--blue);border-color:var(--blue);}
.loginbar .user{color:var(--blue);margin-right:10px;}
.mypage-link{color:var(--blue);text-decoration:none;margin-right:10px;
  font-family:'Share Tech Mono',monospace;font-size:.72rem;transition:opacity .2s;}
.mypage-link:hover{opacity:.7;text-decoration:underline;}
.gate{display:flex;align-items:center;justify-content:center;min-height:60vh;text-align:center;}
.gate-inner{font-family:'Share Tech Mono',monospace;color:#1e293b;}
.gate-logo{font-size:3rem;margin-bottom:20px;color:var(--blue);}
.gate-msg{color:var(--muted);font-size:.82rem;letter-spacing:.1em;line-height:2;margin-bottom:28px;}
.xbtn{display:inline-block;padding:14px 32px;background:#1e293b;color:#fff;
  border:1px solid #334155;border-radius:4px;text-decoration:none;
  font-family:'Share Tech Mono',monospace;font-size:.9rem;letter-spacing:.1em;transition:all .2s;}
.xbtn:hover{border-color:var(--blue);box-shadow:0 4px 12px rgba(37,99,235,.2);}

/* ---- ゲート画面アソシエイト案内（airadarx.css準拠） ---- */
.gate-assoc{background:rgba(255,153,0,.07);border:1px solid rgba(255,153,0,.22);
  border-radius:4px;padding:14px 18px;margin-top:20px;max-width:380px;text-align:left;}
.gate-assoc-title{font-family:'Share Tech Mono',monospace;font-size:.7rem;color:#ff9900;
  letter-spacing:.1em;margin-bottom:8px;}
.gate-assoc-body{font-size:.76rem;color:#4488aa;line-height:1.75;}
.gate-assoc-body strong{color:#c8e8ff;}

/* ---- ゲート画面アカウントリスト ---- */
.gate-account-list{max-width:900px;margin:32px auto 0;padding:0 0 40px;}
.gate-account-list-title{font-family:'Share Tech Mono',monospace;font-size:.72rem;
  color:var(--blue);letter-spacing:.12em;margin-bottom:14px;text-align:left;}
.gate-account-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;}
.gate-acard{background:#f8fafc;border:1px solid #e2e8f0;
  border-radius:5px;padding:13px 15px;transition:border-color .2s,background .2s;
  text-decoration:none;display:block;}
.gate-acard:hover{border-color:#2563eb;background:#eff6ff;}
.gate-acard-handle{font-family:'Share Tech Mono',monospace;font-size:.82rem;color:var(--blue);margin-bottom:3px;}
.gate-acard-name{font-size:.74rem;color:var(--text);margin-bottom:5px;}
.gate-acard-bio{font-size:.72rem;color:var(--muted);line-height:1.55;margin-bottom:7px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.gate-acard-kws{display:flex;flex-wrap:wrap;gap:4px;}
.gate-acard-kw{font-family:'Share Tech Mono',monospace;font-size:.58rem;padding:2px 7px;
  border-radius:20px;background:#eff6ff;border:1px solid #bfdbfe;color:var(--blue);}

/* ---- いいね通知バー ---- */
.like-notify{background:#fdf2f8;border:1px solid #fbcfe8;
  border-radius:4px;padding:12px 16px;margin-bottom:18px;
  font-family:'Share Tech Mono',monospace;font-size:.78rem;color:var(--pink);
  display:none;animation:fadeUp .4s ease;}
.like-notify.show{display:block;}
.like-notify-title{font-size:.7rem;letter-spacing:.15em;opacity:.7;margin-bottom:6px;}
.like-from{color:var(--text);margin-right:4px;}

/* ---- レイアウト ---- */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:800px){.grid{grid-template-columns:1fr}}
.panel{background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.05);
  padding:18px;position:relative;overflow:hidden;margin-bottom:16px;}
.panel::before{display:none;}
.pt{font-family:'Share Tech Mono',monospace;font-size:.68rem;color:var(--blue);
  letter-spacing:.2em;opacity:.65;margin-bottom:14px;}

/* ---- おすすめアカウントカード ---- */
.acard{background:#f8fafc;border:1px solid #e2e8f0;
  border-radius:6px;padding:16px 18px;margin-bottom:14px;
  animation:fadeUp .4s ease both;transition:border-color .2s,background .2s;}
.acard:hover{border-color:#2563eb;background:#eff6ff;}
.acard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px;}
.acard-left{flex:1;}
.ahandle{font-family:'Share Tech Mono',monospace;font-size:.95rem;color:var(--blue);margin-bottom:4px;}
.ahandle a{color:var(--blue);text-decoration:none;}
.ahandle a:hover{text-decoration:underline;}
.abio{font-size:.77rem;color:var(--muted);line-height:1.6;margin-bottom:10px;}
.common-badge{font-family:'Share Tech Mono',monospace;font-size:.6rem;
  background:rgba(0,255,136,.1);color:var(--green);border:1px solid rgba(0,255,136,.3);
  border-radius:3px;padding:2px 7px;margin-left:8px;}

/* ---- キーワードタグ（スクロールトリガーつき）---- */
.akws{display:flex;flex-wrap:wrap;gap:5px;}
.akwtag{font-family:'Share Tech Mono',monospace;font-size:.65rem;padding:3px 9px;
  border-radius:20px;text-decoration:none;transition:all .15s;cursor:pointer;border:1px solid;}
.akwtag.normal{background:#eff6ff;border-color:#bfdbfe;color:var(--blue);}
.akwtag.normal:hover{background:#dbeafe;}
.akwtag.common{background:#ecfdf5;border-color:#6ee7b7;color:var(--green);}
.akwtag.common:hover{background:#d1fae5;}

/* ---- いいねボタン ---- */
.like-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;
  background:rgba(255,102,170,.08);border:1px solid rgba(255,102,170,.3);
  border-radius:4px;color:var(--pink);cursor:pointer;
  font-family:'Share Tech Mono',monospace;font-size:.73rem;
  transition:all .2s;white-space:nowrap;flex-shrink:0;}
.like-btn:hover{background:rgba(255,102,170,.18);border-color:rgba(255,102,170,.6);
  box-shadow:0 0 12px rgba(255,102,170,.2);}
.like-btn.liked{background:rgba(255,102,170,.2);border-color:rgba(255,102,170,.7);
  color:#ff88bb;cursor:pointer;}
.like-btn .heart{font-size:.88rem;}
.like-btn.liked .heart{display:inline-block;animation:heartPop .3s ease;}

/* ---- 考察タイムライン（サイド）---- */
.tl-item{background:#f8fafc;border:1px solid #e2e8f0;
  border-radius:4px;padding:13px;margin-bottom:12px;
  animation:fadeUp .4s ease both;transition:border-color .2s;}
.tl-item:hover{border-color:#93c5fd;}
.tl-item.scrolled{animation:highlight .8s ease;}
.tl-kw-row{display:flex;align-items:center;gap:7px;margin-bottom:8px;flex-wrap:wrap;}
.tl-kwtag{font-family:'Share Tech Mono',monospace;font-size:.66rem;
  background:#eff6ff;border:1px solid #bfdbfe;color:var(--blue);
  border-radius:20px;padding:2px 9px;text-decoration:none;transition:background .15s;}
.tl-kwtag:hover{background:rgba(0,170,255,.22);}
.tl-date{font-family:'Share Tech Mono',monospace;font-size:.58rem;color:var(--vm);}
.tl-body{font-size:.76rem;color:var(--muted);line-height:1.72;
  max-height:76px;overflow:hidden;position:relative;}
.tl-body::after{content:'';position:absolute;bottom:0;left:0;right:0;height:22px;
  background:linear-gradient(transparent,rgba(5,10,13,.95));}
.tl-body.expanded{max-height:none;}
.tl-body.expanded::after{display:none;}
.tl-footer{display:flex;align-items:center;justify-content:space-between;margin-top:8px;flex-wrap:wrap;gap:6px;}
.cms-link{font-family:'Share Tech Mono',monospace;font-size:.64rem;color:var(--blue);
  text-decoration:none;border:1px solid rgba(0,170,255,.3);border-radius:3px;
  padding:3px 9px;transition:all .15s;}
.cms-link:hover{background:rgba(0,170,255,.1);border-color:var(--blue);}
.expand-btn{font-family:'Share Tech Mono',monospace;font-size:.61rem;color:var(--muted);
  background:none;border:none;cursor:pointer;padding:0;transition:color .15s;}
.expand-btn:hover{color:var(--blue);}

/* ---- キーワードリスト（サイドヘッダー）---- */
.kwlist{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px;}
.kwtag-link{background:#eff6ff;border:1px solid #bfdbfe;color:var(--blue);
  font-family:'Share Tech Mono',monospace;font-size:.67rem;padding:3px 9px;
  border-radius:20px;text-decoration:none;transition:background .15s;letter-spacing:.04em;}
.kwtag-link:hover{background:#dbeafe;}

.loading{text-align:center;font-family:'Share Tech Mono',monospace;font-size:.8rem;
  color:#94a3b8;padding:40px;animation:pulse 1.5s infinite;}
.empty{text-align:center;font-family:'Share Tech Mono',monospace;font-size:.8rem;
  color:var(--vm);padding:40px;line-height:2;}

/* ---- アカウントページ ---- */
.profile-card{background:#fff;border:1px solid #e2e8f0;box-shadow:0 1px 3px rgba(0,0,0,.05);
  border-radius:6px;padding:20px 22px;margin-bottom:18px;}
.profile-handle{font-family:'Share Tech Mono',monospace;font-size:1.2rem;color:var(--blue);margin-bottom:4px;}
.profile-name{font-size:.85rem;color:var(--text);margin-bottom:8px;}
.profile-metrics{font-family:'Share Tech Mono',monospace;font-size:.65rem;color:var(--vm);margin-bottom:10px;}
.profile-metrics span{color:var(--text);}
.profile-bio{font-size:.82rem;color:var(--muted);line-height:1.7;margin-bottom:14px;}
.profile-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.back-link{font-family:'Share Tech Mono',monospace;font-size:.7rem;color:var(--muted);
  text-decoration:none;border:1px solid var(--bborder);border-radius:3px;padding:5px 12px;
  transition:all .2s;}
.back-link:hover{color:var(--blue);border-color:var(--blue);}
.profile-xlink{font-family:'Share Tech Mono',monospace;font-size:.7rem;color:#1da1f2;
  text-decoration:none;border:1px solid rgba(29,161,242,.35);border-radius:3px;
  padding:5px 12px;background:rgba(29,161,242,.08);transition:all .2s;}
.profile-xlink:hover{background:rgba(29,161,242,.18);}

/* ---- Amazonアソシエイト ---- */
.assoc-section{background:rgba(255,153,0,.05);border:1px solid rgba(255,153,0,.25);
  border-radius:4px;padding:14px 16px;margin-top:14px;}
.assoc-section::before{content:'';display:block;height:1px;
  background:linear-gradient(90deg,transparent,#ff9900,transparent);margin-bottom:12px;}
.assoc-label{font-family:'Share Tech Mono',monospace;font-size:.65rem;color:#ff9900;
  letter-spacing:.15em;opacity:.8;margin-bottom:10px;}
.assoc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:10px;}
.assoc-card{background:rgba(255,153,0,.07);border:1px solid rgba(255,153,0,.22);
  border-radius:4px;padding:10px 12px;text-decoration:none;transition:all .2s;display:block;}
.assoc-card:hover{background:rgba(255,153,0,.15);border-color:rgba(255,153,0,.5);}
.assoc-card-title{font-size:.74rem;color:var(--text);line-height:1.5;margin-bottom:6px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.assoc-card-cta{font-family:'Share Tech Mono',monospace;font-size:.62rem;color:#ff9900;letter-spacing:.05em;}
.assoc-auto-link{display:inline-block;padding:7px 14px;background:rgba(255,153,0,.1);
  border:1px solid rgba(255,153,0,.3);border-radius:3px;color:#ff9900;
  font-family:'Share Tech Mono',monospace;font-size:.7rem;text-decoration:none;
  transition:all .15s;letter-spacing:.05em;}
.assoc-auto-link:hover{background:rgba(255,153,0,.22);border-color:#ff9900;}
.assoc-disclaimer{font-size:.62rem;color:var(--vm);margin-top:8px;line-height:1.5;}

/* ---- アソシエイト編集フォーム（自分のページ）---- */
.assoc-edit{background:rgba(255,153,0,.04);border:1px solid rgba(255,153,0,.2);
  border-radius:4px;padding:14px 16px;margin-top:14px;}
.assoc-edit-title{font-family:'Share Tech Mono',monospace;font-size:.68rem;color:#ff9900;
  letter-spacing:.12em;margin-bottom:12px;}
.assoc-input{width:100%;padding:8px 10px;background:rgba(255,153,0,.06);
  border:1px solid rgba(255,153,0,.25);border-radius:3px;color:var(--text);
  font-family:'Share Tech Mono',monospace;font-size:.78rem;outline:none;margin-bottom:8px;
  transition:border-color .15s;}
.assoc-input:focus{border-color:#ff9900;}
.assoc-item-row{display:flex;gap:6px;margin-bottom:6px;}
.assoc-item-row input{flex:1;padding:7px 10px;background:rgba(255,153,0,.06);
  border:1px solid rgba(255,153,0,.2);border-radius:3px;color:var(--text);
  font-family:'Share Tech Mono',monospace;font-size:.74rem;outline:none;}
.assoc-item-row input:focus{border-color:#ff9900;}
.assoc-remove-btn{padding:6px 10px;background:rgba(255,68,102,.1);color:#ff4466;
  border:1px solid rgba(255,68,102,.3);border-radius:3px;cursor:pointer;
  font-family:'Share Tech Mono',monospace;font-size:.65rem;white-space:nowrap;}
.assoc-add-btn{font-family:'Share Tech Mono',monospace;font-size:.65rem;color:#ff9900;
  background:rgba(255,153,0,.08);border:1px solid rgba(255,153,0,.28);
  border-radius:3px;padding:5px 12px;cursor:pointer;transition:all .15s;margin-bottom:10px;}
.assoc-add-btn:hover{background:rgba(255,153,0,.18);}
.assoc-save-btn{font-family:'Share Tech Mono',monospace;font-size:.72rem;color:var(--dark);
  background:linear-gradient(135deg,#cc7700,#ff9900);border:none;
  border-radius:3px;padding:8px 18px;cursor:pointer;font-weight:700;
  letter-spacing:.08em;transition:all .15s;}
.assoc-save-btn:hover{box-shadow:0 0 16px rgba(255,153,0,.4);}

/* ---- アソシエイト登録案内 ---- */
.assoc-notice{background:rgba(255,204,0,.07);border:1px solid rgba(255,204,0,.28);
  border-radius:4px;padding:12px 14px;margin-bottom:12px;}
.assoc-notice-title{font-family:'Share Tech Mono',monospace;font-size:.68rem;
  color:#ffcc00;letter-spacing:.1em;margin-bottom:7px;}
.assoc-notice-body{font-size:.74rem;color:var(--muted);line-height:1.75;}
.assoc-notice-body strong{color:var(--text);}
.assoc-site-url{display:inline-block;background:rgba(0,0,0,.35);border:1px solid rgba(255,204,0,.2);
  border-radius:3px;padding:3px 8px;font-family:'Share Tech Mono',monospace;
  font-size:.7rem;color:#ffcc00;margin:4px 0;word-break:break-all;}
.assoc-link{color:#ff9900;text-decoration:none;}
.assoc-link:hover{text-decoration:underline;}

/* ---- トップナビ ---- */
.top-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.top-nav-btn{font-family:'Share Tech Mono',monospace;font-size:.68rem;color:var(--blue);
  text-decoration:none;border:1px solid #bfdbfe;border-radius:3px;
  padding:6px 14px;transition:all .2s;background:#eff6ff;}
.top-nav-btn:hover{color:var(--blue);border-color:var(--blue);background:#dbeafe;}

/* ---- Zenn最新記事 ---- */
.zenn-articles{background:rgba(170,136,255,.05);border:1px solid rgba(170,136,255,.25);
  border-radius:4px;padding:12px 14px;margin:8px 0 12px;}
.zenn-articles-title{font-family:'Share Tech Mono',monospace;font-size:.68rem;color:#aa88ff;
  letter-spacing:.12em;margin-bottom:10px;display:flex;align-items:center;gap:10px;}
.zenn-rss-link{font-size:.6rem;color:#aa88ff;text-decoration:none;
  border:1px solid rgba(170,136,255,.35);border-radius:3px;padding:2px 7px;
  transition:all .15s;margin-left:auto;}
.zenn-rss-link:hover{background:rgba(170,136,255,.15);border-color:#aa88ff;}
.zenn-article-item{padding:8px 0;border-bottom:1px solid rgba(170,136,255,.12);}
.zenn-article-item:last-child{border-bottom:none;padding-bottom:0;}
.zenn-article-title{font-size:.8rem;color:#c8b8ff;text-decoration:none;line-height:1.5;
  display:block;margin-bottom:4px;transition:color .15s;}
.zenn-article-title:hover{color:#aa88ff;text-decoration:underline;}
.zenn-article-meta{display:flex;align-items:center;gap:10px;}
.zenn-article-date{font-family:'Share Tech Mono',monospace;font-size:.6rem;color:#554477;}
.zenn-article-liked{font-family:'Share Tech Mono',monospace;font-size:.6rem;color:#ff88aa;}

/* ---- フッター ---- */
.site-footer{text-align:center;font-family:'Share Tech Mono',monospace;font-size:.62rem;
  color:#94a3b8;padding:20px;margin-top:30px;border-top:1px solid #e2e8f0;}