:root {
  --ink: #163247;
  --blue: #4f789f;
  --muted: #5f7683;
  --line: #d9e6eb;
  --soft-blue: #f1f8fc;
  --soft-pink: #fff3f7;
  --rose: #c3839e;
}

.portal-page { background: #fffdfc; }
.portal-page a:focus-visible,
.portal-page button:focus-visible,
.portal-page input:focus-visible,
.portal-page select:focus-visible,
.portal-page textarea:focus-visible {
  outline: 3px solid #5a8fb8;
  outline-offset: 3px;
}

.auth-layout { padding-top: 26px; min-height: auto; }
.client-dashboard, .admin-dashboard { padding-top: 30px; }
.auth-card, .dashboard-card, .customer-actions a, .approval-banner, .admin-metrics div {
  border-radius: 20px;
}
.auth-card, .dashboard-card { box-shadow: 0 18px 42px rgba(22,50,71,.07); }
.portal-button { border-radius: 11px; min-height: 46px; }
.portal-button-primary { background: var(--rose); }
.auth-tabs button { min-height: 52px; }
.text-button { min-height: 44px; }
.portal-inline-nav a { min-height: 44px; display: inline-flex; align-items: center; }

.dashboard-top { align-items: flex-end; }
.dashboard-actions { align-items: flex-end; gap: 12px; }
.dashboard-actions .portal-inline-nav { justify-content: flex-end; }
.approval-banner[data-status="active"] { background: #edf8f2; border-color: #b9dfcb; }

.customer-actions { gap: 18px; }
.customer-actions a { border: 1px solid var(--line); box-shadow: 0 12px 30px rgba(22,50,71,.05); }
.customer-actions a:nth-child(2n) { background: var(--soft-pink); }
.customer-actions a:nth-child(2n+1) { background: var(--soft-blue); }
.customer-actions a > span {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: #fff;
  color: var(--blue);
  font: 800 1.15rem Manrope, sans-serif;
}

.portal-order-form fieldset { display: grid; gap: 17px; }
.portal-order-form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.portal-order-form input, .portal-order-form select, .portal-order-form textarea { min-height: 44px; }

.portal-footer { background: var(--soft-pink); border-top: 1px solid #efdfe6; }
.portal-footer img { width: 118px; height: 124px; object-fit: cover; }

.portal-toast {
  position: fixed;
  z-index: 100;
  left: 50%;
  bottom: 24px;
  transform: translate(-50%, 130px);
  max-width: min(620px, calc(100vw - 30px));
  padding: 15px 22px;
  border-radius: 12px;
  background: var(--ink);
  color: #fff;
  box-shadow: 0 18px 40px rgba(22,50,71,.25);
  transition: transform .25s ease;
  text-align: center;
}
.portal-toast.error { background: #9d4039; }
.portal-toast.show { transform: translate(-50%, 0); }

.portal-header { min-height: 96px; background: rgba(255,255,255,.97); }
.portal-header .portal-brand { width: 190px; height: 76px; overflow: hidden; }
.portal-header .portal-brand img { width: 190px; height: 82px; object-fit: contain; transform: none; }
.customer-status { display: inline-flex !important; width: fit-content; margin-top: 7px; padding: 4px 9px; border-radius: 999px; font-weight: 700; }
.customer-status.active { background: #e5f5ec; color: #2c7050 !important; }
.customer-status.inactive { background: #ffebe9; color: #9b3d36 !important; }

@media (max-width: 900px) {
  .auth-layout { padding-top: 22px; }
  .client-dashboard, .admin-dashboard { padding-top: 24px; }
  .dashboard-top { align-items: flex-start; }
  .dashboard-actions { align-items: flex-start; width: 100%; }
  .dashboard-actions .portal-inline-nav { justify-content: flex-start; }
}

@media (max-width: 600px) {
  .auth-layout { padding-top: 18px; }
  .client-dashboard, .admin-dashboard { padding-top: 20px; }
  .auth-card, .dashboard-card { border-radius: 16px; }
  .portal-order-form .form-row { grid-template-columns: 1fr; gap: 17px; }
  .portal-footer img { width: 100px; height: 105px; }
}
