:root{--bg:#0d0d12;--bg-elev:#16161e;--bg-elev2:#1e1e29;--border:#2a2a38;--text:#f2f2f7;--text-dim:#9a9aad;--accent:#7c6cfc;--accent-2:#ec4899;--gradient:linear-gradient(135deg, #7c6cfc, #ec4899);--success:#34d399;--danger:#f87171;--radius:16px;--nav-h:calc(60px + env(safe-area-inset-bottom))}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,sans-serif}button{font-family:inherit}a{color:inherit;text-decoration:none}input,select{color:var(--text);background:var(--bg-elev2);border:1px solid var(--border);border-radius:12px;outline:none;width:100%;padding:12px 14px;font-family:inherit;font-size:15px}input:focus,select:focus{border-color:var(--accent)}::placeholder{color:var(--text-dim)}#root,.app-shell{min-height:100dvh}.page{max-width:680px;padding:calc(18px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(var(--nav-h) + 24px) calc(16px + env(safe-area-inset-left));margin:0 auto}.page-wide{max-width:900px}.page-title{justify-content:space-between;align-items:center;gap:12px;margin:6px 0 16px;font-size:26px;font-weight:800;display:flex}.page-title .title-actions{gap:8px;display:flex}.section-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin:22px 0 10px;font-size:15px;font-weight:700}.nav{height:var(--nav-h);padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--border);z-index:50;background:#101016d9;justify-content:space-around;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.nav a{color:var(--text-dim);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:10.5px;font-weight:600;transition:color .15s;display:flex}.nav a.active{color:var(--text)}.nav a.active svg{color:var(--accent)}@media (width>=900px){.nav{border-top:none;border-right:1px solid var(--border);flex-direction:column;justify-content:center;gap:8px;width:88px;height:100dvh;padding-bottom:0;top:0;right:auto}.nav a{flex:0 0 64px}.page{padding-bottom:40px;padding-left:104px}:root{--nav-h:0px}}.btn{border:1px solid var(--border);background:var(--bg-elev2);color:var(--text);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-size:14.5px;font-weight:650;transition:filter .15s,transform 50ms;display:inline-flex}.btn:hover{filter:brightness(1.15)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--gradient);color:#fff;border:none}.btn-danger{color:var(--danger);border-color:#f8717166;border-color:color-mix(in srgb, var(--danger) 40%, transparent)}.btn-ghost{color:var(--text-dim);background:0 0;border-color:#0000}.btn-sm{border-radius:10px;padding:7px 12px;font-size:13px}.btn-icon{border-radius:12px;padding:10px}.btn-block{width:100%}.check-btn{border:2px solid var(--border);width:38px;min-width:38px;height:38px;color:var(--text-dim);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.check-btn:hover{border-color:var(--accent);color:var(--text)}.check-btn.checked{background:var(--success);border-color:var(--success);color:#06281c;animation:.25s check-pop}@keyframes check-pop{0%{transform:scale(.7)}60%{transform:scale(1.12)}to{transform:scale(1)}}.poster{aspect-ratio:2/3;object-fit:cover;background:var(--bg-elev2);border-radius:12px;width:100%;display:block}.poster-empty{text-align:center;color:var(--text-dim);border:1px dashed var(--border);justify-content:center;align-items:center;padding:10px;font-size:13px;font-weight:600;display:flex}.poster-grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:14px 12px;display:grid}.poster-card{flex-direction:column;gap:6px;min-width:0;display:flex}.poster-card .progress{margin-top:-2px}.poster-card-title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:650;overflow:hidden}.poster-card-sub{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;margin-top:-4px;font-size:11.5px;overflow:hidden}.progress{background:var(--bg-elev2);border-radius:2px;height:4px;overflow:hidden}.progress-fill{background:var(--gradient);border-radius:2px;height:100%;transition:width .3s}.feed-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:14px;padding:12px;display:flex}.feed-card .poster{width:72px;min-width:72px}.feed-body{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.feed-show{font-size:15.5px;font-weight:750}.feed-ep{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;overflow:hidden}.feed-ep b{color:var(--accent);font-weight:700}.feed-meta{color:var(--text-dim);align-items:center;gap:10px;font-size:12px;display:flex}.badge{background:var(--bg-elev2);color:var(--text-dim);border-radius:999px;align-items:center;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.badge-accent{background:#7c6cfc38;background:color-mix(in srgb, var(--accent) 22%, transparent);color:#c9c2ff}.badge-new{color:#7ce7c0;background:#34d3992e}.tabs{scrollbar-width:none;gap:6px;margin-bottom:14px;padding-bottom:4px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{border:1px solid var(--border);background:var(--bg-elev);color:var(--text-dim);cursor:pointer;white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:13.5px;font-weight:650}.tab.active{background:var(--gradient);color:#fff;border-color:#0000}.tab .count{opacity:.75;margin-left:5px;font-weight:600}.hero{margin:calc(-18px - env(safe-area-inset-top)) calc(-16px - env(safe-area-inset-right)) 0 calc(-16px - env(safe-area-inset-left));aspect-ratio:16/8.5;max-height:340px;position:relative;overflow:hidden}.hero img{object-fit:cover;width:100%;height:100%}.hero:after{content:"";background:linear-gradient(to bottom, #0d0d1240 0%, #0d0d128c 55%, var(--bg) 100%);position:absolute;inset:0}.hero-back{top:calc(12px + env(safe-area-inset-top));z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:40px;height:40px;color:var(--text);cursor:pointer;background:#0d0d128c;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:12px}.detail-head{z-index:2;align-items:flex-end;gap:16px;margin-top:-64px;display:flex;position:relative}.detail-head .poster{width:108px;min-width:108px;box-shadow:0 8px 28px #0000008c}.detail-title{margin-bottom:6px;font-size:22px;font-weight:800;line-height:1.15}.detail-meta{color:var(--text-dim);flex-wrap:wrap;gap:6px 12px;font-size:13px;display:flex}.detail-actions{flex-wrap:wrap;gap:8px;margin:16px 0 4px;display:flex}.overview{color:#c9c9d6;font-size:14.5px;line-height:1.6}.overview.clamped{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.season{border:1px solid var(--border);background:var(--bg-elev);border-radius:var(--radius);margin-bottom:10px;overflow:hidden}.season-head{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:13px 14px;display:flex}.season-head .grow{flex:1;min-width:0}.season-name{font-size:15px;font-weight:700}.season-sub{color:var(--text-dim);margin-top:2px;font-size:12px}.season-head .chev{color:var(--text-dim);transition:transform .2s}.season-head .chev.open{transform:rotate(180deg)}.ep-row{border-top:1px solid var(--border);align-items:center;gap:12px;padding:10px 14px;display:flex}.ep-num{min-width:34px;color:var(--text-dim);font-size:12.5px;font-weight:700}.ep-body{flex:1;min-width:0}.ep-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.ep-date{color:var(--text-dim);margin-top:1px;font-size:12px}.ep-row.future{opacity:.55}.ep-body.expandable{cursor:pointer}.ep-details{padding:0 14px 14px 60px}.ep-details img{border-radius:10px;width:100%;max-width:340px;margin-bottom:8px;display:block}.ep-details p{color:#c9c9d6;margin:0;font-size:13px;line-height:1.55}.library-toolbar{gap:10px;margin-bottom:4px;display:flex}.library-toolbar .search-bar{flex:1;margin-bottom:12px}.library-toolbar select{width:auto;min-width:140px;height:fit-content}.search-bar{margin-bottom:16px;position:relative}.search-bar svg{color:var(--text-dim);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.search-bar input{padding-left:42px}.cinema-current{justify-content:space-between;align-items:center;gap:10px;padding:4px 2px 2px;display:flex}.cinema-current-name{font-size:15px;font-weight:750}.cinema-movie-clickable{cursor:pointer}.scores-row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.score-badge{background:var(--bg-elev2);color:var(--text-dim);border-radius:8px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.score-badge b{color:var(--text);font-weight:750}.score-imdb{color:#e7c56a;background:#f5c51829}.score-imdb b{color:#f5c518}.score-rt b{color:#fa320a}.section-title-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.cinema-movie{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);gap:12px;margin-bottom:12px;padding:12px;display:flex;overflow:hidden}.cinema-movie .poster{align-self:flex-start;width:76px;min-width:76px}@media (width<=420px){.cinema-movie .poster{width:58px;min-width:58px}}.cinema-movie-body{flex:1;min-width:0}.cinema-movie-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.cinema-movie-head>div{flex:150px;min-width:0}.cinema-movie-head .btn{flex-shrink:0}.cinema-movie .feed-meta{flex-wrap:wrap;row-gap:3px}.cinema-exp{margin-top:10px}.cinema-exp-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:11.5px;font-weight:700;display:block}.cinema-times{flex-wrap:wrap;gap:7px;display:flex}.time-pill{border:1px solid var(--border);background:var(--bg-elev2);color:var(--text);cursor:default;border-radius:9px;padding:5px 10px;font-size:12.5px;font-weight:650;display:inline-block}.time-pill.soldout{opacity:.4;text-decoration:line-through}.upcoming-group{margin-bottom:18px}.upcoming-date-full{color:var(--text-dim);text-transform:none;letter-spacing:0;font-weight:600}.upcoming-date{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:13px;font-weight:750}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.stat-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.stat-value{font-size:22px;font-weight:800}.stat-value.gradient{background:var(--gradient);color:#0000;-webkit-background-clip:text;background-clip:text}.stat-label{color:var(--text-dim);margin-top:4px;font-size:12.5px}.genre-row{align-items:center;gap:10px;margin-bottom:8px;display:flex}.genre-name{white-space:nowrap;text-overflow:ellipsis;width:110px;font-size:13px;font-weight:600;overflow:hidden}.genre-bar{background:var(--bg-elev2);border-radius:4px;flex:1;height:8px;overflow:hidden}.genre-fill{background:var(--gradient);border-radius:4px;height:100%}.genre-count{color:var(--text-dim);text-align:right;min-width:28px;font-size:12px}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;padding:16px}.card h3{margin:0 0 6px;font-size:16px}.card p{color:var(--text-dim);margin:0 0 12px;font-size:13.5px;line-height:1.55}.card .row{align-items:center;gap:10px;display:flex}.field-label{color:var(--text-dim);margin-bottom:6px;font-size:13px;font-weight:650;display:block}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:56px 20px;display:flex}.empty-title{font-size:17px;font-weight:750}.empty-hint{color:var(--text-dim);max-width:320px;font-size:14px;line-height:1.5}.spinner-wrap{flex-direction:column;align-items:center;gap:12px;padding:40px;display:flex}.spinner{border:3px solid var(--bg-elev2);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}.spinner-label{color:var(--text-dim);font-size:13.5px}@keyframes spin{to{transform:rotate(360deg)}}.notice{background:#7c6cfc1f;background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid #7c6cfc59;border-color:color-mix(in srgb, var(--accent) 35%, transparent);border-radius:12px;margin-bottom:14px;padding:12px 14px;font-size:13.5px;line-height:1.5}.notice.error{background:#f871711a;background:color-mix(in srgb, var(--danger) 10%, transparent);border-color:#f8717159;border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.list-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.list-row:last-child{border-bottom:none}.list-row .poster{border-radius:8px;width:46px;min-width:46px}.match-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.match-row .poster{border-radius:8px;width:46px;min-width:46px}.match-info{flex:1;min-width:0}.match-name{font-size:14px;font-weight:650}.match-sub{color:var(--text-dim);margin-top:2px;font-size:12px}.match-row select{max-width:210px;padding:8px 10px;font-size:13px}.match-row.unmatched{opacity:.6}.onboard{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;max-width:440px;min-height:100dvh;margin:0 auto;padding:24px;display:flex}.onboard .logo{background:var(--gradient);border-radius:22px;justify-content:center;align-items:center;width:84px;height:84px;margin-bottom:6px;display:flex}.onboard h1{margin:0;font-size:26px}.onboard p{color:var(--text-dim);margin:0;font-size:14.5px;line-height:1.6}.onboard a{color:var(--accent);font-weight:650}.onboard form{flex-direction:column;gap:10px;width:100%;display:flex}.fade-in{animation:.25s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
