.app{position:relative;z-index:1;display:flex;flex-direction:column;height:100vh}.login-page{background:transparent;align-items:center;justify-content:center}.login-container{width:100%;max-width:420px;padding:var(--pad-x)}.login-panel{position:relative;background:#0a0e1e9e;border:1px solid var(--hairline-strong);border-radius:var(--r-panel);box-shadow:var(--sh-panel),0 0 60px #5c96ff1f;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);padding:clamp(32px,6vw,48px) clamp(28px,5vw,40px)}.login-header{text-align:center;margin-bottom:32px}.login-header svg{color:var(--accent);margin-bottom:16px;filter:drop-shadow(0 0 12px rgba(92,200,255,.55))}.login-header h1{font-size:28px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px;color:var(--text);background:linear-gradient(120deg,#fff 10%,#9fdcff 55%,#b7a8ff 95%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.login-header p{font-size:14px;color:var(--text-2)}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:13px;font-weight:550;color:var(--text)}.form-group input{height:44px;padding:0 16px;border:1px solid var(--hairline);border-radius:var(--r-thumb);background:var(--surface-2);color:var(--text);font-family:var(--font);font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s}.form-group input::placeholder,.form-row input::placeholder{color:var(--text-4)}.form-group input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px #0d1224 inset;caret-color:var(--text);transition:background-color 9999s}.login-error{padding:12px 16px;background:var(--danger-bg);border:1px solid rgba(255,110,125,.3);border-radius:var(--r-thumb);color:var(--danger);font-size:14px;text-align:center}.btn-login{height:44px;border:none;border-radius:var(--r-pill);background:var(--accent-grad);color:var(--accent-on);box-shadow:0 0 22px #5caaff59;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .15s,box-shadow .2s,filter .2s}.btn-login:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 0 30px #5caaff8c}.btn-login:disabled{opacity:.5;cursor:not-allowed}.user-manage-container{flex:1;overflow-y:auto;padding:clamp(20px,4vw,32px) var(--pad-x);display:flex;flex-direction:column;gap:24px}.user-manage-panel,.user-list-panel{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-panel);box-shadow:var(--sh-card);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);padding:24px}.user-manage-panel h2,.user-list-panel h2{font-size:20px;font-weight:600;letter-spacing:-.01em;margin-bottom:20px;color:var(--text)}.create-user-form{display:flex;flex-direction:column;gap:16px}.form-row{display:flex;gap:12px;align-items:center}.form-row input[type=text],.form-row input[type=password]{flex:1;height:40px;padding:0 14px;border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--surface-2);color:var(--text);font-family:var(--font);font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}.form-row input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.btn-create{height:40px;padding:0 20px;border:none;border-radius:var(--r-pill);background:var(--accent-grad);color:var(--accent-on);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:filter .15s,box-shadow .2s}.btn-create:hover{filter:brightness(1.08);box-shadow:0 0 22px #5caaff66}.user-list{display:flex;flex-direction:column;gap:1px;background:var(--hairline);border-radius:var(--r-card);overflow:hidden}.user-item{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--surface-solid);gap:16px}.user-info{flex:1}.user-name{font-size:15px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px}.admin-badge{display:inline-block;padding:2px 8px;background:var(--accent-tint);border:1px solid rgba(92,200,255,.3);color:var(--accent-link);font-size:11px;font-weight:600;border-radius:var(--r-chip)}.me-badge{font-size:13px;font-weight:500;color:var(--text-2)}.user-meta{margin-top:4px;font-size:13px;color:var(--text-2)}.btn-delete{height:32px;padding:0 16px;border:1px solid var(--hairline);border-radius:var(--r-pill);background:transparent;color:var(--danger);font-size:13px;font-weight:550;cursor:pointer;transition:background .15s}.btn-delete:hover{background:var(--danger-bg);border-color:#ff6e7d59}.glass-nav{position:sticky;top:0;z-index:50}.nav-container{max-width:var(--max-grid);margin:0 auto;padding:0 var(--pad-x);height:54px;display:flex;align-items:center;justify-content:space-between;gap:16px}.nav-brand{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:650;letter-spacing:-.01em;color:var(--text)}.nav-brand svg{color:var(--accent);filter:drop-shadow(0 0 8px rgba(92,200,255,.5))}.nav-actions{display:flex;align-items:center;gap:12px}.user-info-text{font-size:14px;color:var(--text-2)}.nav-settings{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 14px;border:none;background:transparent;color:var(--text-2);font-size:14px;font-weight:550;cursor:pointer;border-radius:var(--r-pill);transition:background .15s,color .15s}.nav-settings:hover{background:var(--hover);color:var(--text)}.nav-container--full{max-width:none;justify-content:flex-start}.nav-container--full .nav-actions{margin-left:auto}.nav-sidebar-toggle{display:none;width:36px;padding:0;margin-left:-8px}.chat-layout{flex:1;display:flex;min-height:0}.sidebar{width:272px;flex-shrink:0;display:flex;flex-direction:column;background:#080b18a8;border-right:1px solid var(--hairline);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.sidebar-head{display:flex;align-items:center;gap:8px;padding:14px 12px 12px;border-bottom:1px solid var(--hairline)}.btn-new-chat{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;border:1px solid rgba(92,200,255,.35);border-radius:var(--r-pill);background:var(--accent-tint);color:var(--text);font-family:var(--font);font-size:14px;font-weight:550;cursor:pointer;transition:background .15s var(--ease-out-quart),transform .15s var(--ease-out-quart),box-shadow .2s}.btn-new-chat svg{color:var(--accent)}.btn-new-chat:hover{background:#5cc8ff2e;box-shadow:0 0 18px #5cc8ff38}.btn-new-chat:active{transform:scale(.98)}.btn-new-chat:focus-visible,.conversation-main:focus-visible,.conversation-delete:focus-visible,.sidebar-close:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sidebar-close{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--r-pill);background:transparent;color:var(--text-2);cursor:pointer}.sidebar-close:hover{background:var(--hover)}.conversation-list{flex:1;overflow-y:auto;overscroll-behavior:contain}.conversation-item{position:relative;border-bottom:1px solid var(--hairline);transition:background .15s var(--ease-out-quart)}.conversation-item:hover{background:var(--hover)}.conversation-item.is-active{background:linear-gradient(90deg,#5cc8ff24,#7c8cff0a)}.conversation-item.is-active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--accent-grad);box-shadow:0 0 10px #5cc8ffb3}.conversation-main{display:flex;flex-direction:column;gap:3px;width:100%;padding:12px 44px 12px 16px;border:none;background:transparent;text-align:left;font-family:var(--font);cursor:pointer}.conversation-title{font-size:14px;font-weight:550;line-height:1.4;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-item.is-active .conversation-title{color:var(--accent-link)}.conversation-meta{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.4;color:var(--text-3);font-variant-numeric:tabular-nums}.conversation-badge{color:var(--accent);font-weight:550}.conversation-delete{position:absolute;top:50%;right:8px;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:var(--r-pill);background:transparent;color:var(--text-3);cursor:pointer;opacity:0;transform:translateY(-50%);transition:opacity .15s,background .15s,color .15s}.conversation-item:hover .conversation-delete,.conversation-item.is-active .conversation-delete,.conversation-delete:focus-visible{opacity:1}.conversation-delete:hover{background:var(--danger-bg);color:var(--danger)}.sidebar-foot{padding:12px 16px 14px;font-size:12px;color:var(--text-3);border-top:1px solid var(--hairline)}.sidebar-scrim{display:none}@media (hover: none){.conversation-delete{opacity:1}}@media (max-width: 900px){.nav-sidebar-toggle,.sidebar-close{display:inline-flex}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:70;width:min(300px,86vw);background:#080b18f0;border-right:none;box-shadow:var(--sh-overlay);transform:translate(-104%);visibility:hidden;transition:transform .4s var(--ease-spring),visibility 0s linear .4s}.sidebar.is-open{transform:none;visibility:visible;transition:transform .4s var(--ease-spring),visibility 0s}.sidebar-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0000008c;opacity:0;pointer-events:none;transition:opacity .3s var(--ease-out-quart)}.sidebar-scrim.is-open{opacity:1;pointer-events:auto}}@media (prefers-reduced-motion: reduce){.sidebar,.sidebar.is-open,.sidebar-scrim{transition:none}}.main{flex:1;min-width:0;display:flex;flex-direction:column;max-width:var(--max-grid);width:100%;margin:0 auto;overflow:hidden}.messages-container{flex:1;overflow-y:auto;padding:clamp(20px,4vw,32px) var(--pad-x);display:flex;flex-direction:column;gap:20px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:clamp(40px,8vw,80px) var(--pad-x);max-width:var(--max-read);margin:auto}.empty-icon{color:var(--accent);margin-bottom:20px;opacity:.85;filter:drop-shadow(0 0 16px rgba(92,200,255,.45))}.empty-state h1{font-size:clamp(24px,4vw,36px);font-weight:700;letter-spacing:-.02em;margin-bottom:12px;color:var(--text);text-shadow:0 0 30px rgba(92,170,255,.35)}.empty-state p{font-size:16px;color:var(--text-2);line-height:1.6}.message{display:flex;margin-bottom:16px}.message-user{justify-content:flex-end}.message-assistant,.message-system{justify-content:flex-start}.message-content{min-width:0;max-width:680px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:16px 20px;color:var(--text-body);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.message-user .message-content{background:linear-gradient(135deg,#38aaff42,#7c6eff3d);border-color:#78c8ff61;color:#f4f8ff;box-shadow:var(--sh-card),0 0 24px #5c96ff29}.message-system .message-content{background:#0a0e1c80;border-style:dashed;border-color:var(--hairline-strong);box-shadow:none;color:var(--text-2);font-size:14px}.message-text{font-size:15px;line-height:1.6;white-space:pre-wrap}.message-images,.preview-images{display:flex;align-items:center;gap:10px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin}.message-images{margin-top:12px;padding-bottom:2px}.ref-thumb{--thumb-max-h: 140px;--thumb-max-w: 200px;position:relative;flex:0 0 auto;scroll-snap-align:start}.message-images .ref-thumb{--thumb-max-h: 160px;--thumb-max-w: 220px}.ref-thumb-open{display:block;padding:0;border:1px solid var(--hairline);border-radius:var(--r-thumb);background:var(--surface-solid);cursor:zoom-in;transition:transform .2s var(--ease-out-quart),box-shadow .2s var(--ease-out-quart)}.ref-thumb-open:hover{border-color:#5cc8ff80;box-shadow:0 0 18px #5cc8ff40}.ref-thumb-open:active{transform:scale(.98)}.ref-thumb-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ref-thumb img{display:block;width:auto;height:auto;max-width:var(--thumb-max-w);max-height:var(--thumb-max-h);min-width:44px;min-height:44px;object-fit:contain;image-orientation:from-image;border-radius:calc(var(--r-thumb) - 1px)}.ref-thumb--on-accent .ref-thumb-open{border-color:#ffffff47;background:#ffffff24}.ref-thumb-remove{position:absolute;top:6px;right:6px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:var(--r-pill);background:#060812b3;backdrop-filter:saturate(180%) blur(8px);-webkit-backdrop-filter:saturate(180%) blur(8px);color:#fff;cursor:pointer;transition:background .15s,transform .15s var(--ease-out-quart)}.ref-thumb-remove:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}.ref-thumb-remove:hover{background:#c83246d9}.ref-thumb-remove:active{transform:scale(.92)}.upload-error{margin-bottom:10px;font-size:13px;line-height:1.5;color:var(--danger)}.storage-error{display:flex;align-items:flex-start;gap:12px}.storage-error span{flex:1}.storage-error button{flex-shrink:0;border:none;background:none;padding:0;font-family:var(--font);font-size:13px;font-weight:550;color:var(--accent-link);cursor:pointer}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:clamp(16px,5vw,56px);background:#02030ac7;backdrop-filter:saturate(140%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);animation:lightbox-fade-in .3s var(--ease-spring) both}.lightbox.is-closing{animation:lightbox-fade-out .2s var(--ease-out-quart) both}.lightbox-figure{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:100%;max-height:100%;margin:0;animation:lightbox-materialize .4s var(--ease-spring) both}.lightbox.is-closing .lightbox-figure{animation:lightbox-dematerialize .2s var(--ease-out-quart) both}.lightbox-figure img{display:block;max-width:min(92vw,1400px);max-height:calc(100vh - 140px);width:auto;height:auto;object-fit:contain;image-orientation:from-image;border-radius:var(--r-card);background:var(--surface-solid);box-shadow:var(--sh-overlay),0 0 0 1px var(--hairline-strong),0 0 60px #5c96ff2e}.lightbox-caption{display:flex;gap:14px;font-size:13px;color:#ffffffd1;font-variant-numeric:tabular-nums}.lightbox-btn{position:absolute;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:var(--r-pill);background:#ffffff29;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;cursor:pointer;transition:background .15s,transform .15s var(--ease-out-quart)}.lightbox-btn:hover{background:#ffffff42}.lightbox-btn:active{transform:scale(.94)}.lightbox-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.lightbox-close{top:16px;right:16px}.lightbox-prev,.lightbox-next{top:50%;margin-top:-22px}.lightbox-prev{left:16px}.lightbox-next{right:16px}@keyframes lightbox-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lightbox-fade-out{0%{opacity:1}to{opacity:0}}@keyframes lightbox-materialize{0%{opacity:0;transform:scale(.96);filter:blur(6px)}to{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes lightbox-dematerialize{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.97)}}@media (prefers-reduced-motion: reduce){.lightbox,.lightbox.is-closing,.lightbox-figure,.lightbox.is-closing .lightbox-figure{animation-duration:.01ms}}@media (prefers-reduced-transparency: reduce){.lightbox{background:#000000db;backdrop-filter:none;-webkit-backdrop-filter:none}.ref-thumb-remove{background:#070912;backdrop-filter:none;-webkit-backdrop-filter:none}}.screenplay-panel{margin-top:16px;padding:16px;background:#04061073;border-radius:var(--r-card);border:1px solid var(--hairline)}.screenplay-panel h3{font-size:18px;font-weight:600;letter-spacing:-.01em;margin-bottom:16px;color:var(--text)}.shots-list{display:flex;flex-direction:column;gap:12px}.shot-item{display:flex;gap:12px;padding:12px;background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-thumb)}.shot-number{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--accent-grad);color:var(--accent-on);font-size:13px;font-weight:700;border-radius:50%;box-shadow:0 0 12px #5cc8ff66}.shot-content{flex:1}.shot-desc{font-size:14px;line-height:1.5;color:var(--text-body)}.shot-duration{margin-top:6px;font-size:12px;color:var(--text-2);font-variant-numeric:tabular-nums}.video-result{margin-top:16px;display:flex;flex-direction:column;gap:10px}.video-card{position:relative;display:block;width:min(100%,560px);max-height:62vh;padding:0;overflow:hidden;border:1px solid var(--hairline-strong);border-radius:var(--r-card);background:#000;cursor:pointer;box-shadow:var(--sh-lift),0 0 32px #5c96ff1f;transition:transform .25s var(--ease-out-quart),box-shadow .25s,border-color .2s}.video-card-media{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.video-card-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 50%,#03040a0d,#03040a73 75%),linear-gradient(to top,rgba(3,4,10,.75),transparent 38%);transition:opacity .25s}.video-card-play{position:absolute;top:50%;left:50%;display:flex;align-items:center;justify-content:center;width:64px;height:64px;padding-left:4px;border-radius:50%;background:var(--accent-grad);color:var(--accent-on);box-shadow:0 0 0 6px #5cc8ff29,0 0 32px #5caaff99;transform:translate(-50%,-50%);transition:transform .25s var(--ease-out-quart),box-shadow .25s}.video-card-meta{position:absolute;left:14px;right:14px;bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:#eaf0ffe0;text-align:left}.video-card-time{padding:2px 8px;border-radius:var(--r-chip);background:#03040a99;font-variant-numeric:tabular-nums;font-size:12px}.video-card:hover{border-color:#5cc8ff80;box-shadow:var(--sh-lift),0 0 44px #5caaff47}.video-card:hover .video-card-play{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 0 0 8px #5cc8ff33,0 0 44px #5caaffcc}.video-card:hover .video-card-shade{opacity:.7}.video-card:active{transform:scale(.99)}.video-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.video-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}.video-link{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--accent-link);text-decoration:none}.video-link:hover{text-decoration:underline}.video-hint{font-size:12px;color:var(--text-3)}.video-modal-figure{width:min(92vw,1280px)}.video-modal-player{display:block;width:100%;max-height:calc(100vh - 140px);border-radius:var(--r-card);background:#000;outline:none;box-shadow:var(--sh-overlay),0 0 0 1px var(--hairline-strong),0 0 80px #5c96ff38}@media (prefers-reduced-motion: reduce){.video-card,.video-card-play,.video-card-shade{transition:none}}.video-progress{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:12px;font-variant-numeric:tabular-nums}.video-progress-bar{flex:1;min-width:160px;height:6px;border-radius:3px;background:#96b4ff1f;overflow:hidden}.video-progress-fill{height:100%;border-radius:3px;background:var(--accent-grad);box-shadow:0 0 10px #5cc8ffb3;transition:width .4s ease}.video-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px;background:#04061073;border-radius:var(--r-card);border:1px solid var(--hairline);color:var(--text-2);text-align:center;font-size:14px}.loading-indicator{display:flex;align-items:center;gap:6px;padding:8px 0}.loading-elapsed{margin-left:8px;font-size:13px;color:var(--text-3);font-variant-numeric:tabular-nums}.loading-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px #5cc8ffb3;animation:loading-bounce 1.4s infinite ease-in-out both}.loading-dot:nth-child(1){animation-delay:-.32s}.loading-dot:nth-child(2){animation-delay:-.16s}@keyframes loading-bounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.input-area{--composer-w: 880px;flex-shrink:0;padding:6px var(--pad-x) 18px;background:linear-gradient(to bottom,#03040a00,#03040a99 40%)}.input-area>.upload-error{max-width:var(--composer-w);margin:0 auto 8px;padding:0 6px}.composer{max-width:var(--composer-w);margin:0 auto;display:flex;flex-direction:column;gap:8px;padding:10px;background:#0c1020c2;border:1px solid var(--hairline-strong);border-radius:24px;box-shadow:inset 0 1px #ffffff0f,0 18px 50px #00000080,0 0 40px #5c96ff14;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);transition:border-color .2s,box-shadow .25s}.composer:focus-within{border-color:#6ec8ff80;box-shadow:inset 0 1px #ffffff12,0 18px 50px #00000080,0 0 0 4px #5cc8ff14,0 0 48px #5caaff2e}.composer .preview-images{padding:4px 6px 2px}.composer .preview-images .ref-thumb{--thumb-max-h: 84px;--thumb-max-w: 124px}.composer .ref-thumb-remove{top:4px;right:4px;width:22px;height:22px}.input-field{width:100%;height:44px;padding:0 10px;border:none;border-radius:var(--r-thumb);background:transparent;color:var(--text);font-family:var(--font);font-size:15.5px;outline:none}.input-field::placeholder{color:var(--text-4)}.input-field:disabled{opacity:.6}.composer-toolbar{display:flex;align-items:flex-end;gap:10px;padding-top:10px;border-top:1px solid var(--hairline)}.btn-upload{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-2);cursor:pointer;transition:background .15s,color .15s,border-color .15s,box-shadow .2s}.btn-upload:hover{background:var(--accent-tint);border-color:#5cc8ff73;color:var(--accent);box-shadow:0 0 14px #5cc8ff33}.btn-upload:focus-within{outline:2px solid var(--accent);outline-offset:2px}.btn-send{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;margin-left:auto;border:none;border-radius:var(--r-pill);background:var(--accent-grad);color:var(--accent-on);cursor:pointer;box-shadow:0 0 16px #5caaff66;transition:opacity .15s,transform .15s,filter .2s,box-shadow .2s}.btn-send:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 0 24px #5caaff99}.btn-send:active:not(:disabled){transform:scale(.94)}.btn-send:disabled{background:#96b4ff1f;color:var(--text-4);box-shadow:none;cursor:not-allowed}.btn-send:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.confirm-bar{flex-shrink:0;display:flex;gap:10px;width:100%;max-width:calc(880px + 2 * var(--pad-x));margin:0 auto;padding:10px var(--pad-x) 4px}.btn-confirm{flex:1;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 22px;border:none;border-radius:var(--r-pill);background:var(--accent-grad);color:var(--accent-on);font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;box-shadow:0 0 22px #5caaff59;transition:opacity .15s,transform .15s,filter .2s,box-shadow .2s}.btn-confirm:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 0 30px #5caaff8c}.btn-confirm:active:not(:disabled){transform:scale(.98)}.btn-confirm:disabled{opacity:.5;cursor:not-allowed}.btn-cancel{flex-shrink:0;height:46px;padding:0 22px;border:1px solid var(--hairline-strong);border-radius:var(--r-pill);background:#0c1020c2;color:var(--text);font-size:15px;font-weight:550;cursor:pointer;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);transition:background .15s,border-color .15s}.btn-cancel:hover{background:var(--hover);border-color:#96c8ff66}@media (max-width: 680px){.message-content{max-width:100%}.empty-state h1{font-size:24px}.ref-thumb{--thumb-max-h: 120px;--thumb-max-w: 168px}.message-images .ref-thumb{--thumb-max-h: 132px;--thumb-max-w: 180px}.lightbox-prev,.lightbox-next{top:auto;bottom:16px;margin-top:0}.form-row{flex-direction:column}.btn-create{width:100%}}.video-settings{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.segmented{flex-shrink:0;max-width:100%;overflow-x:auto;scrollbar-width:none;display:inline-flex;align-items:center;gap:1px;padding:3px;background:#ffffff09;border:1px solid var(--hairline);border-radius:var(--r-pill)}.segmented-label{padding:0 6px 0 9px;font-size:12px;color:var(--text-3);white-space:nowrap}.segmented button{height:28px;padding:0 9px;border:none;border-radius:var(--r-pill);background:transparent;color:var(--text-2);font-family:var(--font);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer;transition:background .15s,color .15s,box-shadow .2s}.segmented button:hover{color:var(--text);background:var(--hover)}.segmented button.active{background:linear-gradient(135deg,#4fd1ff3d,#7c8cff3d);color:#fff;font-weight:600;box-shadow:inset 0 0 0 1px #78c8ff80,0 0 12px #5caaff40}.segmented button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.video-progress-label{flex-shrink:0;font-size:12px}.video-progress-fill.indeterminate{width:30%;animation:progress-slide 1.6s ease-in-out infinite}@keyframes progress-slide{0%{transform:translate(-100%)}to{transform:translate(340%)}}.segmented::-webkit-scrollbar{display:none}.segmented button,.segmented-label{flex-shrink:0}@media (max-width: 680px){.input-area{padding:4px 12px 12px}.composer{border-radius:20px}.composer-toolbar{flex-wrap:wrap;align-items:center;row-gap:8px}.video-settings{order:-1;flex-basis:100%}.empty-state p br{display:none}}.stream-caret{display:inline-block;width:2px;height:1.05em;margin-left:2px;vertical-align:-.15em;border-radius:1px;background:var(--accent);box-shadow:0 0 8px #5cc8ffcc;animation:stream-caret-blink 1s steps(2,start) infinite}@keyframes stream-caret-blink{to{visibility:hidden}}.stream-script-note{display:flex;align-items:center;gap:6px;margin-top:12px;padding:10px 14px;border:1px dashed var(--hairline-strong);border-radius:var(--r-thumb);background:#04061073;font-size:13px;color:var(--text-2)}.message-text+.stream-script-note{margin-top:12px}.message-content>.stream-script-note:first-child{margin-top:0}.stream-script-note .loading-dot{width:6px;height:6px}.stream-script-note span:last-child{margin-left:6px}@media (prefers-reduced-motion: reduce){.stream-caret{animation:none}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.shot-voiceover{display:flex;align-items:flex-start;gap:6px;margin-top:8px;padding:6px 10px;border-left:2px solid var(--accent);border-radius:0 var(--r-chip) var(--r-chip) 0;background:var(--accent-tint);font-size:13.5px;line-height:1.55;color:var(--accent-link)}.shot-voiceover svg{flex-shrink:0;margin-top:3px;opacity:.85}.confirm-area{flex-shrink:0;width:100%;max-width:calc(880px + 2 * var(--pad-x));margin:0 auto;padding:10px var(--pad-x) 4px}.confirm-area .confirm-bar{max-width:none;padding:0}.confirm-dub{margin-bottom:10px;padding:8px 10px;border:1px solid var(--hairline);border-radius:var(--r-card);background:#0c1020b8;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.confirm-dub .upload-error,.redub-panel .upload-error{margin:8px 4px 0}.dub-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.dub-label{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text-2);white-space:nowrap}.dub-label svg{color:var(--accent)}.dub-select select{height:30px;max-width:220px;padding:0 28px 0 12px;border:1px solid var(--hairline-strong);border-radius:var(--r-pill);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23a0aac6' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right 11px center,#ffffff0a;color:var(--text);font-family:var(--font);font-size:13px;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}.dub-select select:hover:not(:disabled){border-color:#5cc8ff73}.dub-select select:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.dub-select option{background:var(--surface-solid);color:var(--text)}.dub-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);cursor:pointer;white-space:nowrap}.dub-check input{width:15px;height:15px;accent-color:var(--accent)}.dub-preview,.btn-redub{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 14px;border:1px solid rgba(92,200,255,.4);border-radius:var(--r-pill);background:var(--accent-tint);color:var(--accent-link);font-family:var(--font);font-size:13px;font-weight:550;cursor:pointer;transition:background .15s,box-shadow .2s}.dub-preview:hover:not(:disabled),.btn-redub:hover:not(:disabled){background:#5cc8ff33;box-shadow:0 0 14px #5cc8ff40}.dub-preview:disabled,.btn-redub:disabled,.dub-select select:disabled,.dub-check input:disabled{opacity:.55;cursor:not-allowed}.dub-preview:focus-visible,.btn-redub:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.redub-panel{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px;padding:10px 12px;border:1px dashed var(--hairline-strong);border-radius:var(--r-thumb);background:#04061066}.redub-panel .upload-error{flex-basis:100%}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spin{animation:none}}.shot-voiceover .vo-text{flex:1;min-width:0}.shot-voiceover.is-over{border-left-color:var(--heat)}.vo-edit{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin:-2px -4px -2px 4px;border:none;border-radius:var(--r-pill);background:transparent;color:var(--accent-link);opacity:.6;cursor:pointer;transition:opacity .15s,background .15s}.shot-voiceover:hover .vo-edit,.vo-edit:focus-visible{opacity:1}.vo-edit:hover{background:#5cc8ff2e}.vo-add{display:inline-flex;align-items:center;gap:4px;margin-top:8px;padding:3px 10px;border:1px dashed rgba(92,200,255,.35);border-radius:var(--r-pill);background:transparent;color:var(--text-3);font-family:var(--font);font-size:12.5px;cursor:pointer;transition:color .15s,border-color .15s}.vo-add:hover{color:var(--accent-link);border-color:var(--accent)}.shot-voiceover.is-editing{align-items:flex-start}.vo-editor{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.vo-editor textarea{width:100%;padding:6px 8px;border:1px solid rgba(92,200,255,.45);border-radius:var(--r-chip);background:#04061099;color:var(--text);font-family:var(--font);font-size:13.5px;line-height:1.5;resize:none;outline:none}.vo-editor textarea:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.vo-editor-bar{display:flex;align-items:center;gap:8px}.vo-count{flex:1;font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.vo-count.is-over{color:var(--heat)}.vo-btn{height:26px;padding:0 12px;border:1px solid var(--hairline-strong);border-radius:var(--r-pill);background:transparent;color:var(--text-2);font-family:var(--font);font-size:12.5px;cursor:pointer}.vo-btn:hover{color:var(--text);background:var(--hover)}.vo-btn.is-primary{border-color:#5cc8ff73;background:var(--accent-tint);color:var(--accent-link);font-weight:600}.video-progress-state{flex-shrink:0;min-width:96px;text-align:right;color:var(--text-2);white-space:nowrap}.video-progress-state.is-done{color:var(--live)}.video-progress-note{margin-top:10px;font-size:12.5px;line-height:1.6;color:var(--text-2)}.video-progress-note.is-slow{padding:8px 10px;border-left:2px solid var(--heat);border-radius:0 var(--r-chip) var(--r-chip) 0;background:var(--heat-bg);color:var(--text-body)}.legacy-note{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding:10px 12px;border:1px solid rgba(255,159,67,.35);border-radius:var(--r-card);background:#281808b8;font-size:13px;line-height:1.6;color:var(--text-body);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.legacy-note span{flex:1}.legacy-note .btn-redub{flex-shrink:0}@media (max-width: 680px){.legacy-note{flex-direction:column;align-items:stretch}}.music-style{display:flex;align-items:center;gap:6px;margin:-6px 0 14px;padding:6px 10px;border:1px solid rgba(166,139,255,.3);border-radius:var(--r-pill);background:#7c6eff1a;font-size:13px;color:var(--text-body)}.music-style svg{flex-shrink:0;color:#b7a8ff}.music-style-label{flex-shrink:0;color:#b7a8ff;font-weight:600}.music-style-text{flex:1;min-width:0}.music-style.is-editing input{flex:1;min-width:0;height:26px;padding:0 10px;border:1px solid rgba(166,139,255,.5);border-radius:var(--r-pill);background:#04061099;color:var(--text);font-family:var(--font);font-size:13px;outline:none}.music-style.is-editing input:focus{box-shadow:0 0 0 3px #a68bff40}.music-add{margin:-6px 0 14px}.dub-music svg{color:#b7a8ff}.retry-finalize{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px;font-size:12.5px;color:var(--text-3)}.segmented button.toggle{display:inline-flex;align-items:center;gap:4px}.shot-voiceover.is-dialogue svg{color:#ffb86b}.vo-speaker{flex-shrink:0;color:#ffcf9a;font-weight:600}.cast-controls{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--hairline)}.cast-controls .dub-label{height:30px}.cast-list{display:flex;flex-direction:column;gap:6px;min-width:0}.cast-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.cast-name{display:inline-flex;align-items:baseline;gap:6px;min-width:96px;font-size:13px;font-weight:600;color:var(--text)}.cast-desc{font-size:12px;font-weight:400;color:var(--text-3)}.password-field{position:relative;display:flex}.password-field input{flex:1;min-width:0;padding-right:48px}.password-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:8px;background:transparent;color:var(--text-3);cursor:pointer;transition:color .15s,background .15s}.password-toggle:hover{color:var(--text);background:var(--hover)}.password-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.password-field input::-ms-reveal,.password-field input::-ms-clear{display:none}:root{color-scheme:dark;--bg: #03040a;--surface: rgba(14, 18, 34, .72);--surface-solid: #0c1020;--surface-2: rgba(255, 255, 255, .04);--hover: rgba(150, 190, 255, .07);--press: rgba(150, 190, 255, .12);--text: #eaf0ff;--text-body: #c9d1e8;--text-2: #a0aac6;--text-3: #828ca9;--text-4: #646e8c;--faint: #2a3150;--hairline: rgba(150, 180, 255, .13);--hairline-strong: rgba(150, 200, 255, .24);--accent: #5cc8ff;--accent-link: #8fdcff;--indigo: #8b8ff8;--accent-grad: linear-gradient(135deg, #4fd1ff 0%, #7c8cff 55%, #a68bff 100%);--accent-on: #050814;--accent-tint: rgba(92, 200, 255, .12);--glow-accent: 0 0 0 1px rgba(124, 200, 255, .35), 0 0 18px rgba(92, 170, 255, .35);--focus-ring: 0 0 0 3px rgba(92, 200, 255, .28);--danger: #ff7a85;--danger-bg: rgba(255, 90, 110, .12);--heat: #ff9f43;--heat-bg: rgba(255, 159, 67, .12);--live: #3ee08f;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono: ui-monospace, "SF Mono", Menlo, monospace;--r-pill: 999px;--r-chip: 6px;--r-thumb: 12px;--r-card: 18px;--r-panel: 22px;--r-hero: 26px;--sh-card: 0 1px 0 rgba(255,255,255,.04) inset, 0 10px 30px rgba(0,0,0,.45);--sh-panel: 0 1px 0 rgba(255,255,255,.05) inset, 0 20px 60px rgba(0,0,0,.55);--sh-lift: 0 14px 36px rgba(0,0,0,.55);--sh-overlay: 0 2px 8px rgba(0,0,0,.4), 0 30px 90px rgba(0,0,0,.7);--glass-blur: saturate(140%) blur(18px);--max-read: 720px;--max-grid: 1080px;--pad-x: 22px;--ease-spring: cubic-bezier(.32, .72, 0, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1)}*{margin:0;padding:0;box-sizing:border-box}html{background:var(--bg)}body{background:radial-gradient(1200px 800px at 85% -10%,rgba(88,70,200,.22),transparent 60%),radial-gradient(900px 700px at -10% 110%,rgba(20,140,200,.18),transparent 60%),radial-gradient(600px 400px at 40% 60%,rgba(60,40,140,.08),transparent 70%),var(--bg);background-attachment:fixed;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;min-height:100vh}#root{min-height:100vh}.starfield{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;display:block;pointer-events:none}::selection{background:#5cc8ff52;color:#fff}.glass-nav{background:#05071099;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--hairline)}@media (prefers-reduced-transparency: reduce){:root{--surface: #0e1222}.glass-nav{background:#070912;backdrop-filter:none;-webkit-backdrop-filter:none}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--faint);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-4)}
