diff --git a/assets/styles/app.css b/assets/styles/app.css index 1bcbb04..b0567dc 100644 --- a/assets/styles/app.css +++ b/assets/styles/app.css @@ -125,3 +125,238 @@ body { .auth-link a { color: #2563eb; } + +/* Navbar */ +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 8px 24px; + background: white; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); +} + +.navbar-brand { + font-weight: 700; + font-size: 18px; + color: #1f2937; + text-decoration: none; +} + +.navbar-right { + display: flex; + align-items: center; + gap: 8px; +} + +.navbar-item { + position: relative; +} + +.navbar-icon { + background: none; + border: none; + cursor: pointer; + padding: 8px; + border-radius: 50%; + color: #4b5563; + position: relative; + display: flex; + align-items: center; +} + +.navbar-icon:hover { + background: #f3f4f6; +} + +/* Badge */ +.badge { + position: absolute; + top: 2px; + right: 2px; + background: #dc2626; + color: white; + font-size: 11px; + font-weight: 700; + min-width: 16px; + height: 16px; + border-radius: 8px; + display: flex; + align-items: center; + justify-content: center; + padding: 0 4px; +} + +/* Dropdown */ +.dropdown-menu { + position: absolute; + top: 100%; + right: 0; + background: white; + border: 1px solid #e5e7eb; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + min-width: 200px; + z-index: 200; + padding: 4px 0; + margin-top: 4px; +} + +.dropdown-header { + padding: 8px 16px; + font-weight: 600; + font-size: 13px; + color: #6b7280; + border-bottom: 1px solid #e5e7eb; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 8px 16px; + text-align: left; + background: none; + border: none; + cursor: pointer; + font-size: 14px; + color: #1f2937; + text-decoration: none; +} + +.dropdown-item:hover { + background: #f3f4f6; +} + +.dropdown-empty { + padding: 12px 16px; + color: #9ca3af; + font-size: 13px; + margin: 0; +} + +/* Notifications */ +.notifications-list { + max-height: 300px; + overflow-y: auto; +} + +.notification-item { + padding: 8px 16px; + border-bottom: 1px solid #f3f4f6; +} + +.notification-item:last-child { + border-bottom: none; +} + +.notification-item p { + margin: 0 0 2px; + font-size: 13px; + color: #1f2937; +} + +.notification-item time { + font-size: 11px; + color: #9ca3af; +} + +.notification-unread { + background: #eff6ff; +} + +/* Modal */ +.modal-overlay { + position: fixed; + inset: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 300; +} + +.modal { + background: white; + border-radius: 12px; + width: 100%; + max-width: 480px; + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2); +} + +.modal-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 16px 24px; + border-bottom: 1px solid #e5e7eb; +} + +.modal-header h2 { + margin: 0; + font-size: 18px; +} + +.modal-close { + background: none; + border: none; + font-size: 24px; + cursor: pointer; + color: #6b7280; + padding: 0; + line-height: 1; +} + +.modal-body { + padding: 24px; +} + +.modal-body p { + margin: 0 0 16px; + color: #4b5563; + font-size: 14px; +} + +.modal-footer { + padding: 16px 24px; + border-top: 1px solid #e5e7eb; + text-align: right; +} + +.btn { + padding: 8px 20px; + border: none; + border-radius: 6px; + font-size: 14px; + cursor: pointer; +} + +.btn-primary { + background: #2563eb; + color: white; +} + +.btn-primary:hover { + background: #1d4ed8; +} + +.btn-primary:disabled { + background: #93c5fd; + cursor: not-allowed; +} + +.modal-feedback { + margin-top: 12px; + padding: 8px 12px; + border-radius: 4px; + font-size: 13px; +} + +.modal-feedback.error { + background: #fef2f2; + color: #dc2626; +} + +.modal-feedback.success { + background: #f0fdf4; + color: #16a34a; +}