@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap";:root{--bg:#f8f5ec;--bg-soft:#efe6d2;--panel:#fffaf0;--ink:#1f2b22;--ink-muted:#5e6a62;--line:#d7c9b2;--accent:#1f8a70;--accent-strong:#146955;--accent-ink:#f0fff8;--warning:#b96c2e;--radius-lg:20px;--radius-md:12px;--shadow:0 18px 35px #2d3a311f;color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Outfit,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 10% 10%, #1f8a702e, transparent 45%), radial-gradient(circle at 90% 0%, #b96c2e2e, transparent 40%), linear-gradient(165deg, var(--bg) 20%, var(--bg-soft) 100%);min-height:100vh;margin:0}h1,h2,h3,p{margin:0}button,input{font:inherit}#root{min-height:100vh;padding:28px}@media (width<=900px){#root{padding:14px}}.app-shell{border:1px solid var(--line);max-width:1300px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffaf0b3;border-radius:24px;grid-template-columns:360px minmax(0,1fr);min-height:calc(100vh - 56px);margin:0 auto;display:grid;overflow:hidden}.auth-shell{place-items:center;max-width:860px;min-height:calc(100vh - 56px);margin:0 auto;display:grid}.auth-panel{border:1px solid var(--line);border-radius:var(--radius-lg);width:min(540px,100%);box-shadow:var(--shadow);background:#fffaf0e6;gap:20px;padding:34px;display:grid}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong);font-family:Space Grotesk,sans-serif;font-size:.78rem;font-weight:700}.auth-panel h1{font-family:Space Grotesk,sans-serif;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.15}.subtitle{color:var(--ink-muted)}.auth-toggle{border-radius:var(--radius-md);background:#1f8a7014;grid-template-columns:1fr 1fr;gap:8px;padding:5px;display:grid}.auth-toggle button{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:9px;padding:8px 10px}.auth-toggle button.active{background:var(--panel);color:var(--ink);font-weight:600}.auth-form{gap:14px;display:grid}.auth-form label{color:var(--ink-muted);gap:8px;font-size:.93rem;display:grid}input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fffdf8;border-radius:10px;outline:none;padding:11px 12px}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1f8a7026}button{border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:10px;padding:9px 12px}button:hover{border-color:var(--accent)}button.primary{background:linear-gradient(120deg, var(--accent), var(--accent-strong));color:var(--accent-ink);border-color:#0000;font-weight:600}button.primary:disabled{opacity:.65;cursor:wait}button.ghost{background:0 0}.error-text,.error-banner{color:var(--warning);font-size:.9rem}.error-banner{background:#ffe0c466;border-bottom:1px dashed #b96c2e66;padding:8px 14px}.dashboard{border-right:1px solid var(--line);background:#efe6d280;grid-template-rows:auto auto 1fr;gap:14px;padding:18px;display:grid}.user-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);justify-content:space-between;align-items:flex-start;gap:12px;padding:14px;display:flex}.user-card h2{margin-top:2px;font-family:Space Grotesk,sans-serif;font-size:1.1rem}.panel{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);gap:10px;min-height:0;padding:12px;display:grid}.panel h3{font-family:Space Grotesk,sans-serif;font-size:1rem}.search-row{grid-template-columns:1fr auto;gap:8px;display:grid}.search-results,.chat-list{gap:8px;min-height:0;max-height:250px;display:grid;overflow-y:auto}.person-row{border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.person-name{font-weight:600}.chat-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.presence-text{font-size:.76rem;font-weight:600}.presence-text.online{color:var(--accent-strong)}.presence-text.offline{color:var(--ink-muted)}.person-actions{gap:6px;display:flex}.chat-list-item{text-align:left;border:1px solid var(--line);border-radius:10px;gap:4px;padding:10px;display:grid}.chat-list-item.active{border-color:var(--accent);background:#1f8a7014}.chat-column{grid-template-rows:auto 1fr;min-width:0;display:grid}.chat-shell{grid-template-rows:auto 1fr auto;min-height:0;display:grid}.chat-shell.empty{text-align:center;place-items:center;gap:10px;padding:24px}.chat-header{border-bottom:1px solid var(--line);background:#fffaf0d9;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.chat-header h2{font-family:Space Grotesk,sans-serif;font-size:1.3rem}.chat-header-right{align-items:center;gap:8px;display:flex}.quantum-pill{border:1px solid;border-radius:999px;padding:5px 10px;font-size:.75rem;font-weight:600}.quantum-pill.ready{color:var(--accent-strong);background:#1f8a7021;border-color:#1f8a7066}.quantum-pill.missing{color:var(--warning);background:#b96c2e1a;border-color:#b96c2e66}.message-list{flex-direction:column;gap:10px;padding:16px;display:flex;overflow-y:auto}.message-bubble{border:1px solid var(--line);border-radius:14px;gap:6px;max-width:min(72%,540px);padding:10px 12px;display:grid}.message-bubble.mine{background:#1f8a7024;align-self:flex-end}.message-bubble.theirs{background:#fff;align-self:flex-start}.message-bubble time{color:var(--ink-muted);font-size:.75rem}.chat-footer{border-top:1px solid var(--line);background:#fffaf0e6;gap:8px;padding:12px;display:grid}.message-form{grid-template-columns:1fr auto;gap:8px;display:grid}.muted{color:var(--ink-muted);font-size:.86rem}.empty-hint{color:var(--ink-muted);font-size:.9rem}@media (width<=1050px){.app-shell{grid-template-columns:1fr}.dashboard{border-right:none;border-bottom:1px solid var(--line);grid-template-rows:auto auto auto}.search-results,.chat-list{max-height:190px}.chat-header{flex-direction:column;align-items:flex-start}.chat-header-right{justify-content:space-between;width:100%}.message-bubble{max-width:90%}}
