.app-body { padding-bottom: 0; }
.app-header { position: sticky; top: 0; z-index: 60; border-bottom: 1px solid var(--border); background: rgba(7,10,22,.88); backdrop-filter: blur(20px); }
.app-header-inner { min-height: 74px; display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; gap: 20px; }
.app-nav { justify-self: center; display: none; align-items: center; gap: 7px; padding: 5px; border: 1px solid rgba(255,255,255,.055); border-radius: 999px; background: rgba(255,255,255,.025); }
.app-nav a { padding: 8px 13px; border-radius: 999px; color: var(--text-secondary); font-size: .88rem; font-weight: 760; }
.app-nav a:hover, .app-nav a[aria-current="page"] { background: rgba(255,255,255,.055); color: #fff; }
.account-menu { display: flex; align-items: center; gap: 12px; }
.app-header-inner .account-menu { grid-column: 4; justify-self: end; }
.account-meta { display: grid; line-height: 1.18; text-align: right; }
.account-meta strong { max-width: 130px; overflow: hidden; text-overflow: ellipsis; font-size: .84rem; }
.account-meta span { color: var(--text-secondary); font-size: .71rem; }
.logout-button { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--border); border-radius: 999px; background: rgba(255,255,255,.025); color: var(--text-secondary); cursor: pointer; }
.logout-button:hover { color: #fff; border-color: var(--border-strong); }
.logout-button svg { width: 18px; }

.app-main { padding: 54px 0 104px; }
.app-intro { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 32px; margin-bottom: 38px; }
.app-intro .eyebrow { margin-bottom: 13px; }
.app-intro h1 { font-size: clamp(2.15rem, 5vw, 4rem); }
.app-intro p { max-width: 620px; margin-top: 12px; }
.countdown-box { min-width: 192px; padding: 16px 20px; border: 1px solid var(--border); border-radius: 18px; background: rgba(255,255,255,.035); box-shadow: inset 0 0 0 1px rgba(255,255,255,.02); }
.countdown-box span { display: block; color: var(--text-secondary); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.countdown-box strong { display: block; margin-top: 3px; font-variant-numeric: tabular-nums; font-size: 1.45rem; letter-spacing: .04em; }

.dashboard-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: start; }
.dashboard-layout-full { grid-template-columns: minmax(0, 1fr); }
.topic-list { display: grid; gap: 18px; }
.daily-topic-card { position: relative; display: grid; grid-template-columns: 1fr 182px; min-height: 260px; overflow: hidden; transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease; }
.daily-topic-card:hover { transform: translateY(-3px); border-color: var(--border-glow); box-shadow: 0 24px 68px rgba(0,0,0,.3); }
.topic-card-main { display: flex; flex-direction: column; padding: 30px; }
.topic-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--text-secondary); font-size: .75rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.daily-topic-card h2 { max-width: 680px; margin-top: 40px; font-size: clamp(1.42rem, 2.9vw, 2rem); }
.topic-card-main > p { max-width: 700px; margin-top: 11px; font-size: .92rem; }
.topic-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 24px; }
.open-topic-link { display: inline-flex; align-items: center; gap: 8px; font-size: .86rem; font-weight: 800; }
.open-topic-link span { transition: transform 160ms ease; }
.daily-topic-card:hover .open-topic-link span { transform: translateX(3px); }
.topic-card-sides { display: grid; grid-template-rows: 1fr 1fr; border-left: 1px solid var(--border); background: rgba(255,255,255,.018); }
.topic-side-panel { display: grid; place-items: center; align-content: center; gap: 7px; padding: 18px; }
.topic-side-panel:first-child { border-bottom: 1px solid var(--border); }
.topic-side-panel.for { background: linear-gradient(135deg, transparent, rgba(255,45,141,.14)); }
.topic-side-panel.against { background: linear-gradient(135deg, transparent, rgba(23,107,255,.14)); }
.topic-side-panel small { color: var(--text-secondary); font-size: .7rem; }

