:root{--bg:#f4f8fb;--card:#fff;--text:#17212b;--muted:#748394;--line:#dfe8f1;--p:#2aabee;--p2:#229ed9;--p3:rgba(42,171,238,.10);--ok:#22c55e;--bad:#ef4444;--warn:#f59e0b;--r:22px;--shadow:0 18px 52px rgba(34,158,217,.13);--top:64px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-weight:300;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%}body{background:linear-gradient(145deg,#f8fbff 0%,#edf6fc 60%,#e6f3fb 100%)}button,input,textarea,select{font:inherit}button{border:0;border-radius:16px;padding:12px 16px;background:#edf6fc;color:var(--text);cursor:pointer;touch-action:manipulation;user-select:none}button:active{transform:scale(.98)}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:17px;padding:13px 15px;background:#fff;color:var(--text);outline:none;margin:6px 0;font-size:16px}textarea{min-height:110px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--p);box-shadow:0 0 0 4px rgba(42,171,238,.12)}b,h1,h2,h3{font-weight:500}.hidden,.admin-only{display:none!important}body.admin .admin-only{display:flex!important}.primary{background:linear-gradient(135deg,var(--p),var(--p2));color:#fff}.small{padding:8px 12px;font-size:13px}.ghost{width:44px;height:44px;padding:0;display:inline-grid;place-items:center}.danger{background:#fee2e2!important;color:#b91c1c!important}.err{color:var(--bad);min-height:20px}.card{background:rgba(255,255,255,.92);border:1px solid rgba(203,223,238,.9);border-radius:var(--r);box-shadow:var(--shadow)}.auth{min-height:100dvh;display:grid;place-items:center;padding:18px}.auth-card{width:min(420px,100%);padding:24px}.brand{display:flex;gap:14px;align-items:center;margin-bottom:22px}.brand h1{margin:0;font-size:32px;letter-spacing:-.04em}.brand p{margin:4px 0 0;color:var(--muted)}.mark,.avatar{display:grid;place-items:center;width:50px;height:50px;border-radius:18px;background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;font-weight:500;overflow:hidden}.mark.noFire{background:#fff;border:1px solid #fecaca}.mark.noFire svg{display:block;width:42px;height:42px}.avatarBox{overflow:hidden;position:relative}.avatarInner{width:100%;height:100%;object-fit:cover;display:block}.installWide{width:100%;margin-top:10px;background:#eaf6ff;color:#168acd}.installHint,.hint,small,p,label{color:var(--muted)}.app{display:grid;grid-template-columns:282px minmax(0,1fr);gap:14px;padding:14px;min-height:100dvh}.nav{height:calc(100dvh - 28px);position:sticky;top:14px;padding:14px;background:#fff}.me{display:flex;align-items:center;gap:10px;padding:8px;margin-bottom:12px}.me small{display:block}.nav button{width:100%;display:flex;align-items:center;gap:10px;margin:5px 0;text-align:left;background:transparent;color:#3f5265;min-height:46px}.nav button.active{background:var(--p3);color:#168acd}.nav i,.badge{margin-left:auto;min-width:22px;height:22px;border-radius:11px;background:var(--bad);color:#fff;font-style:normal;font-size:12px;text-align:center;line-height:22px;padding:0 6px}.exit{color:#e35050!important}.top{height:62px;margin-bottom:14px;padding:0 12px;display:flex;align-items:center;gap:10px;position:sticky;top:14px;z-index:20;background:#fff}.top h2{margin:0;flex:1;font-size:22px}.view{display:none}.view.active{display:block}.chatWrap{display:grid;grid-template-columns:325px minmax(0,1fr);gap:14px;height:calc(100dvh - 104px)}.contacts,.room,.panel{padding:14px}.contacts,.messages{overflow:auto;-webkit-overflow-scrolling:touch}.contact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%;text-align:left;background:#fff;border:1px solid var(--line);margin-bottom:8px;border-radius:18px}.contact small{display:block;margin-top:3px}.contact.active{border-color:rgba(42,171,238,.65);box-shadow:0 0 0 3px rgba(42,171,238,.10)}.room{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;min-width:0}.roomHead{padding-bottom:12px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.messages{padding:14px 2px;display:flex;flex-direction:column;gap:9px}.msg{max-width:76%;align-self:flex-start;background:#fff;border:1px solid var(--line);border-radius:22px 22px 22px 8px;padding:10px 12px;word-break:break-word;position:relative}.msg.mine{align-self:flex-end;background:#dff4ff;border-color:#bee8fb;border-radius:22px 22px 8px 22px}.msg .del{position:absolute;right:6px;top:6px;width:30px;height:30px;border-radius:50%;padding:0;background:#fee2e2;color:#ef4444}.media{display:block;margin-top:8px;max-width:280px;border-radius:14px;border:1px solid var(--line);overflow:hidden}.media img,.media video{display:block;max-width:100%;border-radius:14px}.file{display:inline-flex;gap:6px;align-items:center;margin-top:8px;color:#168acd;text-decoration:none}.send{display:grid;grid-template-columns:44px 44px minmax(0,1fr) 52px;gap:7px;border-top:1px solid var(--line);padding-top:10px}.send input{margin:0}.emojis{display:flex;gap:6px;flex-wrap:wrap;padding-top:8px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.line{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.item,.task,.notice,.doc,.permBox,.userRow{border:1px solid var(--line);border-radius:18px;padding:12px;margin:8px 0;background:#fff}.item,.notice,.doc{display:flex;justify-content:space-between;gap:10px;align-items:center}.task{display:block}.taskHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.taskHead b{overflow-wrap:anywhere}.taskActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.taskDoneBtn{background:#dcfce7;color:#166534}.taskDelete{background:#fee2e2;color:#b91c1c}.doc{color:var(--text);text-decoration:none}.docActions{display:flex;gap:8px;align-items:center}.notice.new{border-color:var(--p)}.scrim{position:fixed;inset:0;background:rgba(15,23,42,.34);z-index:80}.scrim.hidden{display:none!important}.modal{position:fixed;inset:0;z-index:150;background:rgba(15,23,42,.38);display:grid;place-items:center;padding:18px}.qr,.docModal,.themeModal,.installModal{width:min(720px,100%);padding:20px;position:relative}.qr{text-align:center;max-width:430px}.qr img{width:260px;height:260px;max-width:100%;border-radius:18px;background:#fff;padding:10px}.x{position:absolute;right:12px;top:12px;width:40px;height:40px;padding:0;border-radius:50%}.profilePreview{display:flex;align-items:center;gap:12px;margin:10px 0}.userRow{display:grid;grid-template-columns:46px minmax(0,1fr) auto auto auto auto auto;gap:8px;align-items:start}.userControls{display:grid;grid-template-columns:1fr 1fr;gap:8px}.permBox{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));font-size:13px}.permBox label{display:flex;align-items:center;gap:6px}.permBox input{width:auto;margin:0}.toastBox{position:fixed;right:18px;bottom:18px;z-index:200;display:grid;gap:10px}.toast{width:min(360px,calc(100vw - 36px));background:#fff;border:1px solid #cfe4f2;border-radius:18px;padding:12px 14px;box-shadow:0 18px 50px rgba(42,171,238,.18)}.chatSelect{margin-top:6px;border:1px solid var(--line);background:#f7fbfe;border-radius:12px;padding:8px 10px;font-size:13px;color:#334155;max-width:260px}.paletteGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.mediaViewer{position:fixed;inset:0;z-index:180;background:rgba(0,0,0,.86);display:grid;place-items:center;padding:16px}.mediaViewer img,.mediaViewer video{max-width:96vw;max-height:82vh;border-radius:14px}.mediaClose{position:absolute;right:14px;top:14px;background:#fff}.mediaTitle{position:absolute;left:14px;top:18px;color:#fff}
@media(min-width:901px){#menu,#back{display:none!important}.chatSelect{display:none}}
@media(max-width:900px){:root{--top:62px}html,body{width:100%;height:100%;overflow:hidden;background:#f4f8fb!important}body{position:fixed;inset:0}.auth{position:fixed;inset:0;display:block;overflow:auto;-webkit-overflow-scrolling:touch;padding:14px;padding-top:max(14px,env(safe-area-inset-top));background:#f4f8fb}.auth-card{margin:0 auto;padding:18px;box-shadow:0 10px 26px rgba(15,23,42,.08)}.brand h1{font-size:29px}.brand p{font-size:13px}.app:not(.hidden){position:fixed;inset:0;width:100vw;height:100dvh;min-height:100dvh;display:block;padding:0;overflow:hidden;background:#f4f8fb}.app main{position:absolute;inset:0;display:grid;grid-template-rows:var(--top) minmax(0,1fr);height:100%;overflow:hidden}.top{grid-row:1;position:relative;top:0;height:var(--top);min-height:var(--top);margin:0;padding:calc(6px + env(safe-area-inset-top)) 10px 7px;border-radius:0 0 18px 18px;z-index:60;box-shadow:0 3px 12px rgba(15,23,42,.08)}#menu{display:inline-grid!important;visibility:visible!important;opacity:1!important;place-items:center;width:48px;min-width:48px;height:48px;background:#eef7fd;border:1px solid rgba(42,171,238,.22)}.top h2{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.top #install{font-size:0;width:44px;padding:0}.top #install:before{content:'📲';font-size:18px}.view{grid-row:2;display:none!important;height:100%;min-height:0;overflow:hidden;padding:0}.view.active{display:block!important;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px 8px calc(12px + env(safe-area-inset-bottom));background:#f4f8fb}.grid{display:block}.grid>.card{margin-bottom:10px}.panel{padding:12px;margin:0 0 10px;background:#fff;box-shadow:none}.line{display:grid;grid-template-columns:1fr;gap:8px;align-items:stretch}.chatWrap{height:100%;display:block;overflow:hidden}#chatView.view.active{overflow:hidden;padding:8px}.contacts{height:100%;overflow-y:auto;padding:10px;border-radius:18px;background:#fff}.room{height:100%;display:none;grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden;padding:0;border-radius:18px;background:#fff}body.chat-open .contacts{display:none}body.chat-open .room{display:grid}.roomHead{padding:10px;border-bottom:1px solid var(--line);display:block}.chatSelect{display:block;width:100%;max-width:none;height:42px}.messages{min-height:0;overflow-y:auto;padding:10px;gap:8px}.msg{max-width:90%;box-shadow:none}.media{max-width:min(280px,78vw)}.media img,.media video{max-height:44vh}.send{grid-template-columns:44px 44px minmax(0,1fr) 48px;gap:6px;padding:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom));background:#fff}.send input{min-width:0;margin:0}.contact{min-height:62px;padding:12px;margin-bottom:8px}.nav{position:fixed!important;left:0;top:0;bottom:0;width:min(86vw,330px);height:100dvh;z-index:100;transform:translate3d(-105%,0,0);transition:transform .14s ease-out;background:#fff;border-radius:0 22px 22px 0;box-shadow:18px 0 45px rgba(15,23,42,.22);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:max(16px,env(safe-area-inset-top)) 12px calc(18px + env(safe-area-inset-bottom));pointer-events:auto}.nav.open,body.menu-open .nav{transform:translate3d(0,0,0)}.nav button{min-height:52px;border-radius:16px;margin:4px 0;padding:12px 14px}.scrim{z-index:90}.task{padding:14px;margin-bottom:10px;box-shadow:none}.taskActions{display:grid;grid-template-columns:1fr;gap:8px}.taskDoneBtn{width:100%;min-height:50px}.taskDelete{min-height:42px}.userRow{grid-template-columns:44px minmax(0,1fr);gap:8px}.userRow select,.userRow button{width:100%}.permBox{grid-template-columns:1fr}.modal{padding:0;place-items:end center}.qr,.docModal,.themeModal,.installModal{width:100%;max-height:92dvh;overflow:auto;border-radius:24px 24px 0 0;background:#fff}.toastBox{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom))}.toast{width:100%}button,.primary{min-height:44px}*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.nav{transition:transform .14s ease-out!important}}
@media(max-width:420px){:root{--top:60px}.ghost{width:42px;height:42px}.send{grid-template-columns:42px 42px minmax(0,1fr) 46px}.brand h1{font-size:27px}.msg{max-width:92%}}
@media(display-mode:standalone){#install{display:none!important}}


/* TENROS mobile safe navigation v9: stable app shell */
@media(max-width:900px){
  html,body{width:100%;height:100%;min-height:100%;overflow:hidden!important;background:#f4f8fb!important;overscroll-behavior:none;}
  body{position:relative!important;inset:auto!important;touch-action:auto!important;}
  .app:not(.hidden){position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;display:block!important;overflow:hidden!important;background:#f4f8fb!important;}
  .app main{position:absolute!important;inset:0!important;display:grid!important;grid-template-rows:64px minmax(0,1fr) 66px!important;height:100%!important;overflow:hidden!important;}
  .top{grid-row:1!important;position:relative!important;z-index:2100!important;height:64px!important;min-height:64px!important;border-radius:0 0 18px 18px!important;}
  #menu{display:inline-grid!important;visibility:visible!important;opacity:1!important;position:relative!important;z-index:2300!important;pointer-events:auto!important;touch-action:manipulation!important;}
  .view{grid-row:2!important;min-height:0!important;display:none!important;overflow:hidden!important;}
  .view.active{display:block!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;padding:8px 8px 12px!important;}
  #chatView.view.active{overflow:hidden!important;}
  .chatWrap{height:100%!important;display:block!important;overflow:hidden!important;}
  .contacts{height:100%!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;}
  .room{height:100%!important;overflow:hidden!important;}
  .messages{overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;}
  .nav{position:fixed!important;left:0!important;top:0!important;bottom:0!important;width:min(88vw,340px)!important;height:100dvh!important;z-index:5000!important;background:#fff!important;color:#17212b!important;border-radius:0 24px 24px 0!important;box-shadow:18px 0 55px rgba(15,23,42,.25)!important;transform:translateX(-110%)!important;transition:transform .18s ease-out!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;padding:calc(16px + env(safe-area-inset-top)) 12px calc(86px + env(safe-area-inset-bottom))!important;pointer-events:auto!important;touch-action:auto!important;}
  body.menu-open .nav,.nav.open{transform:translateX(0)!important;}
  .nav button{display:flex!important;align-items:center!important;width:100%!important;min-height:54px!important;border-radius:16px!important;margin:5px 0!important;background:#f7fbfe!important;color:#26384a!important;pointer-events:auto!important;touch-action:manipulation!important;position:relative!important;z-index:5100!important;}
  .nav button.active{background:rgba(42,171,238,.14)!important;color:#168acd!important;}
  .nav .exit{background:#fff1f2!important;color:#e11d48!important;}
  .scrim{position:fixed!important;inset:0!important;z-index:4000!important;background:rgba(15,23,42,.34)!important;pointer-events:none!important;}
  body.menu-open .scrim:not(.hidden){pointer-events:auto!important;}
  body.menu-open #nav{pointer-events:auto!important;}
  .mobileTabs{position:fixed;left:0;right:0;bottom:0;z-index:2200;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid #dfe8f1;box-shadow:0 -8px 24px rgba(15,23,42,.08)}
  .mobileTabs button{min-height:50px;padding:4px 2px;border-radius:14px;background:#f7fbfe;color:#334155;font-size:11px;display:grid;place-items:center;gap:1px;touch-action:manipulation;}
  .mobileTabs button b{font-size:18px;font-weight:400;line-height:18px}.mobileTabs button.active{background:var(--p3);color:#168acd}.mobileTabs .adminTab{display:none}body.admin .mobileTabs .adminTab{display:grid}.mobileTabs .logoutTab{color:#e11d48;background:#fff1f2}
  .modal{z-index:7000!important}.toastBox{z-index:8000!important}
}
@media(min-width:901px){.mobileTabs{display:none!important}}
