.groups-section{margin:0 0 28px}.groups-section-title{font-size:var(--text-h2);font-weight:var(--weight-black);line-height:var(--leading-tight);color:var(--text-strong);margin:0 0 14px}.groups-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;display:grid}.groups-empty{text-align:center;background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:40px 20px 44px}.groups-empty>i{color:var(--text-muted);margin-bottom:12px;font-size:26px;display:block}.groups-empty-title{font-size:var(--text-h3);font-weight:var(--weight-bold);color:var(--text-strong);margin:0 0 6px;line-height:1.3}.groups-empty-sub{font-size:var(--text-sm);color:var(--text-muted);max-width:420px;margin:0 auto 20px;line-height:1.5}.groups-empty-cta{border-radius:var(--radius-pill);background:var(--brand);min-height:48px;color:var(--text-onbrand);font-size:var(--text-body-size);font-weight:var(--weight-bold);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-out), transform var(--motion-fast) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 22px;text-decoration:none;display:inline-flex}.groups-empty-cta:hover{background:var(--brand-hover);transform:translateY(-1px)}.groups-empty-cta:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.groups-footnote{font-size:var(--text-sm);color:var(--text-muted);max-width:var(--content-max);text-align:center;margin:4px auto 0;line-height:1.5}.groups-footnote a{color:var(--link);text-decoration:none}.groups-footnote a:hover{text-decoration:underline}.group-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:inherit;transition:transform var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);text-decoration:none;display:block;overflow:hidden}.group-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-1px)}.group-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.group-card-banner{aspect-ratio:4;object-fit:cover;background:var(--surface-inset);width:100%;display:block}.group-card-banner.is-empty,.group-hero-banner.is-empty,.group-banner-preview.is-empty{background-image:linear-gradient(115deg, color-mix(in srgb, var(--rv-purple) 26%, var(--surface-card)) 0%, color-mix(in srgb, var(--rv-blue) 22%, var(--surface-card)) 55%, color-mix(in srgb, var(--rv-red) 16%, var(--surface-card)) 100%)}.group-card-body{padding:18px}.group-card-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.group-card-name{font-size:var(--text-h2);font-weight:var(--weight-bold);color:var(--text-strong);overflow-wrap:anywhere;min-width:0;margin:0;line-height:1.3}.group-card-desc{font-size:var(--text-sm);color:var(--text-muted);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:8px 0 0;line-height:1.5;display:-webkit-box;overflow:hidden}.group-card-meta{font-size:var(--text-meta);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 0;display:flex}.group-card-badge,.group-badge{--accent:var(--rv-green);--accent-ink:var(--save-ink);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--accent) 15%, transparent);border:1px solid color-mix(in srgb, var(--accent) 38%, transparent);color:var(--accent-ink);font-size:var(--text-meta);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;flex:none;align-items:center;gap:4px;padding:4px 10px;line-height:1.4;display:inline-flex}.group-card-badge i,.group-badge i{font-size:13px}.group-card-badge.is-pending,.group-badge.is-pending{--accent:var(--rv-yellow);--accent-ink:#b45309}.group-card-badge.is-joined{--accent:var(--rv-green);--accent-ink:var(--save-ink)}.group-create,.group-composer{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:0 0 18px;padding:14px 18px}.group-create.is-open,.group-composer.is-open{padding:18px}.group-create-row,.group-composer-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.group-create-row>i,.group-composer-row>i{color:var(--text-muted);flex:none;font-size:20px}.group-create-prompt,.group-composer-prompt{min-width:0;font-size:var(--text-body-size);color:var(--text-muted);flex:180px;line-height:1.4}.group-create-btn,.group-composer-btn{border-radius:var(--radius-pill);background:var(--surface-inset);min-height:44px;color:var(--text-strong);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-bold);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out);border:1px solid #0000;flex:none;justify-content:center;align-items:center;gap:8px;padding:0 16px;text-decoration:none;display:inline-flex}.group-create-btn:hover,.group-composer-btn:hover{background:var(--surface-hover);color:var(--text-strong)}.group-create-btn:focus-visible,.group-composer-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.group-create-btn i,.group-composer-btn i{font-size:16px}.group-create.is-signedout{background:var(--surface-inset);box-shadow:none;border-style:dashed}.group-create.is-signedout .group-create-btn{background:var(--brand);color:var(--text-onbrand)}.group-create.is-signedout .group-create-btn:hover{background:var(--brand-hover);color:var(--text-onbrand)}.group-create-form{gap:16px;max-width:560px;display:grid}.group-create-title{font-size:var(--text-h2);font-weight:var(--weight-black);line-height:var(--leading-tight);color:var(--text-strong);margin:0}.group-create-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.group-create-note{font-size:var(--text-sm);color:var(--text-muted);max-width:var(--content-max);margin:0;line-height:1.5}.group-composer-top{align-items:center;gap:12px;margin-bottom:12px;display:flex}.group-composer-close{border-radius:var(--radius-pill);width:44px;height:44px;color:var(--text-muted);font:inherit;cursor:pointer;transition:background-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out);background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;margin-left:auto;padding:0;display:inline-flex}.group-composer-close:hover{background:var(--surface-inset);color:var(--text-strong)}.group-composer-close:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.group-composer-close i{font-size:18px}.group-field,.group-form-row{gap:6px;max-width:420px;display:grid}.group-field-label,.group-form-label{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--text-strong);line-height:1.4}.group-field-opt{font-size:var(--text-meta);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-left:6px}.group-field-hint{font-size:var(--text-sm);color:var(--text-muted);max-width:var(--content-max);line-height:1.4}.group-field-hint strong{font-weight:var(--weight-bold);color:var(--text-body)}.group-input,.group-textarea,.group-form-control{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-card);width:100%;min-height:44px;color:var(--text-strong);font:inherit;font-size:var(--text-body-size);transition:border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);padding:10px 14px;line-height:1.5}.group-input::placeholder,.group-textarea::placeholder{color:var(--text-subtle)}.group-input:focus,.group-textarea:focus,.group-form-control:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);outline:none}.group-textarea{resize:vertical;min-height:96px}.group-form-error{border-radius:var(--radius-md);background:color-mix(in srgb, var(--rv-red) 10%, transparent);border:1px solid color-mix(in srgb, var(--rv-red) 32%, transparent);color:var(--rv-red-hover);font-size:var(--text-sm);align-items:flex-start;gap:8px;max-width:560px;margin:0;padding:10px 12px;line-height:1.5;display:flex}.group-form-error i{margin-top:1px;font-size:16px}.group-btn{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface-card);min-height:44px;color:var(--text-strong);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-bold);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out), opacity var(--motion-fast) var(--ease-out);justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;display:inline-flex}.group-btn:hover{background:var(--surface-inset)}.group-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.group-btn[disabled],.group-btn[aria-disabled=true]{opacity:.6;cursor:not-allowed}.group-btn i{font-size:16px}.group-btn.primary{background:var(--brand);min-height:48px;color:var(--text-onbrand);border-color:#0000;padding:0 22px}.group-btn.primary:hover{background:var(--brand-hover)}.group-btn.is-danger{color:var(--rv-red-hover)}.group-btn.is-danger:hover{background:color-mix(in srgb, var(--rv-red) 12%, transparent);color:var(--rv-red-hover)}.group-btn.is-danger:focus-visible{outline-color:var(--rv-red-hover)}.group-layout{--group-rail-w:288px;grid-template-columns:minmax(0, 1fr) var(--group-rail-w);align-items:start;gap:18px;display:grid}.group-main{align-content:start;gap:18px;min-width:0;display:grid}.group-rail{top:calc(var(--header-height) + 16px);align-content:start;gap:18px;display:grid;position:sticky}.group-notice{background:var(--surface-inset);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-body);align-items:flex-start;gap:10px;margin:0;padding:14px 16px;line-height:1.5;display:flex}.group-notice i{color:var(--text-muted);flex:none;margin-top:1px;font-size:16px}.group-panel{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:18px}.group-panel-title{font-size:var(--text-h3);font-weight:var(--weight-bold);color:var(--text-strong);align-items:center;gap:8px;margin:0 0 10px;line-height:1.3;display:flex}.group-panel-title i{color:var(--text-muted);font-size:16px}.group-panel-text{font-size:var(--text-sm);color:var(--text-body);margin:0 0 10px;line-height:1.5}.group-panel-meta{font-size:var(--text-sm);color:var(--text-muted);margin:8px 0 0;line-height:1.5}.group-panel-meta:first-of-type{margin-top:0}.group-panel-meta i{font-size:14px}.group-panel-meta a{color:var(--link);font-weight:var(--weight-semibold);text-decoration:none}.group-panel-meta a:hover{text-decoration:underline}.group-rules{font-size:var(--text-sm);color:var(--text-body);margin:0;padding-left:20px;line-height:1.5}.group-rules li+li{margin-top:8px}.group-rules li::marker{color:var(--text-muted);font-weight:var(--weight-bold)}.group-rail-note{font-size:var(--text-sm);color:var(--text-muted);margin:0;padding:0 4px;line-height:1.5}.group-rail-note a{color:var(--link);text-decoration:none}.group-rail-note a:hover{text-decoration:underline}.group-hero{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:0 0 18px;position:relative;overflow:hidden}.group-hero-banner{aspect-ratio:3;object-fit:cover;background:var(--surface-inset);background-position:50%;background-size:cover;justify-content:center;align-items:center;width:100%;max-height:260px;display:flex}.group-hero-banner.is-empty i,.group-banner-preview.is-empty i{color:var(--text-strong);opacity:.28;font-size:28px}.group-hero-avatar{object-fit:cover;border-radius:var(--radius-lg);border:3px solid var(--surface-card);background:var(--surface-inset);flex:none;width:72px;height:72px;margin-top:-36px;display:block;position:relative}.group-hero>.group-hero-avatar{margin-left:18px}.group-hero-row{flex-wrap:wrap;align-items:flex-start;gap:14px;padding:0 18px 18px;display:flex}.group-hero-body{flex-direction:column;flex:260px;align-items:flex-start;gap:0;min-width:0;display:flex}.group-hero-name{font-size:var(--text-h1);font-weight:var(--weight-black);line-height:var(--leading-tight);color:var(--text-strong);overflow-wrap:anywhere;min-width:0;margin:12px 0 0}.group-hero-dot{opacity:.5}.group-hero-meta{font-size:var(--text-meta);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 0;display:flex}.group-hero-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;padding-top:14px;display:flex}.group-settings{gap:18px;display:grid}.group-settings-title{font-size:var(--text-h1);font-weight:var(--weight-black);line-height:var(--leading-tight);color:var(--text-strong);margin:0}.group-settings-section{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:18px}.group-settings-section-title{font-size:var(--text-h3);font-weight:var(--weight-bold);color:var(--text-strong);border-bottom:1px solid var(--border-muted);margin:0 0 14px;padding-bottom:12px;line-height:1.3}.group-form-grid{gap:16px;max-width:560px;display:grid}.group-radio-row{gap:8px;max-width:420px;display:grid}.group-radio{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-card);min-height:44px;font-size:var(--text-sm);color:var(--text-body);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-out);align-items:flex-start;gap:10px;padding:11px 14px;line-height:1.5;display:flex}.group-radio:hover{background:var(--surface-inset)}.group-radio:focus-within{outline:2px solid var(--brand);outline-offset:2px}.group-radio input{width:18px;height:18px;accent-color:var(--brand);flex:none;margin:2px 0 0}.group-radio strong{font-weight:var(--weight-bold);color:var(--text-strong);display:block}.group-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.group-table th{text-align:left;white-space:nowrap;font-size:var(--text-meta);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-inset);border-bottom:1px solid var(--border);padding:10px 12px}.group-table th:first-child{border-top-left-radius:var(--radius-md)}.group-table th:last-child{border-top-right-radius:var(--radius-md)}.group-table td{border-bottom:1px solid var(--border-muted);color:var(--text-body);vertical-align:middle;padding:10px 12px}.group-table tr:last-child td{border-bottom:none}.group-table tr:hover td{background:var(--surface-inset)}.group-banner-preview{aspect-ratio:4;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-inset);width:100%;display:block}@media (max-width:1023px){.group-layout{grid-template-columns:minmax(0,1fr)}.group-main{order:1}.group-rail{order:2;position:static;top:auto}}@media (max-width:768px){.groups-section{margin-bottom:24px}.groups-grid{gap:14px}.group-create,.group-composer,.group-card-body,.group-panel,.group-settings-section,.group-create.is-open,.group-composer.is-open{padding:16px}.groups-empty{padding:32px 16px 36px}.group-hero-name{font-size:var(--text-h2)}.group-hero-avatar{width:60px;height:60px;margin-top:-30px}.group-hero-row{flex-direction:column;align-items:stretch;gap:12px;padding:0 16px 16px}.group-hero-body{flex:none}.group-hero-actions{width:100%;margin-left:0;padding-top:0}.group-hero-actions .group-btn{flex:auto}.group-table thead{display:none}.group-table,.group-table tbody,.group-table tr,.group-table td{width:100%;display:block}.group-table tr{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);margin:0 0 12px;padding:12px 14px}.group-table tr:hover td{background:0 0}.group-table td{white-space:normal;border:none;padding:5px 0}.group-table td[data-label]:before{content:attr(data-label);font-size:var(--text-meta);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:2px;display:block}}@media (max-width:480px){.group-create-prompt,.group-composer-prompt{flex:100%}.group-create-btn,.group-composer-btn{width:100%}.group-create-actions .group-btn{flex:100%}.groups-empty-cta{width:100%}}[data-theme=dark] .group-card,[data-theme=dark] .group-create,[data-theme=dark] .group-composer,[data-theme=dark] .groups-empty,[data-theme=dark] .group-hero,[data-theme=dark] .group-panel,[data-theme=dark] .group-settings-section{box-shadow:none;border-color:var(--border)}[data-theme=dark] .group-card:hover{box-shadow:none;border-color:var(--border-strong)}[data-theme=dark] .main-content-wrapper section.groups-section,[data-theme=dark] .main-content-wrapper section.group-panel,[data-theme=dark] .main-content-wrapper section.group-settings-section{background:var(--surface-card)!important;border-color:var(--border)!important;color:var(--text-body)!important}[data-theme=dark] .main-content-wrapper section.groups-section,[data-theme=dark] .main-content-wrapper aside.group-rail{background:0 0!important;border-color:#0000!important}[data-theme=dark] .main-content-wrapper aside.group-rail a{color:var(--link)!important}[data-theme=dark] .group-card-badge,[data-theme=dark] .group-badge,[data-theme=dark] .group-card-badge.is-joined{--accent-ink:var(--success)}[data-theme=dark] .group-card-badge.is-pending,[data-theme=dark] .group-badge.is-pending{--accent-ink:var(--warning)}[data-theme=dark] .group-form-error,[data-theme=dark] .group-btn.is-danger,[data-theme=dark] .group-btn.is-danger:hover{color:var(--danger)}[data-theme=dark] .group-btn.is-danger:focus-visible{outline-color:var(--danger)}[data-theme=dark] .group-create.is-signedout{background:var(--surface-card);border-color:var(--border-strong)}
