@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=DM+Mono:wght@400;500&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f4f3ef;--surface:#ffffff;--surface2:#f9f8f5;
  --border:#e2e0d8;--border2:#d0cec4;
  --text:#1a1916;--text2:#6b6860;--text3:#9c9a92;
  --accent:#2563eb;--accent-bg:#eff6ff;--accent-border:#bfdbfe;
  --success:#15803d;--success-bg:#f0fdf4;--success-border:#bbf7d0;
  --warn:#92400e;--warn-bg:#fffbeb;--warn-border:#fde68a;
  --danger:#991b1b;--danger-bg:#fef2f2;--danger-border:#fecaca;
  --radius:12px;--radius-sm:8px;--radius-lg:20px;
  --shadow:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);
  --shadow-md:0 4px 12px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.04);
}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;font-size:15px;line-height:1.6}
.app{display:flex;flex-direction:column;min-height:100vh}
.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:56px;position:sticky;top:0;z-index:100}
.topbar-brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px;color:var(--text)}
.topbar-brand .dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.topbar-right{display:flex;align-items:center;gap:12px}

.api-mode-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:100px;font-size:11px;font-weight:500;border:1px solid var(--border);color:var(--text3);background:var(--surface2);cursor:default;white-space:nowrap}
.api-mode-badge.semantic{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}
.api-mode-badge .dot-sm{width:5px;height:5px;border-radius:50%;background:currentColor;display:inline-block}
.nav{display:flex;gap:4px}
.nav-btn{padding:6px 16px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text2);font-family:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}
.nav-btn:hover{background:var(--bg);color:var(--text)}
.nav-btn.active{background:var(--accent);color:#fff}
.main{flex:1;padding:32px 24px;max-width:900px;margin:0 auto;width:100%}
.chat-input-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-md);margin-bottom:24px}
.chat-input-row{display:flex;gap:10px}
.chat-input{flex:1;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:15px;background:var(--surface2);color:var(--text);outline:none;transition:border-color .15s}
.chat-input:focus{border-color:var(--accent);background:var(--surface)}
.btn{padding:10px 20px;border-radius:var(--radius);border:none;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:6px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover:not(:disabled){background:#1d4ed8}
.btn-secondary{background:var(--surface2);color:var(--text);border:1px solid var(--border)}
.btn-secondary:hover:not(:disabled){background:var(--bg);border-color:var(--border2)}
.btn-ghost{background:transparent;color:var(--text2);border:1px solid transparent}
.btn-ghost:hover:not(:disabled){background:var(--bg);color:var(--text)}
.btn-danger{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}
.btn-danger:hover:not(:disabled){background:#fee2e2}
.btn-sm{padding:6px 12px;font-size:13px}
.suggestions{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px}
.suggestion-chip{padding:6px 14px;border-radius:100px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);font-family:inherit;font-size:13px;cursor:pointer;transition:all .15s;white-space:nowrap}
.suggestion-chip:hover{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent)}
.conversations{display:flex;flex-direction:column;gap:16px}
.answer-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow);animation:slideIn .2s ease}
@keyframes slideIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.answer-card.fallback{border-left:3px solid var(--warn-border)}
.answer-card.answered{border-left:3px solid var(--success-border)}
.answer-card.loading{border-left:3px solid var(--accent-border)}
.answer-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:100px;font-size:12px;font-weight:500;gap:4px}
.badge-blue{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-border)}
.badge-gray{background:var(--surface2);color:var(--text2);border:1px solid var(--border)}
.badge-green{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}
.badge-warn{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-border)}
.answer-question{font-size:13px;color:var(--text3);margin-bottom:6px}
.answer-title{font-weight:600;font-size:15px;margin-bottom:10px}
.answer-body{color:var(--text);line-height:1.7}
.answer-rationale{margin-top:10px;font-size:13px;color:var(--text2);font-style:italic;padding:10px 12px;background:var(--surface2);border-radius:var(--radius-sm);border-left:2px solid var(--accent-border)}
.answer-details{margin-top:14px;padding:14px;background:var(--surface2);border-radius:var(--radius);border:1px solid var(--border);font-size:13px;display:none}
.answer-details.open{display:block}
.answer-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.detail-item label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:2px}
.escalation-box{margin-top:10px;padding:10px 12px;background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius-sm);color:var(--warn);font-size:13px}
.feedback-row{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.feedback-label{font-size:13px;color:var(--text3);margin-right:4px}
.matches{margin-top:14px}
.matches-label{font-size:12px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.match-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:6px;background:var(--surface2);font-size:13px;cursor:pointer;transition:background .1s}
.match-item:hover{background:var(--accent-bg);border-color:var(--accent-border)}
.match-q{font-weight:500;color:var(--text)}
.match-cat{color:var(--text3);font-size:12px;margin-top:2px}
.loading-dots{display:inline-flex;gap:4px;align-items:center}
.loading-dots span{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 1.2s ease-in-out infinite}
.loading-dots span:nth-child(2){animation-delay:.2s}
.loading-dots span:nth-child(3){animation-delay:.4s}
@keyframes pulse{0%,80%,100%{opacity:.2;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}
.context-strip{margin-top:12px;padding:8px 12px;background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:var(--radius-sm);font-size:12px;color:var(--accent);display:flex;align-items:center;gap:6px}
.context-strip svg{flex-shrink:0}
.empty-state{text-align:center;padding:48px 24px;color:var(--text3);border:1px dashed var(--border2);border-radius:var(--radius-lg);background:var(--surface)}
.empty-state p{margin-top:8px;font-size:14px}
.kb-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
@media(max-width:720px){.kb-layout{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow)}
.card-title{font-weight:600;font-size:16px;margin-bottom:16px}
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:13px;font-weight:500;color:var(--text2);margin-bottom:6px}
.form-input,.form-select,.form-textarea{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:14px;background:var(--surface2);color:var(--text);outline:none;transition:border-color .15s}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);background:var(--surface)}
.form-textarea{resize:vertical;min-height:80px;line-height:1.5}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kb-filters{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.kb-filters .form-input{flex:1;min-width:140px}
.kb-list{max-height:600px;overflow-y:auto}
.kb-item{border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:8px;background:var(--surface2);transition:border-color .15s}
.kb-item:hover{border-color:var(--border2)}
.kb-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.kb-item-q{font-weight:500;font-size:14px;flex:1}
.kb-item-actions{display:flex;gap:4px;flex-shrink:0}
.kb-item-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.kb-item-answer{font-size:13px;color:var(--text2);margin-top:6px;line-height:1.5}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:720px){.admin-grid{grid-template-columns:1fr}}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.stat-box{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}
.stat-box .stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}
.stat-box .stat-value{font-size:22px;font-weight:600;margin-top:2px}
.unanswered-list{max-height:360px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}
.unanswered-item{border:1px solid var(--border);border-radius:var(--radius);padding:12px;background:var(--surface2);font-size:13px}
.unanswered-item .uq{font-weight:500;margin-bottom:4px}
.unanswered-item .umeta{color:var(--text3);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.settings-group{margin-bottom:14px}
.settings-group label{display:block;font-size:13px;font-weight:500;color:var(--text2);margin-bottom:6px}
.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);margin-bottom:10px}
.toggle-label{font-size:14px;font-weight:500}
.toggle-desc{font-size:12px;color:var(--text3);margin-top:2px}
.toggle{position:relative;width:36px;height:20px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0}
.toggle-slider{position:absolute;inset:0;background:var(--border2);border-radius:10px;cursor:pointer;transition:background .2s}
.toggle-slider::before{content:'';position:absolute;width:14px;height:14px;left:3px;top:3px;background:white;border-radius:50%;transition:transform .2s}
.toggle input:checked+.toggle-slider{background:var(--accent)}
.toggle input:checked+.toggle-slider::before{transform:translateX(16px)}
.ops-buttons{display:flex;flex-direction:column;gap:8px}
.info-box{background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:var(--radius);padding:12px 16px;margin-bottom:12px;font-size:13px;color:var(--accent);line-height:1.6}
.info-box strong{font-weight:600}
.warn-box{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius);padding:12px 16px;margin-bottom:12px;font-size:13px;color:var(--warn);line-height:1.6}
.tab{display:none}
.tab.active{display:block}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}

.backend-status-inline{font-size:12px;color:var(--text3);margin-top:6px}

.user-status{font-size:12px;color:var(--text3);padding:0 4px;white-space:nowrap}
.auth-notice{font-size:13px}
.auth-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}
.auth-modal{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
