*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}:root{--bg: #09090f;--surface: #111119;--surface-hi: #191926;--surface-hover: #1f1f30;--border: #22223a;--border-hi: #2e2e50;--primary: #7c8eff;--primary-dim: rgba(124,142,255,.12);--primary-glow: rgba(124,142,255,.28);--text: #ededf8;--text-muted: #6b6b88;--text-dim: #333350;--success: #52d68a;--danger: #ff6b6b;--r-sm: 6px;--r: 10px;--r-lg: 16px;--r-xl: 24px;--shadow: 0 8px 32px rgba(0,0,0,.55);--shadow-sm: 0 2px 10px rgba(0,0,0,.4);--t: .14s ease;--t-slow: .26s ease;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif}[data-theme=light]{--bg: #f0f0fa;--surface: #ffffff;--surface-hi: #f8f8ff;--surface-hover: #eeeef8;--border: #deddf0;--border-hi: #c8c8e8;--primary: #4f5fdf;--primary-dim: rgba(79,95,223,.1);--primary-glow: rgba(79,95,223,.22);--text: #111120;--text-muted: #6b6b88;--text-dim: #c0c0d8;--shadow: 0 8px 32px rgba(0,0,0,.1);--shadow-sm: 0 2px 10px rgba(0,0,0,.07)}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;overscroll-behavior:none;transition:background var(--t-slow),color var(--t-slow)}button{cursor:pointer;font-family:inherit;border:none;background:none}input,textarea{font-family:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:99px}.home{min-height:100%;display:flex;flex-direction:column}.home-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:0 20px;padding-top:env(safe-area-inset-top);height:calc(56px + env(safe-area-inset-top));background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}.home-logo{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700;letter-spacing:-.3px}.home-logo svg{color:var(--primary)}.home-header-spacer{flex:1}.header-actions{display:flex;align-items:center;gap:8px}.home-main{flex:1;padding:24px 20px;padding-bottom:max(24px,env(safe-area-inset-bottom));max-width:960px;margin:0 auto;width:100%}.home-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:20px}.home-toolbar h1{font-size:20px;font-weight:700;letter-spacing:-.4px;flex:1}.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:2px dashed var(--border-hi);border-radius:var(--r-lg);padding:36px 20px;cursor:pointer;color:var(--text-muted);font-size:15px;transition:border-color var(--t),background var(--t),color var(--t);margin-bottom:24px;background:var(--surface);min-height:120px;user-select:none;-webkit-tap-highlight-color:transparent}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--primary);background:var(--primary-dim);color:var(--primary)}.upload-zone svg{opacity:.6;transition:opacity var(--t)}.upload-zone:hover svg,.upload-zone.drag-over svg{opacity:1}.upload-zone span{font-size:13px}.scripts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.script-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px;display:flex;flex-direction:column;gap:10px;transition:border-color var(--t),transform var(--t),box-shadow var(--t);cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:100px}.script-card:active{transform:scale(.98)}@media (hover: hover){.script-card:hover{border-color:var(--border-hi);transform:translateY(-2px);box-shadow:var(--shadow-sm)}}.script-card-title{font-size:15px;font-weight:600;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.script-card-date{font-size:12px;color:var(--text-muted)}.script-card-actions{display:flex;gap:6px;padding-top:6px;border-top:1px solid var(--border);margin-top:auto}.empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:12px;padding:56px 20px;color:var(--text-muted);text-align:center}.empty-state svg{color:var(--text-dim)}.empty-state h3{font-size:18px;font-weight:600;color:var(--text)}.empty-state p{font-size:14px;max-width:280px}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:var(--r);font-size:14px;font-weight:500;transition:background var(--t),color var(--t),opacity var(--t),transform var(--t);white-space:nowrap;user-select:none;-webkit-tap-highlight-color:transparent;min-height:44px}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.45;pointer-events:none}.btn-primary{background:var(--primary);color:#fff}@media (hover: hover){.btn-primary:hover{filter:brightness(1.12)}}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}@media (hover: hover){.btn-ghost:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-hi)}}.btn-danger{background:transparent;color:var(--danger);border:1px solid transparent}@media (hover: hover){.btn-danger:hover{background:#ff6b6b1a;border-color:#ff6b6b4d}}.btn-icon{padding:8px;border-radius:var(--r);color:var(--text-muted);border:1px solid transparent;min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.btn-icon:active{opacity:.7}@media (hover: hover){.btn-icon:hover{background:var(--surface-hover);color:var(--text)}.btn-icon.danger:hover{color:var(--danger);background:#ff6b6b1a}}.btn-icon.active{color:var(--primary);background:var(--primary-dim)}.btn-sm{padding:6px 14px;font-size:13px;min-height:36px}.overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0009;backdrop-filter:blur(4px);animation:fade-in .15s ease;padding:20px;padding-bottom:max(20px,env(safe-area-inset-bottom))}.dialog{background:var(--surface-hi);border:1px solid var(--border-hi);border-radius:var(--r-xl);padding:28px;width:100%;max-width:360px;box-shadow:var(--shadow);animation:slide-up .2s ease}.dialog h3{font-size:17px;font-weight:700;margin-bottom:8px}.dialog p{font-size:14px;color:var(--text-muted);margin-bottom:24px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end}.prompter-page{position:fixed;inset:0;display:flex;flex-direction:column;background:#000;overflow:hidden;padding-top:env(safe-area-inset-top)}.prompter-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:20vh 8vw}.prompter-mirror .prompter-scroll{transform:scaleX(-1)}.prompter-text{max-width:900px;margin:0 auto}.segment{display:block;line-height:1.5;padding:10px 14px;border-radius:var(--r-lg);margin-bottom:6px;transition:none;-webkit-tap-highlight-color:transparent;cursor:pointer}.segment--spoken{color:#fff3}.segment--current{color:#fff;background:#7c8eff2e;border-left:3px solid var(--primary);padding-left:18px}.segment--upcoming{color:#ffffff8c}.interim-badge{position:fixed;bottom:96px;left:50%;transform:translate(-50%);background:#7c8eff33;border:1px solid rgba(124,142,255,.4);backdrop-filter:blur(12px);color:#ffffffd9;padding:6px 16px;border-radius:99px;font-size:14px;max-width:86vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:20}.mic-dot{position:fixed;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));width:12px;height:12px;border-radius:50%;background:var(--danger);z-index:25;animation:pulse-dot 1.5s ease-in-out infinite;pointer-events:none}.prompter-controls{position:relative;z-index:10;display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:8px 12px;padding-bottom:max(8px,env(safe-area-inset-bottom));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));background:#000000d9;backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.07);transition:opacity var(--t-slow),transform var(--t-slow)}.prompter-controls.hidden{opacity:0;transform:translateY(100%);pointer-events:none}.controls-group{display:flex;align-items:center;gap:2px}.controls-sep{width:1px;height:22px;background:#ffffff1a;margin:0 4px}.controls-spacer{flex:1}.controls-label{font-size:10px;font-weight:600;letter-spacing:.06em;color:#ffffff4d;text-transform:uppercase;padding:0 3px;user-select:none}.ctrl-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px;border-radius:var(--r);color:#fff9;border:1px solid transparent;font-size:13px;font-family:var(--font);min-width:40px;min-height:40px;transition:background var(--t),color var(--t),border-color var(--t);-webkit-tap-highlight-color:transparent}.ctrl-btn:active{opacity:.7}@media (hover: hover){.ctrl-btn:hover{background:#ffffff14;color:#fff}}.ctrl-btn.active{color:var(--primary);background:var(--primary-dim);border-color:#7c8eff4d}.ctrl-mic{padding:10px 18px;border-radius:var(--r-lg);font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;min-height:44px}.ctrl-mic.off{background:var(--primary);color:#fff}.ctrl-mic.on{background:#ff6b6b26;border:1px solid rgba(255,107,107,.4);color:var(--danger)}@media (hover: hover){.ctrl-mic.off:hover{filter:brightness(1.12)}}.ctrl-value{font-size:12px;font-weight:600;color:#ffffff73;min-width:26px;text-align:center}.progress-bar{position:absolute;top:0;left:0;height:2px;background:var(--primary);transition:width .6s ease;z-index:30}.prompter-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#000;color:#ffffffb3;text-align:center;padding:24px;z-index:20}.prompter-overlay h2{font-size:22px;color:#fff}.prompter-overlay p{font-size:15px;max-width:360px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%,to{box-shadow:0 0 #ff6b6b99}50%{box-shadow:0 0 0 7px #ff6b6b00}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:30px;height:30px;border:3px solid var(--border-hi);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@media (max-height: 500px){.prompter-scroll{padding:8vh 6vw}.segment{padding:7px 12px;margin-bottom:4px}.segment--current{padding-left:16px}.prompter-controls{flex-wrap:nowrap;overflow-x:auto;padding:6px 10px}.controls-label{display:none}.ctrl-btn{min-width:36px;min-height:36px;padding:6px}.ctrl-mic{padding:8px 14px;font-size:13px;min-height:36px}.interim-badge{bottom:56px;font-size:12px}}@media (max-width: 480px){.home-main{padding:16px 14px}.home-header{padding:0 14px}.scripts-grid{grid-template-columns:1fr;gap:12px}.home-toolbar h1{font-size:18px}.upload-zone{padding:28px 16px}}
