/* DMI Design System — foundations and compatibility layer
   This sheet intentionally loads last. It centralizes the visual language while
   legacy module sheets are migrated progressively. */
:root {
  --dmi-primary: #10345f;
  --dmi-primary-hover: #174a80;
  --dmi-primary-active: #092753;
  --dmi-primary-soft: #eaf1f8;
  --dmi-secondary: #d4c085;
  --dmi-secondary-hover: #c1aa67;
  --dmi-accent: #2779b8;
  --dmi-bg: #f5f7fa;
  --dmi-surface: #ffffff;
  --dmi-surface-raised: #ffffff;
  --dmi-border: #dce4ed;
  --dmi-border-strong: #b8c6d5;
  --dmi-text: #111827;
  --dmi-text-secondary: #344054;
  --dmi-text-muted: #536273;
  --dmi-success: #198754;
  --dmi-success-soft: #eaf7ef;
  --dmi-warning: #a96900;
  --dmi-warning-soft: #fff5df;
  --dmi-error: #c53b3b;
  --dmi-error-soft: #fceced;
  --dmi-info: #2779b8;
  --dmi-info-soft: #e9f3fb;
  --dmi-focus: #2779b8;
  --dmi-overlay: rgba(9, 39, 83, .56);
  --dmi-skeleton: #e9eef3;
  --dmi-radius-sm: 8px;
  --dmi-radius-md: 12px;
  --dmi-radius-lg: 16px;
  --dmi-radius-pill: 999px;
  --dmi-space-1: 4px;
  --dmi-space-2: 8px;
  --dmi-space-3: 12px;
  --dmi-space-4: 16px;
  --dmi-space-5: 20px;
  --dmi-space-6: 24px;
  --dmi-space-8: 32px;
  --dmi-space-10: 40px;
  --dmi-shadow-xs: 0 1px 2px rgba(16, 52, 95, .06);
  --dmi-shadow-sm: 0 3px 10px rgba(16, 52, 95, .08);
  --dmi-shadow-md: 0 10px 28px rgba(16, 52, 95, .12);
  --dmi-duration-fast: 140ms;
  --dmi-duration-base: 220ms;
  --dmi-ease: cubic-bezier(.2, .75, .25, 1);
  --dmi-z-header: 200;
  --dmi-z-overlay: 500;
  --dmi-z-modal: 600;
}

html { background: var(--dmi-bg); }
body { background: var(--dmi-bg); color: var(--dmi-text); font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
button, input, select, textarea { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }
:where(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--dmi-focus) 38%, transparent) !important;
  outline-offset: 2px;
}

/* Application shell */
.dk-top, .header { background: var(--dmi-primary) !important; box-shadow: 0 2px 14px rgba(9, 39, 83, .18) !important; }
.main { max-width: 1680px; }
.page { animation: dmi-page-enter var(--dmi-duration-base) var(--dmi-ease); }
@keyframes dmi-page-enter { from { opacity: .82; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* Official action and form primitives, mapped onto the current component names. */
.dbtn, .dash-novo, .save-btn, .sp-save, .adm-adbtn, .plan-btn, .add-btn {
  min-height: 42px; border-radius: var(--dmi-radius-sm) !important; font-weight: 700 !important;
  transition: transform var(--dmi-duration-fast) var(--dmi-ease), box-shadow var(--dmi-duration-fast) var(--dmi-ease), background var(--dmi-duration-fast) var(--dmi-ease) !important;
}
.dbtn.pri, .dash-novo, .save-btn, .sp-save, .adm-adbtn, .plan-btn:not(.gold), .add-btn {
  background: var(--dmi-primary) !important; color: #fff !important; border-color: var(--dmi-primary) !important;
}
.dbtn.pri:hover, .dash-novo:hover, .save-btn:hover, .sp-save:hover, .adm-adbtn:hover, .plan-btn:not(.gold):hover, .add-btn:hover {
  background: var(--dmi-primary-hover) !important; box-shadow: var(--dmi-shadow-sm) !important; transform: translateY(-1px);
}
.plan-btn.gold { background: var(--dmi-secondary) !important; color: var(--dmi-primary-active) !important; }
.dbtn:active, .dash-novo:active, .save-btn:active, .sp-save:active, .adm-adbtn:active, .plan-btn:active, .add-btn:active { transform: translateY(0) scale(.985); }
.dbtn:disabled, button:disabled { opacity: .55; cursor: not-allowed; transform: none !important; box-shadow: none !important; }

.fi, .sp-inp, .sp-field input, .sp-field select, .sp-field textarea, input:not([type=checkbox]):not([type=radio]), select, textarea {
  border-color: var(--dmi-border) !important; border-radius: var(--dmi-radius-sm) !important; color: var(--dmi-text); background: var(--dmi-surface); min-height: 42px;
  transition: border-color var(--dmi-duration-fast) var(--dmi-ease), box-shadow var(--dmi-duration-fast) var(--dmi-ease) !important;
}
.fi:focus, .sp-inp:focus, input:focus, select:focus, textarea:focus { border-color: var(--dmi-focus) !important; box-shadow: 0 0 0 3px rgba(39, 121, 184, .14) !important; outline: 0; }

/* Reusable surfaces and information hierarchy */
.agenda-card, .crm-dia, .metric-card, .plan, .modal, .adm-kpi, .rel-period, .oa-card, .la-card, .empty-state {
  border-color: var(--dmi-border) !important; box-shadow: var(--dmi-shadow-xs) !important; border-radius: var(--dmi-radius-md) !important;
}
.section-title, .subpage-title, .rel-title { color: var(--dmi-primary) !important; letter-spacing: -.02em; }
.dk-nav-item.active, .nav-item.active { color: var(--dmi-secondary) !important; }
.dk-nav-item:hover { background: rgba(255, 255, 255, .08) !important; }
.dk-nav-badge, .nav-badge, .sino-badge { background: var(--dmi-error) !important; }

/* Tablet is a deliberate intermediate layout: preserve density without the desktop sidebar. */
@media (min-width: 768px) and (max-width: 1199px) {
  .main { padding-left: var(--dmi-space-6); padding-right: var(--dmi-space-6); }
  .metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .page { max-width: 100%; }
}

/* Mobile prioritizes touch, readable controls and bottom safe area. */
@media (max-width: 767px) {
  body { font-size: 14px; }
  .main { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
  .page { padding-left: var(--dmi-space-4); padding-right: var(--dmi-space-4); }
  .metrics-grid { grid-template-columns: 1fr 1fr !important; gap: var(--dmi-space-3) !important; }
  .dbtn, .dash-novo, .save-btn, .sp-save, .adm-adbtn, .plan-btn, .add-btn { min-height: 44px; }
  .modal-bg .modal, .modal { border-radius: var(--dmi-radius-lg) var(--dmi-radius-lg) 0 0 !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 1ms !important; }
}
