:root {
  --bg: #f5f6f8;
  --surface: #ffffff;
  --surface-2: #eceef2;
  --text: #17191f;
  --muted: #6f7480;
  --line: rgba(23,25,31,.10);
  --accent: #6558d3;
  --accent-strong: #5144bf;
  --accent-soft: rgba(101,88,211,.12);
  --success: #2b8a66;
  --danger: #ad3c55;
  --shadow: 0 14px 38px rgba(24,29,39,.08);
  --radius: 24px;
  --radius-sm: 16px;
  --max: 1440px;
  --page-gutter: 32px;
}

@media (prefers-color-scheme: dark) {
  html[data-theme="auto"] {
    --bg:#0b0c10; --surface:#13151b; --surface-2:#1b1e26; --text:#f3f4f7;
    --muted:#969ba7; --line:rgba(255,255,255,.09); --accent:#9a8cff;
    --accent-strong:#b0a5ff; --accent-soft:rgba(154,140,255,.13);
    --success:#59c49b; --danger:#f07b94; --shadow:0 18px 44px rgba(0,0,0,.28);
  }
}
html[data-theme="dark"] {
  --bg:#0b0c10; --surface:#13151b; --surface-2:#1b1e26; --text:#f3f4f7;
  --muted:#969ba7; --line:rgba(255,255,255,.09); --accent:#9a8cff;
  --accent-strong:#b0a5ff; --accent-soft:rgba(154,140,255,.13);
  --success:#59c49b; --danger:#f07b94; --shadow:0 18px 44px rgba(0,0,0,.28);
}
html[data-theme="light"] {
  --bg:#f5f6f8; --surface:#fff; --surface-2:#eceef2; --text:#17191f;
  --muted:#6f7480; --line:rgba(23,25,31,.10); --accent:#6558d3;
  --accent-strong:#5144bf; --accent-soft:rgba(101,88,211,.12);
  --success:#2b8a66; --danger:#ad3c55; --shadow:0 14px 38px rgba(24,29,39,.08);
}

* { box-sizing:border-box; }
html { background:var(--bg); }
body {
  margin:0; min-height:100vh; background:var(--bg); color:var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height:1.5;
}
a { color:inherit; text-decoration:none; }
button, input, select { font:inherit; }
button { color:inherit; }
img { display:block; max-width:100%; }

.topbar {
  position:sticky; top:0; z-index:30;
  min-height:72px;
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(20px); border-bottom:1px solid var(--line);
}
.topbar-inner { width:min(calc(100% - (var(--page-gutter) * 2)),var(--max)); min-height:72px; margin:0 auto; display:flex; align-items:center; gap:24px; }
.brand { display:flex; align-items:center; gap:10px; font-weight:800; letter-spacing:-.02em; white-space:nowrap; }
.brand-mark { width:36px; height:36px; border-radius:11px; object-fit:contain; box-shadow:0 8px 22px var(--accent-soft); flex:0 0 auto; }
.desktop-nav { display:flex; align-items:center; gap:4px; margin-inline-start:auto; }
.desktop-nav a { padding:9px 13px; border-radius:12px; color:var(--muted); font-weight:650; }
.desktop-nav a:hover, .desktop-nav a.active { background:var(--surface); color:var(--text); }
.top-actions { display:flex; align-items:center; gap:9px; }
.icon-btn {
  width:40px; height:40px; border:1px solid var(--line); background:var(--surface);
  border-radius:13px; cursor:pointer;
}
.avatar-link img { width:40px; height:40px; border-radius:13px; border:1px solid var(--line); }

.page-shell { width:min(calc(100% - (var(--page-gutter) * 2)),var(--max)); margin:0 auto; padding:48px 0 80px; }
.page-shell > * { min-width:0; }
.bottom-nav { display:none; }

