:root{--c-primary: #1f3a5f;--c-accent: #2f9e8f;--c-secondary: #5a7fb0;--c-heading: #16283d;--c-body: #232a31;--c-surface: #f5f7f9;--c-card: #eef2f6;--c-muted: #5c6773;--c-on-primary: #ffffff;--c-border: #dde3ea;--font-display: system-ui, sans-serif;--font-body: system-ui, sans-serif;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-pill: 999px;--gap: 16px;--sources-w: 320px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .06), 0 1px 3px rgba(0, 0, 0, .08);--shadow-2: 0 6px 20px rgba(0, 0, 0, .1)}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--c-surface);color:var(--c-body);font-family:var(--font-body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}h1,h2,h3,h4,h5,h6{margin:0 0 .4em;font-family:var(--font-display);color:var(--c-heading);line-height:1.2;font-weight:700}p{margin:0 0 .75em}p:last-child{margin-bottom:0}a{color:var(--c-accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;font-size:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:2px solid var(--c-secondary);outline-offset:2px}table,.tabular{font-variant-numeric:tabular-nums}code,pre{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.9em}#root{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.app{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.app-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--gap);padding:12px 20px;background:var(--c-primary);color:var(--c-on-primary);box-shadow:var(--shadow-1);z-index:2}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-dot{flex:0 0 auto;width:14px;height:14px;border-radius:4px;background:var(--c-accent);box-shadow:0 0 0 1px #ffffff59}.brand-text{display:flex;flex-direction:column;min-width:0}.brand-name{font-family:var(--font-display);font-weight:800;font-size:17px;line-height:1.15;color:var(--c-on-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-sub{font-size:12px;line-height:1.2;color:var(--c-on-primary);opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.tenant-switcher,.role-select{display:inline-flex;flex-direction:column;gap:4px;align-items:flex-start}.control-label{font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--c-on-primary);opacity:.6;padding-left:2px}.tenant-switcher select,.role-select select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:7px 32px 7px 13px;border:1px solid rgba(255,255,255,.24);border-radius:var(--radius-pill);background-color:#ffffff1f;color:var(--c-on-primary);font-size:13px;font-weight:600;line-height:1.2;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5l3.5 3.5 3.5-3.5' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-size:11px 11px;background-repeat:no-repeat;transition:background-color .12s ease,border-color .12s ease}.tenant-switcher select:hover,.role-select select:hover{background-color:#fff3;border-color:#fff6}.tenant-switcher select:focus-visible,.role-select select:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:1px}.tenant-switcher select option,.role-select select option{color:#1c2530;background:#fff;font-weight:500}.main{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:1fr var(--sources-w);overflow:hidden}.chat-pane{display:flex;flex-direction:column;min-width:0;min-height:0}.chat-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:24px clamp(16px,4vw,40px);display:flex;flex-direction:column;gap:16px}.msg{max-width:78%;padding:12px 15px;border-radius:var(--radius-md);overflow-wrap:anywhere;box-shadow:var(--shadow-1)}.msg p{margin-bottom:.55em}.msg-user{align-self:flex-end;background:var(--c-primary);color:var(--c-on-primary);border-bottom-right-radius:4px}.msg-user a{color:var(--c-on-primary);text-decoration:underline}.msg-assistant{align-self:flex-start;background:var(--c-card);color:var(--c-body);border:1px solid var(--c-border);border-bottom-left-radius:4px}.msg pre{margin:.5em 0;padding:10px 12px;border-radius:var(--radius-sm);background:#0000000f;overflow-x:auto}.msg code{padding:.1em .35em;border-radius:4px;background:#0000000f}.msg-user code,.msg-user pre{background:#ffffff2e}.md>*:first-child{margin-top:0}.md>*:last-child{margin-bottom:0}.md-p{margin:0 0 .6em}.md-h{font-family:var(--font-display);color:var(--c-heading);line-height:1.25;margin:.75em 0 .3em}h3.md-h{font-size:1.06em;font-weight:800}h4.md-h{font-size:.98em;font-weight:700}h5.md-h{font-size:.9em;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--c-muted)}.md-list{margin:.35em 0 .6em;padding-left:1.35em}.md-list li{margin:0 0 .28em}.md-list li::marker{color:var(--c-secondary)}.md strong{font-weight:700;color:var(--c-heading)}.md a{color:var(--c-accent);text-decoration:underline}.cite-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.cite-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:3px 9px;border:1px solid var(--c-border);border-radius:var(--radius-pill);background:var(--c-surface);color:var(--c-body);font-size:12px;line-height:1.4;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:border-color .12s ease,box-shadow .12s ease}.cite-chip:hover{border-color:var(--c-secondary)}.cite-chip.is-active{outline:2px solid var(--c-accent);outline-offset:1px;border-color:transparent;background:color-mix(in srgb,var(--c-accent) 12%,var(--c-surface))}.typing{display:inline-flex;align-items:center;gap:5px;padding:4px 2px}.typing span{width:7px;height:7px;border-radius:50%;background:var(--c-muted);opacity:.5;animation:typing-bounce 1.2s infinite ease-in-out}.typing span:nth-child(2){animation-delay:.18s}.typing span:nth-child(3){animation-delay:.36s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:.95}}@media (prefers-reduced-motion: reduce){.typing span{animation:none;opacity:.6}}.escalation-note{margin-top:10px;padding:8px 12px;font-size:13px;border-left:3px solid var(--c-accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:color-mix(in srgb,var(--c-accent) 8%,var(--c-card));color:var(--c-body)}.composer{position:sticky;bottom:0;flex:0 0 auto;display:flex;flex-direction:column;gap:10px;padding:14px clamp(16px,4vw,40px) 16px;background:var(--c-surface);border-top:1px solid var(--c-border);box-shadow:0 -2px 10px #0000000a}.examples{display:flex;flex-wrap:wrap;gap:8px}.example-chip{padding:5px 12px;border:1px solid var(--c-border);border-radius:var(--radius-pill);background:var(--c-surface);color:var(--c-body);font-size:13px;line-height:1.3;transition:background-color .12s ease,border-color .12s ease}.example-chip:hover{background:var(--c-card);border-color:var(--c-secondary)}.mode-toggle{display:inline-flex;align-self:flex-start;padding:2px;border:1px solid var(--c-border);border-radius:var(--radius-pill);background:var(--c-card)}.mode-toggle button{border:none;background:transparent;padding:5px 14px;border-radius:var(--radius-pill);color:var(--c-muted);font-size:13px;font-weight:600;line-height:1.3;transition:background-color .12s ease,color .12s ease}.mode-toggle button:hover:not(.is-active){color:var(--c-body)}.mode-toggle button.is-active,.mode-toggle button[aria-pressed=true],.mode-toggle button[aria-selected=true]{background:var(--c-secondary);color:var(--c-on-primary)}.composer-row{display:flex;align-items:flex-end;gap:10px}.composer-input{flex:1 1 auto;width:100%;min-height:46px;max-height:200px;padding:11px 14px;border:1px solid var(--c-border);border-radius:var(--radius-md);background:var(--c-card);color:var(--c-body);line-height:1.5;resize:vertical;transition:border-color .12s ease,box-shadow .12s ease}.composer-input::placeholder{color:var(--c-muted);opacity:.85}.composer-input:focus{outline:none;border-color:var(--c-secondary);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-secondary) 30%,transparent)}.btn-send{flex:0 0 auto;padding:11px 20px;border:none;border-radius:var(--radius-md);background:var(--c-accent);color:var(--c-on-primary);font-weight:700;line-height:1.3;transition:filter .12s ease,box-shadow .12s ease}.btn-send:hover:not(:disabled){filter:brightness(.94);box-shadow:var(--shadow-1)}.btn-send:active:not(:disabled){filter:brightness(.88)}.sources-pane{min-width:0;min-height:0;overflow-y:auto;background:var(--c-card);border-left:1px solid var(--c-border)}.sources-title{position:sticky;top:0;margin:0;padding:14px 16px 10px;background:var(--c-card);border-bottom:1px solid var(--c-border);font-family:var(--font-display);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted);z-index:1}.source-row{display:flex;flex-direction:column;gap:5px;padding:12px 16px;border-bottom:1px solid var(--c-border);cursor:pointer;transition:background-color .12s ease}.source-row:hover{background:color-mix(in srgb,var(--c-accent) 5%,var(--c-card))}.source-row.is-active{background:color-mix(in srgb,var(--c-accent) 12%,var(--c-card));box-shadow:inset 3px 0 0 var(--c-accent)}.source-title{font-weight:600;color:var(--c-heading);font-size:14px;line-height:1.35}.source-ref{font-size:12px;color:var(--c-body);font-variant-numeric:tabular-nums}.source-registry{font-size:11px;color:var(--c-muted)}.source-snippet{margin-top:2px;font-size:12px;color:var(--c-muted);line-height:1.45}.source-head{display:flex;align-items:center;gap:8px}.badge{display:inline-flex;align-items:center;flex:0 0 auto;padding:2px 7px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1.5;white-space:nowrap}.badge.tier-binding{background:var(--c-secondary);color:var(--c-on-primary);border-color:transparent}.badge.tier-procedure{background:color-mix(in srgb,var(--c-secondary) 24%,var(--c-card));color:var(--c-heading);border-color:color-mix(in srgb,var(--c-secondary) 45%,transparent)}.badge.tier-reference{background:color-mix(in srgb,var(--c-secondary) 12%,var(--c-card));color:var(--c-muted);border-color:var(--c-border)}.badge.tier-context{background:#0000000d;color:var(--c-muted);border-color:var(--c-border)}.badge.tier-kb{background:#00000009;color:var(--c-muted);border-color:var(--c-border)}.escalate-card{margin:14px 16px;padding:14px;border:1px solid color-mix(in srgb,var(--c-accent) 30%,var(--c-border));border-radius:var(--radius-md);background:color-mix(in srgb,var(--c-accent) 8%,var(--c-card))}.escalate-card p{margin:0 0 10px;font-size:13px;color:var(--c-body)}.btn-escalate{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:none;border-radius:var(--radius-sm);background:var(--c-accent);color:var(--c-on-primary);font-weight:700;font-size:13px;transition:filter .12s ease,box-shadow .12s ease}.btn-escalate:hover:not(:disabled){filter:brightness(.94);box-shadow:var(--shadow-1)}.sources-empty{padding:20px 16px;font-size:13px;color:var(--c-muted)}.right-rail{display:flex;flex-direction:column}.rail-section{border-bottom:1px solid var(--c-border)}.rail-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:13px 16px;border:none;background:transparent;color:var(--c-muted);font-family:var(--font-display);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;transition:color .12s ease,background-color .12s ease}.rail-header:hover{color:var(--c-heading);background:color-mix(in srgb,var(--c-accent) 4%,transparent)}.rail-title{display:inline-flex;align-items:center;gap:8px}.rail-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);background:var(--c-secondary);color:var(--c-on-primary);font-size:11px;font-weight:700;letter-spacing:0}.rail-chevron{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s ease;opacity:.7}.rail-section.is-open .rail-chevron{transform:rotate(45deg)}.rail-body{padding-bottom:6px}.guide{padding:4px 16px 16px}.guide-intro{margin:0 0 14px;font-size:13px;color:var(--c-muted);line-height:1.5}.guide-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px}.guide-item{display:flex;flex-direction:column;gap:3px;padding-left:12px;border-left:2px solid color-mix(in srgb,var(--c-accent) 40%,var(--c-border))}.guide-item-title{font-size:13px;font-weight:700;color:var(--c-heading)}.guide-item-body{font-size:12.5px;color:var(--c-muted);line-height:1.5}.chat-scroll,.sources-pane{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--c-muted) 45%,transparent) transparent}.chat-scroll::-webkit-scrollbar,.sources-pane::-webkit-scrollbar{width:10px}.chat-scroll::-webkit-scrollbar-thumb,.sources-pane::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--c-muted) 40%,transparent);border-radius:var(--radius-pill);border:3px solid transparent;background-clip:padding-box}@media (max-width: 820px){.main{display:flex;flex-direction:column}.chat-pane{flex:1 1 auto;min-height:0}.sources-pane{flex:0 0 auto;max-height:42dvh;border-left:none;border-top:1px solid var(--c-border)}.msg{max-width:88%}.app-header{padding:10px 14px}.brand-sub{display:none}}@media (max-width: 480px){body{font-size:14px}.header-controls{gap:6px}.composer{padding:12px 14px 14px}.chat-scroll{padding:16px 14px}}.brand{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.brand-sub{opacity:.72;font-size:.82rem}.tenant-switcher,.role-select{display:inline-flex;flex-direction:column;gap:2px}.tenant-switcher-label,.clearance-caption{font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;color:var(--c-on-primary);opacity:.75}.tenant-switcher-select,.role-select-input{font:inherit;font-size:.85rem;padding:4px 8px;border-radius:6px;border:1px solid var(--c-border);background:#fff;color:var(--c-body)}.msg-p{margin:0 0 .55em}.msg-p:last-child{margin-bottom:0}.cite-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.cite-tier{font-size:.6rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;opacity:.7;margin-right:4px}.cite-title{font-weight:600}.cite-ref{color:var(--c-muted);margin-left:4px}.sources-panel{display:flex;flex-direction:column}.sources-heading{font-family:var(--font-display);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--c-muted);margin:0 0 12px}.source-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.source-title{font-weight:600}.source-title a{color:var(--c-primary);text-decoration:none}.source-title a:hover{text-decoration:underline}.source-ref{color:var(--c-muted);font-size:.82rem;margin-left:6px}.escalate-text{margin:0 0 8px;font-size:.9rem}.example-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.coming-soon{font-size:.58rem;text-transform:uppercase;letter-spacing:.04em;opacity:.7;margin-left:5px}.btn-send{color:var(--c-on-accent)}.btn-send:disabled{opacity:.5}.option-groups{display:flex;flex-direction:column;gap:12px;margin-top:12px}.option-group{display:flex;flex-direction:column;gap:5px;padding-left:9px;border-left:3px solid var(--cat-color, var(--c-border))}.option-group-label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--cat-color, var(--c-muted))}.option-row{display:grid;grid-auto-flow:column;grid-template-rows:auto auto;grid-auto-columns:max-content;gap:6px;overflow-x:auto;padding-bottom:5px;scrollbar-width:thin}.option-row::-webkit-scrollbar{height:6px}.option-row::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:3px}.option-chip{white-space:nowrap;border:1px solid var(--c-border);border-left:3px solid var(--c-border);border-radius:6px;background:var(--c-card);color:var(--c-body);padding:6px 11px;font-size:13px;line-height:1.2;text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease}.option-chip:hover{background:var(--c-surface);border-color:var(--c-accent)}.option-chip:focus-visible{outline:2px solid var(--c-accent);outline-offset:1px}.option-chip.tier-binding{border-left-color:var(--c-accent)}.option-chip.tier-procedure{border-left-color:var(--c-secondary)}.option-chip.tier-reference{border-left-color:var(--c-muted)}.option-chip.tier-context,.option-chip.tier-kb{border-left-color:var(--c-border)}.option-group.cat-0{--cat-color: #e8663f}.option-group.cat-1{--cat-color: #4a90c2}.option-group.cat-2{--cat-color: #6ea36b}.option-group.cat-3{--cat-color: #a06cc2}.option-group.cat-4{--cat-color: #c2a24a}.option-group.cat-5{--cat-color: #4aa0a0}.composer-tools{display:flex;justify-content:flex-end;padding:0 2px 6px}.palette{position:relative}.palette-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--c-border);background:var(--c-card);color:var(--c-muted);border-radius:8px;padding:5px 10px;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.palette-toggle:hover,.palette-toggle.is-open{border-color:var(--c-accent);color:var(--c-heading);background:var(--c-surface)}.palette-toggle-icon{font-size:13px}.palette-pop{position:absolute;bottom:calc(100% + 8px);right:0;width:min(620px,82vw);max-height:46vh;overflow-y:auto;background:var(--c-card);border:1px solid var(--c-border);border-radius:12px;box-shadow:0 10px 30px #0000002e;padding:12px 14px 14px;z-index:30}.palette-pop-head{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--c-muted);margin-bottom:6px}.palette-close{border:none;background:transparent;color:var(--c-muted);font-size:20px;line-height:1;cursor:pointer;padding:0 2px}.palette-close:hover{color:var(--c-heading)}.palette-pop-body .option-groups{margin-top:0}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg, #0f172a);padding:24px}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:12px;padding:32px 28px;border-radius:14px;background:var(--surface, #fff);box-shadow:0 12px 40px #00000047}.login-brand{font-size:1.15rem;font-weight:700;color:var(--text, #0f172a)}.login-sub{font-size:.85rem;color:var(--text-muted, #64748b);margin-bottom:6px}.login-input{width:100%;padding:10px 12px;border:1px solid var(--border, #d1d5db);border-radius:8px;font-size:.95rem;background:var(--surface, #fff);color:var(--text, #0f172a)}.login-input:focus{outline:2px solid var(--accent, #14b8a6);outline-offset:1px;border-color:transparent}.login-error{font-size:.82rem;color:#dc2626}.login-button{margin-top:6px;padding:10px 14px;border:none;border-radius:8px;background:var(--accent, #14b8a6);color:#fff;font-weight:600;font-size:.95rem;cursor:pointer}.login-button:disabled{opacity:.5;cursor:not-allowed}.user-menu{display:flex;align-items:center;gap:8px}.user-name{font-size:.85rem;color:#ffffffe6;font-weight:600}.logout-button{padding:4px 10px;border:1px solid rgba(255,255,255,.35);border-radius:6px;background:transparent;color:#ffffffe6;font-size:.78rem;cursor:pointer}.logout-button:hover{background:#ffffff1f}
