:root{--abyss: #060D18;--deep-navy: #0F1B2D;--navy: #1A2A42;--steel: #2A3F5F;--copper-dark: #7A3B1E;--copper: #B36437;--copper-light: #D4956A;--copper-shimmer: #E8C4A0;--copper-tint: rgba(179, 100, 55, .08);--copper-tint-strong: rgba(179, 100, 55, .18);--cream: #E8E6E0;--warmgrey: #B8B5AD;--cream-light: #F4F2ED;--status-green: #10B981;--status-yellow: #F59E0B;--status-red: #EF4444;--max-width: 1080px;--radius: 10px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--deep-navy);color:var(--cream);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.55;min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.app{max-width:var(--max-width);margin:0 auto;padding:1.75rem 1.25rem 3rem}.nav{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--steel);padding-bottom:1rem;margin-bottom:1.5rem}.nav .brand{display:flex;align-items:center;gap:.75rem}.nav .brand-logo{height:32px;width:auto}.nav h1{font-size:1.05rem;font-weight:500;letter-spacing:-.01em;color:var(--cream)}.nav .user{color:var(--warmgrey);font-size:.9rem}.nav .user a{color:var(--copper-light);text-decoration:none;margin-left:1rem}.nav .user a:hover{color:var(--copper-shimmer)}.greeting{margin-bottom:1.75rem}.greeting h2{font-size:1.6rem;font-weight:400;letter-spacing:-.015em;color:var(--cream-light);margin-bottom:.25rem}.greeting .date{color:var(--warmgrey);font-size:.95rem}.brief{background:var(--navy);border:1px solid var(--steel);border-radius:var(--radius);padding:1.25rem 1.4rem;margin-bottom:1.75rem}.brief h3{font-size:1rem;font-weight:500;color:var(--copper-light);margin-bottom:.75rem;letter-spacing:.01em}.brief .body{color:var(--cream);font-size:.95rem;line-height:1.6;margin-bottom:.85rem;white-space:pre-wrap}.brief .body.placeholder{color:var(--warmgrey)}.brief .body.error{color:var(--status-red)}.brief button{background:var(--copper);color:var(--cream-light);border:none;padding:.55rem 1.1rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s}.brief button:hover:not(:disabled){background:var(--copper-light);color:var(--abyss)}.brief button:disabled{opacity:.5;cursor:not-allowed}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.75rem}.card{background:var(--navy);border:1px solid var(--steel);border-radius:var(--radius);padding:1.1rem 1.15rem;cursor:pointer;transition:border-color .15s,background .15s;text-align:left;font-family:inherit;color:inherit}.card:hover{border-color:var(--copper);background:var(--abyss)}.card .icon{font-size:1.3rem;margin-bottom:.6rem;color:var(--copper-light)}.card h4{font-size:.95rem;font-weight:500;color:var(--cream-light);margin-bottom:.5rem;letter-spacing:-.005em}.card p{font-size:.82rem;color:var(--warmgrey);line-height:1.45}.card.disabled{opacity:.7}.query-box{background:var(--navy);border:1px solid var(--steel);border-radius:var(--radius);padding:1.25rem 1.4rem;margin-bottom:1.5rem}.query-box h3{font-size:1rem;font-weight:500;color:var(--copper-light);margin-bottom:1rem;letter-spacing:.01em}.query-box .controls{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem;align-items:center}.query-box input[type=text]{flex:1 1 320px;background:var(--abyss);border:1px solid var(--steel);color:var(--cream);padding:.6rem .85rem;border-radius:6px;font-size:.95rem;font-family:inherit}.query-box input[type=text]:focus{outline:none;border-color:var(--copper)}.query-box button.search{background:var(--copper);color:var(--cream-light);border:none;padding:.6rem 1.2rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s}.query-box button.search:hover:not(:disabled){background:var(--copper-light);color:var(--abyss)}.query-box button.search:disabled{opacity:.5;cursor:not-allowed}.query-box label.checkbox{display:inline-flex;align-items:center;gap:.4rem;color:var(--warmgrey);font-size:.85rem;cursor:pointer;user-select:none}.query-box label.checkbox input{accent-color:var(--copper);cursor:pointer}.query-result{margin-top:.5rem;min-height:1.5rem}.query-result .placeholder{color:var(--warmgrey);font-size:.9rem}.query-result .answer{background:var(--abyss);border-left:3px solid var(--copper);padding:.9rem 1.1rem;border-radius:4px;white-space:pre-wrap;color:var(--cream);font-size:.95rem;line-height:1.65}.query-result .answer h1,.query-result .answer h2,.query-result .answer h3{margin:.6rem 0 .4rem;color:var(--copper-light);font-weight:500}.query-result .answer h1{font-size:1.1rem}.query-result .answer h2{font-size:1rem}.query-result .answer h3{font-size:.95rem}.query-result .answer strong{color:var(--cream-light)}.query-result .answer ul,.query-result .answer ol{margin:.4rem 0 .4rem 1.4rem}.query-result .error{color:var(--status-red);font-size:.9rem}.sources{margin-top:.85rem;border-top:1px solid var(--steel);padding-top:.75rem}.sources summary{cursor:pointer;color:var(--copper-light);font-size:.85rem;font-weight:500;padding:.25rem 0;list-style:none}.sources summary::-webkit-details-marker{display:none}.sources summary:before{content:"▸ ";transition:transform .15s;display:inline-block}.sources[open] summary:before{content:"▾ "}.sources ol{margin:.6rem 0 0 1.3rem;font-size:.82rem;color:var(--warmgrey);line-height:1.6}.sources ol li{margin-bottom:.3rem}.sources code{background:var(--abyss);padding:.05rem .3rem;border-radius:3px;color:var(--copper-light);font-size:.78rem}.footer{text-align:center;color:var(--warmgrey);font-size:.78rem;margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--steel)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--steel);border-top-color:var(--copper);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px;margin-right:.4rem}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:880px){.card-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.app{padding:1.25rem 1rem 2rem}.card-grid{grid-template-columns:1fr}.nav{flex-wrap:wrap}.greeting h2{font-size:1.35rem}.query-box .controls{flex-direction:column;align-items:stretch}.query-box input[type=text]{flex:1 1 auto}}
