:root{--bg-color:#f5f5f5;--text-color:#000;--card-bg:#fff;--border-color:#ddd;--hover-bg:#e0e0e0;--navbar-bg:#000;--navbar-text:#fff;--input-bg:#e0e0e0;--input-text:#000;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}[data-theme=dark]{--bg-color:#1a1a1a;--text-color:#fff;--card-bg:#2d2d2d;--border-color:#444;--hover-bg:#3d3d3d;--navbar-bg:#000;--navbar-text:#fff;--input-bg:#333;--input-text:#fff}*{box-sizing:border-box;margin:0;padding:0}html,body{overflow-x:hidden}body{background-color:var(--bg-color);width:100%;min-height:100vh;color:var(--text-color);margin:0;transition:background-color .3s,color .3s;position:relative}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}a{color:#646cff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#535bf2}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.main-content{box-sizing:border-box;background-color:var(--bg-color);width:100%;color:var(--text-color);flex-direction:column;flex:1;padding:2rem;transition:background-color .3s,color .3s;display:flex}.favorites{box-sizing:border-box;width:100%;padding:2rem}.favorites h2{text-align:center;color:var(--text-color);text-shadow:2px 2px 4px #0000004d;margin-bottom:2rem;font-size:2.5rem;transition:color .3s}.favorites-empty{text-align:center;background-color:var(--hover-bg);border:1px solid var(--border-color);border-radius:12px;max-width:600px;margin:2rem auto;padding:4rem 2rem;transition:background-color .3s,border-color .3s}.favorites-empty h2{color:#e50914;margin-bottom:1rem;font-size:2rem}.favorites-empty p{color:var(--text-color);opacity:.7;font-size:1.2rem;line-height:1.6;transition:color .3s}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.movies-grid>*{animation:.3s ease-out forwards fadeIn}.movie-card{background-color:var(--card-bg);color:var(--text-color);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;height:100%;transition:transform .2s,background-color .3s;display:flex;position:relative;overflow:hidden}.movie-card:hover{background-color:var(--hover-bg);transform:translateY(-5px)}.movie-poster{aspect-ratio:2/3;width:100%;position:relative}.movie-poster img{object-fit:cover;width:100%;height:100%}.movie-overlay{opacity:0;background:linear-gradient(#0000001a,#000c);flex-direction:column;justify-content:flex-end;padding:1rem;transition:opacity .2s;display:flex;position:absolute;inset:0}.movie-card:hover .movie-overlay{opacity:1}.favorite-btn{color:#fff;background-color:#00000080;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:.5rem;font-size:1.5rem;transition:background-color .2s;display:flex;position:absolute;top:1rem;right:1rem}.favorite-btn:hover{background-color:#000c}.favorite-btn.active{color:#ff4757}.rating-select{color:#fff;cursor:pointer;background-color:#000000b3;border:none;border-radius:4px;margin-top:.5rem;padding:.5rem}.movie-info{flex-direction:column;flex:1;gap:.5rem;padding:1rem;display:flex}.movie-info h3{margin:0;font-size:1rem}.movie-info p{color:#999;font-size:.9rem}.user-rating{color:gold;margin-top:auto;font-size:.9rem}@media (width<=768px){.movie-card{font-size:.9rem}.movie-info{padding:.75rem}.favorite-btn{width:32px;height:32px;font-size:1.2rem}}.movie-rating{align-items:center;gap:8px;margin-top:8px;display:flex}.stars{font-size:14px}.rating-text{color:var(--text-color);opacity:.7;font-size:12px;transition:color .3s}.genre-filter{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;margin-bottom:2rem;padding:2rem;transition:background-color .3s,border-color .3s}.genre-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.genre-header h3{color:var(--text-color);margin:0;font-size:1.3rem;transition:color .3s}.clear-btn{color:#fff;cursor:pointer;background-color:#e50914;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:500;transition:background-color .2s}.clear-btn:hover{background-color:#f40612}.genre-buttons{flex-wrap:wrap;gap:.75rem;display:flex}.genre-btn{background-color:var(--hover-bg);color:var(--text-color);border:2px solid var(--border-color);cursor:pointer;white-space:nowrap;border-radius:20px;padding:.6rem 1.2rem;font-size:.95rem;font-weight:500;transition:all .3s}.genre-btn:hover{background-color:var(--card-bg);border-color:#e50914;transform:translateY(-2px)}.genre-btn.active{color:#fff;background-color:#e50914;border-color:#e50914}.genre-btn.active:hover{background-color:#f40612;border-color:#f40612}.selected-genres{border-top:1px solid var(--border-color);margin-top:1.5rem;padding-top:1rem}.selected-count{color:var(--text-color);opacity:.8;margin:0;font-size:.95rem;transition:color .3s}@media (width<=768px){.genre-filter{margin-bottom:1.5rem;padding:1rem}.genre-header{flex-direction:column;align-items:flex-start;gap:1rem}.genre-buttons{gap:.5rem}.genre-btn{padding:.5rem 1rem;font-size:.85rem}}.category-tabs{background-color:var(--bg-color);padding:1.5rem 0;transition:background-color .3s}.tabs-container{flex-wrap:wrap;justify-content:center;gap:1rem;max-width:1200px;margin:0 auto;padding:0 1rem;display:flex}.tab-btn{background-color:var(--card-bg);color:var(--text-color);border:2px solid var(--border-color);cursor:pointer;white-space:nowrap;border-radius:25px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s}.tab-btn:hover{background-color:var(--hover-bg);border-color:#e50914;transform:translateY(-2px)}.tab-btn.active{color:#fff;background-color:#e50914;border-color:#e50914;box-shadow:0 4px 12px #e509144d}.tab-btn.active:hover{background-color:#f40612;border-color:#f40612;box-shadow:0 6px 16px #e5091466}@media (width<=768px){.category-tabs{padding:1rem 0}.tabs-container{gap:.75rem}.tab-btn{padding:.6rem 1.2rem;font-size:.9rem}}@media (width<=480px){.tabs-container{gap:.5rem}.tab-btn{padding:.5rem 1rem;font-size:.8rem}}.home{box-sizing:border-box;width:100%;padding:2rem 0}.search-form{box-sizing:border-box;gap:1rem;max-width:600px;margin:0 auto 2rem;padding:0 1rem;display:flex}.search-input{border:1px solid var(--border-color);background-color:var(--input-bg);color:var(--input-text);border-radius:4px;flex:1;padding:.75rem 1rem;font-size:1rem;transition:background-color .3s,color .3s,border-color .3s}.search-input:focus{box-shadow:0 0 0 2px var(--hover-bg);outline:none}.search-button{color:#fff;white-space:nowrap;cursor:pointer;background-color:#e50914;border:none;border-radius:4px;padding:.75rem 1.5rem;font-weight:500;transition:background-color .2s}.search-button:hover{background-color:#f40612}@media (width<=639px){.home{padding:1rem 0}.search-form{margin-bottom:1rem}}.movies-grid{box-sizing:border-box;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;width:100%;padding:1rem;display:grid}.navbar{background-color:var(--navbar-bg);color:var(--navbar-text);justify-content:space-between;align-items:center;padding:1rem 2rem;transition:background-color .3s;display:flex;box-shadow:0 2px 4px #0000001a}.navbar-brand{font-size:1.5rem;font-weight:700}.navbar-brand a{color:var(--navbar-text);text-decoration:none}.navbar-links{align-items:center;gap:2rem;display:flex}.nav-link{color:var(--navbar-text);border-radius:4px;padding:.5rem 1rem;font-size:1rem;text-decoration:none;transition:background-color .2s}.nav-link:hover{background-color:#ffffff1a}.theme-toggle{color:var(--navbar-text);cursor:pointer;background-color:#ffffff1a;border:1px solid #fff3;border-radius:4px;padding:.5rem 1rem;font-size:.9rem;transition:all .3s}.theme-toggle:hover{background-color:#fff3;border-color:#ffffff4d}.theme-toggle:active{transform:scale(.95)}@media (width<=768px){.navbar{padding:1rem}.navbar-brand{font-size:1.2rem}.navbar-links{gap:1rem}.nav-link{padding:.5rem}.theme-toggle{padding:.4rem .8rem;font-size:.8rem}}
