*{margin:0;padding:0;box-sizing:border-box}
body{background:#fff;color:#000;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Helvetica Neue',Arial,sans-serif;height:100vh;overflow:hidden;display:flex;align-items:stretch}

#term{flex:1;display:flex;flex-direction:column;max-width:900px;margin:0 auto;padding:24px 32px 12px;width:100%}
#output{flex:1;overflow-y:auto;font-size:14px;line-height:1.6;scroll-behavior:smooth;padding-bottom:12px}
#output::-webkit-scrollbar{width:4px}
#output::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}
#output::-webkit-scrollbar-track{background:transparent}

#input-line{display:flex;align-items:center;border-top:1px solid #eee;padding-top:10px;margin-top:4px}
#prompt{color:#000;font-weight:600;font-size:15px;margin-right:10px;font-family:inherit}
#input{flex:1;border:none;outline:none;font-size:15px;font-family:inherit;color:#000;background:transparent}
#input::placeholder{color:#bbb}

#status-line{display:flex;gap:16px;font-size:11px;color:#aaa;padding-top:8px;border-top:1px solid #f5f5f5;margin-top:8px}
#status-line span{cursor:default}

.line{margin-bottom:2px;animation:fadeIn .12s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}
.line.result{color:#000}
.line.error{color:#d32f2f}
.line.success{color:#2e7d32}
.line.info{color:#1565c0}
.line.dim{color:#999;font-size:12px}
.line.highlight{font-weight:600}
.line.sep{border-bottom:1px solid #eee;margin:8px 0}
.line.eq{font-family:'Times New Roman','STIX',serif;font-size:16px;font-style:italic;padding:3px 0;color:#000}
.line.scientist{font-weight:600;color:#000;font-size:13px}
.line.story-title{font-weight:600;font-size:16px;margin-top:8px}
.line.story-body{font-size:14px;color:#333}
.line.header{font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:0.5px;color:#555;padding-top:8px}
.line.banner{font-family:'Courier New',monospace;font-size:10px;line-height:1.15;color:#000;white-space:pre}

#loading{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;transition:opacity .4s}
#loading.hidden{opacity:0;pointer-events:none}
#loading .loader-dot{font-size:32px;color:#000;animation:pulse 1s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.3}50%{opacity:1}}
#loading .loader-text{font-size:14px;color:#999;margin-top:12px}

@media(max-width:600px){#term{padding:16px 16px 8px}#output{font-size:13px}#input{font-size:14px}}
