:root{color-scheme:dark;--bg:#10131b;--surface:#191e2a;--surface2:#202737;--border:#30394b;--text:#eef1fa;--muted:#a3aec4;--accent:#b9a1ff;--green:#82ddba;--red:#ffaaa9;--yellow:#f5d391;font-family:system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.65}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}[hidden]{display:none!important}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit}button,.button{display:inline-flex;justify-content:center;align-items:center;gap:.4rem;min-height:40px;border:1px solid var(--border);border-radius:9px;padding:.55rem .95rem;color:var(--text);background:var(--surface2);cursor:pointer;text-decoration:none;transition:background .18s,transform .18s}button:hover,.button:hover{background:#303a51;text-decoration:none}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:wait}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:#201538;font-weight:700}button.primary:hover{background:#cebcff}.danger{color:var(--red)}.small{font-size:12px;min-height:34px;padding:.35rem .65rem}.subtle{background:transparent}.wide{width:100%}input,textarea,select{display:block;width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;background:#111620;color:var(--text)}textarea{min-height:94px;resize:vertical}input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input[type=checkbox],input[type=radio]{width:auto;display:inline-block;accent-color:var(--accent)}label{display:flex;flex-direction:column;gap:.4rem;color:var(--muted);font-size:13px}fieldset{border:0;margin:0;padding:0}legend{color:var(--muted);font-size:13px;margin-bottom:.5rem}.radio-row,.inline-check{display:flex;align-items:center;gap:1rem}.radio-row label,.inline-check{flex-direction:row}.muted{color:var(--muted)}.error{color:var(--red)}.eyebrow{font-size:11px;letter-spacing:.18em;color:var(--accent);font-weight:700}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(26px,3vw,38px);line-height:1.3;letter-spacing:-.03em;margin-bottom:.7rem}h2{font-size:20px;line-height:1.4}h3{font-size:16px;line-height:1.4}.topbar{position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:1rem 2rem;background:#141923f5;border-bottom:1px solid var(--border);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:.6rem;color:var(--text);font-size:17px;font-weight:700;white-space:nowrap}.brand:hover{text-decoration:none}.brand small{display:block;font-size:10px;letter-spacing:.18em;font-weight:400;color:var(--muted)}.brand-mark{font-size:42px;line-height:1;color:var(--accent)}.gpu-status{font-size:11px;color:var(--muted);flex:1;min-width:180px}.gpu-status strong{color:var(--text);font-size:13px}.top-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.pump-toggle{display:flex;flex-direction:row;align-items:center;font-size:11px;gap:.4rem;white-space:nowrap}.pump-status{flex-basis:100%;font-size:11px;color:var(--muted);line-height:1.2}.pump-status:empty{display:none}main{max-width:1450px;padding:2.5rem 2rem 4rem;margin:auto;min-height:75vh}footer{border-top:1px solid var(--border);padding:1.4rem 2rem;color:var(--muted);font-size:11px;display:flex;justify-content:space-between;gap:1rem}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.6rem}.breadcrumbs{font-size:12px;margin-bottom:1rem;display:flex;gap:.6rem}.badge,.chip{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--border);border-radius:30px;padding:.15rem .6rem;font-size:11px;color:var(--muted);white-space:nowrap}.badge{color:var(--accent);background:#b9a1ff12}.chip.done{color:var(--green);border-color:#82ddba55}.chip.failed{color:var(--red);border-color:#ffaaa955}.chip.running,.chip.queued{color:var(--yellow);border-color:#f5d39155}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.5rem;margin-bottom:1.5rem}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.panel-heading h2,.panel-heading h3{margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.span-all{grid-column:1/-1}.stack{display:grid;gap:1rem}.project-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(330px,1fr);gap:1.5rem;align-items:start}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:1rem}.project-card{display:block;background:linear-gradient(145deg,#262d40,#191e2a);border:1px solid var(--border);border-radius:14px;padding:1.5rem;color:var(--text);min-height:195px}.project-card:hover{border-color:var(--accent);text-decoration:none}.project-card h3{margin-top:.9rem}.project-card p{color:var(--muted);font-size:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.project-card small{color:var(--muted)}.content-notice{font-size:11px;color:var(--muted);margin:1rem 0 0;padding-left:.75rem;border-left:2px solid #746294}.empty{text-align:center;color:var(--muted);padding:2.5rem 1rem;border:1px dashed var(--border);border-radius:10px}.character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1rem}.character-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#141a25}.character-media{height:210px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#313a50,#171c28);position:relative}.character-media img{width:100%;height:100%;object-fit:contain}.character-media .placeholder{font-size:45px;color:#66728c}.character-media .chip{position:absolute;bottom:.6rem;right:.6rem;background:#10131be8}.card-body{padding:1rem}.character-card .form-grid{gap:.65rem}.character-card textarea{min-height:70px;font-size:12px}.character-card input,.character-card select{font-size:12px}.character-card .actions{margin-top:1rem}.episode-list{display:grid;gap:.7rem}.episode-row{border:1px solid var(--border);border-radius:10px;padding:1rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.episode-row h3{margin:0 0 .4rem}.episode-row p{color:var(--muted);font-size:12px;margin:0}.section-gap{margin-top:2rem}.estimate-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}.stat{border-left:2px solid var(--border);padding-left:.8rem}.stat strong{display:block;font-size:23px;font-weight:600}.stat span{color:var(--muted);font-size:11px}.render-panel{border-color:#8b72c4;background:linear-gradient(115deg,#242039,#191e2a)}.render-actions{margin-top:1.5rem}.render-actions .primary{min-height:48px;padding:.75rem 1.4rem}.progress-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.1rem}.progress-item header{display:flex;justify-content:space-between;font-size:12px;gap:.5rem;margin-bottom:.45rem}.progress-item small{color:var(--muted);font-size:10px}progress{display:block;width:100%;height:8px;border:0;border-radius:9px;overflow:hidden;background:var(--border);accent-color:var(--accent)}progress::-webkit-progress-bar{background:var(--border)}progress::-webkit-progress-value{background:var(--accent)}progress::-moz-progress-bar{background:var(--accent)}.progress-note{font-size:12px;color:var(--muted);margin:1rem 0 0}.shot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1rem;align-items:start}.shot-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface)}.shot-media{aspect-ratio:16/9;background:#0b0e15;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.portrait .shot-media{aspect-ratio:9/16;max-height:530px}.shot-media img{width:100%;height:100%;object-fit:contain;cursor:zoom-in}.shot-media .placeholder{color:var(--muted);font-size:12px}.shot-number{position:absolute;top:.6rem;left:.6rem;background:#10131be8;border:1px solid var(--border);padding:.2rem .6rem;border-radius:6px;font-size:11px;pointer-events:none}.shot-card label{font-size:11px}.shot-card .form-grid{gap:.7rem}.shot-card input,.shot-card select,.shot-card textarea{font-size:12px;padding:.45rem .6rem}.shot-card textarea{min-height:65px}.shot-card .chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.8rem}.shot-card video{width:100%;max-height:350px;background:#000;border-radius:7px;margin-top:.7rem}.shot-card audio{width:100%;height:36px;margin-top:.7rem}.shot-card .actions{margin-top:.8rem;gap:.35rem}.shot-card .actions button{font-size:11px;padding:.4rem .55rem;min-height:32px}details{margin-top:.7rem;border-top:1px solid var(--border);padding-top:.5rem}summary{cursor:pointer;font-size:12px;color:var(--accent)}details label{margin-top:.6rem}.shot-error{color:var(--red);font-size:11px;overflow-wrap:anywhere}.final-video{width:100%;max-height:650px;background:#000;border-radius:9px}.final-panel .actions{margin-top:1rem}.llm-status{display:flex;align-items:center;gap:.7rem;padding:.8rem 1rem;background:#b9a1ff12;border:1px solid #b9a1ff55;border-radius:9px;color:var(--accent);font-size:12px;margin-bottom:1rem}.spinner{display:inline-block;width:15px;height:15px;border:2px solid #b9a1ff40;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.loading{color:var(--muted);padding:3rem;text-align:center}.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);z-index:50;background:#31394d;border:1px solid var(--accent);box-shadow:0 8px 50px #0008;border-radius:10px;padding:.8rem 1.2rem;max-width:min(90vw,650px);font-size:13px;white-space:pre-wrap}.toast.error{border-color:var(--red)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(ellipse at 60% 20%,#302442 0,transparent 60%)}.login-card{width:100%;max-width:460px;background:#191e2ae8;border:1px solid var(--border);border-radius:20px;padding:2.5rem}.login-card h1{margin-top:1.5rem;font-size:30px}.login-card form{display:grid;gap:1rem;margin-top:2rem}.login-card .error{font-size:12px;margin:0}.image-dialog{background:#10131b;border:1px solid var(--border);border-radius:12px;max-width:96vw;max-height:95vh;padding:2.7rem .8rem .8rem;overflow:auto}.image-dialog::backdrop{background:#000c}.image-dialog img{display:block;max-width:90vw;max-height:82vh;object-fit:contain}.dialog-close{position:absolute;top:.4rem;right:.7rem;min-height:30px;font-size:12px}.delete-row{display:flex;justify-content:flex-end;margin-top:1.5rem}.bgm-info{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:1700px){.shot-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1050px){.topbar{padding:1rem}.top-actions{flex-basis:100%}.project-layout{grid-template-columns:1fr}.estimate-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){main{padding:1.5rem 1rem 3rem}.topbar{gap:.6rem;position:relative}.gpu-status{font-size:10px}.top-actions{gap:.4rem}.pump-toggle{font-size:10px}.page-heading{flex-direction:column}.panel{padding:1rem}.form-grid{grid-template-columns:1fr}.span-all{grid-column:auto}.estimate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.stat strong{font-size:21px}.shot-grid{grid-template-columns:1fr}.character-grid{grid-template-columns:1fr}.panel-heading{align-items:flex-start;flex-wrap:wrap}.render-actions>button{width:100%}.login-card{padding:1.8rem}footer{flex-direction:column;padding:1rem}.episode-row{flex-direction:column}.portrait .shot-media{max-height:530px}.project-grid{grid-template-columns:1fr}}
