@layer theme, base, components, utilities; @import 'tailwindcss/theme.css' layer(theme); @import 'tailwindcss/utilities.css' layer(utilities); @theme { --font-sans: Poppins, system-ui, sans-serif; } .admin-shell, .admin-login { min-height: 100vh; font-family: var(--font-sans); color: #1c1917; } .admin-login { position: relative; isolation: isolate; overflow: hidden; box-sizing: border-box; display: flex; flex-direction: column; background-color: #f7fbfb; background-image: radial-gradient(ellipse 55% 45% at 8% 12%, rgb(232 245 233 / 0.95), transparent 62%), radial-gradient(ellipse 50% 50% at 92% 8%, rgb(219 234 254 / 0.8), transparent 58%), radial-gradient(ellipse 60% 50% at 88% 92%, rgb(204 251 241 / 0.8), transparent 55%); } .admin-login::before { content: ''; position: absolute; inset: -12% -8%; z-index: 0; pointer-events: none; background: radial-gradient(circle at 18% 22%, #c8e6c9 0%, transparent 42%), radial-gradient(circle at 88% 16%, #bbdefb 0%, transparent 38%), radial-gradient(circle at 78% 86%, #b2dfdb 0%, transparent 42%); filter: blur(80px); opacity: 0.45; } .admin-login .site-header { position: relative; z-index: 1; } @media (min-width: 40.0625rem) { .admin-login .site-brand { justify-content: center; } } .admin-login-body { flex: 1; display: grid; place-items: center; padding: 1.5rem; } .admin-shell { display: flex; background: #f7fbfb; } .admin-main { min-width: 0; flex: 1; padding: 2rem; } .admin-title { margin: 0 0 1rem; font-size: 1.5rem; font-weight: 600; letter-spacing: -0.02em; color: #134e4a; } .admin-login-card .admin-title {text-align: center;} .admin-title-inline { margin-bottom: 0; } .admin-card { border-radius: 1rem; background: #fff; padding: 1.5rem; box-shadow: 0 1px 2px rgb(15 118 110 / 0.06), 0 18px 40px rgb(19 78 74 / 0.08); } .admin-card-status { margin: 0.75rem 0 0; font-size: 0.9rem; font-weight: 600; } .admin-card-status-success { color: #14532d; } .admin-card-status-error { color: #b91c1c; } .admin-stat-card { display: flex; flex-direction: column; align-items: center; text-align: center; } .admin-stat-label { margin: 0; min-height: 2.5rem; font-size: 0.75rem; font-weight: 500; line-height: 1.25rem; color: #78716c; } .admin-stat-value { margin: 0.35rem 0 0; font-size: 1.5rem; font-weight: 600; line-height: 1.2; color: #134e4a; } .admin-login-card { position: relative; z-index: 1; width: 100%; max-width: 24rem; } .admin-login-card .admin-btn { width: 100%; } .admin-login-logo { display: block; width: 100%; max-width: 250px; height: auto; margin: auto; margin-bottom: 0.75rem; padding: 0.0rem; border-radius: 0.6rem; background: #f7faf9; box-sizing: border-box; } .admin-kicker { margin: 0 0 0.25rem; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #0f766e; text-align: center; } .admin-input { width: 100%; box-sizing: border-box; border-radius: 0.5rem; border: 1px solid #d6d3d1; background: #fff; padding: 0.7rem 0.85rem; font: inherit; font-size: 16px; color: #1c1917; } .admin-input:focus { outline: 2px solid #0f766e; outline-offset: 2px; } .admin-file { display: block; width: 100%; max-width: 28rem; box-sizing: border-box; padding: 0.35rem; border: 1px dashed #99f6e4; border-radius: 0.6rem; background: #f0fdfa; font: inherit; font-size: 0.875rem; color: #57534e; cursor: pointer; } .admin-file::file-selector-button { margin-right: 0.75rem; padding: 0.5rem 1rem; border: 0; border-radius: 0.45rem; background: linear-gradient(135deg, #0f766e 0%, #1578c8 100%); color: #f0fdfa; font: inherit; font-weight: 600; cursor: pointer; } .admin-file::file-selector-button:hover { filter: brightness(1.08); } .admin-file:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; } .admin-input-inline { width: auto; display: inline-block; max-width: 12rem; padding: 0.4rem 0.65rem; } .admin-btn { display: inline-flex; align-items: center; justify-content: center; width: fit-content; padding: 0.65rem 1.1rem; border: 0; border-radius: 0.55rem; font: inherit; font-weight: 600; cursor: pointer; } .admin-btn:disabled { opacity: 0.55; cursor: not-allowed; } .admin-btn-primary { background: linear-gradient(135deg, #0f766e 0%, #1578c8 100%); color: #f0fdfa; } .admin-btn-primary:hover:not(:disabled) { background: linear-gradient(135deg, #0d6a63 0%, #1d4ed8 100%); } .admin-btn-secondary { background: #eef2f1; color: #134e4a; } .admin-btn-secondary:hover:not(:disabled) { background: #e4eceb; } .admin-btn-danger { background: #991b1b; color: #fff; } .admin-btn-danger:hover:not(:disabled) { background: #7f1d1d; } .admin-btn-ghost { background: transparent; color: #ccfbf1; font-weight: 500; text-align: left; } .admin-btn-ghost:hover:not(:disabled) { background: rgb(15 118 110 / 0.35); } .admin-table-wrap { overflow-x: auto; border-radius: 1rem; background: #fff; box-shadow: 0 1px 2px rgb(15 118 110 / 0.06), 0 18px 40px rgb(19 78 74 / 0.08); } .admin-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 0.875rem; } .admin-table thead { position: sticky; top: 0; background: #f7faf9; color: #57534e; } .admin-table th, .admin-table td { padding: 0.75rem 1rem; border-bottom: 1px solid #f5f5f4; } .admin-table tbody tr:hover { background: rgb(240 253 250 / 0.7); } .admin-table a { color: #0f766e; font-weight: 600; } .admin-sidebar { position: sticky; top: 0; flex: none; width: 14rem; height: 100vh; overflow: hidden; background: #134e4a; transition: width 0.3s ease, visibility 0s linear 0s; } .admin-sidebar.is-collapsed { width: 0; visibility: hidden; transition: width 0.3s ease, visibility 0s linear 0.3s; } .admin-nav { width: 14rem; height: 100%; box-sizing: border-box; overflow-y: auto; transition: transform 0.3s ease; } .admin-sidebar.is-collapsed .admin-nav { transform: translateX(-100%); } @media (prefers-reduced-motion: reduce) { .admin-sidebar, .admin-sidebar.is-collapsed, .admin-nav { transition: none; } } .admin-nav-toggle { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; margin-bottom: 1rem; padding: 0; border: 1px solid #e4e4e0; border-radius: 0.6rem; background: #fff; color: #134e4a; cursor: pointer; box-shadow: 0 1px 2px rgb(15 118 110 / 0.06); } .admin-nav-toggle:hover { background: #f0fdfa; } .admin-nav-toggle:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; } .admin-logout { width: 100%; justify-content: flex-start; gap: 0.6rem; } .admin-nav-logo { display: block; width: 100%; height: auto; margin-bottom: 0.75rem; padding: 0.35rem; border-radius: 0.4rem; background: #fff; box-sizing: border-box; } .admin-nav-heading, .admin-nav-link { color: #fff; } .admin-nav-link { text-decoration: none; } input[type='checkbox'].h-4 { width: 1rem; height: 1rem; padding: 0; flex: 0 0 auto; }