:root { --bg: #f3f6f8; --surface: #ffffff; --surface-soft: #f8fbfc; --ink: #102129; --ink-soft: #425b67; --ink-faint: #718896; --brand: #0f766e; --brand-deep: #0b5c56; --brand-soft: #14b8a6; --accent: #f59e0b; --accent-soft: #fcd34d; --danger: #dc2626; --warning: #d97706; --success: #16a34a; --info: #2563eb; --radius-sm: 12px; --radius: 18px; --radius-lg: 26px; --radius-xl: 34px; --shadow-1: 0 4px 14px rgba(16, 33, 41, 0.08); --shadow-2: 0 16px 34px rgba(16, 33, 41, 0.13); --shadow-3: 0 26px 52px rgba(16, 33, 41, 0.2); } * { box-sizing: border-box; } html, body { scroll-behavior: smooth; } body, .site-body { margin: 0; color: var(--ink); font-family: 'Plus Jakarta Sans', sans-serif; background: radial-gradient(900px 260px at -8% -8%, rgba(20, 184, 166, 0.18), transparent 65%), radial-gradient(1000px 300px at 108% -6%, rgba(245, 158, 11, 0.16), transparent 65%), linear-gradient(180deg, #f6f9fb 0%, #eef4f7 50%, #ecf2f5 100%); min-height: 100vh; } h1, h2, h3, h4, h5, h6 { margin-top: 0; font-family: 'Sora', sans-serif; color: var(--ink); letter-spacing: -0.03em; } p, small, span, li, label { color: var(--ink-soft); } a { text-decoration: none; } .main-content { min-height: calc(100vh - 330px); } .text-gradient { background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .page-hero { position: relative; overflow: hidden; border-radius: var(--radius-xl); padding: 2rem; color: #fff; background: linear-gradient(130deg, #0b3a37 0%, #0f766e 46%, #14b8a6 100%); box-shadow: var(--shadow-2); } .page-hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(280px 180px at 84% 12%, rgba(255,255,255,.22), transparent 65%), radial-gradient(260px 160px at 16% 86%, rgba(252, 211, 77, .24), transparent 68%); pointer-events: none; } .page-hero h3, .page-hero h4, .page-hero p, .page-hero small, .page-hero strong { color: #f7fffd !important; } .btn { border-radius: 999px; font-weight: 700; padding: .68rem 1.32rem; transition: .18s ease; border: none; } .btn:hover { transform: translateY(-1px); } .btn-primary, .btn-success { background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)); color: #fff; box-shadow: var(--shadow-1); border: none; } .btn-primary:hover, .btn-success:hover, .btn-primary:focus, .btn-success:focus { color: #fff; box-shadow: var(--shadow-2); } .btn-outline-primary { border: 1.5px solid rgba(15, 118, 110, .5); color: var(--brand-deep); background: rgba(255,255,255,.9); } .btn-outline-primary:hover { color: #fff; border-color: var(--brand); background: var(--brand); } .btn-outline-secondary { border: 1.5px solid #c8d6de; color: var(--ink-soft); background: #fff; } .btn-outline-secondary:hover { color: var(--ink); background: #f6fafc; border-color: #9eb2be; } .card { border: 1px solid rgba(16, 33, 41, 0.07); border-radius: var(--radius); background: rgba(255,255,255,.95); box-shadow: var(--shadow-1); backdrop-filter: blur(7px); } .card:hover { box-shadow: var(--shadow-2); } .card-header { border: 0; border-bottom: 1px solid rgba(16, 33, 41, 0.07); border-radius: var(--radius) var(--radius) 0 0 !important; padding: 1rem 1.2rem; background: linear-gradient(180deg, #fcfeff, #f3f8fa); } .card-body { padding: 1.25rem; } .form-control, .form-select { border: 1.6px solid #d6e2e9; border-radius: var(--radius-sm); padding: .72rem .86rem; color: var(--ink); background: #fff; } .form-control:focus, .form-select:focus { border-color: rgba(20, 184, 166, .7); box-shadow: 0 0 0 .2rem rgba(20, 184, 166, .14); } .form-label { font-weight: 600; margin-bottom: .42rem; color: var(--ink-soft); } .input-group-text { border: 1.6px solid #d6e2e9; background: #f8fbfd; } .alert { border: 0; border-radius: var(--radius-sm); box-shadow: var(--shadow-1); } .alert-success { background: linear-gradient(130deg, #dcfce7, #bbf7d0); color: #14532d; } .alert-info { background: linear-gradient(130deg, #dbeafe, #bfdbfe); color: #1e3a8a; } .alert-warning { background: linear-gradient(130deg, #fef3c7, #fde68a); color: #7c2d12; } .alert-danger { background: linear-gradient(130deg, #fee2e2, #fecaca); color: #7f1d1d; } .badge { border-radius: 999px; padding: .4rem .72rem; font-weight: 700; } .badge-primary, .bg-primary { background: var(--brand) !important; color: #fff; } .badge-info, .bg-info { background: var(--info) !important; color: #fff; } .badge-success, .bg-success { background: var(--success) !important; color: #fff; } .badge-warning, .bg-warning { background: var(--warning) !important; color: #fff; } .badge-danger, .bg-danger { background: var(--danger) !important; color: #fff; } .bg-gradient-primary { background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)) !important; } .table { margin-bottom: 0; border-radius: var(--radius-sm); overflow: hidden; } .table thead th { border: 0; padding: .86rem .9rem; background: linear-gradient(180deg, #eef5f8, #e6f0f4); color: #4a6070; text-transform: uppercase; letter-spacing: .06em; font-size: .75rem; } .table tbody td { border-color: rgba(16, 33, 41, .07); padding: .84rem .9rem; } .table tbody tr:hover { background: rgba(20, 184, 166, .06); } .site-navbar, .navbar { padding: .84rem 0; background: rgba(255,255,255,.88) !important; border-bottom: 1px solid rgba(16, 33, 41, .07); backdrop-filter: blur(14px); } .navbar-brand { font-family: 'Sora', sans-serif; font-size: 1.25rem; font-weight: 800; color: var(--brand-deep) !important; display: inline-flex; align-items: center; gap: .52rem; } .brand-mark { width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)); box-shadow: var(--shadow-1); } .nav-link { color: var(--brand) !important; border-radius: 999px; padding: .42rem .9rem !important; font-weight: 600; } .nav-link:hover, .nav-link.active { color: var(--brand) !important; background: rgba(20, 184, 166, .11); } .footer { margin-top: 4rem; padding: 3.1rem 0 1.5rem; background: linear-gradient(160deg, #0a2e2c, #15534c 72%); color: #e8f6f3; } .footer h5, .footer h6, .footer p, .footer li, .footer small { color: inherit; } .footer a { color: #c8fff2; } .footer a:hover { color: #ffe2ba; } .admin-body { background: linear-gradient(180deg, #f2f8fa 0%, #ebf2f5 100%); } .admin-sidebar { position: fixed; left: 0; top: 0; width: 278px; height: 100vh; z-index: 1200; display: flex; flex-direction: column; overflow-y: auto; background: linear-gradient(180deg, #0a2e2c 0%, #15534c 80%); box-shadow: var(--shadow-2); } .sidebar-brand { padding: 1.2rem; border-bottom: 1px solid rgba(255,255,255,.12); } .sidebar-brand h4 { margin: 0; color: #fff; } .sidebar-menu { flex: 1; padding: .42rem .35rem 1rem; } .menu-section { padding: .78rem 1rem .34rem; color: rgba(217, 245, 239, .66); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; } .menu-item { position: relative; display: flex; align-items: center; gap: .64rem; margin: .12rem .35rem; padding: .67rem .95rem; border-radius: 11px; border-left: 3px solid transparent; color: rgba(236, 250, 247, .94); font-weight: 600; } .menu-item i { width: 1.1rem; } .menu-item:hover { background: rgba(255,255,255,.11); color: #fff; } .menu-item.active { color: #fff; border-left-color: #9bf7dd; background: rgba(20, 184, 166, .29); } .menu-item.active::after { content: ''; position: absolute; right: 10px; width: 8px; height: 8px; border-radius: 50%; background: #9bf7dd; } .sidebar-footer { padding: .95rem 1.2rem 1.1rem; border-top: 1px solid rgba(255,255,255,.12); background: rgba(0,0,0,.1); } .status-dot { width: 9px; height: 9px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 6px rgba(34, 197, 94, .22); } .admin-wrapper { margin-left: 278px; min-height: 100vh; } .admin-topbar { position: sticky; top: 0; z-index: 1100; display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .86rem 1.34rem; background: rgba(255,255,255,.9); border-bottom: 1px solid rgba(16, 33, 41, .07); backdrop-filter: blur(14px); } .topbar-title-wrap small { font-size: .71rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; } .topbar-title-wrap h5 { font-size: 1.02rem; } .topbar-actions { display: flex; align-items: center; gap: .5rem; } .topbar-user { display: flex; align-items: center; gap: .6rem; border-radius: 999px; padding: .28rem .65rem .28rem .3rem; border: 1px solid #dce7ed; background: #f3f8fa; } .user-avatar { width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; color: #fff; background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)); } .admin-content { padding: 1.35rem; } .admin-sidebar-overlay { position: fixed; inset: 0; background: rgba(16, 33, 41, .48); opacity: 0; visibility: hidden; transition: .2s ease; z-index: 1150; } .admin-sidebar-overlay.show { opacity: 1; visibility: visible; } .auth-body { background: radial-gradient(840px 280px at -12% -8%, rgba(20, 184, 166, .22), transparent 66%), radial-gradient(920px 320px at 110% 0, rgba(245, 158, 11, .17), transparent 62%), linear-gradient(180deg, #eff7f9 0%, #e8f0f4 100%); } .auth-wrap { height: 60vh; } .auth-panel { border: 1px solid rgba(16, 33, 41, .07); border-radius: 26px; box-shadow: var(--shadow-3); } .auth-side { background: linear-gradient(145deg, #0a2e2c, #12756a); color: #fff; } .auth-side h2, .auth-side h4, .auth-side p, .auth-side li { color: #f3fffd; } .breadcrumb { display: inline-flex; margin: 0; padding: .5rem .9rem; border-radius: 999px; border: 1px solid rgba(16, 33, 41, .08); background: rgba(255,255,255,.78); } .breadcrumb-item, .breadcrumb-item a { color: var(--ink-faint); font-weight: 600; } .breadcrumb-item.active { color: var(--brand-deep); } .stat-card { height: 100%; border-radius: var(--radius); border: 1px solid rgba(15, 118, 110, .18); background: linear-gradient(180deg, #ffffff, #f5fbfc); padding: 1.15rem; box-shadow: var(--shadow-1); } .stat-icon { width: 54px; height: 54px; border-radius: 14px; display: flex; align-items: center; justify-content: center; color: #fff; margin-bottom: .85rem; } .stat-icon.primary { background: linear-gradient(135deg, #0f766e, #14b8a6); } .stat-icon.secondary { background: linear-gradient(135deg, #0b5c56, #0f766e); } .stat-icon.warning { background: linear-gradient(135deg, #d97706, #f59e0b); } .stat-icon.success { background: linear-gradient(135deg, #15803d, #22c55e); } .stat-value { font-size: 1.6rem; font-weight: 800; color: var(--ink); line-height: 1.2; } .stat-label { font-size: .86rem; font-weight: 600; color: var(--ink-faint); } .table-responsive, .dataTables_wrapper { width: 100%; } .dataTables_wrapper .dataTables_filter input, .dataTables_wrapper .dataTables_length select { border: 1.5px solid #d6e2e9; border-radius: 8px; padding: .35rem .52rem; background: #fff; } .dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { border: 0 !important; border-radius: 999px; color: #fff !important; background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)) !important; } .dataTables_wrapper .dataTables_paginate .paginate_button { border-radius: 999px !important; } .dropdown-menu { border: 0; border-radius: 12px; box-shadow: var(--shadow-2); padding: .4rem; } .dropdown-item { border-radius: 9px; padding: .56rem .8rem; } .dropdown-item:hover { background: #edf5f8; } .fade-in { animation: fadeIn .35s ease both; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } @media (max-width: 991.98px) { .admin-sidebar { transform: translateX(-100%); transition: transform .22s ease; } .admin-sidebar.show { transform: translateX(0); } .admin-wrapper { margin-left: 0; } .admin-content { padding: 1rem; } } @media (min-width: 992px) { .admin-sidebar-overlay { display: none; } } @media (max-width: 767.98px) { .page-hero { padding: 1.3rem; border-radius: 20px; } .main-content { min-height: auto; } } /* ================================================== 2026 Full UI Refresh Overrides ================================================== */ :root { --bg: #edf4f7; --surface: #ffffff; --surface-soft: #f4f9fc; --ink: #102632; --ink-soft: #365161; --ink-faint: #6f8796; --brand: #0f766e; --brand-deep: #0b3d4a; --brand-soft: #14b8a6; --accent: #ea580c; --accent-soft: #fdba74; --danger: #dc2626; --warning: #d97706; --success: #16a34a; --info: #2563eb; --radius-sm: 12px; --radius: 20px; --radius-lg: 28px; --radius-xl: 38px; --shadow-1: 0 6px 18px rgba(10, 34, 46, 0.08); --shadow-2: 0 14px 32px rgba(10, 34, 46, 0.13); --shadow-3: 0 26px 58px rgba(10, 34, 46, 0.2); } body, .site-body { color: var(--ink); font-family: 'Manrope', sans-serif; background: radial-gradient(900px 280px at -8% -10%, rgba(20, 184, 166, 0.24), transparent 65%), radial-gradient(900px 320px at 108% -6%, rgba(234, 88, 12, 0.16), transparent 64%), linear-gradient(180deg, #f7fafc 0%, #edf4f7 100%); } h1, h2, h3, h4, h5, h6 { font-family: 'Outfit', sans-serif; color: #0c1f2a; } p, small, span, li, label { color: var(--ink-soft); } .text-ink { color: var(--ink) !important; } .text-ink-soft { color: var(--ink-soft) !important; } .text-brand, .text-primary { color: var(--brand) !important; } .text-brand-deep, .text-ink-deep { color: var(--brand-deep) !important; } .text-brand-soft { color: #7de3d5 !important; } .text-white-75 { color: rgba(255, 255, 255, 0.8) !important; } .text-white-50 { color: rgba(255, 255, 255, 0.58) !important; } .fs-7 { font-size: 0.72rem; } .border-white-10 { border-color: rgba(255, 255, 255, 0.12) !important; } .main-content { min-height: calc(100vh - 280px); padding: 1.8rem 0 3rem; } .btn { border-radius: var(--radius-sm); border: 1px solid transparent; font-weight: 700; letter-spacing: 0.02em; padding: 0.72rem 1.32rem; transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease; } .btn:hover { transform: translateY(-2px); } .btn-primary, .btn-success { background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)); color: #fff; box-shadow: 0 12px 24px rgba(15, 118, 110, 0.24); } .btn-primary:hover, .btn-success:hover, .btn-primary:focus, .btn-success:focus { color: #fff; background: linear-gradient(135deg, #0d4f61, #0fb8a6); box-shadow: 0 16px 30px rgba(15, 118, 110, 0.3); } .btn-outline-primary { border-color: rgba(15, 118, 110, 0.36); color: var(--brand); background: rgba(255, 255, 255, 0.92); } .btn-outline-primary:hover, .btn-outline-primary:focus { color: #fff; border-color: transparent; background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)); } .btn-outline-secondary { border-color: rgba(53, 81, 97, 0.3); color: var(--ink-soft); background: rgba(255, 255, 255, 0.95); } .btn-outline-secondary:hover, .btn-outline-secondary:focus { color: var(--ink); background: #edf5f9; border-color: rgba(53, 81, 97, 0.45); } .btn-outline-light { border-color: rgba(255, 255, 255, 0.42); background: rgba(255, 255, 255, 0.12); } .btn-outline-light:hover { background: rgba(255, 255, 255, 0.94); color: var(--ink); } .card { border: 1px solid rgba(16, 38, 50, 0.12); border-radius: var(--radius); background: linear-gradient(180deg, #ffffff, #f7fcff); box-shadow: var(--shadow-1); } .card:hover { box-shadow: var(--shadow-2); transform: translateY(-2px); } .card-header { border: 0; border-bottom: 1px solid rgba(16, 38, 50, 0.09); background: linear-gradient(180deg, #fcfeff, #eef6f9); padding: 1.04rem 1.24rem; } .card-body { padding: 1.3rem; } .form-control, .form-select { border: 1px solid #d3e2ea; border-radius: 11px; min-height: 46px; padding: 0.65rem 0.86rem; } textarea.form-control { min-height: 110px; } .form-control:focus, .form-select:focus { border-color: rgba(20, 184, 166, 0.8); box-shadow: 0 0 0 0.22rem rgba(20, 184, 166, 0.16); } .form-label { color: var(--ink-soft); font-weight: 700; } .input-group-text { border: 1px solid #d3e2ea; border-radius: 11px; min-height: 46px; background: #f2f8fb; font-weight: 700; } .alert { border-radius: var(--radius-sm); box-shadow: var(--shadow-1); } .badge { border-radius: 999px; padding: 0.42rem 0.72rem; font-weight: 700; } .badge-primary, .bg-primary { background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)) !important; } .badge-info, .bg-info { background: linear-gradient(135deg, #1d4ed8, #2563eb) !important; } .badge-success, .bg-success { background: linear-gradient(135deg, #15803d, #22c55e) !important; } .badge-warning, .bg-warning { background: linear-gradient(135deg, #b45309, #f59e0b) !important; } .badge-danger, .bg-danger { background: linear-gradient(135deg, #b91c1c, #ef4444) !important; } .table thead th { background: linear-gradient(180deg, #eff6fa, #e5f0f6); color: #496273; letter-spacing: 0.08em; font-size: 0.72rem; } .table tbody td { border-color: rgba(16, 38, 50, 0.08); } .table tbody tr:hover { background: rgba(14, 165, 160, 0.06); } .dropdown-menu { border: 1px solid rgba(16, 38, 50, 0.12); border-radius: 12px; box-shadow: var(--shadow-2); z-index: 99999; position: absolute !important; } .dropdown-item { border-radius: 9px; font-weight: 600; } .dropdown-item:hover { background: #edf5f8; } .text-gradient { background: linear-gradient(128deg, var(--brand-deep), var(--brand-soft)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .bg-gradient-primary { background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)) !important; } .site-backdrop, .admin-backdrop, .auth-backdrop { position: fixed; inset: 0; z-index: -1; pointer-events: none; } .site-body > *:not(.site-backdrop), .admin-body > *:not(.admin-backdrop), .auth-body > *:not(.auth-backdrop) { position: relative; z-index: 1; } .site-backdrop .orb, .admin-backdrop .orb, .auth-backdrop .orb { position: absolute; border-radius: 999px; filter: blur(8px); opacity: 0.55; } .site-backdrop .orb-a, .auth-backdrop .orb-a { width: 340px; height: 340px; left: -100px; top: -60px; background: radial-gradient(circle, rgba(20, 184, 166, 0.34), rgba(20, 184, 166, 0)); } .site-backdrop .orb-b, .admin-backdrop .orb-b, .auth-backdrop .orb-b { width: 430px; height: 430px; right: -160px; top: 28%; background: radial-gradient(circle, rgba(14, 165, 160, 0.25), rgba(14, 165, 160, 0)); } .site-backdrop .orb-c, .admin-backdrop .orb-c, .auth-backdrop .orb-c { width: 360px; height: 360px; left: 30%; bottom: -170px; background: radial-gradient(circle, rgba(234, 88, 12, 0.2), rgba(234, 88, 12, 0)); } .site-navbar { position: sticky; top: 0.85rem; z-index: 9999; margin: 0.85rem auto 0; width: calc(100% - 2rem); max-width: 1240px; border: 1px solid rgba(16, 38, 50, 0.08); border-radius: 20px; background: rgba(255, 255, 255, 0.86) !important; backdrop-filter: blur(14px); box-shadow: var(--shadow-2); padding: 0.7rem 0; } .navbar-brand { gap: 0.68rem; } .brand-mark { width: 42px; height: 42px; border-radius: 13px; color: #fff; font-size: 1.05rem; background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)); box-shadow: 0 12px 24px rgba(15, 118, 110, 0.24); } .brand-wording { display: flex; flex-direction: column; line-height: 1.1; } .brand-main { font-family: 'Outfit', sans-serif; font-size: 1.12rem; font-weight: 800; color: var(--brand-deep); } .brand-sub { margin-top: 0.15rem; color: #5d7b8f; font-size: 0.67rem; letter-spacing: 0.07em; text-transform: uppercase; } .site-nav-toggler { border: 1px solid rgba(16, 38, 50, 0.14); border-radius: 12px; color: var(--ink-soft); width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; background: #fff; } .site-nav-toggler:focus { box-shadow: 0 0 0 0.22rem rgba(14, 165, 160, 0.16); } .nav-link { color: var(--ink-soft) !important; border-radius: 999px; padding: 0.52rem 0.95rem !important; font-weight: 700; } .nav-link:hover, .nav-link.active { color: var(--brand-deep) !important; background: rgba(15, 118, 110, 0.11); } .nav-auth-actions { display: flex; align-items: center; gap: 0.6rem; } .nav-auth-actions .dropdown { position: relative; } .navbar .btn-sm { border-radius: 12px; font-size: 0.84rem; } .user-chip { display: inline-flex; align-items: center; gap: 0.5rem; border: 1px solid rgba(16, 38, 50, 0.1); border-radius: 999px; background: rgba(255, 255, 255, 0.88); padding: 0.35rem 0.65rem 0.35rem 0.36rem; } .user-chip .chip-avatar { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: 0.78rem; font-weight: 800; background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)); } .user-chip small { color: var(--ink-soft); font-weight: 700; } .footer { position: relative; overflow: hidden; margin-top: 4.5rem; padding: 3.8rem 0 1.8rem; border-top: 1px solid rgba(255, 255, 255, 0.08); background: linear-gradient(160deg, #071f2d 0%, #0d3c4a 62%, #0f766e 100%); } .footer::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(420px 240px at 4% 16%, rgba(20, 184, 166, 0.26), transparent 72%), radial-gradient(380px 220px at 92% 12%, rgba(251, 146, 60, 0.22), transparent 70%), linear-gradient(115deg, rgba(255, 255, 255, 0.08) 0, rgba(255, 255, 255, 0) 40%); } .footer .container { position: relative; z-index: 1; } .footer h5, .footer h6, .footer p, .footer li, .footer small { color: #ebf8ff; } .footer-link, .footer a { color: rgba(234, 248, 255, 0.84); transition: color 0.18s ease, transform 0.18s ease; } .footer-link:hover, .footer a:hover, .hover\:text-white:hover { color: #ffffff !important; transform: translateX(2px); } .footer .badge { border: 1px solid rgba(255, 255, 255, 0.24); background: rgba(255, 255, 255, 0.13) !important; color: #fff !important; } .page-hero { position: relative; overflow: hidden; border-radius: var(--radius-lg); padding: 1.7rem 1.9rem; color: #fff; border: 1px solid rgba(255, 255, 255, 0.16); background: linear-gradient(128deg, #0b3f50 0%, #0f766e 56%, #14b8a6 100%); box-shadow: var(--shadow-3); z-index: 0; } .page-hero::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(340px 180px at 88% 8%, rgba(255, 255, 255, 0.2), transparent 62%), radial-gradient(340px 210px at 14% 92%, rgba(251, 146, 60, 0.2), transparent 64%); } .page-hero > * { position: relative; z-index: 1; } .page-hero h3, .page-hero h4, .page-hero p, .page-hero small, .page-hero strong { color: #f5feff !important; } .home-shell { background: radial-gradient(760px 260px at -2% -10%, rgba(20, 184, 166, 0.2), transparent 66%), radial-gradient(760px 280px at 102% -2%, rgba(234, 88, 12, 0.14), transparent 64%), linear-gradient(180deg, #f4f8fb 0%, #edf4f7 100%); } .home-hero { min-height: 90vh; padding: 5.8rem 0 4rem; border-radius: var(--radius-xl); margin-bottom: 1rem; color: #fff; position: relative; overflow: hidden; z-index: 0; } .home-hero::before { content: ''; position: absolute; inset: 0; z-index: -2; border-radius: inherit; background: linear-gradient(120deg, rgba(9, 34, 43, 0.9), rgba(13, 66, 82, 0.76)), url('../images/background.jpg') center/cover no-repeat; } .home-hero::after { content: ''; position: absolute; right: -130px; top: -110px; width: 390px; height: 390px; border-radius: 999px; background: radial-gradient(circle, rgba(253, 186, 116, 0.28), rgba(255, 255, 255, 0)); z-index: -1; } .hero-pill { border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.42); background: rgba(255, 255, 255, 0.14); backdrop-filter: blur(6px); } .home-hero h1 { color: #fff; font-size: clamp(2.1rem, 5vw, 3.9rem); } .home-hero p { color: rgba(245, 253, 255, 0.94); } .hero-stat { border: 1px solid rgba(255, 255, 255, 0.28); border-radius: var(--radius-sm); background: rgba(255, 255, 255, 0.12); box-shadow: 0 18px 30px rgba(7, 31, 45, 0.24); backdrop-filter: blur(8px); } .hero-stat h5, .hero-stat small { color: #f6fdff !important; } .home-section-title .section-subtitle { max-width: 620px; margin: 0.7rem auto 0; } .facility-card { border: 1px solid rgba(16, 38, 50, 0.09); border-radius: 24px; background: linear-gradient(180deg, #ffffff, #f4fbff); box-shadow: var(--shadow-1); } .facility-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); } .facility-icon { width: 62px; height: 62px; border-radius: 18px; box-shadow: 0 14px 24px rgba(15, 118, 110, 0.16); } .ticket-box, .booking-box { border: 1px solid rgba(16, 38, 50, 0.1); border-radius: 26px; background: linear-gradient(180deg, #ffffff, #f7fcff); box-shadow: var(--shadow-2); } .ticket-box-head { background: linear-gradient(130deg, #0b3f50, #0f766e 58%, #14b8a6); } .ticket-box-head h4, .ticket-box-head p, .ticket-box-head small { color: #f3fdff !important; } .ticket-big-price { font-size: clamp(2rem, 4.2vw, 3.1rem); font-weight: 800; } .booking-note { border: 1px solid #b5dff8; background: linear-gradient(135deg, #e1f3ff, #eef8ff); } .home-modal .modal-header { background: linear-gradient(130deg, #0b3f50, #0f766e 65%, #14b8a6); } .home-modal .btn-close { filter: invert(1); } .auth-body { background: radial-gradient(760px 240px at -8% -6%, rgba(20, 184, 166, 0.22), transparent 66%), radial-gradient(840px 290px at 106% 4%, rgba(234, 88, 12, 0.14), transparent 62%), linear-gradient(180deg, #eef6fa 0%, #e9f0f6 100%); } .auth-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1.2rem 0; } .auth-panel { border: 1px solid rgba(16, 38, 50, 0.12); border-radius: 28px; overflow: hidden; box-shadow: var(--shadow-3); background: rgba(255, 255, 255, 0.92); } .auth-side { position: relative; background: linear-gradient(150deg, #062634 0%, #0b4c5d 55%, #0f766e 100%); } .auth-side::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(260px 180px at 88% 12%, rgba(255, 255, 255, 0.15), transparent 72%), radial-gradient(220px 180px at 16% 86%, rgba(253, 186, 116, 0.18), transparent 70%); } .auth-side h2, .auth-side h4, .auth-side p, .auth-side li { color: #f2fdff; } .auth-panel .bg-white { background: linear-gradient(180deg, #ffffff, #f6fbfe) !important; } .breadcrumb { border: 1px solid rgba(16, 38, 50, 0.12); border-radius: 999px; background: rgba(255, 255, 255, 0.82); box-shadow: var(--shadow-1); padding: 0.58rem 0.95rem; } .breadcrumb-item, .breadcrumb-item a { color: #6e8492; font-weight: 700; } .breadcrumb-item.active { color: var(--brand-deep); } .admin-body { background: radial-gradient(760px 250px at -4% -14%, rgba(20, 184, 166, 0.2), transparent 64%), radial-gradient(860px 260px at 104% 8%, rgba(234, 88, 12, 0.12), transparent 64%), linear-gradient(180deg, #f4f8fb 0%, #edf3f7 100%); } .admin-sidebar { width: 294px; background: linear-gradient(180deg, #062634 0%, #0b3f50 48%, #0f766e 100%); border-right: 1px solid rgba(255, 255, 255, 0.12); box-shadow: var(--shadow-3); } .sidebar-brand { padding: 1.2rem 1.1rem 1rem; } .sidebar-brand-main { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; } .sidebar-brand-link { display: flex; align-items: center; gap: 0.75rem; } .sidebar-brand-mark { width: 42px; height: 42px; border-radius: 13px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, rgba(255, 255, 255, 0.26), rgba(255, 255, 255, 0.08)); border: 1px solid rgba(255, 255, 255, 0.28); } .sidebar-brand-copy { display: flex; flex-direction: column; line-height: 1.1; } .sidebar-brand-copy strong { color: #f7ffff; font-size: 1rem; font-family: 'Outfit', sans-serif; } .sidebar-brand-copy small { margin-top: 0.2rem; color: rgba(236, 252, 255, 0.72); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; } .sidebar-menu { padding: 0.65rem; } .menu-section { color: rgba(236, 252, 255, 0.62); padding: 0.76rem 0.85rem 0.35rem; font-size: 0.68rem; letter-spacing: 0.09em; text-transform: uppercase; font-weight: 700; } .menu-item { position: relative; display: flex; align-items: center; gap: 0.65rem; margin: 0.14rem 0; padding: 0.72rem 0.8rem; border-radius: 13px; color: rgba(236, 252, 255, 0.9); font-weight: 700; border: 1px solid transparent; } .menu-item:hover { color: #fff; border-color: rgba(255, 255, 255, 0.2); background: rgba(255, 255, 255, 0.1); } .menu-icon { width: 34px; height: 34px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.22); flex-shrink: 0; } .menu-label { color: inherit; } .menu-item.active { color: #fff; background: linear-gradient(135deg, rgba(20, 184, 166, 0.34), rgba(20, 184, 166, 0.18)); border-color: rgba(125, 227, 213, 0.6); } .menu-item.active::after { content: ''; position: absolute; right: 10px; width: 8px; height: 8px; border-radius: 50%; background: #9ef4e7; box-shadow: 0 0 0 6px rgba(158, 244, 231, 0.22); } .sidebar-footer { padding: 0.9rem 1rem 1.05rem; border-top: 1px solid rgba(255, 255, 255, 0.14); background: rgba(0, 0, 0, 0.12); } .sidebar-status { display: flex; align-items: center; gap: 0.7rem; } .status-text small { display: block; color: rgba(236, 252, 255, 0.66); font-size: 0.66rem; letter-spacing: 0.06em; text-transform: uppercase; } .status-text strong { color: #f5feff; font-size: 0.82rem; } .admin-wrapper { margin-left: 294px; min-height: 100vh; padding: 0 0.9rem 1rem; } .admin-topbar { position: sticky; top: 0.9rem; z-index: 1200; margin: 0.92rem 0.4rem 0; border-radius: 18px; border: 1px solid rgba(16, 38, 50, 0.1); box-shadow: var(--shadow-2); background: rgba(255, 255, 255, 0.88); backdrop-filter: blur(12px); display: flex; align-items: center; justify-content: space-between; gap: 0.9rem; padding: 0.76rem 1rem; } .topbar-left { display: flex; align-items: center; gap: 0.7rem; } .topbar-icon-btn { width: 40px; height: 40px; border-radius: 11px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(16, 38, 50, 0.12); color: var(--ink-soft); background: #fff; padding: 0; } .topbar-icon-btn:hover { color: var(--brand-deep); border-color: rgba(15, 118, 110, 0.34); background: rgba(20, 184, 166, 0.08); } .topbar-title-wrap small { display: block; color: var(--ink-faint); font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 800; } .topbar-title-wrap h5 { margin: 0.04rem 0 0; font-size: 1.06rem; } .topbar-actions { display: flex; align-items: center; gap: 0.55rem; } .topbar-link-btn { border-radius: 11px; } .topbar-user { border: 1px solid rgba(16, 38, 50, 0.1); background: rgba(255, 255, 255, 0.92); padding: 0.26rem 0.64rem 0.26rem 0.26rem; } .admin-content { padding: 1rem 0.45rem 0.9rem; } .page-shell { display: flex; flex-direction: column; gap: 1rem; } .page-shell > .d-flex.justify-content-between.align-items-center.mb-4 { margin-bottom: 0 !important; padding: 1.05rem 1.2rem; border: 1px solid rgba(16, 38, 50, 0.12); border-radius: var(--radius); background: linear-gradient(180deg, #ffffff, #f4fafd); box-shadow: var(--shadow-1); } .admin-content .container-fluid { max-width: 1400px; padding-left: 0.3rem; padding-right: 0.3rem; } .admin-sidebar-overlay { background: rgba(9, 31, 43, 0.52); } .admin-collapsed .admin-sidebar { width: 92px; } .admin-collapsed .admin-wrapper { margin-left: 92px; } .admin-collapsed .sidebar-brand-copy, .admin-collapsed .menu-section, .admin-collapsed .menu-label, .admin-collapsed .status-text, .admin-collapsed .menu-item.active::after { display: none; } .admin-collapsed .menu-item { justify-content: center; padding: 0.7rem; } .admin-collapsed .sidebar-status { justify-content: center; } .stat-card { border: 1px solid rgba(15, 118, 110, 0.2); border-radius: var(--radius); background: linear-gradient(180deg, #ffffff, #f3fbfd); box-shadow: var(--shadow-1); } .stat-icon { box-shadow: 0 10px 18px rgba(15, 118, 110, 0.22); } .dataTables_wrapper .dataTables_filter input, .dataTables_wrapper .dataTables_length select { border: 1px solid #d3e2ea; border-radius: 10px; min-height: 38px; background: #fff; } .dataTables_wrapper .dataTables_paginate .paginate_button { border-radius: 999px !important; border: 1px solid rgba(16, 38, 50, 0.1) !important; background: #fff !important; } .dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { border-color: transparent !important; color: #fff !important; background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)) !important; } #dropZone { border-color: #a8d9d3 !important; background: #f4fbf9; } #dropZone:hover { border-color: var(--brand-soft) !important; background: #ebf8f5; } .qty-input { min-height: 40px; border-radius: 0; border-left: 0; border-right: 0; } .swal2-popup { border-radius: 18px !important; } @media (max-width: 1199.98px) { .site-navbar { top: 0; width: 100%; max-width: none; margin: 0; border-radius: 0; border-left: 0; border-right: 0; } .nav-auth-actions { width: 100%; margin-top: 0.65rem; justify-content: flex-start; flex-wrap: wrap; } .navbar-nav { align-items: flex-start !important; } } @media (max-width: 991.98px) { .admin-sidebar { transform: translateX(-100%); transition: transform 0.22s ease; } .admin-sidebar.show { transform: translateX(0); } .admin-wrapper, .admin-collapsed .admin-wrapper { margin-left: 0; } .admin-topbar { margin: 0.7rem 0.25rem 0; top: 0.45rem; } .topbar-actions .topbar-link-btn { display: none; } .admin-content { padding: 0.84rem 0.2rem 0.5rem; } .home-hero { min-height: auto; padding: 5rem 0 3.4rem; } } @media (max-width: 767.98px) { .page-hero { padding: 1.24rem 1.2rem; border-radius: 24px; } .page-shell > .d-flex.justify-content-between.align-items-center.mb-4 { flex-direction: column; align-items: flex-start !important; gap: 0.8rem; padding: 0.95rem; } .admin-topbar { padding: 0.66rem 0.72rem; } .ticket-box-head, .ticket-box-body, .booking-box { padding: 1.1rem !important; } .footer { margin-top: 3.2rem; padding-top: 3rem; } } /* ================================================== Admin Shell Clarity Hotfix Sidebar | Topbar | Main Content ================================================== */ .admin-body { background: #eaf1f5; } .admin-body .admin-backdrop { opacity: 0.45; } .admin-body .admin-sidebar { width: 286px; z-index: 1300; border-right: 1px solid rgba(255, 255, 255, 0.16); box-shadow: 18px 0 36px rgba(7, 27, 38, 0.16); } .admin-body .admin-wrapper { margin-left: 286px; min-height: 100vh; padding: 0; display: flex; flex-direction: column; } .admin-body .admin-topbar { position: sticky; top: 0; z-index: 1200; margin: 0; border-radius: 0; border: 0; border-bottom: 1px solid rgba(16, 38, 50, 0.1); background: rgba(255, 255, 255, 0.97); backdrop-filter: blur(8px); box-shadow: 0 8px 20px rgba(8, 33, 46, 0.08); padding: 0.88rem 1.1rem; } .admin-body .admin-content { flex: 1; padding: 1.15rem; } .admin-body .admin-content .container-fluid { max-width: 100%; padding-left: 0; padding-right: 0; } .admin-body .page-shell { display: flex; flex-direction: column; gap: 1rem; border: 1px solid rgba(16, 38, 50, 0.09); border-radius: 20px; background: linear-gradient(180deg, #f8fcff, #f1f7fb); box-shadow: 0 10px 24px rgba(10, 34, 46, 0.08); padding: 1rem; } .admin-body .page-shell > .d-flex.justify-content-between.align-items-center.mb-4 { margin-bottom: 0 !important; padding: 0.95rem 1rem; border: 1px solid rgba(16, 38, 50, 0.1); border-radius: 16px; background: #ffffff; box-shadow: 0 6px 14px rgba(10, 34, 46, 0.06); } .admin-body .sidebar-menu { padding: 0.7rem; } .admin-body .menu-item { margin: 0.2rem 0; } .admin-body .admin-collapsed .admin-sidebar, .admin-body.admin-collapsed .admin-sidebar { width: 90px; } .admin-body .admin-collapsed .admin-wrapper, .admin-body.admin-collapsed .admin-wrapper { margin-left: 90px; } @media (max-width: 991.98px) { .admin-body .admin-sidebar { width: 286px; transform: translateX(-100%); transition: transform 0.22s ease; } .admin-body .admin-sidebar.show { transform: translateX(0); } .admin-body .admin-wrapper, .admin-body.admin-collapsed .admin-wrapper { margin-left: 0; } .admin-body .admin-topbar { top: 0; padding: 0.78rem 0.92rem; } .admin-body .admin-content { padding: 0.85rem; } .admin-body .page-shell { border-radius: 16px; padding: 0.8rem; } .admin-body .page-shell > .d-flex.justify-content-between.align-items-center.mb-4 { padding: 0.8rem; } } /* Admin page head utility (without changing layout structure) */ .admin-page-shell { display: flex; flex-direction: column; gap: 1rem; } .admin-page-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 0 !important; padding: 1rem 1.1rem; border: 1px solid rgba(16, 38, 50, 0.1); border-radius: 16px; background: linear-gradient(180deg, #ffffff, #f4f9fd); box-shadow: var(--shadow-1); } .admin-page-head h4 { margin-bottom: 0.2rem; } .admin-page-head p { margin-bottom: 0; color: #5f7889; } @media (max-width: 767.98px) { .admin-page-head { flex-direction: column; align-items: flex-start; padding: 0.9rem; } } /* SweetAlert Teal Theme */ .swal-teal-popup { border-radius: 16px !important; border: 2px solid rgba(20, 184, 166, 0.2) !important; } .swal-teal-confirm { border-radius: 9999px !important; padding: 0.625rem 1.5rem !important; font-weight: 600 !important; box-shadow: 0 4px 12px rgba(13, 148, 136, 0.3) !important; } .swal-teal-confirm:hover { background-color: #0f766e !important; transform: translateY(-2px); box-shadow: 0 6px 16px rgba(13, 148, 136, 0.4) !important; } .swal-teal-cancel { border-radius: 9999px !important; padding: 0.625rem 1.5rem !important; font-weight: 600 !important; } .swal-teal-cancel:hover { background-color: #4b5563 !important; } .swal2-icon.swal2-question { border-color: #14b8a6 !important; color: #0d9488 !important; } /* Fix SweetAlert z-index */ .swal2-container { z-index: 99999 !important; position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; } .swal2-popup { z-index: 99999 !important; position: relative !important; } /* User Dropdown Styles */ .user-dropdown { min-width: 280px; border: 1px solid rgba(16, 38, 50, 0.12); border-radius: 14px; box-shadow: 0 14px 32px rgba(10, 34, 46, 0.18) !important; padding: 0.5rem; margin-top: 0.5rem; z-index: 99999 !important; position: absolute !important; will-change: transform; } .user-dropdown .dropdown-header { padding: 0; margin-bottom: 0.5rem; background: transparent; } .dropdown-user-info { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem; border-radius: 10px; background: linear-gradient(135deg, rgba(15, 118, 110, 0.08), rgba(20, 184, 166, 0.06)); } .dropdown-avatar { width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1rem; font-weight: 800; background: linear-gradient(135deg, var(--brand-deep), var(--brand-soft)); box-shadow: 0 8px 16px rgba(15, 118, 110, 0.24); flex-shrink: 0; } .dropdown-user-name { font-size: 0.92rem; font-weight: 700; color: var(--ink); margin-bottom: 0.15rem; line-height: 1.2; } .dropdown-user-email { font-size: 0.75rem; color: var(--ink-faint); line-height: 1.2; } .user-dropdown .dropdown-item { display: flex; align-items: center; gap: 0.75rem; padding: 0.65rem 0.85rem; border-radius: 10px; font-weight: 600; color: var(--ink-soft); transition: all 0.2s ease; } .user-dropdown .dropdown-item i { width: 18px; font-size: 1rem; color: var(--brand); } .user-dropdown .dropdown-item:hover { background: linear-gradient(135deg, rgba(15, 118, 110, 0.08), rgba(20, 184, 166, 0.06)); color: var(--brand-deep); transform: translateX(2px); } .user-dropdown .dropdown-item.text-danger { color: var(--danger) !important; } .user-dropdown .dropdown-item.text-danger i { color: var(--danger); } .user-dropdown .dropdown-item.text-danger:hover { background: linear-gradient(135deg, rgba(220, 38, 38, 0.08), rgba(239, 68, 68, 0.06)); } .user-dropdown .dropdown-divider { margin: 0.5rem 0; border-color: rgba(16, 38, 50, 0.1); } .user-chip.dropdown-toggle::after { display: none; } .user-chip:hover { background: rgba(255, 255, 255, 0.98); border-color: rgba(15, 118, 110, 0.2); } /* Dropdown animation */ .user-dropdown { animation: dropdownFadeIn 0.25s cubic-bezier(0.16, 1, 0.3, 1); } @keyframes dropdownFadeIn { from { opacity: 0; transform: translateY(-8px) scale(0.96); } to { opacity: 1; transform: translateY(0) scale(1); } } /* Mobile responsive */ @media (max-width: 1199.98px) { .user-dropdown { min-width: 260px; } .dropdown-user-info { padding: 0.65rem; } .dropdown-avatar { width: 38px; height: 38px; font-size: 0.9rem; } } /* Ensure navbar container doesn't clip dropdown */ .site-navbar .container { position: static; overflow: visible !important; } .site-navbar .navbar-collapse { position: static; overflow: visible !important; } .site-navbar .nav-auth-actions { position: static; overflow: visible !important; } .site-navbar .dropdown { position: relative; overflow: visible !important; } /* Ensure main content doesn't interfere */ .main-content { position: relative; z-index: 1; } .site-main-container { position: relative; z-index: 1; } /* Ensure hero sections have lower z-index */ .home-shell { position: relative; z-index: 1; }