:root{--bg: #0a0b0f;--surface: #12141c;--surface-2: #1a1d28;--border: #2a2f3d;--text: #e8eaef;--muted: #8b92a8;--accent: #6c5ce7;--accent-hover: #7f70f0;--accent-glow: rgba(108, 92, 231, .35);--success: #00d2a0;--radius: 12px;--font: "DM Sans", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.5}body{background-image:radial-gradient(ellipse 80% 50% at 50% -20%,var(--accent-glow),transparent),radial-gradient(circle at 100% 100%,rgba(0,210,160,.06),transparent 40%)}#app{max-width:1280px;margin:0 auto;padding:2rem 1.25rem 3rem}.header{text-align:center;margin-bottom:2rem}.header-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin-bottom:.5rem}.header-top .brand{grid-column:2;justify-content:center}.header-actions{grid-column:3;justify-self:end;display:flex;align-items:center;gap:.65rem;flex-shrink:0}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.icon-btn:hover{color:var(--accent);border-color:#5b7cfa73;background:var(--surface-2)}.auth-bar{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.auth-user-label{font-size:.875rem;color:var(--muted)}.auth-user-label strong{color:var(--text)}.auth-user-hint{display:block;margin-top:.15rem;font-size:.75rem;color:var(--accent);font-weight:500}.auth-btn{border-radius:10px;padding:.45rem .85rem;font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;border:1px solid var(--border)}.auth-btn.primary{background:linear-gradient(135deg,var(--accent),#a29bfe);color:#fff;border:none}.auth-btn.ghost{background:transparent;color:var(--text)}.auth-dialog{border:1px solid rgba(108,92,231,.25);border-radius:20px;padding:0;background:transparent;color:var(--text);max-width:440px;width:calc(100% - 2rem);box-shadow:none;overflow:visible}.auth-dialog-shell{position:relative;border-radius:20px;background:linear-gradient(165deg,#1e2238,#12141f 55%,#0d0f18);border:1px solid rgba(162,155,254,.18);box-shadow:0 24px 80px #0000008c,inset 0 1px #ffffff0a;overflow:hidden}.auth-dialog-glow{position:absolute;inset:-40% -20% auto;height:55%;background:radial-gradient(ellipse at 50% 0%,rgba(108,92,231,.35),transparent 70%);pointer-events:none}.auth-close-btn{position:absolute;top:.85rem;right:.85rem;z-index:2;width:2rem;height:2rem;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#00000040;color:var(--muted);font-size:1.25rem;line-height:1;cursor:pointer;transition:color .2s,border-color .2s,background .2s}.auth-close-btn:hover{color:var(--text);border-color:#a29bfe59;background:#6c5ce71f}.auth-dialog-badge{display:inline-flex;align-items:center;gap:.45rem;margin-bottom:.85rem;padding:.35rem .7rem .35rem .45rem;border-radius:999px;background:#6c5ce71f;border:1px solid rgba(162,155,254,.22);font-size:.78rem;font-weight:600;color:#c4bcff;letter-spacing:.02em}.auth-dialog-logo{width:1.5rem;height:1.5rem;display:grid;place-items:center;border-radius:8px;background:linear-gradient(135deg,var(--accent),#a29bfe);color:#fff;font-size:.65rem}.auth-field-label{font-size:.78rem;font-weight:500;color:#ffffff8c;letter-spacing:.02em}.auth-input-box{display:flex;align-items:center;gap:.45rem;padding:0 .85rem;border-radius:12px;background:#00000047;border:1px solid rgba(255,255,255,.08);transition:border-color .2s,box-shadow .2s,background .2s}.auth-input-box:focus-within{border-color:#6c5ce7a6;box-shadow:0 0 0 3px #6c5ce726;background:#00000059}.auth-input-prefix{flex-shrink:0;font-size:.82rem;color:#ffffff59;-webkit-user-select:none;user-select:none}.auth-input-box input{flex:1;min-width:0;border:none!important;background:transparent!important;box-shadow:none!important;padding:.72rem 0!important;border-radius:0!important}.auth-input-box-grow{min-width:0}.auth-password-row{display:grid;gap:0}.auth-submit-full{width:100%;margin-top:.15rem;padding:.78rem 1rem;font-size:.95rem;font-weight:600;border-radius:12px;box-shadow:0 10px 28px #6c5ce747}.auth-submit-full:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.auth-switch-hint{margin:.85rem 0 0;text-align:center;font-size:.84rem;color:var(--muted)}.auth-link-btn{border:none;background:none;padding:0;margin-left:.25rem;color:#a29bfe;font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:.15em}.auth-link-btn:hover{color:#c4bcff}.auth-method-switch--single{grid-template-columns:1fr}.auth-method-switch--single .auth-method-tab{cursor:default;pointer-events:none;text-align:center;color:var(--text);border-color:#a29bfe59;background:#6c5ce71a}.auth-register-label.hidden{display:none}.auth-dialog::backdrop{background:#05060cb8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.auth-dialog-body{position:relative;z-index:1;padding:1.65rem 1.5rem 1.35rem;max-height:min(88vh,720px);overflow-y:auto}.auth-dialog-head{text-align:center;margin-bottom:1rem}.auth-dialog-icon{width:2.75rem;height:2.75rem;margin:0 auto .75rem;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,var(--accent),#a29bfe);font-size:.85rem;box-shadow:0 8px 24px #6c5ce759}.auth-dialog-head h3{margin:0 0 .35rem;font-size:1.15rem;font-weight:600}.auth-dialog-head p{margin:0;font-size:.85rem;color:var(--muted)}.auth-register-panel{margin-bottom:.85rem}.auth-register-label{margin:0 0 .45rem;font-size:.78rem;color:var(--muted);letter-spacing:.04em}.auth-method-switch{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.auth-method-tab{padding:.65rem .75rem;border:1px solid var(--border);border-radius:12px;background:#ffffff05;color:var(--muted);cursor:pointer;font:inherit;font-size:.88rem;transition:border-color .2s,background .2s,color .2s}.auth-method-tab.active{color:var(--text);border-color:#a29bfe8c;background:#6c5ce724}.auth-fields{display:grid;gap:.15rem}.auth-field{display:grid;gap:.4rem;margin-bottom:.75rem;font-size:.82rem;color:var(--muted)}.auth-code-row{display:grid;grid-template-columns:1fr auto;gap:.55rem;align-items:center}.auth-send-code{white-space:nowrap;padding:.62rem .85rem;border:1px solid rgba(108,92,231,.45);border-radius:10px;background:#6c5ce71f;color:#c4bcff;cursor:pointer;font:inherit;font-size:.8rem;transition:background .2s,border-color .2s}.auth-send-code:hover:not(:disabled){background:#6c5ce738;border-color:#a29bfea6}.auth-send-code:disabled{opacity:.55;cursor:not-allowed}.auth-dialog-body input{width:100%;background:#00000038;border:1px solid var(--border);border-radius:11px;color:var(--text);padding:.7rem .85rem;font:inherit;transition:border-color .2s,box-shadow .2s}.auth-input-box input:focus{outline:none}.auth-dialog-body input:focus{outline:none;border-color:#6c5ce7a6;box-shadow:0 0 0 3px #6c5ce726}.auth-dialog-body input::placeholder{color:#ffffff47}.auth-error{color:#ff8fa8;font-size:.84rem;margin:0 0 .75rem;padding:.55rem .7rem;border-radius:10px;background:#ff6b8a14;border:1px solid rgba(255,107,138,.2)}.auth-dialog-actions{display:flex;justify-content:stretch;gap:.55rem;margin-top:.25rem}.auth-dialog-actions .auth-btn.ghost{flex:0 0 auto}.auth-submit{flex:1;padding:.72rem 1rem;font-weight:600}.auth-register-empty{margin:0;padding:.75rem;border-radius:10px;font-size:.85rem;color:var(--muted);text-align:center;background:#ffffff08;border:1px dashed var(--border)}.auth-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.auth-register-methods{margin-bottom:.75rem}.auth-method-tabs{display:flex;flex-wrap:wrap;gap:.4rem}.auth-code-row .auth-btn{white-space:nowrap;padding:.55rem .75rem;font-size:.8rem}.auth-dialog-body label{display:grid;gap:.35rem;margin-bottom:.85rem;font-size:.85rem;color:var(--muted)}.history-hint{text-align:center;padding:1.5rem;margin:2rem 0 1rem;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);color:var(--muted)}.history-hint p{margin:0 0 .75rem}.history-section{margin:2rem 0 1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.history-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.history-head h2{margin:0;font-size:1.1rem}.history-empty{color:var(--muted);font-size:.875rem;margin:0}.history-table-wrap{overflow:auto}.history-table{width:100%;border-collapse:collapse;font-size:.85rem}.history-table th,.history-table td{padding:.65rem .5rem;border-bottom:1px solid var(--border);text-align:left}.history-table th{color:var(--muted);font-weight:500}.history-url{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.history-platform{display:inline-block;padding:.15rem .45rem;border-radius:999px;font-size:.75rem;background:var(--surface-2)}.history-platform.tencent{color:#ffb347}.history-platform.iqiyi,.history-status.ok{color:var(--success)}.history-status.err{color:#ff6b8a}.hidden{display:none!important}.brand{display:flex;align-items:center;justify-content:center;gap:.65rem;flex-wrap:wrap}.brand-icon{width:2.25rem;height:2.25rem;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#a29bfe);border-radius:10px;font-size:.75rem;color:#fff}.brand h1{margin:0;font-size:1.75rem;font-weight:700;letter-spacing:-.02em}.badge{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:.2rem .55rem;border-radius:999px;background:#00d2a026;color:var(--success);border:1px solid rgba(0,210,160,.35)}.tagline{margin:.5rem 0 0;color:var(--muted);font-size:.95rem}.input-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.5rem}.input-wrap{display:flex;gap:.75rem}.input-wrap input{flex:1;min-width:0;padding:.85rem 1rem;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.95rem;font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s}.input-wrap input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.input-wrap button,.ghost{padding:.85rem 1.35rem;border:none;border-radius:10px;font-family:inherit;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s}#parseBtn{background:var(--accent);color:#fff;white-space:nowrap}#parseBtn:hover:not(:disabled){background:var(--accent-hover)}#parseBtn:disabled{opacity:.6;cursor:wait}.quick-links{margin-top:.85rem;font-size:.85rem;color:var(--muted);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.link-btn{background:transparent;border:1px solid var(--border);color:var(--accent-hover);padding:.25rem .65rem;border-radius:6px;font-size:.8rem;cursor:pointer;font-family:inherit}.link-btn:hover{border-color:var(--accent);background:var(--accent-glow)}.status{margin:.75rem 0 0;font-size:.85rem;min-height:1.25em;color:var(--muted)}.status.error{color:#ff6b81}.status.ok{color:var(--success)}.player-layout{display:grid;grid-template-columns:280px 1fr;gap:1rem;min-height:520px}.player-layout.no-episodes{grid-template-columns:1fr}.episode-panel.hidden{display:none!important}.player-layout.hidden{display:none}.episode-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;max-height:70vh;overflow:hidden}.panel-head{padding:1rem 1rem .5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.panel-head h2{margin:0;font-size:.95rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.count{font-size:.75rem;color:var(--muted);flex-shrink:0}.episode-list{list-style:none;margin:0;padding:.5rem;overflow-y:auto;flex:1}.episode-list li button{width:100%;text-align:left;padding:.55rem .75rem;margin-bottom:.25rem;border:none;border-radius:8px;background:transparent;color:var(--text);font-family:inherit;font-size:.85rem;cursor:pointer;transition:background .15s}.episode-list li button:hover{background:var(--surface-2)}.episode-list li button.active{background:var(--accent-glow);color:#fff;font-weight:600}.player-section{display:flex;flex-direction:column;gap:.5rem;min-width:0}.player-toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.toolbar-select{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--muted)}.toolbar-select select{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.4rem .65rem;font-family:inherit;font-size:.8rem;min-width:120px}.toolbar-select select:disabled{opacity:.6;cursor:not-allowed}.parser-line-label,.platform{font-size:.8rem;padding:.25rem .6rem;border-radius:6px;background:var(--surface-2);color:var(--muted)}.ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--border);padding:.45rem .85rem;font-size:.8rem;font-weight:500;text-decoration:none}.ghost:hover{border-color:var(--accent)}.player-stage{flex:1;min-height:420px}.video-wrap,.iframe-wrap{background:#000;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);min-height:420px;height:100%}.video-wrap.hidden,.iframe-wrap.hidden{display:none}.video-wrap video{width:100%;height:100%;min-height:420px;background:#000;display:block}.iframe-wrap iframe{width:100%;height:100%;min-height:420px;border:none}.footer{margin-top:2.5rem;text-align:center;font-size:.75rem;color:var(--muted);max-width:640px;margin-left:auto;margin-right:auto}.footer-admin-link{color:var(--accent);text-decoration:none}.footer-admin-link:hover{text-decoration:underline}.announcement-dialog{border:none;padding:0;max-width:none;width:min(720px,calc(100vw - 2rem));background:transparent}.announcement-dialog::backdrop{background:#0000008c}.announcement-panel{background:#fff;color:#1a1d26;border-radius:12px;box-shadow:0 24px 80px #0003;max-height:min(85vh,720px);display:flex;flex-direction:column;overflow:hidden}.announcement-head{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.25rem;border-bottom:1px solid #e8ebf0}.announcement-head h2{margin:0;font-size:1.15rem;font-weight:600}.announcement-close{border:none;background:transparent;font-size:1.5rem;line-height:1;color:#8b93a8;cursor:pointer;padding:.25rem .5rem}.announcement-intro{margin:0;padding:1rem 1.25rem 0;font-size:.9rem;line-height:1.65;color:#4a5168}.announcement-intro.hidden{display:none}.announcement-timeline{flex:1;overflow-y:auto;padding:1rem 1.25rem .5rem}.announcement-loading,.announcement-empty{text-align:center;color:#8b93a8;padding:2rem 0}.timeline-item{display:grid;grid-template-columns:108px 1fr;gap:.75rem 1rem;padding-bottom:1.35rem}.timeline-meta{text-align:right;font-size:.8rem;color:#8b93a8;line-height:1.45}.timeline-relative{display:block;color:#5c6478;font-weight:500}.timeline-exact{display:block;margin-top:.2rem;font-size:.75rem}.timeline-body{position:relative;padding-left:1.25rem;border-left:2px solid #e8ebf0}.timeline-dot{position:absolute;left:-7px;top:.35rem;width:12px;height:12px;border-radius:50%;background:#22c997;box-shadow:0 0 0 3px #fff}.timeline-content h3{margin:0 0 .35rem;font-size:.95rem;font-weight:600;color:#1a1d26}.timeline-content p{margin:0;font-size:.88rem;line-height:1.65;color:#3d4455}.announcement-foot{padding:.75rem 1.25rem 1.25rem;border-top:1px solid #e8ebf0}.announcement-read-btn{width:100%;border:none;border-radius:8px;padding:.75rem 1rem;font:inherit;font-size:.95rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#5b7cfa,#7c5cff);cursor:pointer}.announcement-read-btn:hover{filter:brightness(1.05)}@media(max-width:768px){.header-top{grid-template-columns:1fr;justify-items:center}.header-top .brand{grid-column:1}.header-actions{grid-column:1;justify-self:center}.timeline-item{grid-template-columns:1fr}.timeline-meta{text-align:left}.player-layout{grid-template-columns:1fr}.episode-panel{max-height:220px}.input-wrap{flex-direction:column}}
