html{scroll-behavior:smooth}body{margin:0}#root{min-height:100vh}:root{--ink:#0a0608;--ink-soft:#1a0a0c;--panel:#240a0cc7;--line:#f2b73a52;--brass:#e8a317;--brass-hot:#ffd24a;--arc:#4fc3f7;--moss:#ff5a3c;--fog:#f3e6dc;--fog-dim:#c9a99a;--user-bg:#c41e1e47;--assistant-bg:#ffd24a14;--danger:#ff6b4a;--radius:18px;--font-display:"Bebas Neue", "Arial Narrow", Impact, sans-serif;--font-body:"Rajdhani", "Trebuchet MS", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-body);color:var(--fog);background:var(--ink);-webkit-font-smoothing:antialiased;margin:0}button,textarea{font:inherit}.shell{grid-template-rows:auto 1fr;gap:1.25rem;min-height:100vh;padding:clamp(1.25rem,3vw,2.5rem);display:grid;position:relative;overflow:hidden}.atmosphere{z-index:0;pointer-events:none;background:radial-gradient(70% 50% at 10% -5%,#c41e1e73,#0000 55%),radial-gradient(55% 40% at 95% 8%,#ffd24a38,#0000 50%),radial-gradient(circle at 50% 110%,#4fc3f71f,#0000 45%),linear-gradient(165deg,#120508 0%,#1c080c 42%,#0a0608 100%);position:fixed;inset:0}.atmosphere:before{content:"";background:linear-gradient(125deg,#0000 40%,#ffd24a0d 50%,#0000 60%),repeating-linear-gradient(-18deg,#0000,#0000 18px,#c41e1e0a 18px 19px);position:absolute;inset:0}.atmosphere:after{content:"";opacity:.28;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.45'/%3E%3C/svg%3E");position:absolute;inset:0}.top,.stage{z-index:1;position:relative}.shell--center{grid-template-rows:1fr;place-items:center}.top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.25rem 2rem;animation:.7s both rise;display:flex}.top__right{flex-direction:column;align-items:flex-end;gap:.85rem;display:flex}.auth-gate{z-index:1;text-align:center;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);max-width:34rem;padding:clamp(1.5rem,4vw,2.5rem);animation:.8s both rise;position:relative}.auth-gate__title{font-family:var(--font-display);color:var(--fog);margin:1rem 0 0;font-size:clamp(1.7rem,4vw,2.4rem);font-weight:500;line-height:1.15}.auth-gate__copy{max-width:28rem;color:var(--fog-dim);margin:.85rem auto 0;line-height:1.5}.google-btn{color:#1a0808;letter-spacing:.04em;background:linear-gradient(135deg,#c41e1e 0%,#e8a317 100%);border-radius:12px;margin-top:1.4rem;padding:.85rem 1.35rem;font-weight:700;text-decoration:none;transition:filter .2s,transform .15s;display:inline-flex}.google-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.google-btn--secondary{border:1px solid var(--line);color:var(--brass-hot);background:0 0;margin-top:.75rem}.google-btn--secondary:hover{background:#e8a3171f}.local-login{text-align:left;gap:.75rem;margin-top:1.35rem;display:grid}.local-login label{color:var(--fog-dim);gap:.35rem;font-size:.85rem;display:grid}.local-login input{border:1px solid var(--line);width:100%;color:var(--fog);background:#0c0406a6;border-radius:12px;outline:none;padding:.75rem .9rem}.local-login input:focus{border-color:#ffd24ab3;box-shadow:0 0 0 3px #c41e1e33}.local-login__submit{cursor:pointer;border:none;justify-content:center;width:100%;margin-top:.25rem}.user-chip{align-items:center;gap:.75rem;max-width:100%;display:flex}.user-chip__avatar{object-fit:cover;border:1px solid var(--line);border-radius:50%;width:36px;height:36px}.user-chip__meta{flex-direction:column;align-items:flex-start;gap:.1rem;min-width:0;display:flex}.user-chip__name{color:var(--fog);font-size:.9rem}.user-chip__email,.user-chip__usage{color:var(--fog-dim);text-overflow:ellipsis;white-space:nowrap;max-width:16rem;font-size:.72rem;overflow:hidden}.brand{font-family:var(--font-display);letter-spacing:.04em;color:#0000;text-transform:lowercase;background:linear-gradient(100deg,#ffd24a 0%,#ff5a3c 42%,#ffd24a 78%,#fff1b0 100%);text-shadow:0 0 40px #c41e1e59;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2.8rem,8vw,4.8rem);font-weight:400;line-height:.95;animation:4.5s ease-in-out infinite brand-glow}.brand .brand__mark{color:var(--brass-hot);-webkit-text-fill-color:initial;background:0 0}.tagline{max-width:24rem;color:var(--fog-dim);letter-spacing:.02em;margin:.55rem 0 0;font-size:1.05rem;font-weight:500;line-height:1.45}.provider-select{flex-wrap:wrap;justify-content:flex-end;gap:.45rem;max-width:min(52rem,100%);max-height:9.5rem;animation:.85s both rise;display:flex;overflow-y:auto}.provider-chip{border:1px solid var(--line);color:var(--fog);cursor:pointer;background:#0c040673;border-radius:999px;align-items:center;gap:.35rem;padding:.45rem .8rem;font-size:.9rem;font-weight:600;transition:border-color .2s,background .2s,color .2s,transform .2s;display:inline-flex}.provider-chip:hover:not(:disabled){border-color:#ffd24aa6;transform:translateY(-1px)}.provider-chip.is-active{border-color:var(--brass-hot);color:var(--brass-hot);background:linear-gradient(135deg,#c41e1e59,#e8a31738)}.provider-chip.is-locked{opacity:.55}.provider-chip:disabled{cursor:not-allowed}.provider-chip__hint{text-transform:uppercase;letter-spacing:.06em;color:var(--fog-dim);font-size:.7rem}.stage{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);gap:.85rem;min-height:min(72vh,760px);padding:clamp(1rem,2.5vw,1.5rem);animation:1s both rise;display:grid}.stage--tools{grid-template-rows:auto 1fr;min-height:min(78vh,820px);padding:.85rem}.tool-panel{background:#0c04068c;border:1px solid #f2b73a47;border-radius:12px;flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.tool-panel--empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:2rem 1.25rem;display:flex}.tool-frame{background:#120508;border:0;flex:1;width:100%;min-height:min(68vh,720px)}.stage__toolbar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.stage__meta{color:var(--fog-dim);margin:0;font-size:.82rem}.ghost-btn{color:var(--moss);cursor:pointer;background:0 0;border:none;padding:.25rem 0}.ghost-btn:hover:not(:disabled){color:var(--brass-hot)}.ghost-btn:disabled{opacity:.4;cursor:not-allowed}.message-list{flex-direction:column;gap:.85rem;min-height:0;padding-right:.25rem;display:flex;overflow-y:auto}.message-list--empty{text-align:center;justify-content:center;align-items:center;padding:2rem 1rem}.empty-title{font-family:var(--font-display);color:var(--fog);margin:0;font-size:clamp(1.6rem,3vw,2.2rem)}.empty-copy{max-width:26rem;color:var(--fog-dim);margin:.6rem 0 0;line-height:1.5}.bubble{border-radius:14px;max-width:min(720px,92%);padding:.85rem 1rem;animation:.35s both fade-in}.bubble--user{background:var(--user-bg);border:1px solid #6f9b7a47;align-self:flex-end}.bubble--assistant{background:var(--assistant-bg);border:1px solid #c8d5cc1f;align-self:flex-start}.bubble__role{letter-spacing:.08em;text-transform:uppercase;color:var(--brass);margin-bottom:.35rem;font-size:.72rem;display:block}.bubble__text{white-space:pre-wrap;word-break:break-word;color:var(--fog);margin:0;line-height:1.55}.bubble.is-pending .bubble__text{color:var(--fog-dim)}.error-banner{color:#f0b4a4;background:#e07a5f1f;border:1px solid #e07a5f59;border-radius:10px;margin:0;padding:.65rem .85rem;font-size:.9rem}.chat-input{flex-direction:column;gap:.55rem;display:flex}.chat-input__row{grid-template-columns:auto 1fr auto;align-items:end;gap:.65rem;display:grid}.chat-input__file{display:none}.chat-input__attach{min-height:3.1rem;padding-inline:.9rem}.chat-input__error{margin:0}.attach-preview{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.attach-chip{background:#080e0b8c;border:1px solid #c8d5cc29;border-radius:999px;align-items:center;gap:.45rem;padding:.35rem .55rem;font-size:.78rem;display:inline-flex}.attach-chip__name{text-overflow:ellipsis;white-space:nowrap;max-width:12rem;overflow:hidden}.attach-chip__meta{color:var(--fog-dim)}.attach-chip__remove{color:var(--brass-hot);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.chat-input textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:3.1rem;max-height:9rem;color:var(--fog);background:#0c0406a6;border-radius:12px;outline:none;padding:.85rem 1rem;transition:border-color .2s,box-shadow .2s}.chat-input textarea:focus{border-color:#ffd24ab3;box-shadow:0 0 0 3px #c41e1e38}.chat-input textarea:disabled{opacity:.5}.chat-input__row>button[type=submit]{color:#1a0808;letter-spacing:.04em;cursor:pointer;background:linear-gradient(135deg,#c41e1e 0%,#e8a317 100%);border:none;border-radius:12px;padding:.85rem 1.25rem;font-weight:700;transition:filter .2s,transform .15s}.chat-input__row>button[type=submit]:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.chat-input__row>button[type=submit]:disabled{opacity:.45;cursor:not-allowed}.bubble__attachments{gap:.45rem;margin:0 0 .65rem;padding:0;list-style:none;display:grid}.bubble__file{background:#00000038;border:1px solid #c8d5cc1f;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding:.45rem .55rem;display:grid}.bubble__thumb{object-fit:cover;border-radius:8px;width:44px;height:44px;display:block}.bubble__file-icon{width:44px;height:44px;color:var(--brass-hot);background:#c5a46e26;border-radius:8px;place-items:center;display:grid}.bubble__file-meta{gap:.1rem;min-width:0;display:grid}.bubble__file-name{text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;overflow:hidden}.bubble__file-size{color:var(--fog-dim);font-size:.74rem}.bubble__file-actions{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:inline-flex}.bubble__file-actions .ghost-btn{padding:.25rem .45rem;font-size:.75rem;text-decoration:none}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes brand-glow{0%,to{filter:drop-shadow(0 0 10px #c41e1e59)}50%{filter:drop-shadow(0 0 18px #ffd24a8c)}}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=720px){.shell{padding:1rem}.stage{min-height:65vh}.chat-input__row{grid-template-columns:1fr}.chat-input__row>button[type=submit],.chat-input__attach{width:100%}}
