/* ===== リセット ===== */
*, *::before, *::after { box-sizing:border-box; }
html, body { max-width:100%; overflow-x:hidden; font-family:"Segoe UI", Helvetica, Arial, sans-serif; background:#f0f2f5; color:#050505; margin:0; padding:0; height:100%; }
body { display:flex; flex-direction:column; min-height:100vh; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* ===== ヘッダー ===== */
.top-header { display:flex; align-items:center; justify-content:space-between; background:#ffffff; padding:10px 20px; border-bottom:1px solid #dddfe2; position:sticky; top:0; z-index:100; }
.logo { display:flex; align-items:center; gap:12px; text-decoration:none; color:#111827; font-size:20px; font-weight:700; }
.logo-icon { display:flex; gap:0; width:32px; height:32px; border-radius:50%; background:conic-gradient(from 180deg,#e21f4c,#7b2ff7,#3457ef,#e21f4c); overflow:hidden; }
.logo-bar { display:none; }
.logo-text { white-space:nowrap; }
#search-form { display:flex; align-items:center; position:relative; background:#ffffff; border:1px solid #e2e4e8; border-radius:8px; padding:0; max-width:600px; width:100%; }
#search-form .search-icon { position:absolute; left:12px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:#9ca3af; stroke:#9ca3af; pointer-events:none; }
#search-form input[type="text"] { flex:1; border:none; background:transparent; padding:10px 12px 10px 38px; font-size:14px; outline:none; border-radius:8px; }
.header-icons,.nav-icons,.top-icons,.pc-icons { display:flex; align-items:center; gap:15px; }
.header-icons a,.nav-icons a,.top-icons a,.pc-icons a { color:#1f2937 !important; text-decoration:none; display:flex; align-items:center; justify-content:center; }
.header-icons svg,.nav-icons svg,.top-icons svg,.pc-icons svg { stroke:#1f2937 !important; width:22px; height:22px; }
.header-icons a[href*="home"],.nav-icons a[href*="home"],.top-icons a[href*="home"],.pc-icons a[href*="home"] { order:1; }
.header-icons a[href="index.php"] { order:1; }
.header-icons a.notification-bell { order:2; }
.profile-lang { order:3; display:flex; flex-direction:column; align-items:center; gap:4px; }
.profile-icon { display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; overflow:hidden; }
.profile-icon img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
.top-right { display:flex; flex-direction:column; align-items:flex-end; }
.lang-switch { font-size:12px; white-space:nowrap; }
.lang-switch a { text-decoration:none; color:#65676b; }
.lang-switch a:hover { color:#1877f2; }
.mobile-menu-btn { display:none !important; }
.mobile-menu-btn svg { stroke:#1f2937; }
/* ===== バナー(Your Voice. No Filter.) ===== */
.site-description { width:100%; background:linear-gradient(90deg,#e21f4c 0%,#7b2ff7 50%,#3457ef 100%); color:#fff; text-align:center; padding:90px 40px; border-radius:0; margin:0 0 30px; box-shadow:none; }
.site-description h2 { margin:0 0 20px; font-size:52px; font-weight:800; color:#fff; letter-spacing:-0.5px; line-height:1.15; }
.site-description p { margin:0 auto; max-width:700px; color:rgba(255,255,255,.95); font-size:17px; line-height:1.6; }
/* ===== レイアウト ===== */
.content { width:100%; }
.main-layout { max-width:1200px; margin:40px auto; display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:28px; align-items:start; }
.main-column { width:100%; min-width:0; order:1; }
/* サイドバーが無い投稿詳細ページなどは1カラムにして中央寄せ */
.main-layout:not(:has(.left-sidebar)) { grid-template-columns:minmax(0,1fr); justify-content:center; }
.main-layout:not(:has(.left-sidebar)) .main-column { max-width:700px; margin:0 auto; }
/* ===== 右サイドバー(トレンド + ルール) ===== */
.left-sidebar { width:100%; order:2; display:flex; flex-direction:column; gap:20px; align-self:start; position:sticky; top:90px; }
.tag-card { background:#ffffff; border-radius:16px; border:1px solid #edeef0; box-shadow:0 1px 3px rgba(0,0,0,.05); padding:24px; }
.tag-card h3 { display:flex; align-items:center; gap:10px; margin:0 0 20px; font-size:20px; font-weight:800; color:#111827; }
.trend-tags { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0; }
.trend-tags li { display:flex; justify-content:space-between; align-items:center; margin:0; padding:16px 0; border-radius:0; background:transparent; border:none; border-bottom:1px solid #f0f1f3; }
.trend-tags li:first-child { padding-top:0; }
.trend-tags li:last-child { border-bottom:none; padding-bottom:0; }
.trend-tags a { text-decoration:none; color:#111827; font-weight:700; font-size:16px; }
.trend-tags a:hover { text-decoration:underline; }
.trend-tags .count { background:none; padding:0; color:#9ca3af; font-size:13px; font-weight:500; }
.community-rules { background:#f4f2fb; border-radius:16px; padding:24px; }
.community-rules h3 { margin:0 0 16px; font-size:18px; font-weight:800; color:#111827; }
.community-rules ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px; }
.community-rules li { font-size:14px; color:#4b5563; padding-left:16px; position:relative; line-height:1.9; }
.community-rules li::before { content:"•"; position:absolute; left:0; color:#e21f4c; }
/* ===== 投稿フォーム ===== */
.modern-post-form { width:100%; max-width:none; margin:0 0 24px; background:#fff; border-radius:16px; padding:26px 28px; border:1px solid #edeef0; box-shadow:0 1px 3px rgba(0,0,0,.05); }
.form-top-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; flex-wrap:wrap; gap:12px; }
.form-title { margin:0; padding-bottom:0; font-size:18px; font-weight:700; color:#111827; border-bottom:none; }
.political-selector { display:flex; align-items:center; gap:10px; }
.party-card { position:relative; flex:0 0 auto; background:#f3f4f6; border:none; border-radius:999px; padding:8px 18px; text-align:center; cursor:pointer; }
.party-card input { display:none; }
.party-card .party-dot,
.party-card .party-sub { display:none; }
.party-title { font-size:13.5px; font-weight:600; margin:0; color:#6b7280; }
.red-card:has(input:checked) { background:#e21f4c; box-shadow:0 0 0 2px #111827; }
.red-card:has(input:checked) .party-title { color:#fff; }
.blue-card:has(input:checked) { background:#3457ef; box-shadow:0 0 0 2px #111827; }
.blue-card:has(input:checked) .party-title { color:#fff; }
.purple-card:has(input:checked) { background:#7b2ff7; box-shadow:0 0 0 2px #111827; }
.purple-card:has(input:checked) .party-title { color:#fff; }
.post-input-wrapper { margin:0 0 20px; }
.post-input-wrapper textarea { width:100%; min-height:120px; resize:none; border:1px solid #e2e4e8; border-radius:12px; padding:16px 18px; font-size:16px; outline:none; transition:.2s; background:#fff; box-sizing:border-box; font-family:inherit; }
.post-input-wrapper textarea:focus { border-color:#c7c9cc; }
.post-bottom { display:flex; justify-content:flex-end; align-items:center; margin-top:0; }
.post-btn { background:#111827 !important; color:#ffffff !important; border:none !important; border-radius:10px; padding:10px 24px; font-size:15px; font-weight:600; cursor:pointer; transition:.2s; }
.post-btn:hover { background:#000000 !important; }
/* ===== フィード見出し + フィルタータブ ===== */
.feed-header { display:flex; justify-content:space-between; align-items:center; margin:0 0 20px; flex-wrap:wrap; gap:12px; }
.feed-title { margin:0; font-size:20px; font-weight:800; color:#111827; }
.party-filter { display:flex; justify-content:flex-start; align-items:center; gap:4px; width:auto; overflow-x:auto; background:#f0f0f5; border-radius:10px; padding:4px; }
.party-filter a { flex:0 0 auto; text-align:center; padding:7px 14px; border-radius:8px; background:transparent; border:none; box-shadow:none; text-decoration:none; color:#555; font-weight:500; font-size:14px; white-space:nowrap; transition:all .2s ease; }
.party-filter a:hover { color:#111827; }
.party-filter a.active { background:#ffffff; color:#111827; box-shadow:0 1px 4px rgba(0,0,0,.08); }
/* ===== 投稿カード ===== */
.post { position:relative; background:#ffffff; margin:18px 0 24px; width:100%; max-width:none; border-radius:16px; border:1px solid #edeef0; overflow:visible; box-shadow:0 1px 3px rgba(0,0,0,.05); padding:0; }
.post-header { display:flex; align-items:center; gap:10px; padding:22px 26px 0; }
.party-dot-marker { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.party-dot-marker.red { background:#e21f4c; }
.party-dot-marker.blue { background:#3457ef; }
.party-dot-marker.purple { background:#7b2ff7; }
.post-user-info { display:flex; flex-direction:column; align-items:flex-start; gap:3px; flex:1; }
.post-user-line { display:flex; align-items:center; gap:10px; }
.post-user-info strong { font-size:16px; color:#111827; margin:0; }
.post-user-info small { color:#9aa0a6; font-size:12.5px; }
.party-badge { display:inline-flex; align-items:center; justify-content:center; padding:3px 12px; border-radius:999px; font-size:10.5px; font-weight:700; margin-left:auto; }
.party-badge.red { background:#fde3ea; color:#e21f4c; }
.party-badge.blue { background:#e2e8fd; color:#3457ef; }
.party-badge.purple { background:#eee0fd; color:#7b2ff7; }
/* ===== ・・・(三点)メニュー ===== */
.menu-wrapper { position:relative; }
.menu-toggle-btn { background:none; border:none; cursor:pointer; padding:6px; color:#9aa0a6; border-radius:6px; display:flex; align-items:center; justify-content:center; }
.menu-toggle-btn:hover { background:#f3f4f6; color:#65676b; }
.dropdown-menu { display:none; position:absolute; top:calc(100% + 4px); right:0; background:#ffffff; border:1px solid #e5e7eb; border-radius:10px; box-shadow:0 6px 20px rgba(0,0,0,.12); padding:6px; min-width:140px; z-index:20; flex-direction:column; }
.menu-wrapper.open .dropdown-menu { display:flex; }
.dropdown-menu button { display:flex; align-items:center; gap:10px; width:100%; background:none; border:none; cursor:pointer; padding:8px 10px; color:#374151; font-size:13.5px; border-radius:6px; text-align:left; }
.dropdown-menu button:hover { background:#f3f4f6; }
.dropdown-menu button i { width:16px; height:16px; color:#6b7280; flex-shrink:0; }
.dropdown-menu button.delete-btn,
.dropdown-menu button.delete-comment-btn { color:#e21f4c; }
.dropdown-menu button.delete-btn i,
.dropdown-menu button.delete-comment-btn i { color:#e21f4c; }
button.toggle-comment { background:none; border:none; cursor:pointer; color:#65676b; padding:4px; }
.post-content { font-size:16px; line-height:1.7; color:#1f2937; margin:18px 0; padding:0 26px; }
.post-media { max-width:calc(100% - 64px); margin:0 32px 18px; border-radius:8px; }
.post-footer { display:flex; justify-content:flex-start; align-items:center; gap:24px; padding:14px 26px 18px; margin-top:0; border-top:none; }
.post-footer button { background:none; border:none; cursor:pointer; display:flex; align-items:center; gap:6px; color:#65676b; font-size:13.5px; font-weight:500; padding:4px 2px; }
.post-footer button:hover { color:#111827; }
.post-footer button svg { width:18px; height:18px; stroke:currentColor; }
/* 賛成/反対ボタン: 見た目は既存の .post-footer button と共通。押した方だけ色を付ける */
.vote-btn.agree-btn.active { color:#16a34a; }
.vote-btn.disagree-btn.active { color:#dc2626; }
.vote-btn:disabled { opacity:.6; cursor:default; }
/* ===== コメント ===== */
.comments { background:transparent; border-radius:0; padding:0 26px 18px; margin-top:0; border-top:1px solid #f0f1f3; display:none; }
.comment { display:flex; align-items:flex-start; gap:10px; margin-top:16px; }
.comment:first-child { margin-top:16px; }
.comment-bubble { flex:1; background:#f7f7f9; border:1px solid #e5e7eb; border-radius:10px; padding:10px 14px; overflow:visible; }
.comment-header { display:flex; align-items:center; gap:8px; }
.comment-info { display:flex; align-items:center; justify-content:space-between; flex:1; gap:10px; }
.comment-info b { font-size:13.5px; font-weight:700; color:#111827; margin:0; }
.comment-time { color:#9aa0a6; font-size:12px; white-space:nowrap; }
.comment p { margin:8px 0 0; word-break:break-word; font-size:13.5px; color:#374151; line-height:1.5; }
.comments form { display:flex; align-items:center; gap:8px; background:#ffffff; border:1px solid #e2e4e8; border-radius:10px; padding:6px 6px 6px 16px; margin-top:16px; }
.comments input[type="text"] { flex:1; border:none; background:transparent; padding:8px 0; font-size:14px; outline:none; }
.comments > form > button { background:#111827; border:none; color:white; border-radius:50%; width:32px; height:32px; min-width:32px; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.comments > form > button:hover { background:#000000; }
/* ===== 編集フォーム ===== */
.edit-post-form,.edit-comment-form { background:#ffffff; border-radius:10px; padding:10px; margin:8px 0; border:1px solid #e2e4e8; display:flex; flex-direction:column; gap:8px; width:100%; max-width:100%; box-sizing:border-box; }
.edit-post-form textarea,.edit-comment-form textarea { width:100%; height:70px; min-height:60px; border:1px solid #e2e4e8; background:#f7f7f9; border-radius:10px; padding:10px 12px; resize:none; font-size:13.5px; line-height:1.5; box-sizing:border-box; font-family:inherit; }
.edit-post-form textarea:focus,.edit-comment-form textarea:focus { outline:none; border-color:#c7c9cc; }
.edit-post-form .edit-form-actions,.edit-comment-form .edit-form-actions { display:flex; justify-content:flex-end; gap:8px; }
.edit-post-form button,.edit-comment-form button { width:auto; display:inline-flex; align-items:center; justify-content:center; gap:6px; border:none; border-radius:8px; padding:6px 16px; font-weight:600; cursor:pointer; font-size:13px; }
.edit-post-form button:first-of-type,.edit-comment-form button:first-of-type { background:#111827; color:white; }
.edit-post-form button:first-of-type:hover,.edit-comment-form button:first-of-type:hover { background:#000000; }
.edit-post-form button:last-of-type,.edit-comment-form button:last-of-type { background:#f3f4f6; color:#374151; }
.edit-post-form button:last-of-type:hover,.edit-comment-form button:last-of-type:hover { background:#e5e7eb; }
.comments .edit-comment-form { align-items:normal; background:#ffffff !important; border:1px solid #e2e4e8; border-radius:10px; padding:10px; }
.comments .edit-comment-form textarea { background:#f7f7f9; }
/* ===== モバイルメニュー(hamburger) ===== */
.mobile-menu { display:flex; position:fixed; top:0; left:-260px; width:250px; height:100%; background:#ffffff; box-shadow:2px 0 12px rgba(0,0,0,0.15); z-index:9999; padding:80px 20px 20px; flex-direction:column; gap:18px; }
.mobile-menu.show { left:0; }
.mobile-menu-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.45); display:none; z-index:9998; }
/* ===== プロフィールページ ===== */
.profile-header-card { background:#ffffff; border-radius:20px; border:1px solid #edeef0; box-shadow:0 8px 24px -8px rgba(17,24,39,.12), 0 1px 3px rgba(17,24,39,.05); overflow:hidden; margin:0 0 20px; }
.profile-cover { height:112px; background:linear-gradient(120deg,#e21f4c 0%,#7b2ff7 55%,#3457ef 100%); }
.profile-header-row { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; padding:0 28px; margin-top:-46px; flex-wrap:wrap; }
.profile-avatar-lg { width:92px; height:92px; border-radius:50%; flex-shrink:0; border:4px solid #ffffff; box-shadow:0 4px 10px rgba(17,24,39,.18); background:conic-gradient(from 180deg,#e21f4c,#7b2ff7,#3457ef,#e21f4c); display:flex; align-items:center; justify-content:center; color:#fff; overflow:hidden; }
.profile-avatar-lg img { width:100%; height:100%; object-fit:cover; }
.profile-actions { display:flex; gap:10px; flex-wrap:wrap; padding-bottom:14px; }
.profile-header-info { padding:14px 28px 26px; }
.profile-header-info h1 { margin:0 0 8px; font-size:24px; font-weight:800; color:#111827; letter-spacing:-.3px; }
.profile-stats { display:flex; gap:10px; margin-top:16px; flex-wrap:wrap; }
.profile-stat-pill { display:flex; align-items:center; gap:7px; background:#f7f7f9; border-radius:999px; padding:8px 16px; font-size:13.5px; color:#374151; font-weight:500; }
.profile-stat-pill strong { color:#111827; font-weight:800; }
.profile-stat-pill svg { width:15px; height:15px; stroke:#7b2ff7; }
.profile-actions { display:flex; gap:10px; }
.profile-btn { border:none; border-radius:10px; padding:9px 20px; font-size:14px; font-weight:600; cursor:pointer; transition:.15s; text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.profile-btn svg { width:16px; height:16px; }
.profile-btn.primary { background:#111827; color:#fff !important; }
.profile-btn.primary:hover { background:#000000; transform:translateY(-1px); box-shadow:0 4px 10px rgba(17,24,39,.25); }
.profile-btn.danger { background:#fde3ea; color:#e21f4c !important; }
.profile-btn.danger:hover { background:#fbd0dd; transform:translateY(-1px); }
.profile-btn.neutral { background:#f3f4f6; color:#374151 !important; }
.profile-btn.neutral:hover { background:#e5e7eb; transform:translateY(-1px); }
.profile-posts-header { display:flex; align-items:center; margin:4px 4px 4px; }
.profile-posts-header h2 { display:flex; align-items:center; gap:8px; margin:0; font-size:17px; font-weight:800; color:#111827; }
.profile-posts-header h2 svg { width:18px; height:18px; stroke:#7b2ff7; }
/* ===== プロフィール: 投稿/コメント タブ切り替え ===== */
.profile-view-tabs { display:flex; align-items:center; gap:4px; width:fit-content; background:#f0f0f5; border-radius:10px; padding:4px; margin:4px 4px 16px; }
.profile-view-tab { display:flex; align-items:center; gap:7px; padding:8px 16px; border-radius:8px; background:transparent; border:none; box-shadow:none; color:#65676b; font-weight:600; font-size:14px; cursor:pointer; transition:all .2s ease; font-family:inherit; }
.profile-view-tab svg { width:16px; height:16px; }
.profile-view-tab:hover { color:#111827; }
.profile-view-tab.active { background:#ffffff; color:#111827; box-shadow:0 1px 4px rgba(0,0,0,.08); }
.profile-tab-panel.hidden { display:none; }
/* ===== プロフィール: 自分のコメント一覧(他人の投稿への返信) ===== */
#profile-comments { display:flex; flex-direction:column; gap:4px; }
#profile-comments .comment { margin-top:0; }
.reply-label { color:#65676b; font-size:13px; }
.reply-label a.user-link { color:#111827; text-decoration:none; }
.reply-label a.user-link:hover { text-decoration:underline; }
.comment-quoted-post { display:flex; align-items:flex-start; gap:6px; margin-top:10px; padding:8px 10px; background:#ffffff; border:1px solid #e5e7eb; border-radius:8px; color:#9aa0a6; font-size:12.5px; line-height:1.5; }
.comment-quoted-post svg { width:14px; height:14px; flex-shrink:0; margin-top:1px; stroke:#c7cad1; }
.profile-flash { border-radius:12px; padding:13px 18px; margin:0 0 20px; font-size:14px; font-weight:600; display:flex; align-items:center; gap:9px; }
.profile-flash svg { width:17px; height:17px; flex-shrink:0; }
.profile-flash.success { background:#e7f8ee; color:#0f9d58; }
.profile-flash.error { background:#fde3ea; color:#e21f4c; }
.profile-empty, .profile-blocked-notice { text-align:center; color:#9aa0a6; padding:64px 20px; font-size:14px; background:#ffffff; border-radius:20px; border:1px solid #edeef0; }
.profile-empty svg, .profile-blocked-notice svg { width:32px; height:32px; stroke:#c7cad1; margin-bottom:10px; }
.profile-empty p, .profile-blocked-notice p { margin:0; }
.mobile-menu-overlay.show { display:block; }
body.menu-open { overflow:hidden; }
.mobile-menu a { display:flex; align-items:center; gap:10px; width:100%; text-decoration:none; font-size:16px; }
.mobile-menu a[href*="lang="] { display:inline-block; width:auto; }
/* ===== モバイル用トレンド一覧ページ(別ページ想定) ===== */
.mobile-trend-page { width:94%; margin:15px auto; }
.mobile-trend-page h2 { display:flex; align-items:center; gap:10px; margin:0 0 18px; font-size:28px; font-weight:800; color:#111827; }
.mobile-trend-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px; counter-reset:trend; }
.mobile-trend-list li { position:relative; }
.mobile-trend-list li::before { counter-increment:trend; content:counter(trend); position:absolute; left:-8px; top:-8px; width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:12px; font-weight:800; background:#2563eb; z-index:2; }
.mobile-trend-list li:nth-child(1)::before { background:#ef4444; }
.mobile-trend-list li:nth-child(2)::before { background:#2563eb; }
.mobile-trend-list li:nth-child(3)::before { background:#8b5cf6; }
.mobile-trend-list li a { display:flex; align-items:center; justify-content:space-between; text-decoration:none; padding:16px 18px; border-radius:18px; background:#ffffff; color:#111827; font-size:17px; font-weight:700; border:1px solid #e5e7eb; box-shadow:0 6px 20px rgba(0,0,0,.06); }
.mobile-trend-list li a:active { transform:scale(.98); }
.mobile-trend-list .cnt { min-width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:999px; color:#fff; font-size:14px; font-weight:800; background:#2563eb; }
.mobile-trend-list li:nth-child(1) .cnt { background:#ef4444; }
.mobile-trend-list li:nth-child(2) .cnt { background:#2563eb; }
.mobile-trend-list li:nth-child(3) .cnt { background:#8b5cf6; }
/* ===== フッター ===== */
.site-footer { width:100%; background:#ffffff; color:#65676b; margin-top:60px; padding:34px 20px 30px; text-align:center; border-top:3px solid; border-image:linear-gradient(90deg,#e21f4c,#7b2ff7,#3457ef) 1; }
.site-footer-links { display:flex; justify-content:center; align-items:center; gap:14px; flex-wrap:wrap; margin:0 0 12px; font-size:14px; }
.site-footer-links a { color:#111827; text-decoration:none; transition:color .2s; }
.site-footer-links a:hover { color:#e21f4c; text-decoration:underline; }
.site-footer-links span[aria-hidden="true"] { color:#c7c9cc; }
.site-footer-copyright { font-size:13px; color:#9aa0a6; }
/* ===== レスポンシブ(スマホ) ===== */
@media (max-width:700px) {
  .left-sidebar { display:none !important; }
  .top-header { flex-direction:column; align-items:stretch; gap:10px; padding:15px; position:sticky; top:0; z-index:100; }
  .mobile-menu-btn { display:block !important; position:absolute; top:15px; left:15px; z-index:200; background:none; border:none; font-size:22px; cursor:pointer; }
  .logo { font-size:35px; margin-left:40px; line-height:1.3; }
  #search-form { width:100%; max-width:100%; margin:5px 0 0 0; }
  .post { margin:12px 0; max-width:100%; }
  .comment { margin-top:10px; }
  .post-footer { gap:8px 6px; padding:12px 16px 16px; flex-wrap:wrap; justify-content:space-between; }
  .post-footer button { font-size:12.5px; gap:4px; padding:4px 0; }
  .post-footer button svg { width:16px; height:16px; }
  .header-icons,.nav-icons,.top-icons,.pc-icons { display:none !important; }
  .language-switcher,.lang-links { display:none !important; }
  .top-header a[href*="lang="] { display:none !important; }
  .post-input-wrapper textarea { font-size:18px; min-height:120px; }
  .post-bottom { flex-wrap:wrap; gap:12px; }
  .site-description { padding:20px 15px; }
  .site-description h2 { font-size:34px; }
  .site-description p { font-size:16px; }
  .modern-post-form, .post { width:94%; max-width:94%; margin-left:auto; margin-right:auto; }
  .modern-post-form { width:auto; max-width:none; margin:15px 12px; padding:16px; }
  .form-top-row { flex-direction:column; align-items:flex-start; }
  .political-selector {display: flex;width: 100%;gap: 8px;overflow: hidden;}
  .party-card {flex: 1 1 0;min-width: 0;padding: 8px 6px;white-space: nowrap;}
  .party-title {display: block;font-size: 12px;text-align: center;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}
  .feed-header { flex-direction:column; align-items:center; width:94%; max-width:94%; margin-left:auto; margin-right:auto; }
  .party-filter { display:flex; flex-wrap:nowrap; justify-content:center; overflow-x:auto; padding-left:4px; padding-right:4px; width:auto; max-width:100%; margin:0 auto; }
  .party-filter a { flex-shrink:0; }
  .main-layout { display:block; }
  .main-column { width:100%; }
  .mobile-trend-page { width:94%; max-width:94%; margin:15px auto; background:#ffffff; border-radius:16px; border:1px solid #edeef0; box-shadow:0 1px 3px rgba(0,0,0,.05); padding:24px;} 
  .mobile-trend-page h2 { display:flex; align-items:center; gap:10px; margin:0 0 20px; font-size:20px; font-weight:800; color:#111827; }
  .mobile-trend-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0; counter-reset:none; }
  .mobile-trend-list li { position:static; margin:0; padding:0; border-bottom:1px solid #f0f1f3; }
  .mobile-trend-list li:last-child { border-bottom:none; }
  .mobile-trend-list li::before { content:none; }
  .mobile-trend-list li a { display:flex; justify-content:space-between; align-items:center; padding:16px 0; text-decoration:none; color:#111827; font-weight:700; font-size:16px; background:none; border:none; border-radius:0; box-shadow:none; }
  .mobile-trend-list li:first-child a { padding-top:0; }
  .mobile-trend-list li:last-child a { padding-bottom:0; }
  .mobile-trend-list li a:hover { text-decoration:underline; }
  .mobile-trend-list li a:active { transform:none; }
  .mobile-trend-list .cnt { min-width:0; height:auto; padding:0; border-radius:0; background:none !important; color:#9ca3af; font-size:13px; font-weight:500; }
  .site-footer { padding:26px 20px 24px; margin-top:30px; }
  .site-footer-links { gap:10px; font-size:13px; }
  /* ===== プロフィールページ ===== */
  .profile-header-card,
  .profile-flash,
  .profile-posts-header,
  .profile-edit-details,
  .profile-empty,
  .profile-blocked-notice { width:94%; max-width:94%; margin-left:auto; margin-right:auto; }
  .profile-header-card { margin-top:15px; margin-bottom:16px; border-radius:18px; }
  .profile-cover { height:84px; }
  .profile-header-row { margin-top:-32px; padding:0 16px; align-items:center; }
  .profile-avatar-lg { width:64px; height:64px; border-width:3px; }
  .profile-avatar-lg svg { width:28px; height:28px; }
  .profile-actions { padding-bottom:6px; gap:8px; }
  .profile-btn { padding:8px 14px; font-size:12.5px; }
  .profile-btn svg { width:14px; height:14px; }
  .profile-header-info { padding:10px 16px 20px; }
  .profile-header-info h1 { font-size:19px; margin-bottom:6px; }
  .profile-stats { gap:8px; margin-top:12px; }
  .profile-stat-pill { padding:6px 12px; font-size:12.5px; gap:5px; }
  .profile-stat-pill svg { width:13px; height:13px; }
  .profile-posts-header { margin-top:0; margin-bottom:4px; }
  .profile-posts-header h2 { font-size:15px; }
  .profile-view-tabs { width:94%; max-width:94%; margin-left:auto; margin-right:auto; margin-bottom:12px; }
  .profile-view-tab { padding:7px 12px; font-size:13px; }
  .profile-flash { margin-top:15px; padding:11px 16px; font-size:13px; }
  .profile-empty, .profile-blocked-notice { padding:48px 16px; border-radius:16px; margin-bottom:16px; }
  .profile-empty svg, .profile-blocked-notice svg { width:26px; height:26px; }
}