:root{--bg:#0f1412;--bg-elev:#1a221e;--ink:#f4efe4;--muted:#b7c2b8;--line:#2c3a33;--accent:#c9a227;--danger:#d45d4c;--ok:#7cb389;--tap:48px;--chat-min:400px;color:var(--ink);background:var(--bg);font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif}*{box-sizing:border-box}html,body,#root{min-height:100dvh;margin:0}body{background:radial-gradient(1200px 600px at 50% -10%, #24332c, var(--bg))}button,a,input,textarea{font:inherit}.tap-target{min-width:var(--tap);min-height:var(--tap)}.app-shell{flex-direction:column;gap:1rem;max-width:28rem;min-height:100dvh;margin:0 auto;padding:1rem 1rem 6.5rem;display:flex}.topbar{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.brand{letter-spacing:.02em;margin:0;font-size:1.35rem}.muted{color:var(--muted);font-size:.92rem}.room{border:1px solid var(--line);background:linear-gradient(#2a3a32,#17201c);border-radius:1.25rem;height:220px;position:relative;overflow:hidden}.companion{width:96px;height:96px;image-rendering:pixelated;transform-origin:50% 100%;pointer-events:none;position:absolute;bottom:8px}.companion.face-right{transform:scaleX(-1)}.companion.face-left{transform:scaleX(1)}.grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.tile{background:var(--bg-elev);border:1px solid var(--line);color:inherit;text-align:left;border-radius:1rem;min-height:96px;padding:1rem}.tile h2{margin:0 0 .35rem;font-size:1rem}.tile p{color:var(--muted);margin:0;font-size:.85rem}.btn{min-height:var(--tap);min-width:var(--tap);border:1px solid var(--accent);background:var(--accent);color:#1a1508;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:0 1rem;font-weight:600;display:inline-flex}.btn.ghost{color:var(--ink);border-color:var(--line);background:0 0}.btn:disabled{opacity:.5}.chat-bubble{z-index:20;width:var(--tap);height:var(--tap);background:var(--accent);color:#1a1508;border:0;border-radius:999px;font-weight:700;position:fixed;bottom:1rem;right:1rem;box-shadow:0 8px 24px #00000059}.chat-panel{z-index:30;min-height:var(--chat-min);height:min(72dvh, var(--vv-height,100dvh));border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);background:#121916;border-radius:1.25rem 1.25rem 0 0;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0}.chat-panel[data-keyboard=open]{min-height:var(--chat-min);height:var(--vv-height)}.chat-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.transcript{flex-direction:column;flex:1;gap:.6rem;padding:.75rem 1rem;display:flex;overflow:auto}.bubble{border-radius:.9rem;max-width:86%;padding:.65rem .8rem;line-height:1.35}.bubble.owner{background:#31463b;align-self:flex-end}.bubble.dedos{background:#243028;align-self:flex-start}.bubble.system{color:#e6d7a8;background:#2a2418;align-self:stretch;font-size:.9rem}.composer{border-top:1px solid var(--line);min-height:calc(var(--tap) + 1.5rem);gap:.5rem;padding:.75rem;display:flex}.composer textarea{min-height:var(--tap);resize:none;border:1px solid var(--line);color:var(--ink);background:#0d120f;border-radius:.85rem;flex:1;padding:.7rem .8rem}.login{flex-direction:column;gap:1rem;max-width:28rem;margin:0 auto;padding:2rem 1rem;display:flex}.banner{color:#e6d7a8;background:#2a2418;border-radius:.85rem;padding:.75rem 1rem}.error{color:var(--danger)}.status-pill{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.2rem .55rem;font-size:.75rem;display:inline-block}.empty{color:var(--muted);text-align:center;padding:1.5rem .5rem}
