/* Odin PDKS görsel teması — Stitch "Civic Horizon" tasarım sisteminin Bootstrap 5.3 üzerine uyarlaması.
   Yalnızca görünümü değiştirir; davranış ve yetki kuralları sunucudadır. Satır içi stil kullanılmaz (CSP).
   Yazı tipi yerelden sunulur (kurum ağı dışına istek çıkmaz). */

@font-face {
    font-family: "Inter";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../lib/inter/inter-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Inter";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../lib/inter/inter-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---- Tasarım belirteçleri: açık tema ---- */
:root,
[data-bs-theme="light"] {
    --odin-canvas: #f8fafc;
    --odin-surface: #ffffff;
    --odin-surface-recessed: #f1f5f9;
    --odin-line: #e2e8f0;
    --odin-line-strong: #cbd5e1;
    --odin-text: #0f172a;
    --odin-text-muted: #64748b;
    --odin-brand: #1e3a8a;
    --odin-brand-hover: #1e293b;
    --odin-brand-active: #0f172a;
    --odin-brand-soft: #dce1ff;
    --odin-focus: #2563eb;
    --odin-shadow-1: 0 1px 2px 0 rgba(15, 23, 42, 0.05);
    --odin-shadow-2: 0 4px 6px -1px rgba(15, 23, 42, 0.08), 0 2px 4px -2px rgba(15, 23, 42, 0.05);
    --odin-shadow-3: 0 20px 25px -5px rgba(15, 23, 42, 0.12), 0 8px 10px -6px rgba(15, 23, 42, 0.08);

    /* Durum çiftleri: Zamanında/Normal, Geç/Erken, Eksik/Devamsız, İzinli/Görevli, Tatil. */
    --odin-ok-fg: #15803d;
    --odin-ok-bg: #dcfce7;
    --odin-ok-line: #bbf7d0;
    --odin-late-fg: #b45309;
    --odin-late-bg: #fef3c7;
    --odin-late-line: #fde68a;
    --odin-miss-fg: #dc2626;
    --odin-miss-bg: #fee2e2;
    --odin-miss-line: #fecaca;
    --odin-miss-row: #fef2f2;
    --odin-leave-fg: #0369a1;
    --odin-leave-bg: #e0f2fe;
    --odin-leave-line: #bae6fd;
    --odin-rest-fg: #475569;
    --odin-rest-bg: #f1f5f9;
    --odin-rest-line: #e2e8f0;

    /* Bootstrap değişkenleri */
    --bs-font-sans-serif: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
    --bs-body-font-size: 0.875rem;
    --bs-body-line-height: 1.43;
    --bs-body-color: var(--odin-text);
    --bs-body-color-rgb: 15, 23, 42;
    --bs-body-bg: var(--odin-canvas);
    --bs-body-bg-rgb: 248, 250, 252;
    --bs-secondary-color: var(--odin-text-muted);
    --bs-secondary-bg: var(--odin-surface-recessed);
    --bs-tertiary-bg: #f1f5f9;
    --bs-tertiary-bg-rgb: 241, 245, 249;
    --bs-border-color: var(--odin-line);
    --bs-border-color-translucent: rgba(15, 23, 42, 0.08);
    --bs-border-radius: 0.25rem;
    --bs-border-radius-sm: 0.25rem;
    --bs-border-radius-lg: 0.5rem;
    --bs-border-radius-xl: 0.75rem;
    --bs-primary: #1e3a8a;
    --bs-primary-rgb: 30, 58, 138;
    --bs-primary-text-emphasis: #1e3a8a;
    --bs-primary-bg-subtle: #dce1ff;
    --bs-primary-border-subtle: #b6c4ff;
    --bs-success: #16a34a;
    --bs-success-rgb: 22, 163, 74;
    --bs-success-text-emphasis: #15803d;
    --bs-success-bg-subtle: #dcfce7;
    --bs-success-border-subtle: #bbf7d0;
    --bs-warning: #d97706;
    --bs-warning-rgb: 217, 119, 6;
    --bs-warning-text-emphasis: #b45309;
    --bs-warning-bg-subtle: #fef3c7;
    --bs-warning-border-subtle: #fde68a;
    --bs-danger: #dc2626;
    --bs-danger-rgb: 220, 38, 38;
    --bs-danger-text-emphasis: #b91c1c;
    --bs-danger-bg-subtle: #fee2e2;
    --bs-danger-border-subtle: #fecaca;
    --bs-info: #0284c7;
    --bs-info-rgb: 2, 132, 199;
    --bs-info-text-emphasis: #0369a1;
    --bs-info-bg-subtle: #e0f2fe;
    --bs-info-border-subtle: #bae6fd;
    --bs-secondary-text-emphasis: #475569;
    --bs-secondary-bg-subtle: #f1f5f9;
    --bs-secondary-border-subtle: #e2e8f0;
    --bs-light-bg-subtle: #f8fafc;
    --bs-link-color: #1d4ed8;
    --bs-link-color-rgb: 29, 78, 216;
    --bs-link-hover-color: #1e3a8a;
    --bs-link-hover-color-rgb: 30, 58, 138;
    --bs-focus-ring-color: rgba(37, 99, 235, 0.35);
}

/* ---- Tasarım belirteçleri: koyu tema ---- */
[data-bs-theme="dark"] {
    --odin-canvas: #0b1220;
    --odin-surface: #111a2e;
    --odin-surface-recessed: #0f1729;
    --odin-line: #1f2a44;
    --odin-line-strong: #2c3a5a;
    --odin-text: #e2e8f0;
    --odin-text-muted: #94a3b8;
    --odin-brand: #3b5bdb;
    --odin-brand-hover: #4c6ef5;
    --odin-brand-active: #364fc7;
    --odin-brand-soft: #1e2a52;
    --odin-focus: #60a5fa;
    --odin-shadow-1: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
    --odin-shadow-2: 0 4px 10px -2px rgba(0, 0, 0, 0.45);
    --odin-shadow-3: 0 20px 25px -5px rgba(0, 0, 0, 0.55);

    --odin-ok-fg: #4ade80;
    --odin-ok-bg: rgba(22, 163, 74, 0.16);
    --odin-ok-line: rgba(74, 222, 128, 0.3);
    --odin-late-fg: #fbbf24;
    --odin-late-bg: rgba(217, 119, 6, 0.16);
    --odin-late-line: rgba(251, 191, 36, 0.3);
    --odin-miss-fg: #f87171;
    --odin-miss-bg: rgba(220, 38, 38, 0.16);
    --odin-miss-line: rgba(248, 113, 113, 0.3);
    --odin-miss-row: rgba(220, 38, 38, 0.08);
    --odin-leave-fg: #38bdf8;
    --odin-leave-bg: rgba(2, 132, 199, 0.16);
    --odin-leave-line: rgba(56, 189, 248, 0.3);
    --odin-rest-fg: #94a3b8;
    --odin-rest-bg: rgba(148, 163, 184, 0.12);
    --odin-rest-line: rgba(148, 163, 184, 0.25);

    --bs-body-color: var(--odin-text);
    --bs-body-color-rgb: 226, 232, 240;
    --bs-body-bg: var(--odin-canvas);
    --bs-body-bg-rgb: 11, 18, 32;
    --bs-secondary-color: var(--odin-text-muted);
    --bs-secondary-bg: #16213a;
    --bs-tertiary-bg: #0f1729;
    --bs-tertiary-bg-rgb: 15, 23, 41;
    --bs-border-color: var(--odin-line);
    --bs-border-color-translucent: rgba(226, 232, 240, 0.1);
    --bs-primary: #6d8cf5;
    --bs-primary-rgb: 109, 140, 245;
    --bs-primary-text-emphasis: #b6c4ff;
    --bs-primary-bg-subtle: #1e2a52;
    --bs-primary-border-subtle: #2f3f78;
    --bs-success-text-emphasis: #4ade80;
    --bs-success-bg-subtle: rgba(22, 163, 74, 0.16);
    --bs-success-border-subtle: rgba(74, 222, 128, 0.3);
    --bs-warning-text-emphasis: #fbbf24;
    --bs-warning-bg-subtle: rgba(217, 119, 6, 0.16);
    --bs-warning-border-subtle: rgba(251, 191, 36, 0.3);
    --bs-danger-text-emphasis: #f87171;
    --bs-danger-bg-subtle: rgba(220, 38, 38, 0.16);
    --bs-danger-border-subtle: rgba(248, 113, 113, 0.3);
    --bs-info-text-emphasis: #38bdf8;
    --bs-info-bg-subtle: rgba(2, 132, 199, 0.16);
    --bs-info-border-subtle: rgba(56, 189, 248, 0.3);
    --bs-secondary-text-emphasis: #cbd5e1;
    --bs-secondary-bg-subtle: rgba(148, 163, 184, 0.12);
    --bs-secondary-border-subtle: rgba(148, 163, 184, 0.25);
    --bs-light-bg-subtle: #16213a;
    --bs-link-color: #93a9ff;
    --bs-link-color-rgb: 147, 169, 255;
    --bs-link-hover-color: #b6c4ff;
    --bs-link-hover-color-rgb: 182, 196, 255;
    --bs-focus-ring-color: rgba(96, 165, 250, 0.4);
}

body {
    font-feature-settings: "cv05" 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Sayısal veriler (saat, sicil, süre) hizalı rakamlarla. */
.table,
.font-monospace,
.odin-num {
    font-variant-numeric: tabular-nums;
}

/* Tablo, panel ve giriş ekranındaki bağlantılar renkle ayrılır; alt çizgi üzerine gelince görünür. */
.table a:not(.btn),
.odin-panel a:not(.btn),
.odin-task-list a,
.login-body a,
.login-foot a {
    text-decoration: none;
    font-weight: 500;
}

.table a:not(.btn):hover,
.odin-panel a:not(.btn):hover,
.odin-task-list a:hover,
.login-body a:hover,
.login-foot a:hover {
    text-decoration: underline;
}

/* Tablodaki sicil/kod sütunları: Inter'in hizalı rakamları (sistem eş aralıklı yazı tipi yerine). */
.table .font-monospace {
    font-family: var(--bs-font-sans-serif) !important;
    font-weight: 500;
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
    color: var(--odin-text);
    font-weight: 600;
    letter-spacing: -0.01em;
}

h1, .h1 {
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.015em;
}

h1.h3, .h3 {
    font-size: 1.375rem;
}

h2.h6, .h6 {
    font-size: 0.95rem;
}

:focus-visible {
    outline: 2px solid var(--odin-focus);
    outline-offset: 2px;
}

/* ---- Düğmeler ---- */
.btn {
    --bs-btn-font-size: 0.8125rem;
    --bs-btn-font-weight: 500;
    --bs-btn-padding-x: 1rem;
    --bs-btn-padding-y: 0.45rem;
    --bs-btn-border-radius: 0.25rem;
    --bs-btn-focus-box-shadow: 0 0 0 0.2rem var(--bs-focus-ring-color);
    letter-spacing: 0.01em;
}

.btn-sm {
    --bs-btn-padding-x: 0.65rem;
    --bs-btn-padding-y: 0.25rem;
    --bs-btn-font-size: 0.8125rem;
}

.btn-primary {
    --bs-btn-bg: var(--odin-brand);
    --bs-btn-border-color: var(--odin-brand);
    --bs-btn-hover-bg: var(--odin-brand-hover);
    --bs-btn-hover-border-color: var(--odin-brand-hover);
    --bs-btn-active-bg: var(--odin-brand-active);
    --bs-btn-active-border-color: var(--odin-brand-active);
    --bs-btn-disabled-bg: var(--odin-brand);
    --bs-btn-disabled-border-color: var(--odin-brand);
}

.btn-outline-primary {
    --bs-btn-color: var(--bs-primary-text-emphasis);
    --bs-btn-border-color: var(--odin-line-strong);
    --bs-btn-bg: var(--odin-surface);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--odin-brand);
    --bs-btn-hover-border-color: var(--odin-brand);
    --bs-btn-active-bg: var(--odin-brand-active);
    --bs-btn-active-border-color: var(--odin-brand-active);
}

.btn-secondary,
.btn-outline-secondary,
.btn-light {
    --bs-btn-color: var(--odin-text);
    --bs-btn-bg: var(--odin-surface);
    --bs-btn-border-color: var(--odin-line-strong);
    --bs-btn-hover-color: var(--odin-text);
    --bs-btn-hover-bg: var(--odin-canvas);
    --bs-btn-hover-border-color: #94a3b8;
    --bs-btn-active-color: var(--odin-text);
    --bs-btn-active-bg: var(--odin-surface-recessed);
    --bs-btn-active-border-color: #94a3b8;
    --bs-btn-disabled-color: var(--odin-text-muted);
    --bs-btn-disabled-bg: var(--odin-surface-recessed);
    --bs-btn-disabled-border-color: var(--odin-line);
}

.btn-outline-danger {
    --bs-btn-color: var(--odin-miss-fg);
    --bs-btn-bg: var(--odin-surface);
    --bs-btn-border-color: #fca5a5;
    --bs-btn-hover-color: var(--odin-miss-fg);
    --bs-btn-hover-bg: var(--odin-miss-bg);
    --bs-btn-hover-border-color: var(--odin-miss-fg);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--odin-miss-fg);
    --bs-btn-active-border-color: var(--odin-miss-fg);
}

