:root{color:#f3eee3;font-synthesis:none;background:#111;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}.source-list{border-top:1px solid var(--border);margin-top:20px;padding-top:14px}.source-list__heading{color:var(--muted);align-items:center;gap:8px;margin-bottom:12px;font-size:12px;font-weight:500;display:flex}.source-list__citations{flex-wrap:wrap;gap:8px;display:flex}.source-list__citation{color:#f3eee3;background:#b94318;border:1px solid #b94318;border-radius:999px;align-items:center;gap:9px;max-width:100%;padding:10px 16px;font-size:12px;font-weight:600;line-height:1.4;text-decoration:none;transition:background-color .2s,border-color .2s,transform .2s;display:inline-flex}.source-list__citation:hover{background:#cf4d1c;border-color:#cf4d1c;transform:translateY(-2px)}.source-list__citation svg:last-child{color:#ffb184;opacity:1}.source-list__citation span{overflow-wrap:anywhere}.source-list__citation:hover svg:last-child{color:#ffcfad}.source-list__citation:focus-visible{outline:2px solid var(--orange);outline-offset:3px}.source-list__citation svg{flex-shrink:0}.source-list__citation svg:last-child{color:var(--muted)}.chat-message{gap:16px;width:100%;margin-bottom:32px;display:flex}.chat-message--user{justify-content:flex-end}.chat-message__body{min-width:0;max-width:100%}.chat-message--user .chat-message__body{background:var(--surface);border:1px solid var(--border);border-radius:22px 22px 6px;max-width:min(85%,650px);padding:14px 20px}.chat-message--user p{white-space:pre-wrap;margin:0;line-height:1.7}.chat-message--assistant .chat-message__body{flex:1}.chat-message__avatar{background:0 0;border:1px solid #a0a0a040;border-radius:12px;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.ludex-mark{justify-content:center;align-items:center;gap:1px;font-family:SFMono-Regular,Consolas,monospace;font-size:16px;font-weight:700;line-height:1;display:inline-flex}.ludex-mark__prompt{color:#d9541e}.ludex-mark__letter{color:#f3eee3}.chat-message__markdown{overflow-wrap:anywhere;font-size:15px;line-height:1.8}.chat-message__markdown>:first-child{margin-top:0}.chat-message__markdown p{margin:0 0 16px}.chat-message__markdown h1,.chat-message__markdown h2,.chat-message__markdown h3{margin:24px 0 12px;line-height:1.3}.chat-message__markdown a{color:var(--orange)}.chat-message__markdown ul,.chat-message__markdown ol{padding-left:24px}.chat-message__markdown :not(pre)>code{background:var(--surface);border-radius:6px;padding:3px 6px;font-size:.9em}.message-code{border:1px solid var(--border);background:#171717;border-radius:16px;margin:18px 0;overflow:hidden}.message-code__header{color:var(--muted);background:#242321;justify-content:space-between;align-items:center;padding:10px 16px;font-size:12px;display:flex}.message-code pre{margin:0;padding:18px;font-size:13px;line-height:1.6;overflow-x:auto}.message-code code{font-family:JetBrains Mono,monospace}.message-copy{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;display:grid}.message-copy:hover{color:var(--cream);background:var(--surface-hover)}.chat-message__actions{gap:8px;margin-top:8px;display:flex}.chat-message__markdown table{border-collapse:collapse;width:max-content;max-width:100%;margin:16px 0;display:block;overflow-x:auto}.chat-message__markdown th,.chat-message__markdown td{border:1px solid var(--border);text-align:left;padding:8px 12px}@media (width<=600px){.chat-message{gap:10px}.chat-message--user .chat-message__body{max-width:92%}}.ludex-logo{letter-spacing:-.06em;color:#f3eee3;align-items:center;gap:.3em;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:28px;font-weight:700;display:inline-flex}.ludex-logo__prompt{color:#d9541e;font-weight:800}.splash-screen{z-index:9999;opacity:1;background:#111;justify-content:center;align-items:center;transition:opacity .6s;display:flex;position:fixed;inset:0}.splash-screen--exit{opacity:0;pointer-events:none}.splash-logo{justify-content:center;min-width:5.5em;font-size:clamp(48px,8vw,84px)}.splash-logo .ludex-logo__prompt{animation:.5s step-end 3 prompt-blink}@keyframes prompt-blink{50%{opacity:.15}}@media (prefers-reduced-motion:reduce){.splash-screen,.splash-logo .ludex-logo__prompt{transition:none;animation:none}}:root{--background:#111;--surface:#1b1b1b;--surface-hover:#242321;--cream:#f3eee3;--orange:#d9541e;--muted:#99938d;--border:#34302d}.app-layout{background:var(--background);min-height:100vh;color:var(--cream);display:flex}.sidebar{border-right:1px solid var(--border);background:#151515;flex-direction:column;flex-shrink:0;width:264px;min-height:100vh;padding:24px 16px;transition:width .2s;display:flex}.sidebar--collapsed{width:76px}.sidebar__top{justify-content:space-between;align-items:center;min-height:48px;margin-bottom:32px;display:flex}.sidebar--collapsed .sidebar__top{justify-content:center}.sidebar__top .ludex-logo{font-size:24px}.icon-button{width:38px;height:38px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:12px;place-items:center;display:grid}.icon-button:hover{background:var(--surface-hover);color:var(--cream)}.new-chat-button{background:var(--cream);width:100%;color:var(--background);cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:12px;padding:14px;font-size:14px;font-weight:600;display:flex}.new-chat-button:hover{background:#e4dbcc}.sidebar__spacer{flex:1}.sidebar__tagline{background:var(--surface);border-radius:16px;margin-bottom:20px;padding:18px 12px}.sidebar__tagline span{color:var(--orange);font-family:monospace;font-size:10px}.sidebar__tagline p{margin-bottom:0;font-size:14px}.sidebar__settings{width:100%;color:var(--muted);text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;padding:12px;font-size:14px;display:flex}.sidebar__settings:disabled{opacity:.5;cursor:not-allowed}.sidebar--collapsed .sidebar__tagline{display:none}.main-content{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border);align-items:center;height:80px;padding:0 36px;display:flex}.topbar__breadcrumb{color:var(--muted);font-size:13px}.topbar__breadcrumb strong{color:var(--cream);font-weight:500}.workspace{flex:1;width:100%;max-width:900px;margin:0 auto;padding:110px 36px 48px}.welcome__eyebrow{letter-spacing:.08em;color:var(--orange);margin-bottom:32px;font-family:monospace;font-size:11px}.welcome__eyebrow span{margin-right:10px}.welcome h1{letter-spacing:-.04em;margin:0 0 20px;font-size:clamp(32px,4vw,46px);font-weight:600;line-height:1.15}.welcome__subtitle{color:var(--muted);margin-bottom:48px;font-size:16px;line-height:1.6}.suggestion-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.suggestion-card{background:var(--surface);min-height:140px;color:var(--cream);border:1px solid var(--border);text-align:left;cursor:pointer;border-radius:20px;flex-direction:column;justify-content:space-between;padding:22px;transition:background .12s,border-color .12s;display:flex}.suggestion-card:hover{background:var(--surface-hover);border-color:var(--orange)}.suggestion-card__engine{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.suggestion-card__bottom{justify-content:space-between;align-items:end;gap:12px;display:flex}.suggestion-card__bottom p{margin:20px 0 0;font-size:15px;line-height:1.5}.suggestion-card__bottom svg{color:var(--muted);flex-shrink:0}@media (width<=768px){.sidebar{z-index:100;width:min(300px,85vw);min-height:100dvh;box-shadow:none;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.sidebar--mobile-open{transform:translate(0);box-shadow:12px 0 40px #00000059}.sidebar--collapsed{width:min(300px,85vw)}.topbar{height:68px;padding:0 20px}.workspace{padding:72px 24px 32px}.suggestion-grid{gap:12px}.suggestion-card{min-height:150px;padding:16px}}@media (width<=480px){.suggestion-grid{grid-template-columns:1fr}.welcome__subtitle{margin-bottom:32px}}@media (prefers-reduced-motion:reduce){.sidebar,.suggestion-card{transition:none}}.composer-container{margin-top:64px}.composer-hint{color:var(--muted);justify-content:space-between;gap:12px;padding:12px 8px;font-size:11px;display:flex}@media (width<=600px){.composer-container{margin-top:36px}.composer-hint{flex-direction:column;gap:4px}}.conversation{width:100%;padding-bottom:12px}.conversation .chat-message:last-child{margin-bottom:0}.ludex-loading{color:var(--muted);align-items:center;gap:7px;padding:16px 0;font-size:13px;display:flex}.ludex-loading__dot{background:var(--orange);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite ludex-pulse}.ludex-loading__dot:nth-child(2){animation-delay:.15s}.ludex-loading__dot:nth-child(3){margin-right:8px;animation-delay:.3s}.topbar__workspace-button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.topbar__workspace-button:hover{color:var(--cream)}.topbar__workspace-button:focus-visible{outline:2px solid var(--orange);outline-offset:5px;border-radius:3px}@keyframes ludex-pulse{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1.2)}}.ludex-error{color:#ffb4a2;background:#301c19;border:1px solid #8b3b2a;border-radius:14px;margin-top:16px;padding:14px 18px;font-size:13px}@media (prefers-reduced-motion:reduce){.ludex-loading__dot{animation:none}}.sidebar-backdrop{display:none}@media (width<=768px){.sidebar-backdrop{z-index:99;cursor:pointer;background:#0009;border:none;display:block;position:fixed;inset:0}}.sidebar__history{flex-direction:column;gap:10px;min-height:0;margin-top:24px;padding:0 12px;display:flex}.sidebar__history-heading{color:#8f8f8f;letter-spacing:.08em;text-transform:uppercase;padding:0 10px;font-size:11px;font-weight:700}.sidebar__history-empty{color:#777;padding:8px 10px;font-size:13px}.sidebar__history-list{flex-direction:column;gap:4px;max-height:45vh;display:flex;overflow-y:auto}.sidebar__history-item{color:#bcbcbc;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;padding:11px 12px;font-size:13px;transition:background .15s,color .15s}.sidebar__history-item span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.sidebar__history-item:hover{color:#f3eee3;background:#f3eee312}.sidebar__history-item--active{color:#f3eee3;background:#d9541e1f;border-color:#d9541e40}.sidebar__history-item:focus-visible{outline-offset:2px;outline:2px solid #d9541e}.chat-composer{background:var(--surface);border:1px solid var(--border);border-radius:24px;width:100%;padding:18px;transition:border-color .16s}.chat-composer:focus-within{border-color:#75503e}.chat-composer__input{resize:vertical;width:100%;min-height:76px;color:var(--cream);font:inherit;background:0 0;border:none;outline:none;padding:4px 2px 14px;font-size:15px;line-height:1.6;display:block}.chat-composer__input::placeholder{color:var(--muted)}.chat-composer__footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.engine-selector{border:1px solid var(--border);background:var(--background);border-radius:999px;flex-wrap:wrap;gap:4px;padding:4px;display:flex}.engine-option{color:var(--cream);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:9px 12px;font-size:12px;transition:background .16s,color .16s;display:inline-flex}.engine-option:hover:not(.engine-option--active){background:var(--surface-hover)}.engine-option--active{background:var(--orange);color:var(--cream)}.chat-composer__send{background:var(--orange);width:46px;height:46px;color:var(--cream);cursor:pointer;border:none;border-radius:15px;flex-shrink:0;place-items:center;display:grid}.chat-composer__send:hover:not(:disabled){background:#ed6028}.chat-composer__send:disabled{opacity:.4;cursor:not-allowed}.composer textarea,.chat-composer textarea{resize:none}@media (width<=600px){.chat-composer{border-radius:20px;padding:12px}.chat-composer__footer{align-items:flex-end}.engine-selector{border-radius:16px}.engine-option{gap:5px;padding:8px;font-size:11px}.engine-option svg{width:14px;height:14px}}@media (prefers-reduced-motion:reduce){.chat-composer,.engine-option{transition:none}}
