@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--ink:#162b43;--muted:#5a6b7d;--line:#e1e7ee;--bg:#f2f5f9;--card:#fff;--brand:#0a84f0;--brand-soft:#e2f0fe;--accent:#0bb3e3;--accent-soft:#ddf5fc;--ok:#2e8b57;--danger:#c0392b}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:14px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--brand);text-decoration:none}h1{margin:0 0 8px;font-size:26px}h2{margin:0 0 4px;font-size:18px}h3{margin:0 0 8px;font-size:15px}.topbar{z-index:20;background:var(--ink);color:#fff;align-items:center;gap:16px;padding:10px 22px;display:flex;position:sticky;top:0}.logo{align-items:center;gap:8px;display:flex}.logo img.icon{height:32px}.logo img.word{height:22px}.mainnav{flex:1;gap:2px;display:flex}.mainnav a{color:#c6cde6;white-space:nowrap;border-radius:8px;padding:8px 12px;font-weight:600}.mainnav a.active,.mainnav a:hover{color:#fff;background:#ffffff1a}.userbox{color:#c6cde6;align-items:center;gap:10px;font-size:13px;display:flex}.wrap{max-width:1000px;margin:22px auto;padding:0 18px 40px}.narrow{max-width:460px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;margin-bottom:14px;padding:18px}.muted{color:var(--muted)}.small{font-size:12px}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.wraprow{flex-wrap:wrap}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.field{margin-bottom:12px}label.lbl{color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:600;display:block}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{background:#fff;border:1px solid #d5dcda;border-radius:9px;width:100%;padding:9px 11px}textarea{resize:vertical;min-height:80px}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand-soft);border-color:var(--brand)}.btn{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-weight:700;display:inline-flex}.btn:hover{filter:brightness(1.07)}.btn:disabled{opacity:.55;cursor:default}.btn.ghost{color:var(--brand);border:1.5px solid var(--brand);background:#fff}.btn.light{color:#fff;background:#ffffff1f}.btn.sm{padding:5px 11px;font-size:12px}.btn.block{width:100%}.link{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:4px 8px;font-weight:600}.link:hover{color:var(--ink);background:#eef1f5}.chip{background:var(--brand-soft);color:var(--brand);border-radius:999px;align-items:center;gap:4px;margin:2px 4px 2px 0;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.chip.alt{color:#44525a;background:#eef0f3}.chip.ok{color:var(--ok);background:#e4f4ea}.chip.acc{background:var(--accent-soft);color:#0678a0}.chip.warn{color:var(--danger);background:#fdecea}.chip button{cursor:pointer;color:inherit;background:0 0;border:0;padding:0 0 0 2px;font-weight:800}.tog{cursor:pointer;border:1px solid var(--line);color:#44525a;background:#fff}.tog.on{background:var(--brand);border-color:var(--brand);color:#fff}.av{color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:44px;height:44px;font-weight:800;display:flex}.av.lg{width:72px;height:72px;font-size:24px}.section{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.listrow{border-top:1px solid var(--line);gap:12px;padding:12px 0;display:flex}.listrow:first-child{border-top:0}.err{color:var(--danger);margin-top:6px;font-size:13px;font-weight:600}.notice{background:var(--brand-soft);color:var(--ink);border-radius:10px;padding:12px 14px;font-size:13px}.notice.ok{background:#e4f4ea}.notice.bad{background:#fdecea}.empty{text-align:center;color:var(--muted);padding:28px}.drop{text-align:center;cursor:pointer;color:var(--muted);border:2px dashed #c9d6e3;border-radius:10px;padding:18px;font-size:13px;font-weight:600;display:block}.drop:hover{border-color:var(--brand);color:var(--brand)}.drop.ok{border-color:var(--ok);color:var(--ok);background:#eef9f2}.switch{cursor:pointer;align-items:center;gap:8px;font-weight:600;display:inline-flex}.switch input{width:18px;height:18px;accent-color:var(--ok)}.lic{flex-wrap:wrap;gap:4px 16px;display:flex}.lic label{align-items:center;gap:6px;font-size:13px;display:flex}.banner{background:linear-gradient(110deg,#0a84f0,#0ac5ea);border-radius:14px 14px 0 0;height:70px;margin:-18px -18px 0}.hero{background:var(--ink);color:#fff;text-align:center;padding:56px 22px 64px}.hero h1{max-width:720px;margin:0 auto 12px;font-size:34px}.hero p{color:#c6cde6;max-width:600px;margin:0 auto 26px;font-size:16px}.roles{grid-template-columns:repeat(3,1fr);gap:14px;max-width:1000px;margin:-30px auto 0;padding:0 18px;display:grid}.rolecard{text-align:left;cursor:pointer;border:2px solid var(--line)}.rolecard.on{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.toast{background:var(--ink);color:#fff;z-index:60;border-radius:10px;padding:11px 18px;font-weight:600;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.bottomnav{display:none}@media (width<=760px){.topbar{gap:8px;padding:10px 12px}.logo img.icon{height:28px}.logo img.word{height:17px}.mainnav,.userbox .name{display:none}.bottomnav{z-index:30;background:var(--ink);padding:6px 4px calc(6px + env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:0;right:0;overflow-x:auto;box-shadow:0 -4px 16px #00000026}.bottomnav a{text-align:center;color:#c6cde6;white-space:nowrap;border-radius:8px;flex:1 0 auto;padding:9px 10px;font-size:12px;font-weight:600}.bottomnav a.active{color:#fff;background:#ffffff1f}body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.wrap{margin:12px auto;padding:0 10px 30px}.card{padding:14px}.banner{margin:-14px -14px 0}.grid2,.grid3,.roles{grid-template-columns:1fr}.hero h1{font-size:26px}}.note{background:#fff7e6;border:1px solid #f5dfb0;border-radius:10px;margin-top:10px;padding:10px 12px}.tiny{font-size:11px}.ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.badge{color:#fff;background:#e5484d;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:5px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.feedgrid{grid-template-columns:260px 1fr;align-items:start;gap:16px;display:grid}.feedside{position:sticky;top:76px}.card.mini{padding:14px}.banner.sm{border-radius:14px 14px 0 0;height:44px;margin:-14px -14px 0}.statrow{border-top:1px solid var(--line);justify-content:space-between;margin-top:10px;padding:8px 0;font-size:13px;display:flex}.bignum{color:var(--brand);margin-top:6px;font-size:30px;font-weight:800;line-height:1.1}.av.anon{color:#fff;background:#c5ced8}.composer{resize:vertical;flex:1;min-height:70px}.imgprev{margin-top:10px}.imgprev img{border-radius:10px;max-width:100%;max-height:260px;margin-bottom:4px;display:block}.tabs{gap:6px;margin-bottom:12px;display:flex}.tabs button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;padding:7px 14px;font-weight:700}.tabs button.on{background:var(--ink);border-color:var(--ink);color:#fff}.post .postbody{white-space:pre-wrap;word-wrap:break-word;margin-top:10px}.postimg{object-fit:cover;width:calc(100% + 36px);max-height:520px;margin:12px -18px 0;display:block}.postcounts{gap:12px;margin-top:10px;display:flex}.postactions{border-top:1px solid var(--line);gap:4px;margin-top:8px;padding-top:6px;display:flex}.postactions button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;padding:8px;font-weight:700}.postactions button:hover{background:#eef1f5}.postactions button.on{color:var(--brand)}.comments{margin-top:10px}.comments input{flex:1}.comment{gap:8px;margin-top:10px;display:flex}.comment .bubble{background:#f2f5f9;border-radius:10px;flex:1;min-width:0;padding:8px 10px}.radios{gap:8px;display:grid}.radios label{border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.radios label:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}.radios input{accent-color:var(--brand);width:auto;margin-top:3px}.radios span span{display:block}.inbox{grid-template-columns:300px 1fr;align-items:start;gap:14px;display:grid}.convlist{max-height:calc(100vh - 110px);padding:12px;overflow-y:auto}.conv{color:var(--ink);border-radius:10px;align-items:center;gap:10px;padding:10px 8px;display:flex}.conv:hover{background:#f2f5f9}.conv.on{background:var(--brand-soft)}.conv.unread .ellipsis{color:var(--ink);font-weight:700}.thread{flex-direction:column;height:calc(100vh - 110px);padding:0;display:flex;overflow:hidden}.thread-empty{justify-content:center;align-items:center;min-height:300px;display:flex}.threadhead{border-bottom:1px solid var(--line);padding:12px 16px}.backbtn{display:none}.msgs{background:#fafbfd;flex-direction:column;flex:1;gap:8px;padding:16px;display:flex;overflow-y:auto}.msg{align-self:flex-start;max-width:75%}.msg.me{text-align:right;align-self:flex-end}.msg .bub{text-align:left;border:1px solid var(--line);white-space:pre-wrap;word-wrap:break-word;background:#fff;border-radius:14px 14px 14px 4px;padding:8px 12px;display:inline-block}.msg.me .bub{background:var(--brand);border-color:var(--brand);color:#fff;border-radius:14px 14px 4px}.msgbox{border-top:1px solid var(--line);align-items:flex-end;padding:10px 12px}.msgbox textarea{resize:none;flex:1;min-height:42px;max-height:140px}.thread .note{margin:10px 12px}@media (width<=760px){.feedgrid{grid-template-columns:1fr}.feedside{position:static}.inbox{grid-template-columns:1fr}.inbox.has-thread .convlist,.inbox:not(.has-thread) .thread-empty{display:none}.backbtn{display:inline-block}.thread,.convlist{height:calc(100vh - 150px);max-height:none}.msg{max-width:85%}.postimg{width:calc(100% + 28px);margin:12px -14px 0}}.card .btn.light,.wrap .btn.light{color:var(--ink);background:#eef1f5}.rolecard.off,.chip.tog.off{opacity:.5;cursor:not-allowed;filter:grayscale()}.pgrid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-top:12px;display:grid}.pcard{border:1px solid var(--line);text-align:center;border-radius:12px;flex-direction:column;align-items:center;min-height:210px;padding:0 12px 12px;display:flex;overflow:hidden}.banner.xs{border-radius:0;width:calc(100% + 24px);height:40px;margin:0 -12px}.pcard-av{margin-top:-30px;margin-bottom:6px}.pcard-av .av{border:3px solid #fff}.clamp2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (width<=760px){.pgrid{grid-template-columns:repeat(2,1fr);gap:8px}}.bell{color:#cfd8e3;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex;position:relative}.bell:hover,.bell.active{color:#fff;background:#ffffff1a}.bell .badge{margin:0;position:absolute;top:2px;right:0}.notif{border-top:1px solid var(--line);color:var(--ink);align-items:center;gap:12px;padding:12px 18px;display:flex}.notif:hover{background:#f6f8fb}.notif.new{background:var(--brand-soft)}.pushprompt{z-index:60;border:1px solid var(--line);background:#fff;border-radius:14px;align-items:flex-start;gap:12px;width:min(380px,100vw - 24px);padding:14px;animation:.3s pushin;display:flex;position:fixed;bottom:18px;right:18px;box-shadow:0 12px 40px #10203838}.pushprompt img{border-radius:10px;width:44px;height:44px}.pushx{color:var(--muted);font-size:14px;position:absolute;top:6px;right:10px}@keyframes pushin{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.pushrow{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;padding:10px 18px 14px;font-size:13px;display:flex}@media (width<=760px){.pushprompt{width:auto;bottom:74px;left:12px;right:12px}}
