:root{--brand-blue:#0b4bb7;--brand-navy:#0b3d91;--brand-cyan:#05b0f4;--brand-green:#21ca83;--bg:#ffffff;--fg:#182338;--nav-bg:#f4f7fc;--border:#dfe6f2;--accent:var(--brand-blue);--accent-hover:#0a43a4}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}.brand-lockup{display:inline-flex;align-items:center;gap:10px}.brand-wordmark{font-size:13px;font-weight:800;line-height:1.25;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-blue)}.auth-main{min-height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--brand-navy),var(--brand-blue));padding:24px}.auth-card{width:100%;max-width:420px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:32px;box-shadow:0 12px 40px rgba(6,26,64,.35)}.auth-brand{margin-bottom:20px}.auth-card h2{font-size:18px;margin-bottom:10px}.auth-card p,.invites-main p{font-size:14px;line-height:1.5;margin-bottom:12px}.auth-footnote{margin-top:20px;color:#6b6b6b;font-size:13px}.form-row{display:flex;flex-direction:column;gap:6px;margin:16px 0}.form-row label{font-size:13px;font-weight:500}.form-row input,.form-row textarea{border:1px solid var(--border);border-radius:6px;padding:9px 11px;font-size:14px;font-family:inherit;background:var(--bg);color:var(--fg)}.form-row textarea{resize:vertical;line-height:1.5}.form-row input:focus,.form-row textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.button{background:var(--accent);color:#ffffff;border:none;border-radius:6px;padding:10px 16px;font-size:14px;font-family:inherit;cursor:pointer}.button:hover{background:var(--accent-hover)}.button-link{background:none;border:none;color:var(--accent);font-size:14px;font-family:inherit;cursor:pointer;padding:0;text-decoration:underline}.notice{background:var(--nav-bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:13px;margin-bottom:12px}.notice-error{background:#fdf2f2;border-color:#e5b8b8}.invites-main{max-width:640px;margin:0 auto;padding:32px 24px}.invites-main h1{font-size:22px;margin-bottom:10px}.invites-main h2{font-size:16px;margin:28px 0 10px}.invites-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;font-size:14px}.invites-header a{color:var(--accent);text-decoration:none}.invites-empty{color:#6b6b6b}.invite-list{list-style:none;border:1px solid var(--border);border-radius:6px}.invite-list li{display:flex;justify-content:space-between;padding:10px 12px;font-size:14px;border-bottom:1px solid var(--border)}.invite-list li:last-child{border-bottom:none}.invite-expiry{color:#6b6b6b;font-size:13px}.chat-shell{display:flex;height:100vh}.chat-nav{display:flex;flex-direction:column;width:260px;min-width:260px;background:var(--nav-bg);border-right:1px solid var(--border);padding:16px 12px;overflow-y:auto}.chat-new-case{width:100%;margin-bottom:16px}.chat-nav-empty{font-size:13px;color:#6b6b6b;line-height:1.5;padding:0 4px}.thread-list{list-style:none;flex:1 1;min-height:0;overflow-y:auto;margin-bottom:16px}.thread-row{position:relative}.thread-link{display:block;padding:8px 10px;border-radius:6px;text-decoration:none;color:var(--fg)}.thread-row:focus-within .thread-link,.thread-row:hover .thread-link{background:var(--border)}.thread-row:focus-within .thread-title,.thread-row:hover .thread-title{padding-right:24px}.thread-menu-btn{position:absolute;top:8px;right:6px;display:none;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:none;color:var(--fg);cursor:pointer}.thread-menu-btn[aria-expanded=true],.thread-row:focus-within .thread-menu-btn,.thread-row:hover .thread-menu-btn{display:flex}.thread-menu,.thread-menu-btn:hover{background:var(--bg)}.thread-menu{position:absolute;top:32px;right:6px;z-index:10;min-width:140px;padding:4px;border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.12)}.thread-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:5px;background:none;color:var(--fg);font-size:13px;text-align:left;cursor:pointer}.thread-menu-item:hover{background:var(--nav-bg)}.thread-menu-item-danger{color:#b3261e}.thread-menu-item:disabled{opacity:.5;cursor:default}.thread-rename-input{width:100%;padding:8px 10px;border:1px solid var(--accent);border-radius:6px;background:var(--bg);color:var(--fg);font-size:14px;font-family:inherit}.thread-title{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-date{display:block;font-size:12px;color:#6b6b6b;margin-top:2px}.chat-nav-footer{margin-top:auto;padding-top:12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px;font-size:14px}.chat-nav-user{font-size:13px;color:#6b6b6b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-nav-footer a{color:var(--accent);text-decoration:none}.chat-main{flex:1 1;min-width:0}.chat-main,.chat-pane{display:flex;flex-direction:column}.chat-pane{height:100%}.chat-messages{flex:1 1;min-height:0;overflow-y:auto;padding:24px}.chat-empty{max-width:560px;margin:15vh auto 0;text-align:center}.chat-empty h2{font-size:20px;margin-bottom:10px}.chat-empty p{font-size:14px;color:#6b6b6b;line-height:1.5;margin-bottom:16px}.msg{max-width:760px;margin:0 auto 20px}.msg-user{display:flex;flex-direction:column;align-items:flex-end}.bubble-user{background:var(--nav-bg);border:1px solid var(--border);border-radius:12px;padding:10px 14px;line-height:1.55;max-width:85%;white-space:pre-wrap;overflow-wrap:anywhere}.bubble-user,.msg-assistant{font-size:14px}.markdown-body{line-height:1.6;overflow-wrap:anywhere}.markdown-body blockquote,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-bottom:10px}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{margin:16px 0 8px;line-height:1.3}.markdown-body ol,.markdown-body ul{padding-left:22px}.markdown-body code{background:var(--nav-bg);border:1px solid var(--border);border-radius:4px;padding:1px 4px;font-size:13px}.markdown-body pre{background:var(--nav-bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;overflow-x:auto}.markdown-body pre code{background:none;border:none;padding:0}.markdown-body blockquote{border-left:3px solid var(--border);padding-left:12px;color:#555555}.markdown-body a{color:var(--accent)}.markdown-body table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}.markdown-body td,.markdown-body th{border:1px solid var(--border);padding:6px 10px;text-align:left;vertical-align:top}.markdown-body th{background:var(--nav-bg)}.msg-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;justify-content:flex-end}.msg-attachment{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.msg-thumb{max-width:180px;max-height:180px;border:1px solid var(--border);border-radius:8px;display:block}.file-chip{display:inline-block;background:var(--nav-bg);border:1px solid var(--border);border-radius:999px;padding:5px 12px;font-size:13px;color:var(--fg);text-decoration:none;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-chip:hover{border-color:var(--accent)}.extraction-notice{font-size:12px;color:#8a5a00;background:#fdf6e7;border:1px solid #ecd9ad;border-radius:6px;padding:6px 9px;max-width:320px}.msg-error{background:#fdf2f2;border:1px solid #e5b8b8;border-radius:8px;padding:12px 14px}.msg-error p{margin-bottom:10px}.streaming-indicator{display:inline-flex;gap:4px;padding:8px 0}.streaming-indicator span{width:7px;height:7px;border-radius:50%;background:var(--brand-green);opacity:.35;animation:streaming-pulse 1.2s ease-in-out infinite}.streaming-indicator span:nth-child(2){background:var(--brand-cyan);animation-delay:.2s}.streaming-indicator span:nth-child(3){background:var(--brand-blue);animation-delay:.4s}@keyframes streaming-pulse{0%,to{opacity:.35}50%{opacity:1}}.composer{border-top:1px solid var(--border);padding:14px 24px 18px;max-width:808px;width:100%;margin:0 auto}.composer-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.composer-chip{display:inline-flex;align-items:center;gap:6px;background:var(--nav-bg);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:13px;max-width:100%}.composer-chip-rejected{background:#fdf2f2;border-color:#e5b8b8}.composer-chip-name{max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.composer-chip-status{color:#6b6b6b;font-size:12px}.composer-chip-rejected .composer-chip-status{color:#a33a3a}.composer-chip-remove{background:none;border:none;cursor:pointer;font-size:15px;line-height:1;color:#6b6b6b;padding:0 2px}.composer-chip-remove:hover{color:var(--fg)}.composer-input{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;resize:vertical;background:var(--bg);color:var(--fg)}.composer-diagnosis:focus,.composer-input:focus{outline:2px solid var(--accent);outline-offset:1px}.composer-diagnosis{width:100%;margin-top:8px;border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:13px;font-family:inherit;background:var(--bg);color:var(--fg)}.composer-actions{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.composer-actions .button:disabled{opacity:.5;cursor:not-allowed}.composer-actions label.button-link{text-decoration:none;border:1px dashed var(--border);border-radius:6px;padding:7px 12px}.composer-actions label.button-link:hover{border-color:var(--accent)}