:root{color:#1f1338;font-synthesis:none;background:#fcfbff;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}a{color:inherit}button,textarea{font:inherit}button{cursor:pointer}button:focus-visible,textarea:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #f59e0b}.site-shell{flex-direction:column;gap:1rem;width:min(100% - 2rem,780px);min-height:100vh;margin:0 auto;padding:1.5rem 0;display:flex}.skip-link{z-index:10;color:#fff;background:#35116d;border-radius:.4rem;padding:.7rem 1rem;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}.header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.brand{align-items:center;gap:.7rem;text-decoration:none;display:inline-flex}.brand-logo{flex:none;width:3rem;height:3rem}.brand__name,.eyebrow{display:block}.brand__name{color:#2c115b;letter-spacing:-.04em;font-size:clamp(1.65rem,5vw,2.25rem);font-weight:850}.eyebrow{color:#6d28d9;letter-spacing:.1em;font-size:.73rem;font-weight:850}.app-shell{flex-direction:column;flex:1;gap:1rem;min-height:0;display:flex}.notice{color:#35116d;background:#f4efff;border:1px solid #ddd0fb;border-left:4px solid #6d28d9;border-radius:.6rem;padding:.9rem 1rem;line-height:1.5}.conversation{align-content:start;gap:1rem;min-height:260px;display:grid}.message{border-radius:.85rem;max-width:88%;padding:1rem;line-height:1.6}.message--user{color:#fff;background:#4c1d95;border-bottom-right-radius:.2rem;justify-self:end}.message--assistant{background:#fff;border:1px solid #e3def0;border-bottom-left-radius:.2rem;box-shadow:0 1px 2px #1f133814}.message__label{margin-bottom:.45rem;font-size:.78rem;font-weight:800;display:block}.message--assistant .message__label{color:#6d28d9}.message__content>:first-child{margin-top:0}.message__content>:last-child{margin-bottom:0}.message__content a{color:#4c1d95;font-weight:700}.message--user .message__content a{color:#fff}.composer{background:#fff;border:1px solid #e3def0;border-radius:.85rem;padding:1rem}label{margin-bottom:.5rem;font-weight:800;display:block}textarea{resize:vertical;width:100%;min-height:7rem;color:inherit;background:#fff;border:1px solid #786b91;border-radius:.5rem;padding:.8rem;line-height:1.5}textarea:disabled{color:#5b536d;background:#f2f0f6}.composer__footer{justify-content:space-between;align-items:center;gap:1rem;margin-top:.75rem;display:flex}.composer__footer p{color:#514966;margin:0;font-size:.86rem}.character-count{color:#6d647d!important;margin-top:.2rem!important;font-size:.76rem!important}button{color:#fff;background:#5b21b6;border:0;border-radius:.5rem;min-height:2.7rem;padding:.65rem 1rem;font-weight:800}button:hover:not(:disabled){background:#42178a}button:disabled{cursor:not-allowed;opacity:.6}.secondary-button{color:#4c1d95;background:#fff;border:1px solid #6d28d9}.secondary-button:hover:not(:disabled){color:#fff;background:#5b21b6}.loading{color:#4c1d95;font-weight:750}.loading span{border:2px solid #d9c9fa;border-top-color:#6d28d9;border-radius:50%;width:.85rem;height:.85rem;margin-right:.4rem;animation:.8s linear infinite spin;display:inline-block}.error{color:#7f1d1d;background:#fff1f2;border:1px solid #f4b8bd;border-radius:.6rem;margin:0;padding:.85rem 1rem}.footer{color:#514966;border-top:1px solid #e3def0;justify-content:space-between;align-items:center;gap:1rem;padding-top:.5rem;font-size:.82rem;display:flex}.footer p{margin:0}.footer nav{flex-wrap:wrap;gap:.9rem;display:flex}.footer a{color:#4c1d95;font-weight:700}.legal-page{outline:none;flex:1}.legal-page__intro{color:#fff;background:linear-gradient(135deg,#4c1d95,#a21caf);border-radius:.85rem;padding:1.25rem}.legal-page__intro .eyebrow{color:#fde047}.legal-page__intro h1{margin:.3rem 0 .5rem;font-size:clamp(1.7rem,5vw,2.35rem)}.legal-page__intro p{margin:0}.legal-page__content{background:#fff;border:1px solid #e3def0;border-radius:.85rem;margin-top:1rem;padding:1.25rem}.legal-page__content section+section{margin-top:1.5rem}.legal-page__content h2{color:#35116d;margin:0 0 .45rem;font-size:1.1rem}.legal-page__content p{margin:0;line-height:1.65}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=560px){.site-shell{width:min(100% - 1rem,780px);padding:1rem 0}.header,.composer__footer,.footer{flex-direction:column;align-items:stretch}.header .secondary-button{align-self:start}.message{max-width:96%}.footer nav{gap:1rem}}.back-button{color:#4c1d95;background:#fff;border:1px solid #6d28d9;margin-bottom:.75rem}.back-button:hover:not(:disabled){color:#fff;background:#5b21b6}
