/* AdminDemoConfigPage styles */ .configGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); gap: 1rem; } .configCard { display: flex; align-items: flex-start; gap: 1rem; padding: 1.25rem; border-radius: var(--object-radius-medium, 10px); border: 1px solid var(--border-color, #e2e8f0); background: var(--bg-secondary, #fff); transition: box-shadow 0.15s ease; } .configCard:hover { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); } :global(.dark-theme) .configCard { background: var(--bg-secondary, #1e1e2e); border-color: var(--border-color, #2d2d3d); } .cardIcon { font-size: 1.5rem; color: var(--primary-color, #f25843); flex-shrink: 0; margin-top: 2px; } .cardContent { flex: 1; min-width: 0; } .cardTitle { font-size: 1rem; font-weight: 600; color: var(--text-primary); margin: 0 0 0.25rem 0; } .cardDescription { font-size: 0.825rem; color: var(--text-secondary); margin: 0 0 0.5rem 0; line-height: 1.4; } .cardCode { font-size: 0.7rem; font-family: var(--font-mono, monospace); color: var(--text-tertiary); background: var(--bg-tertiary, #f7f7f8); padding: 2px 6px; border-radius: 4px; } :global(.dark-theme) .cardCode { background: var(--bg-tertiary, #2a2a3a); } .cardActions { display: flex; flex-direction: column; gap: 0.5rem; flex-shrink: 0; } .loadButton, .removeButton { display: flex; align-items: center; gap: 0.4rem; padding: 0.4rem 0.85rem; border-radius: var(--object-radius-small, 6px); font-size: 0.8rem; font-weight: 500; border: 1px solid transparent; cursor: pointer; transition: background 0.15s ease, opacity 0.15s ease; white-space: nowrap; } .loadButton { background: #16a34a; color: #fff; } .loadButton:hover:not(:disabled) { background: #15803d; } .removeButton { background: transparent; color: #dc2626; border-color: #dc2626; } .removeButton:hover:not(:disabled) { background: rgba(220, 38, 38, 0.06); } .loadButton:disabled, .removeButton:disabled { opacity: 0.5; cursor: not-allowed; } .successBanner { padding: 0.75rem 1rem; border-radius: var(--object-radius-small, 6px); background: rgba(22, 163, 74, 0.08); border: 1px solid rgba(22, 163, 74, 0.2); color: #16a34a; font-size: 0.85rem; margin-bottom: 1rem; } :global(.dark-theme) .successBanner { background: rgba(22, 163, 74, 0.12); } .errorBanner { padding: 0.75rem 1rem; border-radius: var(--object-radius-small, 6px); background: rgba(220, 38, 38, 0.06); border: 1px solid rgba(220, 38, 38, 0.2); color: #dc2626; font-size: 0.85rem; margin-bottom: 1rem; } :global(.dark-theme) .errorBanner { background: rgba(220, 38, 38, 0.12); } .loadingState, .emptyState { text-align: center; padding: 3rem 1rem; color: var(--text-tertiary); font-size: 0.9rem; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .spin { animation: spin 1s linear infinite; }