/* Reset and base styles */ * { margin: 0; padding: 0; box-sizing: border-box; } html, body { height: 100%; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 14px; line-height: 1.5; color: #2c3e50; background-color: #ffffff; } /* Utility classes */ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } /* Focus styles */ *:focus { outline: 2px solid #3498db; outline-offset: 2px; } /* Button styles */ .btn { display: inline-flex; align-items: center; justify-content: center; padding: 0.5rem 1rem; border: 1px solid transparent; border-radius: 4px; font-size: 14px; font-weight: 500; text-decoration: none; cursor: pointer; transition: all 0.2s ease; } .btn-primary { background-color: #3498db; color: white; border-color: #3498db; } .btn-primary:hover { background-color: #2980b9; border-color: #2980b9; } .btn-secondary { background-color: #ecf0f1; color: #2c3e50; border-color: #bdc3c7; } .btn-secondary:hover { background-color: #d5dbdd; border-color: #95a5a6; } /* Status indicator */ .status-indicator { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 12px; font-weight: 500; } .status-saved { background-color: #d5f4e6; color: #27ae60; } .status-saving { background-color: #fef9e7; color: #f39c12; } .status-error { background-color: #fadbd8; color: #e74c3c; } /* Form styles */ .form-group { margin-bottom: 1rem; } .form-label { display: block; margin-bottom: 0.5rem; font-weight: 500; } .form-input { width: 100%; padding: 0.5rem; border: 1px solid #bdc3c7; border-radius: 4px; font-size: 14px; transition: border-color 0.2s ease; } .form-input:focus { border-color: #3498db; outline: none; } .form-error { color: #e74c3c; font-size: 12px; margin-top: 0.25rem; } /* Loading spinner */ .loading-spinner { width: 20px; height: 20px; border: 2px solid #ecf0f1; border-top: 2px solid #3498db; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }