*{box-sizing:border-box}:root{color-scheme:dark;--accent: #6366f1;--accent-text: #a5b4fc;--bg: #0f1117;--bubble-own: #3f479f;--surface: #1b1e28;--surface-raised: #242836;--border: #2d3242;--text: #e6e8ee;--muted: #9aa1b1;--danger: #f87171;--danger-button: #dc2626;--radius: 12px}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text);height:100dvh}#app{height:100dvh;display:flex;flex-direction:column}.centered{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card,.install-card{background:var(--surface);border-radius:var(--radius);box-shadow:0 4px 24px #0006;padding:2rem;width:min(24rem,100%);display:flex;flex-direction:column;gap:.75rem}.login-card h1,.install-card h1{margin:0 0 .5rem;font-size:1.4rem}.install-card{text-align:center;align-items:center}.install-card p{margin:0}.install-icon{width:4rem;height:4rem;border-radius:1rem}.install-steps{margin:0;padding-left:1.5rem;text-align:left;display:flex;flex-direction:column;gap:.5rem}.install-step{margin:0}.install-button{width:100%}.install-tradeoff{color:var(--muted);font-size:.85rem;margin-top:.5rem}.browser-mode-button,.sign-out-button{background:none;border:1px solid var(--border);color:var(--muted)}.install-banner{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--surface-raised);border-bottom:1px solid var(--border);font-size:.85rem}.install-banner span{flex:1}.install-banner-link{background:none;color:var(--accent-text);padding:.25rem .5rem}input,button{font:inherit;border-radius:8px}input{border:1px solid var(--border);background:var(--surface-raised);color:var(--text);padding:.6rem .75rem;width:100%}input::placeholder{color:var(--muted)}button{border:none;background:var(--accent);color:#fff;padding:.6rem 1rem;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.danger{background:var(--danger-button)}button.close{background:none;color:var(--muted);padding:0 .25rem}.error{color:var(--danger);margin:.25rem 0 0}.hint{color:var(--muted);font-size:.85rem}.chat-screen,.admin-screen{display:flex;flex-direction:column;flex:1;min-height:0}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;padding-top:calc(.75rem + env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border)}.chat-header h1{margin:0;font-size:1.1rem}.chat-header-title,.chat-header-actions{display:flex;align-items:center;gap:.6rem}.header-icon{width:1.5rem;height:1.5rem;border-radius:6px}.profile-button{background:none;padding:0;border-radius:50%;display:flex}.status{font-size:.8rem;color:var(--muted)}.status-open{color:#4ade80}.feed{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.message{display:flex;gap:.6rem;align-self:flex-start;background:var(--surface);border-radius:var(--radius);padding:.6rem .85rem;max-width:min(42rem,85%);box-shadow:0 1px 2px #0000004d}.message-own{align-self:flex-end;background:var(--bubble-own)}.message-own .message-meta time{color:#e6e8eeb3}.message-content{flex:1;min-width:0}.avatar{width:2rem;height:2rem;border-radius:50%;flex-shrink:0;object-fit:cover}.avatar-initial{display:inline-flex;align-items:center;justify-content:center;background:var(--surface-raised);color:var(--accent-text);font-weight:600}.avatar-large{width:6rem;height:6rem;font-size:2rem}.message-meta{display:flex;gap:.5rem;align-items:baseline;margin-bottom:.2rem}.sender{font-weight:600;font-size:.9rem}.message-meta time{color:var(--muted);font-size:.75rem}.body{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.message-deleted{color:var(--muted);font-style:italic}.message-pending{font-style:italic;opacity:.85}.message-failed{border:1px solid var(--danger)}.media-thumb{padding:0;background:none;display:block}.media-thumb img{max-width:min(18rem,100%);border-radius:8px;display:block}.media-placeholder{background:var(--surface-raised);color:var(--text);border:1px dashed var(--border);padding:1.25rem}.media-video{max-width:min(24rem,100%);border-radius:8px}.media-sending{max-width:min(18rem,100%);border-radius:8px;display:block;opacity:.7}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#000000eb}.lightbox img{max-width:100vw;max-height:100dvh;object-fit:contain}.lightbox-close{position:absolute;top:calc(.75rem + env(safe-area-inset-top));right:.75rem;background:none;border:none;color:var(--text);font-size:1.5rem;line-height:1}.lightbox-loading{color:var(--muted)}.load-older{align-self:center;background:var(--surface);color:var(--accent-text);border:1px solid var(--border)}.composer-area{position:relative}.composer{display:flex;gap:.5rem;padding:.75rem;padding-bottom:calc(.75rem + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border)}.composer input[type=text]{flex:1}.composer .attach{background:var(--surface-raised);color:var(--text);width:2.6rem;flex-shrink:0;font-size:1.4rem;font-weight:600;line-height:1;padding:0;transition:transform .15s ease}.composer .attach-open{transform:rotate(45deg)}.composer-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.composer-menu{position:absolute;bottom:100%;left:.75rem;margin-bottom:.5rem;z-index:31;display:flex;flex-direction:column;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:0 4px 24px #00000080}.composer-menu button{background:none;color:var(--text);text-align:left;padding:.75rem 1.25rem;border-radius:0}.composer-menu button+button{border-top:1px solid var(--border)}.gif-picker{position:absolute;bottom:100%;left:0;right:0;margin:0 .5rem .5rem;z-index:31;display:flex;flex-direction:column;height:min(50dvh,24rem);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 -4px 24px #0006}.gif-picker-header{display:flex;align-items:center;gap:.5rem;padding:.5rem}.gif-grid{flex:1;overflow-y:auto;padding:0 .5rem;display:grid;grid-template-columns:1fr 1fr;gap:.5rem;align-content:start}.gif-cell{padding:0;height:8rem;background:var(--surface-raised);border-radius:8px;overflow:hidden}.gif-cell img{width:100%;height:100%;object-fit:cover;display:block}.gif-picker-status{flex:1;color:var(--muted);text-align:center;padding:1rem;margin:0}.gif-attribution{color:var(--muted);font-size:.7rem;text-align:right;margin:0;padding:.35rem .75rem}.profile-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:1rem}.profile-card{background:var(--surface);border-radius:var(--radius);box-shadow:0 4px 24px #00000080;padding:1.5rem;width:min(22rem,100%);display:flex;flex-direction:column;align-items:center;gap:.75rem}.profile-card-header{display:flex;align-items:center;justify-content:space-between;width:100%}.profile-card-header h2{margin:0;font-size:1.1rem}.profile-name-form{display:flex;flex-direction:column;gap:.5rem;width:100%}.admin-tabs{display:flex;gap:.25rem;padding:.5rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto}.admin-tabs button{background:none;color:var(--muted);border-bottom:2px solid transparent;border-radius:0;white-space:nowrap}.admin-tabs button.active{color:var(--accent-text);border-bottom-color:var(--accent)}.panel{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem;max-width:46rem;width:100%;margin:0 auto}.panel-form{display:flex;gap:.5rem;flex-wrap:wrap}.panel-form input{flex:1;min-width:12rem}.panel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.panel-list li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--surface);border-radius:8px;padding:.6rem .85rem}.app-name-row{display:flex;gap:.75rem}.app-name-row input{flex:1}.app-name-row button{white-space:nowrap}.homescreen-preview{display:flex;flex-direction:column;align-items:center;gap:.35rem;width:4.5rem;margin:.75rem 0}.homescreen-preview img{width:3.5rem;height:3.5rem;border-radius:.9rem}.homescreen-preview span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem}.app-icon-row{display:flex;align-items:center;gap:1rem}.app-icon-preview{width:4rem;height:4rem;border-radius:1rem;background:var(--surface-raised)}.file-button{background:var(--accent);color:#fff;padding:.6rem 1rem;border-radius:8px;cursor:pointer}.file-button.disabled{opacity:.5;cursor:default}
