/* ============================================================
   ODERA ERP - Product Design System v3
   ============================================================ */

:root {
    --od-primary: #0f766e;
    --od-primary-strong: #115e59;
    --od-primary-soft: #e3f3f0;
    --od-accent: #e8a23a;
    --od-accent-soft: #fff3db;
    --od-success: #14866d;
    --od-danger: #d84c57;
    --od-warning: #d98a1a;
    --od-info: #3976a8;

    --od-bg: #f4f3ee;
    --od-surface: #ffffff;
    --od-surface-raised: #ffffff;
    --od-surface-soft: #f7f7f3;
    --od-surface-muted: #eeeee8;
    --od-border: #dedfd8;
    --od-border-strong: #cfd1c8;
    --od-text: #172321;
    --od-text-muted: #68736f;
    --od-text-light: #929b97;

    --od-sidebar: #102a2e;
    --od-sidebar-deep: #0a2023;
    --od-sidebar-text: #c6d4d1;
    --od-sidebar-width: 288px;
    --od-topbar-h: 76px;

    --od-radius-xs: 8px;
    --od-radius-sm: 11px;
    --od-radius-md: 15px;
    --od-radius-lg: 20px;
    --od-radius-xl: 28px;
    --od-shadow-xs: 0 1px 2px rgba(24, 35, 33, 0.04);
    --od-shadow-sm: 0 8px 24px rgba(24, 35, 33, 0.06);
    --od-shadow-md: 0 18px 48px rgba(24, 35, 33, 0.10);
    --od-shadow-lg: 0 28px 80px rgba(9, 27, 28, 0.16);
    --od-transition: 180ms ease;
}

[data-accent="teal"] {
    --od-primary: #0f766e;
    --od-primary-strong: #115e59;
    --od-primary-soft: #e3f3f0;
    --od-sidebar: #102a2e;
    --od-sidebar-deep: #0a2023;
}
[data-accent="blue"] {
    --od-primary: #2563eb;
    --od-primary-strong: #1d4ed8;
    --od-primary-soft: #dbeafe;
    --od-sidebar: #0f1f3d;
    --od-sidebar-deep: #0a1628;
}
[data-accent="emerald"] {
    --od-primary: #059669;
    --od-primary-strong: #047857;
    --od-primary-soft: #d1fae5;
    --od-sidebar: #0c2e24;
    --od-sidebar-deep: #071f18;
}
[data-accent="amber"] {
    --od-primary: #d97706;
    --od-primary-strong: #b45309;
    --od-primary-soft: #fef3c7;
    --od-sidebar: #2a2210;
    --od-sidebar-deep: #1c1608;
}
[data-accent="indigo"] {
    --od-primary: #4f46e5;
    --od-primary-strong: #4338ca;
    --od-primary-soft: #e0e7ff;
    --od-sidebar: #151433;
    --od-sidebar-deep: #0d0c22;
}
[data-accent="rose"] {
    --od-primary: #e11d48;
    --od-primary-strong: #be123c;
    --od-primary-soft: #ffe4e6;
    --od-sidebar: #2a1018;
    --od-sidebar-deep: #1c0a10;
}

[data-theme="dark"][data-accent="teal"] { --od-primary-soft: rgba(45, 212, 191, 0.12); }
[data-theme="dark"][data-accent="blue"] { --od-primary-soft: rgba(96, 165, 250, 0.14); }
[data-theme="dark"][data-accent="emerald"] { --od-primary-soft: rgba(52, 211, 153, 0.14); }
[data-theme="dark"][data-accent="amber"] { --od-primary-soft: rgba(251, 191, 36, 0.14); }
[data-theme="dark"][data-accent="indigo"] { --od-primary-soft: rgba(129, 140, 248, 0.14); }
[data-theme="dark"][data-accent="rose"] { --od-primary-soft: rgba(251, 113, 133, 0.14); }

[data-font-scale="large"] { font-size: 106.25%; }

[data-radius="soft"] {
    --od-radius-xs: 10px;
    --od-radius-sm: 14px;
    --od-radius-md: 18px;
    --od-radius-lg: 24px;
    --od-radius-xl: 32px;
}

[data-radius="sharp"] {
    --od-radius-xs: 4px;
    --od-radius-sm: 6px;
    --od-radius-md: 8px;
    --od-radius-lg: 10px;
    --od-radius-xl: 14px;
}

[data-sidebar="narrow"] {
    --od-sidebar-width: 248px;
}

[data-contrast="high"] {
    --od-border: color-mix(in srgb, var(--od-text) 24%, var(--od-border));
    --od-border-strong: color-mix(in srgb, var(--od-text) 38%, var(--od-border-strong));
    --od-text-muted: color-mix(in srgb, var(--od-text) 78%, transparent);
    --od-text-light: color-mix(in srgb, var(--od-text) 62%, transparent);
}

[data-contrast="high"] .card,
[data-contrast="high"] .form-control,
[data-contrast="high"] .form-select {
    border-color: var(--od-border-strong) !important;
}

[data-motion="reduced"] *,
[data-motion="reduced"] *::before,
[data-motion="reduced"] *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
}

[data-table-style="zebra"] .table:not(.table-borderless) tbody tr:nth-child(even),
[data-table-style="zebra"] .od-theme-table tbody tr:nth-child(even),
[data-table-style="zebra"] .table-modern tbody tr:nth-child(even) {
    background: var(--od-surface-soft);
}

[data-table-style="minimal"] .table:not(.table-borderless) thead th,
[data-table-style="minimal"] .od-theme-table thead th,
[data-table-style="minimal"] .table-modern th {
    background: transparent !important;
    border-bottom-width: 2px;
    border-top: 0 !important;
}

[data-table-style="minimal"] .table:not(.table-borderless) td,
[data-table-style="minimal"] .table:not(.table-borderless) th,
[data-table-style="minimal"] .od-theme-table td,
[data-table-style="minimal"] .od-theme-table th {
    border-left: 0 !important;
    border-right: 0 !important;
}

[data-theme="dark"] {
    --od-bg: #0d1718;
    --od-surface: #142224;
    --od-surface-raised: #18282a;
    --od-surface-soft: #1c2d2f;
    --od-surface-muted: #243638;
    --od-border: #2b3e40;
    --od-border-strong: #3a5052;
    --od-text: #edf5f2;
    --od-text-muted: #a4b5b0;
    --od-text-light: #728581;
    --od-primary-soft: rgba(45, 212, 191, 0.12);
    --od-accent-soft: rgba(232, 162, 58, 0.12);
    --od-sidebar: #091719;
    --od-sidebar-deep: #061113;
    color-scheme: dark;
}

[data-theme="dark"] body.odera-app {
    background: linear-gradient(135deg, var(--od-bg), var(--od-bg));
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.odera-app {
    min-height: 100vh;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 4% 4%, rgba(15, 118, 110, 0.06), transparent 24rem),
        linear-gradient(135deg, var(--od-bg), var(--od-bg));
    color: var(--od-text);
}

a { color: var(--od-primary); }
a:hover { color: var(--od-primary-strong); }

::selection { color: #fff; background: var(--od-primary); }
::-webkit-scrollbar { width: 7px; height: 7px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--od-border-strong); border-radius: 20px; }

.text-dark { color: var(--od-text) !important; }
.text-muted { color: var(--od-text-muted) !important; }
.text-primary { color: var(--od-primary) !important; }
.text-success { color: var(--od-success) !important; }
.text-danger { color: var(--od-danger) !important; }
.text-warning { color: var(--od-warning) !important; }
.bg-primary { --bs-primary-rgb: 15, 118, 110; background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important; }
.bg-success { --bs-success-rgb: 20, 134, 109; background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important; }
.bg-danger { --bs-danger-rgb: 216, 76, 87; background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important; }
.bg-warning { --bs-warning-rgb: 217, 138, 26; background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important; }
.bg-info { --bs-info-rgb: 57, 118, 168; background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important; }
.bg-white { background-color: var(--od-surface) !important; }
.bg-light { background-color: var(--od-surface-soft) !important; }
[data-theme="dark"] .bg-white,
[data-theme="dark"] .bg-light {
    color: var(--od-text) !important;
}
[data-theme="dark"] .text-dark { color: var(--od-text) !important; }
[data-theme="dark"] .text-black { color: var(--od-text) !important; }
.border, .border-top, .border-bottom { border-color: var(--od-border) !important; }
.border-primary { border-color: var(--od-primary) !important; }
.border-success { border-color: var(--od-success) !important; }
.border-danger { border-color: var(--od-danger) !important; }
.border-warning { border-color: var(--od-warning) !important; }
.border-info { border-color: var(--od-info) !important; }
.border-dark { border-color: var(--od-border-strong) !important; }

/* Type */
.od-page-title {
    margin: 0 0 0.35rem;
    color: var(--od-text);
    font-size: clamp(1.55rem, 2.5vw, 2rem);
    font-weight: 800;
    letter-spacing: -0.055em;
    line-height: 1.15;
}

.od-page-subtitle {
    max-width: 720px;
    margin: 0;
    color: var(--od-text-muted);
    font-size: 0.91rem;
    font-weight: 550;
    line-height: 1.65;
}

.od-section-title {
    margin: 0;
    color: var(--od-text);
    font-size: 0.98rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.od-eyebrow {
    display: block;
    margin-bottom: 0.55rem;
    color: var(--od-primary);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

/* Layout */
.wrapper { display: flex; width: 100%; min-height: 100vh; align-items: stretch; }

#sidebar,
.od-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1030;
    display: flex;
    width: var(--od-sidebar-width);
    min-width: var(--od-sidebar-width);
    max-width: var(--od-sidebar-width);
    height: 100vh;
    flex-direction: column;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(ellipse 120% 80% at -20% -10%, rgba(48, 185, 166, 0.22), transparent 55%),
        radial-gradient(circle at 100% 100%, rgba(237, 189, 103, 0.08), transparent 35%),
        linear-gradient(185deg, var(--od-sidebar) 0%, var(--od-sidebar-deep) 100%);
    border-right: 1px solid rgba(255, 255, 255, 0.07);
    box-shadow: 16px 0 48px rgba(5, 22, 24, 0.18);
    transition: transform 280ms cubic-bezier(.2,.8,.2,1);
}

#sidebar.collapsed,
.od-sidebar.collapsed { transform: translateX(calc(-1 * var(--od-sidebar-width))); }

.od-sidebar-brand,
#sidebar .sidebar-header {
    display: flex;
    min-height: 82px;
    flex-shrink: 0;
    align-items: center;
    gap: 0.85rem;
    padding: 1.1rem 1.15rem 0.95rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}

.od-brand-logo {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    place-items: center;
    color: #17302d;
    background: linear-gradient(145deg, #f8d889 0%, #e7a23c 55%, #d4882a 100%);
    border-radius: 16px 16px 16px 6px;
    box-shadow:
        0 12px 28px rgba(232, 162, 58, 0.28),
        inset 0 1px 0 rgba(255,255,255,0.35);
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: -0.06em;
}

.od-sidebar-brand-copy { min-width: 0; flex: 1; }

.od-brand-name {
    color: #fff;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.15;
}

.od-brand-name span { color: #edbd67; }

.od-brand-firm {
    display: block;
    max-width: 170px;
    margin-top: 0.18rem;
    overflow: hidden;
    color: rgba(225, 240, 236, 0.5);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.od-sidebar-close,
.sidebar-mobile-close {
    width: 36px;
    height: 36px;
    margin-left: auto;
    color: rgba(255,255,255,0.78);
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 11px;
    transition: background var(--od-transition), color var(--od-transition);
}

.od-sidebar-close:hover,
.sidebar-mobile-close:hover {
    color: #fff;
    background: rgba(255,255,255,0.14);
}

.od-sidebar-toolbar {
    flex-shrink: 0;
    padding: 0.75rem 0.85rem 0.35rem;
}

.od-sidebar-search {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 0.55rem;
    padding: 0.62rem 0.75rem;
    color: rgba(224, 238, 235, 0.55);
    background: rgba(0, 0, 0, 0.16);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 12px;
    font-size: 0.78rem;
    font-weight: 600;
    text-align: left;
    transition: border-color var(--od-transition), background var(--od-transition), color var(--od-transition);
}

.od-sidebar-search i {
    width: 16px;
    color: rgba(224, 238, 235, 0.42);
    font-size: 0.82rem;
    text-align: center;
}

.od-sidebar-search span { flex: 1; }

.od-sidebar-search kbd {
    padding: 0.12rem 0.38rem;
    color: rgba(224, 238, 235, 0.45);
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 6px;
    font-size: 0.58rem;
    font-weight: 700;
}

.od-sidebar-search:hover {
    color: rgba(255,255,255,0.82);
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.12);
}

.od-sidebar-scroll {
    flex: 1 1 auto;
    min-height: 0;
    padding: 0.35rem 0.75rem 0.85rem;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.18) transparent;
}

.od-sidebar-scroll::-webkit-scrollbar { width: 5px; }
.od-sidebar-scroll::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.16);
    border-radius: 999px;
}
.od-sidebar-scroll::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.28); }

.od-sidebar-nav,
#sidebar ul.components,
.od-sidebar-nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.od-nav-group {
    margin-bottom: 0.35rem;
    padding: 0.35rem 0.35rem 0.5rem;
    background: rgba(0, 0, 0, 0.11);
    border: 1px solid rgba(255,255,255,0.04);
    border-radius: 16px;
}

.od-nav-group + .od-nav-group { margin-top: 0.55rem; }

.od-nav-group-head,
.menu-category {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.35rem 0.45rem 0.55rem;
}

.od-nav-group-icon {
    display: inline-grid;
    width: 22px;
    height: 22px;
    place-items: center;
    color: #edbd67;
    background: rgba(237, 189, 103, 0.12);
    border-radius: 7px;
    font-size: 0.58rem;
}

.od-nav-group-title,
.menu-category {
    color: rgba(218, 234, 230, 0.42);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.od-nav-list,
.od-sidebar-nav > li,
.od-sidebar-nav .od-nav-item {
    list-style: none;
}

.od-nav-item { margin: 0.12rem 0; }

.od-nav-link,
#sidebar .nav-link {
    position: relative;
    display: flex;
    min-height: 42px;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0.65rem;
    color: rgba(224, 238, 235, 0.68);
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: 0.84rem;
    font-weight: 650;
    text-decoration: none;
    transition: color var(--od-transition), background var(--od-transition), border-color var(--od-transition), transform 180ms ease;
}

.od-nav-icon,
#sidebar .nav-link .icon-main {
    display: inline-grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    color: rgba(224, 238, 235, 0.46);
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.05);
    border-radius: 10px;
    font-size: 0.88rem;
    transition: color var(--od-transition), background var(--od-transition), border-color var(--od-transition), box-shadow var(--od-transition);
}

.od-nav-label,
#sidebar .nav-link span:not(.od-nav-icon):not(.od-nav-badge) {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.od-nav-badge {
    display: inline-grid;
    min-width: 22px;
    height: 22px;
    padding: 0 0.35rem;
    place-items: center;
    color: #fff;
    background: linear-gradient(135deg, #ef5a67, #d84c57);
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(216, 76, 87, 0.35);
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1;
}

.od-nav-link:hover,
#sidebar .nav-link:hover {
    color: #fff;
    background: rgba(255,255,255,0.055);
    border-color: rgba(255,255,255,0.06);
    transform: translateX(2px);
}

.od-nav-link:hover .od-nav-icon,
#sidebar .nav-link:hover .icon-main {
    color: #edbd67;
    background: rgba(237, 189, 103, 0.1);
    border-color: rgba(237, 189, 103, 0.16);
}

.od-nav-link.is-active,
#sidebar .nav-link.single-active,
#sidebar .nav-link:not(.collapsed) {
    color: #fff;
    background: linear-gradient(90deg, rgba(40, 164, 149, 0.22), rgba(40, 164, 149, 0.08));
    border-color: rgba(79, 205, 188, 0.18);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}

.od-nav-link.is-active::before,
#sidebar .nav-link.single-active::before,
#sidebar .nav-link:not(.collapsed)::before {
    position: absolute;
    left: -0.35rem;
    width: 3px;
    height: 24px;
    content: "";
    background: linear-gradient(180deg, #edbd67, #e7a23c);
    border-radius: 0 4px 4px 0;
    box-shadow: 0 0 14px rgba(237, 189, 103, 0.45);
}

.od-nav-link.is-active .od-nav-icon,
#sidebar .nav-link.single-active .icon-main,
#sidebar .nav-link:not(.collapsed) .icon-main {
    color: #fff;
    background: linear-gradient(145deg, rgba(79, 205, 188, 0.35), rgba(15, 118, 110, 0.55));
    border-color: rgba(99, 203, 189, 0.35);
    box-shadow: 0 6px 16px rgba(15, 118, 110, 0.25);
}

#sidebar .nav-link .arrow-icon {
    margin-left: auto;
    color: rgba(224, 238, 235, 0.28);
    font-size: 0.62rem;
    transition: transform var(--od-transition);
}

#sidebar .nav-link:not(.collapsed) .arrow-icon { transform: rotate(180deg); }

.sidebar-submenu {
    margin: 0.15rem 0 0.25rem;
    padding: 0.2rem 0.25rem 0.2rem 2.85rem;
    list-style: none;
}

.sidebar-submenu a {
    position: relative;
    display: block;
    padding: 0.44rem 0.55rem;
    color: rgba(224, 238, 235, 0.48);
    border-radius: 9px;
    font-size: 0.76rem;
    font-weight: 600;
    text-decoration: none;
    transition: color var(--od-transition), background var(--od-transition);
}

.sidebar-submenu a::before {
    position: absolute;
    top: 50%;
    left: -0.85rem;
    width: 5px;
    height: 5px;
    content: "";
    background: rgba(255,255,255,0.16);
    border-radius: 50%;
    transform: translateY(-50%);
}

.sidebar-submenu a:hover,
.sidebar-submenu a.active {
    color: #fff;
    background: rgba(255,255,255,0.05);
}

.sidebar-submenu a.active::before {
    background: #edbd67;
    box-shadow: 0 0 0 4px rgba(237,189,103,0.10);
}

.od-sidebar-profile,
.sidebar-footer {
    display: flex;
    min-height: 76px;
    flex-shrink: 0;
    align-items: center;
    gap: 0.65rem;
    margin: 0.55rem;
    padding: 0.75rem 0.85rem;
    color: #fff;
    background: rgba(0,0,0,0.2);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 16px;
    text-decoration: none;
    transition: background var(--od-transition), border-color var(--od-transition), transform 180ms ease;
}

.od-sidebar-profile-main {
    display: flex;
    min-width: 0;
    flex: 1;
    align-items: center;
    gap: 0.7rem;
}

.od-sidebar-profile-copy {
    min-width: 0;
    overflow: hidden;
}

