:root {
  --bg: #0a0c14;
  --panel: #121622;
  --panel-2: #181d2c;
  --line: #272d3d;
  --text: #f4f5f8;
  --muted: #979eae;
  --red: #ff4d61;
  --red-dark: #dc334b;
  --green: #35d499;
  --blue: #4a8dff;
  --violet: #8e65ff;
  --pink: #ed6fb5;
  --amber: #ffb14a;
  --shadow: 0 22px 60px rgba(0,0,0,.32);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: radial-gradient(circle at 75% -10%, rgba(142,101,255,.12), transparent 34%), var(--bg); color: var(--text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; min-height: 100vh; }
button, input, select { font: inherit; }
textarea { font: inherit; }
button { color: inherit; }
.hidden { display: none !important; }
.topbar { height: 74px; padding: 0 max(26px, calc((100vw - 1380px)/2)); border-bottom: 1px solid rgba(255,255,255,.07); display: flex; align-items: center; gap: 34px; position: sticky; top: 0; z-index: 50; background: rgba(10,12,20,.9); backdrop-filter: blur(18px); }
.brand { display: flex; align-items: center; gap: 10px; color: var(--text); text-decoration: none; min-width: 210px; }
.brand-symbol { display:block; flex:none; width:42px; height:44px; position:relative; overflow:hidden; }
.brand-symbol img { display:block; position:absolute; width:68px; height:68px; max-width:none; top:-8px; left:-13px; object-fit:contain; }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; font-family: Georgia, serif; font-weight: 900; font-size: 23px; color: #fff; background: linear-gradient(145deg, var(--red), #b72845); box-shadow: 0 8px 22px rgba(255,77,97,.28); }
.brand strong, .brand small { display: block; }
.brand strong { font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: 17px; letter-spacing: .7px; font-weight: 850; }
.brand small { color: var(--muted); font-size: 11px; margin-top: 1px; letter-spacing: .2px; }
.main-nav { display: flex; gap: 25px; height: 100%; align-items: center; flex: 1; }
.nav-item { height: 100%; background: none; border: 0; color: #aeb4c2; padding: 0 1px; cursor: pointer; position: relative; font-size: 14px; font-weight: 650; }
.nav-item:hover, .nav-item.active { color: #fff; }
.nav-item.active::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--red); border-radius: 2px 2px 0 0; }
.nav-count { background: rgba(255,77,97,.16); color: #ff7181; padding: 2px 6px; border-radius: 99px; font-size: 10px; margin-left: 3px; }
.section-nav { position: sticky; top: 74px; z-index: 49; min-height: 42px; padding: 0 max(26px, calc((100vw - 1380px)/2)); display: flex; align-items: center; gap: 6px; overflow-x: auto; border-bottom: 1px solid rgba(255,255,255,.06); background: rgba(14,17,27,.94); backdrop-filter: blur(18px); scrollbar-width: none; }
.section-nav::-webkit-scrollbar { display: none; }
.section-nav-item { flex: none; border: 0; background: transparent; color: #9299a9; padding: 9px 12px; border-radius: 8px; font-size: 12px; font-weight: 720; cursor: pointer; }
.section-nav-item:hover, .section-nav-item.active { color: #fff; background: rgba(255,255,255,.055); }
.header-actions { display: flex; align-items: center; gap: 9px; }
.sync-status { flex: none; color: #aeb4c2; font-size: 12px; padding: 6px 9px; border-radius: 99px; background: rgba(255,255,255,.045); }
.sync-status[data-tone="ok"] { color: #78dfbc; background: rgba(53,212,153,.08); }
.sync-status[data-tone="error"] { color: #ff9aa6; background: rgba(255,77,97,.09); }
.btn, .icon-btn { border: 0; border-radius: 10px; cursor: pointer; font-weight: 750; transition: .18s ease; }
.btn { padding: 10px 16px; font-size: 13px; }
.btn:hover, .icon-btn:hover { transform: translateY(-1px); }
.btn.primary { background: linear-gradient(135deg, var(--red), var(--red-dark)); box-shadow: 0 7px 22px rgba(255,77,97,.2); }
.btn.primary:hover { box-shadow: 0 9px 26px rgba(255,77,97,.34); }
.btn.ghost { background: #171b28; border: 1px solid #2b3141; color: #c6cad3; }
.btn.ghost:hover { background: #202636; }
.btn.danger { background: rgba(255,77,97,.11); color: #ff7382; border: 1px solid rgba(255,77,97,.2); }
.icon-btn { width: 40px; height: 40px; background: #171b28; border: 1px solid #2b3141; color: #c6cad3; font-size: 17px; }
main { max-width: 1380px; margin: 0 auto; padding: 42px 28px 90px; }
.hero-section { padding-top: 4px; }
.welcome-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 30px; }
.eyebrow { margin: 0 0 9px; font-size: 10px; font-weight: 850; letter-spacing: 2.2px; color: var(--red); }
h1 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(38px, 4vw, 60px); letter-spacing: -2.4px; line-height: 1.02; margin: 0; max-width: 760px; font-weight: 650; }
h1 span { color: #aab0bc; }
.hero-copy { color: var(--muted); margin: 15px 0 0; font-size: 14px; }
.privacy-pill { flex: none; margin-top: 8px; background: rgba(53,212,153,.08); border: 1px solid rgba(53,212,153,.2); color: #73dfb7; border-radius: 99px; font-size: 11px; font-weight: 750; padding: 8px 12px; }
.privacy-pill span { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--green); margin-right: 6px; box-shadow: 0 0 8px var(--green); }
.search-routing { display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin:27px 0 -18px; color:var(--muted); font-size:12px; }
.search-routing label { font-weight:700; }
.search-routing select { min-width:170px; max-width:260px; }
.search-wrap { height: 58px; margin: 32px 0 23px; border: 1px solid #303748; background: #111521; box-shadow: 0 14px 40px rgba(0,0,0,.18); display: flex; align-items: center; border-radius: 13px; padding: 0 16px; transition: .2s ease; }
.search-wrap:focus-within { border-color: rgba(255,77,97,.75); box-shadow: 0 0 0 4px rgba(255,77,97,.08); }
.search-icon { font-size: 30px; line-height: 0; color: #c4c8d2; transform: rotate(-15deg); margin-right: 13px; }
.search-wrap input { flex: 1; border: 0; outline: 0; color: #fff; background: transparent; font-size: 15px; min-width: 0; }
.search-wrap input::placeholder { color: #777e8e; }
.search-options-btn { border: 1px solid #353c4d; color: #cbd0da; background: #1c2230; border-radius: 7px; padding: 7px 10px; margin-right: 9px; font-size: 11px; font-weight: 800; cursor: pointer; }
.search-submit { flex: none; padding: 9px 14px; }
.advanced-search-panel { margin: -10px 0 23px; padding: 20px; border: 1px solid #303748; background: linear-gradient(145deg,#141927,#10141f); border-radius: 14px; box-shadow: var(--shadow); }
.advanced-search-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 17px; }
.advanced-search-head h2 { font-size: 22px; }
.advanced-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; }
.advanced-grid .field.wide { grid-column: 1/-1; }
.advanced-grid .form-actions { margin-top: 0; }
kbd { background: #242a38; color: #8e96a7; border: 1px solid #32394a; border-radius: 5px; padding: 4px 7px; font-size: 9px; font-family: inherit; }
.online-results { margin: -13px 0 25px; border: 1px solid var(--line); background: #111521; border-radius: 12px; padding: 8px; box-shadow: var(--shadow); }
.online-result { display: flex; align-items: center; gap: 13px; padding: 9px; border-radius: 9px; }
.online-result:hover { background: #1a1f2d; }
.result-thumb { width: 38px; height: 54px; border-radius: 5px; object-fit: cover; background: #292e3d; display: grid; place-items: center; color: #6f7687; }
.result-main { flex: 1; min-width: 0; }
.result-main strong, .result-main small { display: block; }
.result-title-btn { display:block; border:0; background:none; padding:0; text-align:left; color:var(--text); font-weight:780; cursor:pointer; }
.result-title-btn:hover { color:#ff8d9a; text-decoration:underline; }
.result-main small { color: var(--muted); margin-top: 3px; }
.stats-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; }
.stat-card { border: 1px solid var(--line); background: linear-gradient(145deg, #141824, #10131e); border-radius: 12px; min-height: 82px; padding: 15px; display: flex; align-items: center; gap: 13px; text-align: left; cursor: pointer; transition: .2s ease; }
.stat-card:hover { transform: translateY(-2px); border-color: #3a4255; }
.stat-icon { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; font-size: 17px; }
.stat-icon.violet { color: #ae94ff; background: rgba(142,101,255,.12); }
.stat-icon.blue { color: #74a9ff; background: rgba(74,141,255,.12); }
.stat-icon.pink { color: #f596ca; background: rgba(237,111,181,.12); }
.stat-icon.green { color: #72dfb9; background: rgba(53,212,153,.12); }
.stat-icon.amber { color: #ffc373; background: rgba(255,177,74,.12); }
.stat-icon.cyan { color: #67dbe8; background: rgba(65,205,220,.12); }
.stat-icon.red { color: #ff7181; background: rgba(255,77,97,.12); }
.stat-card strong, .stat-card small { display: block; }
.stat-card strong { font-family: Georgia, serif; font-size: 26px; line-height: 1; }
.stat-card small { color: var(--muted); margin-top: 5px; font-size: 10px; }
.content-section, .updates-section { margin-top: 44px; }
.section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 18px; }
.section-copy { color: var(--muted); margin: 7px 0 0; font-size: 12px; }
.section-tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
h2 { font-family: Georgia, serif; font-size: 28px; letter-spacing: -.7px; margin: 0; }
.view-actions { display: flex; flex-wrap:wrap; gap: 8px; }
select, .field input, .field textarea { color: #dfe2e8; background: #161b28; border: 1px solid #2b3242; border-radius: 8px; padding: 9px 11px; outline: 0; font-size: 12px; }
select:focus, .field input:focus, .field textarea:focus { border-color: var(--red); }
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(188px, 1fr)); gap: 18px; }
.collection-pager { display: flex; align-items:center; justify-content: center; gap:16px; padding: 28px 0 4px; color:var(--muted); font-size:12px; }
.collection-pager .btn:disabled { opacity:.45; cursor:default; transform:none; }
.media-card { min-width: 0; }
.poster { position: relative; height: 268px; border-radius: 12px; overflow: hidden; background: linear-gradient(150deg, #20283a, #11141e); border: 1px solid rgba(255,255,255,.06); box-shadow: 0 10px 28px rgba(0,0,0,.22); cursor: pointer; }
.poster.square-poster { height: auto; aspect-ratio: 1; }
.poster::after { content: ""; position: absolute; inset: auto 0 0; height: 42%; background: linear-gradient(transparent, rgba(0,0,0,.68)); pointer-events: none; }
.poster img { width: 100%; height: 100%; object-fit: cover; display: block; }
.poster-fallback { position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; text-align: center; font-family: Georgia, serif; color: rgba(255,255,255,.7); font-size: 21px; background: radial-gradient(circle at 70% 20%, rgba(255,77,97,.34), transparent 38%), linear-gradient(145deg, #252a3c, #111520); }
.badge { position: absolute; z-index: 2; top: 10px; left: 10px; border-radius: 6px; padding: 5px 7px; font-size: 9px; font-weight: 850; letter-spacing: .6px; backdrop-filter: blur(8px); }
.badge.new { background: rgba(255,77,97,.9); }
.badge.done { background: rgba(30,142,101,.9); }
.badge.progress { background: rgba(74,141,255,.9); }
.badge.paused { background: rgba(255,177,74,.9); color: #17120a; }
.badge.abandoned { background: rgba(122,128,143,.88); }
.card-menu { position: absolute; z-index: 3; right: 9px; top: 9px; border: 1px solid rgba(255,255,255,.14); width: 30px; height: 30px; border-radius: 50%; background: rgba(9,11,18,.7); cursor: pointer; }
.card-play { position: absolute; z-index: 3; left: 10px; bottom: 10px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: #111; font-size: 13px; cursor: pointer; }
.progress-track { position: absolute; z-index: 3; left: 55px; right: 13px; bottom: 17px; height: 4px; border-radius: 4px; background: rgba(255,255,255,.24); }
.progress-fill { height: 100%; border-radius: inherit; background: var(--red); }
.media-info { padding: 10px 2px 0; }
.media-title-row { display: flex; align-items: center; gap: 7px; min-width: 0; margin-bottom: 5px; }
.catalog-number { flex: none; display: inline-grid; place-items: center; min-width: 25px; height: 21px; padding: 0 6px; border-radius: 6px; background: rgba(255,77,97,.13); border: 1px solid rgba(255,77,97,.28); color: #ff7a89; font-size: 10px; font-weight: 850; }
.media-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 14px; margin: 0; cursor: pointer; }
.media-meta { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 10px; }
.type-dot { width: 4px; height: 4px; border-radius: 50%; background: #596174; }
.rating { color: #f5c768; }
.updates-section { padding: 26px; border: 1px solid var(--line); border-radius: 16px; background: #10141f; }
.refresh-panels { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin: 20px 0 24px; }
.refresh-panel { min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); }
.refresh-panel h3 { margin: 0 0 16px; font-size: 17px; }
.refresh-action-controls { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.refresh-action-controls label { color: var(--muted); font-size: 12px; }
.refresh-action-controls select { max-width: 100%; min-width: 140px; }
.refresh-panel .refresh-notice { margin: 15px 0; color: var(--muted); font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.refresh-panel progress { display: block; width: 100%; accent-color: var(--red); }
.refresh-panel .btn:disabled { opacity: .5; cursor: default; transform: none; }
.refresh-selection-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.refresh-selection-controls label, .refresh-range-controls label { color: var(--muted); font-size: 12px; }
.refresh-selection-controls select { max-width: 100%; }
.refresh-range-controls { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 12px; }
.refresh-range-controls label { display: grid; gap: 7px; flex: 1; min-width: 100px; }
.refresh-range-controls .range-database { flex-basis: 100%; }
.refresh-range-controls input, .refresh-range-controls select { width: 100%; min-width: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; background: #171c28; color: var(--text); }
.refresh-selection-summary { margin: 0 0 14px; color: var(--muted); font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.refresh-partial-details { margin: 12px 0; color: #f5c768; font-size: 12px; line-height: 1.6; white-space: pre-line; overflow-wrap: anywhere; }
@media (max-width: 900px) { .refresh-panels { grid-template-columns: 1fr; } }
.updates-list { display: grid; gap: 10px; }
.novelty-sort-controls { display: flex; flex-wrap: wrap; align-items: end; gap: 14px; }
.novelty-sort-controls label { display: grid; gap: 7px; color: var(--muted); font-size: 12px; max-width: 100%; }
.novelty-sort-controls select { max-width: 100%; }
.novelty-sort-hint { margin: 12px 0 20px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.tv-refresh-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 16px; }
.tv-refresh-controls label, .tv-refresh-progress small { color: var(--muted); font-size: 11px; }
.tv-refresh-controls select { max-width: 100%; }
.tv-refresh-progress { margin-bottom: 18px; padding: 12px; border: 1px solid var(--line); border-radius: 9px; }
.tv-refresh-progress p { margin: 0 0 8px; font-size: 12px; overflow-wrap: anywhere; }
.tv-refresh-progress progress { width: 100%; accent-color: var(--amber); }
#tvRefreshNotice { color: #ffd18a; font-size: 12px; overflow-wrap: anywhere; }
.update-row { background: #161b28; border: 1px solid #262d3d; border-left: 3px solid var(--red); padding: 14px 16px; border-radius: 9px; display: flex; align-items: center; gap: 13px; }
.update-date { width: 82px; flex: 0 0 82px; text-align: center; color: var(--red); font-weight: 850; font-size: 11px; line-height: 1.4; }
.update-date > span { display: block; margin-bottom: 4px; color: var(--muted); font-size: 9px; font-weight: 500; }
.update-main .update-dates { margin-top: 6px; font-size: 11px; line-height: 1.5; }
.update-main .update-dates a { color: #9fbbff; text-decoration: underline; text-underline-offset: 2px; }
.update-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; max-width: 360px; }
@media (max-width: 600px) { .novelty-sort-controls label { width: 100%; } .update-date { width: 61px; flex-basis: 61px; } }
.update-main { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.update-main strong { display: block; font-size: 13px; }
.update-main small { display: block; color: var(--muted); margin-top: 3px; font-size: 11px; }
@media (max-width: 600px) {
  .update-row { display: grid; grid-template-columns: 61px minmax(0,1fr); gap: 10px; }
  .update-actions { grid-column: 2; display: flex; flex-wrap: wrap; gap: 8px; }
}
.empty-state { text-align: center; border: 1px dashed #32394b; border-radius: 14px; padding: 56px 20px; color: var(--muted); }
.empty-state h3 { color: #fff; margin: 10px 0 4px; }
.empty-symbol { margin: auto; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,77,97,.1); color: var(--red); font-size: 25px; }
.empty-state .btn { margin-top: 13px; }
.modal { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(2,4,9,.78); backdrop-filter: blur(7px); }
.modal-card { position: relative; width: min(720px, 100%); max-height: min(760px, 92vh); overflow: auto; padding: 27px; border: 1px solid #303748; border-radius: 16px; background: #111521; box-shadow: var(--shadow); }
.modal-close { position: absolute; right: 17px; top: 14px; border: 0; background: transparent; color: #8991a1; font-size: 26px; cursor: pointer; }
.modal h2 { margin-bottom: 6px; }
.modal-intro { color: var(--muted); margin: 0 0 22px; font-size: 13px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.field { display: grid; gap: 6px; }
.field.wide { grid-column: 1 / -1; }
.field label { font-size: 11px; font-weight: 750; color: #c1c6d1; }
.field-hint { color: var(--muted); font-size: 11px; line-height: 1.4; }
.field input, .field textarea, .field select { width: 100%; }
.field textarea { min-height: 76px; resize: vertical; }
.advanced-grid .field input[type="search"] { margin-bottom:3px; }
.personal-film-form { margin:18px 0; padding:15px; border:1px solid rgba(142,101,255,.25); background:rgba(142,101,255,.06); border-radius:12px; }
.personal-film-form .btn { white-space:nowrap; }
.watch-availability { display:grid; gap:8px; margin:15px 0; }
.watch-availability div { display:grid; gap:4px; }
.watch-availability a { color:#bda8ff; text-decoration:underline; }
.watch-availability small { color:var(--muted); }
.form-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 22px; }
.conflict-actions { display: grid; gap: 10px; }
.inline-create { display: flex; gap: 9px; margin-bottom: 18px; }
.inline-create input { flex: 1; min-width: 0; color: #fff; background: #161b28; border: 1px solid #2b3242; border-radius: 9px; padding: 10px 12px; }
.database-list { display: grid; gap: 9px; }
.database-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #171c29; }
.database-row strong, .database-row small { display: block; }
.database-row small { margin-top: 4px; color: var(--muted); font-size: 11px; }
.database-row-actions { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.database-row-actions .btn { padding: 8px 10px; }
.numbering-summary { display: grid; gap: 8px; padding: 15px; border: 1px solid var(--line); border-radius: 10px; background: #171c29; }
.numbering-summary span { color: var(--muted); line-height: 1.6; overflow-wrap: anywhere; }
.number-preview { display: grid; gap: 5px; max-height: 430px; overflow: auto; padding-right: 5px; }
.number-preview>div { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 9px 11px; border-radius: 8px; background: #181d2a; }
.number-preview span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.number-preview strong { flex: none; color: #ff8a97; }
.tracklist { margin-top: 16px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.tracklist h3 { margin: 0; padding: 13px 14px; font-family: Georgia,serif; background: #181d2a; }
.track-row { display: grid; grid-template-columns: 58px 1fr auto; gap: 10px; align-items: center; min-height: 39px; padding: 8px 13px; border-top: 1px solid rgba(255,255,255,.055); }
.track-row span, .track-row small { color: var(--muted); font-size: 12px; }
.track-row strong { font-size: 13px; }
.tonight-result { display: grid; grid-template-columns: 150px 1fr; gap: 22px; align-items: start; }
.tonight-result img, .tonight-poster-fallback { width: 150px; aspect-ratio: 2/3; object-fit: cover; border-radius: 12px; background: #242a38; }
.tonight-poster-fallback { display: grid; place-items: center; color: var(--muted); font-size: 36px; }
.tonight-result h2 { font-size: 32px; }
.tonight-result p { color: var(--muted); line-height: 1.6; }
.tabs { display: flex; gap: 8px; margin: 17px 0; }
.tab-btn { flex: 1; border: 1px solid #2b3242; background: #171c29; border-radius: 8px; padding: 10px; cursor: pointer; font-weight: 750; font-size: 12px; }
.tab-btn.active { color: #fff; background: rgba(255,77,97,.13); border-color: rgba(255,77,97,.5); }
.drop-zone { display: grid; place-items: center; text-align: center; border: 1px dashed #3a4255; border-radius: 12px; padding: 32px; color: var(--muted); cursor: pointer; }
.drop-zone:hover { border-color: var(--red); background: rgba(255,77,97,.03); }
.drop-zone strong { color: #fff; display: block; margin-bottom: 5px; }
.help-box { border-radius: 9px; padding: 11px 13px; background: rgba(74,141,255,.08); border: 1px solid rgba(74,141,255,.18); color: #a7c6ff; font-size: 11px; margin-top: 14px; line-height: 1.5; }
.episode-summary { display: flex; gap: 10px; align-items: center; padding-right: 34px; }
.episode-summary .mini-poster { width: 65px; height: 92px; border-radius: 8px; object-fit: cover; background: #252b3a; }
.episode-summary p { color: var(--muted); margin: 6px 0 0; font-size: 12px; }
.movie-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 16px 0; }
.movie-facts div { padding: 11px; background: #181d2a; border: 1px solid #282f3e; border-radius: 9px; }
.movie-facts small, .movie-facts strong { display: block; }
.movie-facts small { color: var(--muted); font-size: 8px; letter-spacing: 1px; margin-bottom: 5px; }
.movie-facts strong { font-size: 11px; }
.season { margin-top: 12px; border: 1px solid #282f3e; border-radius: 10px; overflow: hidden; }
.season-head { display: flex; gap: 10px; align-items: center; width: 100%; border: 0; background: #181d2a; padding: 12px 14px; cursor: pointer; text-align: left; }
.season-head strong { flex: 1; }
.season-head small { color: var(--muted); }
.season-head[data-season-watched="true"] { background: #16432e; color: #d5ffe6; }
.season-head[data-season-watched="true"] small { color: #bff4d8; }
.season-actions .season-watch-button[data-season-watched="true"] { background: #65ce98; border-color: #65ce98; color: #10291b; }
.season-actions { display: flex; gap: 7px; padding: 7px 0 10px; }
.episode-list { padding: 6px 12px 12px; }
.episode-row { display: flex; align-items: center; gap: 10px; min-height: 36px; border-bottom: 1px solid rgba(255,255,255,.05); font-size: 12px; }
.episode-row:last-child { border: 0; }
.episode-row input { accent-color: var(--red); }
.episode-no { color: var(--muted); width: 31px; }
.episode-name { flex: 1; }
.episode-date { color: var(--muted); font-size: 10px; }
.toast { position: fixed; z-index: 200; left: 50%; bottom: 24px; transform: translate(-50%, 20px); background: #f1f2f5; color: #141722; padding: 11px 16px; border-radius: 9px; box-shadow: var(--shadow); font-size: 12px; font-weight: 750; opacity: 0; pointer-events: none; transition: .25s ease; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.archive-save-error { position:fixed; right:18px; bottom:18px; z-index:4000; display:flex; align-items:center; gap:16px; width:min(620px,calc(100vw - 36px)); padding:16px; background:#351c25; color:#fff; border:1px solid #f38a9c; border-radius:12px; box-shadow:var(--shadow); }
.archive-save-error[hidden] { display:none; }
.archive-save-error p { margin:0; overflow-wrap:anywhere; line-height:1.5; font-size:13px; }
.archive-save-error .btn { flex-shrink:0; color:#fff; border:1px solid #f38a9c; }
.import-progress { height: 5px; border-radius: 5px; overflow: hidden; background: #292f3e; margin-top: 13px; }
.import-progress span { display: block; height: 100%; background: var(--green); transition: width .2s; }
.feature-section { animation: fade-in .2s ease both; }
.preferences-panel { margin-top: 22px; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: linear-gradient(145deg,#151a27,#10141e); }
.discovery-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.discovery-card { display: grid; grid-template-columns: 92px 1fr; gap: 14px; padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: #121722; }
.discovery-card>img, .discovery-fallback { width: 92px; aspect-ratio: 2/3; object-fit: cover; border-radius: 8px; background: #252b3a; }
.discovery-fallback { display: grid; place-items: center; color: var(--muted); font-family: Georgia,serif; font-size: 30px; }
.discovery-card h3 { margin: 8px 0 5px; font-family: Georgia,serif; font-size: 20px; }
.discovery-card p { margin: 0 0 5px; color: #c4c9d3; font-size: 13px; }
.discovery-card small { display: block; color: var(--muted); line-height: 1.4; }
.discovery-card .btn { margin-top: 12px; }
.feature-hero { min-height: 250px; display: flex; justify-content: space-between; align-items: flex-end; gap: 28px; padding: 38px; border: 1px solid var(--line); border-radius: 20px; background: radial-gradient(circle at 82% 12%, rgba(255,77,97,.2), transparent 36%), linear-gradient(145deg,#171c2b,#0f131e); overflow: hidden; }
.feature-hero.compact { min-height: 190px; align-items: center; }
.feature-hero h1 { font-size: clamp(36px,4vw,55px); }
.feature-hero p:not(.eyebrow) { max-width: 680px; margin: 14px 0 0; color: #a8afbe; line-height: 1.6; }
.auteur-hero { background: radial-gradient(circle at 80% 18%, rgba(220,51,75,.28), transparent 36%), linear-gradient(135deg,#19131a,#0d111b); }
.shop-hero { background: radial-gradient(circle at 82% 18%, rgba(255,177,74,.18), transparent 36%), linear-gradient(135deg,#1b1712,#0d111b); }
.shop-logo-panel { display:inline-grid; place-items:center; margin-top:22px; border-radius:14px; background:#eef0fc; padding:8px 17px; }
.shop-logo-panel img { width:210px; height:210px; object-fit:contain; }
.curation-grid, .product-grid, .guide-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 24px; }
.curation-card, .product-card, .guide-card, .profile-card, .admin-panel { border: 1px solid var(--line); background: linear-gradient(145deg,#151a27,#10141e); border-radius: 15px; padding: 22px; }
.curation-card h3, .product-card h3, .guide-card h3 { font-family: Georgia,serif; font-size: 21px; margin: 8px 0; }
.curation-card p, .product-card p, .guide-card p { color: var(--muted); line-height: 1.6; font-size: 13px; min-height: 62px; }
.curation-kicker, .product-card>span { color: var(--red); font-size: 9px; font-weight: 850; letter-spacing: 1.6px; }
.curation-card .btn { margin-top: 8px; }
.feature-subhead { margin-top: 40px; }
.community-layout { display: grid; grid-template-columns: 290px minmax(0,1fr); gap: 20px; margin-top: 22px; align-items: start; }
.profile-card { position: sticky; top: 135px; }
.profile-card h3 { font-family: Georgia,serif; margin: 3px 0 5px; font-size: 23px; }
.profile-card p { color: var(--muted); font-size: 12px; line-height: 1.55; }
.profile-card .btn { width: 100%; margin-top: 12px; }
.privacy-note { margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); }
.privacy-note strong, .privacy-note span { display: block; }
.privacy-note strong { color: #70ddb6; font-size: 11px; margin-bottom: 5px; }
.privacy-note span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.community-feed { display: grid; gap: 13px; }
.community-post { border: 1px solid var(--line); background: #121722; border-radius: 15px; padding: 20px; }
.post-head { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 11px; }
.post-author strong, .post-author small { display: block; }
.post-author small { color: var(--muted); margin-top: 3px; font-size: 10px; }
.post-kind { align-self: start; border: 1px solid rgba(255,77,97,.25); color: #ff7d8b; background: rgba(255,77,97,.08); padding: 5px 8px; border-radius: 99px; font-size: 9px; font-weight: 850; letter-spacing: .5px; }
.community-post h3 { font-family: Georgia,serif; font-size: 21px; margin: 0 0 8px; }
.community-media-poster { float: left; width: 92px; max-height: 138px; object-fit: cover; margin: 0 15px 10px 0; border-radius: 8px; }
.community-post p { color: #c2c7d1; line-height: 1.65; font-size: 13px; white-space: pre-wrap; }
.community-post .post-overview { color: var(--muted); font-style: italic; }
.community-post::after { content: ""; display: block; clear: both; }
.post-media { color: #f2c363; font-size: 11px; font-weight: 750; }
.post-actions { display: flex; gap: 8px; align-items: center; margin-top: 13px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.06); }
.comment-list { display: grid; gap: 6px; margin-top: 10px; }
.comment { background: #181e2b; border-radius: 8px; padding: 9px 11px; font-size: 11px; color: #c6cbd5; }
.comment strong { color: #fff; }
.comment-form { display: flex; gap: 7px; margin-top: 9px; }
.comment-form input { flex: 1; min-width: 0; color: #fff; background: #171c28; border: 1px solid #2d3444; border-radius: 8px; padding: 9px 10px; }
.online-results-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.affiliate-chip { flex: none; color: #ffc36e; border: 1px solid rgba(255,177,74,.28); background: rgba(255,177,74,.08); border-radius: 99px; padding: 8px 12px; font-size: 9px; font-weight: 850; letter-spacing: 1px; }
.affiliate-disclosure { margin-top: 18px; border: 1px solid rgba(255,177,74,.22); background: rgba(255,177,74,.07); color: #e7c994; border-radius: 11px; padding: 12px 15px; font-size: 11px; }
.product-card .btn { display: inline-block; text-decoration: none; margin-top: 8px; }
.product-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.admin-panel { margin-top: 24px; }
.inline-status { min-height: 38px; display: flex; align-items: center; padding: 9px 11px; border-radius: 8px; background: #171c28; color: var(--muted); font-size: 11px; }
.guide-card>span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; background: rgba(255,77,97,.1); color: #ff7a89; font-size: 11px; font-weight: 850; }
.role-table { margin-top: 22px; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.role-table div { display: grid; grid-template-columns: 160px 1fr; gap: 20px; padding: 15px 18px; background: #121722; border-bottom: 1px solid var(--line); }
.role-table div:last-child { border-bottom: 0; }
.role-table span { color: var(--muted); font-size: 12px; }
@keyframes fade-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (max-width: 1180px) {
  .stats-grid { grid-template-columns: repeat(4,1fr); }
  .advanced-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .main-nav { gap: 14px; }
}
@media (max-width: 900px) {
  .topbar { height: auto; padding: 10px 16px 0; gap: 10px; flex-wrap: wrap; }
  .brand { min-width: 0; }
  .brand small { display: none; }
  .sync-status { display: none; }
  .header-actions { margin-left: auto; }
  .main-nav { order: 3; flex-basis: 100%; height: 40px; overflow-x: auto; gap: 18px; scrollbar-width: none; }
  .main-nav::-webkit-scrollbar { display:none; }
  .nav-item { flex:none; }
  .section-nav { position: static; padding: 5px 12px; }
  main { padding: 30px 18px 70px; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .stat-card:first-child { grid-column: span 2; }
  .advanced-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .curation-grid, .product-grid, .guide-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .community-layout { grid-template-columns: 1fr; }
  .profile-card { position: static; }
  .media-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
  .discovery-grid { grid-template-columns: 1fr; }
  .poster { height: 226px; }
}
@media (max-width: 580px) {
  .header-actions .ghost { display: none; }
  .welcome-row { display: block; }
  .privacy-pill { display: inline-block; margin-top: 18px; }
  h1 { letter-spacing: -1.5px; }
  .section-head { align-items: flex-start; flex-direction: column; }
  .section-tools { width: 100%; justify-content: stretch; }
  .section-tools>.btn { width: 100%; }
  .view-actions { width: 100%; }
  .view-actions select { flex: 1; min-width: 110px; }
  .search-routing select { min-width:135px; flex:1; }
  .form-grid { grid-template-columns: 1fr; }
  .movie-facts { grid-template-columns: repeat(2, 1fr); }
  .field.wide { grid-column: auto; }
  .updates-section { padding: 18px; }
  .search-wrap kbd { display:none; }
  .search-submit { padding: 9px 11px; font-size: 11px; }
  .advanced-grid, .curation-grid, .product-grid, .guide-grid { grid-template-columns: 1fr; }
  .feature-hero { min-height: 0; padding: 24px; align-items: flex-start; flex-direction: column; }
  .feature-hero .btn, .affiliate-chip { width: 100%; text-align:center; }
  .role-table div { grid-template-columns: 1fr; gap: 5px; }
  .inline-create, .database-row, .tonight-result { grid-template-columns: 1fr; display: grid; }
  .database-row-actions { justify-content: stretch; }
  .database-row-actions .btn { flex: 1; }
  .tonight-result img, .tonight-poster-fallback { width: 120px; }
  .discovery-card { grid-template-columns: 72px 1fr; }
  .discovery-card>img, .discovery-fallback { width: 72px; }
}
\n/* OMNITHECA recovery 30-09-2026: cast interattivo */
.cast-links{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.7rem}.cast-person{appearance:none;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:inherit;border-radius:12px;padding:.55rem .7rem;text-align:left;cursor:pointer}.cast-person:hover{background:rgba(255,255,255,.1)}.cast-person span{display:block;font-weight:700}.cast-person small{display:block;opacity:.72;margin-top:.15rem}
\n.number-gap-card{opacity:.78}.number-gap-poster{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;border:1px dashed rgba(255,255,255,.28);background:rgba(255,255,255,.025);min-height:260px}.number-gap-number{font-size:2.2rem;font-weight:800}.number-gap-label{font-size:.78rem;font-weight:800;letter-spacing:.12em}.number-gap-poster small{opacity:.65}\n

/* Recupero 30-09: profili attori */
.cast-person{display:inline-grid;grid-template-columns:34px auto;align-items:center;gap:8px}
.cast-person small{grid-column:2}
.cast-photo{width:34px;height:34px;border-radius:50%;object-fit:cover}
.cast-photo-fallback{display:grid;place-items:center;background:rgba(255,255,255,.08)}
.actor-profile{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:20px;align-items:start;margin-bottom:18px}
.actor-profile-photo{width:100%;border-radius:14px;display:block}
@media(max-width:640px){.actor-profile{grid-template-columns:1fr}.actor-profile-photo{max-width:180px}}

/* Recupero progressivo 6 — Cineforum */
.cineforum-card{display:block}.cineforum-discussion{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.cineforum-comment-form{display:flex;gap:8px;margin-top:10px}.cineforum-comment-form input{flex:1;min-width:0;color:#fff;background:#171c28;border:1px solid #2d3444;border-radius:8px;padding:9px 10px}@media(max-width:580px){.cineforum-comment-form{display:grid;grid-template-columns:1fr}}

/* Recupero 30-09-2026: Vista archivio + navigazione rapida */
.media-grid.view-small { grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); gap: 13px; }
.media-grid.view-small .poster { height: 190px; }
.media-grid.view-small .media-title { font-size: 12px; }
.media-grid.view-small .media-meta { font-size: 9px; }
.media-grid.view-titles { display: flex; flex-direction: column; gap: 5px; }
.media-grid.view-titles .media-card { display: flex; align-items: center; min-height: 38px; padding: 5px 9px; border: 1px solid rgba(255,255,255,.07); border-radius: 8px; background: rgba(255,255,255,.025); }
.media-grid.view-titles .poster { display: none; }
.media-grid.view-titles .media-info { width: 100%; padding: 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.media-grid.view-titles .media-title-row { margin: 0; flex: 1; }
.media-grid.view-titles .media-title { white-space: normal; font-size: 13px; }
.media-grid.view-titles .media-meta { flex: none; }
.page-jump-controls { position: fixed; right: 18px; bottom: 18px; z-index: 20; display: flex; flex-direction: column; gap: 7px; }
.page-jump-controls .btn { min-width: 92px; background: rgba(18,22,33,.92); backdrop-filter: blur(8px); box-shadow: 0 8px 22px rgba(0,0,0,.25); }
@media (max-width:700px) { .page-jump-controls { right: 10px; bottom: 10px; } .page-jump-controls .btn { min-width:auto; padding:8px 9px; font-size:10px; } }

/* Recupero progressivo 8: indicatore visto sempre visibile sulla locandina */
.poster-watched-mark { position:absolute; z-index:3; right:10px; bottom:10px; display:flex; align-items:center; gap:5px; padding:6px 8px; border-radius:999px; background:rgba(30,142,101,.92); color:#fff; font-size:12px; font-weight:900; box-shadow:0 5px 14px rgba(0,0,0,.28); pointer-events:none; }
.poster-watched-mark small { font-size:8px; letter-spacing:.08em; font-weight:900; }

/* Recupero P9 · backup/ripristino completo */
.restore-option{display:flex;gap:12px;align-items:flex-start;margin:16px 0;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.035)}
.restore-option input{margin-top:4px;transform:scale(1.15)}
.restore-option span{display:grid;gap:4px}.restore-option small{opacity:.72;line-height:1.35}

/* OMNITHECA · personal archive states and public entry */
[hidden] { display: none !important; }

.poster-personal-status,
.poster-production-status,
.poster-personal-number {
  position: absolute;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  max-width: calc(100% - 20px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
  backdrop-filter: blur(8px);
}
.poster-personal-number {
  top: 43px;
  left: 10px;
  min-height: 23px;
  padding: 4px 7px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 6px;
  background: rgba(12,15,22,.82);
  color: #f2e8d1;
  font: 750 11px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .03em;
  text-shadow: 0 1px 2px rgba(0,0,0,.5);
}
.poster-personal-status {
  right: 10px;
  bottom: 11px;
  min-height: 25px;
  padding: 5px 8px;
  border: 1px solid rgba(226,232,240,.3);
  border-radius: 6px;
  background: rgba(12,15,22,.84);
  color: #edf0f4;
  font-size: 10px;
  line-height: 1.2;
  font-weight: 750;
  letter-spacing: .025em;
  text-shadow: 0 1px 2px rgba(0,0,0,.55);
}
.poster-personal-status[data-completed="true"] {
  border-color: rgba(130,210,176,.42);
  color: #c0e7d4;
}
.poster-personal-status[data-completed="false"] {
  border-color: rgba(225,205,157,.4);
  color: #ead9b2;
}
.poster-production-status {
  top: 73px;
  right: 10px;
  min-height: 22px;
  padding: 4px 6px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 5px;
  background: rgba(12,15,22,.78);
  color: rgba(245,246,249,.92);
  font-size: 9px;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: .025em;
  text-shadow: 0 1px 2px rgba(0,0,0,.55);
}
.series-poster .poster-production-status {
  top: 12px;
  left: 10px;
  right: auto;
  max-width: calc(100% - 55px);
  background: #10141e;
  color: #ffffff;
  border: 1px solid #ffffff;
  box-shadow: 0 2px 6px rgba(0,0,0,.65);
  font-size: 11px;
  font-weight: 850;
  text-shadow: none;
}
.series-poster .card-play {
  top: auto;
  right: auto;
  bottom: 10px;
  left: 10px;
}
.series-poster .card-play[data-series-state="complete"],
.movie-poster .card-play[data-completed="true"] {
  background: #65ce98;
  color: #10291b;
}
.series-poster .card-play[data-series-state="waiting"] {
  background: #ffad45;
  background-image: none;
  border: 2px solid #ffad45;
  color: #332006;
}
.series-poster .card-play[data-series-state="unseen"],
.movie-poster .card-play[data-completed="false"] {
  background: #ffffff;
  color: #111111;
}
.series-poster .card-play[data-series-state="watching"] {
  background: #2878df;
  color: #ffffff;
}
.series-card .poster-personal-number,
.movie-poster .poster-personal-number {
  top: 29px;
  right: auto;
  left: 10px;
  min-height: 27px;
  padding: 5px 9px;
  border: 1px solid rgba(255,255,255,.94);
  border-radius: 6px;
  background: #ffb14a;
  color: #171a20;
  font-size: 12px;
  font-weight: 850;
  text-shadow: none;
  box-shadow: 0 2px 7px rgba(0,0,0,.45);
}
.series-poster-metadata {
  position: absolute;
  z-index: 4;
  inset: 0;
  pointer-events: none;
}
.series-poster-progress,
.series-poster-rating {
  display: inline-block;
  max-width: 100%;
  padding: 4px 6px;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 5px;
  background: rgba(12,15,22,.88);
  color: #f4f3ee;
  font-size: 10px;
  line-height: 1.2;
  font-weight: 750;
  text-align: left;
  overflow-wrap: normal;
  text-shadow: 0 1px 2px rgba(0,0,0,.55);
}
.series-poster-progress {
  position: absolute;
  left: auto;
  right: 10px;
  bottom: 10px;
  max-width: calc(100% - 64px);
  text-align: right;
}
.series-poster-rating {
  position: absolute;
  left: 10px;
  top: 80px;
  max-width: calc(100% - 20px);
  min-height: 24px;
  background: #141b2b;
  border-color: #ffd47a;
  color: #ffd47a;
  font-size: 12px;
  font-weight: 850;
  white-space: nowrap;
}
.series-title-only-metadata { display: none; }
.media-grid.view-titles .series-title-only-metadata {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}
.media-grid.view-titles .series-title-only-metadata > span:first-child {
  color: var(--muted);
}
.media-grid.view-titles .series-card .media-meta {
  gap: 6px;
}
.series-watch-controls {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.poster-personal-status ~ .progress-track,
.poster-personal-status ~ .progress-fill,
.poster-production-status ~ .progress-track,
.poster-production-status ~ .progress-fill {
  display: none;
}

.followed-actors {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 9px;
  margin-top: 13px;
}
.followed-actors .cast-person {
  min-width: min(220px, 100%);
  min-height: 54px;
  border-color: rgba(255,255,255,.12);
  background: #151a26;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.followed-actors .cast-person:hover {
  border-color: rgba(255,255,255,.27);
  background: #1c2331;
  transform: translateY(-1px);
}
.followed-actors .cast-person:focus-visible {
  outline: 2px solid rgba(255,177,74,.8);
  outline-offset: 2px;
}

.public-welcome {
  width: min(100% - 40px, 780px);
  margin: clamp(38px, 8vh, 90px) auto;
  padding: clamp(26px, 5vw, 52px);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 20px;
  background: radial-gradient(ellipse at 85% 0%, rgba(255,77,97,.12), transparent 42%), linear-gradient(145deg,#171c2a,#10141e);
  box-shadow: var(--shadow);
}
.public-welcome h1 {
  max-width: 650px;
  font-size: clamp(40px, 7vw, 68px);
}
.public-welcome > p:not(.eyebrow) {
  max-width: 590px;
  color: #b3bac8;
  line-height: 1.7;
}
.public-welcome .eyebrow { color: #e998a0; }
.public-welcome .login-form {
  display: grid;
  gap: 13px;
  max-width: 410px;
  margin-top: 27px;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.09);
}
.public-welcome .login-form label {
  color: #c9ced8;
  font-size: 12px;
  font-weight: 700;
}
.public-welcome .login-form input {
  width: 100%;
  min-height: 44px;
  margin-top: 6px;
  padding: 10px 12px;
  border: 1px solid #363e50;
  border-radius: 8px;
  outline: 0;
  background: #111622;
  color: var(--text);
}
.public-welcome .login-form input:focus {
  border-color: rgba(255,177,74,.72);
  box-shadow: 0 0 0 3px rgba(255,177,74,.1);
}
.auth-message {
  min-height: 1.3em;
  color: #e2c78d;
  font-size: 12px;
  line-height: 1.45;
}
.session-actions {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
}

@media (max-width: 580px) {
  .poster-personal-number { top: 32px; }
  .poster-production-status { top: 70px; }
  .poster-personal-status { right: 8px; bottom: 9px; }
  .series-card .poster-personal-number,
  .movie-poster .poster-personal-number { top: 29px; left: 8px; right: auto; }
  .series-poster-progress { left: auto; right: 8px; bottom: 10px; max-width: calc(100% - 62px); }
  .series-poster-rating { left: 8px; top: 80px; max-width: calc(100% - 16px); }
  .media-grid.view-titles .series-card .media-info { align-items: flex-start; flex-direction: column; gap: 3px; }
  .media-grid.view-titles .series-card .media-meta { flex-wrap: wrap; }
  .public-welcome {
    width: min(100% - 28px, 780px);
    margin: 26px auto;
    border-radius: 15px;
  }
}

/* Voti distinti per film e serie: dati TMDb e valutazione personale. */
.poster-votes {
  position: absolute;
  top: 78px;
  left: 10px;
  right: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: flex-start;
}
.poster-vote {
  display: inline-block;
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 5px;
  padding: 5px 7px;
  background: rgba(12,15,22,.91);
  color: #f4f4f4;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 850;
  white-space: nowrap;
  text-shadow: 0 1px 2px rgba(0,0,0,.6);
}
.poster-vote-personal { color: #ffd47a; border-color: #ffd47a; }
.poster-vote-tmdb { color: #8fdbed; border-color: #8fdbed; }
@media (max-width: 900px) {
  .series-card .poster-personal-number,
  .movie-poster .poster-personal-number { top: 29px; }
  .poster-votes { top: 76px; left: 8px; right: 8px; }
}

/* Locandina: numero e voti in colonna, in alto a sinistra. */
.series-card .poster-personal-number,
.movie-poster .poster-personal-number { top: 10px; left: 10px; right: auto; }
.poster-votes { top: 45px; left: 10px; right: auto; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.poster-vote { width: max-content; max-width: 100%; }
.series-poster .poster-production-status { top: 111px; left: 10px; right: auto; max-width: calc(100% - 20px); }
.movie-poster .badge.new { left: auto; right: 45px; top: 10px; }
@media (max-width: 900px) {
  .series-card .poster-personal-number,
  .movie-poster .poster-personal-number { top: 10px; left: 8px; }
  .poster-votes { top: 45px; left: 8px; right: auto; }
  .series-poster .poster-production-status { top: 111px; left: 8px; }
}
#itemForm [role="alert"] { color: #ff9ba7; padding: 10px; border: 1px solid #b84b60; border-radius: 8px; background: rgba(120,30,50,.15); font-size: 12px; }
