:root{--odin-primary:#2b6cb0;--odin-accent:#d4a843;--odin-bg:#1a202c;--odin-surface:#2d3748;--odin-surface-hover:#4a5568;--odin-text:#e2e8f0;--odin-text-muted:#a0aec0;--odin-border:#4a5568;--odin-success:#48bb78;--odin-warning:#ecc94b;--odin-error:#fc8181;--glass-bg:#2d3748cc;--glass-blur:blur(12px);--glass-border:1px solid #ffffff1a;--statusbar-height:28px;--chat-panel-width:380px;--chat-drawer-width:min(760px, 92vw);--transition-fast:.15s ease;--transition-normal:.25s ease}body{background:var(--odin-bg);color:var(--odin-text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}.statusbar{height:var(--statusbar-height);background:var(--odin-surface);border-top:1px solid var(--odin-border);color:var(--odin-text-muted);align-items:center;gap:16px;padding:0 16px;font-size:11px;display:flex}.statusbar .dot{border-radius:50%;width:6px;height:6px;margin-right:4px;display:inline-block}.statusbar .dot.ok{background:var(--odin-success)}.statusbar .dot.err{background:var(--odin-error)}.chat-messages{flex-direction:column;flex:1;gap:8px;padding:12px;display:flex;overflow-y:auto}.chat-bubble{word-break:break-word;border-radius:12px;max-width:85%;padding:8px 12px;font-size:13px;line-height:1.5}.chat-bubble.user{background:linear-gradient(135deg, var(--odin-primary), #3b82c4);color:#fff;border-bottom-right-radius:4px;align-self:flex-end;box-shadow:0 1px 3px #00000040}.chat-bubble.assistant{background:var(--odin-surface);color:var(--odin-text);border:var(--glass-border);border-bottom-left-radius:4px;align-self:flex-start}.chat-bubble.error{border:1px solid var(--odin-error);color:var(--odin-text);background:#fc81811a;border-bottom-left-radius:4px;align-self:flex-start}.chat-bubble.assistant .md-body{font-size:13px;line-height:1.5}.chat-bubble.assistant .md-body>:first-child{margin-top:0}.chat-bubble.assistant .md-body>:last-child{margin-bottom:0}.chat-bubble.assistant .md-body p{margin:4px 0}.chat-bubble.assistant .md-body h1,.chat-bubble.assistant .md-body h2,.chat-bubble.assistant .md-body h3,.chat-bubble.assistant .md-body h4{color:var(--odin-text);margin:8px 0 4px;font-weight:600}.chat-bubble.assistant .md-body h1{font-size:15px}.chat-bubble.assistant .md-body h2{font-size:14px}.chat-bubble.assistant .md-body h3,.chat-bubble.assistant .md-body h4{font-size:13px}.chat-bubble.assistant .md-body ul,.chat-bubble.assistant .md-body ol{margin:4px 0;padding-left:20px}.chat-bubble.assistant .md-body li{margin:2px 0}.chat-bubble.assistant .md-body code{background:#ffffff14;border-radius:3px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.chat-bubble.assistant .md-body pre{background:#00000040;border-radius:6px;margin:6px 0;padding:8px 10px;font-size:12px;overflow-x:auto}.chat-bubble.assistant .md-body pre code{background:0 0;padding:0}.chat-bubble.assistant .md-body a{color:var(--odin-accent);text-decoration:underline}.chat-bubble.assistant .md-body blockquote{border-left:3px solid var(--odin-accent);color:var(--odin-text-muted);background:#ffffff0a;margin:4px 0;padding:4px 10px}.chat-bubble.assistant:has(table){width:100%;max-width:100%}.chat-bubble.assistant .md-body .md-table-wrap{border:1px solid var(--odin-border);border-radius:8px;max-width:100%;margin:6px 0;overflow:hidden}.chat-bubble.assistant .md-body table{border-collapse:collapse;table-layout:auto;width:100%;margin:0;font-size:12px}.chat-bubble.assistant .md-body th,.chat-bubble.assistant .md-body td{border-bottom:1px solid var(--odin-border);text-align:left;vertical-align:top;white-space:normal;word-break:normal;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;padding:6px 10px}.chat-bubble.assistant .md-body tr:last-child td{border-bottom:none}.chat-bubble.assistant .md-body th{color:var(--odin-text);white-space:nowrap;background:#ffffff0f;font-weight:600}.chat-bubble.assistant .md-body tbody tr:nth-child(2n){background:#ffffff06}.chat-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.chat-action-btn{border:1px solid var(--odin-accent);color:var(--odin-accent);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border-radius:6px;padding:4px 12px;font-size:12px}.chat-action-btn:hover{background:#d4a8431f}.typing-indicator{align-items:center;gap:4px;display:inline-flex}.typing-indicator span{background:var(--odin-text-muted);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite odin-typing;display:inline-block}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes odin-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.tool-call-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid #d4a84359;border-radius:8px;align-self:flex-start;max-width:85%;margin:4px 0;padding:8px 12px;font-size:12px}.tool-call-card .tool-name{color:var(--odin-accent);font-weight:600}.tool-call-head{align-items:center;gap:8px;display:flex}.tool-call-head .tool-latency{color:var(--odin-text-muted);margin-left:auto;font-size:11px}.tool-call-body{border-top:1px solid #ffffff12;margin-top:8px;padding-top:8px}.tool-call-body .io-label{text-transform:uppercase;letter-spacing:.5px;color:var(--odin-text-muted);margin:0 0 3px;font-size:10px}.tool-call-body pre{color:#c9d4e3;background:#0000004d;border-radius:6px;margin:0 0 8px;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;overflow-x:auto}.io-label-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.result-table-wrap{border:1px solid var(--odin-border);border-radius:8px;overflow:hidden}.result-table{border-collapse:collapse;table-layout:auto;width:100%;font-size:12px}.result-table th,.result-table td{border-bottom:1px solid var(--odin-border);text-align:left;vertical-align:top;white-space:normal;word-break:normal;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;padding:6px 10px}.result-table tr:last-child td{border-bottom:none}.result-table th{color:var(--odin-text);white-space:nowrap;background:#ffffff0f;font-weight:600}.result-table tbody tr:nth-child(2n){background:#ffffff06}.ficha{grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-size:12px;display:grid}.ficha dt{color:var(--odin-text-muted)}.ficha dd{color:var(--odin-text);margin:0}.doc-chip-list{flex-direction:column;gap:6px;display:flex}.doc-chip{border:1px solid var(--odin-border);background:#ffffff08;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.doc-chip-icon{color:var(--odin-accent);font-size:20px}.doc-chip-meta{flex-direction:column;min-width:0;display:flex}.doc-chip-name{color:var(--odin-text);font-size:12px;font-weight:600}.doc-chip-sub{color:var(--odin-text-muted);font-size:11px}.doc-chip-acts{gap:6px;margin-left:auto;display:flex}.doc-chip-acts a.chat-action-btn{line-height:1.6;text-decoration:none;display:inline-block}.chat-input-area{border-top:1px solid var(--odin-border);align-items:flex-end;gap:8px;padding:8px 12px;display:flex}.chat-input-area .ant-input{resize:none}.chat-input-area .ant-btn{flex-shrink:0}.chat-fab{z-index:1000;background:var(--odin-primary);color:#fff;cursor:pointer;width:48px;height:48px;transition:transform var(--transition-fast);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:20px;display:flex;position:fixed;bottom:40px;right:20px;box-shadow:0 4px 12px #0000004d}.chat-fab:hover{transform:scale(1.1)}.ant-drawer .ant-drawer-content{background:var(--odin-bg)!important}.page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-header h2{color:var(--odin-text);margin:0;font-size:18px;font-weight:600}.doc-side-panel{top:0;bottom:0;right:var(--chat-drawer-width);width:min(720px, calc(100vw - var(--chat-drawer-width) - 40px));background:var(--odin-bg);border-left:1px solid var(--odin-border);z-index:1001;flex-direction:column;display:flex;position:fixed;box-shadow:-4px 0 16px #00000059}.doc-side-panel-header{border-bottom:1px solid var(--odin-border);color:var(--odin-text);justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.doc-side-panel-header button{color:var(--odin-text-muted);cursor:pointer;background:0 0;border:none;font-size:16px;line-height:1}.doc-side-panel iframe{border:none;flex:1;width:100%}
