:root {
  --abc-blue: #1A313D;
  --abc-blue-deep: #102732;
  --abc-accent: #BFD359;
  --abc-accent-strong: #95AA47;
  --abc-danger: #E20A13;
  --abc-white: #FFFFFF;
  --abc-text: #1A313D;
  --abc-muted: #7E919B;
  --abc-muted-strong: #5D7380;
  --abc-border: #D4E0E5;
  --abc-soft: #F2F7E8;
  --abc-panel-shadow: 0 28px 56px rgba(11, 26, 33, 0.24);

  /* Backward-compat aliases used in existing stylesheets. */
  --abc-red: var(--abc-accent);
}

html,
body {
  min-height: 100%;
}

body {
  background:
    radial-gradient(1200px 520px at -8% -15%, rgba(191, 211, 89, 0.24), transparent 62%),
    radial-gradient(1000px 560px at 108% 120%, rgba(226, 10, 19, 0.12), transparent 64%),
    linear-gradient(140deg, var(--abc-blue) 0%, #162C38 48%, var(--abc-blue-deep) 100%);
  color: var(--abc-white);
}

*:focus-visible {
  outline: 3px solid rgba(191, 211, 89, 0.48);
  outline-offset: 2px;
}

.brand-icon,
.login-icon {
  border-radius: 12px;
  box-shadow: 0 8px 22px rgba(11, 26, 33, 0.25);
}

.profile-container,
.editor-panel,
.list-panel,
.admin-panel,
.settings-panel,
.login-panel,
.missing-state {
  background: var(--abc-white);
  color: var(--abc-text);
  border: 2px solid rgba(191, 211, 89, 0.44);
  box-shadow: var(--abc-panel-shadow);
}

.profile-pic {
  border-color: var(--abc-accent);
}

.profile-pic::after {
  background: var(--abc-accent);
}

.profile-role,
.role-note,
.role-permission,
.empty-users,
.login-foot {
  color: var(--abc-muted-strong);
}

.stat,
.step-panel,
.procedure-card,
.admin-card,
.empty-state,
.users-table-shell,
.missing-state {
  border-color: var(--abc-border);
}

.stat-number {
  color: var(--abc-accent-strong);
}

.logout-btn::after {
  background: var(--abc-accent);
  box-shadow: 0 0 0 4px rgba(191, 211, 89, 0.22);
}

.lang-toggle {
  border-color: rgba(191, 211, 89, 0.92);
}

.lang-toggle:hover {
  background: rgba(191, 211, 89, 0.18);
}

.login-panel .lang-toggle {
  background: var(--abc-white);
  color: var(--abc-blue);
  border-color: var(--abc-accent);
}

.lang-menu {
  border-color: var(--abc-blue);
  box-shadow: 0 18px 40px rgba(9, 22, 28, 0.26);
}

.lang-option:hover {
  background: var(--abc-soft);
}

.lang-option.active {
  background: var(--abc-blue);
  color: var(--abc-white);
}

input[type="text"],
input[type="number"],
input[type="email"],
input[type="password"],
textarea,
select,
.row-name-input,
.row-role-select {
  border-color: var(--abc-blue);
  color: var(--abc-blue);
  background: var(--abc-white);
}

input:focus,
textarea:focus,
select:focus,
.row-name-input:focus,
.row-role-select:focus {
  border-color: var(--abc-accent);
  box-shadow: 0 0 0 3px rgba(191, 211, 89, 0.2);
}

.btn {
  border-color: var(--abc-accent);
  color: var(--abc-blue);
  background: var(--abc-white);
  font-weight: 600;
  letter-spacing: 0.06em;
}

.btn::before {
  border-color: var(--abc-accent);
  background-color: var(--abc-accent);
}

.btn::after {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg width='35' height='30' viewBox='0 0 35 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform='matrix(1,0,0,1,0,-224.751)'%3E%3Cpath d='M21.348,224.751L19.773,224.751C19.738,230.698 23.069,236.18 28.364,238.889L0,238.889L0,240.464L28.365,240.464C23.071,243.172 19.739,248.653 19.773,254.6L21.348,254.6C21.226,246.982 27.382,240.607 35,240.463L35,238.888C27.382,238.744 21.226,232.369 21.348,224.751Z' style='fill:rgb(26,49,61);fill-rule:nonzero;'/%3E%3C/g%3E%3C/svg%3E");
}

.btn:hover {
  color: var(--abc-blue);
}

.btn.primary {
  background: var(--abc-accent);
  border-color: var(--abc-accent);
  color: var(--abc-blue);
}

.btn.primary::after {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg width='35' height='30' viewBox='0 0 35 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform='matrix(1,0,0,1,0,-224.751)'%3E%3Cpath d='M21.348,224.751L19.773,224.751C19.738,230.698 23.069,236.18 28.364,238.889L0,238.889L0,240.464L28.365,240.464C23.071,243.172 19.739,248.653 19.773,254.6L21.348,254.6C21.226,246.982 27.382,240.607 35,240.463L35,238.888C27.382,238.744 21.226,232.369 21.348,224.751Z' style='fill:rgb(26,49,61);fill-rule:nonzero;'/%3E%3C/g%3E%3C/svg%3E");
}

.btn.secondary {
  border-color: var(--abc-blue);
  color: var(--abc-blue);
}

.btn.secondary::before {
  border-color: var(--abc-blue);
  background: var(--abc-blue);
}

.btn.secondary:hover {
  color: var(--abc-white);
}

.btn.danger,
.remove-btn,
.mini-btn.delete-btn,
.current-user-badge {
  border-color: var(--abc-danger);
  color: var(--abc-danger);
}

.btn.danger::before,
.remove-btn::before {
  border-color: var(--abc-danger);
  background: var(--abc-danger);
}

.btn.danger:hover,
.remove-btn:hover {
  color: var(--abc-white);
}

.mini-btn {
  border-color: var(--abc-blue);
  color: var(--abc-blue);
  background: var(--abc-white);
}

.mini-btn.save-btn {
  border-color: var(--abc-accent);
  color: var(--abc-blue);
  background: var(--abc-soft);
}

.mini-btn:hover {
  background: var(--abc-soft);
}

.users-table th {
  background: var(--abc-soft);
}

.procedure-meta span {
  border-color: var(--abc-blue);
}

.media-preview {
  border-color: var(--abc-muted);
  background: var(--abc-soft);
  color: var(--abc-blue);
}

.add-step-btn {
  background: linear-gradient(145deg, #CEE37A 0%, #99B447 100%);
  color: var(--abc-blue);
  border-color: rgba(255, 255, 255, 0.88);
  box-shadow: 0 16px 34px rgba(149, 170, 71, 0.42);
}

.remove-step-btn {
  border-color: var(--abc-danger);
  color: var(--abc-danger);
}

.remove-step-btn:hover {
  background: rgba(226, 10, 19, 0.08);
}

.bottomNav,
.save-section {
  background: linear-gradient(180deg, rgba(16, 39, 50, 0.98) 0%, rgba(16, 39, 50, 0.92) 100%);
  border-top-color: rgba(191, 211, 89, 0.36);
}

.navLink.active {
  color: var(--abc-accent);
  border-color: var(--abc-accent);
  background: rgba(191, 211, 89, 0.14);
}

.media-stage {
  background: var(--abc-blue-deep);
  border: 2px solid rgba(191, 211, 89, 0.34);
  box-shadow: 0 24px 44px rgba(8, 19, 24, 0.42);
}

.step-indicator {
  border-color: var(--abc-accent);
  color: var(--abc-blue);
  background: rgba(255, 255, 255, 0.95);
}

.icon-btn {
  background: var(--abc-accent);
  color: var(--abc-blue);
}

.icon-btn svg {
  fill: var(--abc-blue);
}

.timeline .line {
  background: var(--abc-accent);
}

.dot {
  border-color: var(--abc-accent);
  background: rgba(255, 255, 255, 0.95);
}

.dot.current {
  border-color: var(--abc-accent);
  background: var(--abc-accent);
  color: var(--abc-blue);
}

.caption {
  background: rgba(16, 39, 50, 0.7);
  border: 1px solid rgba(191, 211, 89, 0.32);
}

@media (max-width: 860px) {
  .profile-container,
  .editor-panel,
  .list-panel,
  .admin-panel,
  .settings-panel,
  .login-panel,
  .missing-state {
    box-shadow: 0 16px 32px rgba(10, 22, 29, 0.2);
  }
}
