.container { max-width: 800px; margin: 0 auto; } .header { margin-bottom: var(--spacing-xl); } .title { font-size: 28px; font-weight: 700; color: var(--text-primary); } .content { display: flex; flex-direction: column; gap: var(--spacing-xl); } .section { display: flex; flex-direction: column; gap: var(--spacing-md); } .sectionTitle { font-size: 16px; font-weight: 600; color: var(--text-primary); } .card { background-color: var(--surface-color); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: var(--spacing-lg); display: flex; flex-direction: column; gap: var(--spacing-lg); } .field { display: flex; flex-direction: column; gap: var(--spacing-sm); } .label { font-size: 14px; font-weight: 500; color: var(--text-primary); } .labelDanger { font-size: 14px; font-weight: 500; color: var(--error-color); } .inputWithButton { display: flex; gap: var(--spacing-sm); } .input { flex: 1; padding: var(--spacing-sm) var(--spacing-md); border: 1px solid var(--border-color); border-radius: var(--radius-md); font-size: 14px; background-color: var(--background-color); color: var(--text-primary); transition: border-color 0.2s; } .input:focus { outline: none; border-color: var(--primary-color); } .input:read-only { background-color: var(--background-color); cursor: default; } .testButton, .browseButton { padding: var(--spacing-sm) var(--spacing-md); background-color: var(--background-color); color: var(--text-secondary); border: 1px solid var(--border-color); border-radius: var(--radius-md); font-size: 13px; cursor: pointer; transition: all 0.2s; white-space: nowrap; } .testButton:hover, .browseButton:hover { background-color: var(--surface-color); border-color: var(--primary-color); color: var(--primary-color); } .hint { font-size: 12px; color: var(--text-secondary); } .checkboxField { display: flex; align-items: center; gap: var(--spacing-sm); } .checkbox { width: 18px; height: 18px; cursor: pointer; } .checkboxLabel { font-size: 14px; font-weight: 500; color: var(--text-primary); cursor: pointer; } .divider { height: 1px; background-color: var(--border-color); } .actionButton { align-self: flex-start; padding: var(--spacing-sm) var(--spacing-md); background-color: var(--background-color); color: var(--text-primary); border: 1px solid var(--border-color); border-radius: var(--radius-md); font-size: 13px; cursor: pointer; transition: all 0.2s; } .actionButton:hover { border-color: var(--primary-color); color: var(--primary-color); } .dangerButton { align-self: flex-start; padding: var(--spacing-sm) var(--spacing-md); background-color: transparent; color: var(--error-color); border: 1px solid var(--error-color); border-radius: var(--radius-md); font-size: 13px; cursor: pointer; transition: all 0.2s; } .dangerButton:hover { background-color: var(--error-color); color: white; } .aboutInfo { display: flex; flex-direction: column; gap: var(--spacing-sm); } .aboutItem { display: flex; justify-content: space-between; padding: var(--spacing-sm) 0; border-bottom: 1px solid var(--border-color); } .aboutItem:last-child { border-bottom: none; } .aboutLabel { font-size: 13px; color: var(--text-secondary); } .aboutValue { font-size: 13px; color: var(--text-primary); font-weight: 500; } .message { padding: var(--spacing-sm) var(--spacing-md); border-radius: var(--radius-md); font-size: 13px; } .success { background-color: rgba(40, 167, 69, 0.1); color: var(--success-color); } .error { background-color: rgba(220, 53, 69, 0.1); color: var(--error-color); } .actions { display: flex; gap: var(--spacing-md); justify-content: flex-end; padding-top: var(--spacing-lg); border-top: 1px solid var(--border-color); } .primaryButton { padding: var(--spacing-sm) var(--spacing-lg); background-color: var(--primary-color); color: white; border: none; border-radius: var(--radius-md); font-size: 14px; font-weight: 500; cursor: pointer; transition: background-color 0.2s; } .primaryButton:hover:not(:disabled) { background-color: var(--primary-light); } .primaryButton:disabled { opacity: 0.6; cursor: not-allowed; } .secondaryButton { padding: var(--spacing-sm) var(--spacing-lg); background-color: transparent; color: var(--text-secondary); border: 1px solid var(--border-color); border-radius: var(--radius-md); font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.2s; } .secondaryButton:hover { border-color: var(--primary-color); color: var(--primary-color); } /* Loading state */ .loading { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 400px; color: var(--text-secondary); } .spinner { width: 40px; height: 40px; border: 3px solid var(--border-color); border-top-color: var(--primary-color); border-radius: 50%; animation: spin 1s linear infinite; margin-bottom: var(--spacing-md); } @keyframes spin { to { transform: rotate(360deg); } }