/* assets/css/design-system-core.css
   Global design baseline for consistent 100-target UI quality. */

@import url("./tokens.css");

:root {
  /* semantic aliases reserved for design-system-level overrides */
}

html,
body {
  font-family: var(--cizgi-font-sans);
  font-size: var(--cizgi-type-md);
  line-height: var(--cizgi-line-normal);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--cizgi-font-heading);
  letter-spacing: -0.01em;
  line-height: var(--cizgi-line-tight);
}

h1 { font-size: clamp(28px, 3.8vw, 42px); }
h2 { font-size: clamp(24px, 3.2vw, 34px); }
h3 { font-size: clamp(20px, 2.6vw, 28px); }
h4 { font-size: clamp(18px, 2.2vw, 24px); }
h5 { font-size: clamp(16px, 1.8vw, 20px); }
h6 { font-size: var(--cizgi-type-md); }

p,
li,
td,
th,
label,
small {
  line-height: var(--cizgi-line-normal);
}

.cizgi-text-mono {
  font-family: var(--cizgi-font-mono);
}

.cizgi-prose {
  max-width: 72ch;
}

:where(.btn, .cizgi-btn) {
  border-radius: var(--cizgi-radius-2);
  transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
}

:where(.btn, .cizgi-btn):hover {
  transform: translateY(-1px);
}

:where(input, select, textarea, .form-control, .custom-select) {
  border-radius: var(--cizgi-radius-1);
  min-height: 44px;
}

:where(.card, .cizgi-card) {
  border-radius: var(--cizgi-radius-3);
  box-shadow: var(--cizgi-shadow-1);
}

:where(table, .table) th {
  font-weight: 700;
}

:where(table, .table) td,
:where(table, .table) th {
  padding-top: 12px;
  padding-bottom: 12px;
}

@media (max-width: 767.98px) {
  :where(input, select, textarea, .form-control, .custom-select) {
    min-height: 42px;
  }
}

/* ============================================================
   100 hedef: durum bilesenleri + ic ice navigasyon + yardimci
   (prefers-reduced-motion genel kurali variables.css icinde)
   ============================================================ */

:where(main, [role="main"]) :where(h2, h3, [id]):not(.no-scroll-margin) {
  scroll-margin-top: calc(var(--nav-total-offset, 72px) + 12px);
}

.cizgi-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.cizgi-empty-state {
  text-align: center;
  padding: var(--cizgi-space-5) var(--cizgi-space-3);
  border-radius: var(--cizgi-radius-3);
  border: 1px dashed var(--cizgi-color-border-soft, rgba(148, 163, 184, 0.35));
  background: rgba(255, 255, 255, 0.04);
  color: var(--cizgi-color-text-primary, var(--text, inherit));
  max-width: 52ch;
  margin-left: auto;
  margin-right: auto;
}

.cizgi-empty-state__title {
  display: block;
  font-weight: 800;
  font-size: var(--cizgi-type-lg);
  margin-bottom: var(--cizgi-space-2);
  color: var(--cizgi-color-text-primary, inherit);
}

.cizgi-empty-state__desc {
  margin: 0 0 var(--cizgi-space-3);
  color: var(--cizgi-color-text-secondary, var(--muted, inherit));
  line-height: var(--cizgi-line-loose);
}

.cizgi-loading-state {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--cizgi-space-2);
  padding: var(--cizgi-space-4);
  color: var(--cizgi-color-text-secondary, var(--muted, inherit));
  font-weight: 600;
}

.cizgi-loading-state__dots {
  display: inline-flex;
  gap: 6px;
  align-items: center;
}

.cizgi-loading-state__dots span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.35;
  animation: cizgi-ds-dot 0.9s ease-in-out infinite;
}

.cizgi-loading-state__dots span:nth-child(2) {
  animation-delay: 0.15s;
}

.cizgi-loading-state__dots span:nth-child(3) {
  animation-delay: 0.3s;
}

@keyframes cizgi-ds-dot {
  0%,
  80%,
  100% {
    opacity: 0.3;
    transform: scale(1);
  }
  40% {
    opacity: 1;
    transform: scale(1.2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cizgi-loading-state__dots span {
    animation: none !important;
    opacity: 0.55;
  }
}

.cizgi-error-state {
  border-left: 4px solid var(--cizgi-color-brand-secondary, #2563eb);
  padding: var(--cizgi-space-3) var(--cizgi-space-4);
  border-radius: var(--cizgi-radius-2);
  background: rgba(56, 189, 248, 0.12);
  color: var(--cizgi-color-text-primary, var(--text, inherit));
}

.cizgi-error-state__title {
  font-weight: 800;
  margin: 0 0 var(--cizgi-space-1);
}

.cizgi-error-state__desc {
  margin: 0;
  color: var(--cizgi-color-text-secondary, var(--muted, inherit));
  line-height: var(--cizgi-line-loose);
}

