.theme-morning{--bg1: oklch(95% .022 75);--bg2: oklch(91.5% .027 73);--bg3: oklch(97.5% .014 73);--bg-input: oklch(99% .007 72);--bg-user: oklch(66% .165 46);--bg-ai: oklch(97.5% .018 73);--tx1: oklch(18% .022 55);--tx2: oklch(44% .03 58);--tx3: oklch(60% .025 60);--bd: oklch(84% .026 70);--bd2: oklch(90% .018 72);--ac: oklch(62% .168 46);--ac-h: oklch(56% .168 46);--sh: 0 2px 14px oklch(45% .05 55 / .11);--sh2: 0 8px 36px oklch(45% .05 55 / .17);--user-tx: oklch(99% 0 0);--theme-glow: oklch(85% .1 65 / .25)}.theme-afternoon{--bg1: oklch(99% .004 242);--bg2: oklch(95.5% .009 245);--bg3: oklch(98% .005 243);--bg-input: oklch(100% 0 0);--bg-user: oklch(47% .2 256);--bg-ai: oklch(97.5% .007 243);--tx1: oklch(16% .015 252);--tx2: oklch(42% .02 252);--tx3: oklch(57% .018 250);--bd: oklch(87.5% .012 243);--bd2: oklch(92.5% .008 243);--ac: oklch(47% .2 256);--ac-h: oklch(41% .2 256);--sh: 0 2px 14px oklch(38% .04 252 / .09);--sh2: 0 8px 36px oklch(38% .04 252 / .14);--user-tx: oklch(99% 0 0);--theme-glow: oklch(80% .12 250 / .2)}.theme-evening{--bg1: oklch(13.5% .024 268);--bg2: oklch(10% .022 268);--bg3: oklch(18% .024 266);--bg-input: oklch(19.5% .024 266);--bg-user: oklch(51% .155 288);--bg-ai: oklch(19% .022 266);--tx1: oklch(91% .01 272);--tx2: oklch(63% .018 272);--tx3: oklch(47% .017 270);--bd: oklch(25.5% .025 268);--bd2: oklch(21.5% .023 268);--ac: oklch(68% .145 288);--ac-h: oklch(62% .145 288);--sh: 0 2px 14px oklch(4% 0 0 / .42);--sh2: 0 8px 36px oklch(4% 0 0 / .56);--user-tx: oklch(99% 0 0);--theme-glow: oklch(40% .1 285 / .3)}:root{--ff: "Noto Sans JP", "Noto Sans TC", sans-serif;--fs: 14px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--ff, "Noto Sans JP"),"Noto Sans TC",sans-serif;background:var(--bg1);color:var(--tx1);font-size:var(--fs, 14px);line-height:1.65}button{font-family:inherit}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bd);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--tx3)}.app,.sidebar-left,.chat-main,.chat-header,.chat-input-area,.sidebar-logo,.sidebar-bottom,.sidebar-chats{transition:background-color .75s ease,border-color .5s ease}.logo-text,.chat-header-title,.sidebar-section-label,.chat-item,.sidebar-nav-item,.lang-btn,.theme-badge,.theme-badge span{transition:color .5s ease}.logo-icon,.send-btn,.theme-dot,.lang-btn.active,.new-chat-btn{transition:background-color .75s ease,transform .15s ease}.app{display:flex;height:100%;overflow:hidden}.login-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:40px 28px;text-align:center;background:var(--bg1)}.login-logo{width:56px;height:56px;border-radius:14px;background:var(--ac);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;margin-bottom:18px;box-shadow:0 4px 20px var(--theme-glow)}.login-title{font-family:Cormorant Garamond,serif;font-style:italic;font-size:30px;font-weight:500;color:var(--tx1);margin-bottom:8px}.login-sub{font-size:14px;color:var(--tx2);margin-bottom:28px;max-width:320px}.login-btn{padding:11px 28px;background:var(--ac);color:#fff;border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:500;box-shadow:0 2px 12px var(--theme-glow)}.login-btn:hover{background:var(--ac-h);transform:translateY(-1px)}.sidebar-left{width:242px;min-width:242px;background:var(--bg2);border-right:1px solid var(--bd);display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}.sidebar-logo{padding:18px 14px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--bd2);flex-shrink:0}.logo-icon{width:30px;height:30px;background:var(--ac);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;font-weight:700;font-size:15px;letter-spacing:-.02em;box-shadow:0 2px 8px var(--theme-glow)}.logo-text{font-family:Cormorant Garamond,serif;font-style:italic;font-size:21px;font-weight:500;color:var(--tx1);letter-spacing:.02em;white-space:nowrap;overflow:hidden}.new-chat-btn{margin:12px 10px 8px;padding:9px 14px;background:var(--ac);color:#fff;border:none;border-radius:10px;cursor:pointer;font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px;box-shadow:0 2px 8px var(--theme-glow);flex-shrink:0}.new-chat-btn:hover{background:var(--ac-h);transform:translateY(-1px)}.new-chat-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.sidebar-section-label{padding:8px 14px 3px;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--tx3);flex-shrink:0}.sidebar-chats{flex:1;overflow-y:auto;padding:0 6px 6px}.chat-item{padding:7px 10px;border-radius:7px;cursor:pointer;font-size:12.5px;color:var(--tx2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background-color .15s ease;display:flex;align-items:center;gap:7px}.chat-item:hover{background:var(--bg3);color:var(--tx1)}.chat-item.active{background:var(--bg3);color:var(--ac);font-weight:500}.chat-item.disabled{opacity:.45;pointer-events:none}.sidebar-empty{padding:16px 14px;font-size:11.5px;color:var(--tx3);font-style:italic}.sidebar-bottom{padding:6px;border-top:1px solid var(--bd);display:flex;flex-direction:column;gap:1px;flex-shrink:0}.sidebar-nav-item{padding:8px 10px;border-radius:7px;cursor:pointer;font-size:12.5px;color:var(--tx2);display:flex;align-items:center;gap:10px;background:none;border:none;width:100%;text-align:left;transition:background-color .15s ease}.sidebar-nav-item:hover{background:var(--bg3);color:var(--tx1)}.theme-switcher,.lang-switcher{padding:6px 8px 4px;display:flex;gap:3px;flex-shrink:0}.theme-btn,.lang-btn{flex:1;padding:5px 3px;border-radius:6px;border:1px solid var(--bd);background:transparent;font-size:11px;color:var(--tx2);cursor:pointer;transition:border-color .15s ease,color .15s ease}.theme-btn:hover,.lang-btn:hover{border-color:var(--ac);color:var(--ac)}.theme-btn.active,.lang-btn.active{background:var(--ac);border-color:var(--ac);color:#fff}.sidebar-user{padding:10px 10px 12px;display:flex;align-items:center;gap:8px;flex-shrink:0}.user-avatar{width:28px;height:28px;border-radius:8px;background:var(--bd);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--tx2);flex-shrink:0;text-transform:uppercase}.user-info{overflow:hidden;flex:1;min-width:0}.user-name{font-size:12px;font-weight:500;color:var(--tx1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:10px;color:var(--tx3)}.signout-btn{border:none;background:transparent;color:var(--tx3);cursor:pointer;padding:4px;border-radius:5px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.signout-btn:hover{color:var(--tx1);background:var(--bg3)}.chat-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg1);min-width:0}.chat-header{padding:14px 20px 14px 16px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--bg1);gap:12px}.chat-header-left{display:flex;align-items:center;gap:10px;min-width:0}.chat-header-title{font-size:14px;font-weight:500;color:var(--tx1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.theme-badge{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;background:var(--bg3);border:1px solid var(--bd);font-size:11.5px;color:var(--tx2)}.theme-dot{width:6px;height:6px;border-radius:50%;background:var(--ac);flex-shrink:0}.chat-messages{flex:1;overflow-y:auto;padding:28px 28px 16px;display:flex;flex-direction:column;gap:18px}@keyframes msgIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.message-row{display:flex;align-items:flex-end;gap:9px;animation:msgIn .28s ease}.message-row.user{flex-direction:row-reverse}.msg-avatar{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;transition:background-color .75s ease}.msg-avatar.assistant{background:var(--ac);color:#fff}.msg-avatar.user{background:var(--bd);color:var(--tx2);border:1px solid var(--bd)}.msg-body{display:flex;flex-direction:column;max-width:62%;gap:6px}.message-row.user .msg-body{align-items:flex-end}.msg-bubble{padding:11px 15px;border-radius:14px;font-size:var(--fs, 14px);line-height:1.65;white-space:pre-wrap;word-break:break-word;transition:background-color .75s ease,color .5s ease}.msg-bubble.assistant{background:var(--bg-ai);color:var(--tx1);border:1px solid var(--bd2);border-bottom-left-radius:4px;box-shadow:var(--sh)}.msg-bubble.user{background:var(--bg-user);color:var(--user-tx);border-bottom-right-radius:4px;box-shadow:var(--sh)}.skill-card{padding:9px 13px;border-radius:11px;background:var(--bg3);border:1px solid var(--bd2);font-size:12px;color:var(--tx2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;max-width:100%;overflow:auto;box-shadow:var(--sh)}.skill-card-label{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--tx3);margin-bottom:6px;font-family:var(--ff),sans-serif}.skill-card-body{font-size:11.5px;white-space:pre-wrap;word-break:break-word}.typing-indicator{display:flex;align-items:center;gap:4px;padding:4px 2px}.typing-dot{width:6px;height:6px;border-radius:50%;background:var(--tx3)}.typing-dot:nth-child(1){animation:bounce 1.2s 0s infinite}.typing-dot:nth-child(2){animation:bounce 1.2s .2s infinite}.typing-dot:nth-child(3){animation:bounce 1.2s .4s infinite}@keyframes bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-5px)}}.run-error{padding:8px 12px;background:#f271661f;border:1px solid oklch(70% .16 27 / .4);border-radius:8px;color:#b32322;font-size:12px;margin:0 28px 12px}.welcome-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 28px;text-align:center}.welcome-logo{width:52px;height:52px;border-radius:14px;background:var(--ac);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;margin-bottom:16px;box-shadow:0 4px 20px var(--theme-glow)}.welcome-title{font-family:Cormorant Garamond,serif;font-style:italic;font-size:26px;font-weight:500;color:var(--tx1);margin-bottom:8px}.welcome-sub{font-size:13px;color:var(--tx2);max-width:280px;line-height:1.6}.welcome-greeting{margin-top:20px;padding:8px 16px;background:var(--bg3);border:1px solid var(--bd);border-radius:20px;font-size:13px;color:var(--tx2)}.chat-input-area{padding:12px 20px 18px;flex-shrink:0;background:var(--bg1);border-top:1px solid var(--bd)}.input-wrapper{display:flex;align-items:center;gap:8px;background:var(--bg-input);border:1.5px solid var(--bd);border-radius:13px;padding:9px 9px 9px 15px;box-shadow:var(--sh);transition:border-color .2s ease,background-color .75s ease}.input-wrapper:focus-within{border-color:var(--ac)}.input-wrapper textarea{flex:1;background:transparent;border:none;outline:none;font-family:inherit;font-size:var(--fs, 14px);color:var(--tx1);resize:none;min-height:22px;max-height:110px;line-height:1.55}.input-wrapper textarea::placeholder{color:var(--tx3)}.send-btn{width:34px;height:34px;border-radius:9px;background:var(--ac);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.send-btn:hover{background:var(--ac-h);transform:scale(1.06)}.send-btn:active{transform:scale(.96)}.send-btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.send-btn.stop{background:#ce5249}.send-btn.stop:hover{background:#ba3e38}.input-hint{text-align:right;padding-top:5px;font-size:10px;color:var(--tx3)}.loading-screen{display:flex;align-items:center;justify-content:center;height:100%;font-size:13px;color:var(--tx3);background:var(--bg1)}.collapse-btn{width:26px;height:26px;border-radius:7px;border:1px solid var(--bd);background:var(--bg3);color:var(--tx3);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .15s ease,color .15s ease,background-color .75s ease}.collapse-btn:hover{border-color:var(--ac);color:var(--ac)}.sidebar-close-btn{margin-left:auto;width:28px;height:28px;border-radius:7px;border:1px solid var(--bd);background:var(--bg3);color:var(--tx3);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-close-btn:hover{border-color:var(--ac);color:var(--ac)}@media(max-width:900px){.sidebar-left{position:fixed;top:0;left:0;bottom:0;z-index:300;width:100%;min-width:100%;transform:translate(-100%);box-shadow:var(--sh2);transition:transform .32s cubic-bezier(.4,0,.2,1),background-color .75s ease,border-color .5s ease}.sidebar-left.mobile-open{transform:translate(0)}.scrim{position:fixed;inset:0;z-index:200;background:#0303036b;backdrop-filter:blur(2px);animation:scrimIn .2s ease}@keyframes scrimIn{0%{opacity:0}to{opacity:1}}}@media(min-width:901px){.mobile-only,.scrim{display:none!important}}@media(max-width:560px){.chat-messages{padding:16px 14px 10px}.chat-input-area{padding:10px 12px 14px}.msg-body{max-width:80%}.theme-badge{display:none}}.sidebar-left{transition:width .32s cubic-bezier(.4,0,.2,1),min-width .32s cubic-bezier(.4,0,.2,1),transform .32s cubic-bezier(.4,0,.2,1),background-color .75s ease,border-color .5s ease}@media(max-width:900px){.collapse-btn-desktop{display:none!important}}@media(min-width:901px){.sidebar-left.collapsed{width:56px;min-width:56px}.collapsed .logo-text{opacity:0;pointer-events:none;transition:opacity .2s ease}.collapsed .new-chat-btn{justify-content:center;padding:9px}.collapsed .new-chat-btn>span{opacity:0;width:0;overflow:hidden;transition:opacity .2s ease,width .2s ease}.collapsed .sidebar-section-label{opacity:0;height:0;padding:0;overflow:hidden;transition:opacity .2s ease,height .2s ease,padding .2s ease}.collapsed .sidebar-chats{opacity:0;pointer-events:none;transition:opacity .2s ease}.collapsed .sidebar-empty{opacity:0}.collapsed .lang-switcher{opacity:0;pointer-events:none;height:0;padding:0;overflow:hidden;transition:opacity .2s ease,height .2s ease,padding .2s ease}.collapsed .user-info{opacity:0;width:0;overflow:hidden;transition:opacity .2s ease,width .2s ease}.collapsed .sidebar-user{justify-content:center}.collapsed .signout-btn{display:none}}