.hero { display:grid; grid-template-columns:1.15fr .85fr; gap:46px; align-items:center; min-height:560px; }
.hero-copy { max-width:720px; }
.eyebrow { color:var(--accent-strong); font-weight:800; text-transform:uppercase; font-size:.76rem; letter-spacing:.12em; }
.hero h1, .page-heading h1, .show-copy h1, .profile-copy h1, .empty-state h1 {
  font-size:clamp(2.2rem, 5vw, 4.8rem); line-height:.98; letter-spacing:-.055em; margin:14px 0 20px;
}
.page-heading h1, .profile-copy h1, .show-copy h1 { font-size:clamp(2.1rem, 4vw, 3.6rem); }
.hero-copy > p, .page-heading p, .show-copy p, .profile-copy p { color:var(--muted); font-size:1.07rem; max-width:680px; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }
.button {
  display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 18px;
  border-radius:14px; border:1px solid var(--line); font-weight:750; cursor:pointer;
}
.button.primary { background:var(--accent); color:#fff; border-color:transparent; }
.button.primary:hover { background:var(--accent-strong); }
.button.secondary { background:var(--surface); }
.button:disabled { opacity:.45; cursor:not-allowed; }
.trust-row { margin-top:22px; display:flex; gap:18px; flex-wrap:wrap; color:var(--muted); font-size:.88rem; }
.trust-row span::before { content:""; width:6px; height:6px; display:inline-block; border-radius:99px; margin-inline-end:8px; background:var(--success); vertical-align:middle; }

.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.hero-panel { padding:24px; }
.panel-heading, .section-title { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.panel-heading h2, .section-title h2 { margin:3px 0 0; font-size:1.18rem; letter-spacing:-.02em; }
.muted { color:var(--muted); }
.status-pill { padding:6px 10px; border-radius:999px; background:var(--accent-soft); color:var(--accent-strong); font-size:.75rem; font-weight:800; }
.continue-card {
  display:flex; align-items:center; gap:14px; padding:14px 0; border-top:1px solid var(--line);
}
.continue-card:first-of-type { margin-top:16px; }
.continue-copy { flex:1; min-width:0; }
.continue-copy strong, .continue-copy span, .continue-copy small { display:block; }
.continue-copy span, .continue-copy small { color:var(--muted); }
.chevron { font-size:1.65rem; color:var(--muted); }

.poster {
  aspect-ratio:2/3; border-radius:15px; display:grid; place-items:center; color:#fff; font-weight:900;
  font-size:2rem; background:linear-gradient(145deg,#606775,#252a32); overflow:hidden; flex:0 0 auto;
}
.continue-card .poster { width:62px; border-radius:12px; }
.poster-purple { background:linear-gradient(145deg,#8c7bff,#322866); }
.poster-gold { background:linear-gradient(145deg,#e4b75b,#704d18); }
.poster-red { background:linear-gradient(145deg,#de6b73,#662329); }
.poster-blue { background:linear-gradient(145deg,#5d9bdd,#243f68); }
.poster-green { background:linear-gradient(145deg,#58b69d,#1f5148); }
.poster-gray { background:linear-gradient(145deg,#7f8591,#282c33); }
.progress { height:7px; background:var(--surface-2); border-radius:999px; overflow:hidden; margin:9px 0 7px; }
.progress span { display:block; height:100%; background:var(--accent); border-radius:inherit; }
.progress.compact { height:5px; margin:5px 0 0; }

.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:38px; }
.feature-card { padding:25px; box-shadow:none; }
.feature-number { color:var(--muted); font-size:.77rem; letter-spacing:.12em; font-weight:800; }
.feature-card h3 { margin:34px 0 8px; font-size:1.25rem; }
.feature-card p { color:var(--muted); margin:0; }

.page-heading { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:32px; }
.page-heading h1 { margin-bottom:9px; }
.page-heading p { margin:0; }

.section-block { margin-top:36px; }
.section-title { margin-bottom:16px; }
.section-title a, .text-button { color:var(--accent-strong); font-weight:750; font-size:.9rem; }
.text-button { background:none; border:0; cursor:pointer; }
.media-row, .media-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:17px; }
.media-card { min-width:0; }
.media-card .poster { width:100%; margin-bottom:11px; }
.media-card strong, .media-card span { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.media-card strong { font-size:.95rem; }
.media-card span { color:var(--muted); font-size:.82rem; margin-top:2px; }
.real-poster { object-fit:cover; }

.dashboard-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:20px; margin-top:36px; }
.dashboard-grid > .card { padding:24px; box-shadow:none; }
.schedule-list > div { display:grid; grid-template-columns:56px 1fr auto; align-items:center; gap:14px; padding:14px 0; border-top:1px solid var(--line); }
.schedule-list > div:first-child { margin-top:6px; }
.schedule-list span strong, .schedule-list span small { display:block; }
.schedule-list small { color:var(--muted); margin-top:2px; }
.schedule-list time { color:var(--muted); font-size:.9rem; }
.date-chip { display:grid !important; place-items:center; min-height:36px; padding:0 7px; border-radius:11px; background:var(--surface-2); font-size:.72rem; font-weight:900; }
.stats-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); margin-top:10px; border-radius:18px; overflow:hidden; }
.stats-grid div { background:var(--surface); padding:19px; }
.stats-grid strong, .stats-grid span { display:block; }
.stats-grid strong { font-size:1.65rem; letter-spacing:-.04em; }
.stats-grid span { color:var(--muted); font-size:.82rem; }
.stat-note { color:var(--muted); font-size:.78rem; margin-top:13px; }
.library-pills { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.library-pills a { background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:17px; }
.library-pills strong, .library-pills span { display:block; }
.library-pills strong { font-size:1.5rem; }
.library-pills span { color:var(--muted); font-size:.84rem; }

.search-bar { display:flex; align-items:center; gap:12px; background:var(--surface); border:1px solid var(--line); padding:9px 9px 9px 16px; border-radius:18px; box-shadow:var(--shadow); }
.search-bar > span { font-size:1.7rem; color:var(--muted); }
.search-bar input { flex:1; min-width:0; border:0; outline:0; background:transparent; color:var(--text); font-size:1rem; }
.search-status { margin:17px 0; color:var(--muted); font-size:.9rem; }
.media-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }

.segmented { display:flex; background:var(--surface-2); padding:4px; border-radius:14px; }
.segmented button { border:0; background:transparent; padding:8px 13px; border-radius:10px; cursor:pointer; }
.segmented button.selected { background:var(--surface); box-shadow:0 2px 8px rgba(0,0,0,.06); }
.calendar-strip { display:grid; grid-template-columns:repeat(7,1fr); gap:9px; margin-bottom:20px; }
.calendar-strip button { display:grid; gap:4px; place-items:center; background:var(--surface); border:1px solid var(--line); border-radius:17px; padding:13px 8px; cursor:pointer; }
.calendar-strip button span { color:var(--muted); font-size:.7rem; font-weight:800; }
.calendar-strip button.active { background:var(--accent); color:#fff; border-color:transparent; }
.calendar-strip button.active span { color:#fff; opacity:.8; }
.timeline { padding:10px 22px; box-shadow:none; }
.timeline-date { display:flex; justify-content:space-between; gap:16px; padding:18px 0 10px; border-bottom:1px solid var(--line); }
.timeline-date span { color:var(--muted); }
.timeline-item { display:grid; grid-template-columns:60px 46px 1fr auto; align-items:center; gap:14px; padding:16px 0; border-bottom:1px solid var(--line); }
.timeline-item time, .timeline-item div span { color:var(--muted); }
.timeline-item div strong, .timeline-item div span { display:block; }
.poster.mini { width:42px; border-radius:9px; font-size:1rem; }

.profile-header { display:grid; grid-template-columns:112px 1fr auto; align-items:center; gap:24px; padding:28px; box-shadow:none; }
.profile-avatar { width:112px; height:112px; border-radius:28px; border:1px solid var(--line); }
.profile-copy h1 { margin:6px 0; }
.profile-copy p { margin:0; }
.profile-stats { display:flex; gap:18px; flex-wrap:wrap; margin-top:14px; color:var(--muted); }
.profile-stats strong { color:var(--text); }
.tag-cloud { display:flex; gap:8px; flex-wrap:wrap; }
.tag-cloud span { background:var(--accent-soft); color:var(--accent-strong); border-radius:999px; padding:8px 11px; font-size:.82rem; font-weight:700; }
.rating-summary strong, .rating-summary span, .rating-summary small { display:block; }
.rating-summary strong { font-size:3.2rem; letter-spacing:-.06em; }
.rating-summary span, .rating-summary small { color:var(--muted); }

.settings-layout { display:grid; gap:18px; }
.settings-card { padding:24px; box-shadow:none; }
.avatar-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:9px; margin-top:18px; }
.avatar-choice { padding:0; border:2px solid transparent; border-radius:16px; background:transparent; cursor:pointer; }
.avatar-choice img { width:100%; border-radius:14px; }
.avatar-choice.selected { border-color:var(--accent); padding:3px; }
.setting-row { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:15px 0; border-top:1px solid var(--line); }
.setting-row:first-of-type { border-top:0; }
.setting-row strong, .setting-row span { display:block; }
.setting-row span { color:var(--muted); font-size:.85rem; }
.setting-row select { background:var(--surface-2); color:var(--text); border:0; border-radius:12px; padding:9px 12px; }
.danger-card { border-color:color-mix(in srgb, var(--danger) 35%, var(--line)); }

.show-hero { display:grid; grid-template-columns:220px 1fr; gap:32px; align-items:center; }
.show-poster { width:220px; }
.show-meta { display:flex; gap:8px; flex-wrap:wrap; }
.show-meta span { background:var(--surface-2); border-radius:999px; padding:6px 10px; font-size:.8rem; }
.big-progress strong, .big-progress span, .big-progress small { display:block; }
.big-progress strong { font-size:2rem; }
.big-progress span, .big-progress small { color:var(--muted); }
.rating-control strong { font-size:3.1rem; letter-spacing:-.06em; }
.rating-control span { color:var(--muted); }
.episode-list { border:1px solid var(--line); border-radius:20px; overflow:hidden; background:var(--surface); }
.episode-row { display:grid; grid-template-columns:38px 50px 1fr auto; align-items:center; gap:12px; padding:14px 17px; border-top:1px solid var(--line); }
.episode-row:first-child { border-top:0; }
.watch-check { width:30px; height:30px; border-radius:10px; border:1px solid var(--line); background:var(--surface-2); cursor:pointer; }
.watch-check.watched { background:var(--success); color:#fff; border-color:transparent; }
.episode-number { color:var(--muted); font-weight:800; }
.episode-copy strong, .episode-copy span { display:block; }
.episode-copy span { color:var(--muted); font-size:.84rem; }

.empty-state { min-height:55vh; display:grid; place-items:start; align-content:center; max-width:600px; }
.empty-state p { color:var(--muted); }

@media (max-width: 980px) {
  .hero { grid-template-columns:1fr; min-height:auto; }
  .hero-copy { padding-top:18px; }
  .feature-grid { grid-template-columns:1fr; }
  .dashboard-grid { grid-template-columns:1fr; }
  .media-row, .media-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .avatar-grid { grid-template-columns:repeat(6,1fr); }
}
@media (max-width: 720px) {
  .topbar { min-height:64px; }
  .topbar-inner { width:calc(100% - 24px); min-height:64px; gap:10px; }
  .brand span:last-child { display:none; }
  .desktop-nav { display:none; }
  .top-actions { margin-inline-start:auto; }
  .page-shell { width:calc(100% - 24px); padding:28px 0 96px; }
  .bottom-nav {
    position:fixed; display:grid; grid-template-columns:repeat(5,1fr); bottom:0; inset-inline:0; z-index:40;
    background:color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter:blur(20px);
    border-top:1px solid var(--line); padding:8px max(8px, env(safe-area-inset-left)) max(8px, env(safe-area-inset-bottom));
  }
  .bottom-nav a { display:grid; gap:3px; place-items:center; color:var(--muted); font-size:.69rem; font-weight:700; }
  .bottom-nav a.active { color:var(--accent-strong); }
  .nav-dot { width:18px; height:4px; border-radius:99px; background:transparent; }
  .bottom-nav a.active .nav-dot { background:var(--accent); }
  .hero { gap:26px; }
  .hero h1 { font-size:clamp(2.65rem, 13vw, 4.4rem); }
  .page-heading { align-items:start; flex-direction:column; margin-bottom:23px; }
  .page-heading .button { width:100%; }
  .media-row, .media-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .library-pills { grid-template-columns:repeat(2,1fr); }
  .calendar-strip { gap:4px; overflow:auto; grid-template-columns:repeat(7,64px); padding-bottom:4px; }
  .profile-header { grid-template-columns:82px 1fr; }
  .profile-avatar { width:82px; height:82px; border-radius:23px; }
  .profile-header > .button { grid-column:1 / -1; }
  .avatar-grid { grid-template-columns:repeat(4,1fr); }
  .show-hero { grid-template-columns:108px 1fr; gap:18px; align-items:start; }
  .show-poster { width:108px; border-radius:13px; }
  .show-copy h1 { font-size:2rem; }
  .show-copy p { grid-column:1/-1; font-size:.9rem; }
  .episode-row { grid-template-columns:34px 42px 1fr auto; padding:13px 12px; }
  .episode-copy span { display:none; }
}

/* v0.2 authentication + controlled community */
.compact-button { min-height:38px; padding:0 14px; }
.user-chip { display:flex; align-items:center; gap:9px; padding:5px 10px 5px 5px; border:1px solid var(--line); border-radius:14px; background:var(--surface); font-size:.82rem; font-weight:750; }
.user-chip img { width:30px; height:30px; border-radius:10px; }
.flash-stack { position:fixed; z-index:60; top:84px; inset-inline-end:18px; width:min(420px,calc(100% - 36px)); display:grid; gap:8px; }
.flash { border:1px solid var(--line); background:var(--surface); border-radius:14px; padding:12px 15px; box-shadow:var(--shadow); font-size:.9rem; }
.flash.success { border-color:color-mix(in srgb,var(--success) 40%,var(--line)); }
.flash.error { border-color:color-mix(in srgb,var(--danger) 50%,var(--line)); }
.flash.info { border-color:color-mix(in srgb,var(--accent) 45%,var(--line)); }

.auth-shell { min-height:calc(100vh - 190px); display:grid; place-items:center; }
.auth-card { width:min(580px,100%); padding:30px; box-shadow:none; }
.auth-intro h1 { font-size:2.5rem; letter-spacing:-.05em; margin:8px 0 8px; }
.auth-intro p, .auth-footer, .auth-note { color:var(--muted); }
.social-auth { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:22px; }
.oauth-button { min-height:46px; display:flex; align-items:center; justify-content:center; gap:10px; border:1px solid var(--line); border-radius:14px; background:var(--surface); font-weight:750; }
.oauth-mark { width:25px; height:25px; display:grid; place-items:center; border-radius:8px; background:var(--surface-2); font-weight:900; }
.or-divider { display:flex; align-items:center; gap:12px; color:var(--muted); font-size:.78rem; margin:20px 0; }
.or-divider::before,.or-divider::after { content:""; flex:1; height:1px; background:var(--line); }
.form-stack { display:grid; gap:14px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-stack label { display:grid; gap:6px; font-size:.84rem; font-weight:750; }
.form-stack input,.form-stack textarea,.form-stack select,.moderation-actions input { width:100%; border:1px solid var(--line); background:var(--surface-2); color:var(--text); border-radius:12px; padding:11px 12px; outline:none; }
.form-stack input:focus,.form-stack textarea:focus,.form-stack select:focus,.moderation-actions input:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.form-stack textarea { resize:vertical; min-height:98px; }
.field-help,.auth-note,.counter { font-size:.76rem; color:var(--muted); font-weight:500; }
.auth-footer { text-align:center; margin:18px 0 0; }
.auth-footer a { color:var(--accent-strong); font-weight:750; }
.auth-note { margin-top:18px; padding:11px 13px; background:var(--surface-2); border-radius:12px; }
.auth-note code { color:var(--text); }
.inline-form { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:15px; }
.inline-form input[type=file] { flex:1; min-width:230px; border:1px dashed var(--line); padding:12px; border-radius:13px; background:var(--surface-2); }
.subsection { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }
.avatar-form { margin:0; }
.connected-method { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:14px 0; border-top:1px solid var(--line); }
.connected-method:first-of-type { border-top:0; }
.connected-method span strong,.connected-method span small { display:block; }
.connected-method span small { color:var(--muted); margin-top:2px; }
.boundary-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.boundary-grid > div { background:var(--surface-2); border-radius:16px; padding:16px; }
.boundary-grid strong,.boundary-grid span { display:block; }
.boundary-grid span { color:var(--muted); font-size:.86rem; margin-top:5px; }
.logout-form { display:inline-block; }
.profile-handle { color:var(--accent-strong); font-weight:800; margin:-2px 0 8px; }
.section-subtitle { color:var(--muted); margin:3px 0 0; font-size:.86rem; }

.reviews-layout { display:grid; grid-template-columns:1fr 360px; gap:20px; align-items:start; }
.reviews-list { display:grid; gap:13px; }
.review-card { padding:20px; box-shadow:none; }
.review-head { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.review-user { display:flex; align-items:center; gap:10px; }
.review-user img { width:42px; height:42px; border-radius:13px; }
.review-user strong,.review-user small { display:block; }
.review-user small { color:var(--muted); margin-top:1px; }
.review-card p { margin:15px 0; }
.review-tags { display:flex; gap:7px; flex-wrap:wrap; }
.review-tags span { padding:6px 9px; border-radius:999px; background:var(--surface-2); color:var(--muted); font-size:.75rem; font-weight:700; }
.helpful-button { margin-top:14px; border:1px solid var(--line); background:transparent; color:var(--muted); border-radius:11px; padding:8px 10px; cursor:pointer; }
.review-editor { padding:21px; box-shadow:none; position:sticky; top:92px; }
.review-editor h3 { margin:6px 0 15px; }
.form-stack fieldset { border:0; padding:0; margin:0; }
.form-stack legend { font-size:.84rem; font-weight:750; margin-bottom:7px; }
.check-tags { display:flex; gap:7px; flex-wrap:wrap; }
.check-tags label { display:block; cursor:pointer; }
.check-tags input { position:absolute; opacity:0; width:1px; height:1px; }
.check-tags span { display:block; padding:7px 10px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:.76rem; }
.check-tags input:checked + span { border-color:var(--accent); background:var(--accent-soft); color:var(--accent-strong); }

.moderation-principles { display:grid; grid-template-columns:160px 1fr; gap:18px; padding:18px 22px; box-shadow:none; margin-bottom:18px; }
.moderation-principles span { color:var(--muted); }
.moderation-list { display:grid; gap:12px; }
.moderation-item { padding:18px; box-shadow:none; }
.moderation-meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; color:var(--muted); font-size:.82rem; }
.moderation-item details { margin:13px 0; }
.moderation-item summary { cursor:pointer; font-weight:750; }
.moderation-item pre { max-height:260px; overflow:auto; white-space:pre-wrap; background:var(--surface-2); border-radius:12px; padding:12px; font-size:.73rem; }
.moderation-actions { display:grid; grid-template-columns:1fr auto auto auto; gap:8px; }
.danger-button { background:var(--danger); color:#fff; border-color:transparent; }
.empty-card { display:grid; gap:4px; padding:24px; box-shadow:none; }
.empty-card span { color:var(--muted); }

@media (max-width: 820px) {
  .reviews-layout { grid-template-columns:1fr; }
  .review-editor { position:static; }
  .moderation-actions { grid-template-columns:1fr 1fr; }
  .moderation-actions input { grid-column:1/-1; }
}
@media (max-width: 620px) {
  .social-auth,.form-grid,.boundary-grid { grid-template-columns:1fr; }
  .user-chip span { display:none; }
  .moderation-principles { grid-template-columns:1fr; }
  .flash-stack { top:72px; }
}


/* v0.3 i18n / RTL resilience */
html[dir="rtl"] .chevron { transform:scaleX(-1); }
html[dir="rtl"] .brand-mark { direction:ltr; }
html[dir="rtl"] input[type="email"],
html[dir="rtl"] input[type="password"],
html[dir="rtl"] code { direction:ltr; text-align:start; }

.language-mini select {
  max-width:170px; border:1px solid var(--line); background:var(--surface); color:var(--text);
  border-radius:12px; padding:8px 10px;
}
.original-title { color:var(--muted); margin-block-start:-12px; margin-block-end:12px; }
.season-tabs { display:flex; flex-wrap:wrap; gap:8px; }
.season-tabs a { min-width:38px; min-height:38px; display:grid; place-items:center; border-radius:12px; background:var(--surface-2); }
.season-tabs a.active { background:var(--accent); color:white; }
.episode-row form { margin:0; }
.compact-library { grid-template-columns:repeat(3,1fr); }
.empty-card { padding:22px; color:var(--muted); }
.empty-card strong,.empty-card span { display:block; }
@media (max-width:720px) {
  .language-mini select { width:92px; max-width:92px; }
  .top-actions { gap:6px; }
  .user-chip span { display:none; }
  .compact-library { grid-template-columns:repeat(2,1fr); }
}


/* v0.5 tracker */
.library-filters { display:grid; grid-template-columns:minmax(220px,1fr) 180px 160px auto; gap:10px; padding:14px; margin-bottom:20px; box-shadow:none; }
.library-filters input,.library-filters select,.library-card-actions select,.show-copy select,.review-editor select,.report-pop select {
  min-height:42px; background:var(--surface-2); color:var(--text); border:1px solid var(--line); border-radius:12px; padding-inline:11px;
}
.library-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.library-card { overflow:hidden; box-shadow:none; }
.library-card > a { display:grid; grid-template-columns:92px 1fr; gap:14px; align-items:center; padding:14px; }
.library-card .poster { width:92px; }
.library-card-copy strong,.library-card-copy span { display:block; }
.library-card-copy span { color:var(--muted); font-size:.84rem; margin-block-start:4px; }
.library-card-actions { display:flex; justify-content:space-between; align-items:center; gap:10px; border-top:1px solid var(--line); padding:10px 14px; }
.danger-text { color:var(--danger); }
.schedule-card { padding:0 18px; box-shadow:none; }
.schedule-list > a { display:grid; grid-template-columns:64px 1fr auto; align-items:center; gap:14px; padding:14px 0; border-top:1px solid var(--line); }
.schedule-list > a:first-child { border-top:0; }
.schedule-list a span strong,.schedule-list a span small { display:block; }
.schedule-list a small { color:var(--muted); }
.community-summary { display:grid; grid-template-columns:minmax(180px,.4fr) 1fr; gap:28px; padding:24px; margin-top:30px; box-shadow:none; }
.community-score { display:flex; align-items:baseline; gap:5px; }
.community-score strong { font-size:3.4rem; line-height:1; letter-spacing:-.06em; }
.community-score span,.community-summary small { color:var(--muted); }
.reaction-bars { display:grid; gap:9px; margin-top:12px; }
.reaction-bars > div { display:grid; grid-template-columns:minmax(110px,.4fr) 1fr 42px; gap:10px; align-items:center; }
.mini-bar { height:7px; background:var(--surface-2); border-radius:99px; overflow:hidden; }
.mini-bar i { display:block; height:100%; background:var(--accent); border-radius:inherit; }
.bulk-actions { display:flex; gap:14px; flex-wrap:wrap; }
.review-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.review-actions form { margin:0; }
.helpful-button.active { background:var(--accent-soft); color:var(--accent-strong); border-color:var(--accent); }
.report-pop summary { cursor:pointer; color:var(--muted); font-size:.84rem; }
.compact-form { margin-top:10px; }
.boundary-grid code { direction:ltr; unicode-bidi:embed; overflow-wrap:anywhere; }

@media (max-width:1000px) {
  .library-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .library-filters { grid-template-columns:1fr 1fr; }
}
@media (max-width:720px) {
  .library-grid { grid-template-columns:1fr; }
  .library-filters { grid-template-columns:1fr; }
  .library-card > a { grid-template-columns:76px 1fr; }
  .library-card .poster { width:76px; }
  .community-summary { grid-template-columns:1fr; }
  .reaction-bars > div { grid-template-columns:100px 1fr 38px; }
}


/* v0.5 history, month calendar, portability */
.history-top-link{color:var(--muted);font-size:.86rem;font-weight:700}
.text-link{color:var(--accent-strong);text-align:center;font-weight:700;font-size:.9rem}
.history-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.history-stats .card{padding:20px;box-shadow:none}.history-stats strong,.history-stats span{display:block}
.history-stats strong{font-size:1.55rem;letter-spacing:-.04em}.history-stats span{color:var(--muted);font-size:.84rem;margin-block-start:3px}
.month-bars{min-height:220px;padding:22px;display:flex;align-items:end;gap:10px;box-shadow:none;overflow-x:auto}
.month-bars>div{min-width:58px;height:170px;display:grid;grid-template-rows:auto 1fr auto;gap:7px;place-items:center;color:var(--muted);font-size:.72rem}
.vertical-bar{width:24px;height:100%;background:var(--surface-2);border-radius:9px;display:flex;align-items:end;overflow:hidden}.vertical-bar i{width:100%;background:var(--accent);border-radius:9px;min-height:2px}
.history-list{box-shadow:none;overflow:hidden}.history-row{display:grid;grid-template-columns:150px 1fr auto;gap:18px;align-items:center;padding:15px 18px;border-top:1px solid var(--line)}.history-row:first-child{border-top:0}
.history-row div strong,.history-row div span{display:block}.history-row span,.history-date,.history-runtime{color:var(--muted);font-size:.82rem}
.month-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-block-end:14px}.month-toolbar h2{margin:0;text-align:center}
.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-day{min-height:132px;background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:9px;overflow:hidden}
.calendar-day.outside{opacity:.38}.calendar-day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.calendar-day-number{font-weight:800;font-size:.82rem;margin-block-end:7px}
.calendar-day-items{display:grid;gap:5px}.calendar-day-items a{background:var(--accent-soft);border-radius:8px;padding:5px 6px;overflow:hidden}.calendar-day-items strong,.calendar-day-items span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-day-items strong{font-size:.68rem}.calendar-day-items span{color:var(--muted);font-size:.62rem}.settings-card input[type="file"]{max-width:100%}
@media(max-width:900px){.history-stats{grid-template-columns:repeat(2,1fr)}.month-calendar{overflow-x:auto;grid-template-columns:repeat(7,120px);padding-block-end:5px}.history-row{grid-template-columns:1fr auto}.history-date{grid-column:1/-1}}
@media(max-width:720px){.history-top-link{display:none}.history-stats{grid-template-columns:1fr 1fr}.month-toolbar .button{padding-inline:11px;font-size:.78rem}.history-row{grid-template-columns:1fr;gap:4px}}


/* v0.6 device tokens / preflight */
.token-once { display:grid; gap:8px; padding:16px; margin-block:14px; border:1px solid var(--accent); background:var(--accent-soft); border-radius:16px; }
.token-once code { direction:ltr; unicode-bidi:embed; overflow-wrap:anywhere; user-select:all; }
.device-list { display:grid; gap:1px; background:var(--line); border-radius:16px; overflow:hidden; margin-block:14px; }
.device-row { display:flex; justify-content:space-between; align-items:center; gap:18px; background:var(--surface); padding:14px; }
.device-row strong,.device-row span { display:block; }
.device-row span { color:var(--muted); font-size:.8rem; margin-block-start:3px; }


/* v0.7 bot protection */
.gmwt-honeypot {
  position:absolute !important;
  inline-size:1px !important;
  block-size:1px !important;
  overflow:hidden !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.turnstile-box { min-height:1px; }


/* v0.8 spacing, compact controls and first-run onboarding */
.language-picker { position:relative; }
.language-picker > summary { list-style:none; min-height:40px; display:flex; align-items:center; gap:7px; padding:0 11px; border:1px solid var(--line); border-radius:13px; background:var(--surface); color:var(--text); font-size:.82rem; font-weight:750; cursor:pointer; user-select:none; }
.language-picker > summary::-webkit-details-marker { display:none; }
.language-caret { color:var(--muted); line-height:1; transition:transform .16s ease; }
.language-picker[open] .language-caret { transform:rotate(180deg); }
.language-menu { position:absolute; z-index:70; inset-inline-end:0; top:calc(100% + 8px); width:min(290px,calc(100vw - 24px)); max-height:min(520px,70vh); overflow:auto; padding:7px; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:var(--shadow); }
.language-menu form { margin:0; }
.language-option { width:100%; border:0; background:transparent; color:var(--text); min-height:40px; border-radius:10px; padding:0 10px; display:flex; align-items:center; justify-content:space-between; gap:12px; text-align:start; cursor:pointer; font-size:.84rem; }
.language-option:hover { background:var(--surface-2); }
.language-option.selected { background:var(--accent-soft); color:var(--accent-strong); font-weight:800; }
.theme-toggle { display:grid; place-items:center; }
.theme-glyph { width:17px; height:17px; border:2px solid currentColor; border-radius:50%; position:relative; display:block; }
.theme-toggle[data-effective="dark"] .theme-glyph { background:currentColor; box-shadow:inset -5px -3px 0 0 var(--surface); border-color:transparent; }
.theme-toggle[data-effective="light"] .theme-glyph::after { content:""; position:absolute; inset:-6px; border:2px dotted currentColor; border-radius:50%; opacity:.7; }
.generated-help { margin-top:-5px; }
.onboarding-shell { max-width:1180px; margin:0 auto; }
.onboarding-heading { max-width:820px; }
.interest-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.interest-card { position:relative; display:grid; align-content:start; min-height:260px; padding:24px; cursor:pointer; box-shadow:none; transition:transform .15s ease,border-color .15s ease,background .15s ease; }
.interest-card:hover { transform:translateY(-2px); border-color:color-mix(in srgb,var(--accent) 42%,var(--line)); }
.interest-card input { position:absolute; opacity:0; pointer-events:none; }
.interest-card:has(input:checked) { border-color:var(--accent); background:linear-gradient(180deg,var(--accent-soft),var(--surface)); box-shadow:0 0 0 1px var(--accent) inset; }
.interest-check { position:absolute; inset-block-start:18px; inset-inline-end:18px; width:25px; height:25px; border:1px solid var(--line); border-radius:9px; background:var(--surface-2); }
.interest-card:has(input:checked) .interest-check { background:var(--accent); border-color:var(--accent); }
.interest-card:has(input:checked) .interest-check::after { content:"✓"; display:grid; place-items:center; color:#fff; font-size:.78rem; font-weight:900; }
.interest-icon { width:66px; height:66px; border-radius:20px; margin-bottom:28px; background:var(--surface-2); position:relative; }
.interest-movie::before { content:""; position:absolute; inset:18px 15px; border:3px solid var(--accent-strong); border-radius:7px; transform:skewY(-6deg); }
.interest-movie::after { content:""; position:absolute; left:22px; top:13px; width:25px; height:7px; border-top:3px solid var(--accent-strong); border-bottom:3px solid var(--accent-strong); transform:rotate(-15deg); }
.interest-tv::before { content:""; position:absolute; inset:16px 12px 14px; border:3px solid var(--accent-strong); border-radius:9px; }
.interest-tv::after { content:""; position:absolute; width:22px; height:3px; background:var(--accent-strong); left:22px; top:10px; transform:rotate(28deg); box-shadow:7px -5px 0 -1px var(--accent-strong); }
.interest-anime::before { content:""; position:absolute; width:40px; height:40px; border:3px solid var(--accent-strong); border-radius:50%; left:13px; top:13px; }
.interest-anime::after { content:""; position:absolute; width:9px; height:9px; border-radius:50%; background:var(--accent-strong); left:24px; top:29px; box-shadow:19px 0 0 var(--accent-strong); }
.interest-card strong { font-size:1.25rem; }
.interest-card p { color:var(--muted); margin:8px 0 0; }
.onboarding-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; margin-top:22px; }
.onboarding-suggestion-heading p { color:var(--muted); margin:5px 0 0; max-width:760px; }
.suggestion-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.suggestion-card { overflow:hidden; box-shadow:none; }
.suggestion-poster,.suggestion-card > .poster { width:100%; aspect-ratio:2/3; object-fit:cover; border-radius:0; }
.suggestion-copy { padding:14px; }
.suggestion-copy strong,.suggestion-copy span { display:block; }
.suggestion-copy span { color:var(--muted); font-size:.8rem; margin:3px 0 12px; }
.suggestion-copy .button { width:100%; }
.settings-interest-row { display:flex; gap:9px; flex-wrap:wrap; }
.check-card { position:relative; cursor:pointer; }
.check-card input { position:absolute; opacity:0; }
.check-card span { display:block; padding:9px 13px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); color:var(--muted); }
.check-card input:checked + span { border-color:var(--accent); background:var(--accent-soft); color:var(--accent-strong); font-weight:800; }

@media (max-width:1100px){
  .topbar-inner { gap:14px; }
  .desktop-nav a { padding-inline:9px; }
  .language-summary-label { display:none; }
  .language-picker > summary { width:40px; justify-content:center; }
  .language-picker > summary::before { content:"文"; font-size:.82rem; }
  .language-caret { display:none; }
  .suggestion-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:800px){
  .interest-grid { grid-template-columns:1fr; }
  .interest-card { min-height:190px; }
  .suggestion-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:520px){
  .suggestion-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .onboarding-actions .button { flex:1; }
}
