:root {
  --ega-forest: #062d23;
  --ega-green: #087752;
  --ega-mint: #dff8ec;
  --ega-paper: #f5f7f4;
  --ega-surface: #fff;
  --ega-ink: #10231c;
  --ega-muted: #64746d;
  --ega-line: #dce5df;
  --ega-danger: #b42318;
  --ega-warning: #a66508;
  --ega-radius-sm: 12px;
  --ega-radius: 17px;
  --ega-radius-lg: 22px;
  --ega-shadow: 0 16px 42px rgba(17, 53, 42, .08);
}

html {
  color-scheme: light;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
}
body {
  min-width: 280px;
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: hidden;
  background-color: var(--ega-paper);
  color: var(--ega-ink);
  font-family: Inter, Lato, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-rendering: optimizeLegibility;
}

button,
a,
input,
select,
textarea { touch-action: manipulation; }

button,
[role="button"],
.btn,
a { -webkit-tap-highlight-color: transparent; }

h1, h2, h3, h4, h5, h6 { color: var(--ega-ink); letter-spacing: -.015em; }
a { transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease; }

.container,
.custom-container { max-width: 1180px; }

.card,
.panel,
.profile-box,
.form-section,
.table-responsive,
.modal-content,
.offcanvas {
  border-color: var(--ega-line);
  border-radius: var(--ega-radius);
}

.card,
.panel,
.form-section,
.modal-content { box-shadow: var(--ega-shadow); }

.btn,
button,
input[type="submit"],
input[type="button"] {
  min-height: 44px;
  border-radius: var(--ega-radius-sm);
  font-weight: 800;
}

.btn-primary,
.btn-success,
.theme-btn,
button[type="submit"]:not(.btn-danger),
input[type="submit"]:not(.btn-danger) {
  border-color: var(--ega-green);
  background-color: var(--ega-green);
  color: #fff;
}

.btn-primary:hover,
.btn-success:hover,
.theme-btn:hover {
  border-color: var(--ega-forest);
  background-color: var(--ega-forest);
  color: #fff;
  transform: translateY(-1px);
}

.btn-secondary,
.btn-outline-primary {
  border-color: var(--ega-line);
  background: #fff;
  color: var(--ega-ink);
}

.form-control,
.form-select,
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea {
  min-height: 48px;
  border: 1px solid var(--ega-line);
  border-radius: var(--ega-radius-sm);
  background-color: #fff;
  color: var(--ega-ink);
}

textarea { min-height: 112px; }
.form-control:focus,
.form-select:focus,
input:focus,
select:focus,
textarea:focus {
  border-color: var(--ega-green);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(8, 119, 82, .13);
}

label,
.form-label { color: #29473d; font-weight: 800; }

.alert,
.messages li {
  border: 0;
  border-radius: var(--ega-radius-sm);
}
.alert-success { background: #dcf5e8; color: #075f42; }
.alert-warning { background: #fff1d6; color: #7b4d00; }
.alert-danger,
.alert-error { background: #fee7e7; color: var(--ega-danger); }

table { width: 100%; border-color: var(--ega-line); }
th {
  background: #eef5f1;
  color: #365148;
  font-size: 12px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
th, td { padding: 13px 14px; border-color: var(--ega-line); }

.badge,
.status-chip {
  border-radius: 999px;
  font-weight: 800;
}

img { max-width: 100%; }
svg, video, canvas, iframe { max-width: 100%; }
:focus-visible { outline: 3px solid rgba(8, 119, 82, .32); outline-offset: 2px; }

@media (pointer: coarse) {
  .btn,
  button,
  [role="button"],
  nav a { min-height: 44px; }
}

@media (max-width: 767.98px) {
  .container,
  .custom-container { width: 100%; padding-left: 16px; padding-right: 16px; }
  .card,
  .panel,
  .form-section { border-radius: 16px; }
  .table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  input,
  select,
  textarea { font-size: 16px !important; }
  .modal-dialog { margin: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)); }
  .fixed-bottom,
  .mobile-nav,
  .account-mobile-nav {
    padding-bottom: max(9px, env(safe-area-inset-bottom)) !important;
  }
}

@media (max-width: 380px) {
  .container,
  .custom-container { padding-left: 12px; padding-right: 12px; }
  h1 { font-size: clamp(24px, 8vw, 30px); }
  .btn { white-space: normal; }
}

@media (orientation: landscape) and (max-height: 520px) {
  .modal-dialog { margin-top: 8px; margin-bottom: 8px; }
  .modal-content { max-height: calc(100dvh - 16px); overflow-y: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

@media print {
  nav, .mobile-nav, .account-mobile-nav, .web-action-dock { display: none !important; }
  body { background: #fff; color: #000; }
  .card, .panel { box-shadow: none; break-inside: avoid; }
}
