.modules-page{display:flex;flex-direction:column;gap:12px;padding:12px 16px 100px;max-width:800px;width:100%;margin:0 auto}.header-section{display:flex;flex-direction:column;gap:12px;position:sticky;top:0;z-index:50;margin:-12px -16px 0;padding:12px 16px 8px;background:linear-gradient(180deg,var(--md-sys-color-background) 85%,transparent)}.search-bar{background-color:var(--md-sys-color-surface-container-high);border-radius:24px;height:48px;display:flex;align-items:center;padding:0 16px;gap:12px;transition:background-color .2s}.search-bar:focus-within{background-color:var(--md-sys-color-surface-container-highest)}.search-icon{width:20px;height:20px;fill:var(--md-sys-color-on-surface);opacity:.7;flex-shrink:0}.search-input{flex:1;border:none;background:transparent;height:100%;font-size:14px;color:var(--md-sys-color-on-surface);outline:none;min-width:0;padding:0}.search-input::placeholder{color:var(--md-sys-color-on-surface-variant);opacity:.7}.filter-group{display:flex;align-items:center;gap:4px}.btn-icon{background:transparent;border:none;cursor:pointer;padding:6px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.btn-icon:hover{background-color:#0000000d}.filter-select{background:transparent;border:none;color:var(--md-sys-color-primary);font-size:13px;font-weight:500;outline:none;cursor:pointer;padding:4px 8px;border-radius:8px}.filter-select:hover{background-color:#0000000d}.modules-list{display:flex;flex-direction:column;gap:8px}.module-card{background-color:var(--md-sys-color-surface-container-low);border-radius:16px;overflow:hidden;transition:all .3s cubic-bezier(.2,0,0,1);position:relative}.module-card.expanded{background-color:var(--md-sys-color-surface-container)}.module-card.dirty{border:1px solid var(--md-sys-color-primary)}.module-header{padding:12px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;min-height:64px}.module-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.module-name{font-size:14.5px;font-weight:500;color:var(--md-sys-color-on-surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.module-meta{font-size:11px;color:var(--md-sys-color-on-surface-variant);display:flex;gap:6px;align-items:center;white-space:nowrap;overflow:hidden}.module-id{overflow:hidden;text-overflow:ellipsis;opacity:.9}.version-badge{background-color:var(--md-sys-color-surface-variant);padding:0 5px;border-radius:4px;font-family:var(--md-ref-typeface-mono);flex-shrink:0;height:16px;line-height:16px}.mode-indicator{padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;text-transform:uppercase;flex-shrink:0;margin-left:4px;letter-spacing:.3px}.mode-auto{background-color:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.mode-magic{background-color:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.mode-ignore{background-color:var(--md-sys-color-surface-variant);color:var(--md-sys-color-on-surface-variant)}.module-body-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1)}.module-card.expanded .module-body-wrapper{grid-template-rows:1fr}.module-body-inner{overflow:hidden}.module-body-content{padding:0 16px 16px;border-top:1px solid var(--md-sys-color-outline-variant);opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease;transition-delay:0s}.module-card.expanded .module-body-content{opacity:1;transform:translateY(0);transition-delay:.1s}.body-section{margin-top:12px}.section-label{font-size:11px;font-weight:500;color:var(--md-sys-color-primary);text-transform:uppercase;margin-bottom:6px;letter-spacing:.5px}.module-desc{font-size:13px;color:var(--md-sys-color-on-surface-variant);line-height:1.45;margin-bottom:12px;margin-top:12px}.strategy-selector{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:4px}.strategy-option{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;border-radius:10px;border:1px solid var(--md-sys-color-outline);cursor:pointer;transition:all .2s;background:transparent;color:var(--md-sys-color-on-surface)}.strategy-option:hover{background-color:var(--md-sys-color-surface-container-high)}.strategy-option.selected{background-color:var(--md-sys-color-secondary-container);border-color:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.opt-title{font-weight:600;font-size:12px}.opt-sub{font-size:10px;opacity:.8}.empty-state{text-align:center;padding:48px 0;color:var(--md-sys-color-outline);font-size:14px}
