:root{--primary-color:#646cff;--bg-color:#f4f4f9;--text-color:#333;--surface-color:#fff;--error-color:#ff4d4f;--border-color:#eaeaea;--composer-text-color:#050505;--composer-bg-color:#f0f2f5;--sent-bubble-color:#6b2cff;--received-bubble-color:#f0f0f0;--chat-header-color:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg-color:#242424;--text-color:#ffffffde;--surface-color:#1a1a1a;--border-color:#333}}html{height:100%}body{background-color:var(--bg-color);min-height:100%;color:var(--text-color);margin:0;padding:0;display:flex}#root{flex-direction:column;width:100%;height:100dvh;display:flex}.auth-container{background:var(--surface-color);box-sizing:border-box;border-radius:8px;width:100%;max-width:400px;margin:4rem auto;padding:2rem;box-shadow:0 4px 6px #0000001a}.auth-container h2{text-align:center;margin-bottom:1.5rem}.form-group{flex-direction:column;margin-bottom:1rem;display:flex}.form-group label{margin-bottom:.5rem;font-weight:600}.form-group input{box-sizing:border-box;border:1px solid #ccc;border-radius:4px;width:100%;padding:.75rem;font-size:1rem}.password-wrapper{align-items:center;display:flex;position:relative}.password-wrapper input{padding-right:2.5rem}.password-toggle-btn{cursor:pointer;color:#666;background:0 0;border:none;width:auto;margin:0;padding:0;font-size:1.2rem;position:absolute;right:.5rem}.password-toggle-btn:hover{color:var(--primary-color);background:0 0}button{background-color:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:4px;width:100%;margin-top:1rem;padding:.75rem;font-size:1rem;transition:background-color .2s}button:hover{background-color:#535bf2}.error{color:var(--error-color);text-align:center;background:#ffe6e6;border-radius:4px;margin-bottom:1rem;padding:.75rem}.success{color:#2e7d32;text-align:center;background:#e6f4ea;border-radius:4px;margin-bottom:1rem;padding:.75rem}.dashboard-container{background:#fff;flex-direction:column;height:100dvh;min-height:0;display:flex}.dashboard-header{background:var(--surface-color);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.dashboard-header h1{color:var(--primary-color);margin:0;font-size:1.5rem}.user-info{align-items:center;gap:1rem;display:flex}.user-info button{width:auto;margin:0;padding:.5rem 1rem}.admin-link{color:var(--primary-color);font-weight:700;text-decoration:none}.dashboard-main{flex:1;min-height:0;display:flex;overflow:hidden}.sidebar{box-sizing:border-box;background:var(--surface-color);border-right:1px solid var(--border-color);flex:0 0 300px;padding:1rem;overflow-y:auto}.sidebar h3{border-bottom:1px solid #eee;margin-top:0;padding-bottom:.5rem}.chat-list,.user-list{margin:0 0 2rem;padding:0;list-style:none}.chat-list li,.user-list li{cursor:pointer;border-radius:4px;justify-content:space-between;align-items:center;padding:.75rem;transition:background-color .2s;display:flex}.chat-list li:hover,.user-list li:hover{background-color:var(--bg-color)}.chat-list li.active{background-color:var(--primary-color);color:#fff}.user-list li span{color:var(--primary-color);font-size:.8rem}.chat-area{background:#fff;flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex}.chat-placeholder,.users-home{color:#1c1e21;text-align:left;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:0;display:flex}.users-home{background:#fff;justify-content:flex-start;width:min(520px,100%);margin:0 auto;overflow-y:auto}.messenger-topbar{box-sizing:border-box;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:.75rem 1rem .5rem;display:flex}.brand-mark{color:#fff;background:#0866ff;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.85rem;font-weight:900;line-height:1;display:flex}.messenger-topbar-actions{justify-content:flex-end;align-items:center;gap:.65rem;min-width:0;display:flex}.current-user-name{color:#65676b;text-overflow:ellipsis;white-space:nowrap;max-width:12rem;font-size:.9rem;overflow:hidden}.logout-icon-button{color:#050505;background:#f0f2f5;border-radius:999px;width:auto;margin:0;padding:.45rem .7rem;font-size:.85rem}.logout-icon-button:hover{background:#e4e6eb}.messenger-title-row{box-sizing:border-box;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:1.35rem 1rem .75rem;display:flex}.messenger-title-row h2{color:#050505;letter-spacing:0;margin:0;font-size:1.9rem;line-height:1.1}.compose-glyph{color:#050505;background:#f0f2f5;border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:1.55rem;line-height:1;display:flex}.user-search{box-sizing:border-box;color:#65676b;background:#f0f2f5;border-radius:999px;align-items:center;gap:.5rem;width:calc(100% - 2rem);min-height:2.35rem;margin:0 1rem 1rem;padding:0 .85rem;display:flex}.user-search span{font-size:.85rem}.user-search input{color:#050505;background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:.95rem}.user-search input::placeholder{color:#8a8d91}.chat-filter-tabs{box-sizing:border-box;gap:.35rem;width:100%;padding:0 1rem .75rem;display:flex;overflow-x:auto}.chat-filter-tabs button{color:#050505;white-space:nowrap;background:0 0;border-radius:999px;width:auto;margin:0;padding:.5rem .8rem;font-size:.9rem}.chat-filter-tabs button:hover,.chat-filter-tabs button.active{color:#0866ff;background:#e7f3ff}.user-directory{box-sizing:border-box;flex-direction:column;width:100%;margin:0;padding:0;list-style:none;display:flex}.user-directory-item{color:#050505;text-align:left;background:0 0;border:0;border-radius:0;align-items:center;gap:.8rem;width:100%;margin:0;padding:.55rem 1rem;display:flex}.user-directory-item:hover{background:#f5f6f7}.user-directory-avatar{color:#fff;object-fit:cover;background:#0866ff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;font-weight:800;display:flex}.user-directory-copy{flex-direction:column;gap:.1rem;min-width:0;display:flex}.user-directory-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.98rem;font-weight:600;overflow:hidden}.user-directory-preview{color:#65676b;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.86rem;overflow:hidden}.chat-window{flex-direction:column;flex:1 1 0;height:100%;min-height:0;display:flex}.chat-header{background:var(--chat-header-color);border-bottom:1px solid #e4e6eb;align-items:center;gap:.7rem;padding:.65rem 1rem;display:flex;box-shadow:0 1px 4px #00000014}.chat-header h3{text-overflow:ellipsis;white-space:nowrap;color:#050505;min-width:0;margin:0;font-size:1rem;line-height:1.2;overflow:hidden}.chat-header-copy{flex-direction:column;flex:auto;min-width:0;display:flex}.chat-header-copy span{color:#65676b;font-size:.78rem;line-height:1.2}.chat-header-avatar{color:#fff;object-fit:cover;background:#0866ff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:2.35rem;height:2.35rem;font-weight:800;display:flex}.back-button{color:#8a00ff;background:0 0;border:0;flex:none;width:auto;margin:0;padding:.45rem .25rem;font-weight:700}.back-button:hover{color:#6d00cc;background:0 0}.composer-actions{flex:none;gap:.5rem;display:flex}.call-btn{white-space:nowrap;width:auto;margin:0;padding:.5rem .75rem;font-size:.9rem}.call-btn.danger{background:#d93025}.call-btn.danger:hover{background:#b3261e}.call-banner,.upload-error{color:#30368f;border-bottom:1px solid var(--border-color);background:#eef0ff;padding:.5rem 1rem;font-size:.9rem}.upload-error{color:var(--error-color);background:#ffe6e6}.messages-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;flex-direction:column;flex:1;gap:.5rem;min-height:0;padding:1rem;display:flex;overflow-y:auto}.message{max-width:70%;display:flex}.message.sent{align-self:flex-end}.message.received{align-self:flex-start}.message-content{flex-direction:column;gap:.25rem;display:flex}.message.sent .message-content{align-items:flex-end}.message.received .message-content{align-items:flex-start}.message-bubble{background:var(--received-bubble-color);color:#050505;box-shadow:none;overflow-wrap:anywhere;border-radius:1.15rem;padding:.75rem 1rem}.image-bubble{background:0 0;padding:.35rem}.message-image{object-fit:contain;border-radius:.75rem;max-width:min(320px,62vw);max-height:360px;display:block}.image-message-link{display:block}.message.sent .message-bubble{background:var(--sent-bubble-color);color:#fff}.message-time{color:#777;padding:0 .35rem;font-size:.75rem;line-height:1.2}.message-input{padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e4e6eb;align-items:center;gap:1rem;display:flex}.message-input input{background:var(--composer-bg-color);min-width:0;color:var(--composer-text-color);border:0;border-radius:999px;flex:1;padding:.75rem;font-size:1rem}.message-input button{border-radius:999px;width:auto;margin:0;padding:.75rem 1.5rem}.compact-action-btn{min-width:4.25rem;padding:.75rem .6rem}.hidden-file-input{display:none}.attachment-btn{color:var(--primary-color);border:1px solid var(--primary-color);background:0 0;flex:none}.attachment-btn:hover{background:#646cff1f}.attachment-btn:disabled{cursor:not-allowed;opacity:.7}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal-content{background:var(--surface-color);border-radius:8px;width:100%;max-width:400px;padding:2rem;box-shadow:0 4px 12px #00000026}.modal-content h3{text-align:center;margin-top:0}.modal-actions{gap:1rem;margin-top:1.5rem;display:flex}.modal-actions button{margin-top:0}.btn-secondary{color:var(--text-color);background-color:#0000;border:1px solid #ccc}.btn-secondary:hover{background-color:#f0f0f0}.admin-page{background:var(--bg-color);min-height:100dvh;color:var(--text-color);box-sizing:border-box;padding:1.5rem}.admin-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.admin-header h1{color:var(--primary-color);margin:0}.admin-header p{margin:.25rem 0 0}.admin-header a{color:var(--primary-color);font-weight:700}.admin-notice{border:1px solid var(--border-color);background:var(--surface-color);border-radius:6px;margin-bottom:1rem;padding:.75rem 1rem}.admin-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.admin-summary div,.admin-section{background:var(--surface-color);border:1px solid var(--border-color);border-radius:8px}.admin-summary div{padding:1rem}.admin-summary span{font-size:1.8rem;font-weight:800;display:block}.admin-summary small{color:#777}.admin-section{margin-bottom:1rem;padding:1rem}.admin-section h2{margin:0 0 .75rem;font-size:1.1rem}.color-grid,.admin-form{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;display:grid}.color-grid label{border:1px solid var(--border-color);border-radius:6px;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem;display:flex}.color-grid input[type=color]{width:3rem;height:2rem;padding:0}.admin-form input,.admin-form select,.admin-actions select{box-sizing:border-box;background:var(--surface-color);width:100%;color:var(--text-color);border:1px solid #ccc;border-radius:4px;padding:.65rem}.admin-form button,.color-grid button{margin:0}.admin-form.compact{margin-bottom:.75rem}.admin-table{flex-direction:column;gap:.5rem;display:flex}.admin-row{border:1px solid var(--border-color);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.75rem;display:grid}.admin-row strong,.admin-row span,.admin-row small,.admin-row a{overflow-wrap:anywhere;display:block}.admin-row small{color:#777}.admin-actions{align-items:center;gap:.5rem;display:flex}.admin-row button,.admin-actions button{width:auto;margin:0;padding:.65rem .85rem}button.danger{background:#d93025}button.danger:hover{background:#b3261e}@media (width<=760px){body{overflow:hidden}.auth-container{width:calc(100% - 2rem);margin:1rem auto;padding:1.25rem}.dashboard-header{gap:.75rem;padding:.75rem 1rem}.dashboard-header h1{font-size:1.25rem}.user-info{gap:.5rem;min-width:0}.user-info span{text-overflow:ellipsis;white-space:nowrap;max-width:42vw;overflow:hidden}.user-info button{padding:.45rem .75rem}.admin-page{padding:.75rem}.admin-header{flex-direction:column}.admin-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-row{grid-template-columns:1fr}.admin-actions{flex-direction:column;align-items:stretch}.dashboard-main{flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}.sidebar{border-right:0;border-bottom:1px solid var(--border-color);flex:0 0 28dvh;width:100%;max-height:28dvh;padding:.75rem}.sidebar h3{margin:.25rem 0 .5rem;font-size:.95rem}.chat-list,.user-list{margin-bottom:1rem}.chat-list li,.user-list li{padding:.65rem}.chat-area{flex:1 1 0;min-height:0}.chat-placeholder{padding:1rem}.welcome-avatar{width:56px;height:56px;font-size:1.75rem}.chat-header{padding:.75rem 1rem}.chat-header h3{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;overflow:hidden}.composer-actions{gap:.35rem}.call-btn{padding:.5rem .65rem;font-size:.85rem}.call-banner,.upload-error{padding:.45rem .75rem}.messages-list{flex:1 1 0;min-height:0;padding:.75rem}.message{max-width:86%}.message-bubble{padding:.65rem .85rem}.image-bubble{padding:.25rem}.message-image{max-width:min(280px,78vw);max-height:260px}.message-input{padding:.75rem;padding-bottom:calc(.75rem + env(safe-area-inset-bottom));gap:.5rem}.message-input input{font-size:16px}.message-input button{flex:none;padding:.75rem .85rem}.compact-action-btn{min-width:3.6rem;padding:.7rem .45rem}.modal-content{box-sizing:border-box;max-width:calc(100vw - 2rem);padding:1.25rem}}@media (width<=420px){.dashboard-header{flex-direction:column;align-items:flex-start}.user-info{justify-content:space-between;width:100%}.user-info span{max-width:calc(100vw - 7rem)}.sidebar{flex-basis:24dvh;max-height:24dvh}.message-input{flex-wrap:nowrap;align-items:stretch}.message-input input[type=text]{flex:auto;order:0;min-width:0}.message-input button{flex:none}.composer-actions{flex-direction:column;flex:none;gap:.35rem}.compact-action-btn{min-width:3.25rem;padding:.45rem .4rem;font-size:.8rem}}
