/* Inline editing styles */ .editable-container { position: relative; } [data-editable] { position: relative; padding: 0.25rem; border-radius: 0.25rem; transition: background-color 0.2s; } [data-editable]:hover { background-color: rgba(0, 0, 0, 0.05); } .dark [data-editable]:hover { background-color: rgba(255, 255, 255, 0.05); } [data-edit-button] { opacity: 0; position: absolute; right: 0.5rem; top: 0.5rem; transition: opacity 0.2s; padding: 0.5rem; border-radius: 0.375rem; background-color: rgba(255, 255, 255, 0.9); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } .dark [data-edit-button] { background-color: rgba(31, 41, 55, 0.9); } .editable-container:hover [data-edit-button] { opacity: 1; } .form-input, .form-textarea, .form-select { width: 100%; padding: 0.5rem; border: 1px solid #e2e8f0; border-radius: 0.375rem; background-color: white; transition: border-color 0.2s, box-shadow 0.2s; } .dark .form-input, .dark .form-textarea, .dark .form-select { background-color: #1f2937; border-color: #374151; color: white; } .form-input:focus, .form-textarea:focus, .form-select:focus { outline: none; border-color: #4f46e5; box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1); } .dark .form-input:focus, .dark .form-textarea:focus, .dark .form-select:focus { border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1); } /* Notifications */ .notification { position: fixed; bottom: 1rem; right: 1rem; padding: 1rem; border-radius: 0.5rem; color: white; max-width: 24rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); z-index: 50; animation: slide-in 0.3s ease-out; } .notification-success { background-color: #059669; } .dark .notification-success { background-color: #047857; } .notification-error { background-color: #dc2626; } .dark .notification-error { background-color: #b91c1c; } .notification-info { background-color: #3b82f6; } .dark .notification-info { background-color: #2563eb; } @keyframes slide-in { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } /* Add/Edit Form Styles */ .form-section { @apply space-y-6; } .form-group { @apply space-y-2; } .form-label { @apply block text-sm font-medium text-gray-700 dark:text-gray-300; } .form-error { @apply mt-1 text-sm text-red-600 dark:text-red-400; } .form-help { @apply mt-1 text-sm text-gray-500 dark:text-gray-400; } /* Button Styles */ .btn { @apply inline-flex items-center justify-center px-4 py-2 font-medium transition-colors rounded-lg; } .btn-primary { @apply text-white bg-blue-600 hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600; } .btn-secondary { @apply text-gray-700 bg-gray-200 hover:bg-gray-300 dark:bg-gray-600 dark:text-gray-200 dark:hover:bg-gray-500; } .btn-danger { @apply text-white bg-red-600 hover:bg-red-700 dark:bg-red-500 dark:hover:bg-red-600; } /* Status Badges */ .status-badge { @apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium; } .status-operating { @apply text-green-800 bg-green-100 dark:bg-green-900 dark:text-green-200; } .status-closed { @apply text-red-800 bg-red-100 dark:bg-red-900 dark:text-red-200; } .status-construction { @apply text-yellow-800 bg-yellow-100 dark:bg-yellow-900 dark:text-yellow-200; } /* Navigation Links */ .nav-link { @apply flex items-center px-3 py-2 text-gray-700 transition-colors rounded-lg dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700; } .nav-link i { @apply mr-2; } /* Menu Items */ .menu-item { @apply flex items-center w-full px-4 py-2 text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700; } .menu-item i { @apply mr-3; }