.btn-danger {
    --bs-btn-bg: #dc2626;
    --bs-btn-border-color: #dc2626;
    --bs-btn-hover-bg: #b91c1c;
    --bs-btn-hover-border-color: #b91c1c;
}

.btn-success {
    --bs-btn-bg: #16a34a;
    --bs-btn-border-color: #16a34a;
    --bs-btn-hover-bg: #15803d;
    --bs-btn-hover-border-color: #15803d;
}

.btn-link {
    --bs-btn-font-weight: 500;
}

/* ---- Form alanları ---- */
.form-control,
.form-select {
    font-size: 0.8125rem;
    min-height: 2.25rem;
    border-color: var(--odin-line-strong);
    background-color: var(--odin-surface);
    color: var(--odin-text);
}

.form-control-sm,
.form-select-sm {
    min-height: 1.9rem;
    font-size: 0.8125rem;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--odin-focus);
    box-shadow: 0 0 0 1px var(--odin-focus);
}

.form-control:disabled,
.form-control[readonly],
.form-select:disabled {
    background-color: var(--odin-surface-recessed);
    border-color: var(--odin-line);
    color: var(--odin-text-muted);
}

.form-label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--odin-text);
    margin-bottom: 0.3rem;
}

.form-text {
    color: var(--odin-text-muted);
}

