:root{--bg-black:#0a0a0a;--bg-gradient:linear-gradient(180deg, #0a0a0a 0%, #111 100%);--surface-black:#1a1a1a;--surface-elevated:#222c;--surface-glass:#1a1a1a99;--accent-orange:#ff9500;--accent-hover:#ffb347;--accent-glow:#ff950080;--text-main:#fff;--text-muted:#a0a0a0;--text-dim:#666;--error:#f44;--success:#00c853;--warning:#ffab00;--border-subtle:#ffffff14;--border-focus:#ff950099;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 8px 30px #0006;--shadow-lg:0 25px 80px #0009;--shadow-glow:0 0 40px #ff950040;--transition-fast:.15s ease;--transition-smooth:.3s cubic-bezier(.4, 0, .2, 1);--transition-bounce:.4s cubic-bezier(.68, -.55, .265, 1.55);--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-full:999px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg-gradient);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{transition:var(--transition-fast);background:#333;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-orange)}.header{background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);z-index:100;transition:var(--transition-smooth);padding:1rem 2rem;position:sticky;top:0}.header.scrolled{box-shadow:var(--shadow-md);background:#1a1a1af2;padding:.75rem 2rem}.header-container{align-items:center;gap:1rem;max-width:1400px;margin:0 auto;display:flex}.logo{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--accent-orange), #ff6b00);width:44px;height:44px;box-shadow:0 4px 20px var(--accent-glow);transition:var(--transition-bounce);justify-content:center;align-items:center;display:flex}.logo:hover{box-shadow:0 8px 40px var(--accent-glow);transform:scale(1.1)rotate(5deg)}.logo img{object-fit:contain;filter:drop-shadow(0 2px 4px #0000004d);width:28px;height:28px}.name{background:linear-gradient(135deg, var(--accent-orange), #fff);-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:700}.auth-nav{align-items:center;gap:.75rem;margin-left:auto;display:flex}.btn-nav{background:var(--accent-orange);color:#000;border-radius:var(--radius-full);cursor:pointer;transition:var(--transition-smooth);border:none;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 4px 15px #ff95004d}.btn-nav:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 8px 25px #ff950080}.btn-nav:active{transform:translateY(0)}.user-greeting{color:var(--text-muted);margin-right:.5rem;font-size:.95rem}.user-greeting strong{color:var(--accent-orange);font-weight:600}.search-bar{max-width:640px;margin:2.5rem auto 1.5rem;padding:0 1.5rem}.search-form{position:relative}.search-input-wrapper{align-items:center;display:flex;position:relative}#search-input{background:var(--surface-elevated);border:2px solid var(--border-subtle);border-radius:var(--radius-full);width:100%;color:var(--text-main);transition:var(--transition-smooth);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:1rem 1.25rem 1rem 3rem;font-size:1rem}#search-input::placeholder{color:var(--text-dim)}#search-input:focus{border-color:var(--accent-orange);background:var(--surface-black);box-shadow:0 0 0 4px var(--accent-glow), var(--shadow-md);outline:none;transform:translateY(-1px)}.search-icon{color:var(--text-muted);pointer-events:none;transition:var(--transition-fast);position:absolute;left:1.25rem}#search-input:focus+.search-icon,#search-input:not(:placeholder-shown)+.search-icon{color:var(--accent-orange)}.search-reset{color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;border-radius:50%;padding:.25rem;display:none;position:absolute;right:1rem}#search-input:not(:placeholder-shown)~.search-reset{display:block}.search-reset:hover{color:var(--error);background:#ff44441a}.genre-filter{flex-wrap:wrap;justify-content:center;gap:.75rem;margin:1rem 0 2.5rem;padding:0 1.5rem;display:flex}.genre-btn{background:var(--surface-elevated);color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-full);cursor:pointer;transition:var(--transition-smooth);padding:.6rem 1.5rem;font-size:.9rem;font-weight:500;position:relative;overflow:hidden}.genre-btn:before{content:"";background:linear-gradient(135deg, var(--accent-orange), transparent);opacity:0;transition:var(--transition-fast);z-index:-1;position:absolute;inset:0}.genre-btn:hover{color:var(--text-main);border-color:var(--accent-orange);transform:translateY(-2px)}.genre-btn:hover:before{opacity:.1}.genre-btn.active{background:var(--accent-orange);border-color:var(--accent-orange);color:#000;box-shadow:0 4px 20px var(--accent-glow);font-weight:600;transform:translateY(-2px)}.genre-btn.active:before{opacity:.2}.films{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem;max-width:1400px;min-height:400px;margin:0 auto;padding:1rem 1.5rem 3rem;display:grid}.films-loading,.empty-msg{text-align:center;min-height:300px;color:var(--text-muted);flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;animation:.4s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.spinner{border:3px solid var(--border-subtle);border-top-color:var(--accent-orange);border-radius:50%;width:48px;height:48px;margin-bottom:1rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.movie-card{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:var(--transition-smooth);flex-direction:column;animation:.4s backwards cardEnter;display:flex;position:relative;overflow:hidden}.movie-card:first-child{animation-delay:50ms}.movie-card:nth-child(2){animation-delay:.1s}.movie-card:nth-child(3){animation-delay:.15s}.movie-card:nth-child(4){animation-delay:.2s}.movie-card:nth-child(5){animation-delay:.25s}.movie-card:nth-child(6){animation-delay:.3s}@keyframes cardEnter{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.movie-card:hover{border-color:var(--accent-orange);box-shadow:var(--shadow-lg), var(--shadow-glow);z-index:10;transform:translateY(-8px)scale(1.02)}.movie-card:after{content:"";opacity:0;transition:var(--transition-fast);pointer-events:none;z-index:1;background:linear-gradient(#0000 50%,#000c 100%);position:absolute;inset:0}.movie-card:hover:after{opacity:1}.movie-card img{aspect-ratio:2/3;object-fit:cover;width:100%;transition:var(--transition-smooth);background:linear-gradient(135deg,#1a1a1a,#2a2a2a)}.movie-card:hover img{filter:brightness(.9);transform:scale(1.05)}.movie-info{z-index:2;flex-grow:1;padding:1rem;position:relative}.movie-info h3{color:var(--text-main);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:.5rem;font-size:1.1rem;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.movie-info .meta{color:var(--accent-orange);margin-bottom:.25rem;font-size:.85rem;font-weight:500}.movie-info .director{color:var(--text-muted);font-size:.85rem}.movie-card__desc{color:var(--text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:.5rem;font-size:.9rem;line-height:1.5;display:-webkit-box;overflow:hidden}.actions{background:var(--border-subtle);border-top:1px solid var(--border-subtle);z-index:2;grid-template-columns:1fr 1fr;gap:1px;display:grid;position:relative}.edit-btn,.delete-btn{background:var(--surface-black);color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);border:none;justify-content:center;align-items:center;gap:.25rem;padding:.85rem .5rem;font-size:.85rem;font-weight:500;display:flex}.edit-btn:hover:not(:disabled){background:var(--accent-orange);color:#000}.delete-btn:hover:not(:disabled){background:var(--error);color:#fff}.edit-btn:disabled,.delete-btn:disabled{opacity:.3;cursor:not-allowed;filter:grayscale()}.fab{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--accent-orange), #ff6b00);color:#000;cursor:pointer;width:64px;height:64px;box-shadow:0 8px 40px var(--accent-glow);transition:var(--transition-bounce);z-index:99;border:none;justify-content:center;align-items:center;font-size:1.8rem;animation:2s ease-in-out infinite fabPulse;display:flex;position:fixed;bottom:2rem;right:2rem}@keyframes fabPulse{0%,to{box-shadow:0 8px 40px var(--accent-glow)}50%{box-shadow:0 12px 60px #ff950099}}.fab:hover{background:linear-gradient(135deg, var(--accent-hover), var(--accent-orange));animation:none;transform:scale(1.15)rotate(90deg);box-shadow:0 16px 80px #ff9500b3}.fab:active{transform:scale(.95)}.fab[hidden]{animation:none;display:none!important}.movie-form-modal{background:var(--surface-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:90%;max-width:520px;box-shadow:var(--shadow-lg);margin:auto;padding:0;animation:.3s modalSlide}@keyframes modalSlide{0%{opacity:0;transform:translateY(-20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.movie-form-modal::backdrop{-webkit-backdrop-filter:blur(4px);background:#000000b3;animation:.3s backdropFade}@keyframes backdropFade{0%{opacity:0}to{opacity:1}}.modal-header{border-bottom:1px solid var(--border-subtle);background:#22222280;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-header h2{color:var(--accent-orange);font-size:1.35rem;font-weight:700}.modal-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition-fast);background:0 0;border:none;padding:.25rem .5rem;font-size:1.5rem;line-height:1}.modal-close:hover{color:var(--text-main);background:#ffffff1a}.form-grid{gap:1.25rem;padding:1.5rem;display:grid}.form-group label{color:var(--text-muted);margin-bottom:.5rem;font-size:.9rem;font-weight:500;display:block}.form-group label .required{color:var(--error);margin-left:2px}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text-main);transition:var(--transition-smooth);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2a2a2a99;padding:.85rem 1rem;font-size:1rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent-orange);box-shadow:0 0 0 3px var(--accent-glow);background:#2a2a2ae6;outline:none}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-dim)}.form-group textarea{resize:vertical;min-height:80px;font-family:inherit}.form-group.full-width{grid-column:1/-1}.modal-footer{border-top:1px solid var(--border-subtle);background:#2222224d;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem 1.5rem;display:flex}.btn{border-radius:var(--radius-full);cursor:pointer;transition:var(--transition-smooth);border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:linear-gradient(135deg, var(--accent-orange), #ff6b00);color:#000;box-shadow:0 4px 20px #ff95004d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, var(--accent-hover), var(--accent-orange));transform:translateY(-2px);box-shadow:0 8px 30px #ff950080}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{color:var(--text-main);border:1px solid var(--border-subtle);background:0 0}.btn-secondary:hover:not(:disabled){border-color:var(--text-muted);background:#ffffff1a}.btn-sm{padding:.4rem 1rem;font-size:.85rem}.auth-card{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);max-width:420px;box-shadow:var(--shadow-md);margin:4rem auto;padding:2rem;animation:.4s fadeIn}.auth-card h2{text-align:center;color:var(--accent-orange);margin-bottom:1.5rem;font-size:1.75rem;font-weight:700}.auth-card .form-group{margin-bottom:1.25rem}.auth-card input{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text-main);transition:var(--transition-smooth);background:#2a2a2a99;padding:.85rem 1rem;font-size:1rem}.auth-card input:focus{border-color:var(--accent-orange);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.auth-card .links{text-align:center;color:var(--text-muted);margin-top:1.5rem;font-size:.95rem}.auth-card .links a{color:var(--accent-orange);transition:var(--transition-fast);font-weight:500;text-decoration:none}.auth-card .links a:hover{color:var(--accent-hover);text-decoration:underline}.error-msg,.success-msg{border-radius:var(--radius-sm);margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem;animation:.4s shake}.error-msg{color:#f88;background:#ff444426;border:1px solid #ff44444d}.success-msg{color:#8fb;background:#00c85326;border:1px solid #00c8534d}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.footer{text-align:center;color:var(--text-dim);border-top:1px solid var(--border-subtle);background:var(--surface-black);padding:2.5rem 1.5rem;font-size:.9rem}.footer p{opacity:.8}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=768px){.header{padding:.75rem 1rem}.header-container{gap:.5rem}.name{font-size:1.25rem}.search-bar{margin:1.5rem auto 1rem;padding:0 1rem}#search-input{padding:.85rem 1rem .85rem 2.75rem;font-size:.95rem}.genre-filter{gap:.5rem;padding:0 1rem}.genre-btn{padding:.5rem 1.25rem;font-size:.85rem}.films{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;padding:.5rem 1rem 2rem}.movie-info h3{font-size:1rem}.fab{width:56px;height:56px;font-size:1.5rem;bottom:1.5rem;right:1.5rem}.auth-card{margin:2rem 1rem;padding:1.5rem}}@media (width<=480px){.films{grid-template-columns:1fr}.modal-footer{flex-direction:column-reverse}.btn{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-color-scheme:dark){:root{--bg-gradient:linear-gradient(180deg, #050505 0%, #0a0a0a 100%)}}
