.app{min-height:100vh;display:flex;flex-direction:column}.app-layout{display:flex;flex-direction:row;height:100vh;overflow:hidden}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;border:none;z-index:40;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s ease}.sidebar-backdrop-visible{opacity:1;pointer-events:auto}.sidebar{width:280px;flex-shrink:0;display:flex;flex-direction:column;background:var(--surface);border-inline-end:1px solid var(--border);height:100vh;z-index:50}.sidebar-header{display:flex;align-items:center;gap:.5rem;padding:.85rem;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-new-chat{flex:1;padding:.65rem .85rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);cursor:pointer;font-size:.9rem;font-weight:500;transition:border-color .15s,background .15s}.sidebar-new-chat:hover{border-color:var(--accent);background:#3d8bfd14}.sidebar-close{display:none;width:2rem;height:2rem;border:none;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;font-size:1.25rem;line-height:1}.sidebar-list{flex:1;overflow-y:auto;padding:.5rem}.sidebar-empty{margin:1rem .5rem;color:var(--muted);font-size:.85rem;text-align:center}.sidebar-item{display:flex;align-items:stretch;border-radius:10px;margin-bottom:.25rem;transition:background .15s}.sidebar-item:hover{background:var(--surface-2)}.sidebar-item-active{background:#3d8bfd1f}.sidebar-item-active:hover{background:#3d8bfd29}.sidebar-item-btn{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.65rem .75rem;border:none;background:transparent;color:var(--text);cursor:pointer;text-align:start;min-width:0}.sidebar-item-title{font-size:.88rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.sidebar-item-date{font-size:.75rem;color:var(--muted)}.sidebar-item-delete{flex-shrink:0;align-self:center;margin-inline-end:.35rem;padding:.35rem .5rem;border:none;border-radius:6px;background:transparent;cursor:pointer;font-size:.85rem;opacity:.35;transition:opacity .15s,background .15s}.sidebar-item:hover .sidebar-item-delete,.sidebar-item-active .sidebar-item-delete{opacity:.75}.sidebar-item-delete:hover{opacity:1;background:#f8717126}.sidebar-toggle{display:none;width:2.25rem;height:2.25rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);cursor:pointer;font-size:1rem;flex-shrink:0}.chat-header-start{display:flex;align-items:center;gap:.65rem;min-width:0}.chat-shell{display:flex;flex-direction:column;height:100vh;background:var(--bg);width:100%}.chat-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}.chat-header-brand{display:flex;align-items:center;gap:.75rem}.chat-header-brand h1{margin:0;font-size:1.15rem;font-weight:600}.chat-header-brand p{margin:.2rem 0 0;font-size:.82rem;color:var(--muted)}.brand-mark{width:2.75rem;height:2.75rem;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#6366f1);color:#fff;border-radius:12px;font-size:1.35rem;font-weight:600;flex-shrink:0}.chat-header-meta{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}.meta-pill{font-size:.75rem;padding:.25rem .65rem;border-radius:999px;background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.meta-ready{color:var(--success);border-color:#34d39959;background:#34d3991a}.meta-error{color:var(--danger);border-color:#f8717159;background:#f871711a}.meta-loading{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted)}.messages{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:1.25rem;max-width:900px;width:100%;margin-inline:auto;position:relative}.messages-loading{min-height:120px}.conversation-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;margin:auto;padding:2rem;color:var(--muted);font-size:.9rem}.sidebar-loading{display:flex;justify-content:center;padding:1.5rem .5rem}.welcome{margin:auto;text-align:center;max-width:520px;padding:2rem 1rem}.welcome-lead{margin:0 0 .35rem;font-size:1.05rem}.welcome-note{margin:0 0 1.25rem;color:var(--muted);font-size:.9rem}.suggestions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.suggestion-chip{padding:.55rem .9rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);cursor:pointer;font-size:.88rem;transition:border-color .2s,background .2s,transform .15s}.suggestion-chip:hover:not(:disabled){border-color:var(--accent);background:#3d8bfd14;transform:translateY(-1px)}.suggestion-chip:active:not(:disabled){transform:translateY(0)}.suggestion-chip:disabled{opacity:.45;cursor:not-allowed}.message{display:flex;flex-direction:column;gap:.4rem;max-width:92%}.message-user{align-self:flex-start}.message-assistant{align-self:stretch;max-width:100%}.citation-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.15rem}.citation-label{font-size:.78rem;color:var(--muted);margin-inline-end:.25rem}.page-chip{display:inline-block;padding:.2rem .55rem;background:#3d8bfd26;color:var(--accent);border:1px solid rgba(61,139,253,.35);border-radius:6px;font-size:.78rem;font-weight:500}.page-chip-link,.page-tag-link{text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s}.page-chip-link:hover,.page-tag-link:hover{background:#3d8bfd47;border-color:var(--accent);text-decoration:underline}.bubble{padding:.85rem 1.1rem;border-radius:14px;white-space:pre-wrap;line-height:1.65;font-size:.95rem}.message-user .bubble{background:var(--accent);color:#fff;border-end-end-radius:4px}.message-assistant .bubble{background:var(--surface);border:1px solid var(--border);border-end-start-radius:4px}.bubble-typing{color:var(--muted);min-height:1.5rem;display:flex;align-items:center}.sources-panel{font-size:.82rem;color:var(--muted);margin-top:.15rem}.sources-panel summary{cursor:pointer;color:var(--accent);-webkit-user-select:none;user-select:none;padding:.25rem 0}.sources-panel ul{margin:.5rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.sources-panel li{padding:.6rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;line-height:1.5}.page-tag{display:inline-block;margin-inline-end:.4rem;padding:.1rem .4rem;background:var(--surface-2);border-radius:4px;font-size:.72rem;font-weight:600;color:var(--accent)}.page-tag-link{border:1px solid transparent}.chat-form{display:flex;gap:.5rem;padding:.85rem 1.25rem 1.1rem;border-top:1px solid var(--border);background:var(--surface);flex-shrink:0}.chat-form input{flex:1;padding:.75rem 1rem;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:var(--text);font-size:.95rem}.chat-form input:focus{outline:none;border-color:var(--accent)}.chat-form button{padding:.75rem 1.35rem;border:none;border-radius:12px;background:var(--accent);color:#fff;cursor:pointer;font-weight:500;white-space:nowrap;transition:background .2s,opacity .2s,transform .1s}.submit-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-width:5.5rem}.submit-btn:not(:disabled):active{transform:scale(.98)}.submit-btn .spinner{border-color:#ffffff59;border-top-color:#fff}.chat-form button:disabled{opacity:.45;cursor:not-allowed}.error-banner{padding:.65rem 1.25rem;margin-bottom:.25rem;background:#f8717114;border-top:1px solid rgba(248,113,113,.2);border-bottom:1px solid rgba(248,113,113,.2)}.spinner{display:inline-block;border:2px solid rgba(61,139,253,.25);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.spinner-sm{width:.85rem;height:.85rem}.spinner-md{width:1.35rem;height:1.35rem}.loading-dots{display:inline-flex;align-items:center;gap:.5rem}.loading-dots-label{font-size:.9rem}.loading-dots-track{display:inline-flex;align-items:center;gap:.25rem}.loading-dots-track span{width:.4rem;height:.4rem;border-radius:50%;background:var(--accent);opacity:.35;animation:pulse-dot 1.2s ease-in-out infinite}.loading-dots-track span:nth-child(2){animation-delay:.15s}.loading-dots-track span:nth-child(3){animation-delay:.3s}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-dot{0%,80%,to{opacity:.35;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}@keyframes animate-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:animate-in .3s ease-out both}@media(prefers-reduced-motion:reduce){.animate-in,.spinner,.loading-dots-track span,.sidebar,.sidebar-backdrop{animation:none!important;transition:none!important}}.error{color:var(--danger);font-size:.88rem;margin:0;padding:0 1.25rem}.book-error code{font-size:.78rem;background:var(--surface-2);padding:.15rem .35rem;border-radius:4px}.muted{color:var(--muted)}@media(max-width:768px){.sidebar-backdrop{display:block}.sidebar{position:fixed;top:0;inset-inline-start:0;width:min(280px,88vw);transform:translate(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 24px #00000059}.sidebar-open{transform:translate(0)}.sidebar-close{display:block}.sidebar-toggle{display:grid;place-items:center}.chat-main{width:100%}}@media(max-width:600px){.chat-header{flex-direction:column}.chat-header-meta{justify-content:flex-start}.message{max-width:98%}}.auth-gate{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(ellipse at 20% 0%,rgba(61,139,253,.18),transparent 50%),radial-gradient(ellipse at 80% 100%,rgba(37,99,199,.12),transparent 45%),var(--bg)}.auth-loading{color:var(--muted);margin:0}.auth-card{width:min(100%,380px);display:flex;flex-direction:column;gap:.75rem;padding:1.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.auth-card h1{margin:0;font-size:1.75rem;font-weight:600}.auth-card p{margin:0 0 .5rem;color:var(--muted)}.auth-card label{font-size:.9rem;color:var(--muted)}.auth-card input{width:100%;padding:.7rem .85rem;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.auth-card button{margin-top:.5rem;padding:.75rem 1rem;border:none;border-radius:8px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}.auth-card button:disabled{opacity:.5;cursor:not-allowed}.auth-card button:not(:disabled):hover{background:var(--accent-dim)}.auth-error{color:var(--danger)!important;margin:0!important;font-size:.9rem}.book-indexing{color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;margin:0 1rem .75rem}:root{--bg: #0f1419;--surface: #1a2332;--surface-2: #243044;--border: #2d3a4f;--text: #e8edf4;--muted: #8b9cb3;--accent: #3d8bfd;--accent-dim: #2563c7;--success: #34d399;--warning: #fbbf24;--danger: #f87171;--radius: 12px;--font: "IBM Plex Sans", "IBM Plex Sans Arabic", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh;direction:rtl}#root{min-height:100vh}button,input,select{font:inherit}