.form-check-input {
    border: 1.5px solid #94a3b8;
}

.form-check-input:checked {
    background-color: var(--odin-brand);
    border-color: var(--odin-brand);
}

.form-check-input:focus {
    border-color: var(--odin-focus);
    box-shadow: 0 0 0 0.2rem var(--bs-focus-ring-color);
}

/* ---- Kartlar ve paneller (Seviye 1) ---- */
.card {
    --bs-card-bg: var(--odin-surface);
    --bs-card-border-color: var(--odin-line);
    --bs-card-border-radius: 0.5rem;
    --bs-card-inner-border-radius: calc(0.5rem - 1px);
    --bs-card-cap-bg: var(--odin-surface-recessed);
    box-shadow: var(--odin-shadow-1);
}

.card-header {
    font-weight: 600;
}

.shadow-sm {
    box-shadow: var(--odin-shadow-1) !important;
}

.shadow {
    box-shadow: var(--odin-shadow-2) !important;
}

/* ---- Veri tabloları ---- */
.table {
    --bs-table-bg: var(--odin-surface);
    --bs-table-color: var(--odin-text);
    --bs-table-border-color: var(--odin-line);
    --bs-table-hover-bg: var(--odin-canvas);
    --bs-table-striped-bg: var(--odin-canvas);
    font-size: 0.8125rem;
}

.table > thead > tr > th,
.table > thead > tr > td {
    background-color: var(--odin-canvas);
    color: var(--odin-text-muted);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    vertical-align: middle;
    border-bottom: 1px solid var(--odin-line-strong);
    white-space: nowrap;
}

.table > thead > tr.odin-filter-row > th {
    text-transform: none;
    letter-spacing: 0;
}

.table > thead .table-light,
.table > thead.table-light > tr > th {
    --bs-table-bg: var(--odin-canvas);
    --bs-table-color: var(--odin-text-muted);
}

.table > :not(caption) > * > * {
    padding: 0.6rem 0.75rem;
}

.table-sm > :not(caption) > * > * {
    padding: 0.4rem 0.6rem;
}

.table > tbody > tr:hover > * {
    --bs-table-bg-state: var(--odin-canvas);
}

.table-responsive {
    background-color: var(--odin-surface);
    border: 1px solid var(--odin-line);
    border-radius: 0.5rem;
    box-shadow: var(--odin-shadow-1);
}

.table-responsive > .table {
    margin-bottom: 0;
}

.table-responsive > .table > :last-child > tr:last-child > * {
    border-bottom-width: 0;
}

/* İnceleme gereken / eksik hareketli satır vurgusu. */
.table > tbody > tr.table-danger > *,
.table > tbody > tr.odin-row-review > * {
    --bs-table-bg: var(--odin-miss-row);
    --bs-table-color: var(--odin-text);
}

.table > tbody > tr.table-danger > :first-child,
.table > tbody > tr.odin-row-review > :first-child {
    box-shadow: inset 3px 0 0 #dc2626;
}

.table > tbody > tr.table-warning > * {
    --bs-table-bg: var(--odin-late-bg);
    --bs-table-color: var(--odin-text);
}

/* ---- Durum rozetleri: açık zemin, koyu yazı, ince çerçeve, 4px köşe ---- */
.badge {
    --bs-badge-font-size: 0.75rem;
    --bs-badge-font-weight: 500;
    --bs-badge-padding-x: 0.5rem;
    --bs-badge-padding-y: 0.25rem;
    --bs-badge-border-radius: 0.25rem;
    border: 1px solid transparent;
    letter-spacing: 0.01em;
}

