:root{color:#16231e;font-synthesis:none;--green:#155c45;--green-dark:#0c3f2f;--mint:#dff2e9;--line:#dce3dd;--muted:#68756e;background:#f1f4f0;font-family:Inter,Pretendard,Noto Sans KR,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,textarea{font:inherit}button{cursor:pointer}.shell{background:#fff;grid-template-columns:310px minmax(0,1fr);max-width:1600px;height:100vh;margin:0 auto;display:grid;box-shadow:0 0 50px #17302614}.sidebar{border-right:1px solid var(--line);background:#f7f9f6;flex-direction:column;gap:34px;padding:38px 28px 28px;display:flex}.eyebrow{color:var(--green);letter-spacing:.16em;font-size:11px;font-weight:800}h1{letter-spacing:-.04em;margin:8px 0;font-size:29px}.muted{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.sidebar h2{margin:0 0 12px;font-size:13px}.course-list{gap:8px;display:grid}.course-option{border:1px solid #0000;border-radius:12px;gap:10px;padding:12px;transition:all .18s;display:flex}.course-option:hover{background:#fff}.course-option.selected{background:#fff;border-color:#cadbd2;box-shadow:0 3px 12px #1242300d}.course-option input{accent-color:var(--green);width:16px}.course-option span{gap:3px;display:grid}.course-option strong{font-size:14px}.course-option small{color:var(--muted);font-size:11px}.index-status{color:var(--muted);align-items:center;gap:8px;margin-top:auto;font-size:12px;display:flex}.status-dot{background:#c5ccc7;border-radius:50%;width:8px;height:8px}.status-dot.ready{background:#28a66f;box-shadow:0 0 0 4px #dff2e9}.secondary{border:1px solid var(--green);color:var(--green);background:0 0;border-radius:10px;padding:11px;font-weight:700}.chat-panel{background:#fff;grid-template-rows:68px minmax(0,1fr) auto;min-width:0;display:grid}.chat-panel>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:0 30px;display:flex}.chat-panel>header div{gap:3px;display:grid}.chat-panel>header strong{font-size:15px}.chat-panel>header span{color:var(--muted);font-size:11px}.clear{color:var(--muted);background:0 0;border:0;font-size:12px}.clear:disabled{opacity:.35;cursor:default}.conversation{padding:38px max(30px,8vw);overflow-y:auto}.empty-state{text-align:center;max-width:660px;margin:10vh auto 0}.mark,.avatar{color:#fff;background:var(--green);place-items:center;font-weight:800;display:grid}.mark{border-radius:17px;width:52px;height:52px;margin:0 auto 20px;font-size:22px;box-shadow:0 12px 30px #155c452e}.empty-state h2{letter-spacing:-.03em;margin:0 0 10px;font-size:24px}.empty-state>p{color:var(--muted);max-width:520px;margin:0 auto;line-height:1.7}.suggestions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:28px;display:flex}.suggestions button{border:1px solid var(--line);color:#405048;background:#fff;border-radius:999px;padding:10px 13px;font-size:12px}.suggestions button:hover{color:var(--green);border-color:#8db5a3}.message{gap:14px;max-width:880px;margin:0 auto 34px;display:flex}.message.user{flex-direction:row-reverse}.avatar{border-radius:11px;flex:0 0 34px;width:34px;height:34px;font-size:12px}.user .avatar{color:#405048;background:#e8ede9}.message-body{min-width:0;max-width:calc(100% - 50px)}.answer{font-size:14px;line-height:1.75}.user .answer{white-space:pre-wrap;background:var(--green);color:#fff;border-radius:16px 4px 16px 16px;padding:11px 15px}.assistant .answer p{margin:0 0 12px}.assistant .answer>:last-child{margin-bottom:0}.assistant .answer ul,.assistant .answer ol{margin:8px 0 12px;padding-left:22px}.assistant .answer li{margin:3px 0}.assistant .answer strong{color:var(--green-dark);font-weight:800}.assistant .answer a{color:var(--green);text-underline-offset:3px}.assistant .answer code{background:#eef3ef;border-radius:5px;padding:2px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.assistant .answer pre{background:#eef3ef;border-radius:9px;padding:12px;overflow-x:auto}.assistant .answer pre code{background:0 0;padding:0}.assistant .answer blockquote{color:#536159;border-left:3px solid #a9c8b9;margin:10px 0 12px;padding-left:12px}.mode-note{color:#755b22;background:#fff6db;border-radius:6px;margin-top:10px;padding:5px 8px;font-size:10px;display:inline-block}.sources{gap:8px;margin-top:18px;display:grid}.source-card{color:inherit;border:1px solid var(--line);background:#fbfcfb;border-radius:12px;padding:13px 15px;text-decoration:none;transition:all .15s;display:block}a.source-card:hover{border-color:#91b6a5;transform:translateY(-1px)}.source-meta{color:var(--green);gap:8px;margin-bottom:7px;font-size:10px;font-weight:700;display:flex}.source-card strong{font-size:12px}.source-card p{color:#536159;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 0;font-size:11px;line-height:1.55;display:-webkit-box;overflow:hidden}.source-card small{color:#9a6728;margin-top:7px;display:block}.thinking{gap:4px;padding:10px;display:flex}.thinking i{background:#86a396;border-radius:50%;width:6px;height:6px;animation:1s infinite alternate pulse}.thinking i:nth-child(2){animation-delay:.2s}.thinking i:nth-child(3){animation-delay:.4s}@keyframes pulse{to{opacity:.25;transform:translateY(-3px)}}.chat-panel>footer{border-top:1px solid var(--line);background:#fffffff5;padding:18px max(30px,8vw) 14px}form{border:1px solid #cfdad3;border-radius:15px;align-items:flex-end;gap:10px;max-width:880px;margin:0 auto;padding:8px 8px 8px 15px;display:flex;box-shadow:0 8px 24px #20392f0f}textarea{resize:vertical;color:#16231e;border:0;outline:0;flex:1;min-height:38px;max-height:130px;padding:9px 0}form button{background:var(--green);color:#fff;border:0;border-radius:10px;padding:10px 17px;font-weight:700}form button:disabled{opacity:.35;cursor:default}footer>small{color:#87918b;text-align:center;margin-top:9px;font-size:10px;display:block}.error{color:#9a302a;max-width:880px;margin:0 auto 8px;font-size:12px}@media (width<=760px){.shell{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);gap:14px;padding:18px}.sidebar>div:first-child .muted,.sidebar section h2{display:none}h1{margin:4px 0 0;font-size:20px}.course-list{grid-template-columns:repeat(3,1fr)}.course-option{padding:8px}.course-option small,.index-status,.secondary{display:none}.chat-panel>header{padding:0 18px}.conversation{padding:24px 16px}.chat-panel>footer{padding:12px 14px 10px}.empty-state{margin-top:5vh}}
