:root {
  --bg: #090b10;
  --bg-soft: #0f1219;
  --panel: #131720;
  --panel-2: #191e28;
  --line: rgba(255,255,255,.08);
  --muted: #8e96a7;
  --text: #f7f8fb;
  --accent: #e31338;
  --accent-2: #ff3152;
  --radius: 18px;
  --shadow: 0 24px 80px rgba(0,0,0,.45);
}

* { box-sizing: border-box; }
html { background: var(--bg); color: var(--text); scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: radial-gradient(circle at 70% -20%, rgba(227,19,56,.14), transparent 32%), var(--bg); }
button, input, textarea { font: inherit; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
.hidden { display: none !important; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 224px minmax(0,1fr); }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 224px; z-index: 40; padding: 24px 18px; background: rgba(7,9,13,.96); border-right: 1px solid var(--line); display: flex; flex-direction: column; backdrop-filter: blur(16px); }
.brand { display: flex; align-items: center; gap: 11px; padding: 0 8px 26px; font-weight: 900; letter-spacing: .16em; }
.brand-mark { display: grid; place-items: center; width: 33px; height: 33px; border-radius: 10px 4px 10px 4px; background: linear-gradient(135deg,var(--accent-2),#8f001a); box-shadow: 0 8px 24px rgba(227,19,56,.28); font-size: 19px; letter-spacing: 0; }
.brand-word { font-size: 16px; }
.nav-group { display: flex; flex-direction: column; gap: 4px; margin-bottom: 28px; }
.nav-label { color: #555d6f; font-size: 10px; font-weight: 800; letter-spacing: .18em; padding: 0 12px 8px; }
.nav-link { width: 100%; border: 0; background: transparent; color: #9ba3b3; text-align: left; padding: 11px 12px; border-radius: 11px; cursor: pointer; display: flex; gap: 12px; align-items: center; font-size: 13px; font-weight: 650; transition: .18s ease; }
.nav-link span { width: 18px; text-align: center; color: #687184; }
.nav-link:hover { color: white; background: rgba(255,255,255,.045); transform: translateX(2px); }
.nav-link.active { color: white; background: linear-gradient(90deg, rgba(227,19,56,.16), rgba(227,19,56,.03)); box-shadow: inset 3px 0 0 var(--accent); }
.nav-link.active span { color: var(--accent-2); }
.sidebar-bottom { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); }

.main-area { grid-column: 2; min-width: 0; }
.topbar { height: 78px; position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: 18px; padding: 0 32px; background: linear-gradient(180deg,rgba(9,11,16,.98),rgba(9,11,16,.82)); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(255,255,255,.035); }
.search-box { flex: 1; max-width: 630px; height: 42px; display: flex; align-items: center; gap: 10px; background: #11151c; border: 1px solid rgba(255,255,255,.075); border-radius: 12px; padding: 0 13px; transition: .2s; }
.search-box:focus-within { border-color: rgba(227,19,56,.55); box-shadow: 0 0 0 3px rgba(227,19,56,.08); }
.search-icon { color: #687184; font-size: 20px; transform: rotate(-15deg); }
.search-box input { width: 100%; border: 0; outline: 0; color: white; background: transparent; font-size: 13px; }
.search-box input::placeholder { color: #5f6776; }
.search-hint { font-size: 9px; letter-spacing: .13em; color: #596171; border: 1px solid #2a303c; padding: 4px 6px; border-radius: 5px; }
.top-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.icon-btn { border: 1px solid var(--line); background: #11151c; border-radius: 11px; width: 40px; height: 40px; cursor: pointer; color: #a8afbc; transition: .2s; }
.icon-btn:hover { border-color: #414a5d; color: white; }
.mobile-menu { display: none; }
.profile-pill { display: flex; align-items: center; gap: 10px; border: 0; background: transparent; cursor: pointer; padding: 4px 5px; border-radius: 12px; }
.profile-pill:hover { background: rgba(255,255,255,.04); }
.avatar { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: linear-gradient(135deg,#2d3443,#171b24); border: 1px solid rgba(255,255,255,.12); font-weight: 900; }
.profile-copy { display: flex; flex-direction: column; text-align: left; line-height: 1.2; }
.profile-copy strong { font-size: 12px; }
.profile-copy small { color: var(--muted); font-size: 10px; margin-top: 3px; }

.content-wrap { padding: 0 32px 56px; }
.hero { position: relative; min-height: 420px; overflow: hidden; border-radius: 0 0 24px 24px; margin: 0 -32px 34px; padding: 56px 54px; display: flex; align-items: flex-end; background-size: cover; background-position: center; box-shadow: var(--shadow); isolation: isolate; }
.empty-hero { background-image: radial-gradient(circle at 78% 36%, rgba(227,19,56,.37), transparent 26%), linear-gradient(130deg,#1c2230 0%,#0e1118 55%,#080a0e 100%); }
.hero::before { content:""; position:absolute; inset:0; background: linear-gradient(90deg,rgba(6,8,11,.97) 0%,rgba(6,8,11,.72) 35%,rgba(6,8,11,.18) 70%), linear-gradient(0deg,rgba(9,11,16,1),transparent 45%); z-index:-1; }
.hero-overlay { position:absolute; inset:0; background: radial-gradient(circle at 83% 38%, transparent 0 20%, rgba(0,0,0,.12) 56%); z-index:-1; }
.hero-content { max-width: 610px; position: relative; z-index: 2; }
.eyebrow, .section-kicker { display: block; color: var(--accent-2); font-size: 10px; font-weight: 850; letter-spacing: .16em; }
.hero h1 { font-size: clamp(38px,5vw,66px); line-height: .95; letter-spacing: -.055em; margin: 10px 0 16px; max-width: 660px; text-wrap: balance; }
.hero-meta { display:flex; align-items:center; flex-wrap:wrap; gap:9px; color:#c6cad3; font-size:12px; font-weight:700; }
.hero-meta i { width:4px; height:4px; border-radius:50%; background:#626b7d; }
.hero p { color:#b0b6c3; font-size:13px; line-height:1.65; max-width:560px; margin:18px 0 22px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.hero-buttons { display:flex; gap:10px; flex-wrap:wrap; }
.btn { border:0; border-radius:10px; min-height:40px; padding:0 17px; font-size:12px; font-weight:800; cursor:pointer; transition:.18s ease; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.btn:hover { transform:translateY(-1px); }
.btn.primary { color:white; background:linear-gradient(135deg,var(--accent-2),#bc0828); box-shadow:0 10px 26px rgba(227,19,56,.2); }
.btn.primary:hover { filter:brightness(1.08); }
.btn.glass { background:rgba(255,255,255,.1); color:white; border:1px solid rgba(255,255,255,.13); backdrop-filter:blur(10px); }
.btn.compact { min-height:35px; padding:0 13px; }
.btn.wide { width:100%; min-height:46px; }
.hero-badge { position:absolute; right:34px; bottom:28px; display:flex; gap:7px; align-items:center; font-size:8px; color:#8d95a5; letter-spacing:.18em; }
.hero-badge span { border:1px solid #596071; color:#d4d8e0; padding:3px 5px; border-radius:4px; letter-spacing:0; }
.hero-badge strong { font-size:9px; }

.section-head, .catalog-title { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.section-head.spaced { margin-top:34px; }
.section-head h2, .catalog-title h2 { margin:5px 0 0; font-size:22px; letter-spacing:-.025em; }
.text-btn { border:0; background:transparent; color:#7f8796; cursor:pointer; font-size:11px; font-weight:700; }
.text-btn:hover { color:white; }
.media-row { margin-top:15px; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
.media-card { min-width:0; cursor:pointer; position:relative; }
.poster { aspect-ratio:16/9; position:relative; overflow:hidden; border-radius:13px; background:linear-gradient(135deg,#202632,#11151d); border:1px solid rgba(255,255,255,.055); box-shadow:0 12px 28px rgba(0,0,0,.18); transition:.22s ease; }
.poster::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(7,9,13,.74),transparent 48%); opacity:.7; }
.poster img { width:100%; height:100%; display:block; object-fit:cover; transition:.28s ease; }
.media-card:hover .poster { transform:translateY(-4px) scale(1.018); border-color:rgba(255,255,255,.16); box-shadow:0 18px 34px rgba(0,0,0,.34); }
.media-card:hover .poster img { transform:scale(1.045); }
.card-play { position:absolute; z-index:2; left:12px; bottom:11px; width:31px; height:31px; border-radius:50%; border:1px solid rgba(255,255,255,.26); background:rgba(6,8,11,.72); display:grid; place-items:center; font-size:10px; opacity:0; transform:translateY(4px); transition:.2s; backdrop-filter:blur(8px); }
.media-card:hover .card-play { opacity:1; transform:none; }
.card-badge { position:absolute; z-index:2; top:9px; left:9px; color:white; background:rgba(227,19,56,.9); padding:4px 7px; border-radius:6px; font-size:8px; font-weight:900; letter-spacing:.08em; }
.card-copy { padding:9px 2px 0; }
.card-copy h3 { font-size:12px; margin:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.card-copy p { margin:4px 0 0; color:#747d8f; font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.placeholder-poster { width:100%; height:100%; display:grid; place-items:center; background:radial-gradient(circle at 70% 24%,rgba(227,19,56,.35),transparent 28%),linear-gradient(135deg,#232a37,#0d1016); color:#5d6574; font-size:30px; font-weight:900; letter-spacing:-.05em; }

.view { display:none; }
.active-view { display:block; }
.catalog-title { padding:12px 0 10px; }
.result-count { color:#737c8c; font-size:11px; }
.catalog-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:22px 14px; margin-top:14px; }
.empty-state { text-align:center; padding:80px 20px; color:#737c8d; }
.empty-icon { font-size:54px; color:#2b3240; }
.empty-state h3 { color:#d5d9e1; margin:14px 0 8px; }
.empty-state p { margin:0; font-size:12px; }

.modal-backdrop { position:fixed; inset:0; z-index:100; background:rgba(2,3,5,.83); backdrop-filter:blur(12px); display:grid; place-items:center; padding:20px; overflow:auto; }
.detail-modal { width:min(1080px,96vw); max-height:94vh; overflow:auto; background:#0d1016; border:1px solid rgba(255,255,255,.1); border-radius:20px; box-shadow:0 40px 120px rgba(0,0,0,.7); position:relative; }
.close-btn { position:absolute; z-index:10; right:12px; top:12px; width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.15); color:white; background:rgba(4,5,8,.78); cursor:pointer; font-size:22px; line-height:1; }
.player-shell { width:100%; aspect-ratio:16/9; max-height:590px; background:#030405; border-radius:20px 20px 0 0; overflow:hidden; display:grid; place-items:center; }
.player-shell iframe, .player-shell video { width:100%; height:100%; border:0; background:#000; }
.player-placeholder { color:#646d7e; text-align:center; padding:30px; }
.player-placeholder strong { display:block; color:#dce0e7; margin-bottom:8px; }
.detail-body { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr); }
.detail-main { padding:28px 30px 34px; }
.detail-heading-row { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.detail-main h2 { font-size:30px; margin:5px 0 12px; letter-spacing:-.04em; }
.detail-meta { display:flex; flex-wrap:wrap; gap:8px; color:#8e96a6; font-size:11px; }
.detail-meta span { padding:4px 7px; border:1px solid #2a303c; border-radius:6px; }
.detail-description { color:#b5bbc7; line-height:1.75; font-size:13px; margin:18px 0; white-space:pre-line; }
.rights-note { padding:11px 12px; border:1px solid rgba(255,255,255,.07); background:#11151c; color:#6f7889; border-radius:10px; font-size:10px; line-height:1.5; }
.comments-panel { border-left:1px solid var(--line); padding:27px 24px; background:#0a0d12; }
.comments-title { display:flex; justify-content:space-between; align-items:center; }
.comments-title h3 { margin:0; font-size:15px; }
.comments-title span { min-width:24px; height:24px; border-radius:8px; display:grid; place-items:center; background:#171c25; color:#8992a3; font-size:10px; }
.comment-form { display:flex; flex-direction:column; gap:8px; margin:15px 0 20px; }
.comment-form textarea { resize:vertical; min-height:74px; max-height:160px; border-radius:10px; border:1px solid #252b36; background:#11151c; color:white; padding:11px; outline:0; font-size:12px; }
.comment-form textarea:focus { border-color:rgba(227,19,56,.5); }
.comment-form .btn { align-self:flex-end; }
.comments-list { display:flex; flex-direction:column; gap:12px; max-height:360px; overflow:auto; padding-right:3px; }
.comment { padding:11px; border:1px solid rgba(255,255,255,.065); border-radius:11px; background:#11151c; }
.comment-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:7px; }
.comment-user { font-size:11px; font-weight:800; }
.comment-user small { color:var(--accent-2); margin-left:5px; }
.comment-time { color:#626b7d; font-size:9px; }
.comment p { margin:0; color:#aeb5c1; font-size:11px; line-height:1.55; white-space:pre-wrap; word-break:break-word; }
.comment-delete { margin-top:8px; border:0; background:transparent; color:#747d8d; font-size:9px; cursor:pointer; padding:0; }
.comment-delete:hover { color:#ff6680; }

.auth-modal { width:min(430px,94vw); border:1px solid rgba(255,255,255,.1); border-radius:19px; padding:30px; background:#0d1016; box-shadow:var(--shadow); position:relative; }
.auth-brand { display:flex; align-items:center; gap:10px; font-weight:900; letter-spacing:.12em; margin-bottom:24px; }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; background:#11151c; padding:4px; border-radius:10px; margin-bottom:18px; }
.auth-tab { border:0; background:transparent; color:#727b8c; min-height:37px; border-radius:8px; font-weight:750; font-size:11px; cursor:pointer; }
.auth-tab.active { color:white; background:#1b202a; }
.auth-form { display:flex; flex-direction:column; gap:13px; }
.auth-form label { color:#858e9e; font-size:10px; font-weight:800; letter-spacing:.04em; }
.auth-form input { width:100%; margin-top:6px; min-height:43px; border-radius:9px; border:1px solid #272d39; background:#11151c; color:white; outline:0; padding:0 12px; }
.auth-form input:focus { border-color:rgba(227,19,56,.5); }
.form-message { min-height:17px; color:#ff637c; font-size:10px; margin:12px 0 0; }
.toast { position:fixed; z-index:200; left:50%; bottom:25px; transform:translate(-50%,18px); opacity:0; pointer-events:none; background:#f2f4f8; color:#0c0f14; border-radius:10px; padding:10px 14px; font-size:11px; font-weight:800; box-shadow:0 14px 40px rgba(0,0,0,.35); transition:.25s; }
.toast.show { opacity:1; transform:translate(-50%,0); }

@media (max-width: 1200px) {
  .media-row, .catalog-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width: 940px) {
  .app-shell { grid-template-columns:1fr; }
  .main-area { grid-column:1; }
  .sidebar { transform:translateX(-105%); transition:.24s; box-shadow:20px 0 50px rgba(0,0,0,.5); }
  .sidebar.open { transform:none; }
  .mobile-menu { display:block; }
  .topbar { padding:0 18px; }
  .content-wrap { padding-left:18px; padding-right:18px; }
  .hero { margin-left:-18px; margin-right:-18px; padding-left:28px; padding-right:28px; }
  .media-row, .catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .detail-body { grid-template-columns:1fr; }
  .comments-panel { border-left:0; border-top:1px solid var(--line); }
}
@media (max-width: 650px) {
  .topbar { height:68px; gap:8px; }
  .top-actions .icon-btn { display:none; }
  .profile-copy { display:none; }
  .search-hint { display:none; }
  .hero { min-height:390px; padding:42px 20px 28px; align-items:flex-end; }
  .hero h1 { font-size:38px; }
  .hero-badge { display:none; }
  .media-row, .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px 10px; }
  .section-head h2, .catalog-title h2 { font-size:19px; }
  .detail-main { padding:23px 18px; }
  .detail-heading-row { flex-direction:column; }
  .comments-panel { padding:22px 18px; }
  .modal-backdrop { padding:8px; }
  .detail-modal { width:100%; max-height:97vh; }
}

/* Cineora v1.2 — seriály, řady a epizody */
.series-browser { margin:18px 0 20px; border:1px solid var(--line); border-radius:14px; background:#0a0d12; overflow:hidden; }
.series-browser-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:15px 16px; border-bottom:1px solid var(--line); background:#0f131a; }
.series-browser-head > div { min-width:0; }
.series-browser-head strong { display:block; margin-top:5px; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.series-browser-head select { min-width:150px; border:1px solid #2a313d; border-radius:9px; background:#151a22; color:#fff; padding:9px 11px; outline:0; font-size:11px; font-weight:750; }
.episode-list { display:flex; flex-direction:column; max-height:330px; overflow:auto; }
.episode-item { width:100%; border:0; border-bottom:1px solid rgba(255,255,255,.055); background:transparent; color:#dce0e7; display:grid; grid-template-columns:42px minmax(0,1fr) auto 34px; align-items:center; gap:11px; padding:12px 14px; text-align:left; cursor:pointer; transition:.18s ease; }
.episode-item:last-child { border-bottom:0; }
.episode-item:hover { background:#121720; }
.episode-item.active { background:linear-gradient(90deg,rgba(227,19,56,.15),rgba(227,19,56,.025)); box-shadow:inset 3px 0 0 var(--accent); }
.episode-number { width:36px; height:29px; display:grid; place-items:center; border-radius:7px; background:#1a202a; color:#8f98a8; font-size:10px; font-weight:900; }
.episode-item.active .episode-number { background:rgba(227,19,56,.2); color:#ff6078; }
.episode-item-copy { min-width:0; display:flex; flex-direction:column; gap:4px; }
.episode-item-copy strong { font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.episode-item-copy small { color:#737c8d; font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.episode-play { width:28px; height:28px; border:1px solid #343c49; border-radius:50%; display:grid; place-items:center; font-size:9px; color:#9aa3b2; }
.episode-item:hover .episode-play, .episode-item.active .episode-play { color:#fff; border-color:#5b6577; }

@media (max-width:650px) {
  .series-browser-head { align-items:flex-start; flex-direction:column; }
  .series-browser-head select { width:100%; }
}


/* Cineora v1.3 — přímé video URL + vlastní Cineora Player */
.cineora-player { position:relative; width:100%; height:100%; background:#000; overflow:hidden; outline:0; user-select:none; }
.cineora-player::after { content:""; position:absolute; inset:auto 0 0; height:38%; pointer-events:none; background:linear-gradient(transparent,rgba(0,0,0,.82)); z-index:1; opacity:1; transition:opacity .22s ease; }
.cineora-video { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:#000; }
.player-big-play { position:absolute; z-index:4; left:50%; top:50%; width:76px; height:76px; transform:translate(-50%,-50%); border:1px solid rgba(255,255,255,.25); border-radius:50%; display:grid; place-items:center; background:rgba(10,12,17,.66); color:#fff; box-shadow:0 18px 50px rgba(0,0,0,.38); backdrop-filter:blur(12px); cursor:pointer; transition:.2s ease; }
.player-big-play:hover { transform:translate(-50%,-50%) scale(1.07); background:rgba(227,19,56,.86); border-color:rgba(255,255,255,.45); }
.player-big-play svg { width:32px; height:32px; fill:currentColor; margin-left:4px; }
.player-controls { position:absolute; z-index:3; left:0; right:0; bottom:0; padding:0 18px 14px; transition:opacity .22s ease, transform .22s ease; }
.player-controls-row { display:flex; align-items:center; gap:5px; min-height:42px; }
.player-btn { width:38px; height:38px; border:0; border-radius:9px; display:grid; place-items:center; color:#fff; background:transparent; cursor:pointer; transition:.16s ease; }
.player-btn:hover { background:rgba(255,255,255,.12); }
.player-btn svg { width:22px; height:22px; fill:currentColor; }
.player-btn svg text { fill:currentColor; font-size:6px; font-weight:900; font-family:Arial,sans-serif; }
.player-progress { width:100%; height:18px; margin:0; accent-color:var(--accent); cursor:pointer; }
.player-volume { width:78px; accent-color:#fff; cursor:pointer; }
.player-time { display:flex; align-items:center; gap:5px; margin-left:4px; color:#d6dae2; font-size:10px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.player-time b { color:#fff; }
.player-time i { color:#707888; font-style:normal; }
.player-spacer { flex:1; }
.cineora-player.controls-hidden .player-controls { opacity:0; transform:translateY(8px); pointer-events:none; }
.cineora-player.controls-hidden::after { opacity:0; }
.cineora-player.controls-hidden { cursor:none; }
.player-error { position:absolute; z-index:5; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:30px; text-align:center; color:#8d96a7; background:radial-gradient(circle at 50% 45%,rgba(227,19,56,.12),transparent 35%),#050609; }
.player-error strong { color:#f5f6f8; font-size:16px; }
.player-error span { max-width:520px; font-size:11px; line-height:1.6; }
.field-help { display:block; margin-top:7px; color:#6f7889; font-size:10px; line-height:1.5; }
@media (max-width:650px) {
  .player-controls { padding:0 8px 8px; }
  .player-btn { width:34px; height:34px; }
  .player-btn svg { width:20px; height:20px; }
  .player-volume { display:none; }
  .player-time { font-size:9px; }
  .player-back, .player-forward, .player-pip { display:none; }
  .player-big-play { width:62px; height:62px; }
}


/* Cineora v1.4 — uložený průběh sledování */
.watch-progress-summary { margin:12px 0 2px; display:flex; align-items:center; gap:9px; min-height:36px; padding:9px 11px; border:1px solid rgba(255,255,255,.08); border-radius:10px; background:rgba(255,255,255,.035); color:#aeb6c4; font-size:10px; font-weight:700; }
.watch-progress-summary strong { color:#fff; }
.progress-summary-icon { width:20px; height:20px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; background:rgba(227,19,56,.16); color:#ff6078; font-size:9px; }
.progress-summary-bar { margin-left:auto; width:120px; max-width:28%; height:4px; border-radius:99px; overflow:hidden; background:#242a34; }
.progress-summary-bar i { display:block; height:100%; border-radius:inherit; background:var(--accent); }
.episode-item.watched { background:rgba(59,186,113,.035); }
.episode-item.watched .episode-number { background:rgba(59,186,113,.15); color:#65d494; }
.episode-mini-progress { display:block; width:100%; height:3px; margin-top:2px; overflow:hidden; border-radius:99px; background:#242a34; }
.episode-mini-progress i { display:block; height:100%; border-radius:inherit; background:var(--accent); }
.episode-item.watched .episode-mini-progress i { background:#57c987; }
.episode-progress-status { color:#7f8998; font-size:8px; font-weight:850; white-space:nowrap; }
.episode-item.watched .episode-progress-status { color:#65d494; }
.player-resume-badge { position:absolute; z-index:4; top:14px; left:14px; padding:8px 11px; border-radius:9px; background:rgba(10,12,17,.82); border:1px solid rgba(255,255,255,.12); color:#fff; font-size:10px; font-weight:800; backdrop-filter:blur(10px); box-shadow:0 8px 24px rgba(0,0,0,.28); }
@media (max-width:650px) {
  .episode-item { grid-template-columns:36px minmax(0,1fr) 30px; }
  .episode-progress-status { display:none; }
  .progress-summary-bar { width:80px; max-width:25%; }
}

/* Cineora v1.5 — progress přímo pod plakátem */
.card-progress { padding:7px 2px 0; display:flex; flex-direction:column; gap:5px; }
.card-progress.hidden { display:none; }
.card-progress-track { display:block; width:100%; height:3px; overflow:hidden; border-radius:999px; background:#222833; }
.card-progress-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--accent),#ff5d76); box-shadow:0 0 12px rgba(227,19,56,.24); }
.card-progress-text { color:#8d96a7; font-size:8px; font-weight:800; letter-spacing:.02em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.media-card:has(.card-progress:not(.hidden)) .card-copy { padding-top:6px; }

/* Cineora v1.5 — Watch Party */
.party-top-btn { position:relative; }
.party-top-btn svg { width:19px; height:19px; fill:currentColor; }
.party-top-btn.party-active { color:#fff; border-color:rgba(227,19,56,.52); background:rgba(227,19,56,.13); box-shadow:0 0 0 3px rgba(227,19,56,.05); }
.party-top-btn.party-active::after { content:""; position:absolute; width:7px; height:7px; border-radius:50%; right:5px; top:5px; background:#45d483; box-shadow:0 0 0 2px #0d1016; }
.detail-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
#watchPartyBtn.party-active { border-color:rgba(69,212,131,.28); background:rgba(69,212,131,.08); color:#bcf7d5; }

.party-modal { width:min(560px,94vw); border:1px solid rgba(255,255,255,.1); border-radius:20px; padding:28px; background:#0d1016; box-shadow:var(--shadow); position:relative; }
.party-modal-head { display:flex; gap:15px; align-items:flex-start; padding-right:35px; margin-bottom:24px; }
.party-modal-head h2 { margin:5px 0 5px; font-size:26px; letter-spacing:-.035em; }
.party-modal-head p { margin:0; color:#7e8797; font-size:11px; line-height:1.55; }
.party-logo { width:46px; height:46px; flex:0 0 auto; display:grid; place-items:center; border-radius:14px; background:linear-gradient(135deg,rgba(227,19,56,.95),#8e071f); box-shadow:0 12px 30px rgba(227,19,56,.22); }
.party-logo svg { width:24px; height:24px; fill:white; }
.party-create-card { width:100%; min-height:86px; border:1px solid rgba(255,255,255,.085); border-radius:15px; background:linear-gradient(110deg,#131821,#0f1218); color:#fff; display:grid; grid-template-columns:42px 1fr 22px; align-items:center; gap:13px; padding:14px 15px; text-align:left; cursor:pointer; transition:.18s ease; }
.party-create-card:hover { transform:translateY(-1px); border-color:rgba(227,19,56,.35); background:linear-gradient(110deg,rgba(227,19,56,.1),#10141b 45%); }
.party-create-icon { width:38px; height:38px; border-radius:11px; display:grid; place-items:center; background:rgba(227,19,56,.14); color:#ff5d76; font-size:24px; }
.party-create-card strong { display:block; font-size:12px; }
.party-create-card small { display:block; color:#777f8f; font-size:9px; line-height:1.55; margin-top:5px; }
.party-create-card b { color:#626c7e; font-size:18px; }
.party-divider { height:44px; display:flex; align-items:center; gap:12px; color:#515968; font-size:8px; font-weight:900; letter-spacing:.14em; }
.party-divider::before,.party-divider::after { content:""; height:1px; flex:1; background:#202630; }
.party-join { display:grid; grid-template-columns:1fr auto; gap:9px; }
.party-join input { min-width:0; min-height:42px; border:1px solid #29303b; border-radius:10px; background:#11151c; color:#fff; padding:0 13px; outline:0; text-transform:uppercase; letter-spacing:.16em; font-weight:900; }
.party-join input:focus { border-color:rgba(227,19,56,.52); box-shadow:0 0 0 3px rgba(227,19,56,.06); }
.party-note { margin:15px 2px 0; color:#626b7a; font-size:9px; line-height:1.6; }
.party-active-box { position:relative; padding:18px; border:1px solid rgba(69,212,131,.14); border-radius:15px; background:linear-gradient(135deg,rgba(69,212,131,.055),rgba(255,255,255,.02)); }
.party-live-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:#45d483; box-shadow:0 0 14px rgba(69,212,131,.6); margin-right:6px; }
.party-live-label { color:#69dc99; font-size:8px; font-weight:900; letter-spacing:.13em; }
.party-code-row { display:flex; justify-content:space-between; align-items:center; gap:15px; margin:17px 0 13px; }
.party-code-row small { display:block; color:#646d7c; font-size:8px; font-weight:900; letter-spacing:.12em; }
.party-code-row strong { display:block; margin-top:4px; font-size:31px; letter-spacing:.14em; line-height:1; }
.party-presence { display:flex; align-items:center; gap:9px; min-height:38px; padding:9px 11px; border-radius:10px; background:rgba(0,0,0,.18); color:#cbd0d9; font-size:10px; }
.party-presence small { color:#6f7887; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#partyStatus { margin:13px 1px 0; color:#8c95a4; font-size:10px; line-height:1.55; }
.party-active-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:18px; }
.party-leave-btn { border:0; background:transparent; color:#ff647d; font-size:10px; font-weight:800; cursor:pointer; padding:8px; }
.party-leave-btn:hover { color:#ff8da0; }

.party-player-chip { position:absolute; z-index:4; top:14px; right:14px; display:flex; align-items:center; gap:7px; min-height:30px; padding:0 10px; border:1px solid rgba(69,212,131,.22); border-radius:9px; background:rgba(8,12,14,.78); color:#c9f6dc; backdrop-filter:blur(10px); font-size:9px; font-weight:850; box-shadow:0 8px 24px rgba(0,0,0,.25); }
.party-player-chip::before { content:""; width:6px; height:6px; border-radius:50%; background:#45d483; box-shadow:0 0 10px rgba(69,212,131,.7); }

@media (max-width:650px) {
  .detail-actions { width:100%; justify-content:flex-start; }
  .party-modal { padding:22px 17px; }
  .party-modal-head { gap:11px; }
  .party-logo { width:40px; height:40px; border-radius:12px; }
  .party-join { grid-template-columns:1fr; }
  .party-code-row { align-items:flex-end; }
  .party-code-row strong { font-size:25px; }
  .party-active-actions { align-items:flex-start; flex-direction:column; }
}

/* Cineora v1.6 — dynamické žánry a přepracovaná domovská stránka */
.genre-nav-list { display:flex; flex-direction:column; gap:3px; max-height:34vh; overflow:auto; padding-right:3px; scrollbar-width:thin; scrollbar-color:#252c37 transparent; }
.genre-nav-btn { position:relative; padding-right:42px; }
.genre-nav-btn em { position:absolute; right:10px; top:50%; transform:translateY(-50%); min-width:21px; height:20px; padding:0 6px; display:grid; place-items:center; border-radius:7px; background:#121720; border:1px solid rgba(255,255,255,.055); color:#606a7a; font-size:8px; font-style:normal; font-weight:850; }
.genre-nav-btn.active em { color:#ff6e85; border-color:rgba(227,19,56,.2); background:rgba(227,19,56,.08); }
.genre-nav-empty { display:block; padding:8px 12px; color:#555f70; font-size:9px; line-height:1.5; }

.home-discovery { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(220px,.72fr) minmax(0,1.6fr); gap:28px; align-items:center; margin:0 0 30px; padding:20px 22px; border:1px solid rgba(255,255,255,.065); border-radius:18px; background:linear-gradient(120deg,rgba(227,19,56,.09),rgba(19,23,32,.88) 38%,rgba(11,14,20,.96)); box-shadow:0 16px 45px rgba(0,0,0,.16); }
.home-discovery::after { content:""; position:absolute; width:260px; height:260px; right:-90px; top:-150px; border-radius:50%; background:radial-gradient(circle,rgba(227,19,56,.14),transparent 68%); pointer-events:none; }
.home-discovery-copy { display:flex; flex-direction:column; gap:6px; min-width:0; }
.home-discovery-copy strong { font-size:18px; letter-spacing:-.025em; }
.home-discovery-copy small { color:#7f8898; font-size:10px; line-height:1.55; max-width:410px; }
.genre-chip-row { position:relative; z-index:1; display:flex; gap:8px; overflow-x:auto; padding:3px 2px 5px; scrollbar-width:none; }
.genre-chip-row::-webkit-scrollbar { display:none; }
.genre-chip { flex:0 0 auto; min-width:112px; min-height:54px; padding:9px 12px; border:1px solid rgba(255,255,255,.075); border-radius:12px; background:linear-gradient(145deg,#151a23,#0e1218); color:#dce0e7; cursor:pointer; text-align:left; transition:.18s ease; box-shadow:0 9px 22px rgba(0,0,0,.14); }
.genre-chip:hover { transform:translateY(-2px); border-color:rgba(227,19,56,.38); background:linear-gradient(145deg,rgba(227,19,56,.11),#11161e); }
.genre-chip span { display:block; font-size:10px; font-weight:850; }
.genre-chip small { display:block; margin-top:4px; color:#667082; font-size:8px; }
.genre-chip-empty { color:#667082; font-size:10px; padding:10px; }
.home-shelf { margin-bottom:34px; }

/* O něco filmovější hero bez změny identity Cineory. */
.hero { min-height:440px; border-bottom:1px solid rgba(255,255,255,.06); }
.hero::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; z-index:1; background:linear-gradient(90deg,transparent,rgba(227,19,56,.72) 18%,rgba(227,19,56,.12) 52%,transparent 88%); opacity:.7; }
.hero-content { padding:7px 0 4px; }
.hero h1 { text-shadow:0 12px 34px rgba(0,0,0,.34); }
.hero-buttons .btn.primary { min-width:118px; }
.media-card .poster { background-color:#11151d; }
.media-card:focus-visible { outline:0; }
.media-card:focus-visible .poster { border-color:rgba(255,49,82,.75); box-shadow:0 0 0 3px rgba(227,19,56,.13),0 18px 34px rgba(0,0,0,.34); }

@media (max-width:900px) {
  .home-discovery { grid-template-columns:1fr; gap:14px; }
  .genre-chip-row { margin-right:-10px; }
}

@media (max-width:650px) {
  .home-discovery { margin-left:-6px; margin-right:-6px; padding:16px; border-radius:15px; }
  .hero { min-height:390px; }
}


/* Cineora v1.7.4 — žánry už nikdy nemíchají filmy a seriály */
.nav-link.scope-active { color:#f2f4f8; background:rgba(255,255,255,.035); }
.nav-link.scope-active::before { opacity:.35; }

.genre-type-switch { display:inline-flex; align-items:center; gap:5px; margin:0 0 18px; padding:4px; border:1px solid rgba(255,255,255,.07); border-radius:12px; background:#0d1117; box-shadow:0 10px 28px rgba(0,0,0,.14); }
.genre-type-switch button { min-height:36px; display:flex; align-items:center; gap:7px; padding:0 12px; border:0; border-radius:9px; background:transparent; color:#7e8796; font:inherit; font-size:10px; font-weight:850; cursor:pointer; transition:.16s ease; }
.genre-type-switch button:hover { color:#dfe3e9; background:rgba(255,255,255,.035); }
.genre-type-switch button.active { color:#fff; background:linear-gradient(135deg,#e31338,#bc0d2b); box-shadow:0 7px 18px rgba(227,19,56,.2); }
.genre-type-switch button span { font-size:9px; opacity:.9; }
.genre-type-switch button em { min-width:20px; height:19px; display:grid; place-items:center; padding:0 5px; border-radius:6px; background:rgba(255,255,255,.07); color:inherit; font-size:8px; font-style:normal; }
.genre-type-switch button.active em { background:rgba(0,0,0,.18); }
.genre-chip small { white-space:nowrap; }

@media (max-width:650px) {
  .genre-type-switch { display:flex; width:100%; }
  .genre-type-switch.hidden { display:none; }
  .genre-type-switch button { flex:1; justify-content:center; }
}


/* Cineora v1.7.5 — animovaný favicon + automatický hero carousel */
.hero { transition: background-image .25s ease, opacity .25s ease; }
.hero.hero-swap { animation: cineoraHeroSwap .62s cubic-bezier(.2,.7,.2,1); }
.hero.hero-swap .hero-content { animation: cineoraHeroCopy .58s cubic-bezier(.2,.75,.25,1); }
@keyframes cineoraHeroSwap {
  0% { opacity:.72; transform:scale(1.008); }
  100% { opacity:1; transform:scale(1); }
}
@keyframes cineoraHeroCopy {
  0% { opacity:0; transform:translateY(12px); filter:blur(2px); }
  100% { opacity:1; transform:translateY(0); filter:blur(0); }
}
.hero-carousel-nav {
  position:absolute; z-index:3; right:34px; bottom:57px; display:flex; align-items:center; gap:7px;
  padding:8px 10px; border:1px solid rgba(255,255,255,.09); border-radius:99px;
  background:rgba(5,7,10,.35); backdrop-filter:blur(12px);
}
.hero-carousel-nav:empty { display:none; }
.hero-dot {
  width:18px; height:4px; padding:0; border:0; border-radius:99px; cursor:pointer;
  background:rgba(255,255,255,.24); transition:width .24s ease, background .24s ease, transform .2s ease;
}
.hero-dot:hover { background:rgba(255,255,255,.55); transform:scaleY(1.35); }
.hero-dot.active { width:32px; background:linear-gradient(90deg,#ff375c,var(--accent)); }
@media (prefers-reduced-motion: reduce) {
  .hero.hero-swap, .hero.hero-swap .hero-content { animation:none; }
}
@media (max-width:650px) {
  .hero-carousel-nav { right:18px; bottom:18px; }
  .hero-dot { width:13px; }
  .hero-dot.active { width:24px; }
}
