.settings-page { max-width: 800px; margin: 0 auto; padding: 20px; } .settings-header { margin-bottom: 30px; padding-bottom: 20px; border-bottom: 1px solid var(--color-border); } .settings-header h1 { margin: 0 0 8px 0; color: var(--color-text); font-size: 32px; font-weight: 600; } .settings-header p { margin: 0; color: var(--color-text-secondary); font-size: 16px; } .settings-content { display: flex; flex-direction: column; gap: 24px; } /* Settings Sections */ .settings-section { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 12px; overflow: hidden; } .section-header { display: flex; align-items: center; gap: 12px; padding: 20px 24px; background: var(--color-background); border-bottom: 1px solid var(--color-border); } .section-header h2 { margin: 0; color: var(--color-text); font-size: 20px; font-weight: 600; } .section-content { padding: 0; } /* Setting Items */ .setting-item { display: flex; justify-content: space-between; align-items: flex-start; padding: 24px; gap: 20px; } .setting-item:not(:last-child) { border-bottom: 1px solid var(--color-border-light); } .setting-info { flex: 1; min-width: 0; } .setting-info label { display: block; margin-bottom: 4px; color: var(--color-text); font-size: 16px; font-weight: 500; } .setting-info p { margin: 0; color: var(--color-text-secondary); font-size: 14px; line-height: 1.4; } .setting-control { flex-shrink: 0; display: flex; align-items: center; gap: 12px; } /* Key Display */ .key-display { display: flex; align-items: center; gap: 12px; width: 100%; max-width: 400px; } .pubkey { flex: 1; padding: 10px 12px; background: var(--color-background); border: 1px solid var(--color-border); border-radius: 6px; color: var(--color-text); font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; font-size: 12px; word-break: break-all; line-height: 1.3; min-width: 0; } .cycle-btn { display: flex; align-items: center; gap: 6px; padding: 10px 16px; background: var(--color-primary); color: white; border: none; border-radius: 6px; cursor: pointer; font-size: 14px; font-weight: 500; transition: opacity 0.2s; white-space: nowrap; } .cycle-btn:hover:not(:disabled) { opacity: 0.9; } .cycle-btn:disabled { opacity: 0.6; cursor: not-allowed; } /* Relay Management */ .relay-list { width: 100%; max-width: 500px; } .no-relays { display: flex; flex-direction: column; align-items: center; padding: 30px 20px; text-align: center; color: var(--color-text-muted); } .no-relays p { margin: 12px 0 0 0; color: var(--color-text-muted); } .relay-item { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: var(--color-background); border: 1px solid var(--color-border); border-radius: 8px; margin-bottom: 8px; transition: border-color 0.2s; } .relay-item:hover { border-color: var(--color-primary); } .relay-info { flex: 1; min-width: 0; } .relay-url { display: block; color: var(--color-text); font-size: 14px; font-weight: 500; word-break: break-all; margin-bottom: 2px; } .relay-status { display: inline-block; color: var(--color-success); font-size: 12px; padding: 2px 6px; background: var(--color-surface); border-radius: 3px; border: 1px solid var(--color-success); } .remove-relay-btn { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; background: var(--color-error); color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; font-weight: bold; transition: opacity 0.2s; flex-shrink: 0; } .remove-relay-btn:hover { opacity: 0.8; } /* Add Relay Form */ .add-relay-form { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--color-border-light); } .relay-input-group { display: flex; gap: 8px; width: 100%; } .relay-input { flex: 1; padding: 10px 12px; border: 1px solid var(--color-border); border-radius: 6px; background: var(--color-background); color: var(--color-text); font-size: 14px; } .relay-input:focus { outline: none; border-color: var(--color-primary); } .relay-input::placeholder { color: var(--color-text-muted); } .add-relay-btn { display: flex; align-items: center; gap: 6px; padding: 10px 16px; background: var(--color-primary); color: white; border: none; border-radius: 6px; cursor: pointer; font-size: 14px; font-weight: 500; transition: opacity 0.2s; white-space: nowrap; } .add-relay-btn:hover:not(:disabled) { opacity: 0.9; } .add-relay-btn:disabled { opacity: 0.5; cursor: not-allowed; } /* Responsive Design */ @media (max-width: 768px) { .settings-page { padding: 16px; } .setting-item { flex-direction: column; align-items: stretch; gap: 16px; } .setting-control { width: 100%; justify-content: stretch; } .key-display { max-width: none; flex-direction: column; align-items: stretch; gap: 8px; } .pubkey { text-align: center; } .relay-input-group { flex-direction: column; } .section-header { padding: 16px 20px; } .setting-item { padding: 20px; } } @media (max-width: 480px) { .settings-header h1 { font-size: 28px; } .section-header h2 { font-size: 18px; } .settings-page { padding: 12px; } }