:root{--c-bg: #eef1f5;--c-surface: #ffffff;--c-surface-2: #f5f7fa;--c-surface-3: #eceff4;--c-border: #dde2e9;--c-border-strong: #c6cdd8;--c-text: #171b22;--c-text-muted: #5a6473;--c-text-subtle: #8690a0;--c-text-subtle: #8b95a4;--c-primary: #b3122a;--c-primary-hover: #97112a;--c-primary-active: #7d0f24;--c-primary-contrast: #ffffff;--c-primary-soft: #fbe9ec;--c-accent: #1f3a5f;--c-focus: #2f6feb;--c-success: #1f7a4d;--c-danger: #b3122a;--c-danger-soft: #fdecee;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--lh-tight: 1.25;--lh-normal: 1.55;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(23, 27, 34, .06);--shadow-sm: 0 1px 3px rgba(23, 27, 34, .08), 0 1px 2px rgba(23, 27, 34, .04);--shadow-md: 0 4px 12px rgba(23, 27, 34, .1);--shadow-lg: 0 12px 32px rgba(23, 27, 34, .16);--ring: 0 0 0 3px rgba(47, 111, 235, .35);--header-h: 60px;--content-max: 820px}*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--c-text);background-color:var(--c-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{line-height:var(--lh-tight);font-weight:650;letter-spacing:-.01em}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--c-primary);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:0 var(--sp-4);height:40px;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--fs-base);font-weight:600;white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .05s ease}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background-color:var(--c-primary);color:var(--c-primary-contrast)}.btn--primary:hover:not(:disabled){background-color:var(--c-primary-hover)}.btn--primary:active:not(:disabled){background-color:var(--c-primary-active)}.btn--ghost{background-color:transparent;border-color:var(--c-border-strong);color:var(--c-text)}.btn--ghost:hover:not(:disabled){background-color:var(--c-surface-3)}.btn--subtle{background-color:transparent;color:var(--c-text-muted)}.btn--subtle:hover:not(:disabled){background-color:var(--c-surface-3);color:var(--c-text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.app{display:flex;flex-direction:column;min-height:100%}.app__header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--sp-4);height:var(--header-h);padding:0 var(--sp-5);background-color:var(--c-surface);border-bottom:1px solid var(--c-border);box-shadow:var(--shadow-xs)}.brand{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.brand__mark{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--c-primary),var(--c-primary-active));color:var(--c-primary-contrast);font-weight:700;font-size:var(--fs-sm);letter-spacing:.02em;box-shadow:var(--shadow-sm)}.brand__titles{min-width:0}.brand__title{font-size:var(--fs-md);font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand__subtitle{font-size:var(--fs-xs);color:var(--c-text-subtle);white-space:nowrap}.app__header-actions{display:flex;align-items:center;gap:var(--sp-2);margin-left:auto}.user-chip{display:inline-flex;align-items:center;gap:var(--sp-2);max-width:220px;padding:var(--sp-1) var(--sp-3) var(--sp-1) var(--sp-1);border-radius:var(--radius-pill);background-color:var(--c-surface-2);border:1px solid var(--c-border);font-size:var(--fs-sm);color:var(--c-text-muted)}.user-chip__avatar{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:50%;background-color:var(--c-accent);color:#fff;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase}.user-chip__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat{flex:1;display:flex;flex-direction:column;width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--sp-5) var(--sp-5) 0;min-height:0}.chat__thread{flex:1;list-style:none;padding:0 0 var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-5)}.msg{display:flex;gap:var(--sp-3);max-width:100%;animation:msg-in .22s ease both}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.msg__avatar{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:var(--radius-md);font-size:var(--fs-xs);font-weight:700;color:#fff}.msg--assistant .msg__avatar{background:linear-gradient(135deg,var(--c-accent),#16273f)}.msg--user .msg__avatar{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-active))}.msg__body{min-width:0;display:flex;flex-direction:column;gap:var(--sp-1)}.msg__role{font-size:var(--fs-xs);font-weight:600;color:var(--c-text-subtle);text-transform:uppercase;letter-spacing:.04em}.msg__bubble{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-lg);background-color:var(--c-surface);border:1px solid var(--c-border);box-shadow:var(--shadow-xs);white-space:pre-wrap;overflow-wrap:anywhere}.msg--user .msg__bubble{background-color:var(--c-primary-soft);border-color:#f3d3d9}.msg__caret{display:inline-block;width:8px;height:1.05em;margin-left:2px;vertical-align:text-bottom;border-radius:2px;background-color:var(--c-primary);animation:caret-blink 1s steps(2,start) infinite}@keyframes caret-blink{0%,to{opacity:1}50%{opacity:0}}.chat__error{margin-bottom:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);background-color:var(--c-danger-soft);border:1px solid #f3c6cd;color:var(--c-danger);font-size:var(--fs-sm)}.composer{position:sticky;bottom:0;padding:var(--sp-4) 0 var(--sp-5);background:linear-gradient(to top,var(--c-bg) 72%,rgba(238,241,245,0))}.composer__box{display:flex;align-items:flex-end;gap:var(--sp-2);padding:var(--sp-2);background-color:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:border-color .15s ease,box-shadow .15s ease}.composer__box:focus-within{border-color:var(--c-focus);box-shadow:var(--ring)}.composer__input{flex:1;border:none;background:transparent;resize:none;padding:var(--sp-2);max-height:200px;line-height:var(--lh-normal)}.composer__input:focus{outline:none}.composer__input::placeholder{color:var(--c-text-subtle)}.composer__send{height:40px;width:40px;padding:0;flex:none}.composer__hint{margin-top:var(--sp-2);text-align:center;font-size:var(--fs-xs);color:var(--c-text-subtle)}.page{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--sp-6) var(--sp-5)}.page__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-5)}.page__title{font-size:var(--fs-2xl)}.conv-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--sp-3)}.conv-item{display:block}.conv-card{display:flex;align-items:center;gap:var(--sp-3);width:100%;text-align:left;padding:var(--sp-4);background-color:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);transition:border-color .15s ease,box-shadow .15s ease,transform .05s ease}.conv-card:hover{border-color:var(--c-border-strong);box-shadow:var(--shadow-sm)}.conv-card:active{transform:translateY(1px)}.conv-card__icon{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:var(--radius-md);background-color:var(--c-surface-3);color:var(--c-accent)}.conv-card__main{min-width:0;flex:1}.conv-card__title{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-card__time{display:block;margin-top:2px;font-size:var(--fs-xs);color:var(--c-text-subtle)}.conv-card__chevron{flex:none;color:var(--c-text-subtle)}.screen-center{min-height:100%;display:grid;place-items:center;padding:var(--sp-6)}.status-card{width:100%;max-width:420px;text-align:center;padding:var(--sp-7) var(--sp-6);background-color:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.status-card .brand__mark{width:48px;height:48px;margin:0 auto var(--sp-4);font-size:var(--fs-md)}.status-card__title{font-size:var(--fs-lg);margin-bottom:var(--sp-2)}.status-card__text{color:var(--c-text-muted);font-size:var(--fs-sm)}.status-card--error .status-card__title{color:var(--c-danger)}.status-card__detail{margin-top:var(--sp-3);padding:var(--sp-3);border-radius:var(--radius-sm);background-color:var(--c-surface-2);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-text-muted);overflow-wrap:anywhere;text-align:left}.empty{text-align:center;padding:var(--sp-7) var(--sp-5);color:var(--c-text-muted)}.empty__icon{color:var(--c-border-strong);margin-bottom:var(--sp-3)}.spinner{display:inline-block;width:22px;height:22px;border:2.5px solid var(--c-border-strong);border-top-color:var(--c-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.typing{display:inline-flex;gap:4px;align-items:center;padding:var(--sp-1) 0}.typing span{width:6px;height:6px;border-radius:50%;background-color:var(--c-text-subtle);animation:typing 1.2s infinite ease-in-out}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@media(max-width:640px){.app__header{padding:0 var(--sp-4)}.brand__subtitle,.user-chip__label{display:none}.chat{padding:var(--sp-4) var(--sp-4) 0}.page{padding:var(--sp-5) var(--sp-4)}}
