.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:1rem}.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem;display:flex;flex-direction:column;gap:.55rem}.auth-card__title{margin:0;font-size:1.35rem;color:var(--text-strong)}.auth-card__subtitle{margin:0 0 .2rem;color:var(--text-muted);font-size:.88rem}.auth-card__label{font-size:.78rem;color:var(--text-muted)}.auth-card__input{width:100%;padding:.6rem .7rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.9rem}.auth-card__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.auth-card__submit{margin-top:.55rem}.auth-card__error{margin:0;color:var(--error);font-size:.82rem}.topbar{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;z-index:10}.topbar__brand{display:flex;align-items:center;gap:.6rem}.topbar__logo{width:28px;height:28px;border-radius:8px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}.topbar__titles{display:flex;flex-direction:column}.topbar__title{font-size:.9rem;font-weight:600;color:var(--text-strong);line-height:1.2}.topbar__subtitle{font-size:.68rem;color:var(--text-muted);line-height:1.2}.topbar__actions{display:flex;align-items:center;gap:.75rem}.topbar__user{font-size:.8rem;color:var(--text-muted)}.topbar__new{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.3rem .75rem;font-size:.8rem}.topbar__new:hover{color:var(--text-strong);border-color:var(--text-muted)}.chat-area{flex:1;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:hidden}.chat-scroll{flex:1;overflow-y:auto;padding:1.5rem 1rem 2rem}.chat-inner{max-width:960px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:1rem}.landing{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center}.landing__title{margin:0;font-size:1.6rem;font-weight:600;color:var(--text-strong)}.landing__sub{margin:.5rem 0 2rem;color:var(--text-muted);font-size:.95rem}.landing__form{width:100%;max-width:600px;display:flex;flex-direction:column;gap:.75rem}.chat-bubble{display:flex;flex-direction:column;max-width:100%;animation:fadeSlideIn .3s ease-out}.chat-bubble--user,.chat-bubble--assistant{align-items:flex-start}.chat-bubble--user .chat-bubble__content{background:var(--accent);color:#fff;padding:.65rem 1rem;border-radius:18px 18px 4px;font-size:.9rem;max-width:75%;word-wrap:break-word}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-input__textarea{width:100%;padding:.85rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.92rem;resize:none;line-height:1.5}.chat-input__textarea::placeholder{color:var(--text-muted)}.chat-input__textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.btn{padding:.55rem 1.1rem;border-radius:var(--radius-sm);font-weight:500;font-size:.85rem;border:none;transition:background .15s,opacity .15s}.btn--sm{padding:.4rem .85rem;font-size:.8rem}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--primary:disabled{opacity:.5;cursor:not-allowed}.btn--ghost{background:transparent;color:var(--text-muted)}.btn--ghost:hover{color:var(--text-strong)}.msg-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.15rem;max-width:100%;animation:fadeSlideIn .3s ease-out}.msg-card--error{border-color:var(--error)}.msg-card--result{margin-top:.5rem}.msg-card__header{font-size:.76rem;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem}.msg-card__text{margin:0 0 .5rem;font-size:.84rem;color:var(--text);line-height:1.55}.msg-card__text strong{color:var(--text-strong)}.msg-card__error{color:var(--error);font-size:.85rem;margin:0 0 .5rem}.msg-card__actions{display:flex;gap:.5rem;margin-top:.75rem}.msg-card__confirmed{margin-top:.5rem;font-size:.72rem;color:var(--accent);padding:.22rem .5rem;background:var(--accent-dim);border-radius:999px;display:inline-block}.msg-card__field{margin-bottom:.75rem}.msg-card__field label{display:block;font-size:.78rem;color:var(--text-muted);margin-bottom:.3rem}.msg-card__field input{width:100%;max-width:300px;padding:.45rem .7rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.85rem}.msg-card__field input:focus{outline:none;border-color:var(--accent)}.msg-card__summary{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border);font-size:.85rem;color:var(--text);line-height:1.65}.msg-card__summary h2,.msg-card__summary h3,.msg-card__summary h4{margin:.75rem 0 .35rem;font-size:.9rem;color:var(--text-strong)}.msg-card__summary p{margin:.4rem 0}.msg-card__summary strong{color:var(--text-strong)}.msg-card__summary code{background:var(--bg);padding:.1rem .35rem;border-radius:4px;font-size:.8rem}.msg-card__summary li{margin:.2rem 0;padding-left:.25rem}.chip-list{list-style:none;padding:0;margin:0 0 .5rem;display:flex;flex-wrap:wrap;gap:.25rem}.chip{padding:.16rem .38rem;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.68rem;cursor:pointer;transition:border-color .15s,background .15s}.chip:hover{border-color:var(--accent)}.chip--active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);font-weight:600}.chip__sub{margin-left:.3rem;color:var(--text-muted);font-size:.75rem}.typing-indicator{display:flex;align-items:center;gap:.5rem;padding:.6rem 0}.typing-label{font-size:.8rem;color:var(--text-muted)}.typing-dots{display:flex;gap:4px}.typing-dot{width:7px;height:7px;border-radius:50%;background:var(--text-muted);animation:typingBounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}.params-grid{display:grid;gap:.65rem;margin:.5rem 0}.param-row label{display:block;font-size:.78rem;color:var(--text-muted);margin-bottom:.2rem;text-transform:uppercase;letter-spacing:.03em}.param-required{margin-left:.4rem;color:var(--warning);font-size:.7rem;font-weight:600;text-transform:lowercase}.param-input-row{display:flex;align-items:center;gap:.4rem}.param-input-row input{flex:1;padding:.45rem .65rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:var(--font-mono);font-size:.82rem}.param-input-row input:focus{outline:none;border-color:var(--accent)}.operator-badge{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:.25rem .45rem;border-radius:6px;background:var(--accent-dim);color:var(--accent);font-size:.72rem;font-weight:700;font-family:var(--font-mono);white-space:nowrap;flex-shrink:0}.param-range-info{margin-top:.2rem;font-size:.72rem;color:var(--text-muted);font-family:var(--font-mono)}.entity-disambiguation{margin-top:.4rem;padding:.5rem .65rem;background:#f59e0b14;border:1px solid rgba(245,158,11,.25);border-radius:var(--radius-sm)}.disambiguation-label{margin:0 0 .35rem;font-size:.78rem;color:var(--warning)}.disambiguation-options{display:flex;flex-wrap:wrap;gap:.35rem}.entity-warning{margin:.25rem 0 0;font-size:.75rem;color:var(--error)}.disambiguation-hint{margin:.5rem 0;font-size:.8rem;color:var(--warning);padding:.4rem .65rem;background:#f59e0b14;border-radius:6px}.text-muted{color:var(--text-muted);font-size:.85rem}.data-table-wrap{margin:.5rem 0;max-width:100%}.data-table-scroll{overflow-x:auto;overflow-y:hidden;width:100%;border:1px solid var(--border);border-radius:var(--radius-sm)}.data-table{width:100%;min-width:1200px;border-collapse:collapse;font-size:.78rem;white-space:nowrap}.data-table th{background:var(--bg);color:var(--text-muted);font-weight:600;text-align:left;padding:.5rem .65rem;border-bottom:1px solid var(--border);text-transform:uppercase;font-size:.7rem;letter-spacing:.04em}.data-table td{padding:.4rem .65rem;border-bottom:1px solid var(--border);color:var(--text)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--surface-hover)}.data-table-footer{margin:.35rem 0 0;font-size:.72rem;color:var(--text-muted);text-align:right}.sql-section{margin:.5rem 0 .75rem}.sql-actions{display:flex;gap:.35rem;align-items:center}.sql-toggle{padding-left:0}.sql-copy{padding-left:.35rem}.sql-block{margin-top:.35rem;padding:.6rem .75rem;background:var(--bg);border-radius:var(--radius-sm);border:1px solid var(--border);font-family:var(--font-mono);font-size:.8rem;white-space:pre-wrap;word-break:break-word;max-height:260px;overflow:auto}@media(max-width:768px){.topbar{height:auto;min-height:44px;padding:.4rem .75rem;flex-wrap:wrap;gap:.4rem}.topbar__actions{margin-left:auto}.chat-inner{max-width:100%}.chat-bubble--user .chat-bubble__content{max-width:90%}.landing__title{font-size:1.3rem}}:root{--bg: #212121;--bg-chat: #2f2f2f;--surface: #303030;--surface-hover: #3a3a3a;--border: #424242;--text: #ececec;--text-strong: #ffffff;--text-muted: #9a9a9a;--accent: #10a37f;--accent-hover: #1a7f64;--accent-dim: rgba(16, 163, 127, .15);--error: #ef4444;--warning: #f59e0b;--success: #10a37f;--radius: 12px;--radius-sm: 8px;--font-sans: "DM Sans", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}code,pre{font-family:var(--font-mono)}
