.mascot{display:inline-block;background-image:url('assets/ggm-mascots.png');background-size:400% 200%;background-position:var(--mx) var(--my);width:64px;height:64px;border-radius:20px;flex:none}.chat-avatar{width:38px;height:38px;object-fit:cover;border-radius:14px;flex:none}.profile-portrait .chat-avatar{width:80px;height:80px;border-radius:28px}.profile-mini{padding:0;display:flex}.profile-mini .chat-avatar{width:32px;height:32px}.community-lobby{display:grid;gap:16px}.community-lobby .hint{font-size:13px}.room-card{display:flex;align-items:center;gap:14px;background:white;border:1px solid #e0e9de;border-radius:20px;padding:22px 16px;text-align:left}.room-card>span:nth-child(2){flex:1}.room-card strong{display:block;font-size:17px}.room-card small{display:block;font-size:14px;margin-top:6px}.room-icon{display:grid;place-items:center;width:48px;height:48px;background:#e2f0d1;color:#075c38;border-radius:16px}.room-icon.packets{background:#fff0d4;color:#bd3829}.chat-access{padding:12px;font-size:14px;line-height:1.55;color:#62715f}.community-chat{display:flex;flex-direction:column;height:calc(100dvh - 142px);min-height:410px}.community-head{display:flex;align-items:center;gap:12px;padding:12px 16px;background:white;border-bottom:1px solid #e1e9dd}.community-head>div{flex:1;min-width:0}.community-head strong{font-size:16px}.community-head small{display:block;font-size:12px;margin-top:3px}.chat-wallet{display:flex;align-items:center;gap:8px;padding:9px 18px;font-size:14px;border-bottom:1px solid #e1e9dd}.chat-wallet strong{font-variant-numeric:tabular-nums;color:#075c38}.chat-wallet button{margin-left:auto}.community-log{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:18px 12px;min-height:0;scrollbar-width:thin}.community-message{display:flex;align-items:flex-start;gap:9px;margin-bottom:18px}.community-message-content{max-width:calc(100% - 50px);min-width:0}.message-name{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:5px;max-width:100%;overflow-wrap:anywhere}.message-name time{white-space:nowrap;color:#94a08e;font-size:11px}.community-message.own{flex-direction:row-reverse}.community-message.own .message-name{justify-content:flex-end}.community-bubble{padding:11px 14px;background:white;border:1px solid #e0e7d9;border-radius:3px 16px 16px 16px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px}.own .community-bubble{background:#ddefc9;border-radius:16px 3px 16px 16px}.community-composer{padding:10px 14px;background:white;border-top:1px solid #dce5d5}.community-composer form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.community-composer textarea{grid-column:1/-1;resize:none;min-height:52px;max-height:110px;width:100%;border:1px solid #dce5d5;border-radius:12px;padding:10px;font-size:16px;background:#f9fbf6}.community-composer .formerror{grid-column:1/-1}.community-composer .formerror[hidden]{display:none}.community-composer button[type=submit]{width:auto}.community-tools{display:flex;gap:7px;flex-wrap:wrap}.community-tools .btn{padding:8px 10px;font-size:13px;min-height:42px}.community-empty{text-align:center;padding:40px 15px;color:#66805b}.community-empty h3{margin:15px 0 8px}.community-empty p{font-size:14px}.sr-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.older-messages{display:block;margin:0 auto 18px;color:#47753b;padding:8px}.sticker-grid,.avatar-options{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:15px 0}.avatar-option{padding:3px;border:2px solid transparent;border-radius:20px}.avatar-option.selected{border-color:#80b935;background:#edf7dd}.avatar-option .mascot{width:100%;height:auto;aspect-ratio:1}.sticker-choice{padding:5px;min-width:0;border-radius:15px}.sticker-choice .chat-sticker{width:100%;height:auto;aspect-ratio:1;object-fit:contain}.chat-sticker{width:110px;height:110px;object-fit:contain;border-radius:18px}.sticker-save{padding:0}.crop-result{max-width:100%}.motion-0{animation:mascot-wave 1.5s ease-in-out infinite}.motion-1{animation:mascot-bounce 1.2s ease-in-out infinite}.motion-2{animation:mascot-heart 1.4s ease-in-out infinite}.motion-3{animation:mascot-wiggle 1.8s ease-in-out infinite}@keyframes mascot-wave{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes mascot-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes mascot-heart{0%,100%{transform:scale(.94)}50%{transform:scale(1.03)}}@keyframes mascot-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}.red-packet{background:linear-gradient(125deg,#dd4030,#b92328);color:#ffe6a0;width:250px;max-width:100%;min-height:110px;border-radius:14px;display:flex;align-items:center;gap:14px;padding:18px;text-align:left;box-shadow:0 5px 12px #aa2e2520}.red-packet strong{font-size:25px;letter-spacing:.02em;display:block}.red-packet small{color:#ffe6a0;font-size:13px;display:block;margin-top:6px}.packet-symbol{background:#ffd975;color:#bd3027;display:grid;place-items:center;width:44px;height:48px;border-radius:12px}.packet-symbol svg{width:30px;height:30px}.packet-arrow{margin-left:auto}.red-packet.closed{filter:saturate(.55)}.packet-foot{font-size:12px;color:#77836d;margin-top:6px;overflow-wrap:anywhere}.packet-send{background:#cc382c!important;color:#fff0b9!important}.packet-preview{text-align:center;background:#fff4da;padding:25px;border-radius:20px;color:#a53126;margin-bottom:15px}.packet-preview>svg{width:48px;height:48px;margin:5px}.packet-preview strong{display:block;font-size:30px;margin:15px}.packet-preview h3{overflow-wrap:anywhere}.packet-preview+.hint{margin-bottom:15px}.packet-summary{display:flex;justify-content:space-between;padding:14px;background:#fff0d3;color:#a52c23;border-radius:12px;margin-bottom:12px}.claim-row{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:14px;padding:14px 0;border-bottom:1px solid #e4eadf;align-items:start}.claim-row>div>strong{display:block;overflow-wrap:anywhere;font-size:15px}.claim-amount{text-align:right;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.claim-hit{display:block;color:#b33825;font-size:12px;margin-top:6px}.mine-message{display:flex;align-items:center;gap:7px;background:#fff1d8;color:#a13224;padding:10px 12px;font-size:13px;line-height:1.55;border-radius:12px;margin:12px 0;overflow-wrap:anywhere}.mine-message svg{width:18px;height:18px}.chat-removed{text-align:center;color:#88917f;font-size:12px;margin:14px}.text-button{color:#517c43;padding:7px;font-size:13px}.rules-text{white-space:pre-line;font-size:15px;line-height:1.7}.adminrecord .chat-avatar{vertical-align:middle}.community-chat .formerror{margin:0}.community-chat .formerror[hidden]{display:none}@media(min-width:650px){.community-chat{height:calc(100dvh - 177px)}}@media(prefers-reduced-motion:reduce){.chat-sticker{animation:none}}
/* Community refresh: compact inbox, expressive sprites, collectible frames. */
.mascot{background-image:url('assets/ggm-emotions.png');background-size:500% 400%;background-position:var(--mx) var(--my);border-radius:0}.animated-emotion{animation:emotion-frames 1.1s steps(1,end) infinite}@keyframes emotion-frames{0%,100%{background-position:var(--mx) var(--my)}50%{background-position:var(--mx) var(--my-next)}}
.community-lobby{padding:8px!important;gap:0;background:white}.room-card{border:0;border-bottom:1px solid #e8eee8;border-radius:0;padding:14px 6px;gap:12px;width:100%;min-width:0}.room-entry-copy{min-width:0}.room-card strong{display:flex;align-items:center;gap:6px;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-card small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.room-icon{width:50px;height:50px;flex:none;position:relative;border-radius:15px}.room-icon.private{background:#f2f7eb}.room-unread{position:absolute;right:-2px;top:-2px;width:10px;height:10px;background:#ed3d3d;border:2px solid white;border-radius:50%}.room-alert{font-style:normal;color:#b7362c}.admin-badge{font-size:12px!important;font-weight:600;color:#14734e;background:#e4f3ea;padding:2px 5px;border-radius:5px;white-space:nowrap}.member-avatar{padding:0;border:0;background:none;flex:none;touch-action:pan-y}.message-name{font-size:12px}.message-name time{font-size:12px}.message-name>span{overflow-wrap:anywhere;min-width:0}.community-message-content{max-width:calc(100% - 55px)}.community-head small{font-size:12px}.community-head strong{overflow-wrap:anywhere}.community-tools .btn{font-size:14px}.community-tools .photo-picker{cursor:pointer;margin:0;display:flex;align-items:center;gap:5px}.pending-images{display:flex;gap:8px;grid-column:1/-1}.pending-images:empty{display:none}.pending-images>span{position:relative}.pending-images img{width:64px;height:64px;border-radius:10px;object-fit:cover}.pending-images button{position:absolute;right:-4px;top:-4px;background:#183b2b;color:white;width:22px;height:22px;border-radius:50%}.message-images{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.message-images button{padding:0;max-width:100%}.message-images img{display:block;width:110px;height:120px;object-fit:cover;border-radius:12px}.message-images button:only-child img{width:200px;height:auto;max-height:260px;object-fit:contain}.chat-image-full{width:100%;max-height:75dvh;object-fit:contain}.red-packet{width:300px;min-height:82px;padding:14px 16px;border-radius:12px;gap:13px}.packet-copy{min-width:0}.red-packet strong{font-size:21px;line-height:1.3;overflow-wrap:anywhere}.red-packet small{margin-top:4px;font-size:13px}.packet-symbol{width:40px;height:44px;flex:none}.packet-details{border-radius:18px;padding:8px 14px 14px;background:linear-gradient(160deg,#fff2ce,#fffaf0);color:#8b2b23}.packet-summary{background:linear-gradient(120deg,#d83d2c,#ab2029);color:#ffe49a;margin:-8px -14px 5px;border-radius:18px 18px 0 0;padding:20px}.packet-summary strong{overflow-wrap:anywhere;padding-right:10px}.claim-row{grid-template-columns:40px minmax(0,1fr) 92px;align-items:center;border-color:#ead9b6;gap:10px}.claim-amount{color:#9a3028}.claim-row>div>strong{font-size:15px}.packet-mode{border:0;background:transparent;color:#b23526;padding:5px 0;margin-bottom:14px;font-size:14px;width:auto}.packet-input-row{display:flex;align-items:center;gap:8px;background:#f7f8f5;border-radius:12px;padding:17px 13px;margin-bottom:12px}.packet-input-row>span{font-size:16px;white-space:nowrap}.packet-input-row input{min-width:0;flex:1;width:100%;border:0;background:transparent!important;padding:0!important;text-align:right;box-shadow:none!important;font-size:17px;font-variant-numeric:tabular-nums}.packet-input-row input::placeholder,.packet-note input::placeholder{color:#9b9e99;opacity:.65}.packet-input-row small{font-size:14px}.packet-input-row input::-webkit-inner-spin-button{appearance:none}.packet-input-row input{appearance:textfield;-moz-appearance:textfield}.packet-note input{background:#f7f8f5;border:0;border-radius:12px;padding:15px;width:100%;font-size:16px}.packet-total{text-align:center;margin:26px 0}.packet-total small{display:block;font-size:14px}.packet-total strong{font-size:36px;color:#a43129;font-variant-numeric:tabular-nums}.avatar-framed{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:50%;isolation:isolate}.avatar-framed>.chat-avatar{border-radius:50%;width:38px;height:38px}.frame-jade,.frame-aurora,.frame-gold{padding:3px;box-sizing:content-box}.frame-jade{background:conic-gradient(#d5ff86,#18845e,#efffc1,#46c89b,#d5ff86);box-shadow:0 0 0 1px #56a572,0 2px 5px #0d683d30}.frame-aurora{background:conic-gradient(#95ffe3,#be88ff,#6b85ff,#ffd1ef,#95ffe3);box-shadow:0 0 0 1px #9981dd,0 0 9px #a695f177}.frame-gold{padding:4px;background:conic-gradient(#fff6bb,#c18a1d,#fff2a2,#d29926,#fff7cd,#c18a1d,#fff6bb);box-shadow:0 0 0 1px #aa7327,0 0 0 3px #edca6b66,0 2px 10px #aa7c2444}.frame-overlay{position:absolute;inset:-10%;width:120%;height:120%;object-fit:contain;pointer-events:none}.profile-portrait .avatar-framed>.chat-avatar{width:80px;height:80px}.frame-inventory,.frame-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-top:18px}.frame-inventory article,.frame-admin-grid article{text-align:center;padding:22px 12px;background:#fafbf7;border-radius:16px}.frame-inventory .chat-avatar,.frame-admin-grid .chat-avatar,.frame-product-preview .chat-avatar,.productvisual .avatar-framed .chat-avatar{width:72px;height:72px}.frame-inventory h3,.frame-admin-grid h3{margin:14px 0 8px;font-size:16px}.frame-inventory small{display:block;font-size:13px}.frame-inventory button,.frame-admin-grid button{margin-top:12px}.frame-product-preview{text-align:center;padding:30px}.member-details{text-align:center;margin:12px}.member-details .chat-avatar{width:72px;height:72px}.member-details h3{margin:15px 0;overflow-wrap:anywhere}.member-stat{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid #edf1e8}.reward-editor{border:1px solid #dfe9dc;padding:16px;border-radius:14px;margin:16px 0}.reward-editor legend{padding:0 7px}.admin-chat-surface{max-width:850px;margin:auto;border:1px solid #e0e9df;border-radius:18px;overflow:hidden}.admin-chat-surface .community-chat{height:70dvh;min-height:450px}.admin-chat-surface .pagehead{padding:20px}.prototype-controls{max-width:850px;margin:18px auto;font-size:14px}.prototype-controls summary{cursor:pointer}.home-task-panel .sectionhead{justify-content:flex-end}.productvisual>.avatar-framed{position:relative}.photo-picker input[hidden]{display:none!important}@media(max-width:380px){.red-packet{width:240px}.community-tools .btn{padding:7px}.claim-row{grid-template-columns:34px minmax(0,1fr) 75px}.claim-row .chat-avatar{width:30px;height:30px}}@media(prefers-reduced-motion:reduce){.animated-emotion{animation:none}}
/* Native-feeling chat composer and personal sticker workspace. */
.packet-input-row input:focus,.packet-input-row input:focus-visible,.packet-note input:focus{outline:none!important;border-color:transparent!important;background:transparent!important;box-shadow:none!important}.chat-shell{padding-bottom:0!important;min-height:0!important}.chat-shell .community-chat{height:var(--chat-vh,100dvh);min-height:300px}.chat-shell .community-composer{padding:8px 10px max(8px,env(safe-area-inset-bottom));flex:none}.community-composer .compact-chat-form{display:block}.composer-line{display:flex;gap:9px;align-items:flex-end}.community-composer .composer-line textarea{flex:1;width:0;min-height:40px;height:40px;max-height:120px;resize:none;padding:9px 12px;background:white;border:1px solid #e1e5df;border-radius:10px;line-height:22px;outline:0!important;box-shadow:none!important}.composer-icon{width:32px;height:40px;flex:none;padding:4px;color:#27372f;display:grid;place-items:center}.composer-icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.composer-icon.active{opacity:.6}.attachment-line{display:flex;align-items:center;gap:10px;margin-top:6px}.attachment-line:has(.pending-images:empty){display:none}.image-send{margin-left:auto;width:35px;height:35px;border-radius:50%;background:#075c38;color:white}.is-hidden{display:none!important}.chat-plus-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:22px 10px 20px;animation:tray-up .18s ease-out}.chat-plus-grid button{display:flex;align-items:center;flex-direction:column;gap:8px}.chat-plus-grid button>span{display:grid;place-items:center;background:white;border:1px solid #e5e8e2;border-radius:15px;width:52px;height:52px}.chat-plus-grid svg{width:27px;height:27px}.chat-plus-grid small{font-size:14px}.chat-sticker-drawer{height:40dvh;overflow-y:auto;overscroll-behavior:contain;animation:tray-up .18s ease-out;scrollbar-width:thin}.drawer-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:10dvh;align-items:center;padding:4px}.drawer-sticker{min-width:0;max-height:100%;padding:7px;touch-action:pan-y;user-select:none}.drawer-sticker .chat-sticker{width:100%;height:auto;aspect-ratio:1;max-height:9dvh;object-fit:contain}.sticker-add{border:1.5px dashed #8a958d;border-radius:12px;display:grid;place-items:center;color:#66756b;font-size:34px;line-height:1;width:70%;height:70%;aspect-ratio:1;margin:auto;max-height:64px;max-width:64px}.smooth-emotion{animation:none!important;display:block;object-fit:contain}.edited-sticker{position:relative;display:inline-block;overflow:hidden;aspect-ratio:1;container-type:inline-size;border-radius:8px;vertical-align:middle}.edited-sticker>img{position:absolute;max-width:none!important;object-fit:fill;transform:translate(-50%,-50%);user-select:none;pointer-events:none}.sticker-caption{position:absolute;transform:translate(-50%,-50%);max-width:95%;width:max-content;white-space:pre-wrap;overflow-wrap:anywhere;font-weight:800;text-align:center;line-height:1.15;text-shadow:0 1px 2px #000,1px 0 2px #000,-1px 0 2px #000;cursor:move;touch-action:none;z-index:2}.sticker-workspace{position:fixed;inset:0;background:#fafbf8;z-index:120;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);animation:sheet-up .22s ease-out}.sticker-workspace>header{display:flex;justify-content:space-between;align-items:center;padding:17px 18px;background:white;flex:none}.sticker-workspace>header>div{display:flex;align-items:center;gap:14px}.sheet-text-button{font-size:16px;padding:8px;color:#176c44}.sheet-close{width:30px;height:30px;display:grid;place-items:center}.sheet-close svg{width:23px;height:23px}.library-grid{padding:20px 12px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:min-content;gap:12px;overflow-y:auto;align-content:start;flex:1}.library-sticker{position:relative;aspect-ratio:1;min-width:0;padding:6px;user-select:none;touch-action:pan-y;border:2px solid transparent;border-radius:12px}.library-sticker .chat-sticker{width:100%;height:auto;aspect-ratio:1}.sticker-select-check{position:absolute;right:0;top:0;color:white;background:#abb4aab3;border-radius:50%;width:21px;height:21px;font-size:15px;display:grid;place-items:center}.library-sticker.selected{border-color:#47a270}.selected .sticker-select-check{background:#208653d9}.sticker-default-label{position:absolute;bottom:0;right:0;font-size:12px;color:#728071;background:#ffffffc9;border-radius:5px;padding:1px 4px}.library-footer{display:flex;justify-content:flex-end;padding:14px 20px max(14px,env(safe-area-inset-bottom));background:white}.delete-stickers{color:#bc3932;padding:10px;font-size:16px}.sorting{opacity:.65;transform:scale(1.08);background:#e6f2df;border-radius:12px;touch-action:none;z-index:3}.sticker-edit-center{flex:1;min-height:0;display:grid;place-items:center;padding:24px}.editing-preview{width:min(55vw,300px);height:auto;aspect-ratio:1;touch-action:none}.editor-footer{display:flex;align-items:center;justify-content:space-between;padding:18px 20px max(20px,env(safe-area-inset-bottom));flex:none}.editor-footer>div{display:flex;gap:16px}.editor-tool{width:38px;height:38px;font-size:27px;font-weight:500}.editor-tool svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8}.caption-controls{display:flex;flex-wrap:wrap;gap:12px;padding:14px 20px;background:white;flex:none}.caption-controls[hidden]{display:none}.caption-controls>input{width:100%;border:1px solid #ddd;border-radius:8px;padding:10px;font-size:16px}.caption-controls label{display:flex;align-items:center;gap:8px;font-size:14px}.caption-controls input[type=range]{max-width:160px}.caption-controls input[type=color]{width:36px;height:28px;border:0;padding:0;background:none}.crop-workspace{background:#151a18;color:white}.crop-workspace>header{background:transparent}.crop-instruction{text-align:center;font-size:14px;opacity:.7;margin:12px}.sticker-crop-square{position:relative;width:min(90vw,60dvh,580px);aspect-ratio:1;flex:none;align-self:center;margin:auto;border:1px solid white;touch-action:none;overflow:hidden}.crop-preview{width:100%;height:100%;border-radius:0}.crop-grid-lines{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to right,transparent 33.2%,#ffffff50 33.3%,transparent 33.5%,transparent 66.5%,#ffffff50 66.6%,transparent 66.8%),linear-gradient(to bottom,transparent 33.2%,#ffffff50 33.3%,transparent 33.5%,transparent 66.5%,#ffffff50 66.6%,transparent 66.8%)}.crop-zoom-label{display:flex;gap:15px;align-items:center;justify-content:center;margin:18px;font-size:14px}.crop-zoom-label input{width:60%;accent-color:white}.crop-footer{display:flex;justify-content:space-between;padding:15px 25px max(25px,env(safe-area-inset-bottom))}.crop-choice{color:white;width:45px;height:45px;font-size:30px;transition:color .1s,text-shadow .1s}.crop-choice.crop-confirmed{color:#92e6a2;text-shadow:0 0 10px #78d991}.crop-workspace.leaving{opacity:0;transition:opacity .16s}.sticker-loading{position:absolute;inset:0;background:#ffffffc9;display:flex;align-items:center;justify-content:center;gap:12px;font-size:16px}.loading-wheel{width:22px;height:22px;border:2px solid #dae6dc;border-top-color:#176e45;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes tray-up{from{opacity:.5;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes sheet-up{from{transform:translateY(100%)}to{transform:none}}@media(min-width:650px){.chat-shell{margin-top:0!important;margin-bottom:0!important;border-radius:0!important}.sticker-workspace{max-width:650px;margin:auto;box-shadow:0 0 0 100vw #10251a70}.library-grid{grid-auto-rows:110px}.drawer-grid{grid-auto-rows:10dvh}}@media(prefers-reduced-motion:reduce){.chat-sticker-drawer,.sticker-workspace{animation:none}.crop-workspace.leaving{transition:none}}
.room-alert{color:inherit}.room-alert.urgent{color:#b7362c}.account-avatar-row{position:relative;width:100%;display:flex;justify-content:center;align-items:center;min-height:90px;margin-bottom:9px}.profile-settings-arrow{position:absolute;left:calc(50% + 120px);top:50%;transform:translateY(-50%);width:30px;height:40px;padding:5px}.profile-settings-arrow svg{width:20px;height:20px}.profile-draft-preview{text-align:center;margin:16px auto 20px}.profile-draft-preview .chat-avatar{width:78px;height:78px}.profile-nickname-row{display:flex;align-items:center;gap:20px;padding:17px 0;border-bottom:1px solid #e5eae3;font-size:16px;cursor:text;margin-bottom:16px}.profile-nickname-row>span{flex:none}.profile-nickname-row input{border:0!important;border-radius:0!important;outline:none!important;box-shadow:none!important;background:transparent!important;text-align:right;min-width:0;width:100%;padding:0;font-size:16px;caret-color:#183e2c}.profile-avatar-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.profile-avatar-add{border:1.5px dashed #9ba898;border-radius:15px;font-size:32px;color:#63745e;width:75%;height:75%;align-self:center;justify-self:center;aspect-ratio:1;padding:0}.profile-upload-hidden{display:none}.profile-frames-row{display:flex;justify-content:space-between;align-items:center;width:100%;padding:17px 0;margin:8px 0 20px;border-bottom:1px solid #e5eae3;font-size:16px}.frame-asset{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 8px;border:2px solid transparent;border-radius:16px;background:#f6f8f1}.frame-asset strong{font-size:15px}.frame-asset small{font-size:13px}.frame-asset .chat-avatar{width:60px;height:60px}.frame-picked{border:2px solid #639348!important}.profile-avatar-options .avatar-option:focus{outline:none}.profile-avatar-options .mascot{clip-path:inset(3%)}@media(max-width:360px){.profile-settings-arrow{left:auto;right:0}}

/* Account settings follow the same compact member surface. */
.account-bind-hint{display:block;margin:12px auto 0;color:#77877b;font-size:14px}.settings-header{display:flex;align-items:center;gap:18px;padding:22px 20px;background:white;border-bottom:1px solid #e4eae2}.settings-header h1{font-size:22px}.settings-header svg{width:24px;height:24px}.settings-content{display:grid;gap:18px}.platform-current{display:flex;align-items:center;gap:4px}.platform-main{flex:1;min-width:0;display:flex;align-items:center;text-align:left;gap:2em;padding:12px 0}.platform-main>span:not(.chip){flex:1;min-width:0;overflow-wrap:anywhere}.platform-main .chip{flex:none;margin-left:auto}.platform-expand{flex:none;font-size:24px;padding:8px}.platform-expand[aria-expanded=true]{transform:rotate(180deg)}.platform-history-row{display:grid;grid-template-columns:auto 1fr auto;gap:1em;align-items:center;padding:18px 0;border-top:1px solid #e7ece6}.platform-history-row span{overflow-wrap:anywhere}.settings-content .menuitem:last-child{position:static}.red-packet.closed{opacity:.5}
/* Envelope cover and the full-screen receipt share warm red and gold. */
.packet-shade{padding:0!important;display:flex;align-items:center;justify-content:center;background:rgba(245,244,238,.84);backdrop-filter:blur(3px)}.packet-cover.modal{width:min(82vw,380px);max-height:95dvh;padding:0;background:transparent;box-shadow:none;overflow:visible;border-radius:0}.packet-cover>.handle,.packet-cover>.modalhead,.packet-full>.handle,.packet-full>.modalhead{display:none}.envelope-cover{height:min(590px,72dvh);min-height:320px;background:linear-gradient(155deg,#ef503e,#f14e3a);border-radius:12px;position:relative;isolation:isolate;overflow:hidden;color:#f5d794;text-align:center;box-shadow:0 15px 48px #b1322525;transition:opacity .2s}.envelope-sender{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:8px;padding:clamp(45px,10dvh,110px) 22px 0;font-size:16px}.envelope-sender .chat-avatar{width:30px;height:30px;flex:none}.envelope-sender span{overflow-wrap:anywhere}.envelope-cover h3{position:relative;z-index:2;margin:18px 25px 0;font-weight:500;font-size:23px;overflow-wrap:anywhere}.envelope-flap{position:absolute;z-index:0;left:-15%;top:-30%;width:130%;height:111%;border-radius:0 0 50% 50%/0 0 13% 13%;box-shadow:0 2px 5px #86271335;background:linear-gradient(140deg,#ef513e,#e84b3a);transform-origin:50% 0}.envelope-coin{position:absolute;z-index:3;bottom:11%;left:50%;width:96px;height:96px;border-radius:50%;background:linear-gradient(135deg,#f6dda1,#e8c782);box-shadow:0 2px 3px #6c3c3422;color:#665039;transform:translateX(-50%);font-family:serif;font-size:42px;font-weight:500}.envelope-coin:disabled{opacity:1;font-family:inherit;font-size:18px;cursor:default}.envelope-detail-link{position:absolute;bottom:4%;left:0;width:100%;font-size:14px;color:#f5d794}.envelope-dismiss{display:block;margin:24px auto 0;width:44px;height:44px;border:2px solid #cbaa65;border-radius:50%;color:#cbaa65}.envelope-dismiss svg{width:25px;height:25px}.envelope-ended{opacity:.5}.envelope-opening .envelope-coin{animation:packet-coin-spin .68s ease-in-out forwards}.envelope-opening .envelope-flap{animation:packet-flap-open .7s .18s ease-in forwards}.envelope-opening{animation:packet-expand .9s ease-in forwards;pointer-events:none}.packet-full.modal{position:fixed;inset:0;width:100%;height:100dvh;max-height:100dvh;max-width:none;padding:0;border-radius:0;background:#fff;overflow:auto;animation:packet-receipt-in .25s ease-out}.packet-full-header{position:relative;height:135px;background:#f4513d;border-bottom:2px solid #dab674;border-radius:0 0 50% 50%/0 0 30% 30%}.packet-back{position:absolute;top:max(22px,env(safe-area-inset-top));left:18px;color:white;padding:10px}.packet-back svg{width:26px;height:26px}.packet-full-content{max-width:720px;margin:auto;padding:28px 22px 40px}.packet-full-sender{display:flex;align-items:center;justify-content:center;gap:8px}.packet-full-sender .chat-avatar{height:30px;width:30px;flex:none}.packet-full-sender strong{font-size:16px;overflow-wrap:anywhere}.packet-full-note{color:#9a9b98;text-align:center;font-size:14px;margin-top:12px;overflow-wrap:anywhere}.packet-own-amount{text-align:center;color:#bda16b;font-weight:600;font-size:62px;margin-top:24px;font-variant-numeric:tabular-nums}.packet-own-amount small{font-size:14px;margin-left:8px;font-weight:400}.packet-deposited,.packet-own-hit{text-align:center;color:#b39c71;font-size:14px;margin-top:8px}.packet-own-hit{color:#bd3d31}.packet-no-claim{text-align:center;color:#bda16b;margin:30px 0;font-size:28px}.packet-list-heading{font-size:13px;color:#999;margin-top:70px;padding-bottom:15px;border-bottom:1px solid #eee}.packet-full .claim-row{grid-template-columns:42px minmax(0,1fr) 100px;border-bottom:1px solid #eee;padding:16px 0}.packet-full .claim-row small{display:block;color:#999;font-size:12px;margin-top:5px}.packet-full .claim-amount{text-align:right;font-variant-numeric:tabular-nums}.packet-full .claim-hit{color:#bd3d31!important}@keyframes packet-coin-spin{to{transform:translateX(-50%) rotateY(720deg);opacity:0}}@keyframes packet-flap-open{to{transform:translateY(-50%) rotateX(65deg);opacity:0}}@keyframes packet-expand{70%{transform:scale(1)}100%{transform:scale(1.5);opacity:0}}@keyframes packet-receipt-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media(max-width:400px){.platform-main{gap:1em}.platform-main .chip{font-size:11px;padding:5px 7px}}@media(prefers-reduced-motion:reduce){.envelope-opening,.envelope-opening .envelope-coin,.envelope-opening .envelope-flap,.packet-full.modal{animation-duration:.01ms}}

#community-log{position:relative;overflow-anchor:none}

/* Compact conversation rows, with dividers aligned to the text column. */
.community-lobby{gap:0}.community-lobby .room-card{position:relative;padding-top:8px;padding-bottom:8px;border-bottom:0;margin:0;min-height:0}.community-lobby .room-card:after{content:"";position:absolute;left:68px;right:6px;bottom:0;height:1px;background:#e4ebe6}.room-icon.lounge{background:white;overflow:visible}.public-room-brand{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}.room-icon.packets{background:transparent}.packet-room-brand{width:100%;height:100%;position:relative;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#ee5941,#ba2527);box-shadow:inset 0 0 0 1px #dbac57,inset 0 2px 3px #ffd6a050;overflow:hidden}.packet-room-brand:before{content:"";position:absolute;inset:-40% -15% 33%;border-radius:0 0 50% 50%;border-bottom:1px solid #f4cd7b;background:linear-gradient(135deg,#f26548,#d5322d)}.packet-room-brand img{position:relative;z-index:1;width:68%;height:68%;object-fit:contain;border-radius:50%;background:#fff8e5;border:2px solid #ebc776;box-shadow:0 2px 5px #75191e35}.packet-room-brand i{position:absolute;bottom:5px;width:17px;height:2px;border-radius:2px;background:#f6d889}.smooth-emotion{background:transparent;object-fit:contain}

.chat-shell,.admin-chat-surface{touch-action:pan-y;overscroll-behavior-x:none}.room-moving-layer{will-change:transform;box-shadow:-12px 0 35px #16352412}.room-moving-layer *{pointer-events:none!important}

.room-sr{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

img.static-emotion{object-fit:contain;background:transparent;animation:none;display:block}
.home-task-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(130px,auto));gap:12px!important}.home-task{min-width:0!important;padding:12px 4px!important}.home-task-title{white-space:normal!important;overflow-wrap:anywhere;font-size:14px!important}.home-task-status{font-size:12px!important}.home-task .task-capacity{font-size:10px!important}.activity-summary{padding:12px 0;display:grid;gap:8px}.activity-summary .task-capacity{margin:0}.activity-select{display:flex;gap:8px;align-items:center;margin-bottom:12px}.activity-select input,.activity-batch input{width:auto}.activity-batch{padding:14px 0;border-bottom:1px solid #dde5dc;margin-bottom:16px;flex-wrap:wrap}.activity-yellow{background:#e7b338!important}.activity-drag{cursor:grab;touch-action:none}.activity-drag:active{cursor:grabbing}.adminnav button{position:relative}.adminnav .activity-yellow{position:absolute;right:5px;top:5px}.capacity-editor [data-auto-trigger][hidden]{display:none!important}

/* Enlarged home icons with a discreet quota indicator inside their lower edge. */
.home-task .taskicon{position:relative;width:47px!important;height:47px!important;flex:none;border-radius:13px;overflow:visible;margin-bottom:3px}
.home-task .taskicon svg{width:32px!important;height:32px!important}
.home-task .taskicon .task-icon-image{width:100%;height:100%;object-fit:contain;border-radius:13px}
.home-quota{position:absolute;left:6px;right:6px;bottom:3px;height:3px;border-radius:3px;background:#d9e2d3;box-shadow:0 0 0 1px #ffffffc9;pointer-events:none}
.home-quota-fill{display:block;width:var(--quota);height:100%;background:var(--quota-color);border-radius:inherit;transition:width .3s ease,background-color .3s ease}
.home-quota-flame{position:absolute;left:clamp(4px,var(--quota),calc(100% - 4px));bottom:0;line-height:1;font-size:10px;transform:translateX(-50%);transform-origin:50% 100%;opacity:.8;animation:home-quota-flicker 1.25s ease-in-out infinite}
.home-quota.is-hot .home-quota-fill{box-shadow:0 0 3px #e7773044}
.home-quota-full{font-size:12px;color:#b64b3a;line-height:1.4}
@keyframes home-quota-flicker{0%,100%{transform:translateX(-50%) scale(.88,1);opacity:.65}45%{transform:translateX(-50%) scale(1.04,1.13);opacity:.9}75%{transform:translateX(-50%) scale(.95,.93);opacity:.75}}
@media(prefers-reduced-motion:reduce){.home-quota-flame{animation:none}.home-quota-fill{transition:none}}

/* Eight activities per swipe page, in the existing four-column reading order. */
.home-activity-pages{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#a8bd96 transparent;scroll-padding:0}
.home-activity-pages>.home-task-grid{flex:0 0 100%;width:100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;grid-template-rows:repeat(2,130px)}
.home-activity-pages:focus-visible{outline:2px solid #73aa43;outline-offset:3px;border-radius:8px}
.home-task-title{height:2.4em;max-height:2.4em;min-height:2.4em;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}
.home-task-status{min-height:1.2em}
/* A single opaque, viewport-attached navigation bar across member pages. */
.shell:not(.chat-shell){padding-bottom:calc(88px + env(safe-area-inset-bottom));border-bottom-left-radius:0;border-bottom-right-radius:0}
.shell .bottomnav,.home-shell .bottomnav{bottom:0;border-radius:0;background:#fff;backdrop-filter:none;min-height:72px;padding:10px 9px calc(10px + env(safe-area-inset-bottom))}
.shell .bottomnav button,.home-shell .bottomnav button{font-size:.75rem;gap:4px;padding:3px}
.shell .bottomnav svg,.home-shell .bottomnav svg{width:22px;height:22px}
.shell .bottomnav .active:before,.home-shell .bottomnav .active:before{top:-14px}

.home-points-badge{position:absolute;top:-5px;right:-10px;z-index:1;display:block;min-width:22px;max-width:66px;padding:2px 5px;border:1.5px solid #fff;border-radius:9px;background:#eaf2dc;color:#427320;font-size:10px;line-height:1.2;font-weight:700;white-space:nowrap;pointer-events:none;box-shadow:0 1px 3px #2346170c}

/* Compact home activity rows without reserving space for hidden statuses. */
.home-activity-pages>.home-task-grid{grid-template-rows:repeat(2,minmax(100px,auto));row-gap:8px!important;column-gap:8px!important;align-items:start}
.home-activity-pages .home-task{padding:6px 2px!important;gap:3px}
.home-activity-pages .home-task .taskicon{margin-bottom:2px}
.home-task-panel{padding:10px 10px 9px!important}
/* Review workspace: compact rows, readable evidence, consistent controls. */
.admincontent{max-width:1440px;margin:auto;padding:24px 28px}.admincontent .sectionhead{margin-bottom:16px}.admincontent h2{font-size:24px}.adminrecord.compact-review{display:grid;grid-template-columns:minmax(190px,1fr) minmax(210px,1.4fr) 112px 96px;gap:16px;align-items:center;padding:12px 16px;margin-bottom:8px;border-radius:12px;min-height:100px}.review-person{display:flex;gap:8px;align-items:center;min-width:0}.compact-review .task-applicant{margin:0;gap:10px}.compact-review .task-applicant .chat-avatar,.compact-review .applicant-placeholder{width:38px;height:38px}.compact-review .task-applicant strong{font-size:14px}.compact-review p{margin:3px 0;font-size:13px}.compact-review h3,.compact-management h3{font-size:15px;margin:0 0 5px;overflow-wrap:anywhere}.compact-review small{font-size:12px;color:#7c887e}.review-description{min-width:0}.review-link{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;margin-top:4px}.review-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.admincontent .btn.small{padding:7px 10px;font-size:13px}.admin-thumb{display:flex;width:104px;height:76px;border:1px solid #e0e8df;border-radius:8px;padding:3px;background:#f5f8f3;align-items:center;justify-content:center;flex:none}.admin-thumb img{width:100%;height:100%;object-fit:contain}.empty-thumb svg{width:30px;height:30px;color:#648b45}.admin-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;font-size:13px;color:#72816d}.admin-pagination>div{display:flex;align-items:center;gap:12px}.compact-management{display:grid;grid-template-columns:104px minmax(160px,1fr) auto;gap:16px;align-items:center}.adminrecord.compact-management,.adminrecord.compact-task-management{padding:12px 16px;margin-bottom:8px;border-radius:12px}.compact-management p{margin:4px 0;font-size:13px}.compact-management .actions{margin:0;flex-wrap:wrap;justify-content:flex-end}.compact-task-management .activity-summary{margin:8px 0 0;padding-top:8px;border-top:1px solid #e6ece3;gap:8px;font-size:12px}.compact-task-management .activity-summary .actions{margin:0;display:inline-flex}.admin-count{display:inline-flex;align-items:center;justify-content:center;min-width:25px;padding:2px 7px;border-radius:7px;background:#eaf2dc;color:#416d24;font-size:12px;font-weight:700}.admin-task-picker{position:relative;max-width:560px;margin-bottom:16px;z-index:5}.admin-task-picker summary{display:flex;align-items:center;gap:12px;background:white;border:1px solid #d8e3d0;border-radius:10px;padding:11px 14px;cursor:pointer;list-style:none}.admin-task-picker summary::-webkit-details-marker{display:none}.admin-task-picker summary>span:first-child{flex:1}.admin-task-picker summary svg{width:16px;height:16px;transform:rotate(90deg)}.admin-picker-menu{position:absolute;top:calc(100% + 5px);left:0;right:0;background:white;border:1px solid #d8e3d0;border-radius:10px;box-shadow:0 10px 28px #1935201a;padding:9px}.admin-picker-menu input{padding:9px;font-size:14px}.admin-picker-options{max-height:280px;overflow:auto;margin-top:6px}.admin-picker-options button{display:flex;width:100%;align-items:center;justify-content:space-between;text-align:left;padding:10px;border-radius:7px;font-size:14px;gap:12px}.admin-picker-options button:hover,.admin-picker-options button.selected{background:#eff5e6;color:#376523}.admin-picker-options button[hidden]{display:none}.compact-review-form .field{margin:10px 0}.compact-review-form .hint{padding:10px;font-size:13px}.compact-review-form textarea{min-height:65px}.admin-image-dialog{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:24px;border:0;background:#142318e8;cursor:zoom-out;margin:0;overflow:hidden}.admin-image-dialog::backdrop{background:#142318d9}.admin-image-dialog img{display:block;width:100%;height:calc(100% - 30px);object-fit:contain}.admin-image-dialog>span{display:block;text-align:center;color:white;font-size:13px;padding-top:10px}
@media(max-width:900px){.admincontent{padding:18px 14px}.adminrecord.compact-review{grid-template-columns:minmax(150px,1fr) minmax(160px,1fr) 90px 76px;gap:10px}.admin-thumb{width:86px;height:68px}.compact-management{grid-template-columns:86px 1fr auto}}@media(max-width:640px){.adminrecord.compact-review{grid-template-columns:1fr 88px}.review-person,.review-description{grid-column:1}.review-proof{grid-column:2;grid-row:1 / 3}.review-actions{grid-column:1 / 3;flex-direction:row;justify-content:flex-end}.compact-management{grid-template-columns:76px 1fr}.compact-management .actions{grid-column:1 / 3}.admin-pagination{flex-wrap:wrap}.admin-thumb{width:76px}.admincontent h2{font-size:21px}}
.cloud-welcome{padding:60px 24px;text-align:center}.cloud-welcome>img{width:70px;height:70px;margin-bottom:20px}.cloud-welcome p{margin:16px 0;line-height:1.6}.cloud-auth{max-width:420px;margin:auto}.cloud-permissions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px;border:1px solid #dce5d6;border-radius:10px}.cloud-permissions label{font-size:14px;display:flex;align-items:center;gap:7px}.cloud-permissions input{width:auto}.admincontent>.admin-pagination{position:static}

/* One-line names; no secondary text beneath home activity icons. */
.home-activity-pages>.home-task-grid{grid-template-rows:repeat(2,80px);row-gap:6px!important}
.home-activity-pages .home-task{height:80px;min-height:0;padding:5px 0!important;gap:3px}
.home-activity-pages .home-task-title{display:block;white-space:nowrap!important;overflow-wrap:normal;line-height:1.2;height:1.2em;min-height:1.2em;max-height:1.2em;max-width:100%;width:5em;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:unset}

.home-activity-pages{scrollbar-width:none}.home-activity-pages::-webkit-scrollbar{display:none}
.home-activity-dots{display:flex;align-items:center;justify-content:center;gap:2px;margin-top:2px}
.home-activity-dots button{display:grid;place-items:center;width:22px;height:20px;padding:0;border:0;border-radius:6px;background:transparent;cursor:pointer}
.home-activity-dots button span{width:5px;height:5px;border-radius:50%;background:#d5dfce;transition:background .15s,transform .15s}
.home-activity-dots button[aria-current="true"] span{background:#72ad35;transform:scale(1.2)}
.home-activity-dots button:focus-visible{outline:2px solid #72ad35;outline-offset:1px}
@media(prefers-reduced-motion:reduce){.home-activity-dots button span{transition:none}}
/* Administration: one-line tools, compact people lists and split chat. */
.review-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.review-toolbar .admin-task-picker{flex:1 1 220px;min-width:180px;max-width:340px;margin:0}.review-toolbar .admin-task-picker summary{padding:10px 14px}.review-selection{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:10px 0}.review-toolbar .review-selection{margin:0 0 0 auto}.review-selection label{display:flex;align-items:center;gap:6px;white-space:nowrap}.review-selection input,.review-person input{width:18px;height:18px;accent-color:#075c38}.selected-count,.review-capacity{font-size:13px;color:#687c6b;white-space:nowrap}.admin-pagination select{width:auto;min-width:110px;padding:8px 12px;font-size:14px}.admin-pagination>div{flex-wrap:wrap}.admin-search{display:flex;gap:10px;margin:14px 0 20px}.admin-search input{flex:1;min-width:0}.platform-row{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid #e1e8df;gap:12px}.ops-modal-actions{display:flex;justify-content:space-between;margin-top:24px}.user-summary{display:flex;align-items:center;gap:14px}.user-summary h3{margin:0}.user-edit-actions{gap:8px;margin:18px 0}.user-row p{margin:5px 0 0}.account-tabs{margin-bottom:20px}.notification-compact .record.notification-user{padding:10px 0;margin:0}.notify-avatar{padding:0;border:0;background:none;cursor:pointer;border-radius:50%}.notification-compact>.field{display:inline-flex;width:calc(100% - 100px);margin-right:10px}.notification-compact>.actions{display:inline-flex;vertical-align:bottom;margin-bottom:16px}.notification-user .task-applicant{margin:0}.admin-chat-columns{display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px;height:calc(100dvh - 230px);min-height:460px}.admin-room-list{overflow:auto;background:white;border:1px solid #e1e8df;border-radius:16px}.admin-room-preview{position:relative;border-bottom:1px solid #e1e8df;padding-bottom:12px}.admin-room-preview.active{background:#eaf3e1}.admin-room-preview .room-card{background:transparent;border:0;border-radius:0;margin:0;padding:14px 10px}.admin-room-preview time{display:block;text-align:right;padding-right:12px;font-size:11px;color:#7a897b}.admin-chat-columns .admin-chat-surface{max-width:none;width:100%;height:100%;min-height:0;margin:0}.admin-chat-columns .community-chat{height:100%;min-height:0}.admin-chat-columns .community-head .back-button{display:none}.admin-chat-columns .community-log{min-height:0;flex:1}.admin-chat-columns .community-composer{position:relative;bottom:auto}.admin-room-preview .room-entry-copy{min-width:0}.admin-room-preview .room-entry-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.admin-pagination button:disabled{opacity:.4;cursor:default}
@media(min-width:1200px){.review-toolbar{flex-wrap:nowrap}.review-toolbar .btn{white-space:nowrap;padding:10px 12px}}
@media(max-width:700px){.admin-chat-columns{grid-template-columns:140px minmax(0,1fr);gap:6px}.admin-room-preview .room-icon{display:none}.admin-room-preview .room-entry-copy strong{font-size:13px}.review-toolbar .review-selection{margin-left:0}.admin-pagination{align-items:flex-start;gap:10px;flex-wrap:wrap}}

.home-screen-mode .shell .bottomnav{padding-bottom:calc(10px + max(28px, env(safe-area-inset-bottom)))}
/* Only active for the measured iPhone cold-launch safe-area deficit. */
.ios-launch-gap .shell:not(.chat-shell){min-height:var(--ios-launch-height)}
.ios-launch-gap .shell .bottomnav{bottom:calc(0px - var(--ios-launch-gap))}
/* The loading surface stays in flow at one screen height, independently of
   gap compensation. Toggling fixed/relative here causes a resize feedback loop. */
.home-screen-mode.ios-standalone .ggm-startup{position:relative;inset:auto;height:var(--ios-startup-height,100lvh)}
.ios-launch-gap .shade{bottom:calc(0px - var(--ios-launch-gap))}
.home-screen-mode .shell:not(.chat-shell){padding-bottom:calc(88px + max(28px, env(safe-area-inset-bottom)))}
.community-composer{position:relative}.mention-picker{position:absolute;bottom:100%;left:10px;right:10px;max-height:196px;overflow-y:auto;overscroll-behavior:contain;background:#fff;border:1px solid #dfe8df;border-radius:14px;box-shadow:0 -4px 20px #183b2318;z-index:10}.mention-picker[hidden]{display:none}.mention-option{height:56px;min-height:56px;display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:8px 12px;border-bottom:1px solid #eef2ed}.mention-option .chat-avatar{width:36px;height:36px}.mention-option>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px}.mention-option.is-active{background:#edf5e5}.chat-self-profile{padding:4px;border-radius:50%;flex-shrink:0}.chat-self-profile:focus-visible{outline:2px solid #7fa844}

/* Review history keeps proof thumbnails inside the dialog. */
.modal.review-history-modal{width:min(1120px,calc(100vw - 32px));max-width:1120px}
.review-history-modal .compact-review{grid-template-columns:minmax(170px,1fr) minmax(180px,1.4fr) 104px 82px;gap:14px}
.review-history-modal .review-proof{min-width:0}.publication-tabs{margin:0 auto 0 12px}.sectionhead:has(.publication-tabs){flex-wrap:wrap}
@media(max-width:640px){.modal.review-history-modal{width:100%;max-width:100%}.review-history-modal .compact-review{grid-template-columns:minmax(0,1fr) 88px}.publication-tabs{margin:0;order:3;width:100%}.review-history-modal .admin-pagination>div{flex-wrap:wrap}}

/* The document never scrolls behind the mobile chat keyboard. */
/* The chat shell is already fixed. Fixing body and giving html 100% height
   makes iOS standalone exclude the 62px top safe area from its viewport.
   Clip document scrolling without creating another fixed-height viewport. */
html.member-chat-open,html.member-chat-open body{overflow:clip;overscroll-behavior:none}
html.member-chat-open body{margin:0}
.member-chat-open .chat-shell{position:fixed;top:var(--chat-top,0px);left:50%;transform:translateX(-50%);width:100%;height:var(--chat-vh,100dvh);max-height:var(--chat-vh,100dvh);overflow:hidden;margin:0!important}
.member-chat-open .chat-shell .community-chat{height:100%;min-height:0;padding-top:env(safe-area-inset-top);box-sizing:border-box}
.member-chat-open .community-head,.member-chat-open .chat-wallet,.member-chat-open .community-composer{flex-shrink:0}
.member-chat-open .community-log{min-height:0;overflow-anchor:none}
.member-chat-open .community-composer{padding-bottom:8px}
html{overscroll-behavior-x:none}
/* Immediate operation feedback, using the existing GGM palette. */
.send-spinner,.action-loading::after{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:send-spin .8s linear infinite;box-sizing:border-box}
@keyframes send-spin{to{transform:rotate(360deg)}}
.outbox-message{position:relative;clear:both;padding-bottom:4px}
.outbox-message>.send-spinner,.outbox-message>.send-failed{display:block;margin:0 12px 6px auto;color:#537963}
.send-failed{border:1.5px solid #bd3b38;background:white;color:#bd3b38!important;border-radius:50%;width:26px;height:26px;line-height:20px;font-weight:700;cursor:pointer}
.action-loading{position:relative;cursor:wait!important;color:transparent!important;pointer-events:none}
.envelope-coin.action-loading{position:absolute}
.action-loading>*{visibility:hidden}
.action-loading::after{content:'';position:absolute;left:calc(50% - 8px);top:calc(50% - 8px);color:#fff}
.action-loading.secondary::after,.action-loading.text-button::after,.action-loading.chat-send::after{color:#075c38}
.outbox-actions{position:fixed;z-index:10000;left:50%;bottom:calc(env(safe-area-inset-bottom) + 24px);transform:translateX(-50%);width:min(360px,calc(100vw - 32px));padding:20px;border:1px solid #dbe5d9;border-radius:20px;background:white;box-shadow:0 8px 40px #17352a33;display:flex;flex-wrap:wrap;gap:12px}
.outbox-actions p{width:100%;margin:0 0 8px;overflow-wrap:anywhere}

.member-chat-open .chat-shell{top:0;left:0;right:0;transform:none;margin-left:auto!important;margin-right:auto!important;transition:none!important}
.member-chat-open #overlay>.shade{top:0;bottom:auto;height:var(--chat-vh,100dvh);backdrop-filter:none}
.member-chat-open #overlay .modal{max-height:calc(var(--chat-vh,100dvh) - 12px);overscroll-behavior:contain}
.member-chat-open .chat-shell .community-chat{transition:none!important}
.chat-standalone .community-composer{padding-bottom:calc(8px + max(0px,calc(max(16px,calc(env(safe-area-inset-bottom) + 4px)) - var(--chat-occluded,0px))))}
.room-moving-layer{contain:layout paint;transform:translate3d(0,0,0);backface-visibility:hidden;box-shadow:none}

/* Keep the complete chat in the visual viewport while Safari pans for the keyboard. */
.member-chat-open .chat-shell,.member-chat-open #overlay>.shade{top:var(--chat-top,0px)}
/* Native viewport events already follow the keyboard animation; an extra height transition would lag behind it. */
.member-chat-open .chat-shell{transition:none!important}
.room-navigation-header{position:fixed!important;z-index:230;pointer-events:none;will-change:opacity;contain:layout paint;margin:0!important;transform:none!important;box-shadow:none!important}
.room-navigation-header *{pointer-events:none!important}
@media(prefers-reduced-motion:reduce){.member-chat-open .chat-shell{transition:none!important}}
.push-switch{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid #e3eadd}.push-switch input{width:24px;height:24px;accent-color:#075c38}.push-invite{padding:12px 18px;background:#f1f6ec}.community-head>.iconbtn{flex-shrink:0}
.settings-menu .menuitem{gap:12px;min-height:60px}.settings-menu .menuitem>span:first-child{flex:1}.menuitem>small{margin-left:auto;overflow-wrap:anywhere}.settings-legal{text-align:center;padding:26px 10px;color:#728270;font-size:13px}.device-card{display:flex;gap:16px;align-items:center;justify-content:space-between}.device-card>div{min-width:0}.device-card .chip{display:inline-block;margin:8px}.device-card p{font-size:13px}.settings-spinner,.device-removing:after{content:'';display:inline-block;width:20px;height:20px;border:2px solid #cbd9c6;border-top-color:#075c38;border-radius:50%;animation:settings-spin .8s linear infinite}.device-removing{font-size:0;min-width:70px}.settings-spinner{margin:30px auto;display:block}@keyframes settings-spin{to{transform:rotate(360deg)}}.team-logo{display:inline-flex;align-items:center;justify-content:center;background:#fff;border-radius:14px;width:48px;height:48px;flex-shrink:0}.team-logo img{width:80%;height:80%;object-fit:contain}.team-conversation .community-head>div{flex:1}.team-notice{padding:18px;margin:12px 0}.team-notice>small{color:#728270}.team-notice h3{margin:10px 0}.team-notice p{white-space:pre-wrap;overflow-wrap:anywhere}.team-tools{display:flex;gap:0;background:#fff}.team-tools>button{flex:1;min-height:48px;font-size:16px}.team-tools>button+button{border-left:1px solid #e3eadd}

.chat-download-image{position:relative;display:block;width:180px;min-height:120px;max-width:100%;overflow:hidden;border-radius:12px;background:#dce5df;padding:0}.message-images .chat-download-image img{display:block;width:100%;height:160px;object-fit:cover}.chat-download-image .blurred{filter:blur(7px);transform:scale(1.1)}.chat-image-status{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:7px 12px;border-radius:20px;background:#173a2cbb;color:white;font-size:22px;white-space:nowrap}.chat-download-image:disabled .chat-image-status{font-size:14px}.chat-download-image.image-loading .chat-image-status{width:28px;height:28px;padding:0;border:3px solid #ffffff66;border-top-color:#fff;background:transparent;animation:image-download-spin .8s linear infinite}.chat-image-status[hidden]{display:none}@keyframes image-download-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* Approved full-screen startup artwork. */
.ggm-startup{position:fixed;inset:0;z-index:1000;background:#fff url("/assets/ggm-splash-383e8d6928a1.jpg") center/cover no-repeat;overflow:hidden;-webkit-touch-callout:none;user-select:none}

/* Keep controls below device cutouts while the startup artwork fills them. */
.shell:not(.chat-shell){padding-top:env(safe-area-inset-top,0px)}
.adminshell{padding-top:env(safe-area-inset-top,0px)}
.ggm-startup{padding:0;margin:0;max-width:none;max-height:none}

/* Desktop startup follows the member shell; mobile remains edge-to-edge. */
@media(min-width:650px){.ggm-startup{inset:25px 0;width:480px;max-width:100%;margin:0 auto;border-radius:24px;box-shadow:0 0 75px #174c2010}}

/* Account and personal details follow the supplied flat, full-width layout. */
.shell.account-shell{background:var(--bg)}.shell.personal-shell{background:#ededed}.shell.account-shell{padding-top:env(safe-area-inset-top);background:linear-gradient(#fff 0 180px,var(--bg) 180px)}
.account-page{min-height:calc(100dvh - 160px);background:var(--bg);padding-bottom:24px}.account-identity{display:flex;align-items:center;gap:18px;width:100%;padding:48px 24px 34px;background:#fff;text-align:left;min-height:172px}.account-portrait{width:64px;height:64px;flex-shrink:0}.account-portrait .chat-avatar{width:64px;height:64px;border-radius:10px}.account-identity-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:10px}.account-identity-copy strong{font-size:22px;line-height:1.3;overflow-wrap:anywhere}.account-identity-copy>span{font-size:14px;color:#7b827e;line-height:1.5}.account-identity>svg{width:18px;height:18px;color:#a0a5a2}.account-list{margin-top:10px;background:#fff}.account-menu-row,.account-placeholder{display:flex;align-items:center;gap:18px;width:100%;min-height:58px;padding:16px 20px;text-align:left;background:white;position:relative;font-size:16px}.account-menu-row+*,.account-placeholder+*{border-top:1px solid #f1f2f1}.account-menu-row>svg:first-child,.account-placeholder>svg{color:#075c38;width:22px;height:22px}.account-menu-row>span,.account-placeholder>span{flex:1}.account-menu-row>svg:last-child{width:16px;height:16px;color:#a9adaa}.account-placeholder small{font-size:14px;color:#9aa09c}.account-settings{margin-top:10px}.personal-page .settings-header{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;background:#ededed;padding:12px 16px;min-height:58px}.personal-page .settings-header h1{text-align:center;font-size:20px;font-weight:600}.personal-list{background:#fff}.personal-row{display:flex;gap:14px;align-items:center;width:100%;min-height:62px;padding:18px 24px;border-bottom:1px solid #f2f2f2;text-align:left;background:#fff;font-size:17px}.personal-value{margin-left:auto;max-width:65%;color:#808783;text-align:right;overflow-wrap:anywhere;font-size:16px}.personal-value small{display:block;font-size:13px;color:#8c938f;margin-top:4px}.personal-row>svg{width:16px;height:16px;color:#adb3af;flex-shrink:0}.personal-avatar-row{min-height:84px}.personal-avatar .chat-avatar{width:48px;height:48px;border-radius:7px}.personal-static .personal-value{margin-right:30px}.gender-options label{display:flex;justify-content:space-between;align-items:center;padding:18px 4px;border-bottom:1px solid #edf0ed;font-size:16px}.gender-options input{width:20px;height:20px;accent-color:#075c38}.personal-note{font-size:14px;color:#758279;margin:8px 0 16px}.profile-code-field{display:flex;gap:10px;align-items:flex-end;margin-bottom:16px}.profile-code-field .field{flex:1;min-width:0;margin:0}.profile-code-field button{min-height:46px;margin-bottom:0}.personal-shell .bottomnav{display:none}

.chat-standalone:not(.chat-keyboard-open) .chat-shell .community-composer{min-height:var(--chat-rest-dock-height,0px)}


/* Resting iPhone PWA chat must contribute its height to the document. A fixed
   shell leaves body at zero height and exposes the shortened viewport canvas.
   Use the existing stable screen-height value, not reactive gap compensation;
   keyboard-open chat keeps the visual-viewport positioning above. */
.ios-standalone.chat-standalone:not(.chat-keyboard-open) .chat-shell{position:relative;top:0;height:var(--ios-startup-height,100svh);max-height:var(--ios-startup-height,100svh)}


/* Two approved room illustrations share their original source without
   resampling; each square displays its corresponding half. */
.ggm-room-art{display:block;width:100%;height:100%;border-radius:12px;background-color:#fff;background-image:url("assets/ggm-room-icons-9b6e643c21fc.jpg");background-size:200% auto;background-repeat:no-repeat}
.ggm-room-art-team{background-position:left center}
.ggm-room-art-public{background-position:right center}
