*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1220;--card:#1a1f35;--card-2:#232a47;--text:#eef1ff;--muted:#9aa3c7;--accent:#6c8cff;--accent-2:#4f6ef0;--danger:#ff6b6b;--ok:#38d39f;--border:#2c3358}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:radial-gradient(1200px 600px at 50% -10%,#1d2444,var(--bg));color:var(--text);min-height:100vh}.container{max-width:1000px;margin:0 auto;padding:24px 16px 80px}.header{justify-content:space-between;margin-bottom:24px}.brand,.header{display:flex;align-items:center;gap:12px}.logo{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;font-size:22px}.brand h1{font-size:20px;font-weight:700}.brand p,.logout-btn{font-size:13px;color:var(--muted)}.logout-btn{background:transparent;border:1px solid var(--border);padding:8px 14px;border-radius:10px;cursor:pointer}.logout-btn:hover{color:var(--text);border-color:var(--accent)}.who{display:flex;align-items:center;gap:10px}.who-name{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.back-chat,.who-name{color:var(--muted);font-size:13px}.back-chat{border:1px solid var(--border);padding:8px 14px;border-radius:10px;text-decoration:none}.back-chat:hover{color:var(--text);border-color:var(--accent)}@media (max-width:560px){.who-name{display:none}}.upload-box{background:var(--card);border:2px dashed var(--border);border-radius:16px;padding:28px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;margin-bottom:24px}.upload-box.drag,.upload-box:hover{border-color:var(--accent);background:var(--card-2)}.upload-box .big{font-size:34px;margin-bottom:6px}.upload-box .title{font-weight:600;font-size:16px}.upload-box .hint{color:var(--muted);font-size:13px;margin-top:6px}.uploads{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.uploads:empty{display:none}.upload-item{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.upload-item .row{display:flex;justify-content:space-between;font-size:13px;margin-bottom:8px}.upload-item .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}.bar{height:8px;background:var(--card-2);border-radius:99px;overflow:hidden}.bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .2s}.upload-item.error .name{color:var(--danger)}.storage{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:24px}.storage .row{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:8px}.storage .row .over{color:var(--danger);font-weight:600}.storage .bar>span.over{background:linear-gradient(90deg,#ffb86b,var(--danger))}.storage-warn{margin-top:10px;font-size:12.5px;color:var(--danger);background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.35);border-radius:9px;padding:8px 10px;line-height:1.4}.section-title{font-size:15px;color:var(--muted);margin-bottom:12px;display:flex;align-items:center;gap:8px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:16px;gap:16px}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}.thumb{position:relative;aspect-ratio:16/10;background:#000 50%/cover no-repeat;cursor:pointer;display:grid;place-items:center}.thumb .play{width:52px;height:52px;border-radius:50%;background:rgba(0,0,0,.55);display:grid;place-items:center;font-size:20px;color:#fff;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.thumb .dur{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,.7);font-size:11px;padding:2px 6px;border-radius:6px}.card .meta{padding:10px 12px}.card .meta .fname{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card .meta .sub{font-size:12px;color:var(--muted);margin-top:2px}.card .actions{display:flex;gap:8px;padding:0 12px 12px}.btn{flex:1 1;border:none;border-radius:9px;padding:8px;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;text-decoration:none}.btn-download{background:var(--accent-2);color:#fff}.btn-download:hover{background:var(--accent)}.btn-delete{background:transparent;border:1px solid var(--border);color:var(--danger);flex:0 0 auto;width:40px}.btn-delete:hover{border-color:var(--danger);background:rgba(255,107,107,.1)}.music-list{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.music-item{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:8px 10px}.music-play{flex:0 0 auto;width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--accent-2);color:#fff;font-size:15px;cursor:pointer}.music-play:hover{background:var(--accent)}.music-body{flex:1 1 auto;min-width:0}.music-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-sub{font-size:12px;color:var(--muted);margin-top:2px}.music-item .btn{flex:0 0 auto;width:40px}.empty{text-align:center;color:var(--muted);padding:40px 0;font-size:14px}.gate{min-height:100vh;display:grid;place-items:center;padding:16px}.gate-card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:32px;width:100%;max-width:360px;text-align:center}.gate-card .big{font-size:40px;margin-bottom:10px}.gate-card h2{margin-bottom:6px}.gate-card p{color:var(--muted);font-size:13px;margin-bottom:18px}.gate-card input{width:100%;padding:14px;border-radius:12px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:18px;text-align:center;letter-spacing:4px;margin-bottom:12px}.gate-card input:focus{outline:none;border-color:var(--accent)}.gate-card button{width:100%;padding:13px;border:none;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:15px;font-weight:600;cursor:pointer}.gate-card button:disabled{opacity:.6;cursor:default}.gate-card .err{color:var(--danger);font-size:13px;margin-bottom:12px}.login-card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:32px;width:100%;max-width:360px;text-align:center}.login-card .big{font-size:40px;margin-bottom:10px}.login-card h2{margin-bottom:6px}.login-card>p{color:var(--muted);font-size:13px;margin-bottom:18px}.modal{position:fixed;inset:0;background:rgba(0,0,0,.85);display:grid;place-items:center;padding:16px;z-index:50}.modal img,.modal video{max-width:100%;max-height:85vh;border-radius:12px;object-fit:contain}.modal .close{position:absolute;top:18px;right:22px;font-size:30px;color:#fff;cursor:pointer;background:none;border:none}.spinner{text-align:center;color:var(--muted);padding:30px}.btn-dub{background:transparent;border:1px solid var(--border);color:var(--text);flex:0 0 auto;width:40px}.btn-dub:hover{border-color:var(--accent);background:rgba(108,140,255,.12)}.dub-jobs{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.dub-job{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px;font-size:13px}.dub-job .row{display:flex;justify-content:space-between;gap:12px}.dub-job .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}.dub-job.processing{border-color:var(--accent)}.dub-job.done{border-color:var(--ok)}.dub-job.error{border-color:var(--danger)}.dub-warn{margin-top:8px;font-size:12.5px;color:#ffb86b;line-height:1.4}.dub-denied{background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.35);color:var(--danger);border-radius:12px;padding:12px 14px;font-size:13px;margin-bottom:16px}.dub-card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:18px;padding:24px;width:100%;max-width:440px;max-height:88vh;overflow-y:auto}.dub-card h3{font-size:17px;margin-bottom:4px}.dub-close{position:absolute;top:10px;right:14px;font-size:26px;line-height:1;color:var(--muted);background:none;border:none;cursor:pointer}.dub-close:hover{color:var(--text)}.dub-file{font-size:12.5px;color:var(--muted);margin-bottom:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dub-form,.dub-login{display:flex;flex-direction:column;gap:14px}.dub-form label,.dub-login form{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.dub-form input,.dub-form select,.dub-login input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:14px}.dub-form input[type=range]{padding:0;accent-color:var(--accent)}.dub-form input:focus,.dub-login input:focus{outline:none;border-color:var(--accent)}.dub-form select:disabled{opacity:.8}.dub-check{flex-direction:row!important;align-items:center;gap:9px!important;color:var(--text)!important;cursor:pointer}.dub-check input{width:auto!important;accent-color:var(--accent)}.dub-tabs{display:flex;gap:8px}.dub-tabs button{flex:1 1;padding:9px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:12.5px;cursor:pointer}.dub-tabs button.on{border-color:var(--accent);background:rgba(108,140,255,.14);color:var(--text)}.dub-hint{font-size:12px;color:var(--muted);line-height:1.45}.dub-err{font-size:13px;color:var(--danger);background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.35);border-radius:9px;padding:8px 10px;line-height:1.4}.dub-clips{display:flex;flex-direction:column;gap:8px}.dub-clips-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--muted)}.dub-reload{border:1px solid var(--border);background:transparent;color:var(--muted);font-size:12px;padding:4px 9px;border-radius:8px;cursor:pointer;white-space:nowrap}.dub-reload:hover{color:var(--text);border-color:var(--accent)}.dub-clip-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:240px;overflow-y:auto}.dub-clip-list li{display:flex;align-items:flex-start;gap:9px;padding:9px 10px;border:1px solid var(--border);border-radius:11px;cursor:pointer}.dub-clip-list li.sel{border-color:var(--accent);background:rgba(108,140,255,.14)}.dub-clip-list input[type=radio]{margin-top:3px;flex-shrink:0;cursor:pointer}.dub-clip-list .clip-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:6px}.dub-clip-list .clip-text{font-size:12.5px;color:var(--text);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dub-clip-list .clip-play{align-self:flex-start;border:1px solid var(--border);background:transparent;color:var(--text);font-size:12px;padding:4px 11px;border-radius:8px;cursor:pointer;white-space:nowrap}.dub-clip-list .clip-play:hover{border-color:var(--accent);color:var(--accent)}.dub-clip-list audio{display:none}.dub-submit{padding:12px;border:none;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:15px;font-weight:600;cursor:pointer}.dub-submit:disabled{opacity:.6;cursor:default}.btn-google{display:flex;align-items:center;justify-content:center;gap:9px;padding:11px;border-radius:12px;border:1px solid var(--border);background:var(--card-2);color:var(--text);font-size:14px;cursor:pointer}.btn-google:hover{border-color:var(--accent)}.g-icon{width:22px;height:22px;border-radius:50%;background:#fff;color:#4285f4;font-weight:700;display:grid;place-items:center;font-size:13px}.dub-or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.dub-or:after,.dub-or:before{content:"";flex:1 1;height:1px;background:var(--border)}.edit-card{max-width:560px}.clip-list{gap:12px}.clip-list,.clip-row{display:flex;flex-direction:column}.clip-row{border:1px solid var(--border);border-radius:12px;padding:10px;gap:9px}.clip-head{display:flex;align-items:center;gap:8px;font-size:12.5px}.clip-no{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:rgba(108,140,255,.18);color:var(--text);display:grid;place-items:center;font-size:11.5px;font-weight:600}.clip-name{flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.clip-head button{flex:0 0 auto;width:26px;height:26px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:12px;cursor:pointer}.clip-head button:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.clip-head button:disabled{opacity:.35;cursor:default}.clip-head .clip-del:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.clip-row video{width:100%;max-height:240px;border-radius:10px;background:#000}.clip-times{display:flex;gap:10px}.clip-times label{flex:1 1;min-width:0}.clip-inline{display:flex;gap:6px}.clip-inline input{min-width:0}.clip-inline button{flex:0 0 auto;width:38px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer}.clip-inline button:hover{border-color:var(--accent);color:var(--text)}.clip-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted)}.clip-preview{border:1px solid var(--border);background:transparent;color:var(--text);font-size:12px;padding:5px 11px;border-radius:8px;cursor:pointer;white-space:nowrap}.clip-preview:hover{border-color:var(--accent);color:var(--accent)}.clip-add{display:flex;gap:8px}.clip-add select{flex:1 1;min-width:0;padding:10px 12px;background:var(--bg);font-size:13.5px}.clip-add button,.clip-add select{border-radius:10px;border:1px solid var(--border);color:var(--text)}.clip-add button{flex:0 0 auto;padding:0 16px;background:transparent;font-size:13px;cursor:pointer}.clip-add button:hover:not(:disabled){border-color:var(--accent)}.clip-add button:disabled{opacity:.45;cursor:default}