*{box-sizing:border-box}html,body,#root{width:100%;height:100%;min-height:100%;margin:0;overflow:hidden}html{--app-height:100dvh;min-height:-webkit-fill-available}body{color:#111827;overscroll-behavior:none;background:#eef3f7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;position:fixed;inset:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer;border:0;transition:background-color .16s,box-shadow .16s,color .16s,transform .12s}button:active:not(:disabled){transform:scale(.96)}button:disabled{cursor:not-allowed;opacity:.45}.auth-shell,.loading{height:var(--app-height);padding:max(22px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));justify-content:center;align-items:center;width:100vw;display:flex;overflow:hidden}.auth-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;max-width:420px;padding:28px;box-shadow:0 24px 70px #0f172a24}.brand{align-items:center;gap:14px;margin-bottom:14px;display:flex}.brand h1,.brand p,.chat-header h2,.chat-header p{margin:0}.brand h1{font-size:26px;line-height:1.1}.brand p,.chat-header p,.identity span{color:#6b7280;font-size:13px}.auth-meta{justify-content:space-between;align-items:center;gap:8px;margin-bottom:18px;display:flex}.version-badge{color:#475569;white-space:nowrap;background:#f1f5f9;border-radius:6px;padding:7px 8px;font-size:12px;line-height:1;display:inline-flex}.update-notice{color:#7a4b00;background:#fff4df;border:1px solid #f6cf87;border-radius:7px;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:8px 10px;font-size:13px;font-weight:700;display:inline-flex}.required-update{height:var(--app-height);padding:max(22px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));background:#eef3f7;justify-content:center;align-items:center;width:100vw;display:flex;overflow:hidden}.required-update section{text-align:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:420px;padding:28px;display:flex;box-shadow:0 24px 70px #0f172a24}.required-update h1,.required-update p{margin:0}.required-update h1{font-size:24px}.required-update p{color:#6b7280}.brand-mark,.avatar{color:#fff;background:#0f766e;border-radius:50%;flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.segmented{background:#f1f5f9;border-radius:8px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.segmented button{color:#64748b;background:0 0;border-radius:6px;padding:10px 12px}.segmented .active{color:#111827;background:#fff;box-shadow:0 1px 6px #0f172a1f}.form,.admin-form{gap:14px;margin-top:20px;display:grid}.form label{color:#44515b;gap:7px;font-size:13px;display:grid}input{color:#111827;background:#fff;border:1px solid #cad4dc;border-radius:7px;outline:0;width:100%;min-height:42px;padding:10px 12px}input:focus{border-color:#0f766e;box-shadow:0 0 0 3px #0f766e24}.primary,.notify,.composer button{color:#fff;background:#0f766e;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 14px;font-weight:700;display:inline-flex}.primary.compact{min-height:40px}.error{color:#b42318;margin:0;font-size:13px}.app-shell{height:var(--app-height);max-height:var(--app-height);max-width:100vw;min-height:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#f8fafc;grid-template-columns:340px minmax(0,1fr);width:100vw;display:grid;overflow:hidden}.sidebar{background:#fff;border-right:1px solid #e5e7eb;flex-direction:column;min-width:0;min-height:0;display:flex}.topbar,.chat-header,.modal-header{justify-content:space-between;align-items:center;display:flex}.topbar{background:#fff;border-bottom:1px solid #e6ebef;min-height:72px;padding:14px 16px}.identity{align-items:center;gap:10px;min-width:0;display:flex}.identity div{min-width:0;display:grid}.identity strong,.identity span,.chat-item span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.connection-status{color:#6b7280;align-items:center;gap:6px;min-width:0;font-size:12px;display:inline-flex}.connection-status span{border-radius:50%;flex:none;width:8px;height:8px}.connection-status.connecting{color:#8a5a00}.connection-status.connecting span{background:#f5b544}.connection-status.good{color:#087443}.connection-status.good span{background:#12b76a}.connection-status.slow{color:#8a5a00}.connection-status.slow span{background:#f5b544}.connection-status.bad,.connection-status.disconnected{color:#b42318}.connection-status.bad span,.connection-status.disconnected span{background:#f04438}.actions{gap:6px;display:flex}.actions button,.admin-row button,.modal-header button{color:#334155;background:#f1f5f9;border-radius:7px;justify-content:center;align-items:center;min-width:38px;height:38px;padding:0 10px;display:inline-flex}.notify{width:calc(100% - 32px);margin:14px 16px}.info-notify{width:100%;margin:0}.main-tabs{background:#f1f5f9;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:4px;margin:0 16px 12px;padding:4px;display:grid}.main-tabs button{color:#475569;background:0 0;border-radius:6px;min-height:36px;padding:8px 6px;font-size:13px;font-weight:700}.main-tabs .active{color:#111827;background:#fff;box-shadow:0 1px 6px #0f172a1f}.chat-list{gap:4px;min-height:0;padding:0 10px 12px;animation:.26s both panel-fade;display:grid;overflow:auto}.chat-item{color:#111827;text-align:left;background:0 0;border-radius:8px;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;min-height:58px;padding:8px;transition:background-color .16s,transform .12s;display:grid}.chat-item:active{transform:scale(.97)}.chat-summary{gap:3px;min-width:0;display:grid}.chat-summary strong,.chat-summary small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-summary small{color:#6b7280;font-size:12px;font-weight:400}.chat-item.active,.chat-item:hover{background:#eefcf9}.avatar.muted{color:#334155;background:#e2e8f0}.empty{color:#6b7280;margin:18px 8px}.sidebar-footer{border-top:1px solid #e6ebef;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;display:flex}.info-panel{flex-direction:column;gap:14px;min-height:0;padding:2px 16px 16px;animation:.26s both panel-fade;display:flex;overflow:auto}.info-update{align-items:center;min-height:34px;display:flex}.info-update .update-notice{width:100%}.info-update span{color:#475569;background:#f1f5f9;border-radius:7px;justify-content:center;align-items:center;gap:7px;width:100%;min-height:34px;padding:8px 10px;font-size:13px;display:inline-flex}.info-list{gap:8px;margin:0;display:grid}.info-list div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;gap:5px;padding:10px;display:grid}.info-list dt{color:#6b7280;font-size:12px}.info-list dd{color:#111827;overflow-wrap:anywhere;min-width:0;margin:0;font-size:13px}.chat{background:linear-gradient(#f8fafcf0,#f8fafcf0),repeating-linear-gradient(135deg,#e2e8f0 0 1px,#0000 1px 22px);grid-template-rows:72px minmax(0,1fr) auto;min-width:0;min-height:0;display:grid;overflow:hidden}.chat-header{background:#fffffff5;border-bottom:1px solid #e5e7eb;justify-content:flex-start;gap:12px;padding:14px 20px}.back-button{color:#334155;background:#f1f5f9;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:none}.chat-header h2{font-size:18px}.messages{align-content:end;gap:10px;padding:22px;display:grid;overflow:auto}.bubble{background:#fff;border:1px solid #e5e7eb;border-radius:8px;justify-self:start;max-width:min(680px,78%);padding:9px 11px 7px;animation:.32s cubic-bezier(.2,.8,.2,1) both message-enter;box-shadow:0 1px 2px #0f172a0f}.bubble.mine{background:#dcfce7;border-color:#bbf7d0;justify-self:end}.bubble p{overflow-wrap:anywhere;white-space:pre-wrap;margin:0}.message-meta{color:#64748b;justify-content:flex-end;align-items:center;gap:7px;min-height:16px;margin-top:4px;display:flex}.message-meta time{color:#64748b;font-size:11px}.message-status{flex:none;justify-content:center;align-items:center;gap:2px;min-width:14px;height:14px;display:inline-flex}.message-status i{border-radius:50%;width:6px;height:6px;display:block}.message-status.sent i{background:0 0;border:1px solid #7b8791}.message-status.delivered i{background:#7b8791}.message-status.read i{background:#2563eb}.message-status.sending{gap:2px;min-width:22px}.message-status.sending i{background:#94a3b8;border:0;width:4px;height:4px;animation:.9s ease-in-out infinite sending-dot}.message-status.sending i:nth-child(2){animation-delay:.12s}.message-status.sending i:nth-child(3){animation-delay:.24s}.message-status.failed{color:#fff;background:#f04438;border-radius:50%;width:15px;height:15px;padding:0;font-size:10px;font-weight:800;line-height:1}.composer{background:#fffffff5;border-top:1px solid #e5e7eb;grid-template-columns:minmax(0,1fr) 48px;gap:10px;padding:12px 16px;display:grid}.composer button{border-radius:50%;width:48px;height:48px;min-height:48px;padding:0}@keyframes message-enter{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes panel-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes sending-dot{0%,80%,to{opacity:.45;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@keyframes chat-slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.empty-state{color:#6b7280;flex-direction:column;grid-row:1/-1;justify-content:center;align-items:center;gap:8px;display:flex}.empty-state h2{color:#334155;margin:0;font-size:20px}.toast{color:#fff;z-index:20;background:#2b1b18;border-radius:7px;max-width:min(520px,100% - 24px);padding:12px 16px;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.modal-backdrop{inset:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);z-index:30;background:#10181f75;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed}.modal{background:#fff;border-radius:8px;width:100%;max-width:840px;max-height:min(780px,94vh);padding:18px;overflow:auto;box-shadow:0 28px 80px #00000047}.modal-header{border-bottom:1px solid #e3e9ee;padding-bottom:14px}.modal-header h2{margin:0;font-size:20px}.admin-form{grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) auto auto;align-items:center}.checkline{color:#44515b;white-space:nowrap;align-items:center;gap:8px;display:flex}.checkline input{width:18px;height:18px;min-height:18px}.admin-list{gap:8px;margin-top:16px;display:grid}.admin-row{border:1px solid #e5e7eb;border-radius:8px;grid-template-columns:auto minmax(140px,1fr) auto auto auto;align-items:center;gap:10px;padding:10px;display:grid}@media (width<=760px){.app-shell{grid-template-rows:1fr;grid-template-columns:1fr}.sidebar{border-right:0;height:100%;min-height:0}.app-shell:not(.chat-open) .chat,.app-shell.chat-open .sidebar{display:none}.app-shell.chat-open .chat{height:100%;animation:.28s cubic-bezier(.2,.8,.2,1) both chat-slide-in;display:grid}.chat{min-height:0}.back-button{display:inline-flex}.messages{padding:14px}.bubble{max-width:88%}.admin-form,.admin-row{grid-template-columns:1fr}.admin-row button{width:100%}}
