*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #ffffff;--bg-surface: #f8f9fa;--bg-elevated: #f1f3f4;--bg-card: #e8eaed;--sidebar-bg: rgba(0,90,181,.04);--glass-blue: rgba(0,90,181,.05);--glass-border: rgba(0,90,181,.14);--blue: #005AB5;--blue-hover: #004a99;--blue-light: rgba(0,90,181,.08);--blue-glow: rgba(0,90,181,.15);--text-1: #1f1f1f;--text-2: #444746;--text-3: #80868b;--border: rgba(0,0,0,.08);--border-hover: rgba(0,0,0,.18);--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 16px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,.04);--sidebar-rail: 72px;--sidebar-width: 260px}html,body,#root{height:100%;font-family:Google Sans,Plus Jakarta Sans,Noto Sans TC,-apple-system,sans-serif;background:var(--bg);color:var(--text-1)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c4c7c5;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9aa0a6}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar-overlay{display:none}.sidebar{width:var(--sidebar-rail);flex-shrink:0;background:var(--sidebar-bg);display:flex;flex-direction:column;align-items:center;overflow:hidden;transition:width .28s cubic-bezier(.4,0,.2,1);border-right:1px solid var(--glass-border);padding:8px 0 12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sidebar-open{width:var(--sidebar-width);align-items:flex-start}.sidebar-top{display:flex;align-items:center;gap:14px;padding:4px 12px;width:100%;height:56px;flex-shrink:0}.sidebar-brand{font-size:15px;font-weight:700;color:var(--text-1);white-space:nowrap;letter-spacing:-.01em}.sidebar-icon-btn{width:48px;height:48px;min-width:48px;border-radius:50%;border:none;background:transparent;color:var(--text-2);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;flex-shrink:0;font-family:inherit}.sidebar-icon-btn:hover{background:var(--bg-elevated);color:var(--text-1)}.sidebar-new-btn{display:flex;align-items:center;justify-content:center;gap:14px;margin:4px 8px;padding:0 12px;height:52px;width:calc(100% - 16px);border-radius:26px;border:1px solid var(--border);background:transparent;color:var(--text-2);font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s,box-shadow .15s;white-space:nowrap;overflow:hidden}.sidebar-new-btn:hover{background:var(--bg-elevated);border-color:var(--border-hover);box-shadow:var(--shadow-sm)}.sidebar:not(.sidebar-open) .sidebar-new-btn{width:48px;height:48px;min-width:48px;border-radius:50%;padding:0;margin:4px auto}.btn-icon{font-size:18px;flex-shrink:0}.btn-label{flex:1;text-align:left}.sidebar-nav{flex:1;width:100%;overflow-y:auto;padding:8px 8px 0;min-width:0}.sidebar-nav-label{font-size:11px;font-weight:600;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;padding:8px 16px 6px;white-space:nowrap}.session-list{padding:0}.session-empty{color:var(--text-3);font-size:13px;padding:20px 16px;text-align:center}.session-item{display:flex;align-items:center;gap:4px;padding:10px 12px;border-radius:12px;cursor:pointer;transition:background .15s;margin-bottom:2px}.session-item:hover{background:var(--bg-elevated)}.session-item-active{background:var(--blue-light)}.session-item-body{flex:1;min-width:0}.session-item-title{font-size:13px;font-weight:500;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.session-item-active .session-item-title{color:var(--blue)}.session-item-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--text-3);gap:4px}.session-item-meta span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-delete{opacity:0;background:none;border:none;color:var(--text-3);font-size:11px;cursor:pointer;padding:4px 6px;border-radius:6px;transition:opacity .15s,color .15s,background .15s;flex-shrink:0}.session-item:hover .session-delete{opacity:1}.session-delete:hover{color:#d32f2f;background:#d32f2f14}.sidebar-bottom{padding:8px;width:100%;display:flex;justify-content:center;flex-shrink:0}.main-area{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg)}.header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg)}.header-left{display:flex;align-items:center;gap:10px}.header-right{display:flex;align-items:center;gap:8px}.logo{display:flex;align-items:center;gap:9px}.logo-icon{width:36px;height:36px;border-radius:10px;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center}.logo-title{font-size:16px;font-weight:700;color:var(--text-1);letter-spacing:-.01em}.logo-sub{font-size:10.5px;color:var(--text-3);margin-top:1px}.dept-badge{font-size:12px;padding:4px 12px;border-radius:20px;background:var(--blue-light);color:var(--blue);border:1px solid rgba(0,90,181,.2);font-weight:600;white-space:nowrap}.icon-btn{background:none;border:none;color:var(--text-2);font-size:18px;cursor:pointer;padding:8px;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;font-family:inherit}.icon-btn:hover{background:var(--bg-elevated);color:var(--text-1)}.mobile-only{display:none}.text-btn{font-size:13px;font-weight:500;padding:7px 16px;border-radius:20px;background:transparent;color:var(--text-2);border:1px solid var(--border);cursor:pointer;font-family:inherit;white-space:nowrap;transition:border-color .15s,color .15s,background .15s}.text-btn:hover{border-color:var(--border-hover);color:var(--text-1);background:var(--bg-surface)}.selector-page{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 20px;overflow-y:auto}.selector-content{width:100%;max-width:640px;text-align:center}.selector-greeting{font-size:11px;font-weight:700;color:var(--blue);letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px}.selector-title{font-size:34px;font-weight:700;color:var(--text-1);margin-bottom:10px;letter-spacing:-.02em}.selector-subtitle{font-size:15px;color:var(--text-2);margin-bottom:32px;line-height:1.6}.dept-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:10px;margin-bottom:24px}.dept-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px 16px;background:var(--bg);border:1px solid var(--border);border-radius:16px;cursor:pointer;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s;font-family:inherit;animation:cardIn .45s ease both;box-shadow:var(--shadow-sm)}.dept-card:nth-child(1){animation-delay:.04s}.dept-card:nth-child(2){animation-delay:.08s}.dept-card:nth-child(3){animation-delay:.12s}.dept-card:nth-child(4){animation-delay:.16s}.dept-card:nth-child(5){animation-delay:.2s}.dept-card:nth-child(6){animation-delay:.24s}.dept-card:nth-child(7){animation-delay:.28s}.dept-card:nth-child(8){animation-delay:.32s}.dept-card:nth-child(9){animation-delay:.36s}.dept-card:nth-child(10){animation-delay:.4s}@keyframes cardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.dept-card:hover{border-color:var(--blue);background:var(--blue-light);transform:translateY(-2px);box-shadow:0 6px 20px #005ab51f}.dept-emoji{font-size:28px}.dept-label{font-size:12px;font-weight:600;color:var(--text-1);line-height:1.35;text-align:center}.selector-note{font-size:12px;color:var(--text-3);line-height:1.6}.prize-info{font-size:13px;color:var(--text-2);text-align:center;margin-top:1rem;padding:10px 16px;background:#005ab50d;border-radius:10px;border:1px solid var(--glass-border)}.link{color:var(--blue);text-decoration:none;font-weight:500}.link:hover{text-decoration:underline}.email-gate{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);padding:24px}.email-gate-card{width:100%;max-width:380px;background:var(--bg-surface);border:1px solid var(--glass-border);border-radius:20px;padding:40px 32px;display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:var(--shadow-md)}.email-gate-logo{width:52px;height:52px;background:var(--blue);color:#fff;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;margin-bottom:8px}.email-gate-title{font-size:20px;font-weight:700;color:var(--text-1)}.email-gate-subtitle{font-size:14px;color:var(--text-2);margin-bottom:16px}.email-gate-form{width:100%;display:flex;flex-direction:column;gap:10px}.email-gate-input{width:100%;padding:12px 16px;border:1.5px solid var(--border);border-radius:12px;font-size:15px;background:var(--bg);color:var(--text-1);outline:none;transition:border-color .2s;box-sizing:border-box}.email-gate-input:focus{border-color:var(--blue)}.email-gate-error{font-size:13px;color:#e53935;padding:0 4px}.email-gate-btn{width:100%;padding:12px;background:var(--blue);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s}.email-gate-btn:hover{background:var(--blue-hover)}.timeline{display:flex;align-items:flex-start;justify-content:center;gap:0;margin:20px 0 18px;overflow-x:auto;padding-bottom:4px}.timeline-item{display:flex;flex-direction:column;align-items:center;position:relative;flex:1;min-width:80px}.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--bg-card);border:2px solid var(--bg-elevated);z-index:1;flex-shrink:0;transition:background .2s}.timeline-done .timeline-dot{background:var(--bg-card)}.timeline-current .timeline-dot{width:13px;height:13px;background:var(--blue);box-shadow:0 0 10px #005ab559}.timeline-line{position:absolute;top:5px;left:50%;width:100%;height:2px;background:var(--border);z-index:0}.timeline-done .timeline-line{background:var(--bg-card)}.timeline-current .timeline-line{background:linear-gradient(90deg,var(--blue),var(--border))}.timeline-content{display:flex;flex-direction:column;align-items:center;gap:3px;margin-top:8px;text-align:center;padding:0 4px}.timeline-date{font-size:11px;font-weight:700;color:var(--text-3);letter-spacing:.02em}.timeline-done .timeline-date{text-decoration:line-through}.timeline-current .timeline-date{color:var(--blue)}.timeline-label{font-size:11px;color:var(--text-3);line-height:1.35}.timeline-current .timeline-label{color:var(--text-2);font-weight:600}.chat-window{flex:1;overflow-y:auto;padding:24px 0 12px;display:flex;flex-direction:column;gap:24px}.message-row{display:flex;align-items:flex-start;gap:12px;animation:msgIn .25s cubic-bezier(.22,1,.36,1) both;max-width:760px;margin:0 auto;padding:0 20px;width:100%}@keyframes msgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message-row-user{justify-content:flex-end}.message-wrap{position:relative}.message-wrap-user{max-width:60%}.message-wrap-ai{max-width:100%;display:flex;flex-direction:column}.avatar{width:36px;height:36px;min-width:36px;border-radius:50%;background:var(--bg-elevated);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;box-shadow:var(--shadow-sm)}.avatar-user{width:34px;height:34px;min-width:34px;border-radius:50%;background:var(--blue);display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;font-weight:700;flex-shrink:0}.bubble{line-height:1.7;font-size:15px}.bubble-ai{background:transparent;color:var(--text-1);padding:2px 0}.bubble-user{background:#005ab512;border:1px solid rgba(0,90,181,.16);border-radius:20px;color:var(--text-1);padding:12px 18px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.user-text{white-space:pre-wrap}.copy-btn{display:inline-flex;align-items:center;gap:4px;margin-top:8px;background:transparent;border:none;color:var(--text-3);font-size:12px;cursor:pointer;padding:4px 8px;border-radius:8px;transition:color .15s,background .15s;font-family:inherit;white-space:nowrap}.copy-btn:hover{color:var(--text-1);background:var(--bg-elevated)}.input-bar{padding:0 0 20px;background:var(--bg);flex-shrink:0}.input-bar-inner{max-width:760px;margin:0 auto;padding:0 20px;width:100%}.input-card{background:#005ab50a;border:1px solid var(--glass-border);border-radius:28px;overflow:hidden;box-shadow:0 2px 12px #005ab514,0 1px 3px #0000000a;transition:box-shadow .2s,border-color .2s,background .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.input-card:focus-within{border-color:#005ab559;background:#005ab50f;box-shadow:0 4px 20px #005ab51f,0 0 0 3px #005ab50f}.chat-input{width:100%;background:transparent;border:none;padding:16px 20px 8px;color:var(--text-1);font-size:15px;font-family:inherit;line-height:1.55;resize:none;outline:none;overflow-y:auto;min-height:52px}.chat-input::placeholder{color:var(--text-3)}.input-toolbar{display:flex;align-items:center;justify-content:space-between;padding:4px 12px 12px}.input-hint{font-size:11px;color:var(--text-3)}.send-btn{width:40px;height:40px;border-radius:50%;border:none;background:var(--blue);color:#fff;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .15s,box-shadow .15s,background .15s;box-shadow:0 2px 8px #005ab54d;font-weight:700}.send-btn:hover:not(.send-btn-disabled){background:var(--blue-hover);transform:scale(1.05);box-shadow:0 4px 16px #005ab559}.send-btn-disabled{background:var(--bg-card);color:var(--text-3);cursor:not-allowed;box-shadow:none}.ai-markdown{color:var(--text-1)}.ai-markdown p{margin-bottom:.65em;line-height:1.8}.ai-markdown p:last-child{margin-bottom:0}.ai-markdown ul,.ai-markdown ol{padding-left:1.5em;margin-bottom:.65em}.ai-markdown li{margin-bottom:.3em}.ai-markdown strong{color:var(--text-1);font-weight:600}.ai-markdown a{color:var(--blue);text-decoration:none;border-bottom:1px solid rgba(0,90,181,.25);transition:border-color .15s}.ai-markdown a:hover{border-color:var(--blue)}.ai-markdown code{background:var(--bg-elevated);padding:.15em .45em;border-radius:5px;font-size:.87em;font-family:Courier New,monospace;color:var(--text-1)}.ai-markdown pre{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:1em 1.2em;overflow-x:auto;margin-bottom:.8em}.ai-markdown pre code{background:transparent;padding:0;font-size:.84em;color:var(--text-1)}.ai-markdown h1,.ai-markdown h2,.ai-markdown h3{margin:1em 0 .45em;color:var(--text-1);font-weight:700;letter-spacing:-.01em}.ai-markdown h2{font-size:1.05em;color:var(--blue)}.ai-markdown hr{border:none;border-top:1px solid var(--border);margin:1em 0}.option-chips{display:flex;flex-wrap:wrap;gap:8px;max-width:760px;margin:-12px auto 0;padding:0 20px 0 68px;animation:msgIn .25s cubic-bezier(.22,1,.36,1) both;width:100%}.option-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg);border:1px solid var(--border);border-radius:20px;color:var(--text-1);font-size:13px;font-family:inherit;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;text-align:left;line-height:1.4;box-shadow:var(--shadow-sm)}.option-chip:hover{border-color:var(--blue);background:var(--blue-light);box-shadow:0 2px 8px #005ab51f}.option-chip-letter{font-size:11px;font-weight:700;color:var(--blue);background:var(--blue-light);border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.option-chip-selected{border-color:var(--blue);background:var(--blue-light);color:var(--blue);box-shadow:0 0 0 1px var(--blue);font-weight:600}.option-chip-selected .option-chip-letter{background:var(--blue);color:#fff}.option-chip-selected:hover{background:#005ab524}.option-chip-all{border-style:dashed;color:var(--text-2)}.option-chip-all:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-light)}.option-chip-other{border-style:dashed;color:var(--text-2)}.option-chip-other:hover{border-color:var(--border-hover);background:var(--bg-surface);box-shadow:none}.option-submit-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 20px;background:var(--blue);color:#fff;border:none;border-radius:20px;font-size:13px;font-family:inherit;font-weight:600;cursor:pointer;transition:background .15s,box-shadow .15s;box-shadow:0 2px 8px #005ab540;animation:msgIn .2s cubic-bezier(.22,1,.36,1) both}.option-submit-btn:hover{background:var(--blue-hover);box-shadow:0 4px 12px #005ab559}.generating-status{display:flex;align-items:center;gap:8px;max-width:760px;margin:0 auto;padding:4px 20px 4px 72px;width:100%;font-size:12px;color:var(--text-3);font-weight:500;letter-spacing:.02em}.generating-dots{display:flex;gap:3px}.generating-dots span{width:4px;height:4px;border-radius:50%;background:var(--blue);animation:bounce 1.2s infinite ease-in-out;display:inline-block}.generating-dots span:nth-child(1){animation-delay:0s}.generating-dots span:nth-child(2){animation-delay:.2s}.generating-dots span:nth-child(3){animation-delay:.4s}.typing{display:flex;gap:5px;padding:4px 0}.typing span{width:8px;height:8px;border-radius:50%;background:var(--bg-card);animation:bounce 1.2s infinite ease-in-out;display:inline-block}.typing span:nth-child(1){animation-delay:0s}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-6px);opacity:1}}@media(max-width:640px){.sidebar{position:fixed;top:0;left:0;height:100vh;z-index:100;width:0}.sidebar-open{width:280px}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.mobile-only{display:flex!important}.logo-sub,.dept-badge{display:none}.chat-window{padding:16px 0 8px;gap:18px}.message-row{padding:0 14px}.message-wrap-user{max-width:80%}.option-chips{padding:0 14px 0 54px}.input-bar{padding:0 0 16px}.input-bar-inner{padding:0 12px}}
