:root{--bg:#0b0d12;--surface:#141821;--surface-2:#1c2230;--border:#262d3d;--text:#e7ebf3;--muted:#9aa6b8;--accent:#5b8cff;--accent-hover:#4a7bef;--error:#ff6b6b;--ok:#4caf7d;--radius:12px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.45}button{cursor:pointer;background:var(--surface-2);color:var(--text);border-radius:var(--radius);border:none;padding:.6rem 1rem;font-size:.95rem}button:hover:not(:disabled){background:var(--accent)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent)}input,textarea{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);padding:.7rem .8rem;font-size:1rem}input:focus,textarea:focus{outline:2px solid var(--accent)}label{color:var(--muted);margin-bottom:.9rem;font-size:.9rem;display:block}label input{color:var(--text);margin-top:.3rem}.app-loading,.app-config-error{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:2rem;display:flex}.app-config-error p{color:var(--muted)}.login{background:var(--surface);border:1px solid var(--border);border-radius:20px;max-width:360px;margin:4rem auto;padding:1.5rem}.login h1{text-align:center;margin-bottom:1.5rem}.login button.primary{width:100%;margin-top:.5rem;padding:.8rem}.hint{margin:.4rem 0;font-size:.85rem}.hint-error{color:var(--error)}.hint-ok{color:var(--ok)}.chat{border-left:1px solid var(--border);border-right:1px solid var(--border);flex-direction:column;max-width:720px;height:100%;margin:0 auto;display:flex}.chat-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.8rem 1rem;display:flex}.chat-header h1{margin:0;font-size:1.2rem}.notification-button{white-space:nowrap;padding:.45rem .7rem;font-size:.85rem}.message-list{flex-direction:column;flex:1;gap:.75rem;margin:0;padding:1rem;list-style:none;display:flex;overflow-y:auto}.message-list-empty{color:var(--muted);flex:1;justify-content:center;align-items:center;display:flex}.day-separator{color:var(--muted);background:var(--surface-2);border-radius:999px;align-self:center;padding:.2rem .7rem;font-size:.8rem}.message{background:var(--surface-2);border-radius:14px;flex-direction:column;max-width:78%;padding:.55rem .8rem;display:flex}.message--own{background:var(--accent);color:#fff;align-self:flex-end}.message-header{gap:.5rem;margin-bottom:.2rem;font-size:.75rem;display:flex}.message--own .message-header{color:#fffc;flex-direction:row-reverse}.message-time{opacity:.6}.message-text{word-break:break-word;margin:0}.message-actions{gap:.5rem;margin-top:.3rem;padding-right:.2rem;font-size:.8rem;display:flex}.message--own .message-actions{justify-content:flex-end}.message-edit{flex-direction:column;gap:.4rem;margin-top:.4rem;display:flex}.message-edit input{padding:.4rem}.message-actions button,.message-edit button{padding:.25rem .5rem;font-size:.8rem}.message-edited{opacity:.6;margin-top:.2rem;font-size:.7rem}.message-composer{background:var(--surface);border-top:1px solid var(--border);gap:.6rem;padding:.8rem 1rem;display:flex}.message-composer textarea{resize:none;flex:1;max-height:120px}.toast{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);z-index:100;padding:.6rem 1rem;position:fixed;bottom:5rem;left:50%;transform:translate(-50%)}.admin-panel{background:var(--surface);border-top:1px solid var(--border);padding:1rem}.admin-panel h2{margin:0 0 .8rem;font-size:1.1rem}.admin-add{gap:.5rem;margin-bottom:1rem;display:flex}.admin-add input{flex:1}.admin-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.admin-entry{background:var(--surface-2);border-radius:var(--radius);align-items:center;gap:.6rem;padding:.6rem .8rem;display:flex}.admin-entry .badge{margin-right:auto;font-size:.75rem}.badge.reg{color:var(--ok)}.badge.free{color:var(--muted)}.badge.admin-badge{color:var(--accent)}.modal-backdrop{z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;max-width:340px;padding:1.5rem}.modal p{margin-top:0}.modal button{margin-right:.5rem}
