:root{--bg: #faf7f0;--panel: #ffffff;--bd: #e7e0d2;--bd-soft: #efeadd;--ink: #2c2a25;--body: #3a352d;--mut: #8a8172;--faint: #b7ae9e;--acc: #7c5c2e;--acc-deep: #5f4622;--acc-tint: #efe6d3;--acc-wash: #f5eedf;--user: #7c5c2e;--sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:16px/1.5 var(--sans)}.app{max-width:780px;margin:0 auto;height:100%;display:flex;flex-direction:column}header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;border-bottom:1px solid var(--bd-soft)}.brand{display:flex;align-items:center;gap:10px}.brand .star{width:22px;height:22px;color:var(--acc);flex:none}.brand h1{margin:0;font-size:16.5px;font-weight:600;letter-spacing:-.1px}.brand .sub{font-size:12px;color:var(--faint)}.newchat{font:inherit;font-size:12.5px;font-weight:500;color:var(--acc-deep);background:var(--acc-tint);border:none;border-radius:20px;padding:7px 15px;cursor:pointer}.newchat:hover{background:#e8dcc4}.chat{flex:1;overflow-y:auto;padding:24px}.empty{max-width:560px;margin:7vh auto 0}.welcome{font-size:24px;font-weight:600;letter-spacing:-.3px;margin:0 0 22px;text-align:center}.welcome small{display:block;font-size:14.5px;font-weight:400;color:var(--mut);margin-top:9px;line-height:1.5}.pills{display:flex;flex-direction:column;gap:10px}.pill{display:flex;align-items:center;gap:12px;text-align:left;width:100%;font:inherit;font-size:15px;color:var(--ink);cursor:pointer;background:var(--panel);border:1px solid var(--bd);border-radius:14px;padding:13px 15px;transition:border-color .14s,background .14s}.pill:hover{border-color:var(--acc);background:#fffdfa}.pill .ic{width:30px;height:30px;flex:none;border-radius:9px;color:var(--acc);background:var(--acc-tint);display:flex;align-items:center;justify-content:center}.msg{display:flex;margin-bottom:22px}.msg.user{justify-content:flex-end}.msg.user .bubble{background:var(--user);color:#f6eedf;font-size:15px;line-height:1.5;padding:10px 16px;border-radius:18px 18px 5px;max-width:80%}.msg.assistant{display:block}.md.err{color:#a3402c}.answer{font-size:15.5px;line-height:1.72;max-width:65ch}.answer strong{color:var(--acc-deep);font-weight:600}.ln{margin:0 0 13px}.ln:last-child{margin-bottom:0}.ln.lead{font-size:18.5px;line-height:1.5;font-weight:600;letter-spacing:-.2px;color:var(--ink)}.ln.p,.ln.bullet,.ln.quote{color:var(--body)}.ln.head{color:var(--acc-deep);font-weight:600;margin-top:16px}.ln.bullet{padding-left:1.4em}.ln.bullet .dot{display:inline-block;width:1.4em;margin-left:-1.4em;color:var(--acc)}.ln.quote{border-left:2.5px solid var(--acc);border-radius:0;background:var(--acc-wash);color:#4a4237;font-style:italic;padding:8px 14px}.ln.practice{background:var(--acc-wash);border-left:2.5px solid var(--acc);border-radius:0;padding:12px 16px;margin-top:16px;color:var(--body)}.ln.practice .pr-label{display:block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--acc);margin-bottom:4px}.ln-text{display:inline}.cite-sup{font-size:.68em;vertical-align:super;line-height:0;font-weight:600;color:var(--acc-deep);background:var(--acc-tint);text-decoration:none;border-radius:5px;padding:1px 5px;margin-left:2px;font-variant-numeric:tabular-nums;cursor:pointer}.cite-sup:hover{background:#e8dcc4}.cite-sup+.cite-sup{margin-left:3px}.thinking{color:var(--mut);font-size:15px;display:flex;align-items:center;gap:8px}.typing{display:inline-flex;gap:4px}.typing i{width:6px;height:6px;border-radius:50%;background:var(--acc);animation:b 1.2s infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes b{0%,60%,to{opacity:.25}30%{opacity:1}}.composer{display:flex;gap:11px;align-items:center;padding:14px 24px;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--bd-soft);background:var(--bg)}.composer input{flex:1;font:inherit;font-size:15px;padding:13px 20px;color:var(--ink);background:var(--panel);border:1px solid var(--bd);border-radius:26px}.composer input:focus{outline:none;border-color:var(--acc)}.composer .send{width:44px;height:44px;flex:none;border:none;border-radius:50%;cursor:pointer;background:var(--acc);color:#fffdfa;display:flex;align-items:center;justify-content:center;transition:background .14s}.composer .send:hover{background:var(--acc-deep)}.composer .send:disabled{background:#cdbfa5;cursor:default}.panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c2a254d;display:flex;justify-content:flex-end;z-index:50}.panel{width:min(460px,92vw);height:100%;background:var(--panel);border-left:1px solid var(--bd);display:flex;flex-direction:column;box-shadow:-8px 0 30px #2c2a251f;animation:slidein .18s ease}@keyframes slidein{0%{transform:translate(30px);opacity:0}to{transform:none;opacity:1}}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px;border-bottom:1px solid var(--bd-soft)}.panel-title{font-size:15.5px;font-weight:600;color:var(--ink);line-height:1.3}.panel-date{font-size:12px;color:var(--mut);margin-top:3px;font-variant-numeric:tabular-nums}.panel-close{font-size:22px;line-height:1;border:none;background:none;color:var(--mut);cursor:pointer;padding:0 4px}.panel-close:hover{color:var(--ink)}.panel-body{flex:1;overflow-y:auto;padding:18px 20px}.passage{margin:0;white-space:pre-wrap;font-size:14.5px;line-height:1.72;color:#4a4237}.passage mark{background:#f4e7c8;color:inherit;padding:1px 2px;border-radius:2px}.panel-open{margin:0;padding:14px 20px;border-top:1px solid var(--bd-soft);text-align:center;color:var(--acc-deep);text-decoration:none;font-size:14px;font-weight:500}.panel-open:hover{background:var(--acc-tint)}@media (max-width: 640px){header{padding:12px 16px}.chat{padding:18px 16px}.composer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}.empty{margin-top:5vh}.welcome{font-size:21px}.answer{font-size:16px}.panel-overlay{justify-content:center;align-items:flex-end}.panel{width:100%;height:78vh;border-left:none;border-radius:20px 20px 0 0;box-shadow:0 -8px 30px #2c2a2524;animation:sheetup .22s ease}@keyframes sheetup{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.panel-head:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:36px;height:4px;border-radius:3px;background:#ddd5c4}.panel-head{position:relative;padding-top:22px}}
