.nrui{--bg:#f7f3ed;--bg-dark:#1a1714;--card:#fff;--border:#ddd5c8;--border-lt:#eae4da;--teal:#0f6e56;--teal-mid:#1d9e75;--teal-lt:#dcf0e8;--sky:#185fa5;--sky-lt:#e1edf9;--amber:#ba7517;--amber-lt:#fef0d0;--coral:#993c1d;--coral-lt:#faece7;--text:#1c1916;--text-sec:#6a5c52;--text-mute:#a8998f;--mono:var(--font-code,monospace);--serif:var(--font-reading,Georgia,serif);--sans:var(--font-ui,system-ui,sans-serif);font-family:var(--sans);color:var(--text);font-size:13px;line-height:1.5}.nrui *{box-sizing:border-box;margin:0;padding:0}.nrui .app{border:1px solid var(--border);background:var(--card);border-radius:12px;grid-template-rows:44px 1fr;grid-template-columns:220px 1fr;height:620px;display:grid;overflow:hidden}.nrui .topbar{background:var(--bg-dark);border-bottom:1px solid #ffffff14;grid-column:1/-1;align-items:center;gap:12px;padding:0 16px;display:flex}.nrui .logo{font-family:var(--serif);color:#f7f3ed;letter-spacing:-.01em;flex-shrink:0;align-items:center;gap:8px;font-size:15px;font-weight:400;display:flex}.nrui .session-breadcrumb{color:#f7f3ed61;font-size:11px;font-family:var(--mono);align-items:center;gap:6px;display:flex}.nrui .session-breadcrumb span{color:#f7f3ed99}.nrui .topbar-right{align-items:center;gap:8px;margin-left:auto;display:flex}.nrui .tier-badge{font-size:9.5px;font-family:var(--mono);letter-spacing:.08em;border-radius:3px;padding:2px 7px;font-weight:500}.nrui .tb-session{color:#7fd4b0;background:#1d9e752e}.nrui .tb-space{color:#7eb5e8;background:#185fa52e}.nrui .tb-admin{color:#f7f3ed73;background:#ffffff14}.nrui .avatar{background:var(--teal-mid);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:9px;font-weight:600;display:flex}.nrui .sidebar{background:var(--bg);border-right:1px solid var(--border);flex-direction:column;display:flex;overflow:hidden}.nrui .sidebar-section{font-size:9.5px;font-family:var(--mono);letter-spacing:.1em;color:var(--text-mute);text-transform:uppercase;padding:12px 12px 6px}.nrui .space-header{border-bottom:1px solid var(--border-lt);align-items:center;gap:8px;padding:8px 12px;display:flex}.nrui .space-dot{background:var(--sky);border-radius:50%;flex-shrink:0;width:8px;height:8px}.nrui .space-name{color:var(--text);font-size:12px;font-weight:500}.nrui .session-item{cursor:pointer;align-items:center;gap:8px;padding:7px 12px;display:flex}.nrui .session-item.active{background:var(--teal-lt)}.nrui .session-dot{background:var(--border);border-radius:50%;flex-shrink:0;width:6px;height:6px}.nrui .session-item.active .session-dot{background:var(--teal-mid)}.nrui .session-label{color:var(--text-sec);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.nrui .session-item.active .session-label{color:var(--teal);font-weight:500}.nrui .session-age{color:var(--text-mute);font-size:9.5px;font-family:var(--mono);flex-shrink:0;margin-left:auto}.nrui .sidebar-docs{border-top:1px solid var(--border-lt);flex:1;margin-top:4px;overflow:hidden}.nrui .doc-item{align-items:center;gap:6px;padding:6px 12px;display:flex}.nrui .doc-icon{color:var(--text-mute);flex-shrink:0;font-size:12px}.nrui .doc-name{color:var(--text-sec);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.nrui .doc-tag{font-size:9px;font-family:var(--mono);border-radius:2px;flex-shrink:0;padding:1px 5px}.nrui .dt-session{background:var(--teal-lt);color:var(--teal)}.nrui .dt-space{background:var(--sky-lt);color:var(--sky)}.nrui .dt-admin{background:var(--border-lt);color:var(--text-mute)}.nrui .main{flex-direction:column;display:flex;overflow:hidden}.nrui .chat-scroll{background:var(--bg);flex-direction:column;flex:1;gap:20px;padding:20px 24px;display:flex;overflow-y:auto}.nrui .chat-scroll::-webkit-scrollbar{width:4px}.nrui .chat-scroll::-webkit-scrollbar-thumb{background:var(--border)}.nrui .msg-user{background:var(--bg-dark);color:#f7f3ede0;border-radius:10px 10px 2px;align-self:flex-end;max-width:68%;padding:10px 14px;font-size:13px;line-height:1.55}.nrui .msg-ai{flex-direction:column;align-self:flex-start;gap:8px;max-width:88%;display:flex}.nrui .msg-ai-bubble{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:2px 10px 10px;padding:12px 16px;font-size:13px;line-height:1.65}.nrui .pill{background:var(--teal-lt);color:var(--teal);font-size:10px;font-family:var(--mono);vertical-align:middle;white-space:nowrap;border:1px solid #0f6e5640;border-radius:3px;align-items:center;gap:4px;margin:0 1px;padding:2px 7px;display:inline-flex}.nrui .pill-sky{background:var(--sky-lt);color:var(--sky);border-color:#185fa540}.nrui .pill-amber{background:var(--amber-lt);color:var(--amber);border-color:#ba751740}.nrui .code-wrap{background:#1a1714;border:1px solid #ffffff14;border-radius:6px;font-size:11.5px;overflow:hidden}.nrui .code-header{border-bottom:1px solid #ffffff0f;align-items:center;gap:8px;padding:7px 12px;display:flex}.nrui .code-lang{font-family:var(--mono);letter-spacing:.1em;color:var(--teal-mid);text-transform:uppercase;font-size:9.5px}.nrui .code-label{font-family:var(--mono);color:#f7f3ed4d;margin-left:auto;font-size:9px}.nrui .code-body{font-family:var(--mono);color:#a8e6c8;white-space:pre;padding:12px 14px;line-height:1.65;overflow-x:auto}.nrui .code-output{font-family:var(--mono);color:#7fd4b0;letter-spacing:.02em;border-top:1px solid #ffffff0f;padding:8px 14px;font-size:11px}.nrui .plot-card{border:1px solid var(--border);background:var(--card);border-radius:8px;overflow:hidden}.nrui .plot-header{border-bottom:1px solid var(--border-lt);align-items:center;gap:8px;padding:8px 12px;display:flex}.nrui .plot-title{color:var(--text);font-size:11.5px;font-weight:500}.nrui .plot-actions{gap:6px;margin-left:auto;display:flex}.nrui .plot-btn{font-size:10px;font-family:var(--mono);border:1px solid var(--border);color:var(--text-sec);cursor:pointer;letter-spacing:.04em;background:0 0;border-radius:3px;align-items:center;gap:3px;padding:2px 8px;display:inline-flex}.nrui .plot-area{align-items:flex-end;gap:4px;height:120px;padding:12px 16px;display:flex;position:relative}.nrui .context-bar{border-top:1px solid var(--border-lt);background:var(--card);flex-shrink:0;align-items:center;gap:8px;padding:8px 24px;display:flex}.nrui .ctx-label{font-size:9.5px;font-family:var(--mono);letter-spacing:.08em;color:var(--text-mute);text-transform:uppercase;flex-shrink:0}.nrui .ctx-chips{flex:1;gap:5px;display:flex;overflow:hidden}.nrui .ctx-chip{border:1px solid var(--border);color:var(--text-sec);white-space:nowrap;border-radius:3px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;display:flex}.nrui .ctx-count{font-size:9.5px;font-family:var(--mono);color:var(--text-mute);flex-shrink:0;margin-left:auto}.nrui .input-row{border-top:1px solid var(--border);background:var(--card);flex-shrink:0;align-items:flex-end;gap:8px;padding:12px 16px;display:flex}.nrui .chat-input{border:1px solid var(--border);font-size:13px;font-family:var(--sans);color:var(--text);background:var(--bg);border-radius:8px;outline:none;flex:1;height:38px;padding:9px 12px;line-height:1.45}.nrui .chat-input::placeholder{color:var(--text-mute)}.nrui .send-btn{background:var(--teal);cursor:pointer;color:#fff;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.nrui .input-tools{align-items:center;gap:4px;display:flex}.nrui .tool-btn{border:1px solid var(--border);cursor:pointer;width:28px;height:28px;color:var(--text-mute);background:0 0;border-radius:5px;justify-content:center;align-items:center;font-size:13px;display:flex}.nrui .validation-strip{background:var(--teal-lt);color:var(--teal);font-size:10px;font-family:var(--mono);border-radius:4px;align-items:center;gap:6px;margin-top:2px;padding:4px 10px;display:flex}.nrui .typing{background:var(--card);border:1px solid var(--border);border-radius:2px 10px 10px;align-items:center;gap:6px;width:fit-content;padding:10px 14px;display:flex}.nrui .dot{background:var(--text-mute);border-radius:50%;width:5px;height:5px;animation:1.2s infinite nrui-blink}.nrui .dot:nth-child(2){animation-delay:.2s}.nrui .dot:nth-child(3){animation-delay:.4s}@keyframes nrui-blink{0%,80%,to{opacity:.2}40%{opacity:1}}
