/* ── Plugin Manager ─────────────────────────────────────────── */ .plugin-manager, .plugin-manager-detail { display: flex; flex-direction: column; gap: var(--space-lg); padding-inline: var(--space-xl); padding-block: var(--space-md); } .plugin-manager-header { display: flex; align-items: center; justify-content: space-between; padding-bottom: var(--space-sm); border-bottom: var(--btn-border-width) solid var(--border); gap: var(--space-sm); } .plugin-manager-header-title { font-size: 13px; font-weight: 600; color: var(--text); flex: 1; } .plugin-manager-actions { display: flex; gap: var(--space-sm); align-items: center; } .plugin-install-form { display: flex; flex-direction: column; gap: var(--space-sm); padding: var(--space-lg); border: var(--btn-border-width) solid var(--border); border-radius: var(--radius-md); background: var(--surface); } .plugin-install-hint { margin: 0; font-size: 0.85rem; color: var(--text-secondary, var(--text-muted)); line-height: 1.45; } .plugin-install-hint code { padding: var(--btn-border-width) var(--space-xs); border-radius: var(--radius-sm); background: color-mix(in srgb, var(--text-muted) 12%, transparent); font-size: 0.85em; } .plugin-install-actions { display: flex; gap: var(--space-sm); justify-content: flex-end; } .plugin-list { display: flex; flex-direction: column; gap: var(--space-sm); } .plugin-item { display: flex; align-items: center; justify-content: space-between; padding: var(--space-md) var(--space-lg); background: var(--surface); border: var(--btn-border-width) solid var(--border); border-radius: var(--radius-md); transition: border-color var(--transition-fast); } .plugin-item:hover { border-color: var(--text-dim); } .plugin-info { display: flex; align-items: center; gap: var(--space-sm); min-width: 0; } .plugin-name { font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .plugin-version { font-size: 0.85rem; } .plugin-state-badge { display: inline-flex; align-items: center; padding: var(--space-xs) var(--space-sm); border-radius: var(--radius-pill); font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; background: color-mix(in srgb, currentColor 12%, transparent); } .plugin-actions { display: flex; align-items: center; gap: var(--space-xs); flex-shrink: 0; } /* Detail view */ .plugin-manager-detail-header { display: flex; align-items: center; gap: var(--space-md); flex-wrap: wrap; } .plugin-detail-title { display: flex; align-items: center; gap: var(--space-md); flex-wrap: wrap; } .plugin-detail-name { margin: 0; } .plugin-detail-content { display: flex; flex-direction: column; gap: var(--space-lg); } .plugin-detail-card { background: var(--surface); border: var(--btn-border-width) solid var(--border); border-radius: var(--radius-md); padding: var(--space-lg); display: flex; flex-direction: column; gap: var(--space-md); } .plugin-description { font-size: 0.95rem; color: var(--text-secondary, var(--text-muted)); line-height: 1.5; } .plugin-detail-meta-row { display: flex; align-items: center; gap: var(--space-xs); font-size: 0.9rem; color: var(--text-muted); } .plugin-homepage a { display: inline-flex; align-items: center; gap: var(--space-xs); color: var(--color-info); font-size: 0.85rem; } .plugin-detail-section-heading { margin: 0; padding: 0; border: 0; font-size: 0.95rem; } .plugin-settings-form { display: flex; flex-direction: column; gap: var(--space-lg); margin-top: var(--space-xs); } .plugin-settings-form .form-group { padding: 0; margin: 0; } .plugin-settings-array { display: flex; flex-direction: column; gap: var(--space-sm); } .plugin-settings-array-item { display: flex; align-items: center; gap: var(--space-sm); } .plugin-settings-array-item input { flex: 1; } .plugin-detail-actions { display: flex; gap: var(--space-sm); padding-top: var(--space-md); border-top: var(--btn-border-width) solid var(--border); justify-content: flex-end; } /* Empty and loading states */ .plugin-manager .empty-state, .plugin-manager .loading-state, .plugin-manager .settings-empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-sm); padding: var(--space-2xl); text-align: center; color: var(--text-muted); } .plugin-bundled-runtime-list { width: 100%; display: flex; flex-direction: column; gap: var(--space-sm); margin-top: var(--space-sm); } .plugin-bundled-runtime-item { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); padding: var(--space-sm) var(--space-md); border: var(--btn-border-width) solid var(--border); border-radius: var(--radius-md); background: var(--surface); } .plugin-bundled-runtime-meta { display: flex; align-items: center; gap: var(--space-sm); min-width: 0; } .plugin-bundled-runtime-name { color: var(--text); font-size: 0.9rem; font-weight: 500; } .plugin-bundled-runtime-badge { display: inline-flex; align-items: center; padding: var(--btn-border-width) var(--space-xs); border-radius: var(--radius-pill); background: var(--status-in-review-bg); color: var(--in-review); font-size: 0.75rem; font-weight: 600; text-transform: uppercase; } .plugin-bundled-runtime-section { display: flex; flex-direction: column; gap: var(--space-sm); } .plugin-bundled-runtime-header { display: flex; flex-direction: column; gap: var(--space-xs); } .plugin-bundled-runtime-heading { margin: 0; font-size: 0.95rem; } .plugin-bundled-runtime-description { margin: 0; font-size: 0.85rem; color: var(--text-muted); } .plugin-bundled-runtime-status { display: inline-flex; align-items: center; padding: var(--btn-border-width) var(--space-xs); border-radius: var(--radius-pill); font-size: 0.75rem; font-weight: 600; text-transform: uppercase; } .plugin-bundled-runtime-status--installed { background: var(--status-done-bg); color: var(--done); } .plugin-bundled-runtime-status--available { background: var(--status-todo-bg); color: var(--todo); } @media (max-width: 768px) { .plugin-manager-detail-header { gap: var(--space-sm); } .plugin-detail-title { gap: var(--space-xs); } .plugin-detail-card { padding: var(--space-md); gap: var(--space-sm); } .plugin-list { gap: var(--space-xs); } .plugin-item { padding: var(--space-md); flex-direction: column; align-items: stretch; gap: var(--space-sm); } .plugin-info { width: 100%; flex-wrap: wrap; row-gap: var(--space-xs); } .plugin-name { flex: 1 1 100%; white-space: normal; } .plugin-actions { width: 100%; justify-content: flex-end; flex-wrap: wrap; gap: var(--space-sm); } .plugin-actions .btn-icon, .plugin-actions .toggle-switch { min-width: 36px; min-height: 36px; } .plugin-actions .toggle-switch { display: inline-flex; align-items: center; justify-content: center; } .plugin-detail-actions { flex-wrap: wrap; justify-content: flex-start; } .plugin-detail-actions button { flex: 1 1 auto; min-height: 36px; } .plugin-bundled-runtime-item { flex-direction: column; align-items: stretch; } .plugin-bundled-runtime-item .btn { min-height: 36px; } }