.od-sidebar-profile-copy strong {
    display: block;
    overflow: hidden;
    font-size: 0.84rem;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.od-sidebar-profile-copy span {
    display: block;
    margin-top: 0.08rem;
    overflow: hidden;
    color: rgba(255,255,255,0.48);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.od-sidebar-profile-action {
    display: inline-grid;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    place-items: center;
    color: rgba(255,255,255,0.42);
    background: rgba(255,255,255,0.06);
    border-radius: 10px;
    font-size: 0.72rem;
}

.od-sidebar-profile:hover,
.sidebar-footer:hover {
    color: #fff;
    background: rgba(255,255,255,0.08);
    border-color: rgba(255,255,255,0.12);
    transform: translateY(-1px);
}

.od-sidebar-profile:hover .od-sidebar-profile-action { color: #edbd67; }

.sidebar-footer-arrow { color: rgba(255,255,255,0.3); font-size: 0.7rem; }

.od-user-avatar,
.od-avatar-sm {
    display: inline-grid;
    flex-shrink: 0;
    place-items: center;
    color: #18302e;
    background: linear-gradient(145deg, #f6ce86, #edbd67);
    font-weight: 850;
}

.od-user-avatar {
    width: 42px;
    height: 42px;
    margin-right: 0;
    border-radius: 14px;
    font-size: 0.84rem;
    box-shadow: 0 6px 16px rgba(237, 189, 103, 0.22);
}

.od-avatar-sm { width: 30px; height: 30px; border-radius: 10px; font-size: 0.7rem; }

#content {
    display: flex;
    width: calc(100% - var(--od-sidebar-width));
    min-height: 100vh;
    flex-direction: column;
    margin-left: var(--od-sidebar-width);
    transition: margin 260ms cubic-bezier(.2,.8,.2,1), width 260ms cubic-bezier(.2,.8,.2,1);
    position: relative;
    z-index: 1;
}

#content.expanded { width: 100%; margin-left: 0; }

.top-navbar {
    position: sticky;
    z-index: 1050;
    top: 0;
    display: flex;
    height: var(--od-topbar-h);
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.65rem;
    background: color-mix(in srgb, var(--od-surface) 88%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--od-border) 75%, transparent);
    backdrop-filter: blur(18px);
}

.od-topbar-context { min-width: 0; }
.od-topbar-eyebrow {
    display: block;
    margin-bottom: 0.08rem;
    color: var(--od-text-light);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.od-topbar-title {
    max-width: 280px;
    margin: 0;
    overflow: hidden;
    color: var(--od-text);
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.od-topbar-clock {
    display: inline-flex;
    height: 40px;
    align-items: center;
    gap: 0.5rem;
    padding: 0 0.9rem;
    color: var(--od-text-muted);
    background: var(--od-surface-soft);
    border: 1px solid var(--od-border);
    border-radius: 12px;
    font-size: 0.72rem;
    font-weight: 750;
}

.od-live-dot {
    width: 7px;
    height: 7px;
    background: #24a681;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(36,166,129,0.12);
}

.od-branch-trigger {
    display: inline-flex !important;
    height: 44px;
    min-width: 190px;
    align-items: center;
    gap: 0.6rem;
    padding: 0.25rem 0.75rem 0.25rem 0.3rem !important;
    color: var(--od-text) !important;
    background: var(--od-surface-soft) !important;
    border: 1px solid var(--od-border) !important;
    text-align: left;
}

.od-branch-icon {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    color: var(--od-primary);
    background: var(--od-primary-soft);
    border-radius: 10px;
    place-items: center;
}

.od-branch-copy {
    min-width: 0;
    flex: 1;
}

.od-branch-copy small,
.od-branch-copy strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.od-branch-copy small {
    color: var(--od-text-light);
    font-size: 0.52rem;
    font-weight: 850;
    letter-spacing: 0.1em;
    line-height: 1.1;
    text-transform: uppercase;
}

.od-branch-copy strong {
    max-width: 135px;
    margin-top: 0.12rem;
    font-size: 0.68rem;
    font-weight: 850;
}

.od-branch-menu { width: min(320px, calc(100vw - 24px)); padding: 0.45rem !important; }
.od-branch-menu .dropdown-header { padding: 0.65rem 0.7rem; color: var(--od-text-light); font-size: 0.58rem; font-weight: 850; letter-spacing: 0.1em; text-transform: uppercase; }
.od-branch-menu .dropdown-item {
    display: flex;
    min-height: 52px;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0.65rem !important;
    border-radius: 11px;
}
.od-branch-menu .dropdown-item.active { color: var(--od-primary) !important; background: var(--od-primary-soft) !important; }
.od-branch-menu-icon { display: grid; width: 34px; height: 34px; flex: 0 0 34px; color: var(--od-primary); background: var(--od-surface-soft); border-radius: 10px; place-items: center; }
.od-branch-menu .dropdown-item span:nth-child(2) { min-width: 0; flex: 1; }
.od-branch-menu .dropdown-item strong,
.od-branch-menu .dropdown-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.od-branch-menu .dropdown-item strong { color: inherit; font-size: 0.72rem; }
.od-branch-menu .dropdown-item small { margin-top: 0.1rem; color: var(--od-text-light); font-size: 0.58rem; font-weight: 700; }
.od-branch-menu .od-branch-manage { min-height: 40px; color: var(--od-text-muted); font-size: 0.68rem; font-weight: 800; }

.od-module-bar {
    display: flex;
    min-height: 66px;
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.65rem clamp(1.2rem, 2.4vw, 2.5rem);
    background: color-mix(in srgb, var(--od-surface) 96%, var(--od-primary-soft));
    border-bottom: 1px solid var(--od-border);
}

.od-module-identity {
    display: flex;
    min-width: 210px;
    align-items: center;
    gap: 0.7rem;
}

.od-module-symbol {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    color: var(--od-primary);
    background: var(--od-primary-soft);
    border: 1px solid color-mix(in srgb, var(--od-primary) 18%, transparent);
    border-radius: 12px;
    place-items: center;
}

.od-module-identity small {
    display: block;
    margin-bottom: 0.05rem;
    color: var(--od-text-light);
    font-size: 0.57rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1.1;
    text-transform: uppercase;
}

.od-module-identity strong {
    display: block;
    color: var(--od-text);
    font-size: 0.83rem;
    font-weight: 850;
    letter-spacing: -0.02em;
}

.od-module-links {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    overflow-x: auto;
    scrollbar-width: none;
}

.od-module-links::-webkit-scrollbar { display: none; }

.od-module-links a {
    display: inline-flex;
    min-height: 38px;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    color: var(--od-text-muted);
    border: 1px solid transparent;
    border-radius: 11px;
    font-size: 0.7rem;
    font-weight: 800;
    text-decoration: none;
    transition: color var(--od-transition), background var(--od-transition), border-color var(--od-transition);
}

.od-module-links a:hover {
    color: var(--od-primary);
    background: var(--od-surface);
    border-color: var(--od-border);
}

.od-module-links a.active {
    color: #fff;
    background: linear-gradient(135deg, var(--od-primary), var(--od-primary-strong));
    border-color: transparent;
    box-shadow: 0 8px 18px rgba(19, 103, 94, 0.18);
}

.page-content { flex-grow: 1; padding: 2rem clamp(1.2rem, 2.4vw, 2.5rem) 3rem; max-width: 1600px; width: 100%; margin-inline: auto; position: relative; z-index: 1; }

.od-page-header,
.od-module-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.od-module-header {
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--od-border);
}

.od-page-heading { min-width: min(100%, 320px); }
.od-page-title {
    margin: 0;
    color: var(--od-text);
    font-size: clamp(1.55rem, 2.4vw, 2rem);
    font-weight: 850;
    letter-spacing: -0.055em;
}

.od-page-subtitle {
    max-width: 720px;
    margin: 0.45rem 0 0;
    color: var(--od-text-muted);
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.65;
}

.od-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
    margin-bottom: 0.48rem;
    color: var(--od-primary);
    font-size: 0.62rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.od-page-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.od-module-header h2,
.od-module-header .page-title {
    margin: 0;
    color: var(--od-text);
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -0.04em;
}

.sidebar-overlay {
    position: fixed;
    z-index: 1040;
    inset: 0;
    display: none;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    background: rgba(4, 18, 20, 0.62);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    transition: opacity 220ms ease, visibility 220ms ease;
}

@media (min-width: 993px) {
    .sidebar-overlay,
    .sidebar-overlay.active {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}

.sidebar-overlay.active {
    display: block;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

body.od-sidebar-open {
    overflow: hidden;
    touch-action: none;
}

/* Cards */
.card {
    color: var(--od-text);
    background: var(--od-surface);
    border: 1px solid var(--od-border) !important;
    border-radius: var(--od-radius-lg) !important;
    box-shadow: var(--od-shadow-xs) !important;
    transition: border-color var(--od-transition), box-shadow var(--od-transition), transform var(--od-transition);
}

.card:hover { border-color: var(--od-border-strong) !important; box-shadow: var(--od-shadow-sm) !important; }
.card-header {
    padding: 1.15rem 1.35rem !important;
    color: var(--od-text);
    background: transparent !important;
    border-bottom: 1px solid var(--od-border) !important;
}
.card-body { padding: 1.35rem !important; }
.card-footer { background: transparent !important; border-top-color: var(--od-border) !important; }

.card.bg-dark,
.card.text-bg-dark {
    color: #fff !important;
    background: linear-gradient(145deg, #102d30, #173d3d) !important;
    border-color: rgba(255,255,255,0.08) !important;
}

.card.bg-primary,
.card.text-bg-primary { color: #fff !important; background: rgba(15, 118, 110, var(--bs-bg-opacity, 1)) !important; }
.card.bg-success,
.card.text-bg-success { color: #fff !important; background: rgba(20, 134, 109, var(--bs-bg-opacity, 1)) !important; }
.card.bg-danger,
.card.text-bg-danger { color: #fff !important; background: rgba(216, 76, 87, var(--bs-bg-opacity, 1)) !important; }
.card.bg-warning,
.card.text-bg-warning { color: #172321 !important; background: rgba(239, 189, 98, var(--bs-bg-opacity, 1)) !important; }
.card.bg-info,
.card.text-bg-info { color: #fff !important; background: rgba(57, 118, 168, var(--bs-bg-opacity, 1)) !important; }
.card.bg-light { background: var(--od-surface-soft) !important; }

.card.bg-primary.bg-opacity-10,
.card.bg-primary.bg-opacity-25,
.card.bg-success.bg-opacity-10,
.card.bg-success.bg-opacity-25,
.card.bg-danger.bg-opacity-10,
.card.bg-danger.bg-opacity-25,
.card.bg-info.bg-opacity-10,
.card.bg-info.bg-opacity-25 {
    color: var(--od-text) !important;
}

.card-header.bg-dark { color: #fff !important; background: #102d30 !important; }
.card-header.bg-primary { color: #fff !important; background: var(--od-primary) !important; }
.card-header.bg-success { color: #fff !important; background: var(--od-success) !important; }
.card-header.bg-danger { color: #fff !important; background: var(--od-danger) !important; }
.card-header.bg-warning { color: #172321 !important; background: #efbd62 !important; }
.card-header.bg-info { color: #fff !important; background: var(--od-info) !important; }

.od-card-glass { background: color-mix(in srgb, var(--od-surface) 88%, transparent) !important; backdrop-filter: blur(15px); }
.od-card-dark {
    color: #fff;
    background: linear-gradient(145deg, #102d30, #173d3d) !important;
    border-color: rgba(255,255,255,0.07) !important;
}

.od-stat-card { position: relative; min-height: 126px; overflow: hidden; }
.od-stat-card::after {
    position: absolute;
    right: -28px;
    bottom: -58px;
    width: 125px;
    height: 125px;
    content: "";
    background: var(--stat-color, var(--od-primary));
    border-radius: 50%;
    opacity: 0.055;
}
.od-stat-primary { --stat-color: var(--od-primary); }
.od-stat-success { --stat-color: var(--od-success); }
.od-stat-danger { --stat-color: var(--od-danger); }
.od-stat-warning { --stat-color: var(--od-warning); }
.od-stat-info { --stat-color: var(--od-info); }
.od-stat-card:hover { transform: translateY(-3px); }

.od-stat-label {
    margin: 0 0 0.45rem;
    color: var(--od-text-muted);
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}
.od-stat-value { margin: 0; color: var(--od-text); font-size: clamp(1.15rem, 2vw, 1.5rem); font-weight: 850; letter-spacing: -0.045em; }
.od-stat-note { margin-top: 0.25rem; color: var(--od-text-light); font-size: 0.65rem; font-weight: 700; }
.od-stat-icon {
    display: grid;
    width: 50px;
    height: 50px;
    flex: 0 0 50px;
    place-items: center;
    border-radius: 15px;
    font-size: 1.15rem;
}
.icon-success { color: var(--od-success); background: rgba(20,134,109,0.11); }
.icon-primary { color: var(--od-primary); background: var(--od-primary-soft); }
.icon-danger { color: var(--od-danger); background: rgba(216,76,87,0.10); }
.icon-info { color: var(--od-info); background: color-mix(in srgb, var(--od-info) 12%, var(--od-surface)); }

/* Shared print, PDF and Excel output */
.od-output-workspace {
    position: fixed;
    top: 0;
    left: -120vw;
    z-index: -1;
    width: 1120px;
    max-width: 1120px;
    overflow: visible;
    pointer-events: none;
    opacity: 1;
}

.od-output-report {
    width: 100%;
    color: #172321 !important;
    background: #fff !important;
    font-family: "Manrope", Arial, sans-serif;
}

.od-output-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 0 0 0.85rem;
    margin-bottom: 1rem;
    border-bottom: 3px solid #0f766e;
}

.od-output-header span {
    display: inline-flex;
    margin-bottom: 0.3rem;
    color: #0f766e;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.14em;
}

.od-output-header h1 {
    margin: 0;
    color: #102a2e;
    font-size: 1.32rem;
    font-weight: 900;
    letter-spacing: -0.035em;
}

.od-output-header p,
.od-output-meta small,
.od-output-footer {
    color: #64748b;
}

.od-output-meta {
    min-width: 180px;
    text-align: right;
}

.od-output-meta strong {
    display: block;
    color: #102a2e;
    font-size: 0.86rem;
    font-weight: 900;
}

.od-output-meta small {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.72rem;
    font-weight: 700;
}

.od-output-body .card,
.od-output-body .table-responsive {
    overflow: visible !important;
    box-shadow: none !important;
}

.od-output-table,
.od-output-body table {
    width: 100% !important;
    margin: 0;
    color: #172321 !important;
    border-collapse: collapse !important;
    font-size: 10.5px;
}

.od-output-table th,
.od-output-table td,
.od-output-body table th,
.od-output-body table td {
    padding: 6px 7px !important;
    color: #172321 !important;
    background: #fff !important;
    border: 1px solid #d7e1dc !important;
    vertical-align: top;
}

.od-output-table th,
.od-output-body table th {
    color: #102a2e !important;
    background: #e3f3f0 !important;
    font-weight: 900 !important;
}

.od-output-body .badge {
    color: #172321 !important;
    background: #eef6f3 !important;
    border: 1px solid #c8dbd4 !important;
}

.od-output-footer {
    padding-top: 0.75rem;
    margin-top: 1rem;
    font-size: 0.67rem;
    font-weight: 700;
    text-align: center;
    border-top: 1px solid #d7e1dc;
}
.icon-warning { color: var(--od-warning); background: var(--od-accent-soft); }
.icon-accent { color: #bd7612; background: var(--od-accent-soft); }

.od-progress {
    height: 8px;
    overflow: hidden;
    background: var(--od-surface-soft);
    border-radius: 999px;
}

.od-progress > span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--od-primary), var(--od-success));
    border-radius: inherit;
}

.od-project-card .card-body { gap: 1rem; }
.od-project-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 1rem;
}

.od-project-meta > span {
    padding: 0.65rem 0.7rem;
    color: var(--od-text-muted);
    background: var(--od-surface-soft);
    border: 1px solid var(--od-border);
    border-radius: 12px;
    font-size: 0.65rem;
    font-weight: 750;
}

.od-project-meta strong { display: block; margin-top: 0.15rem; color: var(--od-text); font-size: 0.75rem; }

.od-archive-toolbar {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 1rem;
    padding: 0.75rem;
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: var(--od-radius-md);
    box-shadow: var(--od-shadow-xs);
}

.od-archive-toolbar i { color: var(--od-text-light); }
.od-archive-toolbar input {
    width: 100%;
    padding: 0;
    color: var(--od-text);
    background: transparent;
    border: 0;
    outline: 0;
    font-size: 0.8rem;
    font-weight: 700;
}

.od-archive-item[hidden] { display: none !important; }
.od-table-long thead th {
    position: sticky;
    z-index: 3;
    top: 0;
    background: var(--od-surface-soft) !important;
}

.od-ops-card { overflow: hidden; }
.od-ops-card:hover { transform: translateY(-3px); }
.od-ops-card.od-ops-dark {
    color: #fff;
    background:
        radial-gradient(circle at 95% 15%, rgba(237,189,103,0.14), transparent 11rem),
        linear-gradient(145deg, #102d30, #173d3d) !important;
    border-color: rgba(255,255,255,0.06) !important;
}
.od-ops-watermark { position: absolute; right: -10px; bottom: -12px; color: #fff; font-size: 5rem; opacity: 0.045; }
.od-ops-link { color: #edbd67 !important; font-size: 0.78rem; font-weight: 800; text-decoration: none; }

/* Controls */
.btn {
    min-height: 40px;
    padding: 0.54rem 1rem !important;
    border-radius: var(--od-radius-sm) !important;
    font-size: 0.82rem !important;
    font-weight: 750 !important;
    letter-spacing: -0.01em;
    transition: transform var(--od-transition), box-shadow var(--od-transition), background var(--od-transition);
}
.btn:hover { transform: translateY(-1px); }
.btn-primary {
    color: #fff !important;
    background: var(--od-primary) !important;
    border-color: var(--od-primary) !important;
    box-shadow: 0 8px 18px rgba(15,118,110,0.18);
}
.btn-primary:hover, .btn-primary:focus {
    background: var(--od-primary-strong) !important;
    border-color: var(--od-primary-strong) !important;
    box-shadow: 0 10px 24px rgba(15,118,110,0.24) !important;
}
.btn-success { background: var(--od-success) !important; border-color: var(--od-success) !important; }
.btn-danger { background: var(--od-danger) !important; border-color: var(--od-danger) !important; }
.btn-warning { background: var(--od-accent) !important; border-color: var(--od-accent) !important; }
.btn-light { color: var(--od-text) !important; background: var(--od-surface-soft) !important; border-color: var(--od-border) !important; }
.btn-outline-primary { color: var(--od-primary) !important; border-color: color-mix(in srgb, var(--od-primary) 45%, var(--od-border)) !important; }
.btn-outline-primary:hover { color: #fff !important; background: var(--od-primary) !important; }
.btn-outline-success { color: var(--od-success) !important; border-color: color-mix(in srgb, var(--od-success) 48%, var(--od-border)) !important; }
.btn-outline-success:hover { color: #fff !important; background: var(--od-success) !important; }
.btn-outline-danger { color: var(--od-danger) !important; border-color: color-mix(in srgb, var(--od-danger) 48%, var(--od-border)) !important; }
.btn-outline-danger:hover { color: #fff !important; background: var(--od-danger) !important; }
.btn-outline-warning { color: var(--od-warning) !important; border-color: color-mix(in srgb, var(--od-warning) 48%, var(--od-border)) !important; }
.btn-outline-warning:hover { color: #172321 !important; background: var(--od-accent) !important; }
.btn-outline-info { color: var(--od-info) !important; border-color: color-mix(in srgb, var(--od-info) 48%, var(--od-border)) !important; }
.btn-outline-info:hover { color: #fff !important; background: var(--od-info) !important; }
.btn-outline-dark,
.btn-outline-secondary { color: var(--od-text-muted) !important; border-color: var(--od-border-strong) !important; }
.btn-outline-dark:hover,
.btn-outline-secondary:hover { color: var(--od-text) !important; background: var(--od-surface-soft) !important; }
.btn-sm { min-height: 34px; padding: 0.38rem 0.7rem !important; font-size: 0.74rem !important; }
.btn-lg { min-height: 48px; padding: 0.7rem 1.25rem !important; }

.od-btn-icon {
    display: inline-grid !important;
    width: 40px;
    height: 40px;
    min-height: 40px;
    flex: 0 0 40px;
    padding: 0 !important;
    place-items: center;
    color: var(--od-text-muted) !important;
    background: var(--od-surface-soft) !important;
    border: 1px solid var(--od-border) !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
}
.od-btn-icon:hover { color: var(--od-primary) !important; background: var(--od-primary-soft) !important; border-color: color-mix(in srgb, var(--od-primary) 30%, var(--od-border)) !important; }
#sidebarCollapse[aria-expanded="true"] {
    color: var(--od-primary) !important;
    background: var(--od-primary-soft) !important;
    border-color: color-mix(in srgb, var(--od-primary) 35%, var(--od-border)) !important;
}

.od-quick-btn {
    height: 40px !important;
    min-height: 40px;
    padding: 0 1rem !important;
    border-radius: 12px !important;
    box-shadow: none !important;
}
.od-quick-btn i { color: #f7ca79; }

.od-profile-trigger {
    display: inline-flex !important;
    height: 40px;
    min-height: 40px;
    align-items: center;
    padding: 0.25rem 0.65rem 0.25rem 0.3rem !important;
    color: var(--od-text) !important;
    background: transparent !important;
    border: 0 !important;
}

.od-search-trigger {
    display: inline-flex;
    height: 40px;
    min-height: 40px;
    align-items: center;
    gap: 0.55rem;
    padding: 0 0.55rem 0 0.8rem !important;
    color: var(--od-text-muted) !important;
    background: var(--od-surface-soft) !important;
    border: 1px solid var(--od-border) !important;
    box-shadow: none !important;
}
.od-search-trigger span { min-width: 72px; text-align: left; }
kbd {
    padding: 0.25rem 0.38rem;
    color: var(--od-text-light);
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: 6px;
    box-shadow: none;
    font-family: inherit;
    font-size: 0.6rem;
    font-weight: 750;
}

.form-control,
.form-select,
.input-group-text {
    min-height: 44px;
    color: var(--od-text) !important;
    background-color: var(--od-surface) !important;
    border: 1px solid var(--od-border) !important;
    border-radius: var(--od-radius-sm) !important;
    box-shadow: none !important;
    font-size: 0.84rem !important;
    font-weight: 580 !important;
}
.form-control, .form-select { padding: 0.68rem 0.85rem !important; }
.form-control:focus, .form-select:focus {
    border-color: var(--od-primary) !important;
    box-shadow: 0 0 0 3px rgba(15,118,110,0.11) !important;
}
.form-control::placeholder { color: var(--od-text-light); }
textarea.form-control { min-height: auto; }
.input-group > .form-control:not(:last-child),
.input-group > .form-select:not(:last-child) { border-radius: var(--od-radius-sm) 0 0 var(--od-radius-sm) !important; }
.input-group > .input-group-text:last-child,
.input-group > .btn:last-child { border-radius: 0 var(--od-radius-sm) var(--od-radius-sm) 0 !important; }

label, .form-label {
    margin-bottom: 0.4rem !important;
    color: var(--od-text-muted) !important;
    font-size: 0.68rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}
.form-check-label { letter-spacing: 0 !important; text-transform: none !important; }
.form-check-input { background-color: var(--od-surface); border-color: var(--od-border-strong); }
.form-check-input:checked { background-color: var(--od-primary); border-color: var(--od-primary); }

/* Tables */
.table-responsive {
    overflow-x: auto;
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: var(--od-radius-md);
}
.table { margin-bottom: 0 !important; color: var(--od-text); }
.table > :not(caption) > * > * { color: var(--od-text); background: transparent; box-shadow: none; }
.table th {
    padding: 0.82rem 1rem !important;
    color: var(--od-text-muted) !important;
    background: var(--od-surface-soft) !important;
    border-bottom: 1px solid var(--od-border) !important;
    font-size: 0.62rem !important;
    font-weight: 850 !important;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    white-space: nowrap;
}
.table td {
    padding: 0.88rem 1rem !important;
    color: var(--od-text) !important;
    border-bottom: 1px solid var(--od-border) !important;
    font-size: 0.81rem;
    font-weight: 560;
    vertical-align: middle;
}
.table tbody tr:last-child td { border-bottom: 0 !important; }
.table-hover > tbody > tr:hover > * { background: var(--od-primary-soft) !important; }
.od-theme-table { isolation: isolate; }
.od-row-hidden { display: none !important; }

.od-table-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin-bottom: 0.75rem;
    padding: 0.68rem;
    background:
        radial-gradient(circle at 0 0, rgba(15,118,110,0.08), transparent 15rem),
        var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: var(--od-radius-md);
    box-shadow: var(--od-shadow-xs);
}

.od-table-search {
    display: flex;
    min-width: min(100%, 280px);
    flex: 1 1 280px;
    align-items: center;
    gap: 0.55rem;
    margin: 0 !important;
    padding: 0.48rem 0.68rem;
    color: var(--od-text-muted) !important;
    background: var(--od-surface-soft);
    border: 1px solid var(--od-border);
    border-radius: 999px;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.od-table-search input {
    width: 100%;
    padding: 0;
    color: var(--od-text);
    background: transparent;
    border: 0;
    outline: 0;
    font-size: 0.8rem;
    font-weight: 700;
}

.od-table-count {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--od-text-muted);
    font-size: 0.73rem;
    font-weight: 800;
}

.od-table-count strong { color: var(--od-primary); }
.od-table-actions { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.od-table-actions .btn { box-shadow: none !important; }

/* Utility components */
.badge { padding: 0.38em 0.68em; border-radius: 7px; font-size: 0.67rem; font-weight: 800 !important; }
.alert { color: var(--od-text); border: 1px solid var(--od-border); border-radius: var(--od-radius-md) !important; font-size: 0.82rem; }
.alert-success { color: #0c674f; background: #e6f5ef; border-color: #c7e9dd; }
.alert-danger { color: #9d303a; background: #fceded; border-color: #f2cccf; }
.alert-warning { color: #8b5911; background: #fff5df; border-color: #f3dfb4; }
[data-theme="dark"] .alert-success { color: #8ed8c1; background: rgba(20,134,109,0.12); border-color: rgba(20,134,109,0.25); }
[data-theme="dark"] .alert-danger { color: #f3a4aa; background: rgba(216,76,87,0.12); border-color: rgba(216,76,87,0.25); }
[data-theme="dark"] .alert-warning { color: #f0c57c; background: rgba(217,138,26,0.12); border-color: rgba(217,138,26,0.25); }

.progress { overflow: hidden; background: var(--od-surface-muted) !important; border-radius: 50px !important; }
.progress-bar { border-radius: 50px; }

.dropdown-menu {
    z-index: 1070 !important;
    min-width: 220px;
    padding: 0.45rem !important;
    color: var(--od-text);
    background: var(--od-surface-raised) !important;
    border: 1px solid var(--od-border) !important;
    border-radius: var(--od-radius-md) !important;
    box-shadow: var(--od-shadow-md) !important;
}
.dropdown-header { color: var(--od-text-light) !important; }
.dropdown-divider { border-color: var(--od-border); }
.dropdown-item {
    display: flex !important;
    min-height: 38px;
    align-items: center;
    padding: 0.55rem 0.7rem !important;
    color: var(--od-text) !important;
    border-radius: 9px !important;
    font-size: 0.78rem !important;
    font-weight: 650 !important;
}
.dropdown-item:hover { color: var(--od-primary) !important; background: var(--od-primary-soft) !important; }
.od-notif-panel { width: min(380px, calc(100vw - 24px)); padding: 0 !important; overflow: hidden; border: 1px solid var(--od-border) !important; border-radius: var(--od-radius-lg) !important; box-shadow: var(--od-shadow-lg) !important; }
.od-notif-header { padding: 0.85rem 1rem; color: #fff; background: var(--od-sidebar); font-size: 0.78rem; font-weight: 800; }
.od-notif-body { max-height: 380px; overflow-y: auto; padding: 0.65rem; background: var(--od-surface-muted, #f8fafc); }
.od-notif-item { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.75rem; margin-bottom: 0.5rem; background: var(--od-surface); border: 1px solid var(--od-border); border-radius: 12px; text-decoration: none; color: inherit; transition: border-color 0.15s, box-shadow 0.15s; }
.od-notif-item:last-child { margin-bottom: 0; }
.od-notif-item:hover { border-color: var(--od-primary); box-shadow: var(--od-shadow-sm); color: inherit; }
.od-notif-icon { width: 36px; height: 36px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 0.9rem; }
.od-notif-copy { flex: 1; min-width: 0; }
.od-notif-modul { display: block; font-size: 0.62rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--od-text-muted); margin-bottom: 0.15rem; }
.od-notif-baslik { display: block; font-size: 0.82rem; line-height: 1.25; color: var(--od-text); margin-bottom: 0.2rem; }
.od-notif-mesaj { display: block; font-size: 0.72rem; color: var(--od-text-muted); line-height: 1.35; }
.od-notif-zaman { display: block; font-size: 0.65rem; color: var(--od-text-muted); margin-top: 0.25rem; opacity: 0.85; }
.od-notif-badge { align-self: center; min-width: 1.5rem; height: 1.5rem; padding: 0 0.35rem; border-radius: 999px; background: var(--od-danger); color: #fff; font-size: 0.68rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.od-notif-empty { text-align: center; padding: 2rem 1rem; color: var(--od-text-muted); }
.od-notif-empty i { font-size: 2rem; color: var(--od-success); opacity: 0.55; margin-bottom: 0.75rem; }
.od-notif-empty p { margin: 0; font-weight: 800; color: var(--od-text); }
.od-notif-empty small { display: block; margin-top: 0.35rem; }
.od-notif-footer { border-top: 1px solid var(--od-border); background: var(--od-surface); }
.od-notif-footer-link { display: block; padding: 0.75rem 1rem; text-align: center; font-size: 0.78rem; font-weight: 800; color: var(--od-primary); text-decoration: none; }
.od-notif-footer-link:hover { background: var(--od-primary-soft); color: var(--od-primary); }
.od-bildirim-list .od-notif-item { margin-bottom: 0.75rem; }
.od-bildirim-filtre .btn { font-size: 0.75rem; font-weight: 700; }
.pulse-dot { position: absolute; top: 2px; right: 2px; width: 9px; height: 9px; background: var(--od-danger); border: 2px solid var(--od-surface); border-radius: 50%; }
.od-badge-date { display: inline-flex; align-items: center; padding: 0.65rem 0.9rem; color: var(--od-text-muted); background: var(--od-surface); border: 1px solid var(--od-border); border-radius: 12px; font-size: 0.75rem; font-weight: 750; }

.modal-content {
    color: var(--od-text);
    background: var(--od-surface-raised) !important;
    border: 1px solid var(--od-border) !important;
    border-radius: var(--od-radius-lg) !important;
    box-shadow: var(--od-shadow-lg) !important;
}
.modal-header, .modal-footer { border-color: var(--od-border) !important; }
.modal-header { padding: 1.15rem 1.3rem !important; }
.modal-body { padding: 1.3rem !important; }
.modal-footer { padding: 0.9rem 1.3rem !important; }
.btn-close { filter: none; }
[data-theme="dark"] .btn-close { filter: invert(1); }

/* Command palette */
.od-command-modal .modal-dialog { max-width: 590px; }
.od-command-modal .modal-content { overflow: hidden; }
.od-command-search { display: flex; align-items: center; gap: 0.8rem; padding: 0.95rem 1rem; border-bottom: 1px solid var(--od-border); }
.od-command-search > i { color: var(--od-primary); }
.od-command-search input { width: 100%; color: var(--od-text); background: transparent; border: 0; outline: 0; font-size: 0.95rem; font-weight: 650; }
.od-command-list { max-height: 390px; padding: 0.55rem; overflow-y: auto; }
.od-command-list a {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.75rem;
    color: var(--od-text);
    border-radius: 12px;
    text-decoration: none;
}
.od-command-list a > i { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; color: var(--od-primary); background: var(--od-primary-soft); border-radius: 11px; }
.od-command-list a span { display: flex; flex-direction: column; }
.od-command-list a strong { font-size: 0.82rem; }
.od-command-list a small { margin-top: 0.12rem; color: var(--od-text-muted); font-size: 0.68rem; }
.od-command-list a:hover, .od-command-list a.is-selected { background: var(--od-surface-soft); }
.od-command-recent {
    background: linear-gradient(135deg, var(--od-primary-soft), transparent);
}
.od-command-recent::after {
    margin-left: auto;
    color: var(--od-text-light);
    content: "Son";
    font-size: 0.62rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.od-command-empty { display: none; padding: 2.5rem 1rem; color: var(--od-text-muted); font-size: 0.78rem; text-align: center; }
.od-command-footer { display: flex; justify-content: flex-end; gap: 1rem; padding: 0.65rem 0.9rem; color: var(--od-text-light); background: var(--od-surface-soft); border-top: 1px solid var(--od-border); font-size: 0.62rem; }
.od-command-footer kbd { margin-right: 0.2rem; }

/* Settings hub */
.od-settings-hub {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding: 0.75rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: var(--od-radius-lg);
    box-shadow: var(--od-shadow-xs);
}
.od-settings-hub-title { display: flex; min-width: 210px; align-items: center; gap: 0.7rem; padding: 0.25rem 0.55rem; border-right: 1px solid var(--od-border); flex-shrink: 0; }
.od-settings-hub-icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; color: #fff; background: var(--od-primary); border-radius: 12px; }
.od-settings-hub-title > span:last-child,
.od-settings-hub-links a > span { display: flex; flex-direction: column; }
.od-settings-hub-title strong { font-size: 0.82rem; }
.od-settings-hub-title small,
.od-settings-hub-links small { color: var(--od-text-light); font-size: 0.68rem; font-weight: 650; }
.od-settings-hub-links { display: flex; gap: 0.35rem; flex: 1 1 auto; min-width: 0; }
.od-settings-hub-links a {
    display: flex;
    min-width: max-content;
    align-items: center;
    gap: 0.55rem;
    padding: 0.62rem 0.85rem;
    color: var(--od-text-muted);
    border-radius: 11px;
    text-decoration: none;
    scroll-snap-align: start;
}
.od-settings-hub-links a > i { width: 22px; text-align: center; font-size: 0.85rem; }
.od-settings-hub-links a strong { font-size: 0.78rem; }
.od-settings-hub-links a:hover { color: var(--od-text); background: var(--od-surface-soft); }
.od-settings-hub-links a.active { color: var(--od-primary); background: var(--od-primary-soft); }
.od-settings-hub-links a.active small { color: color-mix(in srgb, var(--od-primary) 70%, var(--od-text-muted)); }

.od-settings-quick-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
}
.od-settings-quick-card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    color: var(--od-text);
    text-decoration: none;
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: var(--od-radius-lg);
    box-shadow: var(--od-shadow-xs);
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}
.od-settings-quick-card:hover {
    color: var(--od-text);
    border-color: color-mix(in srgb, var(--od-primary) 35%, var(--od-border));
    box-shadow: var(--od-shadow-sm);
    transform: translateY(-1px);
}
.od-settings-quick-card > span:nth-child(2) { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.od-settings-quick-card strong { font-size: 0.78rem; }
.od-settings-quick-card small { color: var(--od-text-muted); font-size: 0.62rem; font-weight: 650; }
.od-settings-quick-icon {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    border-radius: 11px;
    font-size: 0.9rem;
}
.od-settings-quick-icon.icon-amber { color: #b45309; background: #fef3c7; }
.od-settings-quick-icon.icon-blue { color: #1d4ed8; background: #dbeafe; }
.od-settings-quick-icon.icon-green { color: #15803d; background: #dcfce7; }
.od-settings-quick-icon.icon-slate { color: #475569; background: #f1f5f9; }
.od-settings-quick-arrow { color: var(--od-text-light); font-size: 0.65rem; }

.od-cron-mini-row {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.65rem 0.75rem;
    background: var(--od-surface-soft);
    border: 1px solid var(--od-border);
    border-radius: 12px;
    height: 100%;
}
.od-cron-mini-icon {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 10px;
    color: var(--od-primary);
    background: var(--od-primary-soft);
    font-size: 0.82rem;
}

@media (max-width: 1199px) {
    .od-settings-quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
    .od-settings-quick-grid { grid-template-columns: 1fr; }
}

.od-settings-hero {
    position: relative;
    display: flex;
    min-height: 178px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
    padding: 1.65rem;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 90% 20%, rgba(237,189,103,0.20), transparent 15rem),
        linear-gradient(135deg, #102d30, #17413f);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: var(--od-radius-xl);
    box-shadow: var(--od-shadow-sm);
}
.od-settings-hero::after { position: absolute; top: -45%; right: 8%; width: 220px; height: 220px; content: ""; border: 1px solid rgba(255,255,255,0.08); border-radius: 50%; }
.od-settings-hero-copy { position: relative; z-index: 1; max-width: 650px; }
.od-settings-hero .od-eyebrow { color: #edbd67; }
.od-settings-hero h1 { margin: 0 0 0.45rem; font-size: clamp(1.7rem, 3vw, 2.25rem); font-weight: 850; letter-spacing: -0.055em; }
.od-settings-hero p { margin: 0; color: rgba(235,246,243,0.66); font-size: 0.84rem; line-height: 1.65; }
.od-settings-hero-actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 0.55rem; }
.od-settings-hero-actions .btn { border-color: rgba(255,255,255,0.14) !important; }

.od-settings-shell { display: grid; grid-template-columns: 235px minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.od-settings-nav {
    position: sticky;
    top: calc(var(--od-topbar-h) + 1rem);
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin: 0;
    padding: 0.55rem;
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: var(--od-radius-lg);
    box-shadow: var(--od-shadow-xs);
}
.od-settings-nav .nav-link {
    display: flex;
    width: 100%;
    min-height: 54px;
    align-items: center;
    gap: 0.7rem;
    padding: 0.62rem 0.7rem !important;
    color: var(--od-text-muted) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 12px !important;
    text-align: left;
    box-shadow: none !important;
}
.od-settings-nav .nav-link > i {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    color: var(--od-text-muted);
    background: var(--od-surface-soft);
    border-radius: 10px;
}
.od-settings-nav .nav-link span { display: flex; flex-direction: column; }
.od-settings-nav .nav-link strong { color: inherit; font-size: 0.82rem; }
.od-settings-nav .nav-link small { margin-top: 0.08rem; color: var(--od-text-light); font-size: 0.68rem; }
.od-settings-nav .nav-link:hover { color: var(--od-text) !important; background: var(--od-surface-soft) !important; }
.od-settings-nav .nav-link.active { color: var(--od-primary) !important; background: var(--od-primary-soft) !important; }
.od-settings-nav .nav-link.active > i { color: #fff; background: var(--od-primary); }

.od-settings-content { min-width: 0; }

.od-settings-layout {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.od-settings-layout .od-settings-hub {
    margin-bottom: 1.25rem;
}

.od-settings-layout .od-settings-content {
    min-width: 0;
}

.od-settings-hub-mobile-wrap {
    display: none;
    flex: 1 1 100%;
    min-width: 0;
    margin: 0;
}

.od-settings-hub-mobile-label {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--od-text-muted);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.od-settings-hub-mobile {
    min-height: 46px;
    padding: 0.6rem 0.9rem;
    color: var(--od-text);
    background: var(--od-surface-soft);
    border: 1px solid var(--od-border);
    border-radius: 12px;
    font-size: 0.84rem;
    font-weight: 700;
    box-shadow: none;
    appearance: auto;
}

.od-settings-hub-mobile:focus {
    border-color: color-mix(in srgb, var(--od-primary) 45%, var(--od-border));
    box-shadow: 0 0 0 3px var(--od-primary-soft);
}

.od-settings-nav-mobile-wrap {
    display: none;
    margin-bottom: 0.85rem;
}

.od-settings-nav-mobile-label {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--od-text-muted);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.od-settings-nav-mobile {
    min-height: 46px;
    padding: 0.6rem 0.9rem;
    color: var(--od-text);
    background: var(--od-surface-soft);
    border: 1px solid var(--od-border);
    border-radius: 12px;
    font-size: 0.84rem;
    font-weight: 700;
}

.od-settings-nav-mobile:focus {
    border-color: color-mix(in srgb, var(--od-primary) 45%, var(--od-border));
    box-shadow: 0 0 0 3px var(--od-primary-soft);
}

.od-page-header + .od-settings-hub,
.od-settings-hub + .od-page-header {
    margin-top: 0;
}

.page-content > .od-page-header:first-child,
.page-content > .od-settings-hub:first-child {
    animation: odFadeIn 480ms ease both;
}
.od-settings-card { overflow: visible; }
.od-settings-card .card-icon-header {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 1.1rem 1.25rem;
    border-bottom: 1px solid var(--od-border);
}
.od-settings-card .card-icon {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    border-radius: 13px;
}
.icon-blue, .icon-cyan { color: var(--od-primary); background: var(--od-primary-soft); }
.icon-amber { color: var(--od-warning); background: var(--od-accent-soft); }
.icon-green { color: var(--od-success); background: rgba(20,134,109,0.11); }
.icon-slate { color: var(--od-text-muted); background: var(--od-surface-soft); }

.od-settings-section-title { margin: 0; color: var(--od-text); font-size: 0.92rem; font-weight: 820; letter-spacing: -0.025em; }
.od-settings-section-desc { display: block; margin-top: 0.18rem; color: var(--od-text-muted); font-size: 0.67rem; font-weight: 580; }

.od-setting-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--od-border); }
.od-setting-row:last-child { border-bottom: 0; }
.od-setting-row-copy strong { display: block; color: var(--od-text); font-size: 0.78rem; }
.od-setting-row-copy small { display: block; max-width: 520px; margin-top: 0.2rem; color: var(--od-text-muted); font-size: 0.66rem; line-height: 1.5; }

.od-ticket-series {
    padding: 1rem;
    background: linear-gradient(145deg, var(--od-surface-soft), color-mix(in srgb, var(--od-primary-soft) 45%, var(--od-surface)));
    border: 1px solid color-mix(in srgb, var(--od-primary) 18%, var(--od-border));
    border-radius: 16px;
}
.od-ticket-series-head { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem; }
.od-ticket-series-head > div { min-width: 0; }
.od-ticket-series-head strong { display: block; color: var(--od-text); font-size: 0.82rem; }
.od-ticket-series-head small { display: block; margin-top: 0.15rem; color: var(--od-text-muted); font-size: 0.65rem; }
.od-ticket-series-icon {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    color: var(--od-primary);
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: 12px;
    box-shadow: var(--od-shadow-sm);
}
.od-ticket-preview {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1rem;
    padding: 0.8rem 0.9rem;
    color: var(--od-text-muted);
    background: var(--od-surface);
    border: 1px dashed color-mix(in srgb, var(--od-primary) 38%, var(--od-border));
    border-radius: 12px;
    font-size: 0.68rem;
    font-weight: 700;
}
.od-ticket-preview strong { color: var(--od-primary); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.9rem; letter-spacing: 0.025em; }

.od-prefix-preview { padding: 0.75rem 0.9rem; color: var(--od-primary); background: var(--od-primary-soft); border: 1px dashed color-mix(in srgb, var(--od-primary) 40%, var(--od-border)); border-radius: 11px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.82rem; font-weight: 800; text-align: center; }

.od-settings-savebar {
    position: sticky;
    z-index: 20;
    bottom: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.25rem;
    padding: 0.75rem 0.8rem 0.75rem 1rem;
    color: var(--od-text);
    background: color-mix(in srgb, var(--od-surface-raised) 92%, transparent);
    border: 1px solid var(--od-border);
    border-radius: var(--od-radius-md);
    box-shadow: var(--od-shadow-md);
    backdrop-filter: blur(15px);
}
.od-settings-savebar small { color: var(--od-text-muted); font-size: 0.68rem; font-weight: 650; }

.od-choice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; }
.od-choice-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.od-choice-card { position: relative; display: block; padding: 0; cursor: pointer; }
.od-choice-card input { position: absolute; opacity: 0; pointer-events: none; }
.od-choice-visual { display: block; padding: 0.75rem; background: var(--od-surface-soft); border: 2px solid var(--od-border); border-radius: 14px; transition: border-color var(--od-transition), transform var(--od-transition); }
.od-choice-card:hover .od-choice-visual { transform: translateY(-2px); }
.od-choice-card input:checked + .od-choice-visual { border-color: var(--od-primary); box-shadow: 0 0 0 3px var(--od-primary-soft); }
.od-choice-preview { display: block; height: 62px; margin-bottom: 0.65rem; overflow: hidden; background: #f4f3ee; border: 1px solid #dedfd8; border-radius: 8px; }
.od-choice-preview::before { display: block; width: 23%; height: 100%; content: ""; background: #102a2e; }
.od-choice-preview.dark { background: #142224; border-color: #2b3e40; }
.od-choice-preview.dark::before { background: #091719; }
.od-choice-preview.system { background: linear-gradient(90deg, #f4f3ee 50%, #142224 50%); }
.od-choice-visual strong { display: block; color: var(--od-text); font-size: 0.72rem; }
.od-choice-visual small { color: var(--od-text-muted); font-size: 0.6rem; }

.od-radius-preview {
    display: block;
    height: 62px;
    margin-bottom: 0.65rem;
    background: linear-gradient(135deg, var(--od-primary-soft), var(--od-surface-soft));
    border: 2px solid var(--od-primary);
}
.od-radius-preview-default { border-radius: 15px; }
.od-radius-preview-soft { border-radius: 24px; }
.od-radius-preview-sharp { border-radius: 6px; }

.od-table-preview {
    display: block;
    height: 62px;
    margin-bottom: 0.65rem;
    overflow: hidden;
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: 10px;
}
.od-table-preview::before,
.od-table-preview::after {
    display: block;
    height: 18px;
    content: "";
    border-bottom: 1px solid var(--od-border);
}
.od-table-preview::before { background: var(--od-surface-soft); }
.od-table-preview-zebra::after { background: var(--od-surface-soft); }
.od-table-preview-minimal::before { background: transparent; border-bottom-width: 2px; }

.od-accent-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0.65rem; }
.od-accent-card { position: relative; display: block; padding: 0; cursor: pointer; }
.od-accent-card input { position: absolute; opacity: 0; pointer-events: none; }
.od-accent-swatch {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    padding: 0.65rem 0.35rem;
    background: var(--od-surface-soft);
    border: 2px solid var(--od-border);
    border-radius: 14px;
    transition: border-color var(--od-transition), transform var(--od-transition);
}
.od-accent-card:hover .od-accent-swatch { transform: translateY(-2px); }
.od-accent-card input:checked + .od-accent-swatch {
    border-color: var(--od-primary);
    box-shadow: 0 0 0 3px var(--od-primary-soft);
}
.od-accent-dot {
    display: block;
    width: 28px;
    height: 28px;
    border: 2px solid rgba(255,255,255,0.85);
    border-radius: 50%;
    box-shadow: inset 0 0 0 1px rgba(16, 24, 40, 0.08);
}
.od-accent-dot.teal { background: #0f766e; }
.od-accent-dot.blue { background: #2563eb; }
.od-accent-dot.emerald { background: #059669; }
.od-accent-dot.amber { background: #d97706; }
.od-accent-dot.indigo { background: #4f46e5; }
.od-accent-dot.rose { background: #e11d48; }
.od-accent-swatch strong { color: var(--od-text); font-size: 0.62rem; font-weight: 780; }

.od-theme-preview {
    overflow: hidden;
    background: var(--od-surface-soft);
    border: 1px solid var(--od-border);
    border-radius: 18px;
}
.od-theme-preview-shell {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    min-height: 220px;
}
.od-theme-preview-sidebar {
    padding: 0.85rem 0.55rem;
    background: var(--od-sidebar);
    border-right: 1px solid rgba(255,255,255,0.06);
}
.od-theme-preview-brand {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.85rem;
}
.od-theme-preview-logo {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    color: #fff;
    font-size: 0.58rem;
    font-weight: 800;
    background: var(--od-primary);
    border-radius: 8px;
}
.od-theme-preview-brand small {
    display: block;
    color: rgba(255,255,255,0.45);
    font-size: 0.48rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.od-theme-preview-brand strong { color: #fff; font-size: 0.58rem; }
.od-theme-preview-nav span {
    display: block;
    height: 7px;
    margin-bottom: 0.38rem;
    background: rgba(255,255,255,0.08);
    border-radius: 999px;
}
.od-theme-preview-nav span.active { width: 72%; background: rgba(255,255,255,0.22); }
.od-theme-preview-main { padding: 0.85rem; background: var(--od-bg); }
.od-theme-preview-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
    padding: 0.55rem 0.65rem;
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: 12px;
}
.od-theme-preview-topbar strong { font-size: 0.68rem; }
.od-theme-preview-topbar small { color: var(--od-text-muted); font-size: 0.55rem; }
.od-theme-preview-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.55rem; }
.od-theme-preview-card {
    padding: 0.65rem;
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: 12px;
}
.od-theme-preview-card small { display: block; color: var(--od-text-muted); font-size: 0.52rem; }
.od-theme-preview-card strong { color: var(--od-primary); font-size: 0.78rem; }
.od-theme-preview-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.75rem;
    padding: 0.42rem 0.75rem;
    color: #fff;
    font-size: 0.58rem;
    font-weight: 700;
    background: var(--od-primary);
    border-radius: 999px;
}
.od-theme-save-hint {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-top: 0.85rem;
    padding: 0.75rem 0.9rem;
    color: var(--od-text-muted);
    font-size: 0.68rem;
    font-weight: 650;
    background: var(--od-surface-soft);
    border: 1px dashed var(--od-border);
    border-radius: 12px;
}
.od-theme-save-hint.is-dirty { color: var(--od-warning); border-color: color-mix(in srgb, var(--od-warning) 35%, var(--od-border)); }
.od-theme-save-hint.is-saved { color: var(--od-success); border-color: color-mix(in srgb, var(--od-success) 35%, var(--od-border)); }

.od-user-stat { padding: 1rem; text-align: center; }
.od-user-stat .stat-num { margin-bottom: 0.2rem; font-size: 1.6rem; font-weight: 850; letter-spacing: -0.06em; }
.od-user-stat .stat-lbl { color: var(--od-text-muted); font-size: 0.6rem; font-weight: 800; letter-spacing: 0.09em; text-transform: uppercase; }
.od-role-badge { display: inline-flex; align-items: center; gap: 0.32rem; padding: 0.32rem 0.62rem; border-radius: 8px; font-size: 0.66rem; font-weight: 800; }
.od-role-super { color: #b6323d; background: rgba(216,76,87,0.11); }
.od-role-yonetici { color: var(--od-primary); background: var(--od-primary-soft); }
.od-role-muhasebe { color: var(--od-success); background: rgba(20,134,109,0.10); }
.od-role-kantarci { color: #a9690e; background: var(--od-accent-soft); }
.od-user-row-inactive { opacity: 0.52; }
.od-perm-matrix th, .od-perm-matrix td { padding: 0.65rem !important; text-align: center; }
.od-perm-matrix th:first-child, .od-perm-matrix td:first-child { text-align: left; }
.od-perm-yes { color: var(--od-success); }
.od-perm-no { color: var(--od-border-strong); }

/* Login */
body.odera-login {
    min-height: 100vh;
    overflow-x: hidden;
    overflow-y: auto;
    color: var(--od-text);
    background: #102a2e;
}
.od-login-split { display: flex; width: 100%; min-height: 100vh; }
.od-login-brand {
    position: relative;
    display: flex;
    flex: 1;
    align-items: flex-end;
    padding: clamp(2.5rem, 6vw, 6rem);
    overflow: hidden;
    background:
        linear-gradient(0deg, rgba(6,27,29,0.30), rgba(6,27,29,0.30)),
        radial-gradient(circle at 72% 20%, rgba(236,187,98,0.18), transparent 22rem),
        linear-gradient(145deg, #102a2e, #194844);
}
.od-login-brand::before {
    position: absolute;
    top: 8%;
    right: 8%;
    width: min(30vw, 430px);
    aspect-ratio: 1;
    content: "";
    border: 1px solid rgba(255,255,255,0.10);
    border-radius: 50%;
    box-shadow: 0 0 0 55px rgba(255,255,255,0.025), 0 0 0 110px rgba(255,255,255,0.018);
}
.od-login-brand-content { position: relative; z-index: 1; max-width: 560px; }
.od-login-brand-logo { display: grid; width: 58px; height: 58px; margin-bottom: 2rem; place-items: center; color: #17302d; background: #edbd67; border-radius: 18px 18px 18px 6px; font-size: 1.25rem; }
.od-login-brand h1 { margin: 0 0 1rem; color: #fff; font-size: clamp(2.2rem, 4vw, 4rem); font-weight: 850; letter-spacing: -0.065em; line-height: 1.03; }
.od-login-brand h1 span { color: #edbd67; }
.od-login-brand p { max-width: 520px; margin-bottom: 2rem; color: rgba(232,244,241,0.66); font-size: 0.95rem; font-weight: 520; line-height: 1.75; }
.od-login-features { display: flex; flex-wrap: wrap; gap: 0.7rem; margin: 0; padding: 0; list-style: none; }
.od-login-features li { display: inline-flex; align-items: center; gap: 0.5rem; margin: 0; padding: 0.55rem 0.7rem; color: rgba(242,249,247,0.75); background: rgba(255,255,255,0.055); border: 1px solid rgba(255,255,255,0.07); border-radius: 10px; font-size: 0.68rem; font-weight: 700; }
.od-login-features li i { display: inline; width: auto; height: auto; color: #edbd67; background: none; border-radius: 0; }
.od-login-form-side { display: flex; width: min(520px, 42vw); min-width: 0; align-items: center; justify-content: center; padding: 3rem; background: var(--od-surface); }
.od-login-form-wrap { width: 100%; max-width: 355px; }
.od-login-form-wrap h2 { margin: 0 0 0.45rem; color: var(--od-text); font-size: 1.7rem; font-weight: 850; letter-spacing: -0.055em; }
.od-login-form-wrap .subtitle { margin-bottom: 2rem; color: var(--od-text-muted); font-size: 0.82rem; }
.od-input-group { position: relative; margin-bottom: 0.9rem; }
.od-input-group .icon-left { position: absolute; z-index: 2; top: 50%; left: 0.9rem; color: var(--od-text-light); transform: translateY(-50%); }
.od-input { width: 100%; height: 50px; padding: 0 2.7rem; color: var(--od-text); background: var(--od-surface-soft); border: 1px solid var(--od-border); border-radius: 13px; outline: 0; font-size: 0.86rem; font-weight: 600; transition: border var(--od-transition), box-shadow var(--od-transition); }
.od-input:focus { background: var(--od-surface); border-color: var(--od-primary); box-shadow: 0 0 0 3px var(--od-primary-soft); }
.od-password-toggle { position: absolute; z-index: 2; top: 50%; right: 0.75rem; padding: 0.35rem; color: var(--od-text-light); background: none; border: 0; transform: translateY(-50%); }
.od-login-btn { width: 100%; min-height: 50px; margin-top: 0.4rem; color: #fff; background: var(--od-primary); border: 0; border-radius: 13px; box-shadow: 0 12px 24px rgba(15,118,110,0.20); font-size: 0.84rem; font-weight: 800; transition: transform var(--od-transition), background var(--od-transition); }
.od-login-btn:hover:not(:disabled) { background: var(--od-primary-strong); transform: translateY(-2px); }
.od-login-btn:disabled { opacity: 0.6; }
.od-login-footer { margin-top: 1.7rem; color: var(--od-text-light); font-size: 0.64rem; font-weight: 650; text-align: center; }
.od-login-error { display: flex; align-items: center; gap: 0.55rem; margin-bottom: 1rem; padding: 0.75rem 0.85rem; color: var(--od-danger); background: rgba(216,76,87,0.08); border: 1px solid rgba(216,76,87,0.18); border-radius: 12px; font-size: 0.74rem; font-weight: 700; }

/* Density */
[data-density="compact"] .page-content { padding-top: 1.25rem; }
[data-density="compact"] .card-body { padding: 1rem !important; }
[data-density="compact"] .table td { padding-top: 0.62rem !important; padding-bottom: 0.62rem !important; }
[data-density="compact"] .form-control,
[data-density="compact"] .form-select { min-height: 39px; padding-top: 0.48rem !important; padding-bottom: 0.48rem !important; }

/* Animation */
.od-fade-in { animation: odFadeIn 480ms ease both; }
@keyframes odFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.od-fade-in:nth-child(2) { animation-delay: 60ms; }
.od-fade-in:nth-child(3) { animation-delay: 120ms; }
.od-fade-in:nth-child(4) { animation-delay: 180ms; }
.hover-lift-sm:hover { transform: translateY(-3px); }
.blink-text { animation: odBlink 1.4s infinite; }
@keyframes odBlink { 50% { opacity: 0.25; } }
.od-empty-state { padding: 3rem 1rem; color: var(--od-text-muted); text-align: center; }
.od-empty-state i { display: block; margin-bottom: 0.8rem; font-size: 2.2rem; opacity: 0.28; }

/* Responsive */
@media (max-width: 1180px) {
    .od-search-trigger span, .od-search-trigger kbd { display: none; }
    .od-search-trigger { width: 40px; padding: 0 !important; justify-content: center; }
    .od-branch-trigger { min-width: 44px; width: 44px; padding: 0.25rem !important; }
    .od-branch-copy { display: none; }
}

@media (max-width: 992px) {
    #sidebar,
    .od-sidebar {
        z-index: 1090;
        transform: translateX(calc(-1 * var(--od-sidebar-width)));
        padding-top: env(safe-area-inset-top, 0);
        padding-bottom: env(safe-area-inset-bottom, 0);
        will-change: transform;
    }

    #sidebar.active,
    .od-sidebar.active {
        transform: translateX(0) !important;
        box-shadow: 24px 0 64px rgba(5, 22, 24, 0.35);
    }

    #sidebar.collapsed,
    .od-sidebar.collapsed {
        transform: translateX(calc(-1 * var(--od-sidebar-width)));
    }

    .top-navbar {
        position: fixed;
        z-index: 1085;
        top: 0;
        left: 0;
        right: 0;
        width: 100%;
        padding-top: max(0.35rem, env(safe-area-inset-top, 0));
        padding-left: max(1rem, env(safe-area-inset-left, 0));
        padding-right: max(1rem, env(safe-area-inset-right, 0));
        box-shadow: 0 1px 0 color-mix(in srgb, var(--od-border) 80%, transparent);
    }

    #content,
    #content.expanded {
        width: 100%;
        margin-left: 0;
        padding-top: calc(var(--od-topbar-h) + env(safe-area-inset-top, 0));
    }

    .od-module-bar {
        position: sticky;
        z-index: 50;
        top: calc(var(--od-topbar-h) + env(safe-area-inset-top, 0));
        align-items: flex-start;
        flex-direction: column;
        padding: 0.75rem 1rem;
    }
    .od-sidebar-search kbd { display: none; }
    .od-sidebar-search span { font-size: 0.74rem; }
    .od-module-links {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
        padding-bottom: 0.15rem;
        gap: 0.35rem;
    }
    .od-module-links a {
        scroll-snap-align: start;
        flex-shrink: 0;
        min-height: 40px;
        padding: 0.45rem 0.75rem;
        font-size: 0.76rem;
    }
    .page-content {
        padding: 1rem max(0.85rem, env(safe-area-inset-right, 0)) 1.75rem max(0.85rem, env(safe-area-inset-left, 0));
    }
    .od-page-header {
        gap: 0.75rem;
        margin-bottom: 1rem;
    }
    .od-page-title {
        font-size: clamp(1.25rem, 4.5vw, 1.55rem);
        line-height: 1.2;
    }
    .card {
        border-radius: 16px !important;
    }
    .card-header {
        padding: 0.95rem 1rem !important;
    }
    .od-settings-shell { grid-template-columns: 1fr; gap: 0.85rem; }
    .od-settings-nav {
        position: static;
        flex-direction: row;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
        padding-bottom: 0.35rem;
    }
    .od-settings-nav .nav-item { min-width: 168px; scroll-snap-align: start; flex-shrink: 0; }
    .od-settings-nav-mobile-wrap {
        display: block;
    }
    .od-settings-nav:not(.od-settings-nav--force-desktop) {
        display: none !important;
    }
    .od-settings-hero { min-height: 160px; align-items: flex-start; flex-direction: column; }
    .od-settings-hub {
        flex-direction: column;
        align-items: stretch;
        gap: 0.65rem;
        padding: 0.85rem;
        border-radius: 16px;
    }
    .od-settings-hub-title { display: none; }
    .od-settings-hub-mobile-wrap { display: block; }
    .od-settings-hub-links { display: none; }
    .table-responsive {
        -webkit-overflow-scrolling: touch;
        overflow-x: auto;
    }
    .form-control,
    .form-select {
        min-height: 44px;
        font-size: 16px;
    }
    .btn:not(.btn-sm):not(.od-btn-icon) {
        min-height: 44px;
    }
    .od-btn-icon {
        width: 44px;
        height: 44px;
        min-height: 44px;
        flex-basis: 44px;
    }
}

@media (max-width: 768px) {
    .od-topbar-context { display: none; }
    .od-page-header {
        flex-direction: column;
        align-items: stretch !important;
        gap: 0.85rem;
    }
    .od-page-actions {
        width: 100%;
        justify-content: stretch;
    }
    .od-page-actions .btn {
        flex: 1 1 auto;
    }
    .card-body { padding: 1rem !important; }
    .modal-dialog {
        margin: 0.75rem auto !important;
        max-width: calc(100vw - 1.5rem);
    }
    .modal-fullscreen-sm-down {
        width: 100vw;
        max-width: none;
        margin: 0;
    }
    .od-choice-grid,
    .od-choice-grid-3 { grid-template-columns: 1fr; }
    .od-accent-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .od-theme-preview-cards { grid-template-columns: 1fr; }
    .od-settings-savebar { position: static; align-items: stretch; flex-direction: column; }
    .od-settings-savebar .btn { width: 100%; }
    .od-ticket-preview { align-items: flex-start; flex-direction: column; }
    .table-responsive { border-radius: 12px; }
    .od-table-toolbar { align-items: stretch; flex-direction: column; }
    .od-table-search,
    .od-table-actions,
    .od-table-actions .btn { width: 100%; }
    .od-table-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .od-theme-table thead { display: none; }
    .od-theme-table,
    .od-theme-table tbody,
    .od-theme-table tr,
    .od-theme-table td { display: block; width: 100%; }
    .od-theme-table tbody tr {
        margin: 0.75rem;
        overflow: hidden;
        background: var(--od-surface);
        border: 1px solid var(--od-border);
        border-radius: var(--od-radius-md);
        box-shadow: var(--od-shadow-xs);
    }
    .od-theme-table tbody tr:last-child { margin-bottom: 0.75rem; }
    .od-theme-table td {
        display: flex !important;
        align-items: flex-start;
        justify-content: space-between;
        gap: 1rem;
        min-height: 42px;
        text-align: right;
        border-bottom: 1px solid var(--od-border) !important;
    }
    .od-theme-table td::before {
        min-width: 38%;
        color: var(--od-text-muted);
        content: attr(data-label);
        font-size: 0.66rem;
        font-weight: 900;
        letter-spacing: 0.08em;
        text-align: left;
        text-transform: uppercase;
    }
    .od-theme-table td:empty { display: none !important; }
    .dataTables_filter { width: 100%; text-align: left !important; }
    .dataTables_filter input { width: 100% !important; margin-left: 0 !important; }
}

@media (max-width: 576px) {
    .top-navbar {
        height: var(--od-topbar-h);
        min-height: var(--od-topbar-h);
        padding-top: max(0.35rem, env(safe-area-inset-top, 0));
        padding-bottom: 0.35rem;
    }
    :root { --od-topbar-h: 60px; }
    .od-quick-btn { width: 40px; padding: 0 !important; font-size: 0 !important; }
    .od-quick-btn i { margin: 0 !important; font-size: 0.8rem; }
    .od-profile-trigger > span:not(.od-avatar-sm) { display: none !important; }
    .od-profile-trigger { width: 38px; padding: 0.2rem !important; }
    .od-branch-trigger { width: 38px; min-width: 38px; height: 38px; }
    .od-branch-icon { width: 30px; height: 30px; flex-basis: 30px; }
    .od-page-title { font-size: 1.45rem; }
    .od-page-actions, .od-page-actions .btn { width: 100%; }
    .od-module-identity { min-width: 0; }
    .od-module-links a span { display: none; }
    .od-module-links a { min-width: 42px; justify-content: center; }
    .od-project-meta { grid-template-columns: 1fr; }
    .od-settings-hero { padding: 1.25rem; border-radius: 20px; }
    .od-settings-hero-actions, .od-settings-hero-actions .btn { width: 100%; }
    .od-settings-nav .nav-item { min-width: 168px; }
    .od-command-footer { display: none; }
    .modal-dialog { margin: 0.65rem !important; }
    .od-login-form-side { width: 100%; min-width: 0; padding: 2rem 1.25rem; }
}

@media (max-width: 900px) {
    .od-login-brand { display: none; }
    .od-login-form-side { width: 100%; min-width: 0; }
}

@media print {
    @page { size: A4; margin: 10mm; }
    body { color: #172321 !important; background: #fff !important; }
    #sidebar,
    .top-navbar,
    .od-module-bar,
    .od-page-actions,
    .od-settings-hub,
    .d-print-none,
    .hide-on-pdf,
    .no-print,
    [data-export-ignore],
    .modal,
    .modal-backdrop,
    .dropdown-menu,
    .btn,
    button,
    form,
    .dataTables_filter,
    .dataTables_length,
    .dataTables_info,
    .dataTables_paginate { display: none !important; }
    #content { width: 100% !important; margin: 0 !important; padding: 0 !important; }
    .page-content { padding: 0 !important; }
    .wrapper { display: block !important; }
    .card { color: #172321 !important; background: #fff !important; border: 1px solid #d7e1dc !important; box-shadow: none !important; break-inside: avoid; }
    .card-header { color: #102a2e !important; background: #e3f3f0 !important; border-bottom: 1px solid #c8dbd4 !important; }
    .table-responsive { overflow: visible !important; border: 0 !important; }
    table { width: 100% !important; color: #172321 !important; border-collapse: collapse !important; font-size: 10px !important; }
    th, td { padding: 5px 6px !important; color: #172321 !important; background: #fff !important; border: 1px solid #d7e1dc !important; }
    th { color: #102a2e !important; background: #e3f3f0 !important; font-weight: 900 !important; }
    .badge { color: #172321 !important; background: #eef6f3 !important; border: 1px solid #c8dbd4 !important; }
    .od-page-header { margin-bottom: 12px !important; padding-bottom: 10px; border-bottom: 3px solid #0f766e; }
    .od-page-title { color: #102a2e !important; font-size: 22px !important; }
    .od-page-subtitle { color: #475569 !important; }
    a { color: #102a2e !important; text-decoration: none !important; }
}

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

/* ============================================================
   Dark theme — genel UI düzeltmeleri
   ============================================================ */
[data-theme="dark"] body.odera-app {
    background:
        radial-gradient(circle at 4% 4%, rgba(45, 212, 191, 0.05), transparent 24rem),
        linear-gradient(135deg, var(--od-bg), var(--od-bg));
}

[data-theme="dark"] .card {
    color: var(--od-text);
    background: var(--od-surface) !important;
    border-color: var(--od-border) !important;
}

[data-theme="dark"] .card-header,
[data-theme="dark"] .card-footer {
    color: var(--od-text);
    border-color: var(--od-border) !important;
}

[data-theme="dark"] .modal-content {
    color: var(--od-text);
    background: var(--od-surface-raised);
    border-color: var(--od-border);
}

[data-theme="dark"] .modal-header,
[data-theme="dark"] .modal-footer {
    border-color: var(--od-border);
}

[data-theme="dark"] .dropdown-menu {
    color: var(--od-text);
    background: var(--od-surface-raised);
    border-color: var(--od-border);
    box-shadow: var(--od-shadow-md);
}

[data-theme="dark"] .dropdown-item {
    color: var(--od-text);
}

[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus,
[data-theme="dark"] .dropdown-item.active {
    color: var(--od-text);
    background: var(--od-primary-soft);
}

[data-theme="dark"] .dropdown-divider,
[data-theme="dark"] .dropdown-header {
    color: var(--od-text-muted);
    border-color: var(--od-border);
}

[data-theme="dark"] .nav-pills.bg-white,
[data-theme="dark"] .nav-pills.bg-light {
    background: var(--od-surface-soft) !important;
}

[data-theme="dark"] .nav-pills .nav-link {
    color: var(--od-text-muted);
}

[data-theme="dark"] .nav-pills .nav-link.active {
    color: #fff;
    background: var(--od-primary);
}

[data-theme="dark"] .list-group-item {
    color: var(--od-text);
    background: var(--od-surface);
    border-color: var(--od-border);
}

[data-theme="dark"] .table-responsive {
    background: var(--od-surface);
    border-color: var(--od-border);
}

[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
    color: var(--od-text);
    background: var(--od-surface-soft) !important;
}

[data-theme="dark"] .table-bordered > :not(caption) > * > * {
    border-color: var(--od-border) !important;
}

[data-theme="dark"] .od-table-toolbar,
[data-theme="dark"] .od-table-search {
    color: var(--od-text-muted) !important;
    background: var(--od-surface-soft) !important;
    border-color: var(--od-border) !important;
}

[data-theme="dark"] .od-stat-card {
    background: var(--od-surface) !important;
}

[data-theme="dark"] .od-ops-card:not(.od-ops-dark) {
    color: var(--od-text);
    background: var(--od-surface) !important;
    border-color: var(--od-border) !important;
}

[data-theme="dark"] .top-navbar,
[data-theme="dark"] .od-module-bar {
    background: color-mix(in srgb, var(--od-surface) 92%, transparent);
    border-color: var(--od-border);
}

[data-theme="dark"] .page-content {
    color: var(--od-text);
}

[data-theme="dark"] .btn-light,
[data-theme="dark"] .btn-outline-light {
    color: var(--od-text) !important;
    background: var(--od-surface-soft) !important;
    border-color: var(--od-border) !important;
}

[data-theme="dark"] .btn-outline-secondary,
[data-theme="dark"] .btn-outline-dark {
    color: var(--od-text-muted) !important;
    border-color: var(--od-border-strong) !important;
}

[data-theme="dark"] .btn-outline-dark:hover,
[data-theme="dark"] .btn-outline-secondary:hover {
    color: var(--od-text) !important;
    background: var(--od-surface-muted) !important;
}

[data-theme="dark"] .input-group-text {
    color: var(--od-text-muted) !important;
    background: var(--od-surface-muted) !important;
    border-color: var(--od-border) !important;
}

[data-theme="dark"] .form-control:disabled,
[data-theme="dark"] .form-control[readonly],
[data-theme="dark"] .form-select:disabled {
    color: var(--od-text-muted) !important;
    background: var(--od-surface-muted) !important;
}

[data-theme="dark"] .alert-secondary {
    color: var(--od-text);
    background: var(--od-surface-muted);
    border-color: var(--od-border);
}

[data-theme="dark"] .alert-info {
    color: #9ecae8;
    background: rgba(57, 118, 168, 0.14);
    border-color: rgba(57, 118, 168, 0.28);
}

[data-theme="dark"] .badge.bg-light,
[data-theme="dark"] .badge.text-dark {
    color: var(--od-text) !important;
    background: var(--od-surface-muted) !important;
}

[data-theme="dark"] .shadow-sm,
[data-theme="dark"] .shadow {
    box-shadow: var(--od-shadow-sm) !important;
}

[data-theme="dark"] .od-settings-hero,
[data-theme="dark"] .od-settings-card {
    background: var(--od-surface) !important;
    border-color: var(--od-border) !important;
}

[data-theme="dark"] .od-setting-row {
    border-color: var(--od-border) !important;
}

[data-theme="dark"] hr {
    border-color: var(--od-border);
    opacity: 1;
}

[data-theme="dark"] .chartjs-render-monitor,
[data-theme="dark"] canvas {
    filter: none;
}

/* ============================================================
   Filo / Yakıt modülü
   ============================================================ */
.od-yakit-scoreboard,
.od-bakim-grid {
    display: grid;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.od-yakit-scoreboard {
    grid-template-columns: minmax(260px, 1.25fr) repeat(3, minmax(170px, 1fr));
}

.od-bakim-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.od-yakit-tank-panel,
.od-yakit-metric,
.od-yakit-filter-card,
.od-yakit-table-card,
.od-yakit-vehicle-card,
.od-bakim-metric,
.od-bakim-filter,
.od-bakim-table {
    border: 1px solid var(--od-border);
    border-radius: var(--od-radius-lg);
    background: var(--od-surface);
    box-shadow: var(--od-shadow-xs);
}

.od-yakit-tank-panel {
    padding: 1.15rem 1.25rem;
    color: #fff;
    background:
        radial-gradient(circle at 92% 18%, rgba(237, 189, 103, 0.16), transparent 10rem),
        linear-gradient(145deg, #102d30, #173d3d);
    border-color: rgba(255, 255, 255, 0.08);
}

.od-yakit-tank-top {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.od-yakit-tank-icon {
    display: inline-flex;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    color: #edbd67;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 12px;
}

.od-yakit-tank-title,
.od-yakit-metric-label,
.od-yakit-mini-label,
.od-bakim-label {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--od-text-muted);
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.od-yakit-tank-panel .od-yakit-tank-title,
.od-yakit-tank-panel .od-yakit-tank-caption,
.od-yakit-tank-panel .od-yakit-mini-label {
    color: rgba(255, 255, 255, 0.68);
}

.od-yakit-tank-value {
    color: #fff;
    font-size: clamp(1.5rem, 2.4vw, 1.85rem);
    font-weight: 850;
    line-height: 1.1;
    letter-spacing: -0.045em;
}

.od-yakit-tank-caption {
    font-size: 0.78rem;
    font-weight: 650;
}

.od-yakit-stock-bar {
    height: 12px;
    margin: 0.85rem 0;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.12);
    border-radius: 999px;
}

.od-yakit-stock-fill {
    height: 100%;
    border-radius: inherit;
}

.od-yakit-mini-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.55rem;
}

.od-yakit-mini {
    padding: 0.65rem 0.75rem;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
}

.od-yakit-mini strong,
.od-yakit-tank-panel .od-yakit-mini strong {
    display: block;
    color: #fff;
    font-weight: 800;
}

.od-yakit-metric,
.od-bakim-metric {
    position: relative;
    min-height: 150px;
    padding: 1.15rem;
    overflow: hidden;
    transition: transform var(--od-transition), box-shadow var(--od-transition);
}

.od-yakit-metric:hover,
.od-bakim-metric:hover {
    transform: translateY(-3px);
    box-shadow: var(--od-shadow-sm);
}

.od-yakit-metric-icon,
.od-bakim-icon {
    display: inline-flex;
    width: 50px;
    height: 50px;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.85rem;
    border-radius: 12px;
}

.od-yakit-metric:nth-child(2) .od-yakit-metric-icon { color: var(--od-success); background: color-mix(in srgb, var(--od-success) 12%, var(--od-surface)); }
.od-yakit-metric:nth-child(3) .od-yakit-metric-icon { color: var(--od-warning); background: var(--od-accent-soft); }
.od-yakit-metric:nth-child(4) .od-yakit-metric-icon { color: var(--od-info); background: color-mix(in srgb, var(--od-info) 12%, var(--od-surface)); }

.od-bakim-metric:nth-child(1) .od-bakim-icon { color: var(--od-warning); background: var(--od-accent-soft); }
.od-bakim-metric:nth-child(2) .od-bakim-icon { color: var(--od-danger); background: color-mix(in srgb, var(--od-danger) 12%, var(--od-surface)); }
.od-bakim-metric:nth-child(3) .od-bakim-icon { color: var(--od-info); background: color-mix(in srgb, var(--od-info) 12%, var(--od-surface)); }
.od-bakim-metric:nth-child(4) .od-bakim-icon { color: var(--od-success); background: color-mix(in srgb, var(--od-success) 12%, var(--od-surface)); }

.od-yakit-metric-value,
.od-bakim-value {
    display: block;
    color: var(--od-text);
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    font-weight: 850;
    line-height: 1.15;
    letter-spacing: -0.045em;
}

.od-yakit-metric-foot {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0.85rem;
    padding-top: 0.75rem;
    color: var(--od-text-muted);
    font-size: 0.72rem;
    font-weight: 750;
    border-top: 1px solid var(--od-border);
}

.od-yakit-filter-card,
.od-bakim-filter {
    padding: 1rem 1.15rem;
    margin-bottom: 1.25rem;
    background:
        radial-gradient(circle at 0 0, rgba(15, 118, 110, 0.06), transparent 15rem),
        var(--od-surface);
}

.od-yakit-quick-ranges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.od-yakit-quick-ranges .btn {
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
}

.od-yakit-table-card,
.od-bakim-table {
    overflow: visible;
    margin-bottom: 2rem;
}

.od-yakit-tabs,
.od-bakim-table-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem 0;
    border-bottom: 1px solid var(--od-border);
}

.od-bakim-table-head {
    padding: 1rem 1.15rem;
}

.od-yakit-tabs .nav-link {
    padding: 0.75rem 0.95rem;
    color: var(--od-text-muted);
    font-size: 0.84rem;
    font-weight: 800;
    border: 0;
    border-radius: var(--od-radius-sm) var(--od-radius-sm) 0 0;
    background: transparent;
}

.od-yakit-tabs .nav-link.active {
    color: var(--od-primary) !important;
    background: var(--od-primary-soft) !important;
}

.od-yakit-vehicle-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 0.85rem;
}

.od-yakit-vehicle-card {
    position: relative;
    min-height: 150px;
    padding: 0.95rem;
}

.od-yakit-vehicle-icon {
    display: inline-flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    margin-right: 0.65rem;
    color: var(--od-primary);
    background: var(--od-primary-soft);
    border-radius: 12px;
}

.od-yakit-consumption {
    margin-top: 0.85rem;
    padding: 0.75rem;
    background: color-mix(in srgb, var(--od-danger) 8%, var(--od-surface));
    border: 1px solid color-mix(in srgb, var(--od-danger) 18%, var(--od-border));
    border-radius: 12px;
}

.od-yakit-empty,
.od-bakim-empty {
    padding: 2.5rem 1.25rem;
    color: var(--od-text-muted);
    font-weight: 750;
    text-align: center;
}

.od-yakit-action-menu .btn,
.od-bakim-action-menu .btn {
    display: inline-flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
}

.od-bakim-plate {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.65rem;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 900;
    background: linear-gradient(145deg, #102d30, #173d3d);
    border-radius: 10px;
}

.od-filo-modal .modal-body {
    background: var(--od-surface-soft);
}

.od-filo-modal .modal-footer {
    background: transparent;
    border-top: 1px solid var(--od-border);
}

.blink-text {
    animation: od-blink 1s linear infinite;
}

@keyframes od-blink {
    50% { opacity: 0.35; }
}

@media (max-width: 1199.98px) {
    .od-yakit-scoreboard,
    .od-bakim-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .od-yakit-scoreboard,
    .od-yakit-mini-grid,
    .od-bakim-grid {
        grid-template-columns: 1fr;
    }

    .od-yakit-tank-top,
    .od-yakit-tabs,
    .od-bakim-table-head {
        flex-direction: column;
        align-items: stretch;
    }

    .od-yakit-tabs .btn-group {
        width: 100%;
    }

    .od-yakit-tabs .btn-group .btn {
        flex: 1 1 auto;
    }
}

.od-yakit-table-card .table thead th,
.od-bakim-table .table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--od-surface-soft) !important;
    color: var(--od-text-muted) !important;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--od-border);
    white-space: nowrap;
}

.od-filo-pdf-area {
    background: var(--od-surface-soft);
}

@media print {
    body { background-color: #fff !important; font-family: Arial, sans-serif !important; }
    #sidebar, .top-navbar, .d-print-none, .hide-on-pdf { display: none !important; }
    #content { margin: 0 !important; padding: 0 !important; width: 100% !important; }
    .card { border: none !important; box-shadow: none !important; }
    .table-bordered th, .table-bordered td { border: 1px solid #000 !important; color: #000 !important; padding: 6px !important; }
    .od-yakit-table-card .table thead th { background-color: #343a40 !important; color: #fff !important; }
    .text-danger { color: #dc3545 !important; }
    .text-success { color: #198754 !important; }
    .pdf-only { display: inline-block !important; }
}

[data-theme="dark"] .od-yakit-metric,
[data-theme="dark"] .od-yakit-filter-card,
[data-theme="dark"] .od-yakit-table-card,
[data-theme="dark"] .od-yakit-vehicle-card,
[data-theme="dark"] .od-bakim-metric,
[data-theme="dark"] .od-bakim-filter,
[data-theme="dark"] .od-bakim-table {
    background: var(--od-surface);
    border-color: var(--od-border);
}

[data-theme="dark"] .od-yakit-tabs .nav-link.active {
    color: #fff !important;
    background: color-mix(in srgb, var(--od-primary) 72%, #000) !important;
}

/* ============================================================
   Personel / İK modülü
   ============================================================ */
.od-personel-scoreboard {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.od-personel-metric,
.od-personel-shell,
.od-personel-panel,
.od-personel-filter,
.od-personel-bordro-card {
    border: 1px solid var(--od-border);
    border-radius: var(--od-radius-lg);
    background: var(--od-surface);
    box-shadow: var(--od-shadow-xs);
}

.od-personel-metric {
    position: relative;
    min-height: 138px;
    padding: 1.15rem;
    overflow: hidden;
    transition: transform var(--od-transition), box-shadow var(--od-transition);
}

.od-personel-metric:hover {
    transform: translateY(-3px);
    box-shadow: var(--od-shadow-sm);
}

.od-personel-metric-icon {
    display: inline-flex;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.85rem;
    border-radius: 12px;
}

.od-personel-metric:nth-child(1) .od-personel-metric-icon { color: var(--od-primary); background: var(--od-primary-soft); }
.od-personel-metric:nth-child(2) .od-personel-metric-icon { color: var(--od-success); background: color-mix(in srgb, var(--od-success) 12%, var(--od-surface)); }
.od-personel-metric:nth-child(3) .od-personel-metric-icon { color: var(--od-warning); background: var(--od-accent-soft); }
.od-personel-metric:nth-child(4) .od-personel-metric-icon { color: var(--od-danger); background: color-mix(in srgb, var(--od-danger) 12%, var(--od-surface)); }

.od-personel-metric-label {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--od-text-muted);
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.od-personel-metric-value {
    display: block;
    color: var(--od-text);
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    font-weight: 850;
    line-height: 1.15;
    letter-spacing: -0.045em;
}

.od-personel-metric-foot {
    margin-top: 0.75rem;
    padding-top: 0.65rem;
    color: var(--od-text-muted);
    font-size: 0.72rem;
    font-weight: 750;
    border-top: 1px solid var(--od-border);
}

.od-personel-shell {
    overflow: hidden;
    margin-bottom: 2rem;
}

.od-personel-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem 0;
    border-bottom: 1px solid var(--od-border);
}

.od-personel-tabs .nav-link {
    padding: 0.75rem 0.95rem;
    color: var(--od-text-muted);
    font-size: 0.84rem;
    font-weight: 800;
    border: 0;
    border-radius: var(--od-radius-sm) var(--od-radius-sm) 0 0;
    background: transparent;
}

.od-personel-tabs .nav-link.active {
    color: var(--od-primary) !important;
    background: var(--od-primary-soft) !important;
}

.od-personel-body {
    padding: 1rem;
    background: var(--od-surface-soft);
}

.od-personel-puantaj-bar,
.od-personel-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    padding: 0.95rem 1.05rem;
    margin-bottom: 1rem;
    background:
        radial-gradient(circle at 0 0, rgba(15, 118, 110, 0.06), transparent 14rem),
        var(--od-surface);
}

.od-puantaj-bulk {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
}

.od-puantaj-bulk-label {
    color: var(--od-text-muted);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.od-puantaj-bulk .btn {
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
}

.od-personel-panel {
    overflow: hidden;
}

.od-personel-panel .table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--od-surface-soft) !important;
    color: var(--od-text-muted) !important;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--od-border);
    white-space: nowrap;
}

.od-puantaj-radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.od-puantaj-radio-group .btn {
    flex: 1 1 auto;
    min-width: 3.2rem;
    padding: 0.28rem 0.45rem;
    font-size: 0.68rem;
    font-weight: 800;
    border-radius: 8px;
}

.od-puantaj-radio-group .btn-check:checked + .btn-outline-success { background: var(--od-success) !important; color: #fff !important; border-color: var(--od-success) !important; }
.od-puantaj-radio-group .btn-check:checked + .btn-outline-warning { background: var(--od-warning) !important; color: #102a2e !important; border-color: var(--od-warning) !important; }
.od-puantaj-radio-group .btn-check:checked + .btn-outline-info { background: var(--od-info) !important; color: #fff !important; border-color: var(--od-info) !important; }
.od-puantaj-radio-group .btn-check:checked + .btn-outline-primary { background: var(--od-primary) !important; color: #fff !important; border-color: var(--od-primary) !important; }
.od-puantaj-radio-group .btn-check:checked + .btn-outline-danger { background: var(--od-danger) !important; color: #fff !important; border-color: var(--od-danger) !important; }

.od-personel-avatar {
    display: inline-flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    margin-right: 0.55rem;
    color: var(--od-primary);
    background: var(--od-primary-soft);
    border-radius: 10px;
    font-size: 0.85rem;
}

.od-personel-search {
    min-width: 220px;
}

.od-personel-bordro-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 0.85rem;
}

.od-personel-bordro-card {
    position: relative;
    padding: 1rem;
}

.od-personel-bordro-card.is-settled {
    opacity: 0.82;
}

.od-personel-bordro-name {
    margin-bottom: 0.35rem;
    color: var(--od-text);
    font-size: 0.92rem;
    font-weight: 850;
    letter-spacing: -0.02em;
    text-transform: uppercase;
}

.od-personel-bordro-row {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.35rem 0;
    color: var(--od-text-muted);
    font-size: 0.78rem;
    font-weight: 650;
    border-bottom: 1px solid var(--od-border);
}

.od-personel-bordro-row strong { color: var(--od-text); font-weight: 800; }

.od-personel-bordro-net {
    margin: 0.75rem 0;
    padding: 0.75rem;
    text-align: center;
    background: var(--od-surface-soft);
    border: 1px solid var(--od-border);
    border-radius: 12px;
}

.od-personel-bordro-net small {
    display: block;
    margin-bottom: 0.2rem;
    color: var(--od-text-muted);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.od-personel-bordro-net strong {
    font-size: 1.25rem;
    font-weight: 850;
    letter-spacing: -0.04em;
}

.od-personel-empty {
    padding: 2.5rem 1.25rem;
    color: var(--od-text-muted);
    font-weight: 750;
    text-align: center;
}

.od-personel-modal .modal-body {
    background: var(--od-surface-soft);
}

.od-personel-modal .modal-footer {
    background: transparent;
    border-top: 1px solid var(--od-border);
}

@media (max-width: 1199.98px) {
    .od-personel-scoreboard { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
    .od-personel-scoreboard,
    .od-personel-bordro-grid { grid-template-columns: 1fr; }

    .od-personel-puantaj-bar,
    .od-personel-filter,
    .od-personel-tabs { flex-direction: column; align-items: stretch; }

    .od-puantaj-bulk { width: 100%; }
    .od-puantaj-bulk .btn { flex: 1 1 calc(50% - 0.25rem); }

    .od-puantaj-radio-group .btn { min-width: calc(33% - 0.25rem); }
}

[data-theme="dark"] .od-personel-metric,
[data-theme="dark"] .od-personel-shell,
[data-theme="dark"] .od-personel-panel,
[data-theme="dark"] .od-personel-filter,
[data-theme="dark"] .od-personel-bordro-card,
[data-theme="dark"] .od-personel-puantaj-bar {
    background: var(--od-surface);
    border-color: var(--od-border);
}

[data-theme="dark"] .od-personel-tabs .nav-link.active {
    color: #fff !important;
    background: color-mix(in srgb, var(--od-primary) 72%, #000) !important;
}

@media print {
    .od-personel-print-header { display: block !important; }
    .od-personel-shell,
    .od-personel-scoreboard { display: none !important; }
}

/* ============================================================
   Cari modülü — yazdırma / A4 PDF
   ============================================================ */
.od-cari-print-header { display: none; }

.pdf-a4-mode {
    background: #fff !important;
    color: #000 !important;
    max-width: 190mm;
    margin: 0 auto;
    padding: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

.pdf-a4-mode .od-cari-print-header,
.pdf-a4-mode .pdf-special-header { display: block !important; }

.pdf-a4-mode .table-responsive {
    overflow: visible !important;
    max-height: none !important;
}

.pdf-a4-mode table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
}

.pdf-a4-mode th,
.pdf-a4-mode td {
    border: 1px solid #cbd5e1 !important;
    color: #000 !important;
    padding: 4px 5px !important;
    font-size: 8.5px !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    word-break: break-word !important;
    vertical-align: top !important;
}

.pdf-a4-mode .od-cari-actions,
.pdf-a4-mode .od-cari-risk,
.pdf-a4-mode .od-cari-ekstre-strip,
.pdf-a4-mode .dataTables_filter,
.pdf-a4-mode .dataTables_length,
.pdf-a4-mode .dataTables_info,
.pdf-a4-mode .dataTables_paginate { display: none !important; }

.od-cari-mutabakat-ozet {
    margin: 1rem 1.2rem 1.25rem;
    padding: .85rem 1rem;
    border: 1px solid var(--od-border, #cbd5e1);
    border-radius: 12px;
    background: var(--od-surface-soft, #f8fafc);
}
.od-cari-mutabakat-ozet-head {
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--od-text-muted, #64748b);
    margin-bottom: .55rem;
}
.od-cari-mutabakat-ozet-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .82rem;
}
.od-cari-mutabakat-ozet-table td {
    padding: .35rem .25rem;
    border-bottom: 1px dashed var(--od-border, #e2e8f0);
    vertical-align: middle;
}
.od-cari-mutabakat-ozet-table tr:last-child td { border-bottom: none; }
.od-cari-mutabakat-ozet-net td {
    border-top: 2px solid var(--od-border, #94a3b8);
    padding-top: .55rem;
    font-size: .9rem;
}
.od-cari-mutabakat-ozet-legend {
    margin-top: .55rem;
    font-size: .68rem;
    color: var(--od-text-muted, #64748b);
    font-weight: 700;
}
.pdf-a4-mode .od-cari-mutabakat-ozet {
    margin: 8px 0 0;
    padding: 6px 8px;
    border: 1px solid #94a3b8;
    border-radius: 0;
    background: #f8fafc !important;
}
.pdf-a4-mode .od-cari-mutabakat-ozet-head { font-size: 8px; margin-bottom: 4px; color: #334155 !important; }
.pdf-a4-mode .od-cari-mutabakat-ozet-table { font-size: 8.5px !important; }
.pdf-a4-mode .od-cari-mutabakat-ozet-table td {
    border-color: #cbd5e1 !important;
    color: #000 !important;
    padding: 3px 4px !important;
}
.pdf-a4-mode .od-cari-mutabakat-ozet-legend { font-size: 7.5px !important; color: #475569 !important; }

@media print {
    @page { size: A4 portrait; margin: 9mm 8mm; }
    html, body { width: 210mm; background: #fff !important; margin: 0; padding: 0; font-family: Arial, sans-serif !important; color: #000 !important; }
    #sidebar, .top-navbar, .d-print-none, .hide-on-pdf, .od-cari-actions, .od-cari-risk, .od-cari-ekstre-strip,
    .dataTables_filter, .dataTables_length, .dataTables_info, .dataTables_paginate { display: none !important; }
    #content, .page-content { margin: 0 !important; padding: 0 !important; width: 100% !important; }
    #pdf_cari_alani, #pdf_ekstre_alani { width: 100% !important; max-width: 100% !important; margin: 0 !important; }
    .card { border: none !important; box-shadow: none !important; border-radius: 0 !important; }
    .card-header, .card-body { padding: 0 !important; }
    .od-cari-print-header, .pdf-special-header { display: block !important; padding: 0 0 7px !important; }
    .table-responsive { max-height: none !important; overflow: visible !important; width: 100% !important; }
    table { width: 100% !important; table-layout: fixed !important; border-collapse: collapse !important; }
    thead { display: table-header-group; }
    tfoot { display: table-footer-group; }
    tr { page-break-inside: avoid; break-inside: avoid; }
    .table-modern th, .table-modern td, .table th, .table td {
        border: 1px solid #cbd5e1 !important;
        color: #000 !important;
        padding: 3.5px 4px !important;
        font-size: 8.5px !important;
        line-height: 1.22 !important;
        white-space: normal !important;
        word-break: break-word !important;
        vertical-align: top !important;
    }
    .table-modern th, .table th { background: #e2e8f0 !important; font-weight: 800 !important; }
    .od-cari-ekstre-foot, .od-cari-ekstre-foot td { background: #e2e8f0 !important; color: #000 !important; font-weight: 800 !important; }
    .od-cari-mutabakat-ozet {
        margin: 8px 0 0 !important;
        padding: 6px 8px !important;
        border: 1px solid #94a3b8 !important;
        border-radius: 0 !important;
        background: #f8fafc !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    .od-cari-mutabakat-ozet-head { font-size: 8px !important; color: #334155 !important; }
    .od-cari-mutabakat-ozet-table { font-size: 8.5px !important; }
    .od-cari-mutabakat-ozet-table td { border-color: #cbd5e1 !important; color: #000 !important; padding: 3px 4px !important; }
    .od-cari-mutabakat-ozet-legend { font-size: 7.5px !important; color: #475569 !important; }
    #cariTablosu th:nth-child(1) { width: 14%; }
    #cariTablosu th:nth-child(2) { width: 28%; }
    #cariTablosu th:nth-child(3), #cariTablosu th:nth-child(4) { width: 16%; }
    #cariTablosu th:nth-child(5) { width: 26%; }
    #ekstreTablo th:nth-child(1) { width: 11%; }
    #ekstreTablo th:nth-child(2) { width: 14%; }
    #ekstreTablo th:nth-child(3) { width: 33%; }
    #ekstreTablo th:nth-child(4), #ekstreTablo th:nth-child(5) { width: 13%; }
    #ekstreTablo th:nth-child(6) { width: 16%; }
}

/* --- Dashboard canlı kokpit --- */
.od-live-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(16, 185, 129, 0.12);
    border: 1px solid rgba(16, 185, 129, 0.35);
    color: var(--od-success, #10b981);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}
.od-live-badge small { opacity: 0.85; font-weight: 700; }
.od-live-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #10b981;
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.6);
    animation: odLivePulse 1.8s infinite;
}
@keyframes odLivePulse {
    0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.55); }
    70% { box-shadow: 0 0 0 8px rgba(16, 185, 129, 0); }
    100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
}
.od-dash-quick {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.od-dash-quick-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 12px;
    background: var(--od-surface, #fff);
    border: 1px solid var(--od-border, #e5e7eb);
    color: var(--od-text, #111827);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 700;
    transition: border-color 0.15s, transform 0.15s;
}
.od-dash-quick-item:hover {
    border-color: var(--od-primary, #2563eb);
    color: var(--od-primary, #2563eb);
    transform: translateY(-1px);
}
.od-dash-mini {
    background: var(--od-surface, #fff);
    border: 1px solid var(--od-border, #e5e7eb);
    border-radius: 14px;
    padding: 14px 16px;
    height: 100%;
}
.od-dash-mini-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--od-text-muted, #6b7280);
    margin-bottom: 4px;
}
.od-dash-mini strong { font-size: 1.25rem; color: var(--od-text, #111827); }
.od-live-feed-item {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 4px 12px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--od-border, #e5e7eb);
}
.od-live-feed-item:last-child { border-bottom: 0; }
.od-live-feed-meta {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 0.72rem;
    color: var(--od-text-muted, #6b7280);
}
.od-live-feed-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 0.82rem;
}
.od-live-feed-ton {
    grid-row: 1 / span 2;
    align-self: center;
    font-weight: 800;
    color: var(--od-primary, #2563eb);
    font-size: 0.9rem;
}
.od-cek-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--od-border, #e5e7eb);
    font-size: 0.82rem;
}
.od-cek-row:last-child { border-bottom: 0; }

/* --- Rapor merkezi kartları --- */
.od-report-card {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 22px;
    height: 100%;
    border-radius: 16px;
    background: var(--od-surface, #fff);
    border: 1px solid var(--od-border, #e5e7eb);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
    position: relative;
}
.od-report-card:hover {
    border-color: var(--od-primary, #2563eb);
    box-shadow: 0 8px 24px rgba(37, 99, 235, 0.08);
    transform: translateY(-2px);
    color: inherit;
}
.od-report-card h5 { font-size: 1rem; font-weight: 800; margin: 0 0 6px; }
.od-report-card p { font-size: 0.82rem; color: var(--od-text-muted, #6b7280); margin: 0; line-height: 1.45; }
.od-report-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    flex-shrink: 0;
}
.od-report-icon.icon-dark { background: rgba(15, 23, 42, 0.08); color: #0f172a; }
.od-report-arrow {
    margin-left: auto;
    align-self: center;
    color: var(--od-text-muted, #9ca3af);
    font-size: 0.85rem;
}
html[data-theme="dark"] .od-dash-quick-item,
html[data-theme="dark"] .od-dash-mini,
html[data-theme="dark"] .od-report-card {
    background: var(--od-surface-elevated, #1e293b);
    border-color: var(--od-border, #334155);
}
html[data-theme="dark"] .od-dash-mini strong,
html[data-theme="dark"] .od-report-card h5 { color: var(--od-text, #f1f5f9); }

/* --- Modül export toolbar --- */
.od-export-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 10px 14px;
    border-radius: 14px;
    border: 1px solid var(--od-border, #e5e7eb);
    background: var(--od-surface, #fff);
}
.od-export-toolbar-copy {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.od-export-toolbar-copy > i {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    font-size: 0.95rem;
    flex-shrink: 0;
}
.od-export-toolbar-copy strong { display: block; font-size: 0.85rem; }
.od-export-toolbar-copy small { display: block; color: var(--od-text-muted); font-size: 0.72rem; font-weight: 700; }
.od-export-toolbar-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.od-export-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 10px;
    border: 1px solid transparent;
    font-size: 0.78rem;
    font-weight: 800;
    cursor: pointer;
    transition: transform 0.12s, box-shadow 0.12s;
}
.od-export-btn:hover { transform: translateY(-1px); }
.od-export-print { color: #334155; background: #f1f5f9; border-color: #cbd5e1; }
.od-export-excel { color: #065f46; background: rgba(16,185,129,0.12); border-color: rgba(16,185,129,0.35); }
.od-export-pdf { color: #991b1b; background: rgba(239,68,68,0.1); border-color: rgba(239,68,68,0.3); }
.od-export-fuel .od-export-toolbar-copy > i { color: #b45309; background: rgba(245,158,11,0.15); }
.od-export-maintenance .od-export-toolbar-copy > i { color: #c2410c; background: rgba(249,115,22,0.12); }
.od-export-finance .od-export-toolbar-copy > i { color: #0f766e; background: rgba(15,118,110,0.12); }
.od-export-registry .od-export-toolbar-copy > i { color: #1d4ed8; background: rgba(37,99,235,0.12); }
.od-export-report .od-export-toolbar-copy > i { color: #7c3aed; background: rgba(124,58,237,0.12); }
.od-export-payroll .od-export-toolbar-copy > i { color: #475569; background: rgba(100,116,139,0.12); }
.od-export-treasury .od-export-toolbar-copy > i { color: #0f766e; background: rgba(15,118,110,0.12); }
.od-export-project .od-export-toolbar-copy > i { color: #0369a1; background: rgba(3,105,161,0.12); }
.od-export-tender .od-export-toolbar-copy > i { color: #9333ea; background: rgba(147,51,234,0.12); }
.od-export-ledger .od-export-toolbar-copy > i { color: #0f766e; background: rgba(15,118,110,0.12); }

.od-output-header-main {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}
.od-output-logo {
    max-height: 48px;
    max-width: 110px;
    object-fit: contain;
}
.od-offscreen-export {
    position: fixed;
    left: -200vw;
    top: 0;
    width: 1100px;
    opacity: 0;
    pointer-events: none;
    z-index: -1;
    background: #fff;
}
@media print {
    .od-offscreen-export {
        position: static;
        left: auto;
        opacity: 1;
        pointer-events: auto;
        z-index: auto;
    }
}

[data-density="compact"] .od-export-toolbar {
    padding: 8px 10px;
}
[data-density="compact"] .od-export-btn {
    padding: 6px 10px;
    font-size: 0.72rem;
}

html[data-theme="dark"] .od-export-toolbar {
    background: var(--od-surface);
    border-color: var(--od-border);
}
html[data-theme="dark"] .od-export-print {
    color: var(--od-text);
    background: var(--od-surface-soft);
    border-color: var(--od-border);
}
.od-table-actions .od-export-btn { padding: 6px 10px; font-size: 0.72rem; }

/* --- Yetki yönetimi --- */
.od-settings-tabs .nav-link { border-radius: 999px; padding: 8px 16px; color: var(--od-text-muted); }
.od-settings-tabs .nav-link.active { background: var(--od-primary); color: #fff; }
.od-perm-check-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 8px;
    max-height: 320px;
    overflow-y: auto;
    padding: 4px;
}
.od-perm-check {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: 1px solid var(--od-border);
    border-radius: 10px;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    margin: 0;
}
.od-perm-checkbox { width: 1.1rem; height: 1.1rem; cursor: pointer; }

/* --- Personel detay --- */
.od-personel-detay-hero {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    padding: 20px 22px;
    margin-bottom: 1.25rem;
    border-radius: 16px;
    border: 1px solid var(--od-border);
    background: var(--od-surface);
}
.od-personel-detay-avatar {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    font-size: 1.5rem;
    color: var(--od-primary);
    background: var(--od-primary-soft);
}
.od-personel-detay-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 28px;
    flex: 1;
}
.od-personel-detay-meta div small {
    display: block;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--od-text-muted);
}
.od-personel-detay-meta div strong { display: block; font-size: 0.95rem; }
.od-personel-row-mesai { background: color-mix(in srgb, var(--od-danger) 6%, transparent); }
.od-personel-mesai-list li,
.od-personel-finans-list li {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--od-border);
    font-size: 0.85rem;
}
.od-personel-mesai-list li:last-child,
.od-personel-finans-list li:last-child { border-bottom: 0; }
.od-personel-mesai-list strong,
.od-personel-finans-list strong { display: block; }
.od-personel-mesai-list span.text-muted { font-size: 0.78rem; font-weight: 600; }

/* --- Firma logosu --- */
.od-brand-logo--img,
.od-login-brand-logo--img {
    background: #fff;
    padding: 4px;
    overflow: hidden;
}
.od-brand-logo img,
.od-login-brand-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: inherit;
}
.od-login-mobile-logo {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    margin: 0 auto 1rem;
    padding: 6px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}
.od-login-mobile-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.od-logo-upload {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
    flex-wrap: wrap;
    padding: 1rem;
    border: 1px dashed var(--od-border);
    border-radius: 14px;
    background: var(--od-surface-soft);
}
.od-logo-preview {
    display: grid;
    place-items: center;
    width: 120px;
    height: 120px;
    flex: 0 0 120px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid var(--od-border);
    overflow: hidden;
}
.od-logo-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.od-logo-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    color: var(--od-text-muted);
    font-size: 1.35rem;
}
.od-logo-placeholder small {
    font-size: 0.68rem;
    font-weight: 700;
}
.od-logo-upload-copy {
    flex: 1 1 220px;
    min-width: 0;
}
.od-print-logo {
    max-height: 52px;
    width: auto;
    object-fit: contain;
}

/* --- Mobil modül iyileştirmeleri --- */
@media (max-width: 991.98px) {
    .od-dash-quick-item {
        flex: 1 1 calc(50% - 5px);
        justify-content: center;
        min-width: 0;
        font-size: 0.76rem;
        padding: 9px 12px;
    }
    .od-export-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .od-export-toolbar-actions {
        width: 100%;
    }
    .od-export-toolbar-actions .od-export-btn {
        flex: 1 1 auto;
        justify-content: center;
    }
    .od-settings-nav .nav-link span {
        min-width: 0;
    }
}

@media (max-width: 767.98px) {
    .od-dash-quick {
        gap: 8px;
    }
    .od-dash-quick-item {
        flex: 1 1 calc(50% - 4px);
    }
    .od-live-badge {
        font-size: 0.62rem;
        padding: 4px 8px;
    }
    .od-personel-detay-hero {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
        padding: 16px;
    }
    .od-personel-detay-avatar {
        margin: 0 auto;
    }
    .od-personel-detay-meta {
        justify-content: center;
        gap: 12px 20px;
    }
    .od-personel-detay-meta div {
        flex: 1 1 calc(50% - 10px);
        min-width: 120px;
    }
    .od-puantaj-radio-group {
        flex-direction: column;
    }
    .od-puantaj-radio-group .btn {
        min-width: 100%;
        width: 100%;
    }
    .od-logo-upload {
        flex-direction: column;
        align-items: stretch;
    }
    .od-logo-preview {
        margin: 0 auto;
    }
    .od-perm-check-grid {
        grid-template-columns: 1fr;
    }
    .od-settings-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 4px;
    }
    .od-settings-tabs .nav-link {
        white-space: nowrap;
        flex-shrink: 0;
    }
    .od-personel-mesai-list li,
    .od-personel-finans-list li {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 575.98px) {
    .od-dash-quick-item {
        flex: 1 1 100%;
    }
    .od-personel-detay-meta div {
        flex: 1 1 100%;
    }
    .od-page-toolbar,
    .od-personel-filter .row > [class*="col-"] {
        width: 100%;
    }
}

/* ============================================================
   Rapor merkezi — yazdır / PDF
   ============================================================ */
.od-rapor-print-header { display: none; }
.od-rapor-pdf-zone .od-rapor-metrics .card { break-inside: avoid; }
.od-plan-pdf-summary { display: none; }
.pdf-only { display: none; }
@media print {
    .pdf-only { display: block !important; }
}

.od-rapor-pdf-zone.pdf-export-mode,
.pdf-export-mode {
    padding: 10px;
    background: #fff !important;
    font-family: Arial, sans-serif !important;
}
.pdf-export-mode * { color: #000 !important; }
.pdf-export-mode .card {
    border: 1px solid #ccc !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.pdf-export-mode .od-plan-pdf-summary {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin-bottom: 10px;
}

@media print {
    @page { size: A4 portrait; margin: 9mm 8mm; }
    #sidebar, .top-navbar, .od-page-header, .d-print-none, .hide-on-pdf, .od-chart-zone { display: none !important; }
    #content, .page-content { margin: 0 !important; padding: 0 !important; width: 100% !important; }
    .od-rapor-print-header, .pdf-special-header { display: block !important; }
    .od-rapor-pdf-zone .card { box-shadow: none !important; border: 1px solid #ccc !important; break-inside: avoid; }
    .od-rapor-pdf-zone table { width: 100% !important; border-collapse: collapse !important; font-size: 10px !important; }
    .od-rapor-pdf-zone th, .od-rapor-pdf-zone td { border: 1px solid #cbd5e1 !important; padding: 4px 6px !important; color: #000 !important; }
    .od-rapor-pdf-zone thead { display: table-header-group; }
    .od-rapor-pdf-zone tr { page-break-inside: avoid; break-inside: avoid; }
    .od-plan-pdf-summary { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-bottom: 12px; }
}

/* ============================================================
   Tema uyumluluk — modül geneli (v17)
   ============================================================ */
.od-kur-strip {
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 1rem;
    color: var(--od-text);
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: 999px;
    box-shadow: var(--od-shadow-xs);
    font-size: 0.875rem;
    font-weight: 700;
}

.od-kur-strip .od-kur-divider {
    display: inline-block;
    width: 1px;
    height: 15px;
    margin: 0 0.75rem;
    background: var(--od-border);
}

.card-header.bg-white,
.card-footer.bg-white,
.card-footer.bg-light {
    color: var(--od-text);
    background: var(--od-surface) !important;
    border-color: var(--od-border) !important;
}

.modal-body.bg-light,
.modal-footer.bg-light {
    color: var(--od-text);
    background: var(--od-surface-soft) !important;
}

.text-bg-light {
    color: var(--od-text) !important;
    background-color: var(--od-surface-soft) !important;
}

.table {
    --bs-table-color: var(--od-text);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--od-border);
    --bs-table-striped-bg: var(--od-surface-soft);
    --bs-table-hover-bg: var(--od-surface-muted);
    color: var(--od-text);
}

.table thead th,
.table-light,
.table > :not(caption) > * > * {
    color: var(--od-text);
    border-color: var(--od-border);
}

.table-light {
    --bs-table-bg: var(--od-surface-soft);
    --bs-table-color: var(--od-text);
}

[data-theme="dark"] .table-hover > tbody > tr:hover > * {
    color: var(--od-text);
    background: var(--od-surface-muted);
}

div.dataTables_wrapper .dataTables_filter input,
div.dataTables_wrapper .dataTables_length select {
    color: var(--od-text);
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: var(--od-radius-sm);
}

div.dataTables_wrapper .dataTables_info,
div.dataTables_wrapper .dataTables_length label,
div.dataTables_wrapper .dataTables_filter label {
    color: var(--od-text-muted);
}

table.dataTable thead th,
table.dataTable thead td {
    border-bottom-color: var(--od-border-strong) !important;
}

.page-link {
    color: var(--od-primary);
    background: var(--od-surface);
    border-color: var(--od-border);
}

.page-item.active .page-link {
    color: #fff;
    background: var(--od-primary);
    border-color: var(--od-primary);
}

.page-item.disabled .page-link {
    color: var(--od-text-muted);
    background: var(--od-surface-soft);
    border-color: var(--od-border);
}

[data-theme="dark"] .btn-dark {
    color: var(--od-text);
    background: var(--od-surface-muted);
    border-color: var(--od-border-strong);
}

[data-theme="dark"] .btn-dark:hover {
    color: #fff;
    background: var(--od-primary);
    border-color: var(--od-primary);
}

[data-theme="dark"] .modal-header.bg-warning,
[data-theme="dark"] .modal-header.bg-warning.text-dark {
    color: #1f1608 !important;
}

.od-notif-baslik { color: var(--od-text) !important; }

/* Finans merkezi */
.hover-lift { transition: transform 0.2s ease, box-shadow 0.2s ease; }
.hover-lift:hover { transform: translateY(-4px); box-shadow: var(--od-shadow-md) !important; }

.nav-pills-custom .nav-link {
    color: var(--od-text-muted);
    font-weight: 700;
    padding: 12px 24px;
    border-radius: 12px;
    transition: all 0.3s ease;
    border: 1px solid transparent;
    margin-right: 8px;
    margin-bottom: 8px;
    background: var(--od-surface);
}
.nav-pills-custom .nav-link:hover {
    color: var(--od-text);
    background-color: var(--od-surface-soft);
    transform: translateY(-2px);
    box-shadow: var(--od-shadow-xs);
}
.nav-pills-custom .nav-link.active {
    color: #fff;
    background-color: var(--od-primary);
    border-color: transparent;
    box-shadow: var(--od-shadow-sm);
    transform: translateY(-2px);
}

.nav-pills-custom.nav-pills-toned .nav-link {
    border-color: var(--od-border);
}
.nav-pills-custom.nav-pills-toned .nav-link.active {
    box-shadow: var(--od-shadow-md);
}
.nav-pills-custom .nav-link.tab-primary.active { background: #2563eb; color: #fff; }
.nav-pills-custom .nav-link.tab-danger.active { background: #ef4444; color: #fff; }
.nav-pills-custom .nav-link.tab-success.active { background: #10b981; color: #fff; }
.nav-pills-custom .nav-link.tab-warning.active { background: #f59e0b; color: #fff; }
.nav-pills-custom .nav-link.tab-info.active { background: #0ea5e9; color: #fff; }

.bg-gradient-success { background: linear-gradient(135deg, var(--od-success) 0%, var(--od-primary-strong) 100%); }
.bg-gradient-primary { background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%); }
.bg-gradient-danger { background: linear-gradient(135deg, #ef4444 0%, var(--od-danger) 100%); }
.bg-gradient-warning { background: linear-gradient(135deg, #f59e0b 0%, var(--od-warning) 100%); }

table.dataTable thead th { cursor: pointer; border-bottom: 2px solid var(--od-border-strong) !important; }

.od-plan-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}
.od-plan-summary-item {
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: 8px;
    padding: 14px;
    box-shadow: var(--od-shadow-xs);
}
.od-plan-summary-item small {
    display: block;
    color: var(--od-text-muted);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}
.od-plan-summary-item strong {
    display: block;
    margin-top: 5px;
    color: var(--od-text);
    font-size: 19px;
    font-weight: 900;
}
.od-plan-projection {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding: 12px;
    background: var(--od-surface);
    border-bottom: 1px solid var(--od-border);
}
.od-plan-projection span {
    border: 1px solid var(--od-border);
    border-radius: 8px;
    padding: 9px 10px;
    color: var(--od-text-muted);
    font-size: 11px;
    font-weight: 800;
}
.od-plan-projection strong {
    display: block;
    margin-top: 3px;
    color: var(--od-text);
    font-size: 14px;
    font-weight: 900;
}
.od-plan-ay-hero {
    margin-bottom: 16px;
    padding: 18px 20px;
    background: linear-gradient(135deg, var(--od-sidebar-deep) 0%, var(--od-sidebar) 100%);
    border-radius: 16px;
    color: #fff;
}
.od-plan-ay-hero h4 { margin: 0 0 6px; font-size: 1.15rem; font-weight: 850; }
.od-plan-ay-hero p { margin: 0; color: rgba(255,255,255,.72); font-size: .84rem; line-height: 1.55; }
.od-plan-ay-hero .od-plan-hero-stat {
    margin-top: 14px;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}
.od-plan-ay-hero .od-plan-hero-stat span {
    display: block;
    padding: 10px 12px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
    font-size: .68rem;
    font-weight: 750;
    color: rgba(255,255,255,.65);
}
.od-plan-ay-hero .od-plan-hero-stat strong {
    display: block;
    margin-top: 4px;
    font-size: 1rem;
    color: #fff;
}
.od-plan-kategori-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    padding: 12px 14px;
    background: var(--od-surface);
    border-bottom: 1px solid var(--od-border);
}
.od-plan-kategori-item {
    border: 1px solid var(--od-border);
    border-radius: 10px;
    padding: 8px 10px;
    text-align: center;
    background: var(--od-surface-soft);
}
.od-plan-kategori-item small {
    display: block;
    color: var(--od-text-muted);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}
.od-plan-kategori-item strong {
    display: block;
    margin-top: 3px;
    font-size: 13px;
    font-weight: 900;
    color: var(--od-text);
}
.od-plan-ozet-table thead th {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .03em;
    white-space: nowrap;
}
.od-plan-ozet-table tbody td { font-size: 13px; font-weight: 700; }
.od-plan-ozet-table tr.is-current { background: var(--od-primary-soft); }
.od-plan-kategori-row td {
    background: var(--od-surface-soft) !important;
    color: var(--od-text-muted);
    font-size: 11px !important;
    font-weight: 850 !important;
    text-transform: uppercase;
    letter-spacing: .04em;
}

@media (max-width: 991.98px) {
    .od-plan-summary, .od-plan-projection { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .od-plan-kategori-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .od-plan-ay-hero .od-plan-hero-stat { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .od-plan-summary, .od-plan-projection { grid-template-columns: 1fr; }
}

/* Cari ekstre */
.table-custom tbody td,
.table-custom tbody th { color: var(--od-text); }
.table-custom tfoot td {
    color: #fff !important;
    background: var(--od-sidebar) !important;
    border-color: rgba(255,255,255,.12) !important;
    font-weight: 900;
}

/* Ödeme sonuç sayfası */
.od-odeme-sonuc {
    min-height: 100vh;
    display: flex;
    align-items: center;
    background: var(--od-bg);
    color: var(--od-text);
}
.od-odeme-sonuc-card {
    background: var(--od-surface);
    border: 1px solid var(--od-border);
    border-radius: var(--od-radius-lg);
    box-shadow: var(--od-shadow-md);
}
.od-odeme-sonuc-icon { font-size: 3rem; line-height: 1; }
.od-odeme-sonuc-icon.is-ok { color: var(--od-success); }
.od-odeme-sonuc-icon.is-fail { color: var(--od-danger); }

[data-theme="dark"] body.odera-login {
    background: var(--od-bg);
}

[data-theme="dark"] .form-control.bg-light,
.form-control.bg-light {
    background: var(--od-surface-soft) !important;
    color: var(--od-text);
}

/* ============================================================
   Kantar operasyon merkezi (v20)
   ============================================================ */
.knt-hero {
    background:
        radial-gradient(circle at 85% 20%, rgba(45, 212, 191, 0.18), transparent 22rem),
        radial-gradient(circle at 10% 90%, rgba(237, 189, 103, 0.12), transparent 16rem),
        linear-gradient(135deg, #0f172a 0%, #102a2e 48%, #0f766e 100%);
    color: #e2e8f0;
}

.knt-hero-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.5rem 1.75rem;
}

.knt-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.85rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.knt-terminal-label {
    margin-bottom: 0.45rem;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.kantar-terminal,
.knt-terminal {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.55rem;
    min-width: 280px;
    padding: 1rem 1.75rem;
    border-radius: 16px;
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: inset 0 0 24px rgba(0, 0, 0, 0.55), 0 8px 24px rgba(0, 0, 0, 0.2);
}

.kantar-lcd,
.knt-lcd {
    margin: 0;
    color: #4ade80;
    font-family: 'Courier New', Courier, monospace;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.08em;
    text-shadow: 0 0 18px rgba(74, 222, 128, 0.45);
}

.knt-lcd-unit {
    color: rgba(255, 255, 255, 0.45);
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.kantar-lcd.manuel,
.knt-lcd.manuel {
    color: #60a5fa;
    text-shadow: 0 0 18px rgba(96, 165, 250, 0.45);
}

.kantar-lcd.error,
.knt-lcd.error {
    color: #f87171;
    text-shadow: 0 0 18px rgba(248, 113, 113, 0.45);
}

.knt-status-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 1rem;
}

.knt-status {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
    border: 1px solid transparent;
}

.knt-status--wait {
    color: #cbd5e1;
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.08);
}

.knt-status--off {
    color: #fca5a5;
    background: rgba(239, 68, 68, 0.12);
    border-color: rgba(239, 68, 68, 0.25);
}

.knt-status--on {
    color: #86efac;
    background: rgba(34, 197, 94, 0.12);
    border-color: rgba(34, 197, 94, 0.25);
}

.knt-status--move {
    color: #fdba74;
    background: rgba(249, 115, 22, 0.12);
    border-color: rgba(249, 115, 22, 0.25);
}

.knt-status--manual {
    color: #fde68a;
    background: rgba(245, 158, 11, 0.14);
    border-color: rgba(245, 158, 11, 0.28);
}

.knt-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
}

.knt-action-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 44px;
    border-color: rgba(255, 255, 255, 0.18) !important;
}

.knt-connect-btn {
    min-height: 48px;
    padding-inline: 1.35rem;
    font-size: 1rem;
    box-shadow: 0 10px 24px rgba(34, 197, 94, 0.25);
}

.section-title {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--od-text-muted);
    border-bottom: 2px solid var(--od-border);
    padding-bottom: 0.55rem;
    margin-bottom: 1.15rem;
}

.kantar-next-fis {
    max-width: 190px;
    overflow: hidden;
    font-size: 1rem;
    letter-spacing: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.knt-net-panel {
    padding: 1rem 1.1rem;
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(16, 185, 129, 0.08), rgba(16, 185, 129, 0.03));
    border: 1px solid rgba(16, 185, 129, 0.22);
}

.knt-net-label {
    display: block;
    margin-bottom: 0.45rem;
    color: var(--od-success);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.knt-net-display {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.45rem;
    padding: 0.35rem 0;
}

.knt-net-display span {
    color: var(--od-text);
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    font-weight: 850;
    line-height: 1;
    letter-spacing: -0.03em;
    font-family: 'Courier New', Courier, monospace;
}

.knt-net-display small {
    color: var(--od-text-muted);
    font-size: 0.85rem;
    font-weight: 800;
}

.knt-net-hint {
    display: block;
    margin-top: 0.45rem;
    text-align: center;
    color: var(--od-text-muted);
    font-size: 0.75rem;
    font-weight: 700;
}

.knt-net-panel.is-ready {
    border-color: rgba(16, 185, 129, 0.45);
    box-shadow: 0 0 0 1px rgba(16, 185, 129, 0.08);
}

.knt-net-panel.is-ready .knt-net-display span {
    color: var(--od-success);
}

.knt-net-panel.is-error {
    border-color: rgba(239, 68, 68, 0.35);
    background: rgba(239, 68, 68, 0.05);
}

.knt-net-panel.is-error .knt-net-display span {
    color: var(--od-danger);
}

.select2-container--bootstrap-5 .select2-selection {
    border-radius: 10px;
    font-weight: 600;
    border-color: var(--od-border);
}

.select2-container--bootstrap-5.select2-container--focus .select2-selection {
    box-shadow: 0 0 0 3px var(--od-primary-soft) !important;
    border-color: var(--od-primary) !important;
}

@media (max-width: 767.98px) {
    .knt-hero-inner {
        flex-direction: column;
        align-items: stretch;
    }

    .knt-hero-actions {
        width: 100%;
    }

    .knt-action-btn,
    .knt-connect-btn {
        flex: 1 1 calc(50% - 0.35rem);
        justify-content: center;
    }

    .kantar-terminal,
    .knt-terminal {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 575.98px) {
    .knt-action-btn span {
        display: none;
    }

    .knt-connect-btn {
        flex: 1 1 100%;
    }
}

/* ── API & Entegrasyon arayüzü ── */
.icon-violet { color: #6d28d9; background: rgba(109, 40, 217, 0.1); }

.od-integration-hub {
    background: linear-gradient(135deg, var(--od-surface) 0%, var(--od-surface-soft) 100%);
    border: 1px solid var(--od-border);
    border-radius: var(--od-radius-lg, 16px);
    padding: 1.25rem 1.35rem;
}

.od-integration-hub-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.od-integration-hub-title {
    font-size: 1.15rem;
    font-weight: 800;
    margin: 0.15rem 0 0;
    color: var(--od-text);
}

.od-integration-hub-sub {
    margin: 0.25rem 0 0;
    font-size: 0.85rem;
    color: var(--od-text-muted);
}

.od-integration-hub-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--od-text-muted);
}

.od-api-dot {
    display: inline-block;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    margin-right: 0.35rem;
    vertical-align: middle;
}

.od-api-dot--ready { background: var(--od-success); }
.od-api-dot--partial { background: var(--od-warning); }
.od-api-dot--off { background: var(--od-text-light); }

.od-integration-hub-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 0.65rem;
}

.od-integration-tile {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    border: 1px solid var(--od-border);
    background: var(--od-surface);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}

.od-integration-tile:hover {
    border-color: color-mix(in srgb, var(--od-primary) 35%, var(--od-border));
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
    transform: translateY(-1px);
    color: inherit;
}

.od-integration-tile-copy {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.od-integration-tile-copy strong {
    font-size: 0.88rem;
    font-weight: 800;
}

.od-integration-tile-copy small {
    font-size: 0.72rem;
    color: var(--od-text-muted);
}

.od-integration-tile-icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.95rem;
}

.od-integration-tile-icon--amber { color: #b45309; background: #fef3c7; }
.od-integration-tile-icon--green { color: #15803d; background: #dcfce7; }
.od-integration-tile-icon--blue { color: #1d4ed8; background: #dbeafe; }
.od-integration-tile-icon--indigo { color: #4338ca; background: #e0e7ff; }
.od-integration-tile-icon--violet { color: #6d28d9; background: #ede9fe; }

.od-api-status {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    white-space: nowrap;
    flex-shrink: 0;
}

.od-api-status--sm {
    padding: 0.2rem 0.5rem;
    font-size: 0.68rem;
}

.od-api-status--ready {
    color: #15803d;
    background: rgba(20, 134, 109, 0.12);
}

.od-api-status--partial {
    color: #b45309;
    background: var(--od-accent-soft);
}

.od-api-status--off {
    color: var(--od-text-muted);
    background: var(--od-surface-soft);
}

.od-api-card .od-api-card-header {
    flex-wrap: wrap;
    gap: 0.75rem;
}

.od-api-card-heading {
    flex: 1;
    min-width: 180px;
}

.od-api-card--highlight {
    animation: odApiPulse 1.6s ease;
}

@keyframes odApiPulse {
    0%, 100% { box-shadow: 0 0 0 0 transparent; }
    15%, 45% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--od-primary) 25%, transparent); }
}

.od-api-toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.65rem 0;
    border-bottom: 1px dashed var(--od-border);
}

.od-api-credentials {
    background: var(--od-surface-soft);
    border: 1px solid var(--od-border);
    border-radius: 12px;
    padding: 1rem;
}

.od-api-credentials-title {
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--od-text-muted);
    margin-bottom: 0.85rem;
}

.od-api-credentials-title i {
    margin-right: 0.35rem;
    opacity: 0.75;
}

.od-api-label {
    font-weight: 700;
    font-size: 0.84rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.od-api-field-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.65rem;
    font-weight: 800;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
}

.od-api-field-badge--saved {
    color: #15803d;
    background: rgba(20, 134, 109, 0.12);
}

.od-api-field-badge--empty {
    color: var(--od-text-muted);
    background: var(--od-surface);
    border: 1px solid var(--od-border);
}

.od-secret-field,
.od-endpoint-field,
.od-callback-field {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--od-border);
    border-radius: 10px;
    overflow: hidden;
    background: var(--od-surface);
}

.od-secret-field:focus-within,
.od-endpoint-field:focus-within,
.od-callback-field:focus-within {
    border-color: var(--od-primary);
    box-shadow: 0 0 0 3px var(--od-primary-soft);
}

.od-secret-field .form-control,
.od-endpoint-input,
.od-callback-input {
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    font-family: ui-monospace, 'Cascadia Code', 'Courier New', monospace;
    font-size: 0.84rem;
}

.od-endpoint-prefix {
    display: inline-flex;
    align-items: center;
    padding: 0 0.75rem;
    background: var(--od-surface-soft);
    color: var(--od-text-muted);
    border-right: 1px solid var(--od-border);
    flex-shrink: 0;
}

.od-secret-toggle,
.od-callback-copy {
    border: 0;
    background: var(--od-surface-soft);
    color: var(--od-text-muted);
    padding: 0 0.85rem;
    flex-shrink: 0;
    transition: color 0.15s, background 0.15s;
}

.od-secret-toggle:hover,
.od-callback-copy:hover {
    color: var(--od-primary);
    background: var(--od-primary-soft);
}

.od-callback-copy.is-copied {
    color: var(--od-success);
}

.od-api-provider {
    border: 1px solid var(--od-border);
    border-radius: 12px;
    margin-top: 0.85rem;
    overflow: hidden;
    background: var(--od-surface);
}

.od-api-provider-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: var(--od-surface-soft);
    border-bottom: 1px solid var(--od-border);
}

.od-api-provider-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--od-primary-soft);
    color: var(--od-primary);
}

.od-api-provider-copy {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.od-api-provider-copy strong {
    font-size: 0.9rem;
}

.od-api-provider-copy small {
    font-size: 0.72rem;
    color: var(--od-text-muted);
}

.od-api-provider-body {
    padding: 1rem;
}

.od-api-notice {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 0.85rem 1rem;
    border-radius: 10px;
    font-size: 0.84rem;
    line-height: 1.45;
}

.od-api-notice > i {
    margin-top: 0.15rem;
    flex-shrink: 0;
}

.od-api-notice--info {
    background: color-mix(in srgb, var(--od-info) 8%, var(--od-surface));
    border: 1px solid color-mix(in srgb, var(--od-info) 20%, var(--od-border));
    color: var(--od-text);
}

.od-api-notice--info > i { color: var(--od-info); }

.od-api-notice--warn {
    background: color-mix(in srgb, var(--od-warning) 10%, var(--od-surface));
    border: 1px solid color-mix(in srgb, var(--od-warning) 25%, var(--od-border));
}

.od-api-notice--warn > i { color: var(--od-warning); }

@media (max-width: 767.98px) {
    .od-integration-hub-head {
        flex-direction: column;
    }

    .od-api-card-header .od-api-status {
        width: 100%;
        justify-content: center;
    }

    .od-integration-hub-grid {
        grid-template-columns: 1fr;
    }
}

/* OTA güncelleme adımları */
.od-ota-panel {
    border: 1px solid var(--od-border);
    border-radius: 14px;
    background: var(--od-surface-soft);
    overflow: hidden;
}

.od-ota-panel--info {
    border-color: rgba(57, 118, 168, 0.25);
    background: rgba(57, 118, 168, 0.06);
}

.od-ota-panel-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--od-border);
    background: var(--od-surface);
}

.od-ota-panel-body { padding: 1rem; }

.od-ota-steps { list-style: none; padding-left: 0; }

.od-ota-step {
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--od-border);
    border-radius: 10px;
    background: var(--od-surface);
}

.od-ota-step-icon { width: 1.5rem; text-align: center; }

.od-ota-step--ok .od-ota-step-icon { color: var(--od-success); }
.od-ota-step--error .od-ota-step-icon { color: var(--od-danger); }
.od-ota-step--warning .od-ota-step-icon { color: var(--od-warning); }
.od-ota-step--info .od-ota-step-icon { color: var(--od-info); }
.od-ota-step--skip .od-ota-step-icon { color: var(--od-text-light); }
.od-ota-step--active .od-ota-step-icon { color: var(--od-primary); }
