.btn{min-height:var(--touch-min);padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--text-lg);font-weight:700;cursor:pointer;transition:opacity .2s,background-color .2s;border:1px solid transparent}.btn.small{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);border-radius:var(--radius-sm)}.btn.medium{padding:var(--space-4);font-size:var(--text-lg);border-radius:var(--radius-md)}.btn.primary{background-color:var(--primary);color:var(--on-primary)}.btn.secondary{background-color:var(--surface);color:var(--primary);border:2px solid var(--primary)}.btn.danger{background-color:var(--error);color:var(--on-error)}.btn.ghost{background-color:transparent;color:var(--primary)}.btn.ghost:hover:not(:disabled){background-color:var(--hover-color);opacity:1}.btn.outline{background-color:transparent;color:var(--text-color);border:1px solid var(--border-color)}.btn.outline:hover{background-color:var(--hover-color)}.btn:hover{opacity:.9}.btn.is-loading{cursor:progress}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.secondary:disabled{color:var(--text-muted);border-color:var(--border-soft);opacity:1}.input-group{display:flex;flex-direction:column;gap:.4rem;width:100%}.input-group label{font-size:var(--text-sm);font-weight:600;color:var(--text-color);opacity:.85}.input-wrapper{display:flex;align-items:center;position:relative;background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border-soft);transition:border-color .2s ease,box-shadow .2s ease}.input-wrapper input,.input-wrapper textarea,.input-wrapper select{flex:1;min-width:0;border:none;background:transparent;padding:.9rem 3rem .9rem 1rem;font-size:var(--text-base);color:var(--text-color);resize:none}.input-wrapper input::placeholder,.input-wrapper textarea::placeholder{color:var(--text-soft)}.input-wrapper:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--input-focus)}.input-wrapper input:disabled,.input-wrapper textarea:disabled,.input-wrapper select:disabled{color:var(--disabled-text);cursor:not-allowed}.input-wrapper:has(input:disabled),.input-wrapper:has(textarea:disabled),.input-wrapper:has(select:disabled){background:var(--disabled-bg);border-color:var(--border-soft)}.input-wrapper textarea:focus{outline:none}.toggle-password-btn{position:absolute;right:.9rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;color:var(--text-muted)}.input-wrapper:focus-within .toggle-password-btn{color:var(--text-muted)!important}.toggle-password-btn:hover{color:var(--primary)}.toggle-password-btn svg{width:20px;height:20px;pointer-events:none}.form-error{color:var(--error);font-size:var(--text-xs);margin-top:.2rem}.bottom-sheet-backdrop{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;background:var(--overlay);z-index:1000}.bottom-sheet{width:100%;max-width:600px;max-height:85vh;overflow-y:auto;padding:0 var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--surface);color:var(--text-color);box-shadow:var(--shadow-md);transition:transform .2s ease}.bottom-sheet:focus{outline:none}.bottom-sheet__handle{display:flex;justify-content:center;padding:var(--space-3) 0;touch-action:none;cursor:grab}.bottom-sheet__grip{width:40px;height:4px;border-radius:var(--radius-pill);background:var(--border-color)}.bottom-sheet__title{margin:0 0 var(--space-3);font-size:var(--text-xl);font-weight:700}.bottom-sheet__body{font-size:var(--text-base)}.bottom-sheet__footer{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-4)}@media(prefers-reduced-motion:reduce){.bottom-sheet{transition:none}}.bottom-sheet--half{display:flex;flex-direction:column;height:50vh;height:50dvh;overflow:hidden}.bottom-sheet--half .bottom-sheet__body{flex:1;min-height:0;display:flex;flex-direction:column}.chip-row{display:flex;flex-wrap:nowrap;gap:var(--space-2);padding:var(--space-2) var(--space-4);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chip-row::-webkit-scrollbar{display:none}.chip{position:relative;flex:0 0 auto;height:40px;padding:0 var(--space-4);border:1px solid var(--border-color);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-color);font:inherit;font-size:var(--text-sm);font-weight:600;white-space:nowrap;cursor:pointer}.chip:after{content:"";position:absolute;inset:-2px 0}.chip--selected{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.chip:focus-visible{outline:var(--focus-outline);outline-offset:2px}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-muted)}.empty-state__icon{font-size:var(--text-2xl);color:var(--text-soft)}.empty-state__title{margin:0;font-size:var(--text-base);font-weight:600;color:var(--text-color)}.empty-state__description{margin:0;font-size:var(--text-sm)}.empty-state__action{margin-top:var(--space-2)}.page-header{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;width:100%;height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(var(--space-4),env(safe-area-inset-right)) 0 max(var(--space-4),env(safe-area-inset-left));box-sizing:border-box;border-bottom:1px solid var(--border-soft);background:var(--surface);color:var(--text-color);position:sticky;top:0;z-index:10}.page-header__title{flex:1;min-width:0;margin:0;font-size:var(--text-xl);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-header__content{flex:1;min-width:0;display:flex;align-items:center}.page-header__back{display:inline-flex;align-items:center;justify-content:center;width:var(--touch-min);height:var(--touch-min);margin-left:calc(var(--space-2) * -1);border:0;border-radius:var(--radius-pill);background:transparent;color:var(--text-muted);font-size:var(--text-xl);cursor:pointer}.page-header__back:disabled{opacity:.5;cursor:default}.page-header__actions{display:flex;align-items:center;gap:var(--space-1);margin-right:calc(var(--space-2) * -1)}.page-header__actions>button,.page-header__actions>a{display:inline-flex;align-items:center;justify-content:center;min-width:var(--touch-min);min-height:var(--touch-min);border:0;background:transparent;color:var(--text-muted);font-size:var(--text-xl);cursor:pointer}.page-header__back:focus-visible,.page-header__actions>button:focus-visible,.page-header__actions>a:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.skeleton{display:block;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--background-alt) 25%,var(--border-soft) 50%,var(--background-alt) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}.skeleton--circle{border-radius:50%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.tabs{display:flex;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--border-color);background:var(--surface)}.tabs::-webkit-scrollbar{display:none}.tabs__tab{flex:1 0 auto;min-height:var(--touch-min);padding:0 var(--space-4);border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text-muted);font:inherit;font-size:var(--text-base);font-weight:600;white-space:nowrap;cursor:pointer}.tabs__tab--active{border-bottom-color:var(--primary);color:var(--primary)}.tabs__tab:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.confirm-sheet__message{margin:0 0 var(--space-3);color:var(--text-color)}.section-card{background-color:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.section-card__title{margin:0;font-size:var(--text-base);font-weight:700;color:var(--text-color)}.admin-page{background:var(--background);min-height:100vh;min-height:100dvh;box-sizing:border-box;max-width:600px;margin:0 auto;padding-bottom:var(--space-8)}.admin-list{list-style:none;margin:0;padding:0}.admin-row{position:relative;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);min-height:var(--touch-min);background:var(--surface);border-bottom:1px solid var(--border-soft);color:var(--text-color);text-decoration:none}.admin-row--skeleton{gap:var(--space-2)}.admin-row__title{font-weight:600}.admin-row__meta{font-size:var(--text-sm);color:var(--text-muted)}.admin-row__status{font-size:var(--text-sm);color:var(--text-muted);font-weight:600}.admin-more{display:flex;justify-content:center;padding:var(--space-3) var(--space-4)}.admin-error{margin:var(--space-3) var(--space-4);padding:var(--space-3);border:1px solid var(--error-border);border-radius:var(--radius-md);color:var(--error-text)}.admin-error p{margin:0 0 var(--space-2)}.admin-detail{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.admin-detail__title{margin:0;font-size:var(--text-xl);font-weight:700;color:var(--text-color)}.admin-detail__status{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.admin-fields{margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.admin-field{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm)}.admin-field dt{color:var(--text-muted)}.admin-field dd{margin:0;color:var(--text-color);text-align:right;overflow-wrap:anywhere}.admin-block{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:var(--space-3)}.admin-block h3{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--text-muted);font-weight:600}.admin-text{margin:0;color:var(--text-color);white-space:pre-wrap;overflow-wrap:anywhere}.admin-actions{display:flex;flex-direction:column;gap:var(--space-2)}.admin-duration{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.admin-invite__actions{display:flex;margin:var(--space-1) 0 calc(var(--space-2) * -1) calc(var(--space-4) * -1)}.admin-invite__form{display:flex;flex-direction:column;gap:var(--space-3)}.admin-invite__warning{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.admin-invite__code{margin:0 0 var(--space-4);padding:var(--space-4);background:var(--background);border:1px solid var(--border-soft);border-radius:var(--radius-md);color:var(--text-color);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-2xl);font-weight:700;letter-spacing:.12em;text-align:center;-webkit-user-select:all;user-select:all}.admin-verification__actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.admin-verification__link{color:var(--primary);overflow-wrap:anywhere;font-size:var(--text-sm)}.admin-verification__error{margin:0;font-size:var(--text-sm);color:var(--error-text)}.admin-verification__unverify{margin:var(--space-4)}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;background:var(--surface);border-top:1px solid var(--border-soft);box-shadow:0 -2px 10px var(--shadow-color);display:flex;justify-content:space-around;padding:.6rem 0;padding-bottom:calc(.6rem + env(safe-area-inset-bottom));z-index:999}.bottom-nav a{color:var(--text-muted);font-size:var(--text-2xl);display:flex;align-items:center;justify-content:center;flex:1 1 0;max-width:72px;min-height:var(--touch-min);height:45px;border-radius:var(--radius-md);transition:color .2s ease,background-color .2s ease;position:relative}.bottom-nav a.active{color:var(--primary);background:var(--primary-soft)}@media(hover:hover){.bottom-nav a:hover{background:var(--hover-color);color:var(--primary)}}.bottom-nav svg{width:24px;height:24px}.home-container{width:100%;max-width:600px;margin:0 auto;padding-bottom:calc(var(--space-8) + var(--space-8));background-color:var(--background);color:var(--text-color)}.home-section{padding-top:var(--space-4)}.home-section__title{margin:0;padding:0 var(--space-4) var(--space-2);font-size:var(--text-lg);font-weight:700}.home-rail{display:flex;gap:var(--space-3);margin:0;padding:0 var(--space-4) var(--space-2);list-style:none;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding-inline:var(--space-4)}.home-rail::-webkit-scrollbar{display:none}.home-rail__item{flex:0 0 140px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3);box-sizing:border-box;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);scroll-snap-align:start}.home-rail__item--community{flex-basis:140px}.home-rail__link{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);width:100%;min-height:var(--touch-min);color:var(--text-color);text-decoration:none}.home-rail__link:focus-visible{outline:var(--focus-outline);outline-offset:2px}.home-rail__name,.home-rail__meta{width:100%;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-rail__name{justify-content:center;font-weight:600;font-size:var(--text-sm)}.home-rail__meta{font-size:var(--text-xs);color:var(--text-muted)}.home-rail__item .follow-user-button.follow-user-button,.home-rail__item .community-join-button.community-join-button{min-width:0;min-height:var(--touch-min);padding:var(--space-1) var(--space-4);font-size:var(--text-sm);font-weight:600}.home-header__logo{display:block;height:36px;width:auto}.home-header__link{position:relative}.home-header__badge{position:absolute;top:6px;right:4px;min-width:18px;height:18px;padding:0 var(--space-1);box-sizing:border-box;border:2px solid var(--surface);border-radius:var(--radius-pill);background:var(--secondary);color:var(--on-secondary);font-size:var(--text-xs);font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center}.home-skeletons{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.home-error{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-4);text-align:center;color:var(--error-text);font-weight:500}.home-error p{margin:0}.home-more{display:flex;justify-content:center;padding:var(--space-2) 0}.avatar{border-radius:50%;object-fit:cover;flex-shrink:0;background-color:var(--background-alt)}.avatar-fallback{display:flex;align-items:center;justify-content:center;background:var(--primary);color:var(--on-primary);font-weight:700;-webkit-user-select:none;user-select:none}.verified-badge{flex:none;width:1em;height:1em;color:var(--primary)}.community-name{display:flex;align-items:center;gap:var(--space-1);min-width:0;max-width:100%}.community-name__text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-comments{display:flex;flex:1;flex-direction:column;min-height:0;padding:0 0 var(--space-2)}.post-comments__scroll{flex:1;min-height:0;overflow-y:auto}.post-comments__list{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}.post-comments__skeletons{display:flex;flex-direction:column;gap:var(--space-3)}.post-comments__empty,.post-comments__error{margin:0;padding:var(--space-3) 0;color:var(--text-muted);font-size:var(--text-sm)}.post-comments__more{display:block;margin:var(--space-3) auto 0}.post-comment{display:flex;align-items:flex-start;gap:var(--space-3)}.post-comment>a{display:flex;flex-shrink:0;text-decoration:none}.post-comment__content{flex:1;min-width:0}.post-comment__text{margin:0;font-size:var(--text-sm);color:var(--text-color);white-space:pre-wrap;overflow-wrap:anywhere}.post-comment__name{font-weight:700;color:var(--text-color);text-decoration:none}.post-comment__age{font-size:var(--text-xs);color:var(--text-muted)}.post-comment__more{display:inline-flex;align-items:center;justify-content:center;min-width:var(--touch-min);min-height:var(--touch-min);margin:calc(var(--space-3) * -1) calc(var(--space-3) * -1) 0 0;border:0;background:transparent;color:var(--text-muted);cursor:pointer}.post-comments__form{flex-shrink:0;display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4)}.post-comments__input{flex:1;min-width:0;min-height:var(--touch-min);box-sizing:border-box;padding:0 var(--space-4);border:1px solid var(--input-border);border-radius:var(--radius-pill);background:var(--input-bg);color:var(--text-color);font-size:var(--text-base)}.post-comments__send{display:inline-flex;align-items:center;justify-content:center;width:var(--touch-min);height:var(--touch-min);border:0;border-radius:var(--radius-pill);background:var(--primary);color:var(--on-primary);cursor:pointer}.post-comments__send:disabled{background:var(--disabled-bg);color:var(--disabled-text);cursor:default}.post-comments__form-error{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--error-text)}.post-comment__sheet-action{width:100%;min-height:var(--touch-min);border:0;background:transparent;color:var(--error-text);font:inherit;font-size:var(--text-base);text-align:left;cursor:pointer}.post-comment__sheet-action:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.post-card{background:var(--surface);border-bottom:1px solid var(--border-soft);padding:var(--space-3) 0}.post-card__header{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4)}.post-card__author{display:flex;align-items:center;justify-content:center;min-width:var(--touch-min);min-height:var(--touch-min);margin:calc((32px - var(--touch-min)) / 2);text-decoration:none;flex-shrink:0}.post-card__who{display:flex;flex-direction:column;min-width:0;flex:1}.post-card__name{font-weight:700;font-size:var(--text-sm);color:var(--text-color);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-card__meta{font-size:var(--text-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-card__community{color:var(--primary);text-decoration:none}.post-card__more{display:inline-flex;align-items:center;justify-content:center;min-width:var(--touch-min);min-height:var(--touch-min);margin-right:calc(var(--space-3) * -1);border:0;background:transparent;color:var(--text-muted);cursor:pointer}.post-card__body{margin:var(--space-3) 0 0;padding:0 var(--space-4);font-size:var(--text-base);color:var(--text-color);white-space:pre-wrap;overflow-wrap:anywhere}.post-card__media{display:grid;gap:2px;margin-top:var(--space-3)}.post-card__media img{display:block;width:100%;object-fit:cover;background:var(--background-alt)}.post-card__media--1 img{max-height:520px}.post-card__media--2,.post-card__media--3,.post-card__media--4{grid-template-columns:1fr 1fr}.post-card__media--2 img,.post-card__media--3 img,.post-card__media--4 img{aspect-ratio:1}.post-card__media--3 img:first-child{grid-row:span 2;height:100%}.post-card__actions{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2) 0}.post-card__action{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:0 var(--space-2);border:0;background:transparent;color:var(--text-muted);font-size:var(--text-sm);text-decoration:none;cursor:pointer}.post-card__action svg{font-size:var(--text-xl)}.post-card__action--liked{color:var(--error)}.post-card__error{font-size:var(--text-xs);color:var(--error-text)}.post-card__sheet-action{width:100%;min-height:var(--touch-min);border:0;background:transparent;font-size:var(--text-base);color:var(--error-text);text-align:left;cursor:pointer}.post-card__verified{margin-left:var(--space-1);vertical-align:-.125em}.community-join-button-container{display:flex;flex-direction:column;gap:8px}.community-join-button{padding:.625rem 1.25rem;border-radius:var(--radius-sm);border:1px solid transparent;font-size:var(--text-base);font-weight:500;cursor:pointer;transition:transform .1s ease,opacity .2s ease;font-family:inherit;min-width:120px;display:inline-flex;align-items:center;justify-content:center}.community-join-button.not-member{background-color:var(--primary);color:var(--on-primary)}.community-join-button.member{background-color:transparent;color:var(--text-color);border-color:var(--border-color)}.community-join-button.owner{background-color:var(--disabled-bg);color:var(--text-color);border-color:var(--border-color);cursor:not-allowed;opacity:.7}@media(hover:hover)and (pointer:fine){.community-join-button.not-member:hover:not(:disabled){background-color:var(--pressed-color);box-shadow:var(--shadow-sm)}.community-join-button.member:hover:not(:disabled){background-color:var(--hover-color);border-color:var(--text-color)}}.community-join-button:active:not(:disabled){transform:scale(.96)!important}.community-join-button:disabled{opacity:.6;cursor:not-allowed}.community-join-button.loading{position:relative;color:transparent!important}.community-join-button.loading:after{content:"";position:absolute;width:14px;height:14px;top:50%;left:50%;margin-left:-7px;margin-top:-7px;border:2px solid var(--border-soft);border-radius:50%;border-top-color:var(--on-primary);animation:spinner .6s linear infinite}.community-join-button.loading.member:after{border:2px solid var(--border-color);border-top-color:var(--text-color)}.community-join-error{padding:.5rem .75rem;background-color:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius-sm);color:var(--error-text);font-size:var(--text-sm)}.community-join-error p{margin:0;line-height:1.4}.community-join-button:focus,.community-join-button:active{outline:none!important;box-shadow:none!important}.community-join-button:focus-visible{outline:2px solid var(--pressed-color)!important;outline-offset:2px!important;box-shadow:var(--focus-ring)!important}.community-join-pending{opacity:.8}.follow-user-button-container{display:flex;flex-direction:column;gap:8px}.follow-user-button{padding:.625rem 1.25rem;border-radius:var(--radius-sm);border:1px solid transparent;font-size:var(--text-base);font-weight:500;cursor:pointer;transition:transform .1s ease,opacity .2s ease;font-family:inherit;min-width:120px;display:inline-flex;align-items:center;justify-content:center}.follow-user-button.not-following{background-color:var(--primary);color:var(--on-primary)}.follow-user-button.following{background-color:transparent;color:var(--text-color);border-color:var(--border-color)}@media(hover:hover)and (pointer:fine){.follow-user-button.not-following:hover:not(:disabled){background-color:var(--pressed-color);box-shadow:var(--shadow-sm)}.follow-user-button.following:hover:not(:disabled){background-color:var(--hover-color);border-color:var(--text-color)}}.follow-user-button:active:not(:disabled){transform:scale(.96)!important}.follow-user-button:disabled{opacity:.6;cursor:not-allowed}.follow-user-button.loading{position:relative;color:transparent!important}.follow-user-button.loading:after{content:"";position:absolute;width:14px;height:14px;top:50%;left:50%;margin-left:-7px;margin-top:-7px;border:2px solid var(--border-soft);border-radius:50%;border-top-color:var(--on-primary);animation:spinner .6s linear infinite}.follow-user-button.loading.following:after{border:2px solid var(--border-color);border-top-color:var(--text-color)}@keyframes spinner{to{transform:rotate(360deg)}}.follow-user-error{padding:.5rem .75rem;background-color:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius-sm);color:var(--error-text);font-size:var(--text-sm)}.follow-user-error p{margin:0;line-height:1.4}.follow-user-button:focus,.follow-user-button:active{outline:none!important;box-shadow:none!important}.follow-user-button:focus-visible{outline:2px solid var(--pressed-color)!important;outline-offset:2px!important;box-shadow:var(--focus-ring)!important}.login-form{display:flex;flex-direction:column;gap:1.3rem}.input-group input{padding:.9rem;background:var(--surface);border:1.8px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-color);transition:border-color .2s ease-in-out,background .2s}.login-btn{background-color:var(--primary);color:var(--on-primary);padding:1rem;border:none;border-radius:var(--radius-md);font-size:var(--text-lg);font-weight:700;cursor:pointer}.login-btn:hover{opacity:.9}.form-error{margin:0;color:var(--primary);font-size:var(--text-sm);display:flex;align-items:center;gap:.4rem}.error-icon{color:var(--primary)}.btn-google-custom{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:.75rem 1rem;background-color:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-color);font-family:Inter,system-ui,sans-serif;font-size:var(--text-base);font-weight:500;cursor:pointer;transition:all .2s ease}.btn-google-custom:hover{background-color:var(--hover-color);border-color:var(--primary);box-shadow:0 2px 4px var(--shadow-color)}.btn-google-custom:active{transform:scale(.98)}.btn-google-custom svg{flex-shrink:0}.has-legal-footer.has-legal-footer{position:relative;min-height:100dvh;box-sizing:border-box;padding-bottom:calc(var(--space-6) + var(--touch-min) + var(--space-2) + env(safe-area-inset-bottom))}.legal-footer{position:absolute;left:0;right:0;bottom:0;padding:0 var(--space-4) calc(var(--space-2) + env(safe-area-inset-bottom))}.legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-1) var(--space-4);font-size:var(--text-sm)}.legal-links a{color:var(--text-muted);text-decoration:underline;min-height:var(--touch-min);display:inline-flex;align-items:center}.terms-check{margin:var(--space-2) 0 var(--space-4)}.terms-check__label{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-muted);line-height:1.5;cursor:pointer}.terms-check__label input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--primary)}.terms-check__label a{color:var(--primary);text-decoration:underline}.cookie-notice{position:fixed;left:50%;bottom:calc(var(--space-3) + env(safe-area-inset-bottom));transform:translate(-50%);z-index:998;width:calc(100% - 2 * var(--space-4));max-width:448px;box-sizing:border-box;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 2px 10px var(--shadow-color);font-size:var(--text-sm);color:var(--text-muted);text-align:left;animation:cookie-notice-in .2s ease-out}@keyframes cookie-notice-in{0%{opacity:0;transform:translate(-50%,var(--space-4))}}@media(prefers-reduced-motion:reduce){.cookie-notice{animation:none}}.cookie-notice p{margin:0;flex:1}.cookie-notice a{color:var(--primary);text-decoration:underline}.cookie-notice .btn{flex:none;width:auto}.login-container{padding:.4rem 2rem;max-width:480px;margin:0 auto;font-family:Inter,sans-serif;color:var(--text-color);background:var(--background)}.login-title{text-align:center;font-size:var(--text-2xl);font-weight:800;color:var(--primary);margin-top:2rem}.login-subtitle{text-align:center;color:var(--text-muted);margin-bottom:2rem}.login-register{margin-top:1.6rem;text-align:center;font-size:var(--text-base);color:var(--text-soft)}.login-register span{color:var(--primary);font-weight:600;cursor:pointer;transition:color .15s ease}.login-register span:hover{color:var(--primary-light)}.login-forgot{margin:var(--space-3) 0 0;text-align:center;font-size:var(--text-sm)}.login-forgot a{display:inline-flex;align-items:center;min-height:var(--touch-min);color:var(--primary);font-weight:600;text-decoration:none}.form{display:flex;flex-direction:column;gap:1.3rem}.input-group{display:flex;flex-direction:column;gap:.4rem}.input-group label{font-size:var(--text-sm);font-weight:600;color:var(--text-color);opacity:.8}.input-group input{padding:.9rem;background:var(--surface);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-color);transition:border-color .2s ease-in-out}.input-group input::placeholder{color:var(--text-color);opacity:.5}.input-group input:focus{outline:none;border-color:var(--primary)}button.form-btn{background-color:var(--primary);color:var(--on-primary);padding:1rem;border:none;border-radius:var(--radius-md);font-size:var(--text-lg);font-weight:700;cursor:pointer;transition:opacity .2s}button.form-btn:hover{opacity:.9}.register-container{padding:.4rem 2rem;max-width:480px;margin:0 auto;font-family:Inter,sans-serif;color:var(--text-color);background:var(--background)}.register-title{text-align:center;font-size:var(--text-2xl);font-weight:800;color:var(--primary);margin-top:2rem}.register-subtitle{text-align:center;color:var(--text-muted);margin-bottom:2rem}.register-login{margin-top:1.6rem;text-align:center;font-size:var(--text-base);color:var(--text-soft)}.register-login span{color:var(--primary);font-weight:600;cursor:pointer;transition:color .15s ease}.register-login span:hover{color:var(--primary-light)}.register-invite{margin-bottom:var(--space-4)}.register-invite__hint{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--text-muted)}.register-google-error{margin:var(--space-3) 0 0;text-align:center;font-size:var(--text-sm);color:var(--error-text)}.verify-email{display:flex;flex-direction:column;gap:var(--space-4);max-width:480px;margin:0 auto;padding:var(--space-8) var(--space-4);color:var(--text-color);background:var(--background)}.verify-email__title{margin:0;text-align:center;font-size:var(--text-2xl);font-weight:800}.verify-email__text{margin:0;text-align:center;color:var(--text-muted)}.verify-email__link{display:flex;align-items:center;justify-content:center;min-height:var(--touch-min);color:var(--primary);font-weight:600;text-decoration:none}.settings-menu{background:var(--background);color:var(--text-color);max-width:500px;margin:0 auto}.logout-button{display:block;width:100%;min-height:var(--touch-min);padding:0 1rem;border:0;background:transparent;color:var(--error);font:inherit;font-weight:600;text-align:left;cursor:pointer}.delete-account__subtitle{margin:0 0 var(--space-2);font-weight:700}.delete-account__list{margin:0;padding-left:var(--space-4);color:var(--text-muted);font-size:var(--text-sm);display:flex;flex-direction:column;gap:var(--space-1)}.delete-account__hint{margin:0;color:var(--text-muted)}.verify-panel{display:flex;flex-direction:column;gap:var(--space-4)}.verify-panel__text,.verify-panel__verified{margin:0;color:var(--text-muted);overflow-wrap:anywhere}.legal-page{background:var(--background);color:var(--text-color);min-height:100vh}.legal-page__content{max-width:600px;margin:0 auto;padding:var(--space-4) var(--space-4) var(--space-8);box-sizing:border-box;line-height:1.6}.legal-draft{margin:0 0 var(--space-3);padding:var(--space-3) var(--space-4);background:var(--warning-bg);color:var(--text-color);border-left:4px solid var(--warning);border-radius:var(--radius-sm);font-size:var(--text-sm)}.legal-page__meta{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--text-muted)}.legal-page__summary{margin:0 0 var(--space-4);font-size:var(--text-lg);font-weight:600}.legal-section h2{margin:var(--space-6) 0 var(--space-2);font-size:var(--text-lg);font-weight:700}.legal-section p{margin:0 0 var(--space-2);font-size:var(--text-base)}.legal-section ul{margin:0 0 var(--space-2);padding-left:var(--space-5)}.legal-section li{margin-bottom:var(--space-2);overflow-wrap:anywhere}.legal-page__others{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--border-soft);font-size:var(--text-sm)}.legal-page__others a{color:var(--primary);text-decoration:underline;min-height:var(--touch-min);display:inline-flex;align-items:center}.access-container{padding:1.5rem;max-width:480px;margin:0 auto;text-align:center;font-family:Inter,sans-serif;background-color:var(--background);color:var(--text-color)}.access-header{margin-top:2rem}.access-title{font-size:2rem;font-weight:800;color:var(--primary)}.access-subtitle{font-size:var(--text-base);color:var(--text-muted);margin-top:.5rem}.access-illustration img{width:80%;max-width:260px;margin:2.5rem auto;display:block;filter:drop-shadow(0 4px 10px var(--shadow-color))}.access-buttons{display:flex;flex-direction:column;gap:1rem}.btn-primary{background-color:var(--primary);color:var(--on-primary);border:none;padding:1rem;font-size:var(--text-lg);border-radius:var(--radius-md);font-weight:700;cursor:pointer;transition:background-color .15s ease,transform .1s ease}.btn-primary:hover{background-color:var(--primary-light)}.btn-primary:active{transform:scale(.97)}.btn-secondary{background-color:var(--surface);border:2px solid var(--primary);color:var(--primary);padding:1rem;font-size:var(--text-lg);border-radius:var(--radius-md);font-weight:700;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.btn-secondary:hover{background-color:var(--hover-color)}.btn-secondary:active{background-color:var(--primary-soft);border-color:var(--primary-light)}.login-divider{display:flex;align-items:center;text-align:center;margin:1.5rem 0;color:var(--text-soft);font-size:var(--text-sm)}.login-divider:before,.login-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-color)}.login-divider:before{margin-right:1rem}.login-divider:after{margin-left:1rem}.google-login-wrapper{display:flex;justify-content:center;width:100%;margin-bottom:1rem}.google-login-wrapper>div{width:100%!important;display:flex;justify-content:center}.access-google-error{margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--error-text)}.profile-page{width:100%;max-width:600px;margin:0 auto;min-height:100vh;min-height:100dvh;box-sizing:border-box;padding-bottom:calc(var(--space-8) + var(--space-8));background:var(--background);color:var(--text-color)}.no-profile{padding:var(--space-4);color:var(--text-muted)}.pf-top{display:flex;align-items:center;gap:var(--space-6);padding:var(--space-4) var(--space-4) var(--space-2);background:var(--surface)}.pf-top .avatar{flex-shrink:0}.pf-stats{display:flex;flex:1;justify-content:space-around;gap:var(--space-2)}.pf-stat{display:flex;flex-direction:column;align-items:center;min-width:var(--touch-min);min-height:var(--touch-min);padding:0 var(--space-2);border:0;background:transparent;color:var(--text-color);font:inherit;cursor:pointer}.pf-stat:focus-visible{outline:var(--focus-outline);outline-offset:2px}.pf-stat__count{font-size:var(--text-xl);font-weight:700}.pf-stat__label{font-size:var(--text-sm);color:var(--text-muted)}.pf-info{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-4) var(--space-3);background:var(--surface)}.pf-info p{margin:0}.pf-name{display:flex;align-items:center;gap:var(--space-1);font-weight:700}.pf-verified{color:var(--primary)}.pf-bio{white-space:pre-line;overflow-wrap:anywhere}.pf-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted)}.pf-city{display:inline-flex;align-items:center;gap:var(--space-1)}.pf-level{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:600;background:var(--primary-soft);color:var(--text-color)}.pf-blocked{margin:0;padding:var(--space-3) var(--space-4);background:var(--surface);color:var(--text-muted);font-size:var(--text-sm)}.pf-actions{display:flex;gap:var(--space-2);padding:0 var(--space-4) var(--space-4);background:var(--surface)}.pf-actions>*{flex:1;min-width:0}.pf-actions button.btn,.pf-actions button.follow-user-button,.pf-actions button.community-join-button{width:100%;min-height:var(--touch-min);padding:var(--space-2) var(--space-3);border-width:1px;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600}.pf-tabs .tabs__tab{flex:1;padding:0 var(--space-2)}.pf-panel{padding-top:var(--space-3)}.pf-item{padding:0 var(--space-4) var(--space-3)}.pf-skeletons{display:flex;flex-direction:column;gap:var(--space-3);padding:0 var(--space-4)}.pf-more{display:block;margin:0 auto}.pf-error{padding:var(--space-4);text-align:center;color:var(--text-muted)}.pf-sheet-action{width:100%;min-height:var(--touch-min);border:0;background:transparent;color:var(--text-color);font:inherit;font-size:var(--text-base);text-align:left;cursor:pointer}.pf-sheet-action--danger{color:var(--error-text)}.pf-sheet-action:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.pf-lock{margin-left:var(--space-1);color:var(--text-muted);font-size:.85em;vertical-align:baseline}.pf-locked{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-6) var(--space-4);background:var(--surface);color:var(--text-muted);text-align:center}.pf-locked__title{margin:0;color:var(--text-color);font-weight:600}.pf-locked__text{margin:0;font-size:var(--text-sm)}.pf-stat:disabled{cursor:default}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.loading--overlay{position:fixed;inset:0;background-color:color-mix(in srgb,var(--surface) 80%,transparent);z-index:9999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading__spinner{position:relative}.loading__spinner-inner{border:3px solid color-mix(in srgb,var(--primary) 10%,transparent);border-top-color:var(--primary);border-radius:50%;animation:loading-spin 1s linear infinite}.loading--small .loading__spinner-inner{width:1rem;height:1rem;border-width:2px}.loading--medium .loading__spinner-inner{width:2rem;height:2rem;border-width:3px}.loading--large .loading__spinner-inner{width:3rem;height:3rem;border-width:4px}.loading__text{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.loading--small .loading__text{font-size:var(--text-xs)}.loading--large .loading__text{font-size:var(--text-base)}@keyframes loading-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loading__spinner-inner{animation:none;border-top-color:var(--primary);border-right-color:var(--primary)}}.event-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);color:var(--text-color);overflow:hidden}.event-card__main{display:flex;gap:var(--space-3);padding:var(--space-3);color:inherit;text-decoration:none}.event-card__date{flex:0 0 52px;display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:flex-start;background:var(--secondary);color:var(--on-secondary);border-radius:var(--radius-sm);padding:var(--space-2) 0}.event-card__day{font-size:var(--text-xl);font-weight:700;line-height:1}.event-card__month{font-size:var(--text-xs);text-transform:uppercase;font-weight:600}.event-card__body{min-width:0;flex:1}.event-card__title{margin:0 0 2px;font-size:var(--text-base);overflow-wrap:anywhere}.event-card__meta{margin:0;font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-card__meta:first-letter{text-transform:uppercase}.event-card__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding:0 var(--space-3) var(--space-3)}.event-card__people{display:flex;align-items:center;gap:var(--space-2);min-width:0}.event-card__avatars{display:inline-flex}.event-card__avatar{border:2px solid var(--surface)}.event-card__avatar+.event-card__avatar{margin-left:-10px}.event-card__places{font-size:var(--text-sm);color:var(--text-muted)}.event-card__places--full{color:var(--warning-text)}.event-card__badge{font-size:var(--text-sm);color:var(--text-muted)}.event-card__error{flex-basis:100%;font-size:var(--text-xs);color:var(--error)}.community-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-color)}.community-row__link{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0;min-height:var(--touch-min);color:inherit;text-decoration:none}.community-row__text{display:flex;flex-direction:column;min-width:0}.community-row__name{font-weight:600;color:var(--text-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.community-row__meta{font-size:var(--text-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.community-row__action{flex-shrink:0}.community-row__action .btn,.community-row__action .community-join-button{min-height:var(--touch-min);padding-inline:var(--space-3);font-size:var(--text-sm);min-width:0}.user-card{display:flex;align-items:center;gap:1rem;background:transparent;color:var(--text-color);padding:1rem;cursor:pointer;transition:all .2s ease;border:none;border-radius:0;-webkit-tap-highlight-color:transparent;border-bottom:1px solid var(--border-color)}.user-card:hover{background:var(--hover-color)}.user-card.pressed{background:var(--background-alt);transform:none}.user-card:hover .user-avatar{opacity:.9}.user-card.pressed .user-avatar{opacity:.8}.user-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.user-card-action{margin-left:auto;display:flex;align-items:center;flex-shrink:0;position:relative;z-index:1}.user-card-action button{min-width:95px;padding:.5rem 1rem;font-size:var(--text-sm);white-space:nowrap;pointer-events:auto}.user-name{font-weight:500;font-size:var(--text-base);line-height:1.4;color:var(--text-color);margin:0}.user-username{font-size:var(--text-sm);color:var(--text-muted);font-weight:400;margin:0}.user-card.pressed .user-name{color:var(--text-color)}.user-card.pressed .user-username{color:var(--text-muted)}.search-field{position:relative;display:flex;align-items:center;flex:1;min-width:0}.search-field input{width:100%;min-height:var(--touch-min);padding:0 calc(var(--touch-min)) 0 calc(var(--space-4) * 2 + .5rem);border-radius:var(--radius-pill);border:1px solid var(--input-border);background-color:var(--input-bg);color:var(--text-color);font:inherit;font-size:var(--text-base);box-sizing:border-box;appearance:none}.search-field input::-webkit-search-cancel-button{display:none}.search-field input:focus{outline:none;border-color:var(--primary)}.search-field input::placeholder{color:var(--text-muted)}.search-field__icon{position:absolute;left:var(--space-4);color:var(--text-muted);pointer-events:none}.search-field__clear{position:absolute;right:0;width:var(--touch-min);height:var(--touch-min);display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--text-muted);cursor:pointer}.followers-page,.following-page{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;background:var(--background);color:var(--text-color)}.follow-list__search{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-color);background:var(--surface)}.followers-results,.following-results{flex:1;padding-bottom:2rem}.followers-loading,.following-loading{display:flex;justify-content:center;align-items:center;padding:2rem}.followers-error,.following-error{text-align:center;color:var(--error);padding:1rem;margin:1rem 0}.follow-error-banner{background:var(--error-bg);color:var(--error-text);padding:.75rem 1rem;margin:.5rem 1rem;border-radius:var(--radius-sm);border-left:4px solid var(--error);font-size:var(--text-sm);animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.no-results{text-align:center;color:var(--text-muted);padding:2rem 1rem;font-style:italic}.results-count{font-size:var(--text-sm);color:var(--text-muted);padding:.5rem 0 1rem;text-align:center;border-bottom:1px solid var(--border-color);margin-bottom:1rem;font-weight:500}.load-more-container{display:flex;justify-content:center;padding:2rem 0}.load-more-btn{background:var(--primary);color:var(--on-primary);border:none;padding:.75rem 2rem;border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all .2s ease;min-width:120px}.load-more-btn:hover:not(:disabled){background:var(--primary-light);transform:translateY(-1px)}.load-more-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading-more{display:flex;justify-content:center;padding:1rem}@media(max-width:768px){.results-count{font-size:var(--text-sm);padding:.5rem 0}.load-more-btn{padding:.6rem 1.5rem;font-size:var(--text-sm)}}.search-page{background-color:var(--background);min-height:100vh;min-height:100dvh;color:var(--text-color);box-sizing:border-box}.search-top{position:sticky;top:0;z-index:10;background:var(--surface);border-bottom:1px solid var(--border-color)}.search-bar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.search-bar .search-bar__cancel{flex-shrink:0;padding-inline:var(--space-2);font-size:var(--text-base);font-weight:600}.search-results{display:flex;flex-direction:column;padding-bottom:calc(100px + env(safe-area-inset-bottom))}.search-section{display:flex;flex-direction:column}.search-section__head{display:flex;align-items:center;justify-content:space-between;padding-right:var(--space-2)}.search-section__title{margin:0;padding:var(--space-4) var(--space-4) var(--space-2);font-size:var(--text-base);font-weight:700;color:var(--text-color)}.search-section__more{align-self:center;margin:var(--space-2) 0}.search-event{padding:var(--space-2) var(--space-4) 0}.search-skeleton-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.search-skeleton-row__lines{display:flex;flex-direction:column;gap:var(--space-2);flex:1}.search-skeleton-event{padding:var(--space-2) var(--space-4) 0}.search-error{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-4);text-align:center;color:var(--error-text);font-weight:500}.search-error p{margin:0}.search-hint{text-align:center;padding:var(--space-3) var(--space-4);margin:0;color:var(--text-muted);font-size:var(--text-sm)}.search-recents{list-style:none;margin:0;padding:0}.search-recents__item{display:flex;align-items:center}.search-recents__term{flex:1;min-width:0;min-height:var(--touch-min);display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);border:0;background:transparent;color:var(--text-color);font:inherit;text-align:left;cursor:pointer}.search-recents__term svg{color:var(--text-muted);flex-shrink:0}.search-recents__term span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-recents__remove{width:var(--touch-min);height:var(--touch-min);display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--text-muted);cursor:pointer}.explore-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;list-style:none;margin:0;padding:0}.explore-grid__tile{aspect-ratio:1;min-width:0}.explore-grid__link{display:block;width:100%;height:100%;background:var(--border-soft)}.explore-grid__link:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.explore-grid__link img{display:block;width:100%;height:100%;object-fit:cover}.explore-more{display:flex;justify-content:center;padding:var(--space-2) 0}.explore-error{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-4);text-align:center;color:var(--error-text);font-weight:500}.explore-error p{margin:0}.messages-page{display:flex;flex-direction:column;height:100vh;height:100dvh;height:var(--vv-height, 100dvh);width:100%;max-width:100%;overflow-x:hidden;background:var(--background)}body.chat-open .bottom-nav{display:none}:root[data-keyboard=open] .message-input{padding-bottom:.75rem}.group-creator-page{display:flex;flex-direction:column;width:100%;height:100%;overflow-y:auto;box-sizing:border-box;background:var(--background)}.group-creator-form{padding:.85rem;display:flex;flex-direction:column;gap:.6rem;background:var(--background)}.group-creator-label{font-size:var(--text-sm);color:var(--text-muted)}.group-creator-input{width:100%;box-sizing:border-box;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--input-bg);color:var(--text-color);font-size:var(--text-base);padding:.65rem .75rem}.group-creator-hint{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.group-creator-error{margin:0;font-size:var(--text-sm);color:var(--error-text)}.group-search-results{border:1px solid var(--border-soft);border-radius:var(--radius-md);overflow:hidden}.group-search-result-item{width:100%;border:0;border-bottom:1px solid var(--border-soft);background:var(--surface);color:var(--text-color);text-align:left;padding:.65rem .75rem;min-height:var(--touch-min);display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:.55rem;cursor:pointer}.group-search-result-item:last-child{border-bottom:none}.group-search-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(45deg,var(--primary),var(--primary-light));color:var(--on-primary);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-sm)}.group-search-avatar-image{width:100%;height:100%;object-fit:cover;border-radius:50%}.group-search-main{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--text-sm)}.group-search-username{color:var(--text-muted);font-size:var(--text-sm)}.group-selected-users{display:flex;flex-wrap:wrap;gap:.45rem;min-height:26px}.group-selected-user-chip{display:inline-flex;align-items:center;gap:.35rem;border-radius:var(--radius-pill);border:1px solid var(--border-soft);background:var(--background);padding:.24rem .5rem}.group-chip-label{font-size:var(--text-sm);color:var(--text-color)}.btn.group-chip-remove{color:var(--text-muted);width:var(--touch-min);min-width:var(--touch-min);margin:calc(var(--space-2) * -1) calc(var(--space-2) * -1) calc(var(--space-2) * -1) 0;border-radius:50%;line-height:1;padding:0;font-size:var(--text-lg)}.btn.group-creator-submit{margin-top:.3rem}@media(min-width:768px){.group-creator-form{padding:1rem}}.back-button{width:40px;height:40px;border-radius:var(--radius-md);border:1px solid var(--border-soft);background:var(--surface);color:var(--text-color);font-size:var(--text-xl);cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.back-button:active{background:var(--hover-color);transform:scale(.98)}.chat-title{min-height:var(--touch-min);display:flex;align-items:center;gap:.6rem;min-width:0}.chat-avatar{width:38px;height:38px;border-radius:50%;border:1px solid var(--primary);background:linear-gradient(45deg,var(--primary),var(--primary-light));color:var(--on-primary);font-weight:700;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);flex-shrink:0}.chat-avatar-image{width:100%;height:100%;object-fit:cover;border-radius:50%}.chat-title-text{display:flex;flex-direction:column;min-width:0}.chat-name{font-weight:600;font-size:var(--text-base);color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-status{font-size:var(--text-xs);color:var(--text-muted)}.contacts-list{display:flex;flex-direction:column;gap:0;padding:var(--space-2) 0;width:100%;max-width:100%;box-sizing:border-box;background:var(--background)}.contact-item{display:flex;align-items:center;gap:.75rem;padding:var(--space-2) var(--space-4);border:0;background:transparent;color:var(--text-color);font:inherit;cursor:pointer;text-align:left;width:100%;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.contact-item:active{background:var(--hover-color);transform:scale(.99)}.contact-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(45deg,var(--primary),var(--primary-light));color:var(--on-primary);font-weight:700;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-size:var(--text-xl);flex-shrink:0}.contact-avatar-image{width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar-wrapper{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0}.contact-info{display:flex;flex-direction:column;min-width:0;gap:4px;flex:1}.unread-count{min-width:20px;height:20px;padding:0 6px;box-sizing:border-box;border-radius:var(--radius-pill);background:var(--primary);color:var(--on-primary);font-size:var(--text-xs);font-weight:700;line-height:20px;text-align:center;flex-shrink:0}.contact-username{font-weight:400;font-size:var(--text-sm);color:var(--text-muted)}.contact-name{font-weight:600;font-size:var(--text-base);color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-preview{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-time{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;flex-shrink:0;min-width:56px;text-align:right}.messages{flex:1;padding:.75rem;width:100%;max-width:100%;box-sizing:border-box;overflow-y:auto;display:flex;flex-direction:column;gap:.6rem;background:var(--background);-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.message{max-width:85%;width:fit-content;padding:8px 12px;border-radius:var(--radius-md);word-wrap:break-word;overflow-wrap:anywhere;font-size:var(--text-sm);line-height:1.3}.message-row{display:flex;flex-direction:column}.message-time-marker{align-self:center;font-size:var(--text-xs);color:var(--text-muted);margin:.35rem 0 .25rem;padding:0 .35rem}.message.sent{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:var(--on-primary);margin-left:auto}.message.received{align-self:flex-start;background:var(--surface);color:var(--text-color);border:1px solid var(--border-soft)}.message-input{display:flex;gap:8px;padding:.75rem;padding-bottom:max(.75rem,env(safe-area-inset-bottom));padding-left:max(.75rem,env(safe-area-inset-left));padding-right:max(.75rem,env(safe-area-inset-right));width:100%;max-width:100%;box-sizing:border-box;border-top:1px solid var(--border-soft);background:var(--surface);flex-shrink:0}.message-input textarea{flex:1;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-lg);font-size:16px;background:var(--input-bg);color:var(--text-color);font-family:inherit;min-height:var(--touch-min);max-height:120px;resize:none;line-height:1.4;box-sizing:border-box;outline:none;transition:border-color .2s;-webkit-appearance:none}.message-input textarea:focus-visible{border-color:var(--primary);box-shadow:var(--focus-ring)}.message-input textarea::placeholder{color:var(--text-muted)}.message-send-btn{flex-shrink:0;align-self:flex-end;width:44px;height:44px;padding:0;border:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--primary);color:var(--on-primary);font-size:1.1rem;cursor:pointer}.message-send-btn:disabled{background:var(--border-color);color:var(--text-muted);cursor:not-allowed}.message-send-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(min-width:600px){.back-button{width:44px;height:44px}.chat-avatar{width:42px;height:42px;font-size:var(--text-xl)}.chat-name{font-size:var(--text-base)}.messages{padding:1rem;gap:.75rem}.message{max-width:70%;padding:10px 16px;border-radius:var(--radius-lg)}.message-input{padding:1rem}.message-input textarea{padding:10px 16px;font-size:var(--text-base)}.back-button:hover{background:var(--hover-color)}.contacts-list{max-width:560px;margin:0 auto;padding:1rem}.contact-item:hover{background:var(--hover-color)}}.message-send-error{margin:0;padding:6px 12px;font-size:var(--text-sm);color:var(--error);background:var(--surface);border-top:1px solid var(--border-soft)}.message-counter{align-self:center;font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.messages-load-older{min-height:1px;padding:4px 0;text-align:center;font-size:var(--text-xs);color:var(--text-muted)}.message-connection-status{margin:0;padding:6px 12px;font-size:var(--text-xs);text-align:center;color:var(--text-muted);background:var(--surface);border-top:1px solid var(--border-soft)}.btn.contacts-load-more{display:block;width:100%;color:var(--text-muted);font-size:var(--text-sm)}.contacts-skeleton{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4)}.contacts-skeleton__row{display:flex;align-items:center;gap:var(--space-3)}.message-day-separator{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-3) 0 var(--space-1);color:var(--text-muted);font-size:var(--text-xs);text-transform:capitalize}.message-day-separator:before,.message-day-separator:after{content:"";flex:1;height:1px;background:var(--border-soft)}.messages-skeleton{display:flex;flex-direction:column;gap:var(--space-3)}.messages-skeleton__sent{align-self:flex-end}.message-system{align-self:center;max-width:90%;margin:.35rem 0;padding:.2rem .65rem;text-align:center;font-size:var(--text-xs);color:var(--text-muted)}.message-line{display:flex;align-items:center;gap:.25rem}.message-line.sent{flex-direction:row-reverse}.message-line .message{min-width:0}.message-line .message.sent{margin-left:0}.message-delete-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:var(--touch-min, 44px);height:var(--touch-min, 44px);padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer}.message-delete-btn:focus-visible{outline:2px solid var(--primary)}.message-deleted{font-style:italic}.message-line .message-body{min-width:0;max-width:85%;display:flex;flex-direction:column;align-items:flex-start}.message-line .message-body .message{max-width:100%}.message-line--grouped{align-items:flex-start;gap:var(--space-2, .5rem)}.message-avatar{flex:none;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.message-avatar--spacer{cursor:default}.message-avatar:focus-visible{outline:2px solid var(--primary)}.messages-page__notice{margin:0;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--error)}.image-uploader{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.image-uploader__preview{width:80px;height:80px;object-fit:cover;border:2px solid var(--primary);box-shadow:var(--shadow-sm);background:var(--background-alt)}.image-uploader--round .image-uploader__preview{border-radius:50%}.image-uploader--wide .image-uploader__preview{width:160px;height:90px;border-radius:var(--radius-md)}.image-uploader__controls{display:flex;flex-direction:column;gap:var(--space-2);flex:1;min-width:200px}.image-uploader__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.image-uploader__progress{height:8px;border-radius:var(--radius-pill);background:var(--track-off);overflow:hidden}.image-uploader__bar{height:100%;background:var(--primary);transition:width .2s}.image-uploader__error{margin:0;font-size:var(--text-sm);color:var(--error-text)}.image-uploader__retry{background:none;border:none;padding:0;color:var(--primary);font-size:inherit;text-decoration:underline;cursor:pointer}.image-uploader--tap,.image-uploader--tap .image-uploader__controls{flex-direction:column;align-items:center}.image-uploader--tap .image-uploader__controls{width:100%;min-width:0}.image-uploader__tap{position:relative;padding:0;border:0;border-radius:50%;background:none;cursor:pointer}.image-uploader__tap:focus-visible{outline:var(--focus-outline);outline-offset:4px}.image-uploader__tap:disabled{cursor:default;opacity:.7}.image-uploader--tap .image-uploader__preview{display:block;width:112px;height:112px;border:0;box-shadow:none}.image-uploader--tap .image-uploader__preview--empty{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:calc(var(--text-2xl) * 1.5)}.image-uploader__tap-badge{position:absolute;right:2px;bottom:2px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:2px solid var(--surface);border-radius:50%;background:var(--primary);color:var(--on-primary);font-size:var(--text-sm)}@media(max-width:500px){.image-uploader{flex-direction:column;align-items:flex-start}}@media(max-width:500px){.image-uploader--tap{align-items:center}}.toggle-switch{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-switch input{display:none}.slider{position:relative;width:50px;height:26px;background-color:var(--track-off);border-radius:var(--radius-md);transition:background-color .2s}.slider:before{content:"";position:absolute;width:22px;height:22px;left:2px;top:2px;background-color:var(--on-primary);border-radius:50%;transition:transform .2s}input:checked+.slider:before{transform:translate(24px)}input:checked+.slider{background-color:var(--primary)}.label-text{font-size:var(--text-base);color:var(--text-color)}.group-info__body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);box-sizing:border-box;background:var(--background)}.group-info__body--loading{align-items:center}.group-info__hero{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center}.group-info__title,.group-info__rename{display:flex;align-items:center;justify-content:center;gap:var(--space-1);max-width:100%}.group-info__group-name{margin:0;font-size:var(--text-xl);font-weight:700;color:var(--text-color);overflow-wrap:anywhere}.group-info__rename-input{flex:1;min-width:0;box-sizing:border-box;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--input-bg);color:var(--text-color);font-size:var(--text-base);padding:var(--space-2) var(--space-3);min-height:var(--touch-min)}.group-info__icon-button{flex:none;display:inline-flex;align-items:center;justify-content:center;width:var(--touch-min);height:var(--touch-min);border:0;border-radius:50%;background:none;color:var(--text-muted);cursor:pointer}.group-info__icon-button:focus-visible,.group-info__row:focus-visible,.group-info__action:focus-visible,.group-info__leave:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.group-info__icon-button:disabled{opacity:.5;cursor:default}.group-info__hint{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.group-info__error{margin:0;font-size:var(--text-sm);color:var(--error-text)}.group-info__setting{padding:var(--space-2) 0}.group-info__section{margin:var(--space-2) 0 0;font-size:var(--text-base);color:var(--text-color)}.group-info__list{list-style:none;margin:0 calc(var(--space-4) * -1);padding:0}.group-info__row{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:60px;box-sizing:border-box;padding:var(--space-2) var(--space-4);border:0;background:transparent;color:var(--text-color);font:inherit;text-align:left;cursor:pointer}.group-info__row:hover{background:var(--hover-color)}.group-info__row--static{cursor:default}.group-info__row--static:hover{background:transparent}.group-info__row:disabled{opacity:.6;cursor:default}.group-info__row--card{margin:0 calc(var(--space-4) * -1);width:calc(100% + var(--space-4) * 2)}.group-info__text{display:flex;flex-direction:column;flex:1;min-width:0}.group-info__name{font-size:var(--text-base);color:var(--text-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-info__username{font-size:var(--text-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-info__badge{flex:none;padding:2px var(--space-2);border:1px solid var(--border-color);border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--text-muted)}.group-info__chevron{flex:none;color:var(--text-muted)}.group-info__add-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--primary);color:var(--on-primary)}.group-info__leave{align-self:center;min-height:var(--touch-min);padding:0 var(--space-4);border:0;background:none;color:var(--error-text);font:inherit;font-weight:600;cursor:pointer}.group-info__leave:disabled{opacity:.6;cursor:default}.group-info__actions{display:flex;flex-direction:column;margin:0 calc(var(--space-4) * -1)}.group-info__action{min-height:var(--touch-min);padding:var(--space-3) var(--space-4);border:0;background:none;color:var(--text-color);font:inherit;text-align:left;cursor:pointer}.group-info__action:hover{background:var(--hover-color)}.group-info__action--danger{color:var(--error-text)}.group-info__action:disabled{opacity:.6;cursor:default}.group-info__actions .group-info__error{padding:var(--space-2) var(--space-4)}.notifications-page{background:var(--background);min-height:100vh;min-height:100dvh;box-sizing:border-box;padding-bottom:5rem}.notif-more button,.notif-error button{background:none;border:none;color:var(--primary);font-size:var(--text-sm);font-weight:600;cursor:pointer;min-height:var(--touch-min);padding:0 var(--space-2)}.notif-error{margin:var(--space-3);padding:var(--space-3);border:1px solid var(--error-border);border-radius:var(--radius-md);color:var(--error-text)}.notif-error p{margin:0 0 var(--space-2)}.notifications-list{list-style:none;max-width:100%;margin:0 auto;padding:0}.notification-item{display:flex;gap:8px;align-items:center;width:100%;padding-right:12px;box-sizing:border-box;border-bottom:1px solid var(--border-soft);background:var(--surface)}.notif-main{flex:1;min-width:0;display:flex;gap:12px;padding:12px 0 12px 12px;border:none;align-items:flex-start;text-align:left;font:inherit;color:inherit;cursor:pointer;background:transparent;touch-action:manipulation}.notif-action{flex-shrink:0}.notif-action .follow-user-button{min-width:0;padding:.4rem .8rem;font-size:var(--text-sm)}.notification-item.unread{background:var(--primary-soft)}.notification-item:active,.notification-item:hover{background:var(--background-alt)}.notif-icon{font-size:var(--text-2xl);min-width:32px;text-align:center;flex-shrink:0}.notif-content{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.notif-text{font-size:var(--text-sm);color:var(--text-color);line-height:1.4;word-break:break-word}.notif-detail{font-size:var(--text-xs);color:var(--text-color);opacity:.8;word-break:break-word}.notif-time{font-size:var(--text-xs);color:var(--text-soft)}.notif-dot{width:10px;height:10px;margin-top:6px;border-radius:var(--radius-pill);background:var(--primary);flex-shrink:0}.notif-more{display:flex;justify-content:center;padding:var(--space-3)}@media(min-width:600px){.notif-text{font-size:var(--text-base)}}@media(min-width:1024px){.notifications-list{max-width:600px}}.notification-item--request{flex-wrap:wrap}.notification-item--request>.fra,.notification-item--request>.fra-result{flex:0 0 100%;box-sizing:border-box;padding-right:0}.fra{display:flex;flex-direction:column;gap:var(--space-1);padding:0 var(--space-3) var(--space-3) 56px}.fra-buttons{display:flex;gap:var(--space-2)}.fra-buttons>*{flex:1;min-height:var(--touch-min)}.fra-error{margin:0;color:var(--error-text);font-size:var(--text-sm)}.fra-result{margin:0;padding:0 var(--space-3) var(--space-3) 56px;color:var(--text-muted);font-size:var(--text-sm)}.communities-page{background:var(--background);min-height:100vh;min-height:100dvh;box-sizing:border-box;padding-bottom:5rem}.communities-list{display:flex;flex-direction:column;max-width:600px;margin:0 auto;padding:0 var(--space-4)}.communities-list .community-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border-soft)}.communities-list .community-row__link{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-3);color:inherit;text-decoration:none}.communities-list .community-row__text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.communities-list .community-row__name{font-size:var(--text-base);font-weight:600;color:var(--text-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.communities-list .community-members{font-size:var(--text-sm);color:var(--text-muted)}.communities-list .community-row__action .btn{min-height:var(--touch-min);padding-inline:var(--space-3);font-size:var(--text-sm)}.communities-load-more{display:block;margin:8px auto 24px}.communities-empty{padding:var(--space-6) 0}.communities-error{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center;padding:var(--space-6) var(--space-4);color:var(--error-text)}.communities-section{max-width:600px;margin:0 auto;padding:var(--space-3) var(--space-4) 0}.communities-section__title{margin:0 0 var(--space-2);font-size:var(--text-base);font-weight:700;color:var(--text-color)}.communities-pending,.my-communities{list-style:none;margin:0;padding:0}.communities-pending__row{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch-min);padding:var(--space-2) 0;color:inherit;text-decoration:none;border-bottom:1px solid var(--border-soft)}.communities-pending__text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.communities-pending__text .community-row__name{font-size:var(--text-base);font-weight:600;color:var(--text-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.communities-pending__text .community-members{font-size:var(--text-sm);color:var(--text-muted)}.communities-pending__chevron{color:var(--text-muted);flex-shrink:0}.my-community{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--border-soft)}.my-community__link{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-3);color:inherit;text-decoration:none}.my-community__text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.my-community__top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.my-community__top .community-row__name{font-size:var(--text-base);font-weight:600;color:var(--text-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-community__time{flex-shrink:0;font-size:var(--text-xs);color:var(--text-muted)}.my-community__preview{font-size:var(--text-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-community__preview--unread{color:var(--text-color);font-weight:600}.my-community__event{font-size:var(--text-xs);font-weight:600;color:var(--primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-community__chat{position:relative;flex-shrink:0;min-width:var(--touch-min);min-height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center;border:0;background:none;color:var(--primary);font-size:var(--text-lg);cursor:pointer}.my-community__badge{position:absolute;top:4px;right:2px;min-width:18px;height:18px;padding:0 var(--space-1);box-sizing:border-box;border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-size:var(--text-xs);font-weight:700;line-height:18px;text-align:center}.communities-section .communities-list{padding:0}.community-creator-page{display:flex;flex-direction:column;width:100%;height:100%;overflow-y:auto;box-sizing:border-box;background:var(--background)}.community-creator-form{padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3);background:var(--background)}.community-profile-page .pf-meta{gap:var(--space-3)}.pf-verified-note{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.report-form{display:flex;flex-direction:column;gap:var(--space-3)}.report-form__text{margin:0;color:var(--text-color)}.report-menu__action{width:100%;min-height:var(--touch-min);border:0;background:transparent;color:var(--error-text);font:inherit;font-size:var(--text-base);text-align:left;cursor:pointer}.report-menu__action:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.community-settings-menu{background:var(--background);color:var(--text-color);max-width:500px;margin:0 auto}.settings-section{margin-bottom:2rem}.section-title{font-size:var(--text-lg);font-weight:700;margin-bottom:.8rem;color:var(--text-color);opacity:.8}.section-list{list-style:none;padding:0;margin:0}.settings-item{background:var(--surface);padding:.9rem 1rem;margin-bottom:.6rem;border-radius:var(--radius-md);display:flex;justify-content:space-between;align-items:center;font-weight:500;cursor:pointer;transition:background .2s ease,color .2s ease;border:1px solid var(--border-soft);box-shadow:0 2px 4px var(--shadow-color)}.settings-item:hover{background:var(--pressed-color);color:var(--on-primary)}.settings-item__detail{margin-left:auto;margin-right:var(--space-2);font-size:var(--text-sm);font-weight:400;opacity:.75}.arrow{font-size:var(--text-xl);opacity:.6}.danger-item{background:var(--error-bg);color:var(--error);border:1px solid var(--error)}.danger-item:hover{background:var(--error);color:var(--on-primary)}.danger-item .arrow{color:inherit}.events-map-section{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.events-map-section__status{margin:0;min-height:1.25rem;font-size:var(--text-sm);color:var(--text-muted)}.filters-sheet__fields{display:flex;flex-direction:column;gap:var(--space-3)}.filters-sheet__actions{display:flex;gap:var(--space-2);justify-content:space-between}.filters-sheet__actions .btn:last-child{flex:1}.events-page{background:var(--background);min-height:100vh;min-height:100dvh;box-sizing:border-box;padding-bottom:5rem}.events-list{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-2) var(--space-4) var(--space-4)}.event-action{flex:1;min-width:0;min-height:var(--touch-min);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--space-2) 0;border:0;background:transparent;color:var(--text-muted);font:inherit;font-size:var(--text-xs);text-decoration:none;cursor:pointer}.event-action svg{font-size:var(--text-xl)}.event-action:hover{color:var(--text-color)}.event-action:disabled{opacity:.5;cursor:default}.event-action:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.event-detail{background:var(--background);min-height:100vh;min-height:100dvh;box-sizing:border-box;padding-bottom:5rem}.event-detail--loading,.event-detail__content{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.event-detail__cancelled{margin:0;padding:var(--space-3);border:1px solid var(--error-border);border-radius:var(--radius-sm);color:var(--error-text)}.event-detail__when{margin:0;font-weight:600}.event-detail__viewer-time{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.event-detail__when:first-letter{text-transform:uppercase}.event-detail__title-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2)}.event-detail__title-row .event-detail__when{white-space:nowrap}.event-detail__organizer-label{flex-shrink:0;padding:2px var(--space-3);border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border-soft);color:var(--text-muted);font-size:var(--text-sm)}.event-detail__meta{margin:0;font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap;overflow-x:auto;scrollbar-width:none}.event-detail__meta::-webkit-scrollbar{display:none}.event-detail__header-title{margin:0;font-size:var(--text-xl);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-detail__cover{display:block;width:100%;height:160px;object-fit:cover}.event-detail__actions{display:flex;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft)}.event-detail__stack-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.event-detail__stack{display:flex}.event-detail__stack-avatar{border:2px solid var(--background)}.event-detail__stack-avatar+.event-detail__stack-avatar{margin-left:-12px}.event-detail__action{display:flex;flex-direction:column;gap:var(--space-2)}.event-detail__action .btn{width:100%;min-height:var(--touch-min)}.event-detail__description{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.event-detail__section{display:flex;flex-direction:column;gap:var(--space-2)}.event-detail__section h3,.event-detail__section p{margin:0}.event-detail__muted{margin:0;color:var(--text-muted)}.event-detail__attendees{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-2)}.event-detail__attendee{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);color:var(--text-color);text-decoration:none;min-width:0}.event-detail__attendee span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.place-search{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.place-search__panel{border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.place-search__list{margin:0;padding:0;list-style:none}.place-search__option{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch-min);padding:var(--space-2) var(--space-3);cursor:pointer}.place-search__option+.place-search__option{border-top:1px solid var(--border-soft)}.place-search__option[aria-selected=true],.place-search__option:hover{background:var(--hover-color)}.place-search__icon{flex-shrink:0;color:var(--text-muted)}.place-search__text{display:flex;flex-direction:column;min-width:0}.place-search__name,.place-search__detail{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.place-search__name{font-weight:600}.place-search__detail,.place-search__status,.place-search__credit{font-size:var(--text-sm);color:var(--text-muted)}.place-search__status{margin:0;padding:var(--space-3)}.place-search__credit{margin:0;padding:var(--space-1) var(--space-3);border-top:1px solid var(--border-soft);font-size:var(--text-xs);text-align:right}.event-form{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-6)}.event-form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}@media(max-width:400px){.event-form__row{grid-template-columns:1fr}}.event-form__row>*{min-width:0}.event-form__hint{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.event-form__advanced>summary{cursor:pointer;font-weight:600}.event-form__more{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-3)}.event-form__zone{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.event-form__place{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:var(--space-3);border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--surface);min-width:0}.event-form__place legend{padding:0 var(--space-2);font-weight:600;color:var(--text-color)}.event-form__point{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted)}.btn.event-form__locate{display:inline-flex;align-items:center;align-self:flex-start;gap:var(--space-2)}.post-photos{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}.post-photos__list{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2);width:100%;margin:0;padding:0;list-style:none}.post-photos__item{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--background-alt)}.post-photos__item img{width:100%;height:100%;object-fit:cover;display:block}.post-photos__item--pending{animation:post-photos-pulse 1.2s ease-in-out infinite}@keyframes post-photos-pulse{50%{opacity:.5}}.post-photos__remove{position:absolute;top:var(--space-1);right:var(--space-1);display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:var(--radius-pill);background:var(--overlay);color:var(--on-primary);cursor:pointer}.post-photos__error{margin:0;font-size:var(--text-sm);color:var(--error-text)}.post-create{width:100%;max-width:600px;margin:0 auto;box-sizing:border-box;background:var(--background);color:var(--text-color)}.post-create__form{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4)}.post-create__counter{margin:var(--space-1) 0 0;text-align:right;font-size:var(--text-xs);color:var(--text-muted)}.post-detail{width:100%;max-width:600px;margin:0 auto;box-sizing:border-box;min-height:100vh;min-height:100dvh;padding-bottom:calc(var(--space-8) + var(--space-8));background:var(--background);color:var(--text-color)}.post-detail__skeleton{padding:var(--space-4)}.post-detail__error{padding:var(--space-4);text-align:center;color:var(--text-muted)}.report-page{width:100%;max-width:600px;margin:0 auto;box-sizing:border-box;min-height:100vh;min-height:100dvh;padding-bottom:calc(var(--space-8) + var(--space-8));background:var(--background);color:var(--text-color)}.report-page__body{padding:var(--space-4)}.edit-profile-form{display:flex;flex-direction:column;gap:1.4rem;max-width:500px;margin:0 auto;background:none;padding:0}.avatar-section{display:flex;flex-direction:column;align-items:center;margin-bottom:.4rem}.avatar-image{width:95px;height:95px;border-radius:50%;object-fit:cover;border:2px solid var(--border-color)}.checkbox-field{display:flex;align-items:center;gap:.6rem;font-size:var(--text-base);color:var(--text-muted)}.checkbox-field input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.edit-profile-form button[type=submit]{margin-top:.4rem}.privacy-settings{display:flex;flex-direction:column;gap:1.75rem;max-width:500px;margin:0 auto;padding:0 1rem;box-sizing:border-box;color:var(--text-color)}.privacy-settings h3{margin:0 0 .5rem}.privacy-settings select{width:100%;padding:.6rem;border:1px solid var(--border-color);border-radius:8px;background:var(--background);color:var(--text-color)}.privacy-hint{margin:0 0 .5rem;opacity:.8}.blocked-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.blocked-list li{display:flex;align-items:center;gap:.75rem}.blocked-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.privacy-settings button{padding:.45rem .9rem;border:1px solid var(--border-color);border-radius:8px;background:none;color:var(--text-color);cursor:pointer}.notification-settings{max-width:500px;margin:0 auto;padding:0 1rem;box-sizing:border-box;color:var(--text-color)}.notification-settings ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-4)}.notification-settings-hint{margin:0 0 var(--space-4);padding:0 1rem;opacity:.8}.feedback-sheet{display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:var(--space-2)}.feedback-sheet__text{margin:0;color:var(--text-color)}.feedback-sheet__note{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.install-sheet{display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:var(--space-2)}.install-sheet p{margin:0;color:var(--text-color)}.install-sheet__steps{margin:0;padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}.install-sheet p.install-sheet__note{font-size:var(--text-sm);color:var(--text-muted)}.install-sheet__warning{font-weight:600}.settings-container{background:var(--background);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center}.settings-content{width:100%;max-width:600px;padding:1rem;box-sizing:border-box}.moderation-form{display:flex;flex-direction:column;gap:var(--space-3)}.moderation-row-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.moderation-row-fields>*{min-width:0}.moderation-hint{margin:0;font-size:var(--text-sm);color:var(--text-soft)}.moderation-list{list-style:none;margin:0 0 var(--space-4);padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.moderation-item{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.moderation-item__info{flex:1 1 10rem;min-width:0;display:flex;flex-direction:column;gap:var(--space-1);overflow-wrap:anywhere}.moderation-item__meta{font-size:var(--text-sm);color:var(--text-soft)}.moderation-item__reason{font-size:var(--text-sm);color:var(--text-muted)}.moderation-item__badges{display:flex;flex-wrap:wrap;gap:var(--space-1)}.moderation-badge{padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--primary-soft);color:var(--primary);font-size:var(--text-xs);font-weight:600}.moderation-badge--warning{background:var(--warning-bg);color:var(--warning-text)}.moderation-item__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.moderation-section-title{margin:0 0 var(--space-4);font-size:var(--text-xl);color:var(--text-color)}.moderation-note{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.moderation-verified-state{display:flex;align-items:center;gap:var(--space-2);margin:0;font-weight:600;color:var(--text-color)}.moderation-quote{margin:0;color:var(--text-color);white-space:pre-wrap;overflow-wrap:anywhere}.pwa-status{position:fixed;left:50%;transform:translate(-50%);bottom:calc(4.75rem + env(safe-area-inset-bottom));width:100%;max-width:480px;box-sizing:border-box;padding:0 var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);z-index:998;pointer-events:none}.pwa-status__row{pointer-events:auto;margin:0;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 2px 10px var(--shadow-color);font-size:var(--text-sm);color:var(--text-color)}.pwa-status__row--offline{color:var(--text-muted)}.pwa-status__row .btn{flex-shrink:0;white-space:nowrap;min-height:var(--touch-min);margin:calc(-1 * var(--space-2)) 0;padding:0 var(--space-2);font-size:var(--text-sm);font-weight:600;border-radius:var(--radius-sm)}.pwa-status__text{flex:1;min-width:0}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff")}:root{--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-pill: 999px;--touch-min: 44px;--on-primary: #fff;--on-error: #fff;--info: #1976d2;--info-bg: #e3f2fd;--error-text: #c62828;--error-border: #ef9a9a;--warning-text: #92400e;--overlay: rgba(0, 0, 0, .5);--track-off: #ccc;--highlight: #facc15;--shadow-sm: 0 2px 6px var(--shadow-color);--shadow-md: 0 8px 24px rgba(0, 0, 0, .16);--focus-ring: 0 0 0 3px var(--input-focus);--focus-outline: 2px solid var(--primary)}@media(prefers-color-scheme:dark){:root{--on-primary: #fff;--on-error: #fff;--info: #64b5f6;--info-bg: #14283a;--error-text: #ef9a9a;--error-border: #7f2f2f;--warning-text: #ffcc80;--overlay: rgba(0, 0, 0, .65);--track-off: #555;--highlight: #facc15;--shadow-md: 0 8px 24px rgba(0, 0, 0, .6)}}:focus-visible{outline:var(--focus-outline);outline-offset:2px}:root{--background: #fafafa;--background-alt: #f2f2f2;--surface: #ffffff;--text-color: #222;--text-muted: #555;--text-soft: #777;--border-color: #ddd;--border-soft: #e6e6e6;--shadow-color: rgba(0, 0, 0, .08);--primary: #178B9F;--primary-light: #2cb2c7;--primary-soft: #e5f4f6;--secondary: #FFA61A;--secondary-soft: #fff5e6;--accent: #FFDA58;--on-accent: #222;--on-secondary: #222;--pressed-color: #116b7a;--hover-color: var(--primary-soft);--disabled-bg: #e0e0e0;--disabled-text: #999;--input-bg: #fff;--input-border: #ccc;--input-focus: rgba(23, 139, 159, .2);--success: #4caf50;--success-bg: #e8f5e9;--warning: var(--secondary);--warning-bg: var(--secondary-soft);--error: #f44336;--error-bg: #ffebee}@media(prefers-color-scheme:dark){:root{--background: #111;--background-alt: #181818;--surface: #1b1b1b;--text-color: #e6e6e6;--text-muted: #bdbdbd;--text-soft: #9e9e9e;--border-color: #333;--border-soft: #2a2a2a;--shadow-color: rgba(0, 0, 0, .4);--primary: #178B9F;--primary-light: #42c2d6;--primary-soft: #0a3d47;--secondary: #FFA61A;--secondary-soft: #4a3005;--accent: #FFDA58;--on-accent: #222;--on-secondary: #222;--pressed-color: #2cb2c7;--hover-color: #2a2a2a;--disabled-bg: #333;--disabled-text: #777;--input-bg: #1b1b1b;--input-border: #444;--input-focus: rgba(23, 139, 159, .35);--success: #81c784;--success-bg: #1b2a1c;--warning: var(--secondary);--warning-bg: var(--secondary-soft);--error: #ef5350;--error-bg: #2a1b1b}}body{background-color:var(--background);color:var(--text-color);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;margin:0;padding:0}button,input,select,textarea{font-family:inherit}
