*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--bg-panel: #181b24;--bg-card: #1e2230;--border: #2a2f40;--text: #e8eaf0;--text-muted: #9aa0b5;--accent: #e50914;--accent-hover: #f6323d;--gold: #f5c518}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5}.layout{display:flex;min-height:100vh}.sidebar{width:240px;flex-shrink:0;background:var(--bg-panel);border-right:1px solid var(--border);padding:1.25rem .75rem;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.logo{font-size:1.25rem;padding:0 .5rem 1rem}.sidebar nav{display:flex;flex-direction:column;gap:.25rem}.sidebar nav a{color:var(--text-muted);text-decoration:none;padding:.6rem .75rem;border-radius:8px;font-weight:500}.sidebar nav a:hover{background:var(--bg-card);color:var(--text)}.sidebar nav a.active{background:var(--accent);color:#fff}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:.5rem;padding:.5rem;border-top:1px solid var(--border)}.username{font-weight:600}.content{flex:1;padding:1.5rem 2rem;max-width:1200px}.content h2{margin-bottom:.75rem}.mobile-topbar{display:none;position:sticky;top:0;z-index:90;align-items:center;gap:.6rem;background:var(--bg-panel);border-bottom:1px solid var(--border);padding:.6rem .9rem}.mobile-topbar .logo{font-size:1.1rem;padding:0}.burger{background:none;border:none;color:var(--text);font-size:1.5rem;line-height:1;cursor:pointer;padding:.15rem .3rem}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#0000008c}.btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text);padding:.5rem .9rem;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500}.btn:hover{border-color:var(--text-muted)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:transparent}.btn-danger{background:transparent;border-color:#a33;color:#f88}.btn-danger:hover{background:#a33;color:#fff}input,textarea,select{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:.55rem .75rem;border-radius:8px;font-size:.95rem;font-family:inherit;width:100%}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);border-color:transparent}.search-form{display:flex;gap:.5rem;margin:1rem 0}.search-form input{flex:1}.search-form .btn{flex-shrink:0}.filter-row{display:flex;gap:.5rem;margin:.75rem 0}.error{color:#f88;margin:.75rem 0}.info{color:#7c6;margin:.75rem 0}.muted{color:var(--text-muted)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-top:1rem}.card{display:flex;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden}.poster{width:110px;min-height:165px;object-fit:cover;flex-shrink:0}.poster-empty{display:flex;align-items:center;justify-content:center;font-size:2rem;background:var(--bg-panel);color:var(--text-muted)}.card-body{padding:.75rem;display:flex;flex-direction:column;gap:.35rem;min-width:0}.card-title{font-weight:600}.card-meta{display:flex;gap:.6rem;align-items:center;color:var(--text-muted);font-size:.85rem;flex-wrap:wrap}.card-genres{color:var(--text-muted);font-size:.8rem}.card-overview{color:var(--text-muted);font-size:.82rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card .btn{align-self:flex-start}.card-actions{margin-top:auto;display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;padding-top:.35rem}.btn.bookmarked{border-color:var(--gold);color:var(--gold)}.card,.rec-card{position:relative}.bookmark-icon{position:absolute;top:.4rem;right:.4rem;z-index:2;background:#0000008c;border:none;border-radius:8px;padding:.2rem .3rem;font-size:1rem;line-height:1;cursor:pointer;filter:grayscale(1);opacity:.75}.bookmark-icon:hover{filter:none;opacity:1;transform:scale(1.12)}.bookmark-icon.bookmarked{filter:none;opacity:1}.badge{background:var(--bg-panel);border:1px solid var(--border);border-radius:999px;padding:.1rem .5rem;font-size:.75rem}.badge-me{border-color:var(--accent);color:var(--accent-hover)}.watched-tag{color:#7c6;font-weight:600;margin-top:auto}.watched-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.watched-row{display:flex;gap:1rem;align-items:flex-start;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.75rem}.row-poster{width:70px;height:105px;object-fit:cover;border-radius:8px;flex-shrink:0}.row-body{flex:1;display:flex;flex-direction:column;gap:.3rem;min-width:0}.row-actions{display:flex;flex-direction:column;gap:.4rem;flex-shrink:0}@media(max-width:800px){.watched-row{flex-wrap:wrap}.row-actions{flex-direction:row;width:100%}}.rating-row{display:flex;align-items:center;gap:.1rem}.rating-btn{background:none;border:none;cursor:pointer;color:var(--border);font-size:1.15rem;padding:0 .05rem}.rating-btn.active{color:var(--gold)}.rating-btn:hover{transform:scale(1.2)}.rating-value{margin-left:.5rem;color:var(--text-muted);font-size:.85rem}.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem;margin:.75rem 0;display:flex;flex-direction:column;gap:.6rem}.panel h3{margin-bottom:.25rem}.panel label{color:var(--text-muted);font-size:.85rem;font-weight:600}.panel .btn{align-self:flex-start}.family-forms{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.family-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.invite-code{background:var(--bg-panel);border:1px dashed var(--text-muted);border-radius:8px;padding:.25rem .6rem;font-size:.9rem}.member-list{list-style:none;display:flex;flex-direction:column;gap:.35rem}.member-list .badge{margin-left:.5rem}.family-actions{display:flex;gap:.5rem}.badge-select{display:flex;flex-wrap:wrap;gap:.4rem}.name-badge{border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text);padding:.3rem .8rem;font-size:.85rem;cursor:pointer}.name-badge:not(.active):hover{border-color:var(--text-muted)}.name-badge.active{border-color:var(--accent);background:#e509142e;cursor:default}.name-badge.active:before{content:"✓ ";color:var(--accent-hover)}.co-watch-row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.2rem}.co-watch-label{color:var(--text-muted)}.toggle-list{display:flex;flex-direction:column}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem .25rem;cursor:pointer;border-bottom:1px solid var(--border)}.toggle-row:last-child{border-bottom:none}.toggle-disabled{cursor:default;color:var(--text-muted)}.toggle-label{font-size:.95rem}.switch{position:relative;width:46px;height:26px;flex-shrink:0}.switch input{opacity:0;width:0;height:0;position:absolute}.slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border);border-radius:999px;transition:background .2s}.slider:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}.switch input:checked+.slider{background:var(--accent)}.switch input:checked+.slider:before{transform:translate(20px)}.switch input:disabled+.slider{opacity:.55}.switch input:focus-visible+.slider{outline:2px solid var(--accent-hover)}.rec-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.rec-card{display:flex;gap:1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.75rem}.rec-poster{width:90px;height:135px;object-fit:cover;border-radius:8px;flex-shrink:0}.rec-body{display:flex;flex-direction:column;gap:.25rem;min-width:0}.rec-body .btn{align-self:flex-start;margin-top:.25rem}.rec-reason{color:var(--gold);font-size:.9rem;margin:.35rem 0}.chat-entry{gap:.5rem}.chat-question{font-weight:600}.chat-answer{white-space:pre-wrap;color:var(--text)}.person-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-top:1rem}.person-card{display:flex;gap:1rem;align-items:flex-start;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.75rem}.person-card:hover{border-color:var(--text-muted)}.person-photo{width:80px;height:110px;object-fit:cover;border-radius:8px;flex-shrink:0}.person-head{display:flex;align-items:center;gap:1rem;margin:1rem 0 .5rem;flex-wrap:wrap}.link-hint{color:var(--accent-hover);font-size:.85rem}.clickable{cursor:pointer}.card-title.clickable:hover{text-decoration:underline}.modal-wide{width:min(640px,94vw);max-height:88vh;overflow-y:auto}.details-head{display:flex;gap:1rem}.details-poster{width:130px;height:195px;object-fit:cover;border-radius:10px;flex-shrink:0}.details-info{display:flex;flex-direction:column;gap:.45rem;min-width:0}.details-info .btn{align-self:flex-start}.details-tagline{color:var(--text-muted);font-style:italic}.modal h4{margin-top:.25rem}.trailer-frame{aspect-ratio:16 / 9;width:100%;border-radius:10px;overflow:hidden;background:#000}.trailer-frame iframe{width:100%;height:100%;border:0;display:block}.cast-list{display:flex;gap:.6rem;overflow-x:auto;padding-bottom:.4rem}.cast-member{width:84px;flex-shrink:0;text-align:center}.cast-member img,.cast-photo-empty{width:72px;height:96px;object-fit:cover;border-radius:8px;background:var(--bg-panel)}.cast-photo-empty{display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto}.cast-name{font-size:.78rem;font-weight:600;margin-top:.25rem}.cast-character{font-size:.72rem;color:var(--text-muted)}.denied-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1rem}.denied-screen .panel{max-width:460px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:1.25rem;width:min(480px,92vw);display:flex;flex-direction:column;gap:.6rem}.modal label{color:var(--text-muted);font-size:.85rem;font-weight:600}.modal .hint{font-size:.8rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}@media(max-width:800px){.layout{flex-direction:column}.mobile-topbar{display:flex}.sidebar{position:fixed;top:0;left:0;z-index:200;height:100vh;height:100dvh;width:min(280px,82vw);transform:translate(-100%);transition:transform .25s ease;box-shadow:4px 0 24px #00000080}.sidebar.open{transform:translate(0)}.family-forms{grid-template-columns:1fr}.content{padding:1rem}}@media(min-width:801px){.sidebar-backdrop{display:none}}
