:root {
  --kc-font: Inter, "SF Pro Text", "SF Pro Display", "Segoe UI Variable", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --kc-display: Inter, "SF Pro Display", "Segoe UI Variable Display", "Segoe UI", Roboto, sans-serif;
  --kc-ink: #18202f;
  --kc-muted: #687386;
  --kc-subtle: #8992a3;
  --kc-primary: #e5484d;
  --kc-primary-hover: #cd343a;
  --kc-primary-soft: #fff0f0;
  --kc-navy: #17233c;
  --kc-navy-2: #223452;
  --kc-accent: #2563eb;
  --kc-success: #12805c;
  --kc-success-soft: #e9f8f2;
  --kc-warning: #b76e00;
  --kc-warning-soft: #fff6df;
  --kc-danger: #c9363e;
  --kc-bg: #f6f7fb;
  --kc-surface: #ffffff;
  --kc-surface-2: #fafbfc;
  --kc-line: #e4e7ec;
  --kc-line-strong: #d3d8e2;
  --kc-radius-sm: 10px;
  --kc-radius: 15px;
  --kc-radius-lg: 22px;
  --kc-shadow-sm: 0 2px 8px rgba(24,32,47,.05);
  --kc-shadow: 0 12px 32px rgba(24,32,47,.08);
  --kc-shadow-lg: 0 24px 64px rgba(24,32,47,.14);
  --kc-focus: 0 0 0 4px rgba(37,99,235,.16);
}

