:root{--bg: #f7f5f0;--card: #ffffff;--card-2: #fbfaf7;--text: #1d1c19;--muted: #6b6860;--muted-2: #8a857a;--border: #e7e2d8;--border-2: #f0ece3;--primary: #1f3a56;--primary-700: #16293d;--primary-soft: #eaeff4;--amber: #9a6a1e;--amber-soft: #f6eedd;--green: #3a6f4e;--green-soft: #e7f0e9;--ok: #3a6f4e;--ko: #b23b3b;--warn: #9a6a1e;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--r: 14px;--shadow: 0 1px 2px rgba(29,28,25,.04), 0 10px 28px -18px rgba(29,28,25,.3)}*{box-sizing:border-box;margin:0}body{font-family:var(--sans);background:var(--bg);color:var(--text);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:6px}.app{display:flex;flex-direction:column;height:100vh;max-width:1120px;margin:0 auto}header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:14px;padding:13px clamp(16px,4vw,32px);background:#f7f5f0d1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:baseline;gap:9px}.brand .logo{font-size:18px;color:var(--primary);position:relative;top:1px}.brand strong{font-family:var(--serif);font-size:21px;font-weight:600;letter-spacing:-.01em;color:var(--primary)}.dot{width:7px;height:7px;border-radius:50%;margin-left:8px;align-self:center}.dot-ok{background:var(--ok)}.dot-ko{background:var(--ko)}.dot-wait{background:var(--warn);animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.35}}.brand .muted{font-size:12px}.header-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.account-email{font-size:13px;color:var(--muted-2);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quota-badge{font-family:var(--mono);font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-variant-numeric:tabular-nums}.quota-badge.quota-out{background:#f7e6e6;color:var(--ko)}button.ghost{padding:8px 13px;border:1px solid var(--border);border-radius:10px;background:var(--card);font:inherit;font-size:13px;color:var(--muted);cursor:pointer;transition:.15s}button.ghost:hover{border-color:var(--muted-2);color:var(--text)}button.send{padding:10px 18px;border:none;border-radius:11px;background:var(--primary);color:#fff;font:inherit;font-weight:600;cursor:pointer;transition:.15s}button.send:hover{background:var(--primary-700)}button.send:disabled{opacity:.4;cursor:not-allowed}.filter-toggle{width:40px;padding:0;height:40px;font-size:15px}.filter-toggle.active{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}main{flex:1;overflow-y:auto;padding:8px clamp(12px,4vw,24px)}.thread,.welcome{max-width:760px;margin:0 auto;padding:26px 4px}.welcome{text-align:center;padding-top:10vh}.welcome h1{font-family:var(--serif);font-size:clamp(1.7rem,4vw,2.3rem);font-weight:600;letter-spacing:-.015em;margin-bottom:10px}.welcome>.muted{max-width:52ch;margin:0 auto}.corpus-scope{font-size:13px;color:var(--muted);margin:14px auto 0;max-width:52ch;font-variant-numeric:tabular-nums}.corpus-scope b{color:var(--text);font-weight:600}.presets{display:grid;gap:9px;margin-top:30px;text-align:left}.presets button{padding:13px 16px;border:1px solid var(--border);border-radius:12px;background:var(--card);cursor:pointer;font:inherit;color:var(--text);transition:.15s;box-shadow:var(--shadow)}.presets button:hover{border-color:var(--primary);background:var(--primary-soft);transform:translateY(-1px)}.thread{display:flex;flex-direction:column;gap:24px}.bubble{border-radius:16px}.bubble.user{align-self:flex-end;max-width:84%;background:var(--primary);color:#fff;padding:12px 18px;border-radius:16px 16px 4px;box-shadow:var(--shadow)}.bubble.user p{margin:0}.bubble.assistant{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:14px 20px 16px;box-shadow:var(--shadow)}.bubble-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.bubble-tag{font-family:var(--serif);font-size:15px;color:var(--primary);font-weight:600;display:flex;gap:8px;align-items:center}.typing{color:var(--muted);font-style:italic}.warn{color:var(--ko)}.answer{max-width:68ch}.answer h2{font-family:var(--serif);font-size:1.28rem;line-height:1.25;letter-spacing:-.01em;margin:4px 0 8px}.answer h3{font-family:var(--serif);font-size:1.06rem;color:var(--primary);margin:18px 0 6px}.answer p{margin:0 0 12px}.answer ul,.answer ol{margin:0 0 12px;padding-left:22px}.answer li{margin:3px 0}.answer strong{font-weight:640}.answer sup.refnum{font-family:var(--mono);font-size:.68em;font-weight:700;color:var(--primary);background:var(--primary-soft);border-radius:4px;padding:1px 4px;margin:0 1px;vertical-align:super}.feedback{margin-top:12px;padding:11px 14px;border:1px solid #ecdcbf;background:var(--amber-soft);border-radius:11px;font-size:13px}.feedback p{margin:0 0 4px}.suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.suggestions button{font-size:12px;padding:5px 11px;border-radius:999px;border:1px solid #ecdcbf;background:var(--card);cursor:pointer;font:inherit;color:var(--text)}.suggestions button:hover{border-color:var(--amber)}.copy-btn{font-size:11px;border:none;background:none;color:var(--muted-2);cursor:pointer}.copy-btn:hover{color:var(--text)}.sources{margin:14px -20px -16px;padding:16px 20px 18px;background:var(--card-2);border-top:1px solid var(--border-2);border-radius:0 0 var(--r) var(--r)}.sources-title{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);margin-bottom:12px}.citation{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:10px;padding:10px 14px;margin-bottom:9px}.citation:last-child{margin-bottom:0}.cite-law{border-left-color:var(--amber)}.cite-projet{border-left-color:var(--green)}.citation-head{display:flex;align-items:center;gap:9px;cursor:pointer;flex-wrap:wrap}.ref{font-family:var(--mono);font-weight:700;font-size:11px;color:var(--muted-2)}.badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:999px}.badge-juris{background:var(--primary-soft);color:var(--primary)}.badge-law{background:var(--amber-soft);color:var(--amber)}.badge-projet{background:var(--green-soft);color:var(--green)}.badge-partial{background:var(--amber-soft);color:var(--amber);text-transform:none;letter-spacing:0}.citation-title{font-size:13.5px;font-weight:600}.year{font-family:var(--mono);font-size:12px;color:var(--muted-2)}.excerpt{font-size:12.5px;color:var(--muted);font-style:italic;margin:7px 0 0;line-height:1.5}.citation-actions{display:flex;gap:16px;margin-top:8px;font-size:12px}.citation-actions a{color:var(--primary);text-decoration:none;font-weight:500}.citation-actions a:hover{text-decoration:underline}footer{position:sticky;bottom:0;padding:6px clamp(12px,4vw,24px) 14px;background:linear-gradient(transparent,var(--bg) 26%)}footer>*{max-width:760px;margin-left:auto;margin-right:auto}.filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:12px 14px;margin-bottom:10px;border:1px solid var(--border);border-radius:12px;background:var(--card);box-shadow:var(--shadow)}.filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.filters input,.filters select{padding:7px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;background:var(--card);color:var(--text)}.filters input{width:120px}.pedago-toggle{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text);margin-bottom:8px;cursor:pointer}.pedago-toggle input{accent-color:var(--primary);width:16px;height:16px}.input-row{display:flex;gap:8px;align-items:flex-end;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:8px 8px 8px 16px;box-shadow:var(--shadow)}.input-row:focus-within{border-color:var(--primary)}.input-row textarea{flex:1;resize:none;border:0;background:transparent;font:inherit;font-size:15px;padding:9px 0;max-height:180px;color:var(--text);outline:none}.hint{font-size:11px;text-align:center;margin-top:9px;color:var(--muted-2)}.muted{color:var(--muted)}.version{font-family:var(--mono);margin-left:8px;opacity:.6;font-variant-numeric:tabular-nums}.attribution{font-size:10.5px;line-height:1.4;text-align:center;margin-top:4px;opacity:.7}.attribution a{color:inherit}.modal-overlay,.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1d1c196b;z-index:50}.modal-overlay{display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--r);width:100%;max-width:400px;padding:24px;box-shadow:0 30px 70px -24px #1d1c1980}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-head h2{font-family:var(--serif);margin:0;font-size:1.3rem}.close{font-size:1rem;line-height:1}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.auth-form input{padding:10px 12px;border:1px solid var(--border);border-radius:9px;font-size:14px;background:var(--card);color:var(--text)}.auth-form input:focus{outline:none;border-color:var(--primary)}.auth-form .send{margin-top:4px}.switch{text-align:center;margin-top:14px;font-size:13px}.linklike{background:none;border:none;color:var(--primary);cursor:pointer;font:inherit;padding:0;text-decoration:underline}.drawer-overlay{display:flex;justify-content:flex-end}.drawer{background:var(--card);border-left:1px solid var(--border);width:min(390px,92vw);height:100%;padding:22px;overflow-y:auto}.drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.drawer-head h2{font-family:var(--serif);margin:0;font-size:1.2rem}.hist-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.hist-item{width:100%;text-align:left;background:var(--card-2);border:1px solid var(--border);border-radius:9px;padding:11px 13px;cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:.15s}.hist-item:hover{border-color:var(--primary);background:var(--primary-soft)}.hist-q{font-size:13.5px;color:var(--text)}.hist-meta{font-size:11px;color:var(--muted-2);font-variant-numeric:tabular-nums}@media (max-width: 640px){.brand .muted,.dot,.account-email{display:none}.bubble.assistant{padding:12px 15px 14px}.sources{margin:12px -15px -14px;padding:14px 15px}.answer,.bubble.user{font-size:14.5px}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.menu-btn{width:38px;height:38px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);font-size:16px;cursor:pointer;flex:none}.menu-btn:hover{border-color:var(--muted-2)}.brand-btn{display:flex;align-items:baseline;gap:9px;background:none;border:none;cursor:pointer;padding:0;font:inherit}.brand-btn:hover strong{color:var(--primary-700)}.status-txt{font-size:12px}.citation-meta{font-family:var(--mono);font-size:11.5px;color:var(--muted-2);margin-top:5px;font-variant-numeric:tabular-nums}.drawer-overlay.left{justify-content:flex-start}.nav-drawer{border-left:none;border-right:1px solid var(--border)}.nav-drawer .brand{display:flex;align-items:baseline;gap:9px}.nav-drawer .brand strong{font-family:var(--serif);font-size:20px;color:var(--primary)}.nav-drawer .brand .logo{color:var(--primary)}.nav-list{display:flex;flex-direction:column;gap:3px}.nav-item{width:100%;text-align:left;background:none;border:none;padding:11px 12px;border-radius:9px;font:inherit;font-size:14px;color:var(--text);cursor:pointer}.nav-item:hover{background:var(--primary-soft)}.nav-item .muted{font-size:12px}.nav-account{margin-top:18px;padding-top:16px;border-top:1px solid var(--border-2)}.nav-label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);margin-bottom:8px}.nav-account .account-email{max-width:none;font-size:14px;color:var(--text);margin-bottom:6px}.plan-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px}.plan-badge{font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px}.plan-student{background:var(--primary-soft);color:var(--primary)}.plan-pro{background:var(--green-soft);color:var(--green)}@media (max-width: 640px){.status-txt{display:none}}
