:root{--mhx-primary: #427EF4;--mhx-primary-deep: #3A6FD9;--mhx-primary-hover: #2F5FBF;--mhx-primary-200: #96BAF4;--mhx-primary-100: #D6E4FC;--mhx-primary-50: #F0F5FF;--mhx-neutral-900: #182739;--mhx-neutral-600: #57677E;--mhx-neutral-400: #8F949C;--mhx-neutral-300: #B8BEC5;--mhx-neutral-100: #E8ECF2;--mhx-neutral-50: #F4F6F9;--mhx-surface: #FFFFFF;--mhx-page-bg: #F0F5FF;--mhx-accent: #A2DCCE;--mhx-accent-dark: #1F6B5C;--mhx-accent-light: #E8F4F0;--mhx-success-bg: #E8F4F0;--mhx-success-text: #1F6B5C;--mhx-success-line: #A2DCCE;--mhx-info-bg: #F0F5FF;--mhx-info-text: #3A6FD9;--mhx-info-line: #D6E4FC;--mhx-warning-bg: #FEF9E7;--mhx-warning-text: #B45309;--mhx-warning-line: #FDE68A;--mhx-danger-bg: #FEF2F2;--mhx-danger-text: #DC2626;--mhx-danger-line: #FECACA;--mhx-chart-1: #427EF4;--mhx-chart-2: #6495F2;--mhx-chart-3: #96BAF4;--mhx-chart-4: #A2DCCE;--mhx-chart-5: #57677E;--mhx-chart-6: #B8BEC5;--mhx-font: "Inter", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, sans-serif;--mhx-weight-regular: 400;--mhx-weight-medium: 500;--mhx-weight-semibold: 600;--mhx-weight-bold: 700;--mhx-text-h1: 20px;--mhx-leading-h1: 28px;--mhx-text-h2: 18px;--mhx-leading-h2: 26px;--mhx-text-h3: 16px;--mhx-leading-h3: 24px;--mhx-text-body: 14px;--mhx-leading-body: 22px;--mhx-text-sm: 13px;--mhx-leading-sm: 20px;--mhx-text-xs: 12px;--mhx-leading-xs: 18px;--mhx-text-kpi: 24px;--mhx-leading-kpi: 32px;--mhx-space-xs: 4px;--mhx-space-sm: 8px;--mhx-space-md: 16px;--mhx-space-lg: 24px;--mhx-space-xl: 32px;--mhx-space-2xl: 48px;--mhx-radius: 6px;--mhx-radius-pill: 999px;--mhx-radius-full: 9999px;--mhx-shadow-float: 0 8px 24px rgba(24, 39, 57, .08);--mhx-shadow-focus: 0 0 0 3px rgba(66, 126, 244, .08);--mhx-control-h: 36px;--mhx-control-h-sm: 30px;--mhx-control-h-lg: 40px;--mhx-header-h: 56px;--mhx-sidebar-w: 220px;--mhx-sidebar-min: 64px;--mhx-nav-item-h: 44px;--mhx-grid-columns: 24;--mhx-grid-gutter: 16px;--mhx-grid-margin: 24px;--mhx-duration-fast: .15s;--mhx-duration-base: .2s;--mhx-duration-slow: .25s;--mhx-ease: ease;--mhx-ease-out: ease-out}@media(max-width:640px){:root{--mhx-text-h1: 20px;--mhx-leading-h1: 28px;--mhx-text-h2: 17px;--mhx-leading-h2: 24px;--mhx-text-h3: 15px;--mhx-leading-h3: 22px;--mhx-text-body: 14px;--mhx-leading-body: 22px;--mhx-text-sm: 13px;--mhx-leading-sm: 20px;--mhx-text-xs: 12px;--mhx-leading-xs: 18px;--mhx-text-kpi: 22px;--mhx-leading-kpi: 30px;--mhx-space-lg: 16px}}@media(prefers-reduced-motion:reduce){:root{--mhx-duration-fast: 0ms;--mhx-duration-base: 0ms;--mhx-duration-slow: 0ms}}:root{--brand-900: var(--mhx-neutral-900);--brand-600: var(--mhx-neutral-600);--brand-400: var(--mhx-neutral-400);--brand-300: var(--mhx-neutral-300);--brand-100: var(--mhx-neutral-100);--brand-50: var(--mhx-neutral-50);--primary: var(--mhx-primary);--primary-deep: var(--mhx-primary-deep);--primary-hover: var(--mhx-primary-hover);--primary-light: var(--mhx-primary-50);--primary-200: var(--mhx-primary-200);--primary-100: var(--mhx-primary-100);--accent: var(--mhx-accent);--accent-dark: var(--mhx-accent-dark);--accent-light: var(--mhx-accent-light);--warning: var(--mhx-warning-line);--warning-text: var(--mhx-warning-text);--warning-light: var(--mhx-warning-bg);--danger: var(--mhx-danger-line);--danger-text: var(--mhx-danger-text);--danger-light: var(--mhx-danger-bg);--page-bg: var(--mhx-page-bg);--surface: var(--mhx-surface);--border: var(--mhx-neutral-100);--radius: var(--mhx-radius);--font: var(--mhx-font);--control-h: var(--mhx-control-h);--shadow-float: var(--mhx-shadow-float);--shadow-focus: var(--mhx-shadow-focus)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--brand-900);background:var(--page-bg);font-size:var(--mhx-text-body);line-height:var(--mhx-leading-body);-webkit-font-smoothing:antialiased}a{color:var(--primary-deep);text-decoration:none}a:hover{color:var(--primary-hover)}.btn{height:var(--control-h);padding:0 var(--mhx-space-md);border-radius:var(--radius);border:1px solid transparent;cursor:pointer;font-weight:var(--mhx-weight-medium);font:inherit;transition:background var(--mhx-duration-fast) var(--mhx-ease),border-color var(--mhx-duration-fast) var(--mhx-ease),box-shadow var(--mhx-duration-fast) var(--mhx-ease)}.btn-primary{background:var(--primary-deep);border-color:var(--primary-deep);color:#fff}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-primary:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn-ghost{background:var(--surface);border-color:var(--primary-100);color:var(--brand-900)}.btn-ghost:hover{background:var(--brand-50)}.btn:disabled{opacity:.5;cursor:not-allowed}.input{height:var(--control-h);padding:0 12px;border:1px solid var(--border);border-radius:var(--radius);font:inherit;background:var(--surface);color:var(--brand-900)}.input::placeholder{color:var(--brand-400)}.input:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-focus)}.login-page{min-height:100%;display:grid;place-items:center;padding:24px;background:var(--page-bg)}.user-auth{width:min(440px,100%);padding:28px 28px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.user-auth__brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.user-auth__brand h1{margin:0;font-size:20px;font-weight:700;color:var(--brand-900)}.user-auth__brand p{margin:4px 0 0;font-size:13px;color:var(--brand-600);line-height:1.45}.user-auth__logo{width:44px;height:44px;border-radius:var(--radius);background:var(--brand-900);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;flex-shrink:0}.user-auth__logo.sm{width:32px;height:32px;font-size:12px}.user-auth .field{margin-bottom:14px}.user-auth .field label{display:block;font-size:13px;color:var(--brand-600);margin-bottom:6px}.user-auth .field .input{width:100%}.user-auth .error{color:var(--danger-text);font-size:13px;margin-bottom:10px}.req{color:var(--danger-text);font-style:normal;margin-left:2px;font-weight:600}.user-auth__demo{margin:14px 0 0;font-size:12px;color:var(--brand-400);line-height:1.5}.chat-shell{height:100%;display:flex;flex-direction:column;background:var(--page-bg)}.chat-top{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.chat-top__brand{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.chat-top__brand strong{display:block;font-size:15px;font-weight:700}.chat-top__brand span{font-size:12px;color:var(--brand-600)}.chat-top__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.model-picker{display:flex;align-items:center;gap:6px}.model-picker__label{font-size:12px;color:var(--brand-400);white-space:nowrap}.model-picker__select{font-size:13px;height:32px;min-width:160px;max-width:220px}.model-picker .select{width:200px;flex:0 0 auto}.model-picker .select-trigger{height:32px;font-size:13px;padding:0 10px}.select{position:relative;width:100%;min-width:0}.select.is-disabled{opacity:.55;pointer-events:none}.select-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;width:100%;height:36px;border:1px solid var(--border);border-radius:var(--radius);padding:0 12px;background:var(--surface);color:var(--brand-900);font-size:14px;font-family:inherit;cursor:pointer;text-align:left}.select-trigger:hover{border-color:var(--primary)}.select-trigger:focus-visible{outline:none;border-color:var(--primary);box-shadow:var(--shadow-focus)}.select-trigger.is-open{border-color:var(--primary)}.select-trigger__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-trigger__placeholder{flex:1;color:var(--brand-400);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-trigger__chevron{width:16px;height:16px;color:var(--brand-400);flex-shrink:0;transition:transform .15s ease}.select-trigger.is-open .select-trigger__chevron{transform:rotate(180deg)}.select-dropdown{position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-float);padding:6px 0;max-height:280px;overflow-y:auto}.select-option{display:flex;align-items:center;gap:8px;width:calc(100% - 8px);margin:0 4px;padding:8px 12px;border:none;border-radius:var(--radius);background:transparent;font-size:14px;font-family:inherit;color:var(--brand-900);cursor:pointer;text-align:left}.select-option:hover{background:#f4f6f9}.select-option.selected{background:#f0f5ff;color:var(--primary);font-weight:500}.select-option.disabled{color:var(--brand-400);cursor:not-allowed}.select-option .check-icon{width:16px;height:16px;flex-shrink:0;color:var(--primary);visibility:hidden}.select-option.selected .check-icon{visibility:visible}.chat-body{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:12px}.bubble-row{display:flex;flex-direction:column;gap:4px}.bubble-row.user{align-items:flex-end}.bubble-row.assistant{align-items:flex-start}.bubble{max-width:min(680px,90%);padding:12px 14px;border-radius:var(--radius);white-space:pre-wrap;line-height:1.55;font-size:14px}.bubble.user{background:var(--primary);color:#fff}.bubble.assistant{background:var(--surface);border:1px solid var(--border)}.bubble.blocked{background:var(--warning-light);border-color:#fde68a;color:var(--warning-text)}.bubble.error{background:var(--danger-light);border-color:#fecaca;color:var(--danger-text)}.bubble-meta{font-size:12px;color:var(--brand-400)}.source-block{margin-top:8px;padding:8px 10px;border-radius:var(--radius);background:var(--accent-light);border:1px solid #A2DCCE;color:var(--accent-dark);font-size:12px;line-height:20px}.bubble.typing{display:flex;gap:5px;align-items:center;padding:14px}.bubble.typing span{width:6px;height:6px;border-radius:50%;background:var(--brand-400);animation:typing-dot 1.2s infinite ease-in-out}.bubble.typing span:nth-child(2){animation-delay:.15s}.bubble.typing span:nth-child(3){animation-delay:.3s}@keyframes typing-dot{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.chat-input{display:flex;gap:10px;padding:14px 16px;background:var(--surface);border-top:1px solid var(--border)}.chat-input.is-dragover{background:var(--primary-light);border-top-color:var(--primary-200)}.chat-input__main{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}.chat-input__row{display:flex;gap:10px;align-items:flex-end}.chat-input__attach{flex-shrink:0;width:40px;padding:0;font-size:18px}.chat-input textarea{flex:1;min-height:44px;max-height:120px;resize:vertical;border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;font:inherit}.chat-input textarea:focus{outline:2px solid #D6E4FC;border-color:var(--primary)}.attach-preview{display:flex;flex-wrap:wrap;gap:8px}.attach-chip{display:inline-flex;align-items:center;gap:6px;max-width:220px;padding:4px 8px 4px 4px;border:1px solid var(--border);border-radius:var(--radius);background:var(--brand-50);font-size:12px}.attach-chip.error{border-color:#fecaca;background:var(--danger-light)}.attach-chip__thumb{width:32px;height:32px;object-fit:cover;border-radius:4px;flex-shrink:0}.attach-chip__icon{font-size:16px;flex-shrink:0}.attach-chip__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.attach-chip__status{color:var(--brand-400);flex-shrink:0;font-size:11px}.attach-chip__status.err{color:var(--danger-text);max-width:80px;overflow:hidden;text-overflow:ellipsis}.attach-chip__remove{border:none;background:transparent;color:var(--brand-400);cursor:pointer;font-size:16px;line-height:1;padding:0 2px}.attach-chip__remove:hover{color:var(--danger-text)}.msg-attach-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.msg-attach__img{max-width:200px;max-height:160px;border-radius:4px;object-fit:cover;border:1px solid rgba(255,255,255,.3)}.bubble.assistant .msg-attach__img{border-color:var(--border)}.msg-attach__doc{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:4px;background:#ffffff26;font-size:12px}.bubble.assistant .msg-attach__doc{background:var(--brand-50);border:1px solid var(--border)}.msg-attach__name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
