.side-panel{width:300px;background:var(--ipg-surface);color:var(--ipg-text-primary);padding:24px;overflow-y:auto;display:flex;flex-direction:column;border-right:1px solid var(--ipg-border);box-shadow:var(--ipg-shadow-soft)}.panel-header{margin-bottom:28px;border-bottom:1px solid var(--ipg-border);padding-bottom:18px}.ipg-logo{width:144px;max-width:100%;margin-bottom:10px;display:block}.panel-header h1{font-size:24px;font-weight:700;margin-bottom:4px;color:var(--ipg-blue)}.panel-subtitle{margin:0 0 12px;color:var(--ipg-text-secondary);font-size:13px}.status-indicator{display:flex;align-items:center;gap:8px;font-size:12px;padding:8px 12px;background:#f4f8fd;border:1px solid #dbe7f3;border-radius:8px;width:fit-content;color:var(--ipg-blue-deep)}.status-dot{width:8px;height:8px;border-radius:50%;background:#f58a8a;animation:pulse 2s infinite}.status-indicator.connected .status-dot{background:var(--ipg-yellow);animation:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.panel-section{margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--ipg-border)}.panel-section:last-of-type{border-bottom:none}.section-title{font-size:13px;font-weight:600;margin-bottom:14px;text-transform:uppercase;letter-spacing:.6px;color:var(--ipg-text-secondary)}.version-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}.version-button{padding:10px 12px;background:#fff;color:var(--ipg-blue-deep);border:1px solid #d7e4f1;border-radius:8px;font-size:13px;font-weight:600;transition:all .2s ease;cursor:pointer}.version-button:hover{border-color:var(--ipg-blue);background:#f8fbff}.version-button.active{background:var(--ipg-blue);color:#fff;border-color:var(--ipg-blue);font-weight:600;box-shadow:0 6px 14px #5c87b447}.current-selection{font-size:12px;color:var(--ipg-text-secondary);margin:0;padding:10px;background:#fcfdff;border:1px solid var(--ipg-border);border-radius:8px;text-align:center}.panel-footer{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:10px}.info-box{background:linear-gradient(135deg,#fff,#fffaf0);border:1px solid #f0d8aa;padding:12px 12px 10px;border-radius:8px;font-size:12px;line-height:1.5}.info-box p{margin:0 0 8px}.info-box p:last-child{margin-bottom:0}.info-box strong{font-weight:600;color:var(--ipg-blue)}.panel-copyright{font-size:11px;color:var(--ipg-text-secondary);text-align:right}@media (max-width: 768px){.side-panel{width:100%;padding:16px;max-height:none;flex-direction:row;gap:24px}.panel-header{min-width:220px}.version-list{grid-template-columns:repeat(3,1fr)}.panel-section{flex:1;border-bottom:none;padding-bottom:0;margin-bottom:0}.panel-footer{min-width:220px}}.chat-window{flex:1;display:flex;flex-direction:column;background:var(--ipg-surface);border-left:1px solid var(--ipg-border)}.chat-messages{flex:1;overflow-y:auto;padding:28px;display:flex;flex-direction:column;gap:14px;background:linear-gradient(180deg,#fff,#fdfefe)}.message{display:flex;animation:fadeIn .25s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-user{justify-content:flex-end}.message-bot{justify-content:flex-start}.message-content{max-width:70%;padding:12px 15px;border-radius:14px;background:#f7fbff;border:1px solid #dce7f2;word-wrap:break-word}.message-user .message-content{background:linear-gradient(135deg,var(--ipg-blue),var(--ipg-blue-deep));border-color:transparent;color:#fff;box-shadow:0 8px 20px #5c87b440}.message-text{margin:0;line-height:1.5;white-space:pre-wrap;color:inherit}.message-text.loading{opacity:.75;animation:blink 1.4s infinite}@keyframes blink{0%,50%,to{opacity:.7}25%,75%{opacity:1}}.message-sources{margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,0,0,.1);font-size:12px}.message-sources strong{display:block;margin-bottom:6px;color:var(--ipg-yellow-deep)}.message-sources ul{list-style:none;padding:0;margin:0}.message-sources li{padding:4px 0;opacity:.9}.message-sources li:before{content:"→ ";margin-right:4px}.message-time{display:block;font-size:11px;opacity:.6;margin-top:6px;text-align:right}.chat-input-area{display:flex;gap:10px;padding:16px 24px 18px;border-top:1px solid var(--ipg-border);background:#fff}.chat-input{flex:1;padding:12px 14px;border:1px solid #cfddeb;border-radius:10px;resize:none;max-height:100px;font-size:14px;background:#fff;transition:border-color .2s}.chat-input:focus{border-color:var(--ipg-blue);box-shadow:0 0 0 3px #5c87b42e}.chat-input:disabled{background:#f0f0f0;cursor:not-allowed}.send-button{width:44px;height:44px;border-radius:10px;background:var(--ipg-yellow);color:var(--ipg-blue-deep);display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0;box-shadow:0 6px 14px #f8aa2a57}.send-button:hover:not(:disabled){background:var(--ipg-yellow-deep);transform:translateY(-1px)}.send-button:disabled{background:#ccc;cursor:not-allowed}@media (max-width: 768px){.message-content{max-width:90%}.chat-messages{padding:16px}.chat-input-area{padding:12px 16px}}.app-container{display:flex;width:100%;height:100%;background:var(--ipg-bg-soft)}@media (max-width: 768px){.app-container{flex-direction:column;height:auto;min-height:100%}}*{margin:0;padding:0;box-sizing:border-box}:root{--ipg-blue: rgb(92, 135, 180);--ipg-blue-deep: rgb(64, 112, 162);--ipg-yellow: rgb(248, 170, 42);--ipg-yellow-deep: rgb(226, 145, 23);--ipg-surface: rgb(255, 255, 255);--ipg-bg-soft: rgb(247, 250, 253);--ipg-border: rgb(226, 235, 244);--ipg-text-primary: rgb(28, 38, 52);--ipg-text-secondary: rgb(92, 107, 126);--ipg-shadow-soft: 0 12px 26px rgba(31, 56, 84, .08)}html,body,#root{width:100%;height:100%}body{font-family:Segoe UI,Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--ipg-bg-soft);color:var(--ipg-text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#edf2f7}::-webkit-scrollbar-thumb{background:#c2d3e3;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#96b0ca}button{border:none;cursor:pointer;font-family:inherit;transition:all .2s ease}button:disabled{opacity:.5;cursor:not-allowed}input,textarea{font-family:inherit;border:none;padding:8px;border-radius:4px}input:focus,textarea:focus{outline:none}
