@import url("https://cellthrive-portal-api.vercel.app/tokens.css");*{margin:0;padding:0;box-sizing:border-box}:root{--ct-blue:var(--navy,hsla(214,52%,24.5%,1));--ct-blue-light:var(--navy-deep,hsla(214,40%,32%,1));--ct-blue-faint:var(--navy-tint,hsla(214,30%,94%,1));--ct-cream:var(--cream,#fef7ef);--ct-text:var(--ink,#333333);--ct-text-secondary:var(--mut,#6b7280);--ct-white:var(--paper,#ffffff);--ct-border:var(--line,#e5e0da);--ct-radius:var(--r-6,12px)}body{font-family:var(--font-body,"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);color:var(--ct-text);-webkit-font-smoothing:antialiased}.login-container,body{background:var(--ct-cream);min-height:100vh}.login-container{display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--ct-white);border:1px solid var(--ct-border);border-radius:var(--r-7,16px);padding:48px 40px;width:100%;max-width:420px;text-align:center;box-shadow:0 4px 24px rgba(0,0,0,.06)}.login-card h1{font-family:var(--font-display,"Playfair Display",Georgia,serif);font-size:var(--fs-16,28px);color:var(--ct-blue);margin-bottom:6px;letter-spacing:-.3px}.login-card h1,.login-card p{font-weight:var(--fw-regular,400)}.login-card p{font-size:var(--fs-7,14px);color:var(--ct-text-secondary);margin-bottom:28px;letter-spacing:.8px;text-transform:uppercase}.login-card input{width:100%;padding:14px 16px;border:1px solid var(--ct-border);border-radius:var(--r-4,8px);font-size:var(--fs-8,15px);font-family:var(--font-body,"Montserrat",sans-serif);margin-bottom:14px;outline:none;transition:border-color var(--dur-med,.2s);background:var(--ct-cream)}.login-card input:focus{border-color:var(--ct-blue);background:var(--ct-white)}.login-card button{width:100%;padding:14px;background:var(--ct-blue);color:var(--ct-white);border:none;border-radius:var(--r-4,8px);font-size:var(--fs-7,14px);font-family:var(--font-body,"Montserrat",sans-serif);font-weight:var(--fw-semibold,600);letter-spacing:.8px;text-transform:uppercase;cursor:pointer;transition:background var(--dur-med,.2s)}.login-card button:hover{background:var(--ct-blue-light)}.login-error{color:var(--alert,#b91c1c);font-size:var(--fs-6,13px);margin-top:10px}.chat-container{display:flex;flex-direction:column;height:100vh;max-width:840px;margin:0 auto;background:var(--ct-cream)}.chat-header{padding:18px 24px;background:var(--ct-blue);display:flex;align-items:center;justify-content:space-between;border-bottom:none;border-radius:0 0 16px 16px}.chat-header h1{font-family:var(--font-display,"Playfair Display",Georgia,serif);font-size:var(--fs-13,20px);font-weight:var(--fw-regular,400);color:var(--ct-white);letter-spacing:-.2px}.chat-header span{font-size:var(--fs-3,11px);color:rgba(255,255,255,.6);letter-spacing:.8px;text-transform:uppercase;font-weight:var(--fw-medium,500)}.chat-header button{font-size:var(--fs-4,12px);font-family:var(--font-body,"Montserrat",sans-serif);font-weight:var(--fw-medium,500);color:var(--ct-white);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:var(--r-3,6px);padding:7px 14px;cursor:pointer;letter-spacing:.3px;transition:background var(--dur-med,.2s)}.chat-header button:hover{background:rgba(255,255,255,.22)}.messages{flex:1 1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:18px;background:var(--ct-cream)}.message{max-width:82%;padding:16px 20px;border-radius:var(--ct-radius);font-size:var(--fs-8,15px);line-height:1.65;word-wrap:break-word}.message.user{align-self:flex-end;background:var(--ct-blue);color:var(--ct-white);border-bottom-right-radius:4px;white-space:pre-wrap;font-weight:var(--fw-regular,400)}.message.assistant{align-self:flex-start;background:var(--ct-white);border:1px solid var(--ct-border);border-bottom-left-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.04)}.message.assistant h1,.message.assistant h2,.message.assistant h3,.message.assistant h4{font-family:var(--font-display,"Playfair Display",Georgia,serif);font-weight:var(--fw-regular,400);color:var(--ct-blue);margin-top:16px;margin-bottom:8px;line-height:1.3}.message.assistant h1:first-child,.message.assistant h2:first-child,.message.assistant h3:first-child,.message.assistant h4:first-child{margin-top:0}.message.assistant h1{font-size:var(--fs-14,22px)}.message.assistant h2{font-size:var(--fs-12,19px)}.message.assistant h3{font-size:var(--fs-10,17px)}.message.assistant h4{font-size:var(--fs-8,15px);font-weight:var(--fw-semibold,600);font-family:var(--font-body,"Montserrat",sans-serif)}.message.assistant p{margin-bottom:10px}.message.assistant p:last-child{margin-bottom:0}.message.assistant strong{font-weight:var(--fw-semibold,600);color:var(--ct-blue)}.message.assistant em{font-style:italic}.message.assistant ol,.message.assistant ul{margin:8px 0 12px;padding-left:22px}.message.assistant li{margin-bottom:6px;line-height:1.6}.message.assistant li p{margin-bottom:4px}.message.assistant li:last-child{margin-bottom:0}.message.assistant code{background:var(--ct-blue-faint);color:var(--ct-blue);padding:2px 6px;border-radius:var(--r-2,4px);font-size:var(--fs-6,13px);font-family:var(--font-mono,"SF Mono","Fira Code",Consolas,monospace)}.message.assistant pre{background:hsla(214,52%,24.5%,.05);border:1px solid var(--ct-border);border-radius:var(--r-4,8px);padding:14px 16px;margin:10px 0;overflow-x:auto}.message.assistant pre code{background:none;padding:0;font-size:var(--fs-6,13px);color:var(--ct-text)}.message.assistant blockquote{border-left:3px solid var(--ct-blue);padding-left:14px;margin:10px 0;color:var(--ct-text-secondary);font-style:italic}.message.assistant hr{border:none;border-top:1px solid var(--ct-border);margin:14px 0}.message.assistant a{color:var(--ct-blue);text-decoration:underline;text-underline-offset:2px}.message.assistant table{width:100%;border-collapse:collapse;margin:10px 0;font-size:var(--fs-7,14px)}.message.assistant th{background:var(--ct-blue-faint);color:var(--ct-blue);font-weight:var(--fw-semibold,600);text-align:left}.message.assistant td,.message.assistant th{padding:8px 12px;border:1px solid var(--ct-border)}.welcome{text-align:center;color:var(--ct-text-secondary);font-size:var(--fs-8,15px);padding:60px 24px;line-height:1.65}.welcome h2{font-family:var(--font-display,"Playfair Display",Georgia,serif);font-size:var(--fs-15,24px);font-weight:var(--fw-regular,400);color:var(--ct-blue);margin-bottom:10px}.input-area{padding:16px 24px 20px;background:var(--ct-cream);border-top:none}.input-area form{display:flex;gap:10px;background:var(--ct-white);padding:12px;border-radius:var(--r-7,14px);border:1px solid var(--ct-border);box-shadow:0 2px 12px rgba(0,0,0,.05)}.input-area textarea{flex:1 1;padding:12px 14px;border:none;border-radius:var(--r-4,8px);font-size:var(--fs-8,15px);font-family:var(--font-body,"Montserrat",sans-serif);resize:none;outline:none;min-height:44px;max-height:120px;background:transparent}.input-area textarea::placeholder{color:var(--ct-text-secondary)}.input-area button[type=submit]{padding:12px 32px;background:var(--ct-blue);color:var(--ct-white);border:none;border-radius:var(--r-4,8px);font-size:var(--fs-6,13px);font-family:var(--font-body,"Montserrat",sans-serif);font-weight:var(--fw-semibold,600);letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:background var(--dur-med,.2s);white-space:nowrap;min-width:100px}.input-area button[type=submit]:hover{background:var(--ct-blue-light)}.input-area button[type=submit]:disabled{opacity:.4;cursor:not-allowed}.error-banner{background:var(--alert-tint,#fef2f2);color:var(--alert,#b91c1c);padding:10px 16px;font-size:var(--fs-6,13px);text-align:center;border-bottom:1px solid var(--red-soft,#fecaca)}@media (max-width:640px){.chat-container{max-width:100%}.message{max-width:92%;padding:14px 16px;font-size:var(--fs-7,14px)}.messages{padding:16px}.input-area{padding:12px 16px 16px}.login-card{padding:36px 28px}}