:root {
  --ink:#1f2527;
  --muted:#6f7778;
  --cream:#fffaf7;
  --pink:#f1aeba;
  --blush:#f1cfd5;
  --teal:#4c818d;
  --soft-teal:#729da7;
  --gold:#fcca4c;
  --line:#eadfe0;
  --white:#fff;
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:linear-gradient(135deg,#fff9f7 0%,#f7eeee 55%,#eef5f5 100%);color:var(--ink);font-family:"DM Sans",sans-serif}
.shell{width:min(1180px,calc(100% - 32px));min-height:calc(100vh - 48px);margin:24px auto;display:grid;grid-template-columns:360px 1fr;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.9);border-radius:28px;overflow:hidden;box-shadow:0 24px 70px rgba(62,45,49,.12)}
.brand-panel{padding:44px 38px;background:linear-gradient(160deg,#4c818d,#315f69);color:white;display:flex;flex-direction:column;gap:26px}
.brand-mark{width:56px;height:56px;border-radius:18px;background:var(--pink);display:grid;place-items:center;color:#283f44;font-family:"Playfair Display",serif;font-weight:700;letter-spacing:.04em}
.eyebrow{font-size:.72rem;letter-spacing:.2em;font-weight:700;opacity:.8;margin:0 0 12px}
h1{font-family:"Playfair Display",serif;font-size:3.3rem;line-height:1;margin:0 0 16px}.subhead{font-size:1.15rem;line-height:1.55;margin:0;color:#f4eeee}.promise{margin-top:auto;border-top:1px solid rgba(255,255,255,.2);padding-top:24px;display:flex;gap:12px;line-height:1.55}.promise span{color:var(--gold)}.promise p{margin:0}.fine-print{font-size:.76rem;line-height:1.5;opacity:.7;margin:0}
.chat-card{min-height:720px;display:flex;flex-direction:column;background:rgba(255,255,255,.92)}.chat-header{height:86px;padding:0 28px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:13px}.avatar,.mini-avatar{display:grid;place-items:center;border-radius:50%;font-family:"Playfair Display",serif;font-weight:700;background:var(--blush);color:#603f47}.avatar{width:46px;height:46px;font-size:1.25rem}.chat-header h2{margin:0;font-family:"Playfair Display",serif;font-size:1.35rem}.chat-header p{margin:4px 0 0;color:var(--muted);font-size:.82rem}.dot{display:inline-block;width:7px;height:7px;background:#66a477;border-radius:50%;margin-right:5px}.ghost{margin-left:auto;border:1px solid var(--line);background:white;border-radius:999px;padding:9px 14px;cursor:pointer;color:var(--ink)}
.messages{flex:1;padding:30px;overflow-y:auto;max-height:calc(100vh - 245px)}.message{display:flex;gap:10px;margin-bottom:22px;align-items:flex-start}.message.user{justify-content:flex-end}.mini-avatar{width:30px;height:30px;flex:0 0 30px;font-size:.8rem}.bubble{max-width:min(680px,85%);padding:15px 18px;border-radius:18px;line-height:1.62;background:#f7f1f2}.user .bubble{background:#4c818d;color:white;border-bottom-right-radius:5px}.ivy .bubble{border-bottom-left-radius:5px}.bubble p{margin:.15em 0 .75em}.bubble p:last-child{margin-bottom:.15em}.bubble strong{font-weight:700}.typing{color:var(--muted);font-style:italic}
.composer{margin:0 26px;display:flex;align-items:flex-end;border:1px solid #dfd2d4;border-radius:18px;background:white;padding:8px 8px 8px 16px;box-shadow:0 8px 24px rgba(80,55,61,.07)}textarea{border:0;outline:0;resize:none;flex:1;font:inherit;line-height:1.45;max-height:140px;padding:9px 6px;background:transparent;color:var(--ink)}.composer button{border:0;width:42px;height:42px;border-radius:13px;background:var(--pink);color:#51373e;font-size:1.4rem;font-weight:700;cursor:pointer}.composer button:disabled{opacity:.5;cursor:default}.composer-note{text-align:center;font-size:.72rem;color:#8a8182;margin:10px 20px 18px}
@media(max-width:820px){.shell{grid-template-columns:1fr;margin:0;width:100%;min-height:100vh;border-radius:0}.brand-panel{display:none}.chat-card{min-height:100vh}.messages{max-height:calc(100vh - 190px);padding:22px 16px}.chat-header{padding:0 16px}.composer{margin:0 14px}.bubble{max-width:90%}}

.hidden { display: none !important; }
.auth-card { display: flex; align-items: center; justify-content: center; padding: 48px; }
.auth-wrap { width: min(440px, 100%); text-align: center; }
.auth-avatar { margin: 0 auto 20px; }
.auth-wrap h2 { font-family: 'Playfair Display', serif; font-size: 34px; margin: 8px 0 12px; }
.auth-copy { line-height: 1.6; margin: 0 auto 28px; max-width: 390px; }
.login-form { text-align: left; }
.login-form label { display: block; font-weight: 700; margin-bottom: 8px; }
.login-form input { width: 100%; box-sizing: border-box; border: 1px solid #d7cfd1; border-radius: 14px; padding: 15px 16px; font: inherit; background: #fff; outline: none; }
.login-form input:focus { border-color: #4c818d; box-shadow: 0 0 0 3px rgba(76,129,141,.12); }
.login-form button { width: 100%; border: 0; border-radius: 14px; padding: 15px 18px; margin-top: 14px; font: inherit; font-weight: 700; cursor: pointer; background: #4c818d; color: white; }
.login-form button:disabled { opacity: .6; cursor: wait; }
.auth-message { min-height: 48px; margin-top: 18px; line-height: 1.5; font-size: 14px; }
.header-actions { margin-left: auto; display: flex; gap: 8px; }
@media (max-width: 720px) { .auth-card { padding: 28px 20px; } .header-actions { gap: 4px; } .header-actions .ghost { padding: 8px; font-size: 12px; } }

.small-copy{font-size:.88rem;color:var(--muted)}
.access-button{width:100%;border:0;border-radius:14px;padding:15px 18px;margin-top:8px;font:inherit;font-weight:700;cursor:pointer;background:#4c818d;color:white}
