:root{--colour-ink: #111111;--colour-ink-soft: #444444;--colour-muted: #767676;--colour-line: #e3e3e3;--colour-surface: #ffffff;--colour-surface-alt: #f6f6f4;--colour-accent: #111111;--font-sans: "Inter", "Helvetica Neue", Arial, system-ui, sans-serif;--font-serif: "Georgia", "Times New Roman", serif;--max-col: 760px;--radius: 4px;--space: 16px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);color:var(--colour-ink);background:var(--colour-surface);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100vh}.header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:14px;padding:18px 24px;background:var(--colour-surface);border-bottom:1px solid var(--colour-line)}.header .logo{height:26px;width:auto;display:block}.header .title{font-size:14px;color:var(--colour-muted);text-transform:uppercase;letter-spacing:.12em}.header .about-btn{margin-left:auto;font-family:inherit;font-size:13px;font-weight:600;letter-spacing:.04em;background:none;border:1px solid var(--colour-line);border-radius:var(--radius);padding:6px 14px;cursor:pointer;color:var(--colour-ink)}.header .about-btn:hover{border-color:var(--colour-ink)}.header .user-email{font-size:13px;color:var(--colour-muted)}.header .signout-btn{font-family:inherit;font-size:13px;font-weight:600;background:none;border:none;text-decoration:underline;cursor:pointer;color:var(--colour-ink);padding:6px 4px}.gate{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;padding:24px}.gate-logo{height:40px;margin-bottom:8px}.gate h1{font-family:var(--font-serif);font-size:32px;margin:0}.gate-lead{max-width:420px;color:var(--colour-ink-soft);line-height:1.6;margin:0 0 8px}.gate-error{color:#7a1f1f}.primary-btn{font-family:inherit;font-size:15px;font-weight:600;padding:12px 28px;background:var(--colour-ink);color:#fff;border:1px solid var(--colour-ink);border-radius:var(--radius);cursor:pointer}.about-panel{background:var(--colour-surface-alt);border-bottom:1px solid var(--colour-line);max-height:62vh;overflow-y:auto}.about-inner{max-width:var(--max-col);margin:0 auto;padding:24px}.about-inner h3{margin:0 0 8px;font-family:var(--font-serif);font-size:22px}.about-inner h4{margin:20px 0 6px;font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--colour-muted)}.about-inner p{margin:0 0 10px;line-height:1.6;color:var(--colour-ink-soft)}.about-inner ul{margin:0 0 10px;padding-left:20px;line-height:1.6;color:var(--colour-ink-soft)}.about-inner li{margin-bottom:5px}.about-lead{margin:0 0 6px;color:var(--colour-ink-soft);line-height:1.6;font-size:16px}.methodology{margin-top:20px;text-align:left}.method-steps{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:12px}.method-step{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.55;color:var(--colour-ink-soft)}.method-step .n{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:1px solid var(--colour-ink);color:var(--colour-ink);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}.method-step strong{color:var(--colour-ink)}.layers{display:flex;flex-wrap:wrap;gap:6px}.layer-chip{font-size:12px;color:var(--colour-ink-soft);border:1px solid var(--colour-line);border-radius:999px;padding:3px 10px;white-space:nowrap}.citations-note{font-size:13px;color:var(--colour-muted);margin:0 0 12px}.prose .cite-link{color:var(--colour-ink);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;cursor:pointer}.prose .cite-link:hover{background:var(--colour-surface-alt)}.cite-num{flex:0 0 auto;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--colour-ink);color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.cite-flash{animation:citeflash 1.2s ease-out}@keyframes citeflash{0%{box-shadow:0 0 0 3px #11111159}to{box-shadow:0 0 #1110}}.body{flex:1;display:flex;min-height:0}.sidebar{width:264px;flex:0 0 264px;border-right:1px solid var(--colour-line);background:var(--colour-surface-alt);display:flex;flex-direction:column;overflow:hidden;padding:14px 12px}.sidebar .new-chat{font-family:inherit;font-size:14px;font-weight:600;padding:10px 12px;background:var(--colour-ink);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;width:100%}.sidebar-heading{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--colour-muted);margin:18px 6px 8px}.session-list{flex:1;overflow-y:auto}.sidebar-empty{color:var(--colour-muted);font-size:13px;padding:4px 6px}.session-item{display:flex;align-items:center;gap:6px;padding:8px;border-radius:var(--radius);cursor:pointer}.session-item:hover{background:#ececea}.session-item.active{background:#e4e4e1}.session-title{flex:1;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-when{font-size:11px;color:var(--colour-muted)}.session-del{border:none;background:none;color:var(--colour-muted);cursor:pointer;font-size:12px;opacity:0;padding:2px 4px}.session-item:hover .session-del{opacity:1}.main{flex:1;min-width:0;display:flex;flex-direction:column}.conversation{flex:1;overflow-y:auto}.conversation-inner{max-width:var(--max-col);margin:0 auto;padding:32px 24px 40px}.empty{color:var(--colour-muted);text-align:center;margin-top:18vh}.empty h1{font-family:var(--font-serif);font-weight:700;font-size:30px;color:var(--colour-ink);margin-bottom:8px}.msg{margin-bottom:28px}.msg .role{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--colour-muted);margin-bottom:8px}.msg.user .bubble{background:var(--colour-surface-alt);border:1px solid var(--colour-line);border-radius:var(--radius);padding:12px 16px}.msg .prose{line-height:1.65;font-size:16px}.msg .prose h1,.msg .prose h2,.msg .prose h3{font-family:var(--font-serif);line-height:1.3}.msg .prose p{margin:0 0 12px}.msg .prose code{background:var(--colour-surface-alt);padding:1px 5px;border-radius:3px;font-size:.92em}.cursor{display:inline-block;width:7px;height:1.05em;background:var(--colour-ink);margin-left:1px;vertical-align:text-bottom;animation:blink 1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}.citations{margin-top:16px;border-top:1px solid var(--colour-line);padding-top:12px}.citations h4{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--colour-muted);margin:0 0 10px}.citation{border:1px solid var(--colour-line);border-radius:var(--radius);margin-bottom:10px;background:var(--colour-surface);overflow:hidden}.citation.open{border-color:var(--colour-ink)}.citation-head{display:flex;gap:10px;align-items:baseline;width:100%;text-align:left;background:none;border:none;font:inherit;cursor:pointer;padding:12px 14px}.citation-head:hover{background:var(--colour-surface-alt)}.citation-head .chevron{color:var(--colour-muted);font-size:12px;line-height:1.5}.citation-head .display{font-weight:600}.citation-body{padding:12px 14px 14px 36px;border-top:1px solid var(--colour-line)}.citation-body .arabic{font-size:15px;margin-bottom:8px}.citation-body .meta{font-size:13px;color:var(--colour-ink-soft);line-height:1.7}.citation-body .meta span{color:var(--colour-muted)}.citation-actions{margin-top:12px;display:flex;gap:18px;flex-wrap:wrap}.citation-actions a{color:var(--colour-accent);font-weight:600;font-size:14px}.citation-actions .url-pending{font-size:13px;color:var(--colour-muted);font-style:italic}.composer{flex:0 0 auto;border-top:1px solid var(--colour-line);background:var(--colour-surface);padding:16px 24px 18px}.composer-inner{max-width:var(--max-col);margin:0 auto;display:flex;gap:10px;align-items:flex-end}.composer textarea{flex:1;resize:none;font-family:inherit;font-size:16px;line-height:1.5;padding:12px 14px;border:1px solid var(--colour-ink);border-radius:var(--radius);background:var(--colour-surface);max-height:200px}.composer textarea:focus{outline:2px solid var(--colour-ink);outline-offset:1px}.composer button{font-family:inherit;font-size:15px;font-weight:600;padding:12px 22px;background:var(--colour-ink);color:#fff;border:1px solid var(--colour-ink);border-radius:var(--radius);cursor:pointer}.composer button:disabled{opacity:.45;cursor:not-allowed}.disclaimer{max-width:var(--max-col);margin:8px auto 0;font-size:12px;color:var(--colour-muted);text-align:center}.error-banner{background:#fdf0f0;border:1px solid #e4b6b6;color:#7a1f1f;padding:10px 14px;border-radius:var(--radius);margin-bottom:16px;font-size:14px}[dir=rtl]{unicode-bidi:isolate}.header .nav-btn{font-family:inherit;font-size:13px;font-weight:600;letter-spacing:.04em;background:none;border:1px solid var(--colour-line);border-radius:var(--radius);padding:6px 14px;cursor:pointer;color:var(--colour-ink)}.header .nav-btn:hover{border-color:var(--colour-ink)}.library{flex:1;overflow-y:auto}.library-inner{max-width:860px;margin:0 auto;padding:32px 24px 64px}.library-inner h1{font-family:var(--font-serif);font-size:30px;margin:0 0 6px}.library-lead{color:var(--colour-ink-soft);margin:0 0 18px;line-height:1.6}.library-search{width:100%;font-family:inherit;font-size:16px;padding:12px 14px;border:1px solid var(--colour-ink);border-radius:var(--radius);margin-bottom:10px}.library-status{font-size:13px;color:var(--colour-muted);margin:0 0 16px}.lib-group{border-top:1px solid var(--colour-line)}.lib-group-head{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;font:inherit;cursor:pointer;padding:12px 4px}.lib-group-head:hover{background:var(--colour-surface-alt)}.lib-group-head .chevron{color:var(--colour-muted);font-size:12px}.lib-group-label{flex:1;font-weight:700}.lib-group-count{color:var(--colour-muted);font-size:13px}.lib-items{padding:0 4px 10px}.lib-item{display:flex;align-items:center;gap:12px;padding:8px;border-top:1px solid var(--colour-surface-alt)}.lib-item:hover{background:var(--colour-surface-alt)}.lib-id{flex:0 0 86px;font-size:12px;font-weight:600;color:var(--colour-muted)}.lib-title{flex:1;font-size:14.5px;line-height:1.45}.lib-open{flex:0 0 auto;font-family:inherit;font-size:13px;font-weight:600;padding:6px 16px;background:var(--colour-ink);color:#fff;border:none;border-radius:var(--radius);cursor:pointer}.lib-open:disabled{opacity:.5;cursor:default}