.dashboard-rail { display: grid; gap: 18px; }
.rail-card { padding: 24px; }
.rail-card h2 { font-size: 1.1rem; letter-spacing: -.02em; }
.rail-profile { display: flex; align-items: center; gap: 12px; margin-top: 18px; }
.rail-profile .avatar { width: 48px; height: 48px; }
.rail-profile-text { min-width: 0; }
.rail-profile-text strong { display: block; overflow: hidden; text-overflow: ellipsis; }
.rail-profile-text span { color: var(--text-secondary); font-size: .78rem; }
.rail-stats { display: grid; grid-template-columns: 1fr 1fr; margin-top: 20px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.rail-stat { padding: 15px 4px; }
.rail-stat + .rail-stat { padding-left: 15px; border-left: 1px solid var(--border); }
.rail-stat strong { display: block; font-size: 1.35rem; }
.rail-stat span { color: var(--text-secondary); font-size: .72rem; }
.rail-link { display: inline-flex; margin-top: 17px; font-size: .84rem; font-weight: 750; }
.stage-note { display: grid; gap: 10px; }
.stage-note p { font-size: .84rem; }

.topic-page { padding-top: 30px; }
.back-link { display: inline-flex; align-items: center; gap: 8px; color: var(--text-secondary); font-size: .86rem; font-weight: 700; }
.back-link:hover { color: #fff; }
.topic-detail-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(380px, .68fr); gap: 24px; margin-top: 28px; align-items: start; }
.topic-brief { position: sticky; top: 96px; padding: 34px; }
.topic-brief-meta { display: flex; justify-content: space-between; gap: 12px; color: var(--text-secondary); font-size: .76rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.topic-brief h1 { margin-top: 52px; font-size: clamp(1.95rem, 4.5vw, 3.55rem); }
.topic-description { margin-top: 22px; font-size: 1.03rem; }
.neutral-note { display: flex; gap: 10px; margin-top: 38px; padding-top: 19px; border-top: 1px solid var(--border); color: var(--text-secondary); font-size: .82rem; }
.neutral-note strong { color: var(--text-primary); }
.argument-panel { padding: 30px; }
.argument-panel h2 { font-size: 1.6rem; }
.argument-panel > p { margin-top: 8px; font-size: .9rem; }
.side-picker { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; padding: 0; border: 0; }
.side-option { position: relative; }
.side-option input { position: absolute; opacity: 0; pointer-events: none; }
.side-option label { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 10px 18px; border: 1px solid var(--border-strong); border-radius: 999px; cursor: pointer; transition: border-color 160ms ease, background 160ms ease, transform 160ms ease, box-shadow 160ms ease; }
.side-option label:hover { transform: translateY(-1px); }
.side-option strong { font-size: 1rem; letter-spacing: .08em; }
.side-option.for label { background: rgba(255,45,141,.045); }
.side-option.for strong { color: var(--for-pink-light); }
.side-option.for input:checked + label { border-color: var(--for-pink); background: rgba(255,45,141,.14); box-shadow: inset 0 0 0 1px var(--for-pink); }
.side-option.against label { background: rgba(23,107,255,.045); }
.side-option.against strong { color: var(--against-blue-light); }
.side-option.against input:checked + label { border-color: var(--against-blue); background: rgba(23,107,255,.14); box-shadow: inset 0 0 0 1px var(--against-blue); }
.side-option input:focus-visible + label { outline: 3px solid #fff; outline-offset: 3px; }
.argument-form .field { margin-top: 20px; }
.argument-guidance { margin-top: 12px; color: var(--text-secondary); font-size: .76rem; }
.argument-panel .button { margin-top: 22px; }

.waiting-card { display: grid; gap: 18px; }
.waiting-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.waiting-card blockquote { padding: 18px; border-left: 3px solid var(--border-strong); background: rgba(7,10,22,.5); color: var(--text-primary); font-size: 1rem; }
.waiting-explanation { display: grid; grid-template-columns: 9px 1fr; gap: 12px; align-items: start; }
.waiting-explanation::before { content: ""; width: 9px; height: 9px; margin-top: 7px; border-radius: 50%; background: var(--warning); box-shadow: 0 0 0 5px rgba(255,199,102,.08); }
.waiting-explanation p { font-size: .86rem; }
.cancelled-card { padding: 8px 0; }
.cancelled-card h2 { margin: 16px 0 10px; }
.matched-card { border-color: rgba(106, 232, 181, .28); box-shadow: inset 0 0 0 1px rgba(106, 232, 181, .04); }
.debate-countdown { width: 100%; min-width: 0; }
.debate-room { display: grid; gap: 24px; }
.debate-room-header { display: grid; gap: 14px; padding: 30px; text-align: center; }
.debate-room-header h1 { font-size: clamp(1.65rem, 4vw, 3rem); }
.debate-room-header p { max-width: 760px; margin-inline: auto; }
.debate-room-status { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px; }
.debate-room .argument-pair-grid { align-items: stretch; }
.debate-room .today-argument-card { min-height: 300px; }
.debate-participant { color: var(--text-secondary); font-size: .8rem; font-weight: 800; }
.debate-viewer-label { color: var(--text-primary); }

.comments-panel { grid-column: 1 / -1; display: grid; gap: 24px; padding: 30px; }
.comments-header { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.comments-header h2 { margin-top: 8px; font-size: clamp(1.45rem, 3vw, 2rem); }
.comments-header p:not(.eyebrow) { margin-top: 8px; max-width: 680px; font-size: .9rem; }
.comment-form { display: grid; gap: 12px; padding: 18px; border: 1px solid var(--border); border-radius: 18px; background: rgba(255,255,255,.03); }
.comment-form label { color: var(--text-primary); font-size: .88rem; font-weight: 850; }
.comment-form .textarea { min-height: 104px; }
.comment-form .button { justify-self: end; }
.comments-list { display: grid; gap: 14px; }
.comment-card { display: grid; gap: 12px; padding: 17px; border: 1px solid var(--border); border-radius: 18px; background: rgba(7,10,22,.42); }
.comment-card.is-reply { margin-left: 28px; border-left: 3px solid var(--against-blue); background: rgba(23,107,255,.055); }
.comment-card-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.comment-author { display: inline-flex; align-items: center; gap: 10px; min-width: 0; color: var(--text-primary); }
.comment-author .avatar { width: 34px; height: 34px; }
.comment-author strong, .comment-author small { display: block; }
.comment-author small { color: var(--text-secondary); font-size: .72rem; }
.comment-body { color: var(--text-primary); line-height: 1.55; }
.comment-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.comment-edit-form { margin-top: 0; padding: 14px; }
.comment-edit-form .textarea { min-height: 86px; }
.comment-card.is-removed { opacity: .72; }
.comment-card.is-removed .comment-body { color: var(--text-secondary); font-style: italic; }
.danger-text-button { color: #ff9cae; }
.danger-text-button:hover { color: #ffc1cc; }
.reply-slot { display: grid; gap: 10px; }
.reply-form { margin-top: 2px; }
.comment-replies { display: grid; gap: 12px; }
.comments-empty { min-height: 150px; }
.comments-empty.compact { min-height: 96px; padding: 18px; }
.argument-moderation { display: flex; justify-content: flex-end; padding-top: 4px; }
.argument-comments { border: 1px solid var(--border); border-radius: 18px; background: rgba(7,10,22,.38); overflow: hidden; }
.argument-comments-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; cursor: pointer; color: var(--text-primary); list-style: none; }
.argument-comments-summary::-webkit-details-marker { display: none; }
.argument-comments-summary::after { content: "+"; display: grid; place-items: center; flex: 0 0 auto; width: 28px; height: 28px; border: 1px solid var(--border); border-radius: 999px; color: var(--text-secondary); font-weight: 900; }
.argument-comments[open] .argument-comments-summary::after { content: "-"; color: var(--text-primary); background: rgba(255,255,255,.06); }
.argument-comments-summary span:first-child { display: grid; gap: 2px; min-width: 0; }
.argument-comments-summary strong { font-size: .9rem; }
.argument-comments-summary small { color: var(--text-secondary); font-size: .72rem; font-weight: 750; }
.argument-comment-count { flex: 0 0 auto; margin-left: auto; padding: 6px 9px; border: 1px solid var(--border); border-radius: 999px; color: var(--text-secondary); font-size: .68rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.argument-comments-body { display: grid; gap: 16px; padding: 16px; border-top: 1px solid var(--border); }
.argument-comment-form { padding: 14px; }
.argument-comment-form .textarea, .argument-comments .reply-form .textarea { min-height: 86px; }
.comment-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.comment-form-actions span { color: var(--text-secondary); font-size: .72rem; font-weight: 800; }
.argument-comment-list { gap: 10px; }
.argument-comments .comment-card { padding: 14px; border-radius: 14px; background: rgba(255,255,255,.025); }
.argument-comments .comment-card.is-reply { margin-left: 18px; }
.comment-reaction-button { min-width: 58px; min-height: 34px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 11px; border: 1px solid var(--border); border-radius: 999px; background: rgba(255,255,255,.035); color: var(--text-secondary); font: inherit; font-size: .76rem; font-weight: 850; cursor: pointer; transition: border-color 160ms ease, background 160ms ease, color 160ms ease, transform 160ms ease; }
.comment-reaction-button:hover { transform: translateY(-1px); border-color: var(--border-strong); color: var(--text-primary); }
.comment-reaction-button.heart:hover, .comment-reaction-button.heart.is-selected { border-color: rgba(255,45,141,.5); background: rgba(255,45,141,.12); color: var(--for-pink-light); }
.comment-heart-icon { font-size: 1.08rem; line-height: 1; transform: translateY(-.5px); }
.comment-heart-count { min-width: 1ch; font-variant-numeric: tabular-nums; }
.comment-reaction-button:disabled { cursor: not-allowed; opacity: .68; transform: none; }
.loading-state.inline { min-height: 86px; padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.025); }

.profile-intro { grid-template-columns: 1fr; justify-items: center; text-align: center; }
.profile-intro > div { max-width: 720px; }
.profile-layout { display: grid; grid-template-columns: minmax(0, 1040px); justify-content: center; gap: 24px; align-items: start; }
.profile-main-column { display: grid; gap: 24px; min-width: 0; }
.profile-day-card { position: relative; display: grid; grid-template-columns: minmax(130px, .72fr) minmax(220px, 1fr) minmax(220px, 1fr); align-items: center; gap: 24px; padding: 26px 30px; overflow: hidden; text-align: center; background: linear-gradient(135deg, rgba(23,107,255,.09), rgba(16,22,42,.94) 44%, rgba(255,45,141,.075)); }
.profile-day-card::before { content: ""; position: absolute; width: 260px; height: 260px; right: -115px; top: -170px; border: 1px solid rgba(76,141,255,.2); border-radius: 50%; pointer-events: none; }
.profile-day-card > * { position: relative; z-index: 1; }
.profile-day-card h2 { font-size: 1.15rem; letter-spacing: -.02em; }
.profile-day-card .rail-profile { margin-top: 0; justify-content: center; }
.profile-day-card .rail-profile-text { text-align: center; }
.profile-day-card .rail-stats { width: 100%; max-width: none; margin: 0; }
.profile-day-card .rail-stat { padding: 12px 4px; }
.profile-day-note { grid-column: 1 / -1; max-width: 680px; margin: -4px auto 0; color: var(--text-secondary); font-size: .82rem; }
.profile-summary { position: relative; display: grid; grid-template-columns: 104px minmax(180px, .8fr) minmax(350px, 1.45fr); grid-template-rows: auto auto auto auto; align-items: center; column-gap: 26px; row-gap: 7px; padding: 30px; overflow: hidden; isolation: isolate; text-align: left; border-color: rgba(255,255,255,.13); background: radial-gradient(circle at 7% 10%, rgba(255,45,141,.17), transparent 15rem), radial-gradient(circle at 94% 100%, rgba(23,107,255,.17), transparent 22rem), linear-gradient(135deg, rgba(23,28,53,.96), rgba(12,16,32,.97)); }
.profile-summary::before { content: ""; position: absolute; z-index: -1; width: 380px; height: 380px; top: -245px; right: 22%; border: 1px solid rgba(255,255,255,.06); border-radius: 50%; }
.profile-summary .avatar { grid-column: 1; grid-row: 1 / 5; width: 98px; height: 98px; margin: 0; font-size: 2rem; box-shadow: 0 14px 34px rgba(0,0,0,.3), 0 0 0 5px rgba(255,255,255,.045); }
.profile-summary h2 { grid-column: 2; margin: 0; font-size: clamp(1.35rem, 2.5vw, 1.72rem); letter-spacing: -.03em; text-align: center; }
.profile-summary p { grid-column: 2; margin: 0; color: var(--text-secondary); font-size: .84rem; text-align: center; }
.profile-divider { display: none; }
.profile-fact { grid-column: 2; display: flex; align-items: baseline; justify-content: center; gap: 10px; padding: 4px 0; font-size: .78rem; text-align: center; }
.profile-fact span { color: var(--text-secondary); }
.profile-fact strong { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: center; font-size: .8rem; }
.profile-record { grid-column: 3; grid-row: 1 / 5; display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; margin: 0; }
.profile-record-stat { display: grid; align-content: center; gap: 3px; min-height: 71px; padding: 11px 10px; border: 1px solid rgba(255,255,255,.1); border-radius: 14px; background: rgba(255,255,255,.035); text-align: center; transition: transform 160ms ease, border-color 160ms ease, background 160ms ease; }
.profile-record-stat:hover { transform: translateY(-2px); border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.055); }
.profile-record-stat strong { font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.profile-record-stat span { color: var(--text-secondary); font-size: .64rem; font-weight: 850; letter-spacing: .075em; text-transform: uppercase; }
.profile-streak-stat { grid-column: 1 / -1; border-color: rgba(255, 205, 86, .24); background: linear-gradient(135deg, rgba(255,205,86,.11), rgba(255,255,255,.025)); }
.profile-streak-stat strong, .profile-points-stat strong { color: #ffe3a1; }
.profile-points-stat { grid-column: 1 / -1; border-color: rgba(255, 205, 86, .34); background: linear-gradient(135deg, rgba(255,205,86,.15), rgba(255,45,141,.055)); }
.profile-points-stat strong { font-size: 1.65rem; }
.profile-form-card { padding: 34px; border-color: rgba(255,255,255,.12); background: linear-gradient(145deg, rgba(19,26,48,.93), rgba(12,16,31,.96)); text-align: center; }
.profile-form-card h2 { font-size: 1.65rem; }
.profile-form-card > p { margin-top: 8px; }
.profile-form-card form { max-width: 560px; margin: 28px auto 0; text-align: center; }
.profile-form-card .field-row { justify-content: center; }
.profile-form-card .field-note { text-align: center; }
.profile-form-card .input, .profile-form-card .textarea { text-align: center; }
.profile-form-card .button { margin-inline: auto; }
.profile-form-card .form-message { text-align: center; }
.profile-security-card { padding: 0; overflow: hidden; border-color: rgba(76,141,255,.25); }
.profile-security-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 26px 30px; cursor: pointer; list-style: none; text-align: left; }
.profile-security-summary::-webkit-details-marker { display: none; }
.profile-security-summary > span:first-child { display: grid; gap: 5px; }
.profile-security-summary .eyebrow { color: var(--against-blue-light); font-size: .68rem; }
.profile-security-summary strong { font-size: 1.22rem; letter-spacing: -.02em; }
.profile-security-summary small { color: var(--text-secondary); font-size: .82rem; }
.profile-security-chevron { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--border); border-radius: 50%; color: var(--text-secondary); font-size: 1.45rem; line-height: 1; transition: transform 180ms ease, color 180ms ease, background 180ms ease; }
.profile-security-card[open] .profile-security-chevron { transform: rotate(180deg); color: var(--text-primary); background: rgba(76,141,255,.12); }
.profile-security-content { padding: 0 34px 34px; border-top: 1px solid var(--border); }
.profile-security-content form { max-width: 460px; margin-top: 28px; }
.avatar-upload-field { gap: 10px; }
.avatar-upload-zone { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 16px; border: 1px dashed rgba(255,255,255,.2); border-radius: 18px; background: rgba(255,255,255,.025); text-align: left; outline: none; transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease; }
.avatar-upload-zone:hover, .avatar-upload-zone:focus-visible, .avatar-upload-zone.is-dragging { border-color: rgba(255,45,141,.58); background: rgba(255,45,141,.055); box-shadow: 0 0 0 3px rgba(255,45,141,.1); }
.avatar-upload-icon { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,45,141,.3); border-radius: 13px; background: rgba(255,45,141,.09); color: var(--for-pink-light); }
.avatar-upload-icon svg { width: 23px; height: 23px; }
.avatar-upload-copy { display: grid; gap: 3px; min-width: 0; }
.avatar-upload-copy strong { color: var(--text-primary); font-size: .9rem; }
.avatar-upload-copy span { color: var(--text-secondary); font-size: .76rem; }
.profile-form-card .avatar-file-button { margin: 0; white-space: nowrap; cursor: pointer; }
.avatar-file-selection { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 16px; min-height: 34px; color: var(--text-secondary); font-size: .8rem; }
.avatar-file-selection > span { max-width: 360px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-day-card .rail-profile { justify-content: center; }
.profile-day-card .rail-profile-text { text-align: center; }
.profile-day-card .rail-stats { max-width: 420px; margin-inline: auto; }
.profile-day-note { max-width: 600px; margin-inline: auto; }
.profile-layout > .profile-main-column > .stage-note { text-align: center; }
.profile-layout > .profile-main-column > .stage-note .status-pill { justify-self: center; }

.section-title-row { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.section-title-row h2 { font-size: clamp(1.5rem, 3vw, 2.15rem); }
.section-title-row p { color: var(--text-secondary); font-size: .9rem; }
.public-arguments-main .app-intro { align-items: center; }
.public-arguments-list { display: grid; gap: 34px; }
.public-argument-day { display: grid; gap: 14px; }
.public-argument-day-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; color: var(--text-secondary); }
.public-argument-day-header h3 { color: var(--text-primary); font-size: 1.15rem; }
.public-argument-day-header span { font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.public-argument-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.public-argument-card { display: grid; gap: 14px; padding: 22px; }
.public-argument-card h3 { font-size: clamp(1.12rem, 2vw, 1.45rem); }
.public-argument-meta, .public-argument-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; color: var(--text-secondary); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.public-argument-author { font-size: .84rem; }
.public-argument-author strong { color: var(--text-primary); }
.public-argument-card blockquote { min-height: 96px; padding: 16px; border-left: 3px solid var(--border-strong); border-radius: 10px; background: rgba(7,10,22,.42); color: var(--text-primary); }
.public-argument-footer { justify-content: space-between; padding-top: 4px; }
.archive-pairs-list { display: grid; gap: 22px; }
.archive-pair-section { display: grid; gap: 14px; }
.archive-pair-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.archive-argument-card { display: grid; gap: 16px; padding: 24px; position: relative; border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; }
.archive-argument-card::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .85; }
.archive-argument-card > * { position: relative; z-index: 1; }
.archive-argument-card.against { border-color: rgba(23,107,255,.34); background: linear-gradient(145deg, rgba(23,107,255,.16), rgba(16,22,42,.94) 44%, rgba(7,10,22,.86)); }
.archive-argument-card.against::before { background: radial-gradient(circle at 18% 0%, rgba(76,141,255,.22), transparent 34%); }
.archive-argument-card.for { border-color: rgba(255,45,141,.34); background: linear-gradient(145deg, rgba(255,45,141,.16), rgba(16,22,42,.94) 44%, rgba(7,10,22,.86)); }
.archive-argument-card.for::before { background: radial-gradient(circle at 82% 0%, rgba(255,102,174,.22), transparent 34%); }
.archive-argument-card.winner { border-color: rgba(255,205,86,.78); box-shadow: 0 18px 55px rgba(255,177,46,.13), inset 0 0 0 1px rgba(255,225,134,.22); }
.archive-argument-card h3 { font-size: clamp(1.12rem, 2vw, 1.45rem); }
.archive-argument-card blockquote { min-height: 118px; padding: 16px; border-left: 3px solid var(--border-strong); border-radius: 12px; background: rgba(7,10,22,.54); color: var(--text-primary); line-height: 1.55; }
.archive-argument-card.against blockquote { border-left-color: var(--against-blue); }
.archive-argument-card.for blockquote { border-left-color: var(--for-pink); }
.archive-argument-card.is-empty { align-content: center; min-height: 260px; opacity: .74; }
.archive-argument-card.is-empty p { color: var(--text-secondary); font-size: .9rem; }
.argument-result-badge { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border: 1px solid var(--border); border-radius: 999px; font-size: .7rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.argument-result-badge.winner { border-color: rgba(255,205,86,.55); background: rgba(255,205,86,.14); color: #ffe3a1; }
.argument-result-badge.runner-up { color: var(--text-secondary); background: rgba(255,255,255,.035); }
.argument-result-badge.draw { border-color: rgba(255,255,255,.24); color: var(--text-primary); background: rgba(255,255,255,.06); }
.argument-result-badge.pending { color: var(--text-secondary); }

.today-arguments-list { display: grid; gap: 28px; }
.argument-pair-section { display: grid; gap: 16px; }
.argument-pair-topic { padding: 24px 26px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: linear-gradient(135deg, rgba(255,255,255,.065), rgba(255,255,255,.02)); text-align: center; box-shadow: var(--shadow-soft); }
.argument-pair-topic h3 { max-width: 900px; margin: 12px auto 0; font-size: clamp(1.25rem, 2.6vw, 1.9rem); }
.argument-pair-topic p { max-width: 760px; margin: 10px auto 0; color: var(--text-secondary); font-size: .92rem; }
.argument-pair-meta { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 14px; color: var(--text-secondary); font-size: .72rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.argument-pair-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.argument-side-column { display: grid; grid-template-rows: 1fr auto; gap: 12px; min-width: 0; }
.argument-side-column > .today-argument-card { height: 100%; }
.argument-side-column > .archive-argument-card { height: 100%; }
.argument-final-result { --result-color: var(--text-secondary); display: grid; gap: 11px; padding: 16px 18px; border: 1px solid var(--border); border-radius: 16px; background: rgba(255,255,255,.035); box-shadow: var(--shadow-soft); }
.argument-final-result[hidden] { display: none; }
.argument-final-result.against { --result-color: var(--against-blue-light); border-color: rgba(23,107,255,.34); background: rgba(23,107,255,.09); }
.argument-final-result.for { --result-color: var(--for-pink-light); border-color: rgba(255,45,141,.34); background: rgba(255,45,141,.09); }
.argument-final-result.winner { border-color: rgba(255,205,86,.68); box-shadow: 0 12px 34px rgba(255,177,46,.12), inset 0 0 0 1px rgba(255,225,134,.13); }
.argument-final-result.winner .argument-result-heading strong { color: #ffe3a1; }
.argument-final-result.draw .argument-result-heading strong { color: var(--text-primary); }
.argument-result-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 14px; }
.argument-result-heading strong { color: var(--result-color); font-size: .78rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.argument-result-heading span { color: var(--text-primary); font-size: .86rem; font-weight: 900; }
.argument-result-track { height: 6px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.08); }
.argument-result-fill { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--result-color); transition: width 300ms ease; }
.today-argument-card { display: grid; gap: 17px; padding: 24px; position: relative; border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; }
.today-argument-card::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .9; }
.today-argument-card > * { position: relative; z-index: 1; }
.today-argument-card.against { border-color: rgba(23,107,255,.42); background: linear-gradient(145deg, rgba(23,107,255,.2), rgba(16,22,42,.94) 42%, rgba(7,10,22,.86)); box-shadow: inset 0 0 0 1px rgba(76,141,255,.08); }
.today-argument-card.against::before { background: radial-gradient(circle at 18% 0%, rgba(76,141,255,.28), transparent 34%); }
.today-argument-card.for { border-color: rgba(255,45,141,.42); background: linear-gradient(145deg, rgba(255,45,141,.2), rgba(16,22,42,.94) 42%, rgba(7,10,22,.86)); box-shadow: inset 0 0 0 1px rgba(255,102,174,.08); }
.today-argument-card.for::before { background: radial-gradient(circle at 82% 0%, rgba(255,102,174,.28), transparent 34%); }
.today-argument-card.best-argument { border-color: rgba(255, 205, 86, .72); box-shadow: 0 18px 55px rgba(255, 177, 46, .13), inset 0 0 0 1px rgba(255, 225, 134, .25); }
.today-argument-card.is-empty { align-content: center; min-height: 310px; opacity: .78; }
.today-argument-card.is-empty p { color: var(--text-secondary); font-size: .9rem; }
.best-argument-badge { justify-self: start; display: inline-flex; align-items: center; min-height: 30px; padding: 0 12px; border-radius: 999px; border: 1px solid rgba(255, 215, 100, .46); background: rgba(255, 205, 86, .12); color: #ffe3a1; font-size: .72rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.today-argument-card h3 { font-size: clamp(1.12rem, 2vw, 1.5rem); }
.today-argument-card blockquote { min-height: 126px; padding: 17px; border-left: 3px solid var(--border-strong); border-radius: 12px; background: rgba(7,10,22,.55); color: var(--text-primary); line-height: 1.55; }
.today-argument-card.for blockquote { border-left-color: var(--for-pink); }
.today-argument-card.against blockquote { border-left-color: var(--against-blue); }
.vote-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.vote-total { display: inline-flex; align-items: center; min-height: 28px; padding: 0 9px; border: 1px solid var(--border); border-radius: 999px; background: rgba(255,255,255,.035); color: var(--text-secondary); font-size: .7rem; font-weight: 900; letter-spacing: .06em; }
.vote-total.for { border-color: rgba(255,45,141,.36); color: var(--for-pink-light); }
.vote-total.against { border-color: rgba(23,107,255,.36); color: var(--against-blue-light); }
.vote-total.best { border-color: rgba(255,205,86,.38); color: #ffe3a1; }
.best-vote-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 15px; border: 1px solid rgba(255, 205, 86, .24); border-radius: 18px; background: rgba(255, 205, 86, .075); }
.best-vote-copy { display: grid; gap: 3px; }
.best-vote-copy strong { color: var(--text-primary); font-size: .94rem; }
.best-vote-copy span { color: var(--text-secondary); font-size: .78rem; font-weight: 800; }
.best-vote-button { min-height: 42px; padding: 0 15px; border: 1px solid rgba(255, 205, 86, .42); border-radius: 999px; background: rgba(255, 205, 86, .12); color: #ffe3a1; font: inherit; font-size: .82rem; font-weight: 950; letter-spacing: .06em; cursor: pointer; transition: transform 160ms ease, background 160ms ease, border-color 160ms ease, opacity 160ms ease; }
.best-vote-button:hover { transform: translateY(-1px); background: rgba(255, 205, 86, .18); border-color: rgba(255, 225, 134, .7); }
.best-vote-button.is-selected { background: #ffd766; border-color: #ffd766; color: #241400; }
.best-vote-button:disabled { cursor: not-allowed; opacity: .7; transform: none; }
.best-login-link { grid-column: 1 / -1; justify-self: start; font-size: .82rem; }
.pair-vote-panel { display: grid; gap: 15px; padding: 20px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.018)); text-align: center; }
.pair-vote-copy { display: grid; gap: 5px; justify-items: center; }
.pair-vote-copy strong { color: var(--text-primary); font-size: 1rem; }
.pair-vote-copy span { color: var(--text-secondary); font-size: .84rem; }
.pair-vote-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; width: min(100%, 680px); margin-inline: auto; }
.pair-vote-button { min-height: 52px; border: 1px solid var(--border-strong); border-radius: 999px; background: rgba(255,255,255,.04); color: var(--text-primary); font: inherit; font-size: .86rem; font-weight: 930; letter-spacing: .06em; cursor: pointer; transition: transform 160ms ease, background 160ms ease, border-color 160ms ease, opacity 160ms ease; }
.pair-vote-button:hover { transform: translateY(-1px); }
.pair-vote-button.for { color: var(--for-pink-light); }
.pair-vote-button.against { color: var(--against-blue-light); }
.pair-vote-button.for:hover, .pair-vote-button.for.is-selected { border-color: var(--for-pink); background: rgba(255,45,141,.14); }
.pair-vote-button.against:hover, .pair-vote-button.against.is-selected { border-color: var(--against-blue); background: rgba(23,107,255,.14); }
.pair-vote-button:disabled { cursor: not-allowed; opacity: .68; transform: none; }
.pair-vote-login-link { justify-self: center; font-size: .84rem; }
.argument-author-lock { display: grid; gap: 9px; padding-top: 4px; border-top: 1px solid var(--border); }
.argument-author-lock p { font-size: .82rem; }
.argument-author-link, .ranking-member { display: inline-flex; align-items: center; gap: 12px; min-width: 0; color: var(--text-primary); }
.argument-author-link .avatar, .ranking-member .avatar { flex: 0 0 auto; }
.argument-author-link small, .ranking-member small { display: block; color: var(--text-secondary); font-size: .72rem; font-weight: 700; }
.argument-author-link strong, .ranking-member strong { display: block; overflow: hidden; text-overflow: ellipsis; }

.ranking-card { padding: 28px; overflow: hidden; }
.ranking-card-header { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.ranking-card-header h2 { font-size: clamp(1.4rem, 3vw, 2rem); }
.ranking-tabs { display: inline-flex; flex-wrap: wrap; gap: 7px; padding: 6px; border: 1px solid var(--border); border-radius: 999px; background: rgba(7,10,22,.48); }
.ranking-tab { min-height: 36px; padding: 0 15px; border: 0; border-radius: 999px; background: transparent; color: var(--text-secondary); font: inherit; font-size: .82rem; font-weight: 880; cursor: pointer; }
.ranking-tab[aria-selected="true"] { background: var(--text-primary); color: #070a16; }
.ranking-table { width: 100%; border-collapse: collapse; }
.ranking-table th, .ranking-table td { padding: 14px 12px; border-top: 1px solid var(--border); text-align: left; vertical-align: middle; }
.ranking-table th { color: var(--text-secondary); font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.ranking-table td { color: var(--text-primary); font-size: .92rem; }

.member-card { max-width: 780px; margin-inline: auto; padding: 36px; display: grid; gap: 28px; }
.member-heading { display: grid; justify-items: center; text-align: center; gap: 12px; }
.member-heading .eyebrow { justify-content: center; }
.member-heading h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
.member-avatar { width: 92px; height: 92px; font-size: 2rem; }
.member-stats { display: grid; grid-template-columns: repeat(6, 1fr); border: 1px solid var(--border); border-radius: 16px; overflow: hidden; }
.member-stat { display: grid; gap: 4px; padding: 18px 10px; text-align: center; background: rgba(255,255,255,.025); }
.member-stat + .member-stat { border-left: 1px solid var(--border); }
.member-stat:first-child strong { color: #ffe3a1; }
.member-stat strong { font-size: 1.45rem; }
.member-stat span { color: var(--text-secondary); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.member-actions { display: flex; justify-content: center; }
.report-profile-button { min-width: 170px; }

.admin-reports-page { display: grid; gap: 22px; }
.admin-report-filter { width: min(100%, 220px); }
.admin-report-filter label { color: var(--text-secondary); font-size: .76rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.admin-report-list { display: grid; gap: 18px; }
.admin-report-card { display: grid; gap: 20px; padding: 26px; }
.admin-report-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.admin-report-card-header h2 { margin-top: 8px; font-size: clamp(1.2rem, 2.8vw, 1.7rem); }
.admin-report-excerpt { margin: 0; padding: 18px; border: 1px solid var(--border); border-radius: 16px; background: rgba(255,255,255,.025); color: var(--text-primary); font-size: .96rem; line-height: 1.7; }
.admin-report-excerpt.is-unavailable { color: var(--text-secondary); font-style: italic; }
.admin-report-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--border); border-radius: 16px; background: var(--border); }
.admin-report-meta-row { min-width: 0; padding: 14px; background: var(--surface); }
.admin-report-meta dt { color: var(--text-secondary); font-size: .7rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.admin-report-meta dd { margin: 5px 0 0; overflow-wrap: anywhere; color: var(--text-primary); font-size: .88rem; font-weight: 750; }
.admin-report-details { display: grid; gap: 7px; }
.admin-report-details h3 { font-size: .9rem; }
.admin-report-details p { white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-report-actions { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 14px; padding-top: 18px; border-top: 1px solid var(--border); }
.admin-moderation-actions { display: flex; align-items: end; flex: 1 1 100%; flex-wrap: wrap; gap: 12px; }
.admin-action-group { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; padding: 12px; border: 1px solid var(--border); border-radius: 16px; background: rgba(255,255,255,.02); }
.admin-action-label { flex: 1 1 100%; color: var(--text-secondary); font-size: .7rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.admin-user-actions { flex: 1 1 480px; }
.admin-ban-control { display: flex; align-items: stretch; gap: 8px; }
.admin-ban-control .input { min-width: 132px; }
.admin-confirm-form { padding: 24px; }
.admin-status-control { display: grid; grid-template-columns: minmax(150px, 190px) auto; align-items: end; gap: 10px; margin-left: auto; }

.mobile-bottom-nav { display: none; }

@media (max-width: 960px) {
  .dashboard-layout { grid-template-columns: 1fr; }
  .dashboard-rail { grid-template-columns: 1fr 1fr; }
  .topic-detail-grid { grid-template-columns: 1fr; }
  .topic-brief { position: static; }
}

@media (max-width: 720px) {
  .app-body { padding-bottom: 72px; }
  .app-header-inner { grid-template-columns: auto 1fr auto; min-height: 64px; }
  .app-header-inner .account-menu { grid-column: 3; }
  .app-nav, .account-meta, .logout-button { display: none; }
  .account-menu .avatar { width: 36px; height: 36px; }
  .app-main { padding: 34px 0 64px; }
  .app-intro { grid-template-columns: 1fr; align-items: start; }
  .countdown-box { min-width: 0; padding: 14px 16px; border: 1px solid var(--border); }
  .daily-topic-card { grid-template-columns: 1fr; }
  .topic-card-main { padding: 22px; }
  .topic-card-sides { min-height: 78px; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; border-top: 1px solid var(--border); border-left: 0; }
  .topic-side-panel:first-child { border-right: 1px solid var(--border); border-bottom: 0; }
  .dashboard-rail { grid-template-columns: 1fr; }
  .topic-brief, .argument-panel, .profile-form-card { padding: 22px; }
  .comments-panel { padding: 22px; }
  .comments-header { display: grid; align-items: start; }
  .comment-form .button { width: 100%; justify-self: stretch; }
  .comment-card.is-reply { margin-left: 14px; }
  .argument-comments-summary { align-items: flex-start; }
  .argument-comments-summary small { display: none; }
  .argument-comment-count { margin-left: 0; }
  .comment-form-actions { display: grid; align-items: start; }
  .argument-comments .comment-card.is-reply { margin-left: 10px; }
  .topic-brief h1 { margin-top: 38px; }
  .topic-detail-grid { grid-template-columns: minmax(0, 1fr); }
  .side-picker { gap: 8px; }
  .side-option { flex: 1 1 130px; }
  .side-option label { width: 100%; }
  .side-option label { min-height: 94px; }
  .profile-layout { grid-template-columns: minmax(0, 1fr); }
  .profile-summary { grid-template-columns: 1fr; grid-template-rows: auto; row-gap: 10px; padding: 26px 22px; text-align: center; }
  .profile-summary .avatar, .profile-summary h2, .profile-summary p, .profile-summary .profile-fact, .profile-summary .profile-record { grid-column: 1; grid-row: auto; }
  .profile-summary .avatar { margin: 0 auto 6px; }
  .profile-summary .profile-fact { justify-content: center; gap: 10px; }
  .profile-summary .profile-record { width: min(100%, 460px); margin: 12px auto 0; }
  .profile-day-card { grid-template-columns: 1fr; gap: 18px; padding: 24px 22px; }
  .profile-day-note { grid-column: auto; margin: 0 auto; }
  .avatar-upload-zone { grid-template-columns: auto minmax(0, 1fr); }
  .avatar-file-button { grid-column: 1 / -1; width: 100%; }
  .section-title-row { display: grid; align-items: start; }
  .public-argument-grid { grid-template-columns: 1fr; }
  .archive-pair-grid { grid-template-columns: 1fr; }
  .argument-pair-grid { grid-template-columns: 1fr; }
  .argument-pair-topic { padding: 20px; }
  .pair-vote-panel { padding: 18px; }
  .pair-vote-actions { grid-template-columns: 1fr; }
  .best-vote-panel { grid-template-columns: 1fr; }
  .best-vote-button { width: 100%; }
  .ranking-card { padding: 18px; }
  .ranking-card-header { display: grid; align-items: start; }
  .ranking-table { min-width: 0; table-layout: fixed; }
  .ranking-table th, .ranking-table td { padding: 13px 6px; }
  .ranking-table th:nth-child(n+4), .ranking-table td:nth-child(n+4) { display: none; }
  .ranking-table th:first-child, .ranking-table td:first-child { width: 52px; }
  .ranking-table th:nth-child(3), .ranking-table td:nth-child(3) { width: 62px; text-align: right; }
  #ranking-content { overflow: visible; }
  .member-card { padding: 22px; }
  .member-stats { grid-template-columns: repeat(2, 1fr); }
  .member-stat:nth-child(n+3) { border-top: 1px solid var(--border); }
  .member-stat:nth-child(odd) { border-left: 0; }
  .admin-report-card { padding: 20px; }
  .admin-report-card-header { display: grid; }
  .admin-report-meta { grid-template-columns: 1fr 1fr; }
  .admin-report-actions, .admin-status-control, .admin-moderation-actions, .admin-action-group, .admin-ban-control { display: grid; width: 100%; margin-left: 0; }
  .admin-report-actions .button, .admin-status-control .button, .admin-action-group .button { width: 100%; }
  .mobile-bottom-nav { position: fixed; z-index: 70; left: 0; right: 0; bottom: 0; min-height: 64px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--border); background: rgba(7,10,22,.96); backdrop-filter: blur(16px); }
  .mobile-bottom-nav a { display: grid; place-items: center; align-content: center; gap: 3px; color: var(--text-secondary); font-size: .68rem; font-weight: 750; }
  .mobile-bottom-nav a::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: transparent; }
  .mobile-bottom-nav a[aria-current="page"] { color: #fff; }
  .mobile-bottom-nav a[aria-current="page"]::before { background: var(--for-pink); }
}
.admin-report-quick-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin: 12px 0;
  font-size: 0.9rem;
  opacity: 0.85;
}