:root{--face: #d4d0c8;--navy: #0a246a;--title: linear-gradient(90deg, #0a246a, #a6caf0);--online: #22c55e;--away: #f59e0b;--dnd: #ef4444;--off: #9ca3af;--ffc: #38bdf8;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:12px Tahoma,Verdana,Segoe UI,sans-serif;background:#3a6ea5 url(/daisy.svg) 12px 12px no-repeat;background-size:72px;color:#111;-webkit-tap-highlight-color:transparent}.splash{padding:40px;color:#fff}.desktop{min-height:100%;position:relative;padding:12px}.win{background:var(--face);border:2px solid;border-color:#fff #404040 #404040 #fff;box-shadow:2px 2px #0004}.win.login{width:min(320px,92vw);margin:12vh auto 0}.win.clist{width:min(280px,96vw);height:min(640px,calc(100vh - 24px));display:flex;flex-direction:column;position:relative}.win.chat{position:absolute;width:360px;height:420px;display:flex;flex-direction:column}.title{background:var(--title);color:#fff;font-weight:700;padding:4px 6px;display:flex;align-items:center;gap:6px;cursor:default;-webkit-user-select:none;user-select:none}.title button{background:var(--face);border:1px solid #404040;min-width:18px;height:16px;font-size:12px;line-height:12px;padding:0 4px;cursor:pointer;color:#111}.sp{flex:1}.body{padding:12px;display:flex;flex-direction:column;gap:8px}.logo{width:72px;height:72px;margin:0 auto 8px;display:block}label{display:flex;flex-direction:column;gap:3px}input,select,button{font:inherit}input,select{border:2px inset #fff;background:#fff;padding:3px 5px}button{background:var(--face);border:2px outset #fff;padding:3px 10px;cursor:pointer}button:active{border-style:inset}.row{display:flex;gap:8px;flex-wrap:wrap}.chk{flex-direction:row;align-items:center;gap:6px}.err{color:#8b0000;white-space:pre-wrap}.hint{color:#333;margin:0}.toolbar{display:flex;gap:4px;padding:4px;border-bottom:1px solid #808080;flex-wrap:wrap}.me{display:flex;gap:8px;align-items:center;padding:6px 8px;border-bottom:1px solid #808080}.sub{color:#444}.tree{flex:1;overflow:auto;background:#fff;border:2px inset #fff;margin:4px;-webkit-overflow-scrolling:touch}.folder,.contact{display:flex;width:100%;text-align:left;border:0;background:transparent;padding:4px 8px;gap:6px;align-items:center}.contact:hover,.folder:hover{background:#0a246a;color:#fff}.contact small{display:block;color:inherit;opacity:.75;font-size:10px}.contact .badge{margin-left:auto;background:#c00;color:#fff;border-radius:9px;min-width:18px;height:18px;font-size:10px;line-height:18px;text-align:center;padding:0 5px;flex:0 0 auto}.st{width:9px;height:9px;border-radius:50%;background:var(--off);flex:0 0 9px}.st-online{background:var(--online)}.st-ffc{background:var(--ffc)}.st-away,.st-na{background:var(--away)}.st-occupied,.st-dnd{background:var(--dnd)}.st-invisible,.st-offline{background:var(--off)}.statusbar{display:flex;gap:4px;padding:4px;align-items:center;border-top:1px solid #808080}.statusbar input{flex:1;min-width:0}.conn{color:#333;font-size:10px;white-space:nowrap}.av{width:28px;height:28px;object-fit:cover;border:1px solid #404040}.av.sm{width:16px;height:16px}.av.ph{background:silver;display:inline-block}.msgs{flex:1;overflow:auto;background:#fff;border:2px inset #fff;margin:4px;padding:6px;display:flex;flex-direction:column;gap:6px;-webkit-overflow-scrolling:touch}.msgs .bubble{max-width:85%;align-self:flex-start;background:#ece9d8;border:1px solid #b0b0b0;padding:4px 7px;word-break:break-word}.msgs .own .bubble{align-self:flex-end;background:#dce8f8;border-color:#8aa3c4}.msgs .own{display:contents}.msgs>div{display:flex;flex-direction:column}.meta{display:block;color:#1e4a8c;font-size:10px;margin-bottom:2px}.omemo-badge{font-size:11px;opacity:.7;margin-left:4px}.omemo-badge.on{opacity:1}.omemo-badge.off{opacity:.85;filter:grayscale(.4)}.omemo-mark{font-size:10px}.omemo-mark.bad{opacity:.7}.omemo-mark.plain{opacity:.6}.typing{color:#666;font-style:italic;padding:0 4px 4px}.compose{display:flex;gap:4px;padding:4px;align-items:center}.compose input{flex:1;min-width:0}.members{padding:2px 6px;font-size:10px;color:#333;background:#ece9d8}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0005;display:flex;align-items:center;justify-content:center;z-index:50;padding:12px;padding-bottom:calc(12px + var(--safe-bottom))}.win.modal{width:min(320px,92vw);position:relative;max-height:90dvh;overflow:auto}.file{display:inline-flex;align-items:center}.back-btn,.mobile-only{display:none}@media(max-width:720px){body{background:#3a6ea5;overflow:hidden;overscroll-behavior:none}.desktop{padding:0;height:100dvh;height:100svh;overflow:hidden}.win.login{width:100%;min-height:100dvh;margin:0;border:0;box-shadow:none;border-radius:0;display:flex;flex-direction:column}.win.login .title{padding:calc(10px + var(--safe-top)) 12px 10px;font-size:15px}.win.login .body{flex:1;justify-content:center;padding:24px 20px calc(24px + var(--safe-bottom));gap:14px}.win.login .logo{width:96px;height:96px}.win.login input,.win.login button,.win.login select{font-size:16px;min-height:44px;padding:10px 12px}.win.login .row{flex-direction:column}.win.login .row button{width:100%}.win.clist{width:100%;height:100%;border:0;box-shadow:none}.hidden-mobile{display:none!important}.mobile-only{display:inline-flex}.win.clist .title,.win.chat .title{padding:calc(8px + var(--safe-top)) 10px 8px;min-height:44px;font-size:14px;gap:8px}.title button{min-width:36px;min-height:32px;font-size:14px}.back-btn{display:inline-flex;align-items:center;justify-content:center}.toolbar{padding:8px;gap:8px}.toolbar button,.toolbar .file{min-height:40px;padding:8px 12px;font-size:13px}.me{padding:10px 12px;gap:10px}.me .av{width:40px;height:40px}.me b{font-size:14px}.tree{margin:0;border:0;border-radius:0}.folder{padding:12px 14px;font-size:13px;font-weight:700;background:#ece9d8;border-bottom:1px solid #c0c0c0}.contact{padding:12px 14px;gap:10px;min-height:56px;border-bottom:1px solid #e4e4e4}.contact .av.sm{width:36px;height:36px;border-radius:2px}.contact span:last-of-type{flex:1;min-width:0;font-size:14px}.contact small{font-size:11px;margin-top:2px}.st{width:11px;height:11px;flex-basis:11px}.statusbar{flex-wrap:wrap;padding:8px 8px calc(8px + var(--safe-bottom));gap:6px}.statusbar select,.statusbar input{font-size:16px;min-height:40px}.statusbar select{flex:1 1 40%}.statusbar input{flex:1 1 100%}.win.chat.mobile-chat{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100dvh;height:100svh;border:0;box-shadow:none;z-index:20}.win.chat .msgs{margin:0;border:0;padding:10px 12px;gap:8px}.msgs .bubble{max-width:82%;padding:8px 10px;font-size:15px;line-height:1.35}.meta{font-size:11px;margin-bottom:4px}.compose{padding:8px 8px calc(8px + var(--safe-bottom));border-top:1px solid #808080;background:var(--face);gap:6px}.compose input{font-size:16px;min-height:44px;padding:10px 12px}.compose button,.compose .file{min-height:44px;min-width:44px;padding:8px 12px;font-size:14px;justify-content:center}.members{font-size:12px;padding:6px 10px}.win.modal{width:100%;max-width:100%;margin-top:auto;border-radius:0}.modal-back{align-items:flex-end;padding:0}.win.modal .title{padding:12px;min-height:48px}.win.modal .body{padding:16px;gap:12px;padding-bottom:calc(16px + var(--safe-bottom))}.win.modal input,.win.modal button{font-size:16px;min-height:44px}}
