:root{--paper:#faf7f0;--card:#ffffff;--ink:#1f1a11;--ink-soft:#5d5644;--gran:#2a2318;--gran-deep:#1c1710;--falu:#a83e2c;--ho:#ffc63f;--line:#ddd3bc;--chip:#efe9d9;--radius:14px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Instrument Sans,system-ui,-apple-system,sans-serif;background:#ece5d4;color:var(--ink);justify-content:center;-webkit-font-smoothing:antialiased}.shell,body{display:flex}.shell{width:100%;max-width:460px;background:var(--paper);min-height:100vh;min-height:100dvh;flex-direction:column;box-shadow:0 0 40px rgba(0,0,0,.08)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--gran);color:#f2f0e6;padding:14px 18px 12px;display:flex;align-items:center;justify-content:space-between}.topbar .brand{font-weight:800;font-size:17px;letter-spacing:.2px;color:#f2f0e6;text-decoration:none}.topbar .brand span{color:var(--ho)}main{flex:1 1;padding:18px 16px calc(96px + env(safe-area-inset-bottom, 0px))}h1.page{font-weight:800;font-size:26px;margin:2px 0 4px}.sub{color:var(--ink-soft);font-size:14px;margin-bottom:16px}.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:10px;color:inherit;text-decoration:none}a.card:active{transform:scale(.985)}.member-row{display:flex;gap:12px;align-items:center}.member-row .info{flex:1 1;min-width:0}.member-row .name{font-weight:600;font-size:15px}.member-row .meta{font-size:13px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar{width:44px;height:44px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;color:#fff;background-size:cover;background-position:50%;overflow:hidden}.avatar.lg{width:72px;height:72px;font-size:24px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag{background:var(--chip);border-radius:20px;padding:3px 10px;font-size:12px;font-weight:500}.field input,.field textarea,.search{width:100%;padding:11px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card);font-family:inherit;font-size:16px}.search{margin-bottom:12px}.field input:focus,.field textarea:focus,.search:focus{outline:2px solid var(--gran);outline-offset:-1px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;color:var(--gran-deep)}.field .hint{font-size:12px;color:var(--ink-soft);margin-top:4px}.btn{font-family:inherit;font-weight:600;font-size:15px;border:none;border-radius:10px;padding:13px 16px;cursor:pointer;width:100%}.btn.primary{background:var(--ho);color:var(--gran-deep)}.btn.ghost{background:var(--chip);color:var(--ink)}.btn:disabled{opacity:.6;cursor:default}.back{display:inline-block;background:none;border:none;color:var(--gran);font-weight:600;font-size:14px;cursor:pointer;padding:0;margin-bottom:14px;font-family:inherit;text-decoration:none}.profile-head{display:flex;gap:14px;align-items:center;margin-bottom:14px}.profile-head .name{font-weight:800;font-size:22px}.profile-head .co{color:var(--ink-soft);font-size:14px}.bio{line-height:1.55;margin-bottom:14px;white-space:pre-wrap}.bio,.kv{font-size:14px}.kv{display:flex;gap:8px;margin-bottom:6px}.kv .k{color:var(--ink-soft);width:92px;flex:none}.notice{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--ho);border-radius:10px;padding:11px 13px;font-size:13px;margin-bottom:12px;line-height:1.5}.notice.ok{border-left-color:var(--gran)}.notice.err{border-left-color:var(--falu)}.empty{color:var(--ink-soft);font-size:14px;text-align:center;padding:26px 10px;line-height:1.5}nav.tabs{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:460px;z-index:30;background:var(--card);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:10px 14px calc(10px + env(safe-area-inset-bottom, 12px))}nav.tabs a{font-size:10.5px;font-weight:600;color:var(--ink-soft);display:flex;flex-direction:column;align-items:center;gap:3px;width:64px;text-decoration:none}nav.tabs a .ic{font-size:20px;line-height:1}nav.tabs a.on{color:var(--gran)}.login-wrap{flex:1 1;display:flex;flex-direction:column;justify-content:center;padding:28px 22px 80px}.login-logo{font-weight:800;font-size:24px;color:var(--gran);margin-bottom:6px}.login-logo span{color:var(--falu)}.event-row{display:flex;gap:12px}.event-row .info{flex:1 1;min-width:0}.event-row .title{font-weight:600;font-size:15px;margin-bottom:2px}.event-row .meta{font-size:13px;color:var(--ink-soft)}.event-date{flex:none;width:52px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:6px 0;height:-moz-fit-content;height:fit-content}.event-date .d{font-weight:800;font-size:20px;line-height:1}.event-date .m{text-transform:uppercase;color:var(--falu)}.badge,.event-date .m{font-size:11px;font-weight:700}.badge{display:inline-block;border-radius:6px;padding:2px 7px;margin-left:6px;vertical-align:1px}.badge.food{background:#f6e9c8;color:#7a5a12}.badge.going{background:#f6ecca;color:#6b5410}.badge.past{background:var(--chip);color:var(--ink-soft)}.event-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.count{font-size:12px;color:var(--ink-soft)}.av-stack{display:flex}.av-stack .avatar{border:2px solid var(--card);margin-left:-9px;width:30px;height:30px;font-size:11px}.av-stack .avatar:first-child{margin-left:0}.btn.danger-soft{background:#f4e3df;color:var(--falu)}.fab-row{margin-bottom:14px}.field select{width:100%;padding:11px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card);font-family:inherit;font-size:16px}.check-row{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500}.check-row input{width:20px;height:20px;accent-color:var(--gran)}.overlay{position:fixed;inset:0;background:rgba(30,40,30,.45);z-index:40;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:460px;background:var(--paper);border-radius:20px 20px 0 0;padding:20px 18px 28px}.sheet h3{font-weight:800;font-size:19px;margin-bottom:6px}.sheet .hint{font-size:13px;color:var(--ink-soft);margin-bottom:14px;line-height:1.5}.opt{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:8px;cursor:pointer;font-size:14px;font-weight:500}.opt input{accent-color:var(--gran);width:18px;height:18px}.gdpr{background:#f4efe0;border:1px solid #e0d7bd;border-radius:10px;padding:10px 12px;font-size:12px;color:var(--gran-deep);line-height:1.5;margin:12px 0}.diet-table{width:100%;border-collapse:collapse;font-size:14px}.diet-table td,.diet-table th{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}.diet-table th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cal-title{font-weight:800;font-size:16px}.cal-nav{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:var(--paper);font-size:18px;cursor:pointer;color:var(--gran);font-weight:700;line-height:1}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:3px;gap:3px}.cal-dow{text-align:center;font-size:11px;font-weight:700;color:var(--ink-soft);padding:4px 0}.cal-cell{aspect-ratio:1;border:none;background:none;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:inherit;font-size:13px;color:var(--ink);padding:0}.cal-cell.has-ev{background:var(--chip);cursor:pointer;font-weight:600}.cal-cell.today .cal-num{background:var(--falu);color:#fff;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.cal-cell.sel{outline:2px solid var(--gran);outline-offset:-2px;background:#f6ecca}.cal-dots{display:flex;gap:2px;height:5px}.cal-dot{width:5px;height:5px;border-radius:50%;background:var(--gran)}.cal-selected{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.cal-ev{display:flex;gap:10px;align-items:baseline;padding:8px 6px;border-radius:8px;text-decoration:none;color:inherit;font-size:14px}.cal-ev:active{background:var(--chip)}.cal-ev-time{font-weight:700;color:var(--gran);font-size:13px;flex:none}.cal-ev-title{font-weight:500}.feed-img{border-radius:10px;margin-bottom:10px}.feed-img,.img-preview{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:var(--chip)}.img-preview{border-radius:12px;margin-bottom:8px;border:1px solid var(--line)}.badge.cowork{background:var(--gran);color:var(--ho)}.badge.member{background:#e3e9f4;color:#3e5c8a}.badge.pending{background:#f6e9c8;color:#7a5a12}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 8px;text-align:center}.stat-num{font-weight:800;font-size:22px;color:var(--gran)}.stat-label{font-size:11px;color:var(--ink-soft);margin-top:2px}.bar-chart{display:flex;align-items:flex-end;gap:4px;height:90px}.bar-col{flex:1 1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.bar{width:100%;background:var(--gran);border-radius:4px 4px 0 0;min-height:4px}.bar-label{font-size:9px;color:var(--ink-soft);margin-top:3px}.log-row{display:flex;gap:10px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:6px}.log-ic{font-size:16px;flex:none}.log-body{flex:1 1;min-width:0}.log-text{font-size:13px;line-height:1.4}.log-time{font-size:11px;color:var(--ink-soft);margin-top:2px}.chat-head{display:flex;gap:12px;align-items:center;margin-bottom:14px}.chat{flex-direction:column;padding-bottom:66px}.chat,.msg-row{display:flex;gap:8px}.msg-row{align-items:flex-end}.msg-row.me{justify-content:flex-end}.msg-row .avatar{width:30px;height:30px;font-size:11px}.msg{max-width:78%;padding:9px 13px;border-radius:14px;font-size:14px;line-height:1.45;word-break:break-word}.msg .who{font-size:11px;font-weight:700;color:var(--gran);margin-bottom:2px}.msg.them{background:var(--card);border:1px solid var(--line);border-bottom-left-radius:4px}.msg.me{background:var(--gran);color:#fff;border-bottom-right-radius:4px}.msg .time{font-size:10px;opacity:.55;margin-top:3px}.chatbar{position:fixed;bottom:calc(66px + env(safe-area-inset-bottom, 0px));left:50%;transform:translateX(-50%);width:100%;max-width:460px;display:flex;gap:8px;padding:8px 16px 10px;background:linear-gradient(transparent,var(--paper) 30%);z-index:25}.chatbar input,.chatbar textarea{flex:1 1;padding:11px 14px;border-radius:22px;border:1px solid var(--line);font-family:inherit;font-size:16px;background:var(--card)}.chatbar textarea{resize:none;line-height:1.4;max-height:130px;overflow-y:auto;border-radius:18px}.chatbar{align-items:flex-end}.field textarea{resize:vertical;line-height:1.5}.chatbar button{flex:none;width:42px;height:42px;border-radius:50%;border:none;background:var(--gran);color:#fff;font-size:16px;cursor:pointer}.unread-dot{display:inline-flex;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:10px;background:var(--falu);color:#fff;font-size:11px;font-weight:700;vertical-align:1px}.group-icon,.unread-dot{align-items:center;justify-content:center}.group-icon{width:44px;height:44px;border-radius:12px;flex:none;display:flex;font-size:20px;background:var(--chip)}.icon-row{display:flex;flex-wrap:wrap;gap:6px}.icon-pick{width:42px;height:42px;border-radius:10px;font-size:20px;border:1px solid var(--line);background:var(--card);cursor:pointer}.icon-pick.on{outline:2px solid var(--gran);outline-offset:-2px;background:#f6ecca}.badge.fraga{background:#f6e2c8;color:#7a4a12}.badge.tips{background:#e8e9d8;color:#55603a}.badge.anslag{background:#e3e9f4;color:#3e5c8a}.composer .info,.post-body{font-size:14px}.post-body{line-height:1.5;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.kind-row{display:flex;gap:6px}.kind-pick{flex:1 1;padding:10px 6px;border-radius:10px;font-size:13px;font-weight:600;border:1px solid var(--line);background:var(--card);cursor:pointer;font-family:inherit}.kind-pick.on{outline:2px solid var(--gran);outline-offset:-2px;background:#f6ecca}.badge.price{background:var(--ho);color:var(--gran-deep)}.topbar .bell{position:relative;color:#f2f0e6;display:flex;align-items:center;padding:4px}.bell-dot{position:absolute;top:2px;right:2px;width:9px;height:9px;border-radius:50%;background:var(--ho);border:2px solid var(--gran)}.kb-content p{font-size:15px;line-height:1.65;margin:8px 0}.kb-content h2{font-size:18px;font-weight:800;margin:18px 0 6px;color:var(--gran-deep)}.kb-content h2:first-child{margin-top:2px}.kb-content h3{font-size:15.5px;font-weight:700;margin:14px 0 4px}.kb-content ol,.kb-content ul{padding-left:22px;margin:8px 0}.kb-content li{font-size:15px;line-height:1.55;margin:4px 0}.kb-content hr{border:none;border-top:1px solid var(--line);margin:16px 0}.kb-content strong{font-weight:700}.att-view{margin-top:10px}.att-images{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.att-images img{max-width:100%;width:auto;max-height:260px;border-radius:12px;display:block}.att-file,.att-images img{border:1px solid var(--line)}.att-file{display:inline-flex;align-items:center;gap:4px;background:var(--chip);border-radius:10px;padding:7px 11px;font-size:13px;color:var(--ink);text-decoration:none;margin:2px 6px 2px 0;word-break:break-all}.att-thumbs{display:flex;align-items:center;gap:6px;margin-top:8px}.att-thumbs img{width:56px;height:56px;object-fit:cover;border-radius:8px}.att-chip,.att-thumbs img{border:1px solid var(--line)}.att-chip{display:inline-flex;align-items:center;gap:5px;background:var(--chip);border-radius:10px;padding:5px 9px;font-size:12.5px}.att-picker{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.att-picker .att-chip button{border:none;background:none;cursor:pointer;font-size:12px;color:var(--ink-soft);padding:0 2px}.msg-img{max-width:220px;max-height:220px;border-radius:10px;display:block;margin-bottom:4px}.msg-file{margin-bottom:4px;background:rgba(255,255,255,.85)}.chat-attach{flex:none;display:flex;align-items:center;justify-content:center;width:40px;height:44px;font-size:19px;cursor:pointer}