:root{--cspace-vh:100dvh;--cspace-vw:100vw;--tap:42px}
html,body{width:100%;max-width:100%;overflow:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overscroll-behavior:none}
.app-shell,.chat-view{height:var(--cspace-vh,100vh);min-height:0;max-height:var(--cspace-vh,100vh)}
.auth-view{height:var(--cspace-vh,100vh);min-height:0;overflow-y:auto;overflow-x:hidden;align-items:center;padding:calc(18px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) calc(18px + env(safe-area-inset-left))}
.auth-card{max-height:none;margin:auto}
button,input,textarea,select{max-width:100%}
button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:2px solid #555;outline-offset:2px}
.chat-view{width:100%;min-width:0}
.sidebar,.chat-pane,.conversation,.messages,.contacts{min-height:0}
.sidebar{padding-left:env(safe-area-inset-left)}
.sidebar-head{padding-right:16px}
.sidebar-foot{padding-bottom:calc(9px + env(safe-area-inset-bottom))}
.chat-head{gap:8px;padding-left:calc(10px + env(safe-area-inset-left));padding-right:calc(10px + env(safe-area-inset-right));min-width:0}
.chat-person{flex:1 1 auto;min-width:0;overflow:hidden}
.chat-person>div:last-child{min-width:0}
.chat-person strong{max-width:100%}
.chat-actions{flex:0 0 auto;min-width:0;max-width:58%;display:flex;align-items:center;gap:4px;white-space:nowrap}
.global-logout-btn{min-height:36px;border:1px solid #deded8;background:#fff;color:#333;border-radius:8px;padding:0 9px;display:inline-flex;align-items:center;gap:5px;font-weight:600;font-size:12px;flex:0 0 auto}
.global-logout-btn:hover{background:#f0f0eb}
.global-logout-btn:disabled{opacity:.55;cursor:default}
.global-master-btn{display:none!important;flex:0 0 auto}
.messages{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.bubble{min-width:0}
.bubble-text{overflow-wrap:anywhere}
.bubble-actions{align-items:center}
.message-row:focus-within .bubble-actions{display:inline-flex}
.attachment-card{min-width:0;max-width:100%}
.attachment-card>div:nth-child(2){min-width:0}
.attachment-name{max-width:min(250px,52vw)}
.composer{padding-left:calc(8px + env(safe-area-inset-left));padding-right:calc(8px + env(safe-area-inset-right));padding-bottom:calc(8px + env(safe-area-inset-bottom));min-width:0}
.composer textarea{min-width:0;width:100%;font-size:16px}
.composer-tools{flex:0 0 auto}
.send-btn{flex:0 0 auto}
.toast{max-width:calc(100vw - 28px);text-align:center;bottom:calc(18px + env(safe-area-inset-bottom))}
.network-status{position:fixed;z-index:3500;left:50%;top:calc(8px + env(safe-area-inset-top));transform:translateX(-50%);max-width:calc(100vw - 24px);padding:7px 10px;border-radius:8px;background:#8a2c25;color:#fff;font-size:11px;font-weight:650;box-shadow:0 4px 18px rgba(0,0,0,.16);text-align:center}
.network-status.hidden{display:none}
.cspace-admin-drawer,.cs-spaces-drawer{height:var(--cspace-vh,100vh);max-height:var(--cspace-vh,100vh)}
.admin-head,.cs-spaces-head{padding-top:env(safe-area-inset-top);padding-right:calc(14px + env(safe-area-inset-right));padding-left:calc(14px + env(safe-area-inset-left))}
.admin-body{padding-bottom:calc(14px + env(safe-area-inset-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.admin-card input,.admin-card textarea,.admin-card select{min-width:0}
.cs-spaces-body,.cs-room,.cs-room-messages,.cs-space-list{min-height:0}
.cs-space-list,.cs-room-messages{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.cs-room-compose{padding-left:calc(8px + env(safe-area-inset-left));padding-right:calc(8px + env(safe-area-inset-right));padding-bottom:calc(8px + env(safe-area-inset-bottom));min-width:0}
.cs-room-compose textarea{min-width:0;width:100%;font-size:16px}
.cs-room-bubble{min-width:0}
.cs-space-file{max-width:100%;overflow-wrap:anywhere}
.cs-mapbox iframe{max-height:36vh}
.chat-view.role-user #mobileBackBtn{display:none!important}
@media(max-width:760px){#mobileBackBtn{display:none!important}.chat-view.role-master.in-chat #mobileBackBtn{display:inline-flex!important;align-items:center;justify-content:center}:root{--tap:44px}.auth-view{align-items:flex-start;padding-top:calc(14px + env(safe-area-inset-top))}.auth-card{margin:auto 0;width:100%;padding:22px 18px}.panel input,.panel textarea,.panel select,.search-wrap input,.admin-card input,.admin-card textarea,.admin-card select{font-size:16px}.chat-head,.sidebar-head{height:60px;min-height:60px}.chat-view.role-master.in-chat .global-master-btn{display:inline-flex!important;align-items:center;justify-content:center}.chat-actions{max-width:62%;gap:2px}.global-logout-btn{width:40px;min-width:40px;height:40px;justify-content:center;padding:0;font-size:18px}.global-logout-label{display:none}.switch-row{min-width:34px;justify-content:center}.switch-row span{display:none}.messages{padding-bottom:8px}.composer{gap:5px}.tool-btn,.icon-btn{min-width:40px;min-height:40px}.send-btn{min-height:40px}.attachment-name{max-width:55vw}.cspace-admin-drawer,.cs-spaces-drawer{width:100%;border-left:0}.admin-primary,.admin-secondary,.admin-danger-lite{min-height:42px}}
@media(max-width:650px){.cs-spaces-body{grid-template-columns:1fr;grid-template-rows:minmax(86px,158px) minmax(0,1fr)}.cs-space-list{max-height:none}.cs-room-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cs-room-compose{gap:4px}.cs-room-compose button,.cs-space-tool{min-width:38px;padding:7px 8px}}
@media(max-width:420px){.chat-head{padding-left:calc(6px + env(safe-area-inset-left));padding-right:calc(6px + env(safe-area-inset-right));gap:4px}.chat-person{gap:7px}.avatar{width:34px;height:34px;flex-basis:34px;font-size:12px}.chat-actions{max-width:58%}.cs-spaces-btn{font-size:0;width:38px;min-width:38px;height:38px;padding:0}.cs-spaces-btn:after{content:'◫';font-size:17px}#eraseVanishBtn{font-size:0;width:36px;min-width:36px;height:36px;padding:0}#eraseVanishBtn:after{content:'⌫';font-size:16px}.tool-btn{width:36px;min-width:36px}.composer{padding-left:calc(5px + env(safe-area-inset-left));padding-right:calc(5px + env(safe-area-inset-right))}.send-btn{padding:0 9px;font-size:12px}.messages{padding-left:8px;padding-right:8px}.bubble{max-width:91%}.attachment-name{max-width:48vw}}
@media(max-width:350px){.chat-person strong{font-size:13px}#chatStatus{font-size:10px}.avatar{display:none}.chat-actions{max-width:64%}.tool-btn{width:34px;min-width:34px}.send-btn{padding:0 7px}}
@media(hover:none),(pointer:coarse){.contact{min-height:58px}.bubble-actions{display:inline-flex}.bubble-action{font-size:10px;padding:4px 5px;min-height:26px;border-radius:5px}.attachment-open{min-height:34px}.cs-space-item{min-height:48px}.cs-existing-space button{min-height:36px}}
@media(max-height:520px) and (orientation:landscape){.auth-view{align-items:flex-start;padding-top:calc(8px + env(safe-area-inset-top));padding-bottom:calc(8px + env(safe-area-inset-bottom))}.auth-card{padding-top:16px;padding-bottom:16px}.brand-mark{width:34px;height:34px;margin-bottom:8px}.auth-card h1{font-size:23px}.panel{margin-top:12px}.panel label{margin:8px 0}.chat-head,.sidebar-head,.admin-head{height:52px;min-height:52px}.messages{padding-top:8px;padding-bottom:6px}.composer{min-height:52px;padding-top:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom))}.contact{padding-top:8px;padding-bottom:8px}.cs-spaces-head{padding-top:6px;padding-bottom:6px}.cs-room-meta{padding-top:7px;padding-bottom:7px}.cs-room-compose{padding-top:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
