.auth-root{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--off-white);padding:24px}.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:40px}.auth-brand-mark{font-size:24px;color:var(--red-primary);line-height:1}.auth-brand-name{font-size:22px;font-weight:600;color:var(--black);letter-spacing:-.3px}.auth-card{width:100%;max-width:380px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--gray-200)}.auth-tab{padding:16px;font-size:14px;font-weight:500;color:var(--gray-400);background:transparent;border-radius:0;transition:color var(--transition),background var(--transition);border-bottom:2px solid transparent;margin-bottom:-1px}.auth-tab:hover{color:var(--gray-800);background:var(--off-white)}.auth-tab.active{color:var(--red-primary);border-bottom-color:var(--red-primary);background:transparent}.auth-form{padding:28px;display:flex;flex-direction:column;gap:20px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-label{font-size:12px;font-weight:500;color:var(--gray-600);letter-spacing:.4px;text-transform:uppercase}.auth-input{width:100%;padding:10px 14px;font-size:15px;color:var(--gray-800);background:var(--off-white);border:1px solid var(--gray-200);border-radius:var(--radius-sm);transition:border-color var(--transition),box-shadow var(--transition)}.auth-input:focus{border-color:var(--red-primary);box-shadow:0 0 0 3px #cc000014;background:var(--white)}.auth-input::placeholder{color:var(--gray-400)}.auth-error{font-size:13px;color:var(--red-bright);padding:8px 12px;background:var(--red-subtle);border-radius:var(--radius-sm);border-left:3px solid var(--red-primary)}.auth-submit{width:100%;padding:12px;font-size:15px;font-weight:500;color:var(--white);background:var(--red-primary);border-radius:var(--radius-sm);transition:background var(--transition),transform var(--transition);display:flex;align-items:center;justify-content:center;min-height:44px}.auth-submit:hover:not(:disabled){background:var(--red-dark)}.auth-submit:active:not(:disabled){transform:scale(.99)}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.auth-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--white);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.chat-window{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:28px 0 20px;display:flex;flex-direction:column;gap:6px}.chat-loader{padding:0 28px;display:flex;flex-direction:column;gap:14px}.msg-skeleton{height:52px;max-width:55%;border-radius:16px;background:var(--gray-100);animation:pulse 1.6s ease-in-out infinite}.msg-skeleton.right{align-self:flex-end;background:#ffe8e8}.bubble-row{display:flex;align-items:flex-end;gap:10px;padding:2px 24px}.row-user{justify-content:flex-end}.row-assistant{justify-content:flex-start}.avatar{width:28px;height:28px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;margin-bottom:2px}.user-avatar{background:var(--red-primary);color:#fff}.assistant-avatar{background:var(--gray-100);border:1px solid var(--gray-200)}.avatar-dot{width:8px;height:8px;border-radius:2px;background:var(--red-primary)}.bubble{max-width:68%;padding:11px 15px;border-radius:18px;line-height:1.6}.bubble-user{background:var(--red-primary);color:var(--white);border-bottom-right-radius:5px}.bubble-assistant{background:var(--gray-100);color:var(--gray-800);border-bottom-left-radius:5px}.bubble-failed{background:#fff0f0;border:1px solid #ffd5d5;color:var(--red-primary)}.bubble-text{font-size:15px;white-space:pre-wrap;word-break:break-word}.bubble-markdown{font-size:15px;word-break:break-word;line-height:1.6}.bubble-markdown p{margin:0 0 8px}.bubble-markdown p:last-child{margin-bottom:0}.bubble-hint{display:inline-flex;margin-bottom:8px;padding:3px 8px;border-radius:999px;background:#fff4d6;color:#9a6700;font-size:12px;font-weight:600;letter-spacing:.01em}.bubble-markdown ul,.bubble-markdown ol{margin:4px 0 8px;padding-left:20px}.bubble-markdown li{margin-bottom:2px}.bubble-markdown h1,.bubble-markdown h2,.bubble-markdown h3{margin:12px 0 6px;font-weight:600}.inline-code{background:#00000026;border-radius:4px;padding:1px 5px;font-family:Fira Mono,Consolas,monospace;font-size:13px}.cursor{display:inline-block;width:2px;height:15px;background:var(--gray-600);border-radius:1px;animation:blink 1s step-end infinite;vertical-align:middle;margin-left:2px}.thinking{display:flex;gap:5px;padding:14px 62px;align-items:center}.thinking span{width:7px;height:7px;background:var(--gray-300, #ccc);border-radius:50%;animation:bounce 1.2s ease-in-out infinite}.thinking span:nth-child(2){animation-delay:.18s}.thinking span:nth-child(3){animation-delay:.36s}.chat-input-area{padding:14px 24px 18px;border-top:1px solid var(--gray-200);background:var(--white);display:flex;flex-direction:column;gap:6px}.chat-input-box{display:flex;align-items:flex-end;gap:10px;background:var(--off-white);border:1.5px solid var(--gray-200);border-radius:14px;padding:11px 11px 11px 16px;transition:border-color .15s,box-shadow .15s,background .15s}.chat-input-box:focus-within{border-color:var(--red-primary);box-shadow:0 2px 14px #cc000014;background:var(--white)}.chat-textarea{flex:1;font-size:15px;line-height:1.55;color:var(--gray-800);background:transparent;border:none;resize:none;min-height:24px;max-height:160px;overflow-y:auto}.chat-textarea::placeholder{color:var(--gray-400)}.chat-textarea:disabled{opacity:.5}.send-btn,.stop-btn{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:background .15s,transform .1s}.send-btn{background:var(--red-primary);color:#fff}.send-btn:hover:not(:disabled){background:#b30000}.send-btn:active:not(:disabled){transform:scale(.94)}.send-btn:disabled{background:var(--gray-200);color:var(--gray-400);cursor:not-allowed}.stop-btn{background:#1a1a1a;color:#fff}.stop-btn:hover{background:#000}.input-hint{font-size:11px;color:var(--gray-400);text-align:center}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-6px);opacity:1}}.layout{display:flex;height:100vh;overflow:hidden;background:var(--white)}.sidebar{width:272px;flex-shrink:0;background:var(--off-white);display:flex;flex-direction:column;transition:width .24s cubic-bezier(.4,0,.2,1);overflow:hidden;border-right:1px solid var(--gray-200)}.sidebar.collapsed{width:64px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:18px 14px 14px;min-height:58px;border-bottom:1px solid var(--gray-200);flex-shrink:0}.sidebar.collapsed .sidebar-header{justify-content:center}.sidebar-brand{display:flex;align-items:center;gap:9px;overflow:hidden;white-space:nowrap}.brand-dot{width:8px;height:8px;border-radius:2px;background:var(--red-primary);flex-shrink:0}.brand-name{font-size:15px;font-weight:600;color:var(--gray-800);letter-spacing:-.2px}.collapse-btn{background:transparent;color:var(--gray-400);padding:6px;border-radius:6px;display:flex;align-items:center;flex-shrink:0;transition:color .15s,background .15s}.collapse-btn:hover{color:var(--gray-800);background:var(--gray-200)}.sidebar-top{padding:10px 10px 6px;flex-shrink:0}.new-chat-btn{width:100%;display:flex;align-items:center;gap:9px;padding:9px 11px;font-size:13px;font-weight:500;color:#fff;background:var(--red-primary);border-radius:8px;transition:background .15s,transform .1s;white-space:nowrap;overflow:hidden}.sidebar.collapsed .new-chat-btn{justify-content:center;padding:9px}.new-chat-btn:hover{background:#b30000}.new-chat-btn:active{transform:scale(.98)}.sidebar-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 8px;display:flex;flex-direction:column;gap:2px}.skeleton-item{height:46px;background:var(--gray-200);border-radius:8px;animation:pulse 1.6s ease-in-out infinite;flex-shrink:0}.chat-item{width:100%;display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:8px;background:transparent;color:var(--gray-600);text-align:left;transition:background .15s,color .15s;cursor:pointer;border:none;flex-shrink:0;overflow:hidden}.sidebar.collapsed .chat-item{justify-content:center;padding:10px}.chat-item:hover{background:var(--gray-200);color:var(--gray-800)}.chat-item.active{background:var(--white);color:var(--gray-800);box-shadow:0 1px 4px #0000000f}.chat-item.active:hover{background:var(--white)}.chat-item-icon{flex-shrink:0;display:flex;align-items:center;opacity:.7}.chat-item.active .chat-item-icon{opacity:1;color:var(--red-primary)}.chat-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;overflow:hidden}.chat-item-title{font-size:13px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}.chat-item-date{font-size:11px;color:var(--gray-400);line-height:1.2}.chat-item-del{background:transparent;color:var(--gray-400);padding:3px;border-radius:4px;display:flex;align-items:center;flex-shrink:0;opacity:0;border:none;cursor:pointer;transition:color .15s,opacity .15s}.chat-item:hover .chat-item-del{opacity:1}.chat-item-del:hover{color:var(--red-primary)}.mini-spin{width:12px;height:12px;border:1.5px solid var(--gray-200);border-top-color:var(--gray-400);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.sidebar-footer{padding:10px;border-top:1px solid var(--gray-200);flex-shrink:0}.logout-btn{width:100%;display:flex;align-items:center;gap:9px;padding:9px 11px;font-size:13px;color:var(--gray-400);background:transparent;border-radius:8px;transition:color .15s,background .15s;border:none;cursor:pointer;white-space:nowrap;overflow:hidden}.sidebar.collapsed .logout-btn{justify-content:center;padding:9px}.logout-btn:hover{color:var(--gray-800);background:var(--gray-200)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes spin{to{transform:rotate(360deg)}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--white);min-width:0}.welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px 48px;gap:0}.welcome-content{text-align:center;margin-bottom:48px}.welcome-logo{display:flex;gap:6px;justify-content:center;margin-bottom:24px}.welcome-dot{width:10px;height:10px;border-radius:3px;background:var(--red-primary);opacity:.2}.welcome-dot:nth-child(2){opacity:.6}.welcome-dot:nth-child(3){opacity:1}.welcome-title{font-size:28px;font-weight:500;color:var(--gray-800);letter-spacing:-.6px;margin-bottom:10px;line-height:1.2}.welcome-sub{font-size:14px;color:var(--gray-400);line-height:1.5}.welcome-input-wrap{width:100%;max-width:680px;display:flex;flex-direction:column;gap:8px}.welcome-input-box{display:flex;align-items:flex-end;gap:10px;background:var(--off-white);border:1.5px solid var(--gray-200);border-radius:14px;padding:12px 12px 12px 18px;box-shadow:0 2px 12px #0000000f;transition:border-color .15s,box-shadow .15s}.welcome-input-box:focus-within{border-color:var(--red-primary);box-shadow:0 2px 16px #cc00001a;background:var(--white)}.welcome-textarea{flex:1;font-size:15px;line-height:1.55;color:var(--gray-800);background:transparent;border:none;resize:none;min-height:26px;max-height:160px;overflow-y:auto}.welcome-textarea::placeholder{color:var(--gray-400)}.welcome-textarea:disabled{opacity:.5}.welcome-send-btn{width:38px;height:38px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--red-primary);color:var(--white);border-radius:10px;transition:background .15s,transform .1s}.welcome-send-btn:hover:not(:disabled){background:#b30000}.welcome-send-btn:active:not(:disabled){transform:scale(.95)}.welcome-send-btn:disabled{background:var(--gray-200);color:var(--gray-400);cursor:not-allowed}.btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.welcome-hint{font-size:11px;color:var(--gray-400);text-align:center}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--red-primary: #CC0000;--red-bright: #FF1A1A;--red-dark: #990000;--red-subtle: #fff0f0;--white: #FFFFFF;--off-white: #F5F5F5;--gray-100: #F0F0F0;--gray-200: #E0E0E0;--gray-400: #9E9E9E;--gray-600: #616161;--gray-800: #212121;--black: #111111;--sidebar-bg: #141414;--sidebar-hover: #1e1e1e;--sidebar-active: #2a2a2a;--sidebar-border: #2a2a2a;--font: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, sans-serif;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 16px rgba(0,0,0,.12);--transition: .15s ease}html,body{height:100%;font-family:var(--font);font-size:15px;color:var(--gray-800);background:var(--white);-webkit-font-smoothing:antialiased}#root{height:100%}button{font-family:var(--font);cursor:pointer;border:none;outline:none}input,textarea{font-family:var(--font);outline:none}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#fff3}.main-scrollbar::-webkit-scrollbar-thumb{background:var(--gray-200)}.main-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}
