:root{--color-forest: #2D5A3D;--color-moss: #4A8B62;--color-sand: #D4BB91;--color-linen: #F7F3EE;--color-parchment: #EDE7DD;--color-charcoal: #2D2A26;--color-stone: #8B7D6B;--color-berry: #C94444;--color-amber: #D4A03C;--color-white: #FFFFFF;--color-input-bg: #FDFBF8;--color-border: #E3DACD;--color-placeholder: #B5AFA6;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--font-display: "DM Serif Display", Georgia, serif;--font-body: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius-sm: 12px;--radius-card: 16px;--radius-lg: 20px;--radius-modal: 24px;--radius-avatar: 14px;--radius-pill: 999px;--shadow-card: 0 2px 12px rgba(45, 42, 38, .06);--shadow-elevated: 0 8px 28px rgba(45, 42, 38, .12);--shadow-focus: 0 0 0 3px rgba(45, 90, 61, .15);--sidebar-width: 260px;--tab-bar-height: 64px;--content-max-width: 720px}[data-theme=ocean]{--color-forest: #2B5F8A;--color-moss: #4A90B8;--color-sand: #7EBDC3;--color-linen: #F0F4F8;--color-parchment: #E1E8EE;--color-stone: #6B7D8D;--color-border: #D0DAE2;--color-input-bg: #F7FAFB;--color-placeholder: #9DAAB5;--shadow-focus: 0 0 0 3px rgba(43, 95, 138, .15)}[data-theme=dusk]{--color-forest: #6B4C8A;--color-moss: #8B6BAA;--color-sand: #C4A6D6;--color-linen: #F5F0F8;--color-parchment: #EAE1F0;--color-stone: #7D6B8B;--color-border: #DCD0E6;--color-input-bg: #FAF7FC;--color-placeholder: #ADA0B8;--shadow-focus: 0 0 0 3px rgba(107, 76, 138, .15)}[data-theme=ember]{--color-forest: #A0522D;--color-moss: #C4734A;--color-sand: #D4A574;--color-linen: #FDF6F0;--color-parchment: #F0E4D8;--color-stone: #8B7360;--color-border: #E5D5C5;--color-input-bg: #FEFAF6;--color-placeholder: #B5A494;--shadow-focus: 0 0 0 3px rgba(160, 82, 45, .15)}[data-theme=midnight]{--color-forest: #7EBDC3;--color-moss: #5DA0A8;--color-sand: #D4BB91;--color-linen: #1A1D23;--color-parchment: #22262E;--color-charcoal: #E8E4DF;--color-stone: #9A9A9A;--color-white: #242830;--color-berry: #E06060;--color-amber: #E0B84A;--color-border: #333842;--color-input-bg: #2A2E36;--color-placeholder: #6A6F78;--shadow-card: 0 2px 12px rgba(0, 0, 0, .2);--shadow-elevated: 0 8px 28px rgba(0, 0, 0, .3);--shadow-focus: 0 0 0 3px rgba(126, 189, 195, .25)}[data-theme=midnight] body:after,body[data-theme=midnight]:after{opacity:.015}[data-theme=midnight] h1,[data-theme=midnight] h2,[data-theme=midnight] h3,[data-theme=midnight] h4,[data-theme=midnight] h5,[data-theme=midnight] h6{color:var(--color-charcoal)}[data-theme=midnight] a{color:var(--color-forest)}[data-theme=midnight] .group-tabs .tab.active{color:var(--color-linen)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--color-charcoal);background-color:var(--color-linen);line-height:1.6;min-height:100dvh}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");z-index:9999}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:400;line-height:1.3;color:var(--color-charcoal)}h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.1rem}a{color:var(--color-forest);text-decoration:none;transition:color .2s}a:hover{color:var(--color-moss)}ul,ol{list-style:none}img{max-width:100%;display:block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes pulseText{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.label-meta{font-family:var(--font-body);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-stone)}.app-layout{min-height:100dvh;display:flex;flex-direction:column}.app-layout>main{flex:1;display:flex;flex-direction:column}.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-field label{font-size:.875rem;font-weight:600;color:var(--color-stone);letter-spacing:.01em}.form-hint{font-size:.8rem;color:var(--color-placeholder);margin-top:2px}.form-field--checkbox{flex-direction:row;align-items:center;gap:8px}.form-field--checkbox label{display:flex;align-items:center;gap:8px;color:var(--color-charcoal);cursor:pointer}input[type=text],input[type=email],input[type=url],input[type=password],input[type=number],input[type=datetime-local],textarea,select{font-family:var(--font-body);font-size:1rem;padding:14px 18px;border:2px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-input-bg);color:var(--color-charcoal);transition:border-color .25s ease,box-shadow .25s ease;width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-forest);box-shadow:var(--shadow-focus)}input::placeholder,textarea::placeholder{color:var(--color-placeholder)}textarea{resize:vertical;min-height:80px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238B7D6B' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px;cursor:pointer}input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-forest);cursor:pointer}button{font-family:var(--font-body);font-size:1rem;cursor:pointer;border:none;transition:background-color .2s,transform .1s,opacity .2s,box-shadow .2s}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;background-color:var(--color-forest);color:var(--color-white);border-radius:var(--radius-sm);font-weight:700;text-decoration:none;letter-spacing:.01em}.btn-primary:hover:not(:disabled){background-color:var(--color-moss);color:var(--color-white);box-shadow:0 4px 14px #2d5a3d40}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;background-color:var(--color-parchment);color:var(--color-charcoal);border-radius:var(--radius-sm);font-weight:600;text-decoration:none;border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-border);color:var(--color-charcoal)}.btn-link{background:none;padding:8px 4px;color:var(--color-forest);font-weight:600;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--color-moss)}.btn-icon{background:none;padding:8px 12px;color:var(--color-stone);font-weight:600;border-radius:var(--radius-sm);transition:background-color .2s,color .2s}.btn-icon:hover:not(:disabled){background-color:var(--color-parchment);color:var(--color-charcoal)}.btn-danger,button.danger{background-color:var(--color-berry);color:var(--color-white);padding:12px 24px;border-radius:var(--radius-sm);font-weight:700}.btn-danger:hover:not(:disabled),button.danger:hover:not(:disabled){background-color:#b33636;box-shadow:0 4px 14px #c9444440}.btn-ghost{background:transparent;border:1.5px solid var(--color-border);color:var(--color-forest);padding:12px 24px;border-radius:var(--radius-sm);font-weight:700}.btn-ghost:hover:not(:disabled){background-color:var(--color-parchment);border-color:var(--color-stone)}.error-message,.form-error{color:var(--color-berry);font-size:.875rem;font-weight:600;padding:12px 16px;background-color:#fdf2f2;border:1px solid #f5c6c6;border-radius:var(--radius-sm);margin-bottom:16px;animation:fadeSlideIn .3s ease-out}.success-message{color:var(--color-forest);font-size:.875rem;font-weight:600;padding:12px 16px;background-color:#f0f7f2;border:1px solid #c3dfc9;border-radius:var(--radius-sm);margin-bottom:16px;animation:fadeSlideIn .3s ease-out}.upload-error{color:var(--color-berry);font-size:.85rem;margin-top:8px}.empty-state{text-align:center;padding:48px 24px;color:var(--color-stone);font-size:1rem;position:relative;animation:fadeSlideIn .4s ease-out}.empty-state:before{content:"";display:block;width:48px;height:2px;background:linear-gradient(90deg,transparent,var(--color-sand),transparent);margin:0 auto 16px;border-radius:1px}.empty-state .btn-primary{margin-top:16px}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;color:var(--color-stone);font-size:.95rem;gap:16px;animation:fadeIn .3s ease-out}.loading-spinner:before{content:"";width:28px;height:28px;border:3px solid var(--color-parchment);border-top-color:var(--color-forest);border-radius:50%;animation:spin .8s linear infinite}.auth-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:24px;background-color:var(--color-linen);animation:fadeSlideIn .5s ease-out}.auth-page h1{font-family:var(--font-display);font-size:2.75rem;color:var(--color-forest);margin-bottom:32px;letter-spacing:-.02em}.auth-page p{text-align:center;color:var(--color-stone);margin-bottom:16px;max-width:400px;line-height:1.6}.auth-page form{width:100%;max-width:400px;background:var(--color-white);padding:32px;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:16px;animation:slideUp .5s ease-out .1s both}.auth-page form label{display:flex;flex-direction:column;gap:6px;font-size:.875rem;font-weight:600;color:var(--color-stone)}.auth-page form label:has(input[type=checkbox]){flex-direction:row;align-items:center;gap:10px;color:var(--color-charcoal);cursor:pointer}.auth-page form button[type=submit]{padding:14px 24px;background-color:var(--color-forest);color:var(--color-white);border:none;border-radius:var(--radius-sm);font-weight:700;font-size:1rem;margin-top:8px}.auth-page form button[type=submit]:hover:not(:disabled){background-color:var(--color-moss);box-shadow:0 4px 14px #2d5a3d40}.group-list-page{max-width:var(--content-max-width);margin:0 auto;padding:24px 16px;animation:fadeSlideIn .4s ease-out}.group-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.group-list{display:flex;flex-direction:column;gap:12px}.group-list>li{animation:fadeSlideIn .4s ease-out both}.group-list>li:nth-child(1){animation-delay:0ms}.group-list>li:nth-child(2){animation-delay:50ms}.group-list>li:nth-child(3){animation-delay:.1s}.group-list>li:nth-child(4){animation-delay:.15s}.group-list>li:nth-child(5){animation-delay:.2s}.group-list>li:nth-child(6){animation-delay:.25s}.group-list>li:nth-child(7){animation-delay:.3s}.group-list>li:nth-child(8){animation-delay:.35s}.group-list>li:nth-child(9){animation-delay:.4s}.group-list>li:nth-child(10){animation-delay:.45s}.group-card{background:var(--color-white);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden;transition:box-shadow .2s ease,transform .2s ease,border-left-color .2s ease;border-left:3px solid transparent}.group-card:hover{box-shadow:var(--shadow-elevated);transform:translateY(-3px);border-left-color:var(--color-sand)}.group-card a{display:flex;align-items:center;gap:16px;padding:16px 20px;text-decoration:none;color:inherit}.group-logo{width:48px;height:48px;border-radius:var(--radius-avatar);object-fit:cover;flex-shrink:0}.group-card-info h2{font-size:1.1rem;margin-bottom:2px}.group-card-info p{font-size:.875rem;color:var(--color-stone);line-height:1.4}.group-card-meta{font-size:.85rem;color:var(--color-stone);margin-top:2px}.group-card-stats{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.group-stat{font-size:.8rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-pill);background:var(--color-parchment);color:var(--color-stone)}.group-stat--unread{background:#2d5a3d14;color:var(--color-forest)}.group-stat--event{background:#d4bb9133;color:var(--color-charcoal)}.group-stat--polls{background:#d4a03c1f;color:var(--color-charcoal)}.group-shell{display:flex;flex-direction:column;min-height:100dvh}.group-header{display:flex;align-items:center;gap:12px;padding:16px 16px 12px;background-color:var(--color-white);border-bottom:1px solid var(--color-border)}.group-header .group-logo{width:36px;height:36px}.group-name{font-size:1.25rem;flex:1}.group-header-account{color:var(--color-stone);display:flex;align-items:center;margin-left:auto;padding:4px;border-radius:var(--radius-md);transition:color .15s ease}.group-header-account:hover{color:var(--color-forest)}@media(min-width:768px){.group-header-account{display:none}}.sidebar-brand{display:none}.sidebar-nav-section{display:contents}.sidebar-footer{display:none}.group-tabs{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:100;background:#ffffffd9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--color-border);height:var(--tab-bar-height);padding-bottom:env(safe-area-inset-bottom,0px)}.group-tabs .tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;min-width:44px;padding:8px 4px;font-size:.75rem;font-weight:600;color:var(--color-stone);text-decoration:none;transition:color .2s,background-color .25s;border:none;background:none;border-radius:var(--radius-pill);margin:10px 2px}.group-tabs .tab .tab-label{display:none}.group-tabs .tab.active{color:var(--color-forest);background-color:transparent;position:relative}.group-tabs .tab.active:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:6px;height:6px;border-radius:50%;background-color:var(--color-sand)}.group-tabs .tab:hover:not(.active){color:var(--color-charcoal);background-color:#2d5a3d0f}.group-content{flex:1;padding:16px;padding-bottom:calc(var(--tab-bar-height) + env(safe-area-inset-bottom,0px) + 16px);overflow-y:auto}@media(min-width:768px){.group-shell{flex-direction:row;min-height:100dvh}.group-header{display:none}.group-tabs{position:static;flex-direction:column;width:var(--sidebar-width);min-height:100dvh;height:auto;border-top:none;border-right:1px solid var(--color-border);background:var(--color-linen);-webkit-backdrop-filter:none;backdrop-filter:none;padding:0;gap:0}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:24px 20px 20px;border-bottom:1px solid var(--color-border);margin-bottom:8px}.sidebar-logo{width:40px;height:40px;border-radius:var(--radius-avatar);object-fit:cover;flex-shrink:0;box-shadow:0 2px 8px #2d2a261a}.sidebar-logo-placeholder{width:40px;height:40px;border-radius:var(--radius-avatar);background:linear-gradient(135deg,var(--color-forest),var(--color-moss));color:var(--color-white);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.25rem;flex-shrink:0;box-shadow:0 2px 8px #2d5a3d33}.sidebar-group-name{font-family:var(--font-display);font-size:1.1rem;color:var(--color-charcoal);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-nav-section{display:flex;flex-direction:column;padding:8px 12px;gap:2px;flex:1}.group-tabs .tab{flex:unset;flex-direction:row;justify-content:flex-start;gap:12px;padding:11px 16px;font-size:.925rem;font-weight:600;border-radius:var(--radius-sm);margin:0;position:relative;color:var(--color-stone);transition:color .2s,background-color .2s,transform .15s}.group-tabs .tab .tab-label{display:inline}.group-tabs .tab:hover:not(.active){background-color:var(--color-parchment);color:var(--color-charcoal);transform:translate(2px)}.group-tabs .tab.active{background-color:var(--color-forest);color:var(--color-white);box-shadow:0 2px 8px #2d5a3d33}.group-tabs .tab.active:after{display:none}.sidebar-footer{display:flex;flex-direction:column;padding:8px 12px 16px;border-top:1px solid var(--color-border);margin-top:8px}.sidebar-invite-link:not(.active){color:var(--color-forest)!important}.sidebar-settings-link{font-size:.85rem!important;color:var(--color-stone)!important;padding:10px 16px!important}.sidebar-settings-link:hover{color:var(--color-charcoal)!important}.group-content{flex:1;padding:36px 40px;max-width:800px;background:var(--color-linen)}}@media(min-width:1200px){:root{--content-max-width: 800px}.group-content{padding:44px 56px;max-width:900px}}.chat-page,.thread-page{display:flex;flex-direction:column;height:calc(100dvh - var(--tab-bar-height) - 80px);animation:fadeSlideIn .35s ease-out}@media(min-width:768px){.chat-page,.thread-page{height:calc(100dvh - 64px)}}.chat-messages{flex:1;overflow-y:auto;padding:16px 0;display:flex;flex-direction:column;gap:4px}.message-bubble-wrapper{display:flex;flex-direction:column;max-width:80%;position:relative}.message-bubble-wrapper.own{align-self:flex-end;align-items:flex-end}.message-bubble-wrapper.other{align-self:flex-start;align-items:flex-start}.message-author{display:flex;align-items:center;gap:6px;margin-bottom:4px;padding-left:4px}.message-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover}.message-avatar-placeholder{display:flex;align-items:center;justify-content:center;background-color:var(--color-sand);color:var(--color-charcoal);font-size:.7rem;font-weight:700}.message-author-name{font-size:.75rem;font-weight:700;color:var(--color-forest)}.message-bubble{padding:10px 14px;position:relative}.bubble-own{background-color:var(--color-forest);color:var(--color-white);border-radius:16px 16px 4px;box-shadow:inset 0 1px #ffffff14}.bubble-other{background-color:var(--color-white);box-shadow:var(--shadow-card);color:var(--color-charcoal);border-radius:16px 16px 16px 4px}.bubble-pending{opacity:.65}.message-content{font-size:.95rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.bubble-own .message-content{color:var(--color-white)}.message-meta{display:flex;align-items:center;gap:6px;margin-top:4px}.message-time{font-size:.7rem;opacity:.65}.message-sending{font-size:.75rem;opacity:.65}.message-reply-btn{background:none;border:none;padding:4px 8px;font-size:.85rem;color:var(--color-stone);opacity:.5;transition:opacity .15s}.message-reply-btn:hover,.message-reply-btn:active{opacity:1}.chat-input-container{border-top:1px solid var(--color-border);background:var(--color-white);padding:12px;border-radius:var(--radius-card) var(--radius-card) 0 0;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.chat-reply-preview{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;margin-bottom:8px;background-color:var(--color-parchment);border-radius:var(--radius-sm);font-size:.85rem;border-left:3px solid var(--color-forest);animation:fadeSlideIn .2s ease-out}.chat-reply-label{color:var(--color-stone);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.chat-reply-cancel{background:none;border:none;padding:4px 8px;color:var(--color-stone);font-size:1rem;cursor:pointer}.chat-input-row{display:flex;gap:8px;align-items:flex-end}.chat-textarea{flex:1;font-family:var(--font-body);font-size:.95rem;padding:10px 14px;border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-input-bg);color:var(--color-charcoal);resize:none;min-height:42px;max-height:120px;transition:border-color .25s ease,box-shadow .25s ease}.chat-textarea:focus{outline:none;border-color:var(--color-forest);box-shadow:var(--shadow-focus)}.chat-send-btn{padding:10px 20px;flex-shrink:0;height:42px}.read-indicator-wrapper{position:relative;display:inline-flex}.read-indicator{font-size:.7rem;color:var(--color-stone);background:none;border:none;padding:0 2px;cursor:default;letter-spacing:-2px}.read-indicator--read{cursor:pointer;color:var(--color-forest)}.read-indicator--pending{opacity:.5}.read-receipt-popover{position:absolute;bottom:100%;right:0;z-index:50;background:var(--color-white);border-radius:var(--radius-sm);box-shadow:var(--shadow-elevated);padding:var(--space-sm);min-width:180px;max-width:240px;animation:fadeSlideIn .2s ease-out}.system-message{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);margin:var(--space-sm) 0}.system-message-text{font-size:.85rem;font-style:italic;color:var(--color-stone);background:var(--color-parchment);padding:4px 12px;border-radius:var(--radius-pill)}.system-message-time{font-size:.7rem;color:var(--color-placeholder)}.read-receipt-popover-header{font-size:.75rem;font-weight:700;color:var(--color-stone);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-xs);padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border)}.read-receipt-list{list-style:none;display:flex;flex-direction:column;gap:4px}.read-receipt-item{display:flex;justify-content:space-between;align-items:center;padding:4px 0}.read-receipt-name{font-size:.85rem;font-weight:600;color:var(--color-charcoal)}.read-receipt-time{font-size:.75rem;color:var(--color-stone)}.read-receipt-loading{font-size:.85rem;color:var(--color-stone);padding:8px 0}.message-actions{display:flex;gap:4px;opacity:.5;transition:opacity .15s}.message-bubble-wrapper:hover .message-actions{opacity:1}.message-action-btn{background:none;border:none;padding:2px 6px;font-size:.75rem;color:var(--color-stone);cursor:pointer;border-radius:var(--radius-sm)}.message-action-btn:hover{background:var(--color-parchment)}.message-action-btn--danger{color:var(--color-berry)}.message-edit-inline{display:flex;flex-direction:column;gap:4px}.message-edit-textarea{font-family:var(--font-body);font-size:.95rem;padding:6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;min-height:40px;background:var(--color-input-bg)}.message-edit-actions{display:flex;gap:4px}.message-bottom-actions{display:flex;align-items:center;gap:4px}.reaction-trigger-wrapper{position:relative}.message-reaction-btn{background:none;border:none;padding:2px 4px;font-size:.85rem;color:var(--color-stone);cursor:pointer;opacity:.5;transition:opacity .15s}.message-bubble-wrapper:hover .message-reaction-btn{opacity:1}.reaction-picker{position:absolute;bottom:100%;left:0;display:flex;gap:2px;padding:6px 8px;background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);z-index:10;white-space:nowrap}.message-bubble-wrapper.own .reaction-picker{left:auto;right:0}.reaction-picker-btn{background:none;border:none;font-size:1.25rem;padding:4px;cursor:pointer;border-radius:var(--radius-sm);transition:transform .1s,background-color .15s;line-height:1}.reaction-picker-btn:hover{transform:scale(1.25);background:var(--color-parchment)}.reaction-bar{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.reaction-pill-wrapper{position:relative}.reaction-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--color-parchment);border:1px solid transparent;border-radius:999px;font-size:.8rem;cursor:pointer;transition:background-color .15s,border-color .15s;line-height:1.4}.reaction-pill:hover{background:var(--color-linen);border-color:var(--color-stone)}.reaction-pill--active{background:var(--color-forest-light, rgba(45, 90, 61, .12));border-color:var(--color-forest)}.reaction-pill-emoji{font-size:.95rem;line-height:1}.reaction-pill-count{font-family:var(--font-body);color:var(--color-charcoal);font-size:.75rem}.reaction-popover{position:absolute;bottom:100%;left:0;min-width:160px;max-width:220px;padding:8px 12px;background:var(--color-white);border-radius:var(--radius-md);box-shadow:0 4px 16px #00000026;z-index:20;margin-bottom:4px}.reaction-popover-header{font-size:.8rem;font-weight:600;color:var(--color-stone);margin-bottom:4px}.reaction-popover-loading{font-size:.8rem;color:var(--color-stone)}.reaction-popover-list{list-style:none;padding:0;margin:0}.reaction-popover-item{font-size:.8rem;padding:2px 0;color:var(--color-charcoal)}.thread-list-page{max-width:600px;margin:0 auto;animation:fadeSlideIn .4s ease-out}.thread-list-header{margin-bottom:20px}.thread-create-form{display:flex;gap:8px;margin-bottom:24px}.thread-title-input{flex:1}.thread-create-form .btn-primary{flex-shrink:0}.thread-list{display:flex;flex-direction:column;gap:8px}.thread-item{background:var(--color-white);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);overflow:hidden;transition:box-shadow .2s,transform .2s}.thread-item:hover{box-shadow:var(--shadow-elevated);transform:translateY(-2px)}.thread-link{display:flex;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;color:inherit}.thread-title{flex:1;font-weight:600}.thread-pinned-badge{font-size:.85rem}.thread-date{font-size:.8rem;color:var(--color-stone);flex-shrink:0}.thread-actions{display:flex;gap:4px;margin-left:auto}.thread-edit-inline{display:flex;gap:4px;align-items:center;flex:1}.thread-edit-input{flex:1;font-size:.9rem;padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.thread-page-header{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--color-border);margin-bottom:8px}.thread-back-link{font-size:.9rem;font-weight:600;color:var(--color-forest);white-space:nowrap}.thread-page-title{font-size:1.15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-page{max-width:600px;margin:0 auto;animation:fadeSlideIn .4s ease-out}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.event-list{display:flex;flex-direction:column;gap:8px}.event-item{background:var(--color-white);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden;transition:box-shadow .2s,transform .2s}.event-item:hover{box-shadow:var(--shadow-elevated);transform:translateY(-2px)}.event-link{display:flex;align-items:center;gap:16px;padding:16px;text-decoration:none;color:inherit}.event-date{display:flex;flex-direction:column;align-items:center;min-width:48px;padding:8px;background-color:var(--color-parchment);border-radius:var(--radius-sm)}.event-day{font-family:var(--font-display);font-size:1.5rem;line-height:1;color:var(--color-forest)}.event-month{font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--color-sand)}.event-info{display:flex;flex-direction:column;gap:2px;flex:1}.event-title{font-weight:700;color:var(--color-charcoal)}.event-location,.event-time{font-size:.85rem;color:var(--color-stone)}.event-rsvp-summary{display:flex;gap:12px;font-size:.85rem;color:var(--color-stone);margin-top:4px}.rsvp-coming{color:var(--color-forest)}.rsvp-maybe{color:var(--color-amber)}.rsvp-declined{color:var(--color-stone)}.create-event-page{max-width:560px;margin:0 auto;animation:fadeSlideIn .4s ease-out}.create-event-page h2{margin-bottom:24px}.event-form{background:var(--color-white);padding:24px;border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.event-detail-page{max-width:600px;margin:0 auto;animation:fadeSlideIn .4s ease-out}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:.9rem;font-weight:600;color:var(--color-forest);margin-bottom:16px;transition:color .2s,transform .15s}.back-link:hover{color:var(--color-moss);transform:translate(-2px)}.event-header{margin-bottom:32px}.event-header .event-title{font-family:var(--font-display);font-size:1.5rem;margin-bottom:12px}.event-meta{margin-bottom:16px}.event-dates{font-weight:600;color:var(--color-charcoal);margin-bottom:4px}.event-header .event-location{color:var(--color-stone)}.event-header-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.event-description{color:var(--color-charcoal);line-height:1.6;margin-bottom:16px}.event-album-link{display:inline-flex;margin-top:8px}.event-chat-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--color-border);animation:fadeSlideIn .4s ease-out}.event-chat-section h3{margin-bottom:16px}.event-chat-messages{max-height:400px;overflow-y:auto;padding:16px;background:var(--color-linen);border-radius:var(--radius-card);margin-bottom:12px;display:flex;flex-direction:column;gap:8px}.rsvp-section{margin-bottom:32px}.rsvp-section h3{margin-bottom:12px}.rsvp-buttons{display:flex;gap:8px;flex-wrap:wrap}.month-calendar{animation:fadeSlideIn .3s ease-out}.month-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.month-calendar-title{font-family:var(--font-display);font-size:1.25rem}.month-grid-header{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.month-grid-weekday{text-align:center;font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--color-stone);padding:4px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.month-grid-cell{min-height:64px;padding:4px;background:var(--color-white);border-radius:var(--radius-sm);position:relative;cursor:default;transition:box-shadow .2s}.month-grid-cell--empty{background:transparent}.month-grid-cell--weekend{background:var(--color-parchment)}.month-grid-cell--today{box-shadow:var(--shadow-card)}.month-grid-day{font-size:.85rem;font-weight:600;color:var(--color-charcoal)}.month-grid-day--today{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background-color:var(--color-sand);color:var(--color-charcoal)}.month-grid-holiday{display:block;font-size:.6rem;color:var(--color-stone);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.month-grid-dots{display:flex;gap:3px;margin-top:4px;align-items:center}.month-grid-dot{width:6px;height:6px;border-radius:50%;background-color:var(--color-forest)}.month-grid-dot-extra{font-size:.6rem;color:var(--color-stone);font-weight:700}.month-grid-popover{position:absolute;top:100%;left:0;z-index:50;background:var(--color-white);border-radius:var(--radius-sm);box-shadow:var(--shadow-elevated);padding:var(--space-xs);min-width:160px;animation:fadeSlideIn .2s ease-out}.month-grid-popover-item{display:block;width:100%;text-align:left;padding:var(--space-sm) var(--space-sm);font-size:.85rem;color:var(--color-charcoal);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer}.month-grid-popover-item:hover{background-color:var(--color-parchment)}.calendar-view-switcher{display:flex;gap:4px;background:var(--color-parchment);border-radius:var(--radius-pill);padding:3px;width:fit-content}.calendar-view-btn{padding:6px 16px;border:none;background:none;border-radius:var(--radius-pill);font-size:.85rem;font-weight:600;color:var(--color-stone);cursor:pointer;transition:background-color .2s,color .2s}.calendar-view-btn--active{background-color:var(--color-forest);color:var(--color-white)}.calendar-header-actions{display:flex;align-items:center;gap:var(--space-sm)}.btn-rsvp{padding:10px 20px;border:2px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-white);font-weight:600;color:var(--color-charcoal);transition:border-color .2s,background-color .2s,box-shadow .2s}.btn-rsvp:hover:not(:disabled){border-color:var(--color-moss)}.btn-rsvp--active{border-color:var(--color-forest);background-color:#2d5a3d14;color:var(--color-forest);box-shadow:0 0 0 1px var(--color-forest)}.rsvp-summary{display:flex;flex-direction:column;gap:20px}.rsvp-group-title{margin-bottom:8px;color:var(--color-stone)}.rsvp-list{display:flex;flex-wrap:wrap;gap:8px}.rsvp-item{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--color-white);border-radius:var(--radius-pill);border:1px solid var(--color-border);font-size:.85rem;transition:box-shadow .2s}.rsvp-item:hover{box-shadow:var(--shadow-card)}.rsvp-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover}.rsvp-name{font-weight:600}.albums-page{max-width:800px;margin:0 auto;animation:fadeSlideIn .4s ease-out}.albums-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.album-card{display:flex;align-items:flex-end;aspect-ratio:1;background:linear-gradient(135deg,var(--color-parchment),var(--color-linen));border-radius:var(--radius-card);padding:16px;text-decoration:none;color:inherit;transition:box-shadow .2s ease,transform .2s ease;box-shadow:var(--shadow-card);border:1px solid var(--color-border)}.album-card:hover{box-shadow:var(--shadow-elevated);transform:translateY(-3px);color:inherit}.album-card-inner{display:flex;flex-direction:column;gap:4px}.album-title{font-weight:700;font-size:.95rem}.album-count{font-size:.8rem;color:var(--color-stone)}.album-detail-page{max-width:800px;margin:0 auto;animation:fadeSlideIn .4s ease-out}.album-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.media-thumb-button{display:block;padding:0;background:none;border:none;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;aspect-ratio:1;position:relative;transition:transform .15s,box-shadow .15s}.media-thumb-button:hover{transform:scale(1.03);box-shadow:var(--shadow-elevated)}.media-thumb{width:100%;height:100%;object-fit:cover}.media-thumb--video{position:relative;width:100%;height:100%}.media-thumb--video .media-thumb-img,.media-thumb-img{width:100%;height:100%;object-fit:cover}.media-thumb-play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.75rem;color:var(--color-white);text-shadow:0 1px 4px rgba(0,0,0,.5);pointer-events:none}.upload-button-wrapper{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.upload-input-hidden{display:none}.media-viewer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000e0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease-out}.media-viewer-content{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:48px 16px;animation:scaleIn .3s ease-out}.media-viewer-close{position:absolute;top:16px;right:16px;z-index:10;background:#ffffff1a;border:none;color:var(--color-white);font-size:2rem;cursor:pointer;padding:8px 14px;line-height:1;opacity:.8;border-radius:var(--radius-sm);transition:opacity .2s,background-color .2s}.media-viewer-close:hover{opacity:1;background:#fff3}.media-viewer-prev,.media-viewer-next{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:#ffffff1a;border:none;color:var(--color-white);font-size:2.5rem;padding:8px 14px;cursor:pointer;border-radius:var(--radius-sm);line-height:1;transition:background-color .2s}.media-viewer-prev{left:8px}.media-viewer-next{right:8px}.media-viewer-prev:hover:not(:disabled),.media-viewer-next:hover:not(:disabled){background:#fff3}.media-viewer-prev:disabled,.media-viewer-next:disabled{opacity:.25;cursor:default}.media-viewer-media{max-width:90vw;max-height:85vh;display:flex;align-items:center;justify-content:center}.media-viewer-image{max-width:100%;max-height:85vh;object-fit:contain;border-radius:4px}.media-viewer-video{max-width:100%;max-height:85vh;border-radius:4px}.media-viewer-counter{position:absolute;bottom:20px;left:50%;transform:translate(-50%);color:#ffffffb3;font-size:.85rem;font-weight:600;background:#0006;padding:4px 14px;border-radius:var(--radius-pill)}.polls-page{max-width:var(--content-max-width);margin:0 auto;animation:fadeSlideIn .4s ease-out}.polls-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.poll-list{display:flex;flex-direction:column;gap:16px}@media(min-width:768px){.poll-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}}.poll-card{background:var(--color-white);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:20px;transition:box-shadow .2s,transform .2s}.poll-card:hover{box-shadow:var(--shadow-elevated)}.poll-question{margin-bottom:4px}.poll-closed-badge{display:inline-block;font-size:.75rem;font-weight:700;color:var(--color-berry);background-color:#fdf2f2;padding:2px 10px;border-radius:var(--radius-pill);margin-bottom:12px}.poll-options{display:flex;flex-direction:column;gap:8px;margin-top:12px}.poll-option{border-radius:var(--radius-sm);overflow:hidden}.poll-option-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;background:none;border:none;text-align:left;cursor:pointer;font-size:.95rem;transition:background-color .2s}.poll-option-btn:hover:not(:disabled){background-color:var(--color-parchment)}.poll-option--voted .poll-option-btn{background-color:#d4bb911f}.poll-option-label{font-weight:600;flex:1}.poll-option-meta{font-size:.8rem;color:var(--color-stone);white-space:nowrap}.poll-bar-bg{height:4px;background-color:#2d5a3d1a;border-radius:2px}.poll-bar-fill{height:100%;background-color:var(--color-moss);border-radius:2px;transition:width .6s ease}.poll-option--voted .poll-bar-fill{background-color:var(--color-forest)}.poll-total{margin-top:12px;font-size:.85rem;color:var(--color-stone);font-weight:600}.poll-multi-hint{font-size:.8rem;color:var(--color-stone);font-style:italic;margin-top:4px}.poll-answered{font-size:.85rem;color:var(--color-stone);margin-top:var(--space-sm)}.create-poll-page{max-width:560px;margin:0 auto;animation:fadeSlideIn .4s ease-out}.create-poll-page h2{margin-bottom:24px}.poll-form{background:var(--color-white);padding:24px;border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.poll-option-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.poll-option-row input{flex:1}.poll-option-row .btn-icon{flex-shrink:0;font-size:1.2rem;padding:8px;color:var(--color-berry)}.poll-card-actions{display:flex;gap:4px;margin-bottom:var(--space-sm)}.poll-edit-question{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--space-sm)}.poll-edit-textarea{font-family:var(--font-body);font-size:1rem;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;min-height:40px}.poll-edit-actions{display:flex;gap:4px}.pinned-page{max-width:var(--content-max-width);margin:0 auto;animation:fadeSlideIn .4s ease-out}.pinned-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.pinned-header-title{display:flex;align-items:center;gap:10px}.pinned-header-icon{color:var(--color-sand)}.pinned-create-editor{background:var(--color-white);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:24px;margin-bottom:24px;animation:fadeSlideIn .3s ease-out;border:1px solid var(--color-border)}.pinned-list{display:flex;flex-direction:column;gap:14px}.pinned-item{background:var(--color-white);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:0;display:flex;align-items:stretch;gap:0;transition:box-shadow .25s,transform .2s;overflow:hidden;animation:fadeSlideIn .4s ease-out both;border:1px solid var(--color-border)}.pinned-item:hover{box-shadow:var(--shadow-elevated);transform:translateY(-1px)}.pinned-item-accent{width:4px;flex-shrink:0;background:linear-gradient(180deg,var(--color-sand) 0%,var(--color-forest) 100%);border-radius:4px 0 0 4px}.pinned-item--editing{flex-direction:column}.pinned-item--editing .pinned-item-accent{display:none}.pinned-item--editing{padding:24px}.pinned-item-body{flex:1;padding:18px 20px;min-width:0}.pinned-item-title{margin-bottom:6px;font-size:1.15rem}.pinned-item-content{color:var(--color-stone);line-height:1.65;white-space:pre-wrap;font-size:.925rem}.pinned-item-actions{display:flex;flex-direction:column;gap:2px;flex-shrink:0;padding:12px 8px;opacity:0;transition:opacity .2s}.pinned-item:hover .pinned-item-actions{opacity:1}.pinned-action-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--color-stone);cursor:pointer;transition:background-color .2s,color .2s,transform .15s}.pinned-action-btn:hover:not(:disabled){background-color:var(--color-parchment);color:var(--color-charcoal);transform:scale(1.08)}.pinned-action-btn--danger{color:var(--color-berry);background-color:#c9444414}.pinned-action-btn--danger:hover:not(:disabled){background-color:#c9444426;color:var(--color-berry)}.pinned-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;text-align:center;animation:fadeIn .5s ease-out}.pinned-empty-icon{color:var(--color-sand);margin-bottom:16px;opacity:.6}.pinned-empty p{font-family:var(--font-display);font-size:1.2rem;color:var(--color-charcoal);margin-bottom:6px}.pinned-empty-hint{font-size:.875rem;color:var(--color-stone)}.pinned-item-editor{display:flex;flex-direction:column;gap:0}.editor-actions{display:flex;gap:8px;margin-top:16px}.editor-actions .btn-primary,.editor-actions .btn-secondary{padding:10px 20px;font-size:.9rem}@media(min-width:768px){.pinned-item-actions{flex-direction:column}}.member-list-page{max-width:600px;margin:0 auto;animation:fadeSlideIn .4s ease-out}.member-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.member-list{display:flex;flex-direction:column;gap:8px}.member-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-white);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);transition:box-shadow .2s,transform .15s}.member-item:hover{box-shadow:var(--shadow-elevated);transform:translateY(-1px)}.member-avatar{width:40px;height:40px;border-radius:var(--radius-avatar);object-fit:cover;flex-shrink:0}.member-name{flex:1;font-weight:600}.role-badge{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:4px 10px;border-radius:var(--radius-pill);background-color:var(--color-parchment);color:var(--color-stone)}.role-badge.role-admin{background-color:#2d5a3d1f;color:var(--color-forest)}.role-badge.role-owner{background-color:#d4a03c26;color:var(--color-amber)}.invite-page{max-width:500px;margin:0 auto;animation:fadeSlideIn .4s ease-out}.invite-page h2{margin-bottom:8px}.invite-page>p{color:var(--color-stone);margin-bottom:24px}.invite-generate-btn{gap:8px}.invite-panel{background:var(--color-white);padding:24px;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);animation:fadeSlideIn .3s ease-out;border:1px solid var(--color-border);display:flex;flex-direction:column;gap:20px}.invite-link-row{display:flex;gap:8px;align-items:stretch}.invite-link-input{flex:1;font-size:.825rem;background-color:var(--color-parchment)!important;border:1px solid var(--color-border)!important;padding:10px 14px!important;min-width:0;font-family:monospace}.invite-copy-btn{display:flex;align-items:center;justify-content:center;width:44px;flex-shrink:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-parchment);color:var(--color-stone);cursor:pointer;transition:background-color .2s,color .2s}.invite-copy-btn:hover{background:var(--color-border);color:var(--color-charcoal)}.invite-copy-btn--copied{background:#2d5a3d1a;color:var(--color-forest);border-color:#2d5a3d33}.invite-share-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.invite-share-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border-radius:var(--radius-sm);border:none;font-family:var(--font-body);font-size:.875rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .2s,filter .2s;color:var(--color-white)}.invite-share-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px #00000026}.invite-share-btn:active{transform:translateY(0)}.invite-share-btn--primary{background:var(--color-forest)}.invite-share-btn--whatsapp{background:#25d366}.invite-share-btn--sms{background:var(--color-stone)}.invite-share-btn--email{background:var(--color-charcoal)}.invite-qr-section{display:flex;flex-direction:column;align-items:center}.invite-qr-toggle{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--color-forest);font-family:var(--font-body);font-size:.875rem;font-weight:600;cursor:pointer;padding:8px 16px;border-radius:var(--radius-pill);transition:background-color .2s}.invite-qr-toggle:hover{background:#2d5a3d0f}.invite-qr-container{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:16px;padding:24px;background:var(--color-linen);border-radius:var(--radius-card);border:1px solid var(--color-border);animation:scaleIn .25s ease-out}.invite-qr-hint{font-size:.8rem;color:var(--color-stone)}.invite-new-link{display:flex;align-items:center;justify-content:center;gap:6px;background:none;border:none;color:var(--color-stone);font-family:var(--font-body);font-size:.825rem;font-weight:600;cursor:pointer;padding:8px;border-radius:var(--radius-sm);transition:color .2s}.invite-new-link:hover:not(:disabled){color:var(--color-charcoal)}.join-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60dvh;padding:24px;text-align:center;gap:16px;animation:fadeSlideIn .4s ease-out}.join-requests-page{max-width:600px;margin:0 auto;animation:fadeSlideIn .4s ease-out}.join-requests-page h2{margin-bottom:24px}.join-request-list{display:flex;flex-direction:column;gap:12px}.join-request-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;background:var(--color-white);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-wrap:wrap;transition:box-shadow .2s}.join-request-item:hover{box-shadow:var(--shadow-elevated)}.requester-info{display:flex;align-items:center;gap:12px}.request-actions{display:flex;gap:8px}.request-actions .btn-primary,.request-actions .btn-secondary{padding:8px 16px;font-size:.875rem}.account-page{max-width:560px;margin:0 auto;padding:32px 16px;animation:fadeSlideIn .4s ease-out}.account-page h2{margin-bottom:24px}.account-section{background:var(--color-white);padding:20px 24px;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-bottom:16px}.account-section h3{font-size:1rem;margin-bottom:8px}.account-email{font-size:.9rem;color:var(--color-stone)}.account-name{font-weight:600}.account-theme-hint{font-size:.875rem;color:var(--color-stone);margin-bottom:16px}.theme-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px}.theme-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px;border:2px solid var(--color-border);border-radius:var(--radius-card);background:transparent;cursor:pointer;transition:border-color .2s,transform .15s;font-family:var(--font-body)}.theme-option:hover{border-color:var(--color-stone);transform:translateY(-2px)}.theme-option--active{border-color:var(--color-forest);box-shadow:0 0 0 2px #2d5a3d26}.theme-preview{width:100%;aspect-ratio:4 / 3;border-radius:8px;overflow:hidden}.theme-preview-bg{width:100%;height:100%;display:flex;padding:4px;gap:3px}.theme-preview-sidebar{width:30%;border-radius:4px;padding:4px 3px;display:flex;flex-direction:column;gap:3px}.theme-preview-active{height:6px;border-radius:3px}.theme-preview-tab{height:4px;border-radius:2px;opacity:.5}.theme-preview-content{flex:1;display:flex;align-items:flex-start;padding-top:4px}.theme-preview-card{width:100%;height:60%;border-radius:4px;padding:4px;display:flex;align-items:flex-end}.theme-preview-accent{width:40%;height:4px;border-radius:2px}.theme-option-label{font-size:.75rem;font-weight:600;color:var(--color-charcoal)}.account-section--actions{display:flex;flex-direction:column;gap:8px;background:transparent;box-shadow:none;padding:0}.account-section--actions .btn-ghost,.account-section--actions .btn-danger-outline{justify-content:flex-start}.delete-account-page{max-width:500px;margin:48px auto;padding:32px;background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);animation:fadeSlideIn .4s ease-out}.delete-account-page h2{color:var(--color-berry);margin-bottom:16px}.delete-account-page p{color:var(--color-stone);margin-bottom:24px;line-height:1.6}.delete-account-page label{display:flex;align-items:center;gap:10px;margin-bottom:24px;cursor:pointer;font-weight:600}.delete-account-page button.danger{width:100%}.create-group-page{max-width:560px;margin:0 auto;padding:32px 16px;animation:fadeSlideIn .4s ease-out}.create-group-page h1{margin-bottom:24px}.create-group-form{background:var(--color-white);padding:24px;border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.group-settings-page{max-width:560px;margin:0 auto;animation:fadeSlideIn .4s ease-out}.group-settings-page h2{margin-bottom:24px}.logo-upload-section{display:flex;align-items:center;gap:16px;margin-bottom:24px;background:var(--color-white);padding:20px;border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.logo-upload-trigger{position:relative;width:72px;height:72px;border-radius:var(--radius-avatar);border:2px dashed var(--color-border);background:var(--color-parchment);cursor:pointer;overflow:hidden;flex-shrink:0;transition:border-color .2s;padding:0}.logo-upload-trigger:hover{border-color:var(--color-forest)}.logo-upload-preview{width:100%;height:100%;object-fit:cover}.logo-upload-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.75rem;color:var(--color-stone);background:linear-gradient(135deg,var(--color-parchment),var(--color-linen))}.logo-upload-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#2d2a2673;color:var(--color-white);opacity:0;transition:opacity .2s}.logo-upload-trigger:hover .logo-upload-overlay{opacity:1}.logo-upload-progress{font-size:.85rem;font-weight:700}.logo-upload-trigger:disabled .logo-upload-overlay{opacity:1}.logo-upload-info{display:flex;flex-direction:column;gap:2px}.logo-upload-label{font-weight:700;font-size:.925rem;color:var(--color-charcoal)}.logo-upload-hint{font-size:.825rem;color:var(--color-stone)}.slug-input-wrapper{display:flex;align-items:stretch;border:2px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .25s}.slug-input-wrapper:focus-within{border-color:var(--color-forest);box-shadow:var(--shadow-focus)}.slug-prefix{display:flex;align-items:center;padding:0 12px;background:var(--color-parchment);color:var(--color-stone);font-size:.875rem;font-family:monospace;white-space:nowrap;border-right:1px solid var(--color-border);-webkit-user-select:none;user-select:none}.slug-input-wrapper input{flex:1;border:none!important;border-radius:0!important;box-shadow:none!important;font-family:monospace;font-size:.925rem;padding:12px 14px!important}.slug-input-wrapper input:focus{box-shadow:none!important}.group-settings-form{background:var(--color-white);padding:24px;border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.settings-danger-zone{margin-top:32px;padding:24px;background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:1px solid rgba(201,68,68,.15)}.settings-danger-zone h3{font-size:1rem;color:var(--color-berry);margin-bottom:16px}.danger-zone-action{margin-bottom:12px}.danger-zone-action:last-child{margin-bottom:0}.btn-danger-outline{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:transparent;border:1.5px solid var(--color-berry);color:var(--color-berry);border-radius:var(--radius-sm);font-weight:700;font-family:var(--font-body);cursor:pointer;transition:background-color .2s,color .2s}.btn-danger-outline:hover{background:#c944440f}.transfer-panel,.leave-confirm-panel{background:var(--color-linen);border-radius:var(--radius-sm);padding:16px;animation:fadeSlideIn .2s ease-out}.transfer-panel p,.leave-confirm-panel p{font-size:.9rem;color:var(--color-charcoal);margin-bottom:12px}.transfer-panel select{margin-bottom:12px}.transfer-actions,.leave-confirm-actions{display:flex;gap:8px}.transfer-actions .btn-danger,.leave-confirm-actions .btn-danger,.transfer-actions .btn-secondary,.leave-confirm-actions .btn-secondary{padding:10px 20px;font-size:.9rem}.album-actions{display:flex;gap:4px}.album-edit-inline{display:flex;gap:4px;align-items:center;margin-bottom:var(--space-sm)}.album-edit-input{flex:1;font-size:.9rem;padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.media-thumb-container{position:relative}.media-delete-btn{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;background:#00000080;color:#fff;border:none;font-size:1rem;cursor:pointer;opacity:0;transition:opacity .15s;display:flex;align-items:center;justify-content:center}.media-thumb-container:hover .media-delete-btn{opacity:1}@media(max-width:767px){.group-list-page,.create-group-page,.group-settings-page,.member-list-page,.invite-page,.join-requests-page,.thread-list-page,.calendar-page,.create-event-page,.event-detail-page,.albums-page,.album-detail-page,.polls-page,.create-poll-page,.pinned-page,.delete-account-page{padding-left:16px;padding-right:16px}}@media(min-width:768px){.group-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.albums-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.media-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}}@media(min-width:1200px){.albums-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
