:root {
  --inwind-navy: #0b1d3a;
  --inwind-blue: #1565fc;
  --inwind-turquoise: #00b3b3;
  --inwind-green: #54c97a;
  --inwind-gray: #8a94a6;
  --inwind-background: #f5f7fa;

  --surface-primary: #ffffff;
  --surface-secondary: #f5f7fa;
  --surface-tertiary: #eef2f6;

  --text-primary: #0b1d3a;
  --text-secondary: #536176;
  --text-muted: #8a94a6;

  --border-primary: #e2e7ed;
  --border-soft: #edf0f4;

  --color-primary: #1565fc;
  --color-primary-hover: #0e59e8;
  --color-primary-active: #0a47bd;
  --color-primary-soft: rgba(21, 101, 252, .08);
  --color-secondary: #00b3b3;
  --color-secondary-hover: #009a9a;
  --color-secondary-soft: rgba(0, 179, 179, .10);
  --color-success: #54c97a;
  --color-success-soft: rgba(84, 201, 122, .14);
  --color-warning: #f4a340;
  --color-warning-soft: rgba(244, 163, 64, .16);
  --color-danger: #e5484d;
  --color-danger-soft: rgba(229, 72, 77, .12);
  --color-info: #1565fc;
  --color-info-soft: rgba(21, 101, 252, .10);

  --primary: var(--color-primary);
  --primary-hover: var(--color-primary-hover);
  --primary-soft: var(--color-primary-soft);
  --secondary: var(--color-secondary);
  --secondary-hover: var(--color-secondary-hover);
  --secondary-strong: #007f7f;
  --success: var(--color-success);
  --warning: var(--color-warning);
  --danger: var(--color-danger);

  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-card: 12px;
  --radius-lg: 16px;

  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;

  --shadow-card: 0 2px 8px rgba(11, 29, 58, .04);
  --shadow-floating: 0 8px 24px rgba(11, 29, 58, .08);
  --shadow-modal: 0 24px 64px rgba(11, 29, 58, .20);
  --font-ui: "Poppins", "Inter", "Segoe UI", Arial, sans-serif;

  --portal-sidebar: 220px;
  --portal-header: 72px;
  --portal-navy: var(--inwind-navy);
  --portal-ink: var(--text-primary);
  --portal-muted: var(--text-secondary);
  --portal-bg: var(--surface-secondary);
  --portal-panel: var(--surface-primary);
  --portal-line: var(--border-primary);
  --portal-line-strong: #d7dee8;
  --portal-teal: var(--color-secondary);
  --portal-teal-dark: var(--color-secondary-hover);
  --portal-blue: var(--color-primary);
  --portal-amber: var(--color-warning);
  --portal-green: var(--color-success);
  --portal-red: var(--color-danger);
  --portal-shadow: var(--shadow-card);
  --portal-radius: var(--radius-card);
  --portal-font: var(--font-ui);
  --portal-display: var(--font-ui);

  --iw-ink: var(--text-primary);
  --iw-surface: var(--surface-secondary);
  --iw-teal: var(--color-secondary);
  --iw-amber: var(--color-warning);
  --iw-line: var(--border-primary);
}

html,
body {
  font-family: var(--font-ui);
  font-variant-numeric: tabular-nums lining-nums;
}

body[data-kurumsal-admin-tema] {
  color: var(--text-primary);
  background: var(--surface-secondary);
}

.iw-sidebar {
  color: var(--text-primary);
  background: var(--surface-primary);
  border-right: 1px solid var(--border-primary) !important;
  box-shadow: 5px 0 22px rgba(11, 29, 58, .035);
}

.iw-sidebar .kt-sidebar-header {
  min-height: 76px;
  border-bottom: 1px solid var(--border-primary);
}

.iw-brand {
  width: min(172px, calc(100% - 38px));
}

.iw-brand-logo {
  display: block;
  width: 100%;
  height: auto;
  max-height: 46px;
  object-fit: contain;
  object-position: left center;
}

.iw-brand-mark {
  color: #fff;
  border-color: rgba(0, 179, 179, .35);
  border-radius: var(--radius-md);
  background: rgba(0, 179, 179, .16);
  box-shadow: none;
}

.iw-brand-text,
.iw-sidebar .kt-menu-title {
  color: var(--text-primary);
}

.iw-brand-text small,
.iw-sidebar .kt-menu-heading,
.iw-sidebar .kt-menu-icon {
  color: var(--text-muted) !important;
}

.iw-menu-link {
  position: relative;
  min-height: 42px;
  color: var(--text-secondary);
  border-radius: var(--radius-md);
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}

.iw-menu-link::before {
  position: absolute;
  inset: 9px auto 9px 0;
  width: 3px;
  content: "";
  border-radius: 999px;
  background: transparent;
}

.iw-menu-link.active,
.iw-menu-link:hover,
.iw-menu-link:focus-visible {
  color: var(--text-primary);
  border-color: rgba(21, 101, 252, .14);
  background: linear-gradient(90deg, rgba(21, 101, 252, .10), rgba(0, 179, 179, .045));
}

.iw-menu-link.active::before {
  background: var(--color-secondary);
}

.iw-menu-link.active .kt-menu-icon,
.iw-menu-link:hover .kt-menu-icon {
  color: var(--color-primary) !important;
}

.iw-sidebar #sidebar_toggle {
  color: var(--text-secondary);
  border-color: var(--border-primary);
  background: var(--surface-primary);
}

.iw-sidebar #sidebar_toggle:hover,
.iw-sidebar #sidebar_toggle:focus-visible {
  color: var(--color-primary);
  border-color: rgba(21, 101, 252, .28);
  background: var(--color-primary-soft);
}

.kt-header {
  min-height: 68px;
  background: var(--surface-primary) !important;
  border-bottom: 1px solid var(--border-primary);
  box-shadow: 0 1px 0 rgba(11, 29, 58, .02);
}

.kt-card,
.iw-stat-card {
  border-color: rgba(11, 29, 58, .075);
  border-radius: var(--radius-card);
  background: var(--surface-primary);
  box-shadow: var(--shadow-card);
}

.kt-card-header,
.kt-card-footer {
  border-color: var(--border-primary);
}

.kt-card-title {
  color: var(--text-primary);
  font-size: 15px;
  font-weight: 650;
  letter-spacing: 0;
}

.kt-btn {
  border-radius: var(--radius-md);
  font-family: var(--font-ui);
  font-weight: 600;
  letter-spacing: 0;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.kt-btn-primary {
  color: #fff;
  border-color: var(--color-primary);
  background: var(--color-primary);
  box-shadow: none;
}

.kt-btn-primary:hover,
.kt-btn-primary:focus-visible {
  color: #fff;
  border-color: var(--color-primary-hover);
  background: var(--color-primary-hover);
  box-shadow: 0 6px 14px rgba(21, 101, 252, .14);
}

.kt-btn-outline,
.kt-btn-ghost {
  color: var(--text-primary);
  border-color: var(--border-primary);
}

.kt-btn-outline:hover,
.kt-btn-outline:focus-visible,
.kt-btn-ghost:hover,
.kt-btn-ghost:focus-visible {
  color: var(--color-primary);
  border-color: rgba(21, 101, 252, .30);
  background: var(--color-primary-soft);
}

.kt-input,
.kt-select {
  min-height: 40px;
  color: var(--text-primary);
  border-color: #dce2ea;
  border-radius: var(--radius-md);
  background: var(--surface-primary);
  font-family: var(--font-ui);
  letter-spacing: 0;
}

.kt-input::placeholder,
.kt-select::placeholder {
  color: var(--text-muted);
}

.kt-input:focus,
.kt-input:focus-visible,
.kt-select:focus,
.kt-select:focus-visible {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(21, 101, 252, .12);
}

.kt-table {
  color: var(--text-primary);
  font-variant-numeric: tabular-nums lining-nums;
}

.kt-table thead th {
  color: var(--text-secondary);
  background: #f4f7fb;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.kt-table tbody td {
  color: var(--text-primary);
  border-color: var(--border-soft);
}

.kt-table tbody tr:hover td {
  background: rgba(21, 101, 252, .035);
}

.kt-badge {
  border-radius: var(--radius-sm);
  font-family: var(--font-ui);
  font-weight: 600;
  letter-spacing: 0;
}

.kt-badge-outline {
  color: var(--text-secondary);
  border-color: var(--border-primary);
  background: var(--surface-primary);
}

.iw-title,
.iw-stat-value {
  color: var(--text-primary);
  letter-spacing: 0;
}

.iw-subtitle,
.iw-empty {
  color: var(--text-secondary);
}

.iw-signal-dot {
  background: var(--color-success);
  box-shadow: 0 0 0 4px var(--color-success-soft);
}

.iw-alert-danger {
  color: #a12b2f;
  border-color: rgba(229, 72, 77, .34);
  background: var(--color-danger-soft);
}

.iw-alert-info {
  color: var(--text-primary);
  border-color: rgba(21, 101, 252, .20);
  background: var(--color-info-soft);
}

body.portal-shell {
  color: var(--text-primary);
  background: var(--surface-secondary);
}

.portal-frame {
  background: var(--surface-secondary);
}

.portal-main {
  width: 100%;
  max-width: none;
  padding: 24px;
}

.portal-skip-link:focus {
  background: var(--color-primary);
  color: #fff;
  outline: 3px solid rgba(21, 101, 252, .22);
}

.portal-sidebar {
  background: var(--surface-primary);
  border-right: 1px solid var(--border-primary);
  box-shadow: 5px 0 22px rgba(11, 29, 58, .035);
}

.portal-brand {
  min-height: 80px;
  padding-inline: 18px 10px;
  border-bottom: 1px solid var(--border-primary);
  background: var(--surface-primary);
}

.portal-brand__lockup,
.portal-brand__name {
  color: var(--text-primary);
}

.portal-brand__lockup {
  width: min(176px, calc(100% - 38px));
}

.portal-brand__logo {
  display: block;
  width: 100%;
  height: auto;
  max-height: 48px;
  object-fit: contain;
  object-position: left center;
}

.portal-brand__mark {
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .14);
}

