/* Container */ .manage-setting-container { display: flex; overflow-y: scroll; margin: 0; padding: 1rem; width: 100%; height: 100%; flex-direction: column; gap: 1rem; box-sizing: border-box; scrollbar-width: none; } /* Card Base */ .setting-card { border: 1px solid var(--color-border-secondary); border-radius: var(--radius-xl); background: var(--color-background-secondary); box-shadow: var(--shadow-sm); transition: var(--transition-medium); } .setting-card:hover { border-color: var(--color-border); box-shadow: var(--shadow-md); } /* Action Button Base */ .action-button { display: flex; align-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 0.5rem 1rem; font-size: 0.875rem; font-weight: 500; text-decoration: none; white-space: nowrap; color: var(--color-text-primary); background: var(--color-surface-elevated); transition: var(--transition-fast); gap: 0.5rem; cursor: pointer; } .action-button:hover { border-color: var(--color-border); background: var(--color-background-secondary); box-shadow: var(--shadow-sm); transform: translateY(-1px); } .action-button:active { transform: translateY(0); box-shadow: none; } .action-button.primary { border-color: var(--color-accent); color: white; background: var(--color-accent); } .action-button.primary:hover { border-color: var(--color-accent); background: var(--color-accent); } .action-button.secondary { color: var(--color-text-secondary); background: var(--color-background-secondary); } .action-button.warning { border-color: var(--color-warning); color: white; background: var(--color-warning); } .action-button.warning:hover { border-color: var(--color-warning); background: var(--color-warning); opacity: 0.9; } .action-button .button-icon { width: 16px; height: 16px; } /* Content Cards */ .content-card { flex: 1; } .card-content { padding: 1.25rem; } /* Setting sections with reduced spacing */ .setting-section + .setting-section { margin-top: 1rem; border-top: 1px solid var(--color-border-secondary); padding-top: 1rem; } /* Form Groups */ .form-label-wrapper { display: flex; align-items: center; gap: 0.5rem; } .form-label { font-size: 0.875rem; font-weight: 500; color: var(--color-text-primary); } .form-control { display: flex; flex-direction: column; gap: 0.5rem; } .form-input { border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 0.75rem; width: 100%; font-size: 0.875rem; color: var(--color-text-primary); background: var(--color-background-secondary); transition: var(--transition-fast); } .form-input:focus { border-color: var(--color-accent); background: var(--color-background-tertiary); outline: none; box-shadow: 0 0 0 2px rgb(0 122 255 / 20%); } .form-input:disabled { color: var(--color-text-tertiary); background: var(--color-background-secondary); cursor: not-allowed; } .number-input { max-width: 200px; } /* Cache Info */ .cache-info { display: flex; margin-top: 0.5rem; font-size: 0.75rem; color: var(--color-text-secondary); gap: 1rem; } .cache-size { font-weight: 500; } /* Section Headers */ .section-header { margin-bottom: 0.75rem; } .section-title { margin: 0; font-size: 1rem; font-weight: 500; color: var(--color-text-primary); } /* Pattern Table */ .pattern-table-container { overflow-x: auto; margin-top: 0.75rem; } .pattern-table { width: 100%; border-collapse: collapse; font-size: 0.75rem; font-weight: 600; } .pattern-table th { border: 1px solid var(--color-border); padding: 0.5rem; font-weight: 500; text-align: center; color: var(--color-text-primary); background: var(--color-background-secondary); } .pattern-table td { border: 1px solid var(--color-border); padding: 0.5rem; text-align: center; color: var(--color-text-secondary); } .pattern-table td.clickable { cursor: pointer; color: var(--color-accent); transition: var(--transition-fast); } .pattern-table td.clickable:hover { background: var(--color-surface-elevated); } /* Radio Groups */ .radio-group { display: flex; flex-direction: column; gap: 0.5rem; width: 100%; min-height: fit-content; } .radio-option { position: relative; display: flex; align-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 0.625rem; background: var(--color-background-t); transition: var(--transition-fast); gap: 0.75rem; cursor: pointer; min-height: 2.5rem; box-sizing: border-box; } .radio-option:hover { border-color: var(--color-accent); background: var(--color-surface); } .radio-input { position: absolute; left: 0; top: 0; width: 1.25rem; height: 1.25rem; opacity: 0; cursor: pointer; margin: 0; } .radio-custom { position: relative; border: 2px solid var(--color-border); border-radius: var(--radius-round); width: 1.25rem; height: 1.25rem; background: var(--color-background-tiertiary); transition: var(--transition-fast); flex-shrink: 0; } .radio-custom::after { position: absolute; top: 50%; left: 50%; border-radius: var(--radius-round); width: 8px; height: 8px; background: var(--color-accent); transition: var(--transition-fast); content: ''; transform: translate(-50%, -50%) scale(0); } .radio-input:checked + .radio-custom { border-color: var(--color-accent); } .radio-input:checked + .radio-custom::after { transform: translate(-50%, -50%) scale(1); } /* Input Groups */ .input-group { display: flex; } .group-input { border-top-right-radius: 0; border-bottom-right-radius: 0; border-right: none; } .input-append-button { display: flex; align-items: center; border: none; padding: 0.75rem 1rem; font-size: 0.875rem; font-weight: 500; width: 10%; min-width: 80px; color: white; background: var(--color-accent); transition: var(--transition-fast); gap: 0.5rem; border-top-right-radius: var(--radius-md); border-bottom-right-radius: var(--radius-md); cursor: pointer; } .input-append-button:hover { background: var(--color-accent-hover); } /* Dialog Styles */ .dialog-overlay { position: fixed; inset: 0; z-index: 2000; display: flex; justify-content: center; align-items: center; background: rgb(0 0 0 / 50%); } .dialog-container { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg); width: 90%; max-width: 400px; background: var(--color-surface); box-shadow: var(--shadow-xl); } .dialog-header { display: flex; justify-content: space-between; align-items: center; padding: 1.5rem 1.5rem 0; } .dialog-title { margin: 0; font-size: 1.25rem; font-weight: 600; color: var(--color-text-primary); } .dialog-close { display: flex; justify-content: center; align-items: center; border: none; border-radius: var(--radius-sm); padding: 0.25rem; width: 24px; height: 24px; color: var(--color-text-secondary); background: none; transition: var(--transition-fast); cursor: pointer; } .dialog-close:hover { color: var(--color-text-primary); background: var(--color-surface-elevated); } .close-icon { width: 16px; height: 16px; } .dialog-content { padding: 1.5rem; } .confirm-message { margin: 0; color: var(--color-text-secondary); line-height: 1.5; } .dialog-actions { display: flex; justify-content: flex-end; padding: 0 1.5rem 1.5rem; gap: 1rem; } .setting-section { display: flex; gap: 0.5rem; flex-direction: column; min-height: fit-content; overflow: visible; } .form-group { display: flex; flex-direction: column; gap: 0.5rem; width: 100%; box-sizing: border-box; } .radio-text { font-size: 0.875rem; color: var(--color-text-primary); line-height: 1.4; overflow-wrap: break-word; flex: 1; } .setting-card.content-card { min-height: fit-content; contain: layout style; } /* Responsive Design */ @media (width <= 768px) { .manage-setting-container { padding: 0.75rem; gap: 0.75rem; } .card-content { padding: 1rem; } .header-card .card-header { align-items: flex-start; padding: 1rem; flex-direction: column; gap: 0.75rem; } .header-actions { justify-content: flex-start; width: 100%; } .pattern-table { font-size: 0.7rem; } .pattern-table th, .pattern-table td { padding: 0.375rem; } .radio-option { padding: 0.5rem; } .form-input { padding: 0.625rem; } }