.badge.text-bg-success {
    color: var(--odin-ok-fg) !important;
    background-color: var(--odin-ok-bg) !important;
    border-color: var(--odin-ok-line);
}

.badge.text-bg-warning {
    color: var(--odin-late-fg) !important;
    background-color: var(--odin-late-bg) !important;
    border-color: var(--odin-late-line);
}

.badge.text-bg-danger,
.badge.text-bg-danger-subtle {
    color: var(--odin-miss-fg) !important;
    background-color: var(--odin-miss-bg) !important;
    border-color: var(--odin-miss-line);
}

.badge.text-bg-info {
    color: var(--odin-leave-fg) !important;
    background-color: var(--odin-leave-bg) !important;
    border-color: var(--odin-leave-line);
}

.badge.text-bg-secondary,
.badge.text-bg-light {
    color: var(--odin-rest-fg) !important;
    background-color: var(--odin-rest-bg) !important;
    border-color: var(--odin-rest-line);
}

.badge.text-bg-primary {
    color: var(--bs-primary-text-emphasis) !important;
    background-color: var(--odin-brand-soft) !important;
    border-color: var(--bs-primary-border-subtle);
}

/* Menüdeki sayaç rozeti dikkat çekmeli: dolu kırmızı kalır. */
.badge.odin-badge {
    color: #fff !important;
    background-color: #dc2626 !important;
    border-color: #dc2626;
    --bs-badge-padding-x: 0.4em;
    --bs-badge-padding-y: 0.2em;
    --bs-badge-border-radius: 999px;
    font-weight: 700;
}

/* ---- Uyarı kutuları ---- */
.alert {
    --bs-alert-border-radius: 0.375rem;
    font-size: 0.8125rem;
}

/* ---- Açılır pencereler ve menüler (Seviye 2/3) ---- */
.dropdown-menu,
.odin-submenu,
.odin-colmenu {
    border-color: var(--odin-line-strong) !important;
    box-shadow: var(--odin-shadow-2) !important;
}

.modal-content,
dialog {
    border: 1px solid #94a3b8;
    border-radius: 0.75rem;
    box-shadow: var(--odin-shadow-3);
    background-color: var(--odin-surface);
    color: var(--odin-text);
}

dialog::backdrop {
    background-color: rgba(15, 23, 42, 0.4);
}

/* ---- Sekmeler ---- */
.nav-tabs {
    --bs-nav-tabs-border-color: var(--odin-line);
    --bs-nav-tabs-link-active-color: var(--bs-primary-text-emphasis);
    --bs-nav-tabs-link-active-bg: transparent;
    --bs-nav-tabs-link-active-border-color: transparent;
    gap: 0.25rem;
}

.nav-tabs .nav-link {
    border: 0;
    border-bottom: 2px solid transparent;
    color: var(--odin-text-muted);
    font-weight: 500;
    font-size: 0.8125rem;
}

.nav-tabs .nav-link:hover {
    color: var(--odin-text);
    border-bottom-color: var(--odin-line-strong);
}

.nav-tabs .nav-link.active {
    border-bottom-color: var(--odin-brand);
    color: var(--bs-primary-text-emphasis);
    font-weight: 600;
}

.nav-pills {
    --bs-nav-pills-link-active-bg: var(--odin-brand);
    --bs-nav-pills-border-radius: 0.25rem;
}

/* ---- Sayfalama ---- */
.pagination {
    --bs-pagination-color: var(--odin-text);
    --bs-pagination-bg: var(--odin-surface);
    --bs-pagination-border-color: var(--odin-line-strong);
    --bs-pagination-hover-bg: var(--odin-canvas);
    --bs-pagination-active-bg: var(--odin-brand);
    --bs-pagination-active-border-color: var(--odin-brand);
    --bs-pagination-font-size: 0.8125rem;
    --bs-pagination-border-radius: 0.25rem;
}

.list-group {
    --bs-list-group-bg: var(--odin-surface);
    --bs-list-group-border-color: var(--odin-line);
    --bs-list-group-active-bg: var(--odin-brand);
    --bs-list-group-active-border-color: var(--odin-brand);
}

.btn-link {
    text-decoration: none;
}

.btn-link:hover {
    text-decoration: underline;
}

/* Tablo içindeki ekran okuyucu metinleri (konumlu öğeler) kaydırma kutusunun dışına taşıp sayfayı genişletmesin. */
.table-responsive {
    position: relative;
}
