@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";:root{--bg-start: #060c1b;--bg-end: #122b4f;--panel: rgba(9, 16, 30, .86);--panel-border: rgba(148, 163, 184, .32);--text-primary: #e2e8f0;--text-muted: #94a3b8;--surface: rgba(15, 23, 42, .78);--surface-border: rgba(148, 163, 184, .24);--input-bg: rgba(15, 23, 42, .9);--input-border: rgba(125, 211, 252, .35);--input-focus: rgba(56, 189, 248, .7);--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--primary: #3b82f6;--bubble-local: linear-gradient(135deg, #2563eb, #0ea5e9);--bubble-remote: rgba(30, 41, 59, .85);--bubble-system: rgba(30, 41, 59, .58)}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Manrope,Segoe UI,sans-serif;color:var(--text-primary);background:radial-gradient(circle at 12% 15%,rgba(56,189,248,.26),transparent 34%),radial-gradient(circle at 88% 0%,rgba(34,197,94,.24),transparent 34%),linear-gradient(145deg,var(--bg-start),var(--bg-end))}#root{min-height:100vh}.chat-app{min-height:100vh;padding:clamp(.8rem,2.4vw,2rem);display:flex;justify-content:center;align-items:center}.chat-app__shell{width:min(960px,100%);height:min(92vh,860px);min-height:min(92vh,860px);border-radius:24px;border:1px solid var(--panel-border);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 28px 64px #02061794;padding:clamp(1rem,2.6vw,1.8rem);display:grid;grid-template-rows:auto auto auto auto minmax(260px,1fr) auto;gap:.9rem;overflow:hidden}.chat-app__header{display:flex;flex-direction:column;gap:.3rem}.chat-app__title{margin:0;font-size:clamp(1.6rem,4vw,2.2rem);letter-spacing:.02em}.chat-app__subtitle{margin:0;color:var(--text-muted);font-size:.92rem}.chat-app__connect{border:1px solid var(--surface-border);border-radius:16px;background:var(--surface);padding:clamp(.7rem,2vw,1rem)}.chat-app__messages{border:1px solid var(--surface-border);border-radius:16px;background:var(--surface);padding:.8rem;overflow-y:scroll;min-height:0;overscroll-behavior:contain;scrollbar-gutter:stable}.chat-app__system{border-radius:14px}.chat-app__composer{align-items:center}.chat-app--immersive .chat-app__shell{grid-template-rows:auto minmax(0,1fr) auto}.chat-app--immersive .chat-app__messages{min-height:0}.system-log{border:1px dashed rgba(148,163,184,.42);background:#0f172ab3;padding:.65rem .82rem}.system-log__label{margin:0;font-size:.72rem;color:#e2e8f0bf;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.system-log__text{margin:.2rem 0 0;font-size:.9rem;line-height:1.35}.system-log__time{display:block;margin-top:.3rem;font-size:.72rem;color:#e2e8f094}.system-log--error{border-color:#f8717194;background:#7f1d1d80}.status-panel{border:1px solid var(--surface-border);border-radius:16px;background:var(--surface);padding:.85rem 1rem;display:flex;justify-content:space-between;align-items:center;gap:.8rem}.status-panel__left{display:flex;align-items:center;gap:.55rem}.status-panel__dot{width:11px;height:11px;border-radius:999px;box-shadow:0 0 0 6px #94a3b81f}.status-panel__dot--idle{background:#64748b}.status-panel__dot--connecting,.status-panel__dot--waiting{background:var(--warning);animation:pulse 1.2s ease-in-out infinite}.status-panel__dot--online{background:var(--success);box-shadow:0 0 0 6px #22c55e33}.status-panel__dot--error{background:var(--danger);box-shadow:0 0 0 6px #ef444433}.status-panel__label{font-weight:700}.status-panel__room{margin:0;color:var(--text-muted);font-size:.86rem}.join-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.join-form__actions{grid-column:span 2;display:flex;flex-wrap:wrap;gap:.6rem}.form-field{display:flex;flex-direction:column;gap:.35rem}.form-field--room{grid-column:span 2}.form-field__label{font-size:.84rem;color:var(--text-muted);font-weight:600}.form-field__input{border:1px solid var(--input-border);background:var(--input-bg);color:var(--text-primary);border-radius:12px;font-size:.94rem;padding:.72rem .82rem;transition:border-color .15s ease,box-shadow .15s ease}.form-field__input:focus{outline:none;border-color:var(--input-focus);box-shadow:0 0 0 3px #38bdf833}.form-field__input:disabled{opacity:.6;cursor:not-allowed}.button{border:0;border-radius:12px;padding:.68rem .95rem;color:#fff;font-weight:700;font-size:.9rem;letter-spacing:.01em;cursor:pointer;transition:transform .14s ease,filter .14s ease,opacity .14s ease}.button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05)}.button:disabled{opacity:.45;cursor:not-allowed}.button--primary{background:var(--primary)}.button--accent{background:linear-gradient(135deg,#10b981,#0ea5e9)}.button--danger{background:#dc2626}.button--ghost{background:transparent;border:1px solid rgba(148,163,184,.55);color:var(--text-primary)}.messages{display:flex;flex-direction:column;gap:.72rem}.messages__empty{margin:0;color:#e2e8f09e;font-size:.88rem;text-align:center;padding:1rem .5rem}.messages::-webkit-scrollbar{width:9px}.messages::-webkit-scrollbar-track{background:#0f172a80;border-radius:999px}.messages::-webkit-scrollbar-thumb{border-radius:999px;background:#94a3b873}.chat-message{max-width:min(76%,640px);border-radius:14px;padding:.62rem .78rem;border:1px solid transparent}.chat-message__sender{margin:0;font-size:.74rem;color:#e2e8f0d9;font-weight:700}.chat-message__text{margin:.24rem 0 0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.42}.chat-message__time{display:block;margin-top:.35rem;font-size:.72rem;color:#e2e8f099}.chat-message__file{margin-top:.48rem;border:1px solid rgba(148,163,184,.32);border-radius:10px;background:#0f172a66;padding:.48rem .56rem}.chat-message__file-link{color:#dbeafe;font-weight:700;text-decoration:underline;overflow-wrap:anywhere}.chat-message__file-meta{margin:.24rem 0 0;font-size:.74rem;color:#e2e8f0b8}.chat-message--local{align-self:flex-end;background:var(--bubble-local);border-bottom-right-radius:6px}.chat-message--remote{align-self:flex-start;background:var(--bubble-remote);border:1px solid rgba(148,163,184,.36);border-bottom-left-radius:6px}.chat-message--system{align-self:center;max-width:100%;text-align:center;background:var(--bubble-system);border:1px dashed rgba(148,163,184,.4)}.chat-message--system .chat-message__sender{color:#e2e8f0b3}.chat-message--error{align-self:center;max-width:100%;text-align:center;background:#7f1d1d8c;border:1px solid rgba(248,113,113,.65)}.composer{display:grid;grid-template-columns:1fr auto;gap:.65rem}.composer__input{border:1px solid var(--input-border);background:var(--input-bg);color:var(--text-primary);border-radius:12px;font-size:.95rem;padding:.74rem .84rem}.composer__input:focus{outline:none;border-color:var(--input-focus);box-shadow:0 0 0 3px #38bdf833}.composer__input:disabled{opacity:.6;cursor:not-allowed}.composer__button{min-width:110px}.composer__actions{display:flex;gap:.55rem}.composer__file-input{display:none}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.7}}@media(max-width:820px){.chat-app{min-height:100dvh}.chat-app__shell{height:100dvh;min-height:100dvh}.chat-app--immersive{padding:0}.chat-app--immersive .chat-app__shell{width:100%;border-radius:0;border-left:0;border-right:0;padding:.72rem;gap:.65rem}.chat-message{max-width:88%}}@media(max-width:640px){.status-panel{flex-direction:column;align-items:flex-start}.join-form{grid-template-columns:1fr}.join-form__actions,.form-field--room{grid-column:span 1}.button{flex:1 1 120px}.composer{grid-template-columns:1fr}.composer__actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.composer__button{width:100%}.chat-message{max-width:100%}}