.portal-brand__mark span {
  background: var(--inwind-turquoise);
}

.portal-nav {
  gap: 6px;
  padding-inline: 12px;
}

.portal-nav__link {
  min-height: 42px;
  position: relative;
  color: var(--text-secondary);
  border-radius: var(--radius-md);
  background: transparent;
  font-size: 13px;
  font-weight: 500;
}

.portal-nav__link i {
  color: var(--text-muted);
}

.portal-nav__link:hover,
.portal-nav__link:focus-visible {
  color: var(--text-primary);
  background: var(--color-primary-soft);
}

.portal-nav__link.is-active {
  color: var(--text-primary);
  background: linear-gradient(90deg, rgba(21, 101, 252, .10), rgba(0, 179, 179, .045));
  box-shadow: inset 3px 0 0 var(--color-primary);
}

.portal-nav__link.is-active i {
  color: var(--color-primary);
}

.portal-nav__link.is-disabled {
  color: #a7b0bf;
}

.portal-sidebar__foot {
  margin: 12px;
  color: var(--text-secondary);
  border-color: var(--border-primary);
  background: #f7f9fc;
  box-shadow: none;
}

.portal-sidebar__foot strong {
  color: var(--text-primary);
}

.portal-sidebar__foot > span {
  color: var(--text-muted);
}

.portal-system-chip {
  color: var(--text-secondary) !important;
  border-color: var(--border-primary);
  background: var(--surface-primary);
}

.portal-icon-btn.portal-sidebar__close {
  color: var(--text-secondary);
  border-color: var(--border-primary);
  background: var(--surface-primary);
}

.customer-login__brand-logo {
  display: block;
  width: clamp(180px, 18vw, 238px);
  height: auto;
  object-fit: contain;
}

.iw-login-brand-surface {
  display: inline-flex;
  align-items: center;
  width: min(310px, 78vw);
  padding: 13px 18px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: var(--radius-card);
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 14px 34px rgba(5, 18, 40, .16);
}

.iw-login-brand-logo {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.portal-topbar {
  min-height: var(--portal-header);
  background: var(--surface-primary);
  border-bottom: 1px solid var(--border-primary);
  box-shadow: 0 1px 0 rgba(11, 29, 58, .02);
}

.portal-topbar__left h1 {
  color: var(--text-primary);
  font-size: clamp(24px, 2vw, 30px);
  font-weight: 650;
  letter-spacing: 0;
}

.portal-topbar__left p,
.portal-clock,
.portal-user,
.portal-select {
  color: var(--text-secondary);
}

.portal-clock,
.portal-user,
.portal-select,
.portal-icon-btn {
  border-color: var(--border-primary);
  border-radius: var(--radius-md);
  background: var(--surface-primary);
  box-shadow: none;
}

.portal-icon-btn:hover,
.portal-icon-btn:focus-visible {
  color: var(--color-primary);
  border-color: rgba(21, 101, 252, .28);
  background: var(--color-primary-soft);
}

.portal-card,
.portal-kpi,
.portal-panel,
.portal-crud-summary article,
.portal-crud-table,
.portal-table-wrap,
.portal-empty,
.portal-turbine,
.portal-detail,
.portal-map-card,
.portal-map-inspector,
.perf-panel,
.perf-kpi,
.intel-panel,
.intel-kpi {
  border: 1px solid rgba(11, 29, 58, .075);
  border-radius: var(--radius-card);
  background: var(--surface-primary);
  box-shadow: var(--shadow-card);
}

.portal-card:hover,
.portal-turbine:hover,
.perf-panel:hover,
.intel-panel:hover {
  box-shadow: 0 4px 16px rgba(11, 29, 58, .055);
}

.portal-kpi__value,
.portal-crud-summary strong,
.portal-turbine__power strong,
.perf-kpi strong,
.intel-kpi strong {
  color: var(--text-primary);
  font-weight: 700;
  letter-spacing: 0;
}

.portal-section-kicker,
.portal-kicker,
.perf-kicker,
.intel-eyebrow {
  color: var(--text-secondary);
  letter-spacing: .02em;
}

.portal-action-btn,
.perf-btn,
.intel-button,
.customer-login__button {
  min-height: 40px;
  color: #fff;
  border: 1px solid var(--color-primary);
  border-radius: var(--radius-md);
  background: var(--color-primary);
  box-shadow: none;
  font-weight: 600;
}

.portal-action-btn:hover,
.perf-btn:hover,
.intel-button:hover,
.customer-login__button:hover {
  color: #fff;
  border-color: var(--color-primary-hover);
  background: var(--color-primary-hover);
  box-shadow: 0 6px 14px rgba(21, 101, 252, .14);
  transform: translateY(-1px);
}

.portal-action-btn--secondary,
.portal-row-action,
.perf-tag,
.intel-panel__tag {
  color: var(--text-primary);
  border-color: var(--border-primary);
  background: var(--surface-primary);
}

.portal-action-btn--secondary:hover,
.portal-row-action:hover {
  color: var(--color-primary);
  border-color: rgba(21, 101, 252, .30);
  background: var(--color-primary-soft);
}

.portal-input,
.portal-select,
.portal-crud-search,
.portal-crud-select,
.portal-crud-field input,
.portal-crud-field select,
.perf-input,
.intel-control,
.customer-login__control {
  border-color: #dce2ea;
  border-radius: var(--radius-md);
  background: var(--surface-primary);
}

.portal-input:focus,
.portal-select:focus,
.portal-crud-search:focus-within,
.portal-crud-select:focus-within,
.portal-crud-field input:focus,
.portal-crud-field select:focus,
.perf-input:focus,
.intel-control:focus,
.customer-login__control:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(21, 101, 252, .12);
}