*, *::before, *::after { box-sizing: border-box; }
html { font-family: var(--kc-font); font-size: 16px; color-scheme: light; scroll-behavior: smooth; }
body { margin: 0; background: var(--kc-bg); color: var(--kc-ink); font-family: var(--kc-font); font-size: 14px; line-height: 1.55; letter-spacing: -.005em; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, input, select, textarea { font: inherit; }
a { color: var(--kc-accent); text-underline-offset: 3px; }
h1, h2, h3, h4 { margin-top: 0; color: var(--kc-navy); font-family: var(--kc-display); font-weight: 760; line-height: 1.18; letter-spacing: -.025em; }
h1 { font-size: clamp(1.75rem, 2.5vw, 2.35rem); }
h2 { font-size: clamp(1.35rem, 2vw, 1.7rem); }
h3 { font-size: 1.08rem; }
p { line-height: 1.62; }
:focus-visible { outline: 0; box-shadow: var(--kc-focus); }
::selection { background: #ffd6d7; color: var(--kc-navy); }

/* Shared header and navigation */
.topbar { position: sticky; top: 0; z-index: 100; min-height: 68px; padding: 0 clamp(14px, 2.5vw, 34px); background: rgba(255,255,255,.94); border-bottom: 1px solid var(--kc-line); box-shadow: 0 1px 0 rgba(24,32,47,.02); backdrop-filter: blur(18px) saturate(1.3); }
.topbar, .topbar .brand, .topbar nav, .topbar .nav-actions { align-items: center; }
.topbar .brand { color: var(--kc-navy); font-family: var(--kc-display); font-size: 1.02rem; font-weight: 800; letter-spacing: -.02em; }
.topbar nav { gap: 4px; }
.topbar a, .topbar button { border-radius: 10px; font-weight: 650; }
.topbar nav a { min-height: 40px; display: inline-flex; align-items: center; gap: 8px; padding: 9px 11px; color: #536074; text-decoration: none; white-space: nowrap; }
.topbar nav a:hover { background: #f1f3f7; color: var(--kc-navy); }
.topbar nav a.active, .topbar nav a[aria-current="page"] { background: var(--kc-primary-soft); color: var(--kc-primary); }
.nav-toggle, .control-panel-toggle, .profile-button { min-width: 42px; min-height: 42px; }
.profile-avatar, .user-avatar { border: 2px solid #fff; box-shadow: 0 0 0 1px var(--kc-line), var(--kc-shadow-sm); object-fit: cover; }

/* Page rhythm and surfaces */
main:not(.pos-layout), .page, .admin-main { width: min(1480px, 100%); margin-inline: auto; padding: clamp(20px, 3vw, 42px); }
.page-header, .section-header, .panel-header, .toolbar, .actions, .button-row, .row { gap: 12px; }
.page-header { margin-bottom: clamp(20px, 3vw, 34px); }
.page-header p, .section-header p, .muted { color: var(--kc-muted); }
.eyebrow { color: var(--kc-primary); font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.card, .panel, .stat, .metric, .summary-card, .table-card, .form-card, .recent-card, .shift-card, .modal-content, dialog, .admin-section { background: var(--kc-surface); border: 1px solid var(--kc-line); border-radius: var(--kc-radius); box-shadow: var(--kc-shadow-sm); }
.card, .panel, .form-card, .admin-section { padding: clamp(18px, 2.2vw, 28px); }
.grid, .cards, .stats-grid, .dashboard-grid, .form-grid { gap: clamp(14px, 2vw, 22px); }
.stat, .metric, .summary-card { padding: 18px; }
.stat strong, .metric strong { font-family: var(--kc-display); font-size: 1.55rem; letter-spacing: -.035em; }

/* Controls */
.btn, button:not(.chip):not(.qty button):not(.icon-btn) { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 9px 15px; border: 1px solid var(--kc-line-strong); border-radius: var(--kc-radius-sm); background: var(--kc-surface); color: var(--kc-ink); font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease; }
.btn:hover, button:not(.chip):not(.qty button):not(.icon-btn):hover { border-color: #b8c0ce; box-shadow: var(--kc-shadow-sm); transform: translateY(-1px); }
.btn.primary, button.primary, .btn[type="submit"], button[type="submit"] { border-color: var(--kc-primary); background: var(--kc-primary); color: #fff; box-shadow: 0 8px 18px rgba(229,72,77,.19); }
.btn.primary:hover, button.primary:hover, .btn[type="submit"]:hover, button[type="submit"]:hover { border-color: var(--kc-primary-hover); background: var(--kc-primary-hover); }
.btn.success { border-color: var(--kc-success); background: var(--kc-success); color: #fff; }
.btn.danger, button.danger { border-color: #f2c5c8; background: #fff5f5; color: var(--kc-danger); }
.btn.ghost, button.ghost { border-color: transparent; background: transparent; box-shadow: none; color: #556176; }
.btn.wide { width: 100%; }
.btn:disabled, button:disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.icon-btn { display: inline-grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--kc-line); border-radius: 11px; background: #fff; color: var(--kc-navy); cursor: pointer; }
.kc-icon { width: 18px; height: 18px; flex: 0 0 auto; stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.kc-icon-only-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

label { color: #4d596b; font-size: .82rem; font-weight: 700; }
input, select, textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--kc-line-strong); border-radius: var(--kc-radius-sm); background: #fff; color: var(--kc-ink); transition: border-color .15s ease, box-shadow .15s ease; }
textarea { min-height: 104px; resize: vertical; }
input:hover, select:hover, textarea:hover { border-color: #aeb7c5; }
input:focus, select:focus, textarea:focus { outline: 0; border-color: var(--kc-accent); box-shadow: var(--kc-focus); }
input[type="checkbox"], input[type="radio"] { width: 18px; min-height: 18px; accent-color: var(--kc-primary); }
.toolbar, .filters, .filter-grid { display: flex; align-items: end; flex-wrap: wrap; gap: 12px; padding: 14px; border: 1px solid var(--kc-line); border-radius: var(--kc-radius); background: rgba(255,255,255,.78); }
.toolbar > label, .filters > label { min-width: min(190px, 100%); flex: 1; }

/* Data views */
.table-wrap, .table-scroll, .data-table-wrap { overflow: auto; border: 1px solid var(--kc-line); border-radius: var(--kc-radius); background: #fff; scrollbar-color: #c4cad4 transparent; }
table { width: 100%; border-collapse: separate; border-spacing: 0; font-variant-numeric: tabular-nums; }
th { position: sticky; top: 0; z-index: 2; padding: 12px 14px; background: #f7f8fa; border-bottom: 1px solid var(--kc-line); color: #566174; font-size: .72rem; font-weight: 800; letter-spacing: .045em; text-align: left; text-transform: uppercase; white-space: nowrap; }
td { padding: 13px 14px; border-bottom: 1px solid #edf0f3; color: #323b4c; vertical-align: middle; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover td { background: #fafbfc; }
.badge, .status, .pill { display: inline-flex; align-items: center; gap: 5px; min-height: 25px; padding: 4px 9px; border-radius: 999px; font-size: .72rem; font-weight: 800; }
.message, .alert { padding: 11px 13px; border-radius: 10px; line-height: 1.5; }
dialog, .modal-content { border: 0; box-shadow: var(--kc-shadow-lg); }
dialog::backdrop { background: rgba(17,25,40,.56); backdrop-filter: blur(4px); }

/* Admin/control drawer */
.admin-shell, .app-shell { background: var(--kc-bg); }
.admin-sidebar, .control-drawer, .side-panel { background: var(--kc-navy); color: #eaf0f8; border: 0; box-shadow: 18px 0 48px rgba(14,25,45,.16); }
.admin-sidebar a, .control-drawer a, .side-panel a { display: flex; align-items: center; gap: 10px; min-height: 43px; padding: 10px 12px; border-radius: 10px; color: #dbe4ef; text-decoration: none; font-weight: 650; }
.admin-sidebar a:hover, .control-drawer a:hover, .side-panel a:hover { background: rgba(255,255,255,.09); color: #fff; }
.admin-sidebar a.active, .control-drawer a.active, .side-panel a.active { background: var(--kc-primary); color: #fff; }
.drawer-backdrop { background: rgba(15,23,42,.52); backdrop-filter: blur(3px); }
.control-panel-toggle-left { order: -2; margin-right: 1px; }
.control-panel-toggle-left .control-grid-icon { transition: transform .28s cubic-bezier(.2,.8,.2,1); }
.control-panel-toggle-left .control-grid-icon i { transition: transform .24s ease,background .2s ease,border-radius .2s ease; }
.control-panel-toggle-left:hover .control-grid-icon, .control-panel-toggle-left[aria-expanded="true"] .control-grid-icon { transform: rotate(90deg) scale(1.06); }
.control-panel-toggle-left:hover .control-grid-icon i, .control-panel-toggle-left[aria-expanded="true"] .control-grid-icon i { transform: rotate(45deg); border-radius: 50%; background: currentColor; }
.control-panel-drawer { left: 0 !important; right: auto !important; transform: translate3d(-105%,0,0) !important; background: var(--kc-bg); color: var(--kc-ink); box-shadow: 24px 0 64px rgba(17,25,40,.18); }
.control-panel-drawer.open { transform: translate3d(0,0,0) !important; }
.control-panel-head { padding: 20px; background: var(--kc-navy); color: #fff; }
.control-panel-links { padding: 14px; gap: 5px; }
.control-panel-links a { display: grid; grid-template-columns: 38px minmax(0,1fr); column-gap: 12px !important; row-gap: 0 !important; min-height: 58px; padding: 9px 12px; border: 1px solid transparent; border-radius: 13px; color: #3e495b; text-decoration: none; transition: background .16s ease,border-color .16s ease,transform .16s ease; }
.control-panel-links a .kc-icon { grid-row: 1; align-self: center; width: 38px; height: 38px; padding: 9px; border-radius: 11px; background: var(--kc-primary-soft); color: var(--kc-primary); }
.control-panel-links a span { align-self:center; }
.control-panel-links a span { font-weight: 750; }
.control-panel-links a small { color: var(--kc-muted); }
.control-panel-links a:hover { border-color: var(--kc-line); background: #fff !important; transform: translateX(2px); }
.control-panel-links a.active { border-color: #f3c8ca; background: var(--kc-primary-soft) !important; color: var(--kc-primary) !important; }
.control-panel-account { gap: 8px; padding: 14px; background: #fff; border-top: 1px solid var(--kc-line); }
.control-panel-account a, .control-panel-account button { min-height: 40px; border-radius: 10px; }
.control-panel-backdrop { background: rgba(15,23,42,.52); backdrop-filter: blur(3px); }

/* Auth screens */
body:has(.auth-card), body:has(.login-card), body:has(#loginForm) { min-height: 100dvh; background: radial-gradient(circle at 12% 8%, #fff0f0 0, transparent 34%), radial-gradient(circle at 88% 90%, #eaf1ff 0, transparent 34%), var(--kc-bg); }
.auth-page { min-height: 100dvh; padding: 16px; }
.auth-card, .login-card { width: min(390px, calc(100% - 24px)); padding: 25px 27px 22px; border: 1px solid rgba(255,255,255,.78); border-radius: 20px; background: rgba(255,255,255,.96); box-shadow: 0 20px 54px rgba(24,32,47,.13); }
.auth-card-login { max-width: 380px; }
.auth-card-setup { width: min(650px, calc(100% - 24px)); padding: 23px 27px 20px; }
.auth-card .brand-mark { width: 42px; height: 42px; margin-bottom: 11px; border-radius: 12px; background: linear-gradient(145deg, var(--kc-navy), var(--kc-navy-2)); font-size: 16px; box-shadow: 0 8px 20px rgba(23,35,60,.18); }
.auth-card h1 { margin: 0 0 4px; font-size: 1.55rem; line-height: 1.18; }
.auth-card .auth-intro { margin: 0 0 14px; font-size: .84rem; line-height: 1.48; }
.auth-card form { margin: 0; }
.auth-card label { gap: 5px; margin: 9px 0; color: #4d596b; font-size: .77rem; }
.auth-card input, .auth-card select { min-height: 41px; padding: 8px 11px; }
.auth-card .btn[type="submit"] { min-height: 42px; margin-top: 3px; }
.auth-card .message { min-height: 17px; margin: 6px 0 0; padding: 0; font-size: .76rem; }
.auth-card .message:not(:empty) { padding: 8px 10px; background: #fff4f4; border: 1px solid #f3d0d2; }
.auth-card .message.ok:not(:empty) { background: var(--kc-success-soft); border-color: #bde3d3; }
.auth-links { margin-top: 10px; padding-top: 11px; border-top: 1px solid var(--kc-line); }
.auth-card .small-link { font-size: .75rem; font-weight: 650; }
.auth-card-setup .form-grid { gap: 8px 12px; }
.auth-card-setup .form-grid label { margin: 0; }
.auth-card-setup .form-grid > button { grid-column: 1 / -1; margin-top: 3px; }
.auth-back-link { display: inline-flex; margin-top: 8px; }
.auth-session-check { display: none; width: min(280px, calc(100% - 32px)); justify-items: center; gap: 5px; color: var(--kc-navy); text-align: center; }
.auth-session-check span { color: var(--kc-muted); font-size: .8rem; }
.auth-spinner { width: 34px; height: 34px; margin-bottom: 8px; border: 3px solid #dfe5ed; border-top-color: var(--kc-primary); border-radius: 50%; animation: kc-auth-spin .72s linear infinite; }
.auth-checking .auth-card { display: none; }
.auth-checking .auth-session-check { display: grid; }
@keyframes kc-auth-spin { to { transform: rotate(360deg); } }

/* Responsive behavior */
@media (max-width: 900px) {
  .topbar { min-height: 60px; padding-inline: 12px; }
  main:not(.pos-layout), .page, .admin-main { padding: 18px 14px 28px; }
  .topbar nav { position: fixed; inset: 60px 10px auto; max-height: calc(100dvh - 74px); overflow: auto; padding: 10px; border: 1px solid var(--kc-line); border-radius: 16px; background: #fff; box-shadow: var(--kc-shadow-lg); }
  .topbar nav a { width: 100%; }
  .toolbar, .filters { align-items: stretch; }
}
@media (max-width: 600px) {
  body { font-size: 14px; }
  h1 { font-size: 1.65rem; }
  .card, .panel, .form-card, .admin-section { padding: 16px; border-radius: 14px; }
  .toolbar > *, .filters > *, .button-row > .btn, .actions > .btn { flex: 1 1 100%; }
  th, td { padding: 11px 12px; }
  .btn, button:not(.chip):not(.qty button):not(.icon-btn) { min-height: 44px; }
  .auth-page { align-items: center; padding: 12px; }
  .auth-card, .login-card, .auth-card-setup { width: min(100%, 390px); padding: 21px 20px 18px; border-radius: 17px; }
  .auth-card-setup .form-grid { grid-template-columns: 1fr; }
  .auth-card-setup .form-grid > button, .auth-card-setup .form-grid .span-2 { grid-column: auto; }
  .auth-card h1 { font-size: 1.4rem; }
  .auth-links { align-items: flex-start; flex-direction: column; gap: 7px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
