:root{color-scheme:light;--bg: #f3eee4;--ink: #1a2421;--muted: #5c6b66;--paper: #fffaf3;--line: #d9cfc0;--teal: #1b3a32;--teal-2: #2f6f5e;--accent: #c45c26;--danger: #9b2c2c;font-family:Segoe UI,Iosevka,Helvetica Neue,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--ink)}button,input,textarea{font:inherit}.login{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;background:#2563eb}.login-circle{width:min(36rem,calc(100vw - 32px),calc(100dvh - 32px));aspect-ratio:1;border-radius:50%;background:#dc2626;display:flex;align-items:center;justify-content:center;overflow:hidden;container-type:size}.login-circle .card{width:min(22rem,64%);max-height:none;overflow:visible;padding:16px 14px}.login-circle h1{font-size:clamp(1.15rem,2.4vw,1.55rem);margin-bottom:4px}.login-circle .brand{margin-bottom:4px}.login-circle .sub{margin-bottom:10px;font-size:.88rem;line-height:1.3}.login-circle label{margin:8px 0 4px}.login-circle .primary{margin-top:12px}@container (max-width: 520px){.login-circle .card{width:64%;padding:10px 12px}.login-circle .brand{font-size:11px;margin-bottom:2px}.login-circle h1{font-size:1.05rem}.login-circle .sub{font-size:.75rem;line-height:1.25;margin-bottom:6px}.login-circle label{margin:4px 0 2px;font-size:11px}.login-circle input{padding:6px 8px}.login-circle .primary{margin-top:8px;padding:8px 10px}.login-circle .error{margin-top:6px;margin-bottom:0;font-size:12px}}@container (max-width: 390px){.login-circle .card{width:70%;padding:6px 8px}.login-circle .brand{font-size:10px;margin-bottom:0}.login-circle h1{font-size:.9rem}.login-circle .sub{font-size:.65rem;margin-bottom:2px}.login-circle label{margin:2px 0 1px;font-size:10px}.login-circle input{padding:4px 6px}.login-circle .primary{margin-top:4px;padding:6px 8px}.login-circle .error{margin-top:4px;font-size:11px}.login-circle .password-toggle{width:40px}}@media(max-width:720px),(max-height:520px){.login{padding:8px;justify-content:flex-start;overflow:auto}.login-circle{width:min(36rem,calc(100vw - 16px),calc(100dvh - 140px))}.login-qr img{width:140px;height:140px}}.login card,.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:28px;width:min(420px,100%)}.brand{letter-spacing:.18em;font-size:13px;color:var(--teal-2);margin:0 0 8px}h1{margin:0 0 8px;font-size:28px}.sub{color:var(--muted);margin:0 0 24px;line-height:1.45}label{display:block;font-size:13px;margin:12px 0 6px;color:var(--muted)}input,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px}.primary,.ghost,.danger{border:0;border-radius:10px;padding:10px 14px;cursor:pointer}.primary{background:var(--teal);color:#fff;width:100%;margin-top:18px}.ghost{background:transparent;color:var(--teal);border:1px solid var(--line)}.danger{background:transparent;color:var(--danger)}.error{color:var(--danger);margin-top:12px}.remember-opt{display:flex;align-items:flex-start;gap:8px;margin:10px 0 0;color:var(--ink);line-height:1.3;cursor:pointer}.remember-opt input{width:auto;flex-shrink:0;margin:3px 0 0;padding:0;accent-color:var(--teal)}.login-circle .remember-opt{font-size:13px}.login-circle .remember-opt input{width:auto;padding:0}.password-wrap{display:flex;gap:6px;align-items:stretch}.password-wrap input{flex:1;min-width:0}.password-toggle{flex-shrink:0;width:44px;min-height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);display:grid;place-items:center;padding:0;margin:0;cursor:pointer}.password-toggle svg{width:22px;height:22px;display:block}.login-qr{display:flex;flex-direction:column;align-items:center;gap:8px;color:#e8eefc;max-width:16rem;text-align:center}.login-qr img{width:180px;height:180px;background:#fff;border-radius:12px;padding:8px}.login-qr p{margin:0;font-size:13px;line-height:1.35;opacity:.9}.login-boot{margin:0;color:#e8eefc;font-size:16px}.shell{height:100%;min-height:0;display:grid;grid-template-columns:280px minmax(0,1fr);overflow:hidden}.side{background:var(--teal);color:#e7efe9;padding:20px 16px;display:flex;flex-direction:column;gap:12px;min-height:0}.side-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.side-top h2{margin:0;font-size:18px;letter-spacing:.08em}.shell.operator .people{flex:1 1 auto;min-height:8rem}.shell.operator .admin{margin-top:8px}.side .who{opacity:.8;font-size:13px}.people{list-style:none;margin:8px 0 0;padding:0;overflow:auto;flex:1;min-height:0}.people li{margin:0 0 8px}.people label{color:inherit;display:flex;gap:8px;align-items:center;cursor:pointer;margin:0}.people input{width:auto;flex-shrink:0}.side-all{color:#fff;border-color:#ffffff40;width:auto;align-self:flex-start}.people-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.side .ghost.compact{margin-top:0;padding:6px 10px;font-size:12px;color:#fff;border-color:#ffffff40;width:auto}.member-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.member-row .danger{color:#ffc9c9;padding:4px 8px;font-size:12px;flex-shrink:0}.composer{display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden}.top{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid var(--line);background:var(--paper)}.top .primary.compact-link{margin:0;flex-shrink:0}.feed{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:12px}.bubble{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:12px 14px;max-width:min(640px,92%)}.bubble.mine{align-self:flex-end;background:#e7f0ea}.meta{font-size:12px;color:var(--muted);margin-bottom:6px}.sendbar{display:flex;flex-direction:column;gap:8px;padding:16px;border-top:1px solid var(--line);background:var(--paper)}.sendbar-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:end}.sendbar textarea{min-height:56px;resize:vertical}.photo-draft{display:flex;align-items:center;gap:12px}.photo-draft img{width:72px;height:72px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.photo-block{display:flex;flex-direction:column;gap:8px}.bubble-photo{max-width:100%;max-height:360px;border-radius:12px;display:block;object-fit:contain;background:#eee}.photo-gone{margin:0;color:var(--muted);font-style:italic}.compact-link{display:inline-block;width:auto;text-decoration:none;padding:6px 10px;font-size:13px}.admin{margin-top:auto;padding-top:12px;border-top:1px solid rgba(255,255,255,.15)}.admin input{color:var(--ink)}.hint{font-size:12px;opacity:.75}.operator-note{max-width:36rem;line-height:1.5;color:var(--muted);margin:8px 0 0}@media(max-width:800px){body:has(.shell){overflow:hidden}.shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:100dvh}.side{max-height:none;overflow:visible;padding:10px 12px 8px;padding-top:max(10px,env(safe-area-inset-top));gap:8px}.side .who .hint{display:none}.people{flex:none;display:flex;flex-wrap:wrap;gap:6px 12px;max-height:4.75rem;margin:0;overflow:auto}.people li{margin:0}.composer{height:auto;min-height:0}.top{padding:10px 12px;gap:8px}.top .hint{display:none}.top .primary.compact-link{font-size:13px;padding:8px 10px}.feed{padding:12px}.sendbar{padding:10px 12px max(10px,env(safe-area-inset-bottom))}.sendbar textarea{min-height:44px}.shell.operator{grid-template-rows:minmax(0,1fr)}.shell.operator .side{max-height:none;height:100%;overflow:auto;padding-bottom:max(20px,env(safe-area-inset-bottom))}.shell.operator .people{display:block;flex:1 1 auto;max-height:none}.shell.operator .composer{display:none}}