.portal-status,
.perf-state,
.intel-state {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border-radius: var(--radius-sm);
  padding: 3px 8px;
  font-weight: 600;
}

.portal-status--online,
.perf-state.is-producing,
.intel-state.is-producing {
  color: #237a41;
  border-color: rgba(84, 201, 122, .35);
  background: var(--color-success-soft);
}

.portal-status--idle,
.perf-state.is-idle,
.intel-state.is-idle {
  color: #9a6416;
  border-color: rgba(244, 163, 64, .38);
  background: var(--color-warning-soft);
}

.portal-status--stale,
.portal-status--offline,
.portal-status--unknown,
.perf-state.is-offline,
.intel-state.is-offline {
  color: #637083;
  border-color: rgba(138, 148, 166, .35);
  background: rgba(138, 148, 166, .12);
}

.portal-alert--danger,
.portal-crud-error,
.portal-form-error {
  color: #a12b2f;
  border-color: rgba(229, 72, 77, .34);
  background: var(--color-danger-soft);
}

.portal-alert--info,
.portal-crud-loading,
.perf-notice,
.intel-notice {
  color: var(--text-primary);
  border-color: rgba(21, 101, 252, .20);
  background: var(--color-info-soft);
}

.portal-table th,
.portal-crud-table__grid th,
.perf-table-wrap th,
.intel-table-wrap th {
  color: var(--text-secondary);
  background: #f4f7fb;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.portal-table td,
.portal-crud-table__grid td,
.perf-table-wrap td,
.intel-table-wrap td {
  color: var(--text-primary);
  border-color: var(--border-soft);
}

.portal-table tr:hover td,
.portal-crud-table__grid tbody tr:hover td,
.perf-table-wrap tbody tr:hover td,
.intel-table-wrap tbody tr:hover td {
  background: rgba(21, 101, 252, .035);
}

.portal-crud-dialog,
.portal-dialog {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-modal);
}

.portal-crud-dialog__backdrop,
.portal-dialog__backdrop {
  background: rgba(11, 29, 58, .35);
}

.portal-crud-dialog__header,
.portal-dialog__header,
.portal-crud-dialog__footer,
.portal-dialog__footer {
  background: var(--surface-primary);
  border-color: var(--border-primary);
}

.portal-empty,
.portal-crud-empty {
  color: var(--text-secondary);
}

.portal-empty h3,
.portal-crud-empty h3 {
  color: var(--text-primary);
}

.portal-crud-loading span,
.portal-status::before,
.perf-state i,
.intel-state i {
  background: currentColor;
}

.portal-flow-dot {
  background: var(--color-success);
}

@media (max-width: 1199px) {
  .portal-main {
    padding: 20px;
  }
}

@media (max-width: 768px) {
  :root {
    --portal-sidebar: min(86vw, 280px);
  }

  .portal-main {
    padding: 16px;
  }

  .portal-topbar {
    min-height: auto;
  }
}

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