:root.light{--bg-primary: #f5f5f5;--bg-secondary: #ffffff;--bg-tertiary: #e8e8e8;--text-primary: #000000;--text-secondary: #666666;--text-tertiary: #999999;--border-color: #e0e0e0;--shadow: rgba(0, 0, 0, .1);--shadow-hover: rgba(0, 0, 0, .15);--button-bg: #007bff;--button-bg-hover: #0056b3;--button-text: #ffffff;--error-bg: #fee;--error-text: #c00;--input-bg: #ffffff;--input-border: #ddd;--input-focus: #007bff;--message-user-bg: #007bff;--message-user-text: #ffffff;--message-bot-bg: #e9ecef;--message-bot-text: #000000}:root.dark{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-tertiary: #404040;--text-primary: #ffffff;--text-secondary: #b0b0b0;--text-tertiary: #808080;--border-color: #404040;--shadow: rgba(0, 0, 0, .3);--shadow-hover: rgba(0, 0, 0, .5);--button-bg: #0066cc;--button-bg-hover: #0052a3;--button-text: #ffffff;--error-bg: #4a0000;--error-text: #ff6b6b;--input-bg: #2d2d2d;--input-border: #404040;--input-focus: #0066cc;--message-user-bg: #0066cc;--message-user-text: #ffffff;--message-bot-bg: #404040;--message-bot-text: #ffffff}*{box-sizing:border-box;margin:0;padding:0}html{height:100dvh}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5;color:var(--text-primary);background-color:var(--bg-primary);transition:background-color .3s ease,color .3s ease;height:100dvh;margin:0;overflow:hidden;overscroll-behavior:none;-webkit-overflow-scrolling:touch}#root{height:100dvh;overflow:hidden}.theme-toggle{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-primary);transition:all .2s ease;box-shadow:0 2px 4px var(--shadow)}.theme-toggle:hover{transform:scale(1.05);box-shadow:0 4px 8px var(--shadow-hover)}.theme-toggle:active{transform:scale(.95)}.theme-toggle svg{width:24px;height:24px}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.6}30%{transform:translateY(-10px);opacity:1}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}
