:root{--bg: #202329;--sidebar: #191b21;--card: #2b2f38;--card-2: #333842;--line: #33373f;--text: #e9ebee;--text-2: #b6bcc6;--muted: #868d99;--accent: #4ea8f5;--accent-2: #8dcbff;--green: #35c759;--amber: #e2b23c;--orange: #e8622c;--radius: 14px;--sidebar-w: 296px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}input,textarea{font:inherit;color:inherit}a{color:inherit}.app{display:flex;height:100%}.main{flex:1;min-width:0;display:flex;flex-direction:column;position:relative}.side{width:var(--sidebar-w);flex:none;background:var(--sidebar);display:flex;flex-direction:column;transition:width .18s ease,margin-left .18s ease}.side.hide{margin-left:calc(var(--sidebar-w) * -1)}.side-top{display:flex;align-items:center;gap:10px;padding:22px 22px 10px}.brand{font-size:25px;font-weight:700;letter-spacing:-.5px;margin-right:auto}.icon-btn{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;color:var(--text-2)}.icon-btn:hover{background:#ffffff12;color:var(--text)}.new-chat{display:flex;align-items:center;gap:12px;padding:10px 22px;font-size:15px;font-weight:500;color:var(--text)}.new-chat:hover{background:#ffffff0d}.side-label{display:flex;align-items:center;gap:6px;padding:12px 22px 6px;font-size:13px;color:var(--muted)}.side-label .dots{margin-left:auto;letter-spacing:2px}.side-list{flex:1;overflow-y:auto;padding-bottom:12px}.side-list::-webkit-scrollbar{width:8px}.side-list::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:4px}.side-item{display:flex;align-items:center;gap:8px;width:100%;padding:11px 22px;font-size:15px;text-align:left;color:var(--text)}.side-item:hover{background:#ffffff0d}.side-item.on{background:#ffffff14}.side-item .t{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-item .x{opacity:0;color:var(--muted);flex:none}.side-item:hover .x,.side-item.on .x{opacity:1}.side-item .x:hover{color:var(--text)}.side-foot{display:flex;align-items:center;gap:12px;padding:16px 22px;border-top:1px solid #ffffff0f}.avatar{width:38px;height:38px;flex:none;border-radius:50%;border:1px solid #ffffff2e;display:grid;place-items:center;color:var(--text-2)}.side-foot .who{flex:1;min-width:0}.side-foot .nm{font-size:14px;font-weight:600}.side-foot .em{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread{flex:1;overflow-y:auto;padding:28px 40px 24px}.thread::-webkit-scrollbar{width:10px}.thread::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:5px}.wrap{max-width:900px;margin:0 auto}.hero{display:flex;flex-direction:column;align-items:center;padding-top:12vh}.hero-mascot{width:132px;height:132px;border-radius:50%;background:#ffffff08;border:1px solid #ffffff14;display:grid;place-items:center}.hero-title{margin:34px 0 0;font-size:30px;font-weight:600;letter-spacing:-.6px;text-align:center}.suggests{display:grid;grid-template-columns:1fr 1fr;gap:20px;width:100%;max-width:780px;margin-top:76px}.suggest{background:var(--card);border:1px solid transparent;border-radius:var(--radius);padding:26px 20px;text-align:center}.suggest:hover{border-color:#ffffff1f}.suggest.on{border-color:var(--accent);background:#24425c}.suggest .q{font-size:13px;color:var(--muted)}.suggest .t{margin:12px 0 14px;font-size:21px;font-weight:700}.suggest.on .t{color:var(--accent-2)}.suggest .s{font-size:13px;color:var(--text-2)}.turn{margin-bottom:30px}.turn.me{display:flex;justify-content:flex-end}.bubble-me{background:var(--card);border-radius:16px;padding:13px 20px;font-size:15px;max-width:70%}.turn.ai{display:flex;gap:16px;align-items:flex-start}.ai-mascot{width:48px;flex:none;margin-top:-4px}.ai-body{flex:1;min-width:0}.ai-title{font-size:21px;font-weight:700;letter-spacing:-.4px}.ai-text{margin-top:14px;font-size:15px;line-height:1.7;color:var(--text-2)}.ai-note{margin-top:14px;font-size:13px;color:var(--muted)}.ai-ask{margin-top:12px;font-size:15px;font-weight:600}.stage{margin-top:10px;font-size:14px;color:var(--muted)}.caret{display:inline-block;width:7px;height:16px;background:var(--accent);vertical-align:-2px;margin-left:2px;animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:0}}.card{background:var(--card);border-radius:var(--radius);padding:22px;margin-top:18px}.card-head{display:flex;align-items:baseline;gap:12px}.card-title{font-size:18px;font-weight:700}.card-sub{font-size:14px;color:var(--muted)}.bars{display:block;width:100%;max-width:470px;margin:8px auto 0}.card-btns{display:flex;gap:14px;margin-top:18px}.pill{background:var(--card-2);border-radius:10px;padding:12px 18px;font-size:14px;display:inline-flex;align-items:center;gap:10px}.pill:hover{background:#3d434e}.pill .arrow{color:var(--text-2)}.alts{display:flex;gap:18px;margin-top:18px;flex-wrap:wrap}.alt{background:var(--card);border-radius:var(--radius);padding:20px;width:214px}.alt .rank{font-size:13px;color:var(--muted)}.alt .nm{margin-top:6px;font-size:17px;font-weight:700;color:var(--accent-2)}.alt .cat{margin-top:12px;font-size:14px;color:var(--text-2)}.alt .pill{margin-top:16px;padding:9px 14px;font-size:13px}.badge{display:inline-block;margin-top:14px;padding:5px 12px;border-radius:999px;font-size:13px;font-weight:600;border:1px solid currentColor}.badge.한적{color:var(--green)}.badge.보통{color:var(--amber)}.badge.혼잡{color:var(--orange)}.donut-wrap{display:grid;place-items:center;padding:16px 0 6px}.legend{display:flex;justify-content:center;gap:22px;margin-top:10px}.legend .it{display:flex;align-items:center;gap:8px;font-size:15px}.legend .badge{margin:0;padding:4px 12px}.chips-row{display:flex;align-items:center;gap:14px;margin-top:16px}.chips-row .k{font-size:14px;color:var(--text-2);width:92px;flex:none}.chip{background:var(--card-2);border-radius:8px;padding:9px 16px;font-size:14px}.chip:hover{background:#3d434e}.actions{display:flex;gap:22px;margin-top:22px}.action{flex:1;max-width:340px;background:var(--card);border:1px solid #ffffff0f;border-radius:var(--radius);padding:20px;font-size:15px}.action:hover{border-color:#ffffff2b}.composer{padding:0 40px 34px}.composer.center{position:absolute;left:0;right:0;bottom:0}.composer-inner{max-width:620px;margin:0 auto;position:relative}.composer input{width:100%;height:62px;background:var(--card-2);border:1px solid transparent;border-radius:999px;padding:0 68px 0 26px;font-size:15px;outline:none}.composer input:focus{border-color:var(--accent)}.composer input::placeholder{color:var(--muted)}.send{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:var(--accent);display:grid;place-items:center;color:#fff}.send:disabled{opacity:.45;cursor:default}.landing{height:100%;display:flex;flex-direction:column;align-items:center;padding:9vh 20px 40px;overflow-y:auto;background:radial-gradient(1200px 520px at 50% -8%,#2a6ba8,#1d3b5c 32%,#141922 62%,#10141b)}.landing h1{margin:0;font-size:38px;font-weight:800;line-height:1.5;text-align:center;letter-spacing:-1px;background:linear-gradient(180deg,#cfe6ff,#8fbdec);-webkit-background-clip:text;background-clip:text;color:transparent}.landing h1 .em{color:#fff;-webkit-text-fill-color:#fff}.speech{margin-top:58px;width:100%;max-width:560px}.speech .b{position:relative;display:inline-block;background:#2c3138cc;border:1px solid #ffffff1a;border-radius:22px;padding:13px 22px;font-size:14px;color:#e6e9ee;margin-bottom:22px}.speech .b:after{content:"";position:absolute;bottom:-9px;width:16px;height:12px;background:inherit;border-left:1px solid #ffffff1a;clip-path:polygon(0 0,100% 0,0 100%)}.speech .l{margin-left:0}.speech .l:after{left:18px}.speech .r{float:right}.speech .r:after{right:18px;clip-path:polygon(0 0,100% 0,100% 100%)}.landing-mascot{margin:26px 0 54px}.login-card{background:#3a3f47e6;border-radius:20px;padding:26px 46px 30px;text-align:center}.login-card .t{font-size:15px;font-weight:700}.social{display:flex;gap:22px;margin-top:20px}.social button{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:22px;font-weight:800}.social .k{background:#fee500;color:#3c1e1e}.social button:hover{filter:brightness(1.08)}.admin-link{margin-top:26px;font-size:13px;color:#aab3bf;border-bottom:1px solid #aab3bf66;padding-bottom:2px}.admin-form{margin-top:22px;display:grid;gap:10px;width:260px}.admin-form input{height:44px;border-radius:10px;padding:0 14px;background:#ffffff14;border:1px solid #ffffff24;outline:none}.admin-form input:focus{border-color:var(--accent)}.admin-form .go{height:44px;border-radius:10px;background:var(--accent);color:#fff;font-weight:700}.err{margin-top:14px;font-size:13px;color:#ff9a86}.admin{flex:1;overflow-y:auto;padding:28px 34px 40px}.admin::-webkit-scrollbar{width:10px}.admin::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:5px}.kpis{background:var(--card);border-radius:var(--radius);padding:22px 26px}.kpi-warn{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--accent);margin-bottom:20px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.kpi .k{font-size:17px;font-weight:700}.kpi .v{margin-top:12px;font-size:40px;font-weight:800;color:var(--accent)}.kpi .v .u{font-size:17px;font-weight:500;color:var(--muted);margin-left:6px}.admin-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}.tbl{width:100%;border-collapse:collapse;font-size:15px}.tbl th{text-align:left;font-weight:700;color:var(--text);padding:14px 8px;white-space:nowrap}.tbl td{padding:14px 8px;color:var(--text-2)}.tbl td.n{color:var(--text)}.admin-tools{display:flex;gap:12px;margin-left:auto}.search-box{position:relative;width:300px}.search-box input{width:100%;height:40px;background:transparent;border:1px solid #ffffff26;border-radius:10px;padding:0 12px 0 38px;outline:none}.search-box .ic{position:absolute;left:12px;top:10px;color:var(--muted)}.sel{height:40px;min-width:108px;background:transparent;color:var(--text);border:1px solid #ffffff26;border-radius:10px;padding:0 10px}.sel option{background:var(--card)}.state{padding:5px 16px;border-radius:999px;font-size:13px;border:1px solid currentColor}.state.active{color:var(--text-2);background:#ffffff12}.state.suspended{color:var(--orange)}.empty{padding:40px 0;text-align:center;color:var(--muted);font-size:15px}.ai-text .mdp{margin:0 0 10px}.ai-text .mdp:last-child{margin-bottom:0}.ai-text .mdlist{margin:0 0 10px;padding-left:20px}.ai-text .mdlist li{margin-bottom:4px}.ai-text strong{color:var(--text);font-weight:700}.detail-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:var(--bg);display:flex;flex-direction:column}.detail-top{display:flex;align-items:center;gap:12px;padding:16px 24px;border-bottom:1px solid #ffffff0f}.detail-title{font-size:16px;font-weight:700}.detail-body{flex:1;overflow-y:auto;padding:20px 40px 40px}.detail-body::-webkit-scrollbar{width:10px}.detail-body::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:5px}.detail-hero{width:100%;max-height:300px;object-fit:cover;border-radius:var(--radius)}.detail-name{margin-top:16px;font-size:22px;font-weight:700}.carousel{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px}.carousel img{height:190px;border-radius:10px;flex:none}.kv{width:100%;border-collapse:collapse;margin-top:12px;font-size:14px}.kv td{padding:7px 0;vertical-align:top;color:var(--text-2)}.kv td:first-child{width:110px;color:var(--muted)}.similar-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;cursor:pointer;font-size:14.5px}.similar-row:hover{color:var(--accent-2)}.lean,.body{transform-box:view-box;transform-origin:256px 540px}.lean{transition:transform .55s cubic-bezier(.22,1,.36,1)}.eye-look{transition:transform .38s cubic-bezier(.22,1,.36,1)}.eye{transform-box:view-box}.eye--l{transform-origin:210.3px 333.8px}.eye--r{transform-origin:340.3px 310.8px}.mouth{transform-box:view-box;transform-origin:292px 408px;opacity:0;transition:opacity .22s}.think-dots,.sparks,.tears,.shock{opacity:0;transition:opacity .3s}.is-idle .body{animation:bob 3.6s ease-in-out infinite}.is-idle .eye{animation:blink 4.6s infinite}.is-idle .eye--r{animation-delay:.06s}.is-idle .m-smile{opacity:1}@keyframes bob{0%,to{transform:translateY(0) rotate(0) scale(1)}30%{transform:translateY(-12px) rotate(-1.6deg) scale(.99,1.01)}60%{transform:translateY(2px) rotate(1deg) scale(1.015,.985)}}@keyframes blink{0%,90%,to{transform:scaleY(1)}93%{transform:scaleY(.08)}96%{transform:scaleY(1)}97.5%{transform:scaleY(.5)}}.is-thinking .body{animation:ponder 3.2s ease-in-out infinite}.is-thinking .eye{animation:squint 3.2s ease-in-out infinite}.is-thinking .m-line,.is-thinking .think-dots{opacity:1}.is-thinking .dot{animation:dotPulse 1.5s ease-in-out infinite}.is-thinking .dot:nth-child(2){animation-delay:.18s}.is-thinking .dot:nth-child(3){animation-delay:.36s}@keyframes ponder{0%,to{transform:rotate(-3.5deg) translateY(2px)}50%{transform:rotate(3deg) translateY(-3px)}}@keyframes squint{0%,to{transform:scaleY(.5)}50%{transform:scaleY(.38)}}@keyframes dotPulse{0%,to{transform:translateY(0);opacity:.35}50%{transform:translateY(-5px);opacity:1}}.is-eureka .body{animation:jump .95s cubic-bezier(.34,1.56,.64,1)}.is-eureka .eye{animation:wide .95s ease-out}.is-eureka .m-open,.is-eureka .sparks{opacity:1}.is-eureka .spark{animation:sparkPop .9s ease-out}.is-eureka .spark:nth-child(2){animation-delay:.1s}.is-eureka .spark:nth-child(3){animation-delay:.2s}@keyframes jump{0%{transform:scale(1) translateY(0)}16%{transform:scale(1.14,.86) translateY(12px)}44%{transform:scale(.93,1.1) translateY(-38px) rotate(-4deg)}70%{transform:scale(1.05,.95) translateY(4px) rotate(2deg)}to{transform:scale(1) translateY(0)}}@keyframes wide{0%{transform:scaleY(.4)}30%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes sparkPop{0%{transform:scale(0) rotate(0);opacity:0}35%{transform:scale(1.2) rotate(60deg);opacity:1}to{transform:scale(.2) rotate(140deg);opacity:0}}.is-typing .body{animation:lookon 4.2s ease-in-out infinite}.is-typing .eye{animation:blink 5.6s infinite}.is-typing .m-line{opacity:1}@keyframes lookon{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(.8deg)}}.is-sad .body{animation:slump 5s ease-in-out infinite}.is-sad .eye{animation:sadEye 5s ease-in-out infinite}.is-sad .m-frown,.is-sad .tears{opacity:1}.drop{transform-box:fill-box;transform-origin:center}.is-sad .drop{animation:drip 2.8s cubic-bezier(.5,0,.9,.55) infinite}.is-sad .drop:nth-child(2){animation-delay:1.4s}@keyframes slump{0%,to{transform:translateY(14px) rotate(-2.5deg) scale(1.01,.96)}50%{transform:translateY(18px) rotate(-1.5deg) scaleY(.98)}}@keyframes sadEye{0%,to{transform:translateY(6px) scaleY(.45)}50%{transform:translateY(8px) scaleY(.38)}}@keyframes drip{0%{transform:translateY(-2px) scale(.35);opacity:0}12%{transform:translateY(2px) scale(1);opacity:.95}22%{transform:translateY(6px) scale(.92,1.12);opacity:.95}75%{transform:translateY(96px) scale(.86,1.2);opacity:.55}88%{transform:translateY(124px) scale(.8,1.2);opacity:0}to{transform:translateY(124px) scale(.8,1.2);opacity:0}}.is-startle .body{animation:startle 1.15s cubic-bezier(.22,1,.36,1)}.is-startle .eye{animation:eyesPop 1.15s ease-out}.is-startle .m-open,.is-startle .shock{opacity:1}.is-startle .zap{animation:zapPop .5s ease-out}.is-startle .zap:nth-child(2){animation-delay:.04s}.is-startle .zap:nth-child(3){animation-delay:.08s}.is-startle .zap:nth-child(4){animation-delay:.02s}.zap{transform-box:fill-box;transform-origin:center}@keyframes startle{0%{transform:scale(1) translateY(0)}7%{transform:scale(.84,1.2) translateY(-26px)}18%{transform:scale(1.12,.9) translateY(6px) rotate(-4deg)}30%{transform:scale(.98,1.03) translateY(-8px) rotate(3.5deg)}44%{transform:scale(1.02,.98) translateY(2px) rotate(-2.2deg)}60%{transform:translateY(-2px) rotate(1.2deg)}78%{transform:rotate(-.5deg)}to{transform:scale(1) translateY(0) rotate(0)}}@keyframes eyesPop{0%{transform:scale(1)}7%{transform:scale(1.5)}35%{transform:scale(1.22)}70%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes zapPop{0%{transform:scale(.2);opacity:0}30%{transform:scale(1.15);opacity:1}to{transform:scale(1.4);opacity:0}}@media(prefers-reduced-motion:reduce){.body,.eye,.dot,.spark,.drop,.zap{animation:none!important}.lean,.eye-look{transition:none}}.nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:11px 22px;font-size:15px;text-align:left;color:var(--text-2)}.nav-item:hover{background:#ffffff0d;color:var(--text)}.nav-item.on{background:#ffffff14;color:var(--text)}.side-foot{position:relative}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:8}.acct-menu{position:absolute;left:22px;right:22px;bottom:64px;z-index:9;background:var(--card-2);border:1px solid var(--line);border-radius:12px;padding:6px;box-shadow:0 8px 24px #0006}.acct-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:8px;font-size:14px;color:var(--text);text-align:left}.acct-menu button:hover{background:#ffffff10}.acct-menu button.danger{color:var(--orange)}.kpi-warn.ok{color:var(--muted)}
