.app-container{display:flex;flex-direction:column;height:100vh;width:100%;overflow:hidden;position:relative}.app-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;margin:1rem;z-index:10}.app-title{font-size:1.2rem;font-weight:700;background:linear-gradient(135deg,var(--primary),#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.icon-btn{background:transparent;border:none;color:var(--text-main);cursor:pointer;padding:.5rem;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:background-color .2s}.icon-btn:hover{background-color:var(--border-color)}.app-main{flex:1;padding:1rem;display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto}.sidebar{position:fixed;top:0;left:-100%;width:85%;max-width:320px;height:100vh;background:var(--surface);z-index:50;transition:left .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;border-radius:0 1rem 1rem 0}.sidebar.open{left:0}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-color)}.sidebar-content{padding:1.5rem;flex:1;overflow-y:auto}.sidebar-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:40;animation:fadeIn .3s ease}.modal-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:60;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease}.modal{width:100%;max-width:400px;background:var(--surface);border-radius:var(--radius-xl);display:flex;flex-direction:column;overflow:hidden;animation:slideUp .3s cubic-bezier(.16,1,.3,1)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-color)}.modal-body{padding:1.5rem}.recorder-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;flex:1;border:1px dashed var(--border-color)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1.5rem;background:linear-gradient(135deg,#f1f5fe,#f3effb)}@media(prefers-color-scheme:dark){.login-page{background:linear-gradient(135deg,#0f1624,#171221)}}.login-card{width:100%;max-width:380px;padding:2.5rem 2rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem;animation:slideUp .4s cubic-bezier(.16,1,.3,1)}.login-logo{display:flex;flex-direction:column;align-items:center;text-align:center}.login-loading-overlay{position:absolute;inset:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--radius-lg);animation:fadeIn .2s ease-out}.login-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}:root{--primary-hue: 220;--primary-sat: 85%;--primary-lit: 55%;--primary: hsl(var(--primary-hue), var(--primary-sat), var(--primary-lit));--primary-glow: hsla(var(--primary-hue), var(--primary-sat), var(--primary-lit), .4);--bg-color: #f8fafc;--surface: #ffffff;--text-main: #0f172a;--text-muted: #64748b;--border-color: #e2e8f0;--danger: #ef4444;--success: #10b981;--radius-xl: 24px;--radius-lg: 16px;--radius-md: 12px;--spacing-base: 1rem;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .5);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .05)}@media(prefers-color-scheme:dark){:root{--bg-color: #0f172a;--surface: #1e293b;--text-main: #f8fafc;--text-muted: #94a3b8;--border-color: #334155;--glass-bg: rgba(30, 41, 59, .7);--glass-border: rgba(255, 255, 255, .1);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .3)}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-color);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}#root{display:flex;flex-direction:column;min-height:100vh;position:relative}.app-wrapper{flex:1;display:flex;flex-direction:column;max-width:600px;width:100%;margin:0 auto;background:var(--bg-color);box-shadow:0 0 40px #0000000d;position:relative}.glass-card{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--radius-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:var(--radius-md);font-weight:600;font-size:1rem;border:none;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);outline:none}.btn:active{transform:scale(.96)}.btn-primary{background-color:var(--primary);color:#fff;box-shadow:0 4px 14px var(--primary-glow)}.btn-primary:hover{filter:brightness(1.1);box-shadow:0 6px 20px var(--primary-glow)}.btn-icon-only{padding:1rem;border-radius:50%}.btn-danger{background-color:#fee2e2;color:var(--danger)}@media(prefers-color-scheme:dark){.btn-danger{background-color:#ef444433}}h1{font-size:1.5rem;font-weight:700;letter-spacing:-.02em}h2{font-size:1.25rem;font-weight:600;letter-spacing:-.01em}.input-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.input-label{font-size:.875rem;font-weight:500;color:var(--text-muted)}.input-field{background-color:var(--surface);border:1px solid var(--border-color);color:var(--text-main);padding:.75rem 1rem;border-radius:var(--radius-md);font-size:1rem;font-family:inherit;transition:border-color .2s,box-shadow .2s}.input-field:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 #ef4444b3}70%{transform:scale(1.05);box-shadow:0 0 0 10px #ef444400}to{transform:scale(1);box-shadow:0 0 #ef444400}}.recording-pulse{animation:pulse 2s infinite;background-color:var(--danger);color:#fff}
