:root{--bg: #f5f0e6;--paper: #ebe3d5;--text: #2d2618;--accent: #a67c52;--accent-dark: #8b6914;--border: #d4c4a8;--shadow: rgba(45, 38, 24, .08)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:"Source Sans 3",sans-serif;font-size:1rem;line-height:1.6;color:var(--text);background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E")}.page{max-width:42rem;margin:0 auto;padding:2rem 1.5rem 4rem}.header{text-align:center;margin-bottom:2.5rem}.title{font-family:Lora,serif;font-size:1.75rem;font-weight:600;margin:0 0 .25rem;color:var(--text);display:flex;align-items:center;justify-content:center;gap:.5rem}.title-logo{flex-shrink:0;vertical-align:middle}.tagline{font-family:"Source Sans 3",sans-serif;font-size:.95rem;color:var(--accent-dark);margin:0;font-style:italic}.main{display:flex;flex-direction:column;gap:1.5rem}.form{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.field{display:flex;flex-direction:column;gap:.35rem}.label{font-family:"Source Sans 3",sans-serif;font-size:.85rem;font-weight:600;color:var(--text)}.select,.input{font-family:"Source Sans 3",sans-serif;font-size:1rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:4px;background:var(--paper);color:var(--text);min-width:10rem}.select:focus,.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--shadow)}.input{min-width:12rem}.button{font-family:"Source Sans 3",sans-serif;font-size:1rem;font-weight:600;padding:.5rem 1.25rem;border:1px solid var(--accent);border-radius:4px;background:var(--accent);color:var(--bg);cursor:pointer;transition:background .15s,border-color .15s}.button:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}.button:disabled{opacity:.7;cursor:not-allowed}.history-section{margin-top:.5rem}.history-section.hidden{display:none}.history-title{font-family:"Source Sans 3",sans-serif;font-size:.85rem;font-weight:600;color:var(--accent-dark);margin:0 0 .5rem}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}.history-item{font-family:"Source Sans 3",sans-serif;font-size:.9rem;padding:.35rem .6rem;border:1px solid var(--border);border-radius:4px;background:var(--paper);color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.history-item:hover{border-color:var(--accent);background:var(--bg)}.history-actions{margin-top:.5rem}.history-more{font-family:"Source Sans 3",sans-serif;font-size:.85rem;padding:.25rem .5rem;border:none;background:none;color:var(--accent-dark);cursor:pointer;text-decoration:none}.history-more:hover{text-decoration:underline}.explanation-wrap{background:var(--paper);border:1px solid var(--border);border-radius:6px;box-shadow:0 2px 8px var(--shadow);padding:1.5rem;min-height:8rem;position:relative}.loading-indicator{display:none;align-items:center;gap:.75rem;padding:.5rem 0;font-family:"Source Sans 3",sans-serif;font-size:.95rem;color:var(--accent-dark)}.loading-indicator.visible{display:flex}.loading-spinner{width:1.25rem;height:1.25rem;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-message{font-style:italic}.explanation{font-family:Lora,serif;font-size:1.05rem;line-height:1.7;color:var(--text)}.explanation .placeholder{color:var(--accent-dark);font-style:italic}.explanation .placeholder.hidden{display:none}.explanation .streaming-text{word-break:break-word}.explanation .streaming-text p{margin:0 0 .75em}.explanation .streaming-text p:last-child{margin-bottom:0}.explanation .streaming-text strong{font-weight:600;color:var(--text)}.explanation .streaming-text em{font-style:italic;color:var(--accent-dark)}.explanation .error{display:none;color:brown;font-family:"Source Sans 3",sans-serif;font-style:normal}.explanation .error.visible{display:block}@media(max-width:480px){.form{flex-direction:column;align-items:stretch}.select,.input{min-width:0;width:100%}}
