/* Admin workspace: intentionally scoped so the employee portal keeps its own UI. */
:root { --admin-ink: #13213d; --admin-muted: #62708a; --admin-surface: #ffffff; --admin-canvas: #f4f7fb; --admin-line: #dbe3ef; --admin-brand: #155eef; --admin-brand-deep: #0b3ea9; --admin-accent: #eaaa08; }
.dark { --admin-ink: #f5f8ff; --admin-muted: #aab7cf; --admin-surface: #101b31; --admin-canvas: #091226; --admin-line: #263651; }
.admin-shell { background: var(--admin-canvas); color: var(--admin-ink); }
.admin-sidebar { width: 17.5rem; background: linear-gradient(180deg,#0b1f43 0%,#07142e 100%); }
.admin-sidebar a { border: 1px solid transparent; }
.admin-sidebar a:focus-visible,.admin-header button:focus-visible,.admin-main :is(button,a,input,select,textarea):focus-visible { outline: 3px solid #f8bd32; outline-offset: 2px; }
.admin-nav-label { letter-spacing: .08em; }
.admin-main { background-image: radial-gradient(circle at 100% 0, rgba(21,94,239,.09), transparent 26rem); }
.admin-header { min-height: 4.5rem; }
.admin-page { max-width: 1440px; margin-inline: auto; width: 100%; }
.admin-page > .space-y-6, .admin-page > .space-y-8 { position: relative; }
.admin-main .glass-card { background: color-mix(in srgb, var(--admin-surface) 94%, transparent); border-color: var(--admin-line) !important; box-shadow: 0 8px 24px rgba(15, 38, 80, .06); }
.dark .admin-main .glass-card { box-shadow: 0 12px 28px rgba(0,0,0,.18); }
.admin-main .glass-card:hover { box-shadow: 0 12px 30px rgba(15, 38, 80, .10); }
.admin-main :is(input,select,textarea) { min-height: 2.65rem; }
.admin-main table th { font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.admin-main table td { vertical-align: middle; }
.admin-main button, .admin-main a { touch-action: manipulation; }
.admin-modal { overflow-y: auto; overscroll-behavior: contain; }
.admin-skip-link { position:absolute; left:1rem; top:-4rem; z-index:100; padding:.75rem 1rem; border-radius:.75rem; background:#fff; color:#07142e; font-weight:700; }
.admin-skip-link:focus { top:1rem; }
@media (max-width: 1023px) {
  .admin-sidebar { position: fixed; inset: 0 auto 0 0; transform: translateX(-105%); transition: transform .2s ease; box-shadow: 18px 0 48px rgba(0,0,0,.32); }
  .admin-sidebar.is-open { transform: translateX(0); }
  .admin-backdrop { display:block; position:fixed; inset:0; background:rgba(3,11,30,.55); z-index:20; }
  .admin-main { min-width: 100%; }
}
@media (min-width: 1024px) { .admin-nav-toggle,.admin-backdrop { display:none; } }
@media (max-width: 640px) {
  .admin-header { min-height:4rem; padding-inline:1rem; }
  .admin-header h1 { font-size:.95rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .admin-main > main { padding:1rem; }
  .admin-page .flex.items-center.justify-between { gap:.75rem; align-items:flex-start; }
  .admin-page .flex.items-center.space-x-3,.admin-page .flex.items-center.space-x-4 { flex-wrap:wrap; gap:.5rem; }
  .admin-page .overflow-x-auto { margin-inline:-1rem; }
  .admin-page table { min-width: 42rem; }
  .admin-page [x-show] .max-w-md { max-height:calc(100vh - 2rem); overflow:auto; }
}
@media (prefers-reduced-motion: reduce) { *,::before,::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; } }

.admin-login { background: #07142e; }
.admin-login::before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.42; background:linear-gradient(120deg,transparent 0 48%,rgba(255,255,255,.04) 48% 49%,transparent 49% 100%), radial-gradient(circle at 12% 10%,#155eef 0,transparent 28%),radial-gradient(circle at 90% 90%,#eaaa08 0,transparent 22%); }
.admin-login-card { background:rgba(11,31,67,.92); border:1px solid rgba(170,193,239,.2); box-shadow:0 28px 70px rgba(0,0,0,.38); }
.admin-login-card input { min-height:3.1rem; }
