﻿/* ============================================================
   TASARIM TOKENLARI
   Renk, biçim ve ölçülerin tek kaynağı. Yeni kural sabit renk/ölçü
   yazmaz, buradan okur. Tabler değişkenleri de buraya bağlanır ki
   Tabler bileşenleri (bağlantı, rozet, sekme, onay kutusu) aynı
   marka rengini kullansın. Ayrıntı: ui-standards.md "Tasarım tokenları".
   ============================================================ */

/* Inter — sunucudan, değişken ağırlıklı (100–900) tek dosya; dış font isteği yok.
   Kaynak @fontsource-variable/inter 5.3.0 (OFL, lib/inter/LICENSE). Türkçe harfler
   (ğ, ş, ı, İ) latin-ext dosyasında; tarayıcı yalnız gerekeni indirir (unicode-range). */
@font-face {
    font-family: "Inter";
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url("../lib/inter/inter-latin-ext-wght-normal.woff2") format("woff2-variations");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Inter";
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url("../lib/inter/inter-latin-wght-normal.woff2") format("woff2-variations");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
    /* Marka */
    --ino-primary: #2563eb;
    --ino-primary-hover: #1d4ed8;
    --ino-primary-dark: var(--ino-primary-hover);
    --ino-primary-light: #93c5fd;
    --ino-primary-soft: #eff6ff;

    /* Yüzey ve metin */
    --ino-bg: #f5f7fb;
    --ino-surface: #ffffff;
    --ino-surface-muted: #f8fafc;
    --ino-text: #0f172a;
    --ino-text-muted: #64748b;
    --ino-muted: var(--ino-text-muted);
    --ino-border: #e2e8f0;
    --ino-border-strong: #cbd5e1;

    /* Durum — renk yalnız durum anlatır: yeşil sağlıklı, sarı dikkat,
       kırmızı hata, mavi bilgi/işlemde, gri pasif. */
    --ino-success: #16a34a;
    --ino-warning: #d97706;
    --ino-danger: #dc2626;
    --ino-info: #2563eb;
    --ino-neutral: #64748b;

    /* Biçim */
    --ino-radius-sm: 6px;
    --ino-radius: 8px;
    --ino-radius-lg: 12px;
    --ino-card-radius: 12px;
    --ino-button-radius: 8px;
    --ino-shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);
    --ino-shadow-md: 0 4px 12px rgba(15, 23, 42, .08);
    --ino-shadow-lg: 0 12px 32px rgba(15, 23, 42, .14);
    --ino-transition: 150ms ease;
    --ino-focus-ring: 0 0 0 3px rgba(37, 99, 235, .18);

    /* Sidebar */
    --ino-sidebar-width: 248px;
    --ino-sidebar-collapsed-width: 68px;
    --ino-sidebar: #0f172a;
    --ino-sidebar-text: #cbd5e1;
    --ino-sidebar-text-strong: #f8fafc;
    --ino-sidebar-icon: #94a3b8;
    --ino-sidebar-accent: #60a5fa;
    --ino-sidebar-label: #7f8ca3;
    --ino-sidebar-hover: rgba(255, 255, 255, .05);
    --ino-sidebar-active: rgba(37, 99, 235, .16);
    --ino-sidebar-separator: rgba(255, 255, 255, .08);
    --ino-sidebar-item-height: 40px;
    --ino-sidebar-subitem-height: 36px;
    --ino-sidebar-transition: 200ms ease;

    /* Tabler */
    --tblr-primary: #2563eb;
    --tblr-primary-rgb: 37, 99, 235;
    --tblr-link-color: #2563eb;
    --tblr-link-color-rgb: 37, 99, 235;
    --tblr-link-hover-color: #1d4ed8;
    --tblr-link-hover-color-rgb: 29, 78, 216;
    --tblr-font-sans-serif: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

html,
body {
    font-family: var(--tblr-font-sans-serif);
    background: var(--ino-bg);
    color: var(--ino-text);
}

html {
    font-size: 14px;
    overflow: hidden;
}

@media (min-width: 768px) {
    html {
        font-size: 15px;
    }
}

body {
    margin: 0;
    font-size: 14px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Sayı sütunları alt alta hizalı okunsun. */
.table {
    font-variant-numeric: tabular-nums;
}

.ino-page {
    background: var(--ino-bg);
    display: block !important;
}

/* ============================================================
   SIDEBAR
   Üç bölüm: baş (marka + daralt), gövde (kayar), ayak (Ayarlar).
   Daraltılmış kipte ikonlar yerinden oynamaz: bağlantının sol
   boşluğu iki kipte aynıdır, yalnız metin kırpılır. Ad balonu ve
   alt menü paneli #inoNavPop'tadır (ino-layout.js).
   ============================================================ */

.ino-sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1030;
    display: flex;
    flex-direction: column;
    width: var(--ino-sidebar-width);
    background: var(--ino-sidebar);
    border-right: 1px solid rgba(255, 255, 255, .06);
    transition: width var(--ino-sidebar-transition);
}

.ino-wrapper {
    position: relative;
    margin-left: var(--ino-sidebar-width) !important;
    width: calc(100% - var(--ino-sidebar-width));
    height: 100vh;
    height: 100dvh;
    overflow-y: auto; /* Kaydırma çubuğu yalnız içerik panelinde çıksın. */
    min-width: 0;
    transition: margin-left var(--ino-sidebar-transition), width var(--ino-sidebar-transition);
}

body.ino-sidebar-collapsed .ino-sidebar {
    width: var(--ino-sidebar-collapsed-width);
}

body.ino-sidebar-collapsed .ino-wrapper {
    margin-left: var(--ino-sidebar-collapsed-width) !important;
    width: calc(100% - var(--ino-sidebar-collapsed-width));
}

/* İlk boyamada daraltma sınıfı geçişsiz uygulanır; ino-layout.js yükleyince kaldırır. */
body.ino-no-anim .ino-sidebar,
body.ino-no-anim .ino-wrapper {
    transition: none;
}

/* Baş */

.ino-sidebar-head {
    position: relative;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
    height: 64px;
    padding: 0 12px 0 18px;
}

.ino-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    text-decoration: none;
}

    .ino-brand:hover {
        text-decoration: none;
    }

.ino-brand-icon {
    display: inline-flex;
    flex: 0 0 32px;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    transition: opacity var(--ino-transition);
}

    .ino-brand-icon img {
        width: 32px;
        height: 32px;
        object-fit: contain;
    }

.ino-brand-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.15;
    white-space: nowrap;
    transition: opacity var(--ino-transition);
}

.ino-brand-title {
    color: var(--ino-sidebar-text-strong);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -.01em;
}

.ino-brand-subtitle {
    margin-top: 2px;
    color: var(--ino-sidebar-label);
    font-size: 11px;
    font-weight: 500;
}

.ino-sidebar-collapse {
    display: inline-flex;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin-left: auto;
    padding: 0;
    border: 0;
    border-radius: var(--ino-radius-sm);
    background: transparent;
    color: var(--ino-sidebar-label);
    transition: background-color var(--ino-transition), color var(--ino-transition), opacity var(--ino-transition);
}

    .ino-sidebar-collapse:hover {
        background: rgba(255, 255, 255, .08);
        color: var(--ino-sidebar-text-strong);
    }

    .ino-sidebar-collapse i {
        font-size: 18px;
        transition: transform var(--ino-sidebar-transition);
    }

/* Gövde ve ayak */

.ino-sidebar-body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 4px 12px 12px;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .14) transparent;
}

.ino-sidebar-foot {
    flex: 0 0 auto;
    padding: 8px 12px 12px;
    border-top: 1px solid var(--ino-sidebar-separator);
}

.ino-nav {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ino-nav-group {
    margin-top: 16px;
}

.ino-nav-label {
    padding: 0 12px 6px;
    color: var(--ino-sidebar-label);
    font-size: 11px;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
}

/* Bağlantı */

.ino-nav-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    height: var(--ino-sidebar-item-height);
    padding: 0 10px 0 12px;
    overflow: hidden;
    border: 0;
    border-radius: var(--ino-radius);
    background: transparent;
    color: var(--ino-sidebar-text);
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    text-align: left;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color var(--ino-transition), color var(--ino-transition);
}

    .ino-nav-link:hover,
    .ino-nav-link:focus {
        background: var(--ino-sidebar-hover);
        color: var(--ino-sidebar-text-strong);
        text-decoration: none;
    }

    .ino-nav-link.is-active {
        background: var(--ino-sidebar-active);
        color: var(--ino-sidebar-text-strong);
        font-weight: 600;
    }

        /* Aktiflik yalnız renkle anlatılmaz: sol çizgi + kalın yazı. */
        .ino-nav-link.is-active::before {
            content: "";
            position: absolute;
            top: 9px;
            bottom: 9px;
            left: 0;
            width: 3px;
            border-radius: 0 3px 3px 0;
            background: var(--ino-sidebar-accent);
        }

    .ino-nav-link.is-current {
        color: var(--ino-sidebar-text-strong);
    }

.ino-nav-icon {
    flex: 0 0 20px;
    width: 20px;
    color: var(--ino-sidebar-icon);
    font-size: 20px;
    line-height: 1;
    text-align: center;
    transition: color var(--ino-transition);
}

.ino-nav-link:hover .ino-nav-icon {
    color: var(--ino-sidebar-text-strong);
}

.ino-nav-link.is-active .ino-nav-icon,
.ino-nav-link.is-current .ino-nav-icon {
    color: var(--ino-sidebar-accent);
}

.ino-nav-text {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: opacity var(--ino-transition);
}

.ino-nav-caret {
    flex: 0 0 auto;
    color: var(--ino-sidebar-label);
    font-size: 16px;
    transition: transform var(--ino-transition), opacity var(--ino-transition);
}

.ino-nav-parent.is-open .ino-nav-caret {
    transform: rotate(180deg);
}

/* Sayı rozeti: yalnız dikkat isteyen sayılar (Aksiyon Merkezi'nden). Kritik kalem
   varsa kırmızı. Daraltılmış kipte ikonun sağ üstüne nokta+sayı olarak iner. */
.ino-nav-badge {
    flex: 0 0 auto;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .1);
    color: var(--ino-sidebar-text-strong);
    font-size: 11px;
    font-weight: 600;
    line-height: 20px;
    text-align: center;
}

    .ino-nav-badge.is-danger {
        background: var(--ino-danger);
        color: #fff;
    }

    .ino-nav-badge[hidden] {
        display: none;
    }

/* Paketin kapsamadığı ekran: gizlenmez, soluk ve kilitli görünür (abonelik ekranına götürür). */
.ino-nav-link.is-locked,
.ino-nav-sublink.is-locked,
.ino-section-tab.is-locked {
    opacity: .6;
}

.ino-nav-lock {
    flex: 0 0 auto;
    margin-left: auto;
    font-size: 14px;
}

body.ino-sidebar-collapsed .ino-nav-lock {
    display: none;
}

body.ino-sidebar-collapsed .ino-nav-badge {
    position: absolute;
    top: 4px;
    left: 26px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border: 2px solid var(--ino-sidebar);
    border-radius: 8px;
    background: var(--ino-primary);
    font-size: 0;
    line-height: 12px;
}

    body.ino-sidebar-collapsed .ino-nav-badge::after {
        content: attr(data-short);
        font-size: 9px;
    }

    body.ino-sidebar-collapsed .ino-nav-badge.is-danger {
        background: var(--ino-danger);
    }

/* Alt menü: ince bağlayıcı çizgi, düşük kontrast, ikon yok. */

.ino-nav-sub {
    position: relative;
    display: none;
    margin: 2px 0 4px;
    padding: 0;
    list-style: none;
}

    .ino-nav-sub::before {
        content: "";
        position: absolute;
        top: 4px;
        bottom: 4px;
        left: 21px;
        width: 1px;
        background: var(--ino-sidebar-separator);
    }

.ino-nav-parent.is-open > .ino-nav-sub {
    display: block;
}

.ino-nav-sublink {
    position: relative;
    display: flex;
    align-items: center;
    height: var(--ino-sidebar-subitem-height);
    padding: 0 10px 0 44px;
    border-radius: var(--ino-radius);
    color: var(--ino-sidebar-icon);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color var(--ino-transition), color var(--ino-transition);
}

    .ino-nav-sublink:hover,
    .ino-nav-sublink:focus {
        background: var(--ino-sidebar-hover);
        color: var(--ino-sidebar-text-strong);
        text-decoration: none;
    }

    .ino-nav-sublink.is-active {
        color: var(--ino-sidebar-text-strong);
        font-weight: 600;
    }

        .ino-nav-sublink.is-active::before {
            content: "";
            position: absolute;
            top: 9px;
            bottom: 9px;
            left: 20px;
            width: 3px;
            border-radius: 3px;
            background: var(--ino-sidebar-accent);
        }

/* Klavye odağı her zaman görünür. */
.ino-nav-link:focus-visible,
.ino-nav-sublink:focus-visible,
.ino-sidebar-collapse:focus-visible,
.ino-brand:focus-visible {
    outline: 2px solid var(--ino-sidebar-accent);
    outline-offset: -2px;
}

/* Daraltılmış kip: metin kırpılır, başlıklar ayırıcıya döner, alt menü panele taşınır. */

body.ino-sidebar-collapsed .ino-sidebar-head {
    justify-content: center;
    padding: 0;
}

body.ino-sidebar-collapsed .ino-brand-text,
body.ino-sidebar-collapsed .ino-nav-text,
body.ino-sidebar-collapsed .ino-nav-caret {
    opacity: 0;
    pointer-events: none;
}

body.ino-sidebar-collapsed .ino-brand-text {
    position: absolute;
}

/* Daralt düğmesi logonun üstüne biner; baş alanına gelince ya da odakta görünür. */
body.ino-sidebar-collapsed .ino-sidebar-collapse {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: 0;
    opacity: 0;
    transform: translate(-50%, -50%);
}

    body.ino-sidebar-collapsed .ino-sidebar-collapse i {
        transform: rotate(180deg);
    }

body.ino-sidebar-collapsed .ino-sidebar-head:hover .ino-sidebar-collapse,
body.ino-sidebar-collapsed .ino-sidebar-collapse:focus-visible {
    opacity: 1;
}

body.ino-sidebar-collapsed .ino-sidebar-head:hover .ino-brand-icon,
body.ino-sidebar-collapsed .ino-sidebar-head:focus-within .ino-brand-icon {
    opacity: 0;
}

body.ino-sidebar-collapsed .ino-nav-label {
    display: none;
}

body.ino-sidebar-collapsed .ino-nav-group + .ino-nav-group,
body.ino-sidebar-collapsed .ino-nav + .ino-nav-group {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--ino-sidebar-separator);
}

body.ino-sidebar-collapsed .ino-nav-parent > .ino-nav-sub {
    display: none;
}

body.ino-sidebar-collapsed .ino-sidebar-body {
    scrollbar-width: none;
}

/* Ad balonu ve alt menü paneli */

.ino-nav-pop {
    position: fixed;
    z-index: 1070;
    min-width: 0;
    padding: 6px 10px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: var(--ino-radius);
    background: #1e293b;
    box-shadow: var(--ino-shadow-lg);
    color: var(--ino-sidebar-text-strong);
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
    pointer-events: none;
    animation: ino-nav-pop-in 120ms ease;
}

    .ino-nav-pop[hidden] {
        display: none;
    }

    .ino-nav-pop.is-menu {
        min-width: 220px;
        padding: 6px;
        pointer-events: auto;
    }

/* Gecikmeli ipucu balonu (InoHint) */

.ino-hint {
    position: fixed;
    z-index: 1090;
    padding: 4px 8px;
    border-radius: var(--ino-radius);
    background: #1e293b;
    box-shadow: var(--ino-shadow-lg);
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    pointer-events: none;
}

    .ino-hint[hidden] {
        display: none;
    }

.ino-nav-pop-title {
    padding: 4px 10px 6px;
    color: var(--ino-sidebar-label);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.ino-nav-pop .ino-nav-sublink {
    padding-left: 10px;
    color: var(--ino-sidebar-text);
}

    .ino-nav-pop .ino-nav-sublink.is-active::before {
        left: 0;
        border-radius: 0 3px 3px 0;
    }

@keyframes ino-nav-pop-in {
    from {
        opacity: 0;
        transform: translateX(-4px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* Bölüm sekmeleri: sidebar'da tek öğe olan bölümlerin (Ayarlar,
   Entegrasyonlar, Ürünler) alt ekranları. Kaynak AppNavigation. */

.ino-section-tabs {
    display: flex;
    gap: 4px;
    margin: 4px 0 16px;
    padding-bottom: 0;
    overflow-x: auto;
    border-bottom: 1px solid var(--ino-border);
    scrollbar-width: none;
}

    .ino-section-tabs::-webkit-scrollbar {
        display: none;
    }

.ino-section-tab {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
    margin-bottom: -1px;
    padding: 10px 12px;
    border-bottom: 2px solid transparent;
    color: var(--ino-text-muted);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    transition: color var(--ino-transition), border-color var(--ino-transition);
}

    .ino-section-tab i {
        font-size: 17px;
    }

    .ino-section-tab:hover {
        color: var(--ino-text);
        text-decoration: none;
    }

    .ino-section-tab.is-active {
        border-bottom-color: var(--ino-primary);
        color: var(--ino-text);
        font-weight: 600;
    }

        .ino-section-tab.is-active i {
            color: var(--ino-primary);
        }

    /* Sekmedeki sayı; dikkat isteyen sekmede turuncu. */
    .ino-section-tab-count {
        min-width: 20px;
        padding: 0 6px;
        border-radius: 10px;
        background: var(--ino-surface-muted);
        color: var(--ino-text-muted);
        font-size: 11px;
        font-weight: 700;
        line-height: 18px;
        text-align: center;
    }

        .ino-section-tab-count.is-warning {
            background: rgba(217, 119, 6, .14);
            color: var(--ino-warning);
        }

        .ino-section-tab-count.is-danger {
            background: rgba(220, 38, 38, .12);
            color: var(--ino-danger);
        }

    .ino-section-tab:focus-visible {
        outline: none;
        box-shadow: var(--ino-focus-ring);
        border-radius: var(--ino-radius-sm) var(--ino-radius-sm) 0 0;
    }

/* Liste satırındaki ürün küçük görseli (Ürünler, Stok). Kaynak büyük görsel
   olabilir; kutu sabit, görsel kırpılarak sığar. */
.ino-product-list-image {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    overflow: hidden;
    border: 1px solid var(--ino-border);
    border-radius: var(--ino-radius);
    background: var(--ino-surface-muted);
}

    .ino-product-list-image img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.ino-product-list-image-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--ino-border-strong);
    font-size: 18px;
}

/* Sayaç kartları: ekranın üstünde karar verdiren sayılar; her biri ilgili
   süzgeci açan bağlantıdır (Stok, Kargo). */
.ino-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.ino-kpi {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--ino-border);
    border-radius: var(--ino-card-radius);
    background: var(--ino-surface);
    box-shadow: var(--ino-shadow-sm);
    color: var(--ino-text);
    text-decoration: none;
    transition: border-color var(--ino-transition), box-shadow var(--ino-transition), transform var(--ino-transition);
}

    .ino-kpi:hover {
        border-color: var(--ino-primary-light);
        box-shadow: var(--ino-shadow-md);
        color: var(--ino-text);
        text-decoration: none;
        transform: translateY(-1px);
    }

.ino-kpi-icon {
    display: inline-flex;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--ino-radius);
    font-size: 20px;
}

    .ino-kpi-icon.is-info { background: rgba(37, 99, 235, .1); color: var(--ino-info); }
    .ino-kpi-icon.is-warning { background: rgba(217, 119, 6, .12); color: var(--ino-warning); }
    .ino-kpi-icon.is-danger { background: rgba(220, 38, 38, .1); color: var(--ino-danger); }
    .ino-kpi-icon.is-neutral { background: rgba(100, 116, 139, .12); color: var(--ino-neutral); }
    .ino-kpi-icon.is-success { background: rgba(22, 163, 74, .1); color: var(--ino-success); }

.ino-kpi-label {
    display: block;
    color: var(--ino-text-muted);
    font-size: 12px;
    font-weight: 500;
}

.ino-kpi-value {
    display: block;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}

/* Durum çipi: nokta + metin; renk tek başına anlam taşımaz. */
.ino-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 10px 2px 8px;
    border-radius: 999px;
    background: var(--ino-surface-muted);
    color: var(--ino-text);
    font-size: 12px;
    font-weight: 600;
}

    .ino-chip::before {
        content: "";
        width: 7px;
        height: 7px;
        border-radius: 50%;
        background: var(--ino-neutral);
    }

    .ino-chip.is-success { background: rgba(22, 163, 74, .1); color: #15803d; }
    .ino-chip.is-success::before { background: var(--ino-success); }
    .ino-chip.is-warning { background: rgba(217, 119, 6, .12); color: #b45309; }
    .ino-chip.is-warning::before { background: var(--ino-warning); }
    .ino-chip.is-danger { background: rgba(220, 38, 38, .1); color: #b91c1c; }
    .ino-chip.is-danger::before { background: var(--ino-danger); }
    .ino-chip.is-info { background: rgba(37, 99, 235, .1); color: #1d4ed8; }
    .ino-chip.is-info::before { background: var(--ino-info); }

/* Bağlantı sağlığı (Entegrasyonlar listesi): çipin altında son senkron ve hatalı kayda
   giden sayılar. */
.ino-health-cell {
    min-width: 200px;
}

.ino-health-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    margin-top: 6px;
    font-size: 12px;
    color: var(--ino-text-muted);
}

    .ino-health-facts .ti {
        margin-right: 3px;
    }

/* Bekleyen işin yaşı ("4 gün"); eşiği ekran verir (Kargo 2, İadeler 3 gün). */
.ino-age {
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 999px;
    background: rgba(217, 119, 6, .14);
    color: #b45309;
    font-size: 11px;
    font-weight: 600;
}

.ino-dot {
    flex: 0 0 8px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--ino-neutral);
}

    .ino-dot.is-success { background: var(--ino-success); }
    .ino-dot.is-warning { background: var(--ino-warning); }
    .ino-dot.is-danger { background: var(--ino-danger); }

@media (max-width: 991.98px) {
    .ino-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Kayıtlı görünümler (Components/SavedViews, ino-saved-views.js): süzgeç kartının
   altında çip şeridi. Etkin görünüm dolu, yıldız açılış görünümünü gösterir. */
.ino-views {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed var(--ino-border);
}

.ino-views-label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-right: 4px;
    color: var(--ino-text-muted);
    font-size: 12px;
    font-weight: 600;
}

.ino-views-hint {
    color: var(--ino-text-muted);
    font-size: 12px;
}

.ino-view-chip {
    display: inline-flex;
    align-items: center;
    overflow: hidden;
    border: 1px solid var(--ino-border);
    border-radius: 999px;
    background: var(--ino-surface);
    font-size: 13px;
    transition: border-color var(--ino-transition), background-color var(--ino-transition);
}

    .ino-view-chip:hover {
        border-color: var(--ino-primary-light);
    }

    .ino-view-chip > a {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 3px 4px 3px 12px;
        color: var(--ino-text);
        font-weight: 500;
        text-decoration: none;
    }

    .ino-view-chip.is-active {
        border-color: var(--ino-primary);
        background: var(--ino-primary-soft);
    }

        .ino-view-chip.is-active > a {
            color: var(--ino-primary);
            font-weight: 600;
        }

.ino-view-default-icon {
    color: var(--ino-warning);
    font-size: 13px;
}

/* Yıldız ve çarpı yalnız çipin üzerine gelince ya da odakta görünür; yer kaplamaya devam eder. */
.ino-view-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--ino-text-muted);
    font-size: 13px;
    opacity: 0;
    transition: opacity var(--ino-transition), background-color var(--ino-transition);
}

    .ino-view-action:last-child {
        margin-right: 4px;
    }

.ino-view-chip:hover .ino-view-action,
.ino-view-action:focus-visible {
    opacity: 1;
}

.ino-view-action:hover {
    background: var(--ino-surface-muted);
    color: var(--ino-text);
}

.ino-view-save {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border: 1px dashed var(--ino-primary-light);
    border-radius: 999px;
    background: transparent;
    color: var(--ino-primary);
    font-size: 13px;
    font-weight: 500;
}

    .ino-view-save:hover {
        background: var(--ino-primary-soft);
    }

@media (hover: none) {
    .ino-view-action {
        opacity: 1;
    }
}

/* Ortak hata dili (_InoProblem): başlık ne oldu, altında neden ve ne yapılacak; ham
   metin katlı. Kırmızı yalnız kenarda ve ikonda; metin okunur kalır. */
.ino-problem {
    margin-top: 8px;
    padding: 12px 14px;
    border: 1px solid rgba(220, 38, 38, .25);
    border-left: 3px solid var(--ino-danger);
    border-radius: var(--ino-radius);
    background: rgba(220, 38, 38, .04);
    font-size: 13px;
}

.ino-problem-title {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #b91c1c;
    font-weight: 600;
}

.ino-problem-body {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 4px 10px;
    margin: 8px 0 0;
}

    .ino-problem-body dt {
        color: var(--ino-text-muted);
        font-weight: 500;
    }

    .ino-problem-body dd {
        margin: 0;
        color: var(--ino-text);
    }

.ino-problem-note {
    margin-top: 8px;
    color: #b45309;
}

.ino-problem-detail {
    margin-top: 8px;
}

    .ino-problem-detail summary {
        color: var(--ino-text-muted);
        font-size: 12px;
        cursor: pointer;
    }

    .ino-problem-detail code {
        display: block;
        margin-top: 4px;
        padding: 8px;
        border-radius: var(--ino-radius-sm);
        background: var(--ino-surface-muted);
        color: var(--ino-text);
        font-size: 12px;
        white-space: pre-wrap;
        overflow-wrap: anywhere;
    }

@media (max-width: 767.98px) {
    .ino-problem-body {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Kanal sorusunda reddedilen cevap metni; hata kutusunun altında, yeniden yazarken görülsün. */
.ino-rejected-answer {
    margin-top: 8px;
    padding: 8px 12px;
    border-left: 3px solid var(--ino-border-strong);
    background: var(--ino-surface-muted);
    border-radius: 0 var(--ino-radius-sm) var(--ino-radius-sm) 0;
}

/* Yükleniyor iskeleti (InoUi.skeleton): AJAX ile gelen içerik beklenirken metin yerine
   içeriğin biçimini gösterir. Hareketi azaltmak isteyen kullanıcıda parıltı durur. */
.ino-skeleton-block {
    padding: 4px 0;
}

.ino-skeleton {
    height: 14px;
    margin-bottom: 12px;
    border-radius: var(--ino-radius-sm);
    background: linear-gradient(90deg, var(--ino-border) 25%, var(--ino-surface-muted) 50%, var(--ino-border) 75%);
    background-size: 200% 100%;
    animation: ino-skeleton-shimmer 1.4s ease-in-out infinite;
}

.ino-skeleton:last-child {
    margin-bottom: 0;
}

.ino-skeleton-short {
    width: 60%;
}

@keyframes ino-skeleton-shimmer {
    from { background-position: 200% 0; }
    to { background-position: -200% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .ino-skeleton {
        animation: none;
    }
}

/* Toplu işlem özeti (InoBulkResult, ino-ui.js). */
.ino-bulk-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
}

.ino-bulk-group-title {
    margin: 12px 0 6px;
    color: var(--ino-text-muted);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.ino-bulk-list {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 13px;
}

    .ino-bulk-list li {
        display: flex;
        flex-direction: column;
        gap: 2px;
        padding: 8px 0;
        border-bottom: 1px solid var(--ino-border);
    }

        .ino-bulk-list li:last-child {
            border-bottom: 0;
        }

    .ino-bulk-list span {
        color: var(--ino-text-muted);
        overflow-wrap: anywhere;
    }

/* Liste kartı */

.ino-list-card {
    overflow: hidden;
}

    .ino-list-card .table-responsive {
        width: 100%;
        overflow-x: auto;
    }

    .ino-list-card table {
        margin-bottom: 0;
        min-width: 1100px;
    }

.ino-page-title-wrap {
    display: flex;
    align-items: center;
    gap: 14px;
}

/* Topbar'daki menü düğmesi yalnız dar ekranda (çekmeceyi açar). Masaüstünde
   daraltma sidebar'ın kendi başındaki düğmededir. */
.ino-topbar-sidebar-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--ino-border);
    border-radius: var(--ino-radius);
    background: var(--ino-surface);
    color: var(--ino-text);
    transition: background-color var(--ino-transition), color var(--ino-transition), border-color var(--ino-transition);
}

    .ino-topbar-sidebar-toggle:hover {
        background: var(--ino-surface-muted);
        color: var(--ino-primary);
        border-color: var(--ino-primary-light);
    }

    .ino-topbar-sidebar-toggle i {
        font-size: 22px;
    }


/* Topbar */

.ino-topbar {
    position: relative;
    z-index: 1050;
    width: 100%;    
    backdrop-filter: blur(12px);    
    min-height: 64px;
    box-shadow: 0 1px 0 rgba(15, 23, 42, .02);
    background: #fff;
    border-bottom: 1px solid var(--ino-border);
}

.ino-topbar-container {
    padding-left: 28px;
    padding-right: 36px;
    width: 100%;
}

.ino-header-left {
    min-width: 180px;
}

.ino-header-center {
    flex: 1;
    display: flex;
    justify-content: center;
}

.ino-global-search {
    width: 100%;
    max-width: 420px;
    position: relative;
    background: #fff;
    border: 1px solid var(--ino-border);
    border-radius: var(--ino-radius);
}

    .ino-global-search i {
        position: absolute;
        left: 14px;
        top: 50%;
        transform: translateY(-50%);
        color: #94a3b8;
    }

    .ino-global-search input {
        width: 100%;
        height: 42px;
        font-size: 14px;
        border: 1px solid #dbe2ea;
        border-radius: var(--ino-radius);
        padding-left: 42px;
        padding-right: 64px;
        background: #fff;
        outline: none;
        transition: all .15s ease;
    }

        .ino-global-search input:focus {
            border-color: #2563eb;
            box-shadow: 0 0 0 3px rgba(37,99,235,.08);
        }

        .ino-global-search input::-webkit-search-cancel-button {
            cursor: pointer;
        }

    .ino-global-search.is-loading > .ti-search {
        animation: ino-gsearch-pulse .8s ease-in-out infinite alternate;
    }

@keyframes ino-gsearch-pulse {
    from { opacity: 1; }
    to { opacity: .3; }
}

.ino-gsearch-kbd {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 11px;
    padding: 2px 6px;
    color: #94a3b8;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    box-shadow: none;
    pointer-events: none;
}

.ino-global-search input:focus ~ .ino-gsearch-kbd,
.ino-global-search input:not(:placeholder-shown) ~ .ino-gsearch-kbd {
    display: none;
}

/* Sonuç paneli: arama kutusunun altında, kutudan geniş olabilir. Sağ kenara
   hizalı büyür; kutu sayfanın sağına kaydığında ekrandan taşmasın. */
.ino-gsearch-panel {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    width: max(100%, 480px);
    max-height: min(70vh, 560px);
    overflow-y: auto;
    background: #fff;
    border: 1px solid var(--ino-border);
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, .12);
    padding: 6px;
    z-index: 1050;
}

.ino-gsearch-group + .ino-gsearch-group {
    border-top: 1px solid #f1f5f9;
    margin-top: 4px;
    padding-top: 4px;
}

.ino-gsearch-group-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 10px 4px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--ino-muted);
}

    .ino-gsearch-group-title .ti {
        position: static;
        transform: none;
        color: inherit;
        margin-right: 4px;
    }

.ino-gsearch-more {
    font-size: 12px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    color: #2563eb;
    text-decoration: none;
    padding: 2px 6px;
    border-radius: 6px;
}

    .ino-gsearch-more.is-active,
    .ino-gsearch-more:hover {
        background: #eff6ff;
        text-decoration: none;
    }

.ino-gsearch-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 10px;
    border-radius: 8px;
    color: var(--ino-text);
    text-decoration: none;
}

    .ino-gsearch-item:hover,
    .ino-gsearch-item.is-active {
        background: #eff6ff;
        color: var(--ino-text);
        text-decoration: none;
    }

    .ino-gsearch-item.is-muted .ino-gsearch-item-title {
        color: var(--ino-muted);
    }

.ino-gsearch-command-icon {
    flex: 0 0 auto;
    color: var(--ino-text-muted);
    font-size: 18px;
}

.ino-gsearch-item-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.ino-gsearch-item-title,
.ino-gsearch-item-sub {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ino-gsearch-item-title {
    font-size: 13px;
    font-weight: 600;
}

.ino-gsearch-item-sub {
    font-size: 12px;
    color: var(--ino-muted);
}

.ino-gsearch-badge {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 600;
    color: #475569;
    background: #f1f5f9;
    border-radius: 6px;
    padding: 2px 8px;
}

.ino-gsearch-open,
.ino-gsearch-close {
    display: none;
    align-items: center;
    justify-content: center;
    background: none;
    border: 0;
    color: var(--ino-text);
}

    .ino-gsearch-open .ti,
    .ino-gsearch-close .ti {
        font-size: 20px;
    }

.ino-gsearch-close {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    border-radius: 10px;
}

    .ino-gsearch-close:hover {
        background: #f1f5f9;
    }

.ino-gsearch-empty {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 12px;
    font-size: 13px;
    color: var(--ino-muted);
}

    .ino-gsearch-empty .ti {
        position: static;
        transform: none;
    }

.ino-page-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--ino-text);
}

.ino-user-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--ino-text);
}

.ino-user-role {
    font-size: 12px;
    color: var(--ino-muted);
}

.ino-avatar {
    background: var(--ino-primary);
    color: #fff;
    font-weight: 700;
}

/* Body */

.ino-body {
    padding-top: 12px;
    margin-top: 0;
    padding-bottom: 32px;
}

.ino-container {
    padding-left: 28px;
    padding-right: 28px;
}

/* Cards */

.card,
.ino-stat-card {
    background: var(--ino-surface);
    border: 1px solid var(--ino-border);
    border-radius: var(--ino-card-radius);
    box-shadow: var(--ino-shadow-sm);
}

    .card:hover,
    .ino-stat-card:hover {
        border-color: var(--ino-border-strong);
    }

.card-header {
    border-bottom: 1px solid var(--ino-border);
    background: #fff;
    border-radius: var(--ino-card-radius) var(--ino-card-radius) 0 0;
}

/* Buttons */


.btn.btn-primary {
    background-color: var(--ino-primary) !important;
    border-color: var(--ino-primary) !important;
    color: #ffffff !important;
}

    .btn.btn-primary:hover,
    .btn.btn-primary:focus,
    .btn.btn-primary:active {
        background-color: var(--ino-primary-hover) !important;
        border-color: var(--ino-primary-hover) !important;
        color: #ffffff !important;
        opacity: 1 !important;
    }


/* Forms */

.form-control,
.form-select {
    border-radius: var(--ino-radius);
    border-color: #d1d5db;
}

    .form-control:focus,
    .form-select:focus {
        border-color: var(--ino-primary-light);
        box-shadow: var(--ino-focus-ring);
    }

/* Table */

.table thead th {
    color: #475569;
    font-size: 12px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    background: var(--ino-surface-muted);
}

/* Utilities */

.ino-section-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--ino-text);
}

.ino-muted {
    color: var(--ino-muted);
}

/* Login — giriş, kayıt, şifre ve hata sayfaları (_LoginLayout). Renk, köşe ve yazı
   tokenlardan; büyük harf dönüşümü yok (cümle düzeni). Marka paneli koyu → ana renk geçişi. */

.ino-login-body {
    margin: 0;
    min-height: 100vh;
    background: var(--ino-bg);
}

.ino-login-page {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1.1fr .9fr;
}

.ino-login-brand-panel {
    position: relative;
    overflow: hidden;
    background: radial-gradient(circle at 20% 20%, rgba(59,130,246,.45), transparent 30%), linear-gradient(135deg, var(--ino-sidebar) 0%, var(--ino-primary-hover) 55%, var(--ino-primary) 100%);
    color: #fff;
    display: flex;
    align-items: center;
    padding: 72px;
}

    .ino-login-brand-panel::before {
        content: "";
        position: absolute;
        width: 420px;
        height: 420px;
        left: -160px;
        top: 18%;
        border: 1px solid rgba(255,255,255,.14);
        transform: rotate(45deg);
    }

    .ino-login-brand-panel::after {
        content: "";
        position: absolute;
        width: 520px;
        height: 520px;
        right: -220px;
        bottom: -160px;
        border: 1px solid rgba(255,255,255,.12);
        border-radius: 50%;
    }

.ino-login-brand-content {
    position: relative;
    z-index: 2;
    max-width: 560px;
}

/* Marka paneli: Entegrino işareti + yazısı (Partials/_BrandWordmark). Yazı metindir, Inter. */
.ino-brand-wordmark {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
    color: #fff;
}

    .ino-brand-wordmark img {
        width: 60px;
        height: 60px;
        flex: 0 0 60px;
    }

    .ino-brand-wordmark span {
        font-size: 44px;
        font-weight: 700;
        letter-spacing: -1px;
        line-height: 1;
    }

/* Ürün etiketi ("E-Ticaretin Tek Paneli"); sidebar alt başlığıyla aynı metin. */
.ino-login-product-name {
    display: inline-flex;
    padding: 6px 12px;
    margin-bottom: 32px;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    font-size: 14px;
    font-weight: 500;
}

.ino-login-brand-content h1 {
    font-size: 44px;
    line-height: 1.1;
    font-weight: 700;
    letter-spacing: -.03em;
    margin-bottom: 18px;
}

.ino-login-brand-content p {
    font-size: 17px;
    line-height: 1.7;
    color: rgba(255,255,255,.78);
    margin-bottom: 32px;
}

.ino-login-features {
    display: grid;
    gap: 14px;
}

    .ino-login-features div {
        display: flex;
        align-items: center;
        gap: 12px;
        font-size: 15px;
        color: rgba(255,255,255,.9);
    }

    .ino-login-features i {
        flex: 0 0 34px;
        width: 34px;
        height: 34px;
        border-radius: var(--ino-radius);
        background: rgba(255,255,255,.12);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 19px;
    }

.ino-login-form-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 64px;
    background: radial-gradient(circle at 50% 35%, rgba(37,99,235,.06), transparent 34%), var(--ino-bg);
}

.ino-login-card {
    width: 100%;
    max-width: 520px;
    background: var(--ino-surface);
    border: 1px solid var(--ino-border);
    border-radius: var(--ino-card-radius);
    padding: 40px;
    box-shadow: var(--ino-shadow-lg);
}

.ino-login-card-header {
    margin-bottom: 28px;
}

    .ino-login-card-header h2 {
        font-size: 26px;
        font-weight: 700;
        letter-spacing: -.02em;
        margin-bottom: 6px;
        color: var(--ino-text);
    }

    .ino-login-card-header p {
        color: var(--ino-text-muted);
        margin: 0;
    }

.ino-login-card .form-label {
    font-weight: 500;
    color: var(--ino-text);
}

.ino-login-card .form-control {
    height: 44px;
    border-radius: var(--ino-radius);
}

.ino-login-link {
    font-size: 14px;
    color: var(--ino-primary);
    text-decoration: none;
    font-weight: 500;
}

    .ino-login-link:hover {
        color: var(--ino-primary-hover);
        text-decoration: underline;
    }

.ino-login-button {
    height: 44px;
    border-radius: var(--ino-button-radius);
    font-weight: 600;
}

.ino-login-footer {
    margin-top: 28px;
    text-align: center;
    font-size: 12px;
    color: var(--ino-text-muted);
}

.ino-login-divider {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 26px 0 22px;
    color: var(--ino-text-muted);
    font-size: 13px;
    font-weight: 500;
}

    .ino-login-divider::before,
    .ino-login-divider::after {
        content: "";
        flex: 1;
        height: 1px;
        background: var(--ino-border);
    }

/* Google ile devam et: beyaz zemin, ince gri çerçeve; yükseklik ve köşe .ino-login-button ile aynı. */
.ino-google-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 46px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #dadce0;
    color: #1f2937;
    font-weight: 600;
}

    .ino-google-button:hover,
    .ino-google-button:focus-visible {
        background: #f8fafc;
        border-color: #c4c7cc;
        color: #1f2937;
    }

.ino-google-logo {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.ino-start-box {
    border: 1px solid var(--ino-border);
    background: var(--ino-surface-muted);
    border-radius: var(--ino-card-radius);
    padding: 18px;
}

.ino-start-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 14px;
}

.ino-start-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--ino-text);
}

.ino-start-subtitle {
    font-size: 13px;
    color: var(--ino-text-muted);
    margin-top: 2px;
}

/* Başlangıç paketi kutusu (Components/FreePlan): üstte küçük paket etiketi, altta büyüme notu. */
.ino-start-eyebrow {
    margin-bottom: 2px;
    font-size: 12px;
    font-weight: 600;
    color: var(--ino-primary);
}

.ino-start-growth {
    margin: 0 0 16px;
    padding-top: 12px;
    border-top: 1px solid var(--ino-border);
    font-size: 12px;
    line-height: 1.6;
    color: var(--ino-text-muted);
}

.ino-start-limits {
    display: grid;
    gap: 8px;
    margin-bottom: 14px;
}

    .ino-start-limits div {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 13px;
        color: var(--ino-text);
    }

    .ino-start-limits i {
        flex: 0 0 16px;
        color: var(--ino-primary);
        font-size: 16px;
    }

.ino-start-button {
    height: 44px;
    border-radius: var(--ino-button-radius);
    font-weight: 600;
    background: var(--ino-surface);
    border-color: var(--ino-border-strong);
    color: var(--ino-text);
}

    .ino-start-button:hover {
        background: var(--ino-primary-soft);
        border-color: var(--ino-primary);
        color: var(--ino-primary-hover);
    }

/* Register */

.ino-register-page .ino-login-form-panel {
    align-items: center;
    padding: 36px 64px;
}

.ino-register-card {
    max-width: 620px;
    padding: 30px 34px;
}

    .ino-register-card .ino-login-card-header {
        margin-bottom: 22px;
    }

.ino-register-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 16px;
}

    .ino-register-grid .full {
        grid-column: 1 / -1;
    }

.ino-register-card .ino-login-divider {
    margin: 20px 0 16px;
}

.ino-register-card .ino-login-footer {
    margin-top: 20px;
}

.ino-register-card .mb-3 {
    margin-bottom: 0 !important;
}

.ino-register-card .ino-start-box {
    margin-bottom: 22px !important;
}

.ino-register-card .g-recaptcha {
    transform: scale(.92);
    transform-origin: left top;
    margin-bottom: -6px;
}

.ino-register-card .form-control {
    height: 42px;
}

/* Legal */

.ino-legal-page {
    min-height: 100vh;
    background: #f5f7fb;
    padding: 60px 20px;
}

.ino-legal-card {
    max-width: 900px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 24px;
    padding: 44px;
    box-shadow: 0 20px 60px rgba(15,23,42,.08);
}

    .ino-legal-card h1 {
        font-size: 32px;
        font-weight: 800;
        margin-bottom: 8px;
        color: #111827;
    }

.ino-legal-date {
    color: #64748b;
    margin-bottom: 32px;
}

.ino-legal-card h2 {
    font-size: 18px;
    font-weight: 800;
    margin-top: 28px;
    margin-bottom: 10px;
    color: #1e3a8a;
}

.ino-legal-card p {
    color: #334155;
    line-height: 1.7;
}

/* Validation */

.ino-password-hint {
    margin-top: 6px;
    font-size: 12px;
    color: #64748b;
    line-height: 1.4;
}

.input-validation-error,
.input-validation-error:focus {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 .2rem rgba(220,53,69,.15) !important;
}

.field-validation-error {
    display: none;
}

.ino-validation-summary.validation-summary-valid {
    display: none;
}

.ino-validation-summary.validation-summary-errors,
.validation-summary-errors:not(:empty) {
    display: block;
    padding: 14px 16px;
    margin-bottom: 18px;
    border: 1px solid #fecaca;
    border-radius: 8px;
    background: #fef2f2;
    color: #991b1b;
    font-size: 13px;
}

.validation-summary-errors ul {
    margin-bottom: 0;
}

.form-check-input.input-validation-error {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 .2rem rgba(220,53,69,.15) !important;
}

/* Responsive */

@media (max-width: 992px) {
    .ino-login-page {
        grid-template-columns: 1fr;
    }

    .ino-login-brand-panel {
        display: none;
    }

    .ino-login-form-panel {
        min-height: 100vh;
    }
}

@media (max-width: 768px) {
    .ino-register-grid {
        grid-template-columns: 1fr;
    }

        .ino-register-grid .full {
            grid-column: auto;
        }

    /* Panel + kart dolgusu dar ekranda forma yer bırakmıyordu. */
    .ino-login-form-panel,
    .ino-register-page .ino-login-form-panel {
        padding: 24px 16px;
    }

    .ino-login-card {
        padding: 24px 20px;
        border-radius: 20px;
    }

    .ino-brand-wordmark img {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
    }

    .ino-brand-wordmark span {
        font-size: 32px;
    }

    /* Hukuki sayfalar (KVKK, sözleşme, çerez) telefonda da okunur:
       60+44px dolgu metne 247px bırakıyordu. */
    .ino-legal-page {
        padding: 24px 14px;
    }

    .ino-legal-card {
        padding: 24px 20px;
        border-radius: 18px;
    }
}


.ino-stat-card {
    padding: 22px 24px;
}

.ino-stat-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ino-muted);
    margin-bottom: 6px;
}

.ino-stat-value {
    font-size: 28px;
    font-weight: 800;
    color: var(--ino-text);
    line-height: 1.1;
}

.ino-stat-description {
    margin-top: 14px;
    font-size: 13px;
    color: var(--ino-muted);
}

.btn {
    border-radius: var(--ino-button-radius);
    font-weight: 600;
}

.btn-primary {
    background: var(--ino-primary);
    border-color: var(--ino-primary);
}

    .btn-primary:hover,
    .btn-primary:focus {
        background: var(--ino-primary-dark);
        border-color: var(--ino-primary-dark);
    }

.ino-stat-card-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--ino-text-muted);
    text-transform: uppercase;
    letter-spacing: .5px;
}

.ino-stat-card-value {
    font-size: 36px;
    font-weight: 700;
    color: var(--ino-text);
}

.ino-stat-card-subtitle {
    color: var(--ino-text-muted);
}


/* Breadcrumb */
.ino-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
}



.ino-breadcrumb-item {
    color: #6c757d;
}

.ino-breadcrumb-separator {
    color: #adb5bd;
}

.ino-breadcrumb-current {
    font-weight: 600;
    color: #212529;
}
/* Breadcrumb */


/* PageHeader */
.ino-page-header {
    margin-bottom: 14px;
}

.ino-page-header-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.ino-page-header-title {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.25;
    color: #0f172a;
}

/* Başlık ve yanındaki ek (görünüm seçici vb.) aynı satırda. */
.ino-page-header-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
}

/* Görünüm seçici (Liste / Pano / Takvim): sekme satırının sağında ayrı
   çerçeveli düğmeler; etkin olan mavi tonlu zeminle öne çıkar. */
.ino-view-switch {
    display: inline-flex;
    gap: 8px;
    flex-shrink: 0;
}

.ino-view-switch-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 14px;
    font-size: 13px;
    font-weight: 500;
    color: var(--tblr-body-color);
    text-decoration: none;
    background: var(--tblr-bg-surface);
    border: 1px solid var(--tblr-border-color);
    border-radius: 8px;
    transition: background-color .15s, color .15s, border-color .15s;
}

.ino-view-switch-item:hover {
    border-color: var(--tblr-primary);
    text-decoration: none;
}

.ino-view-switch-item.is-active {
    color: var(--tblr-primary);
    background: rgba(var(--tblr-primary-rgb), .08);
    border-color: rgba(var(--tblr-primary-rgb), .35);
}

.ino-view-switch-item i {
    font-size: 16px;
}

/* Görev durum ikonu: kolon renginde (--ino-column-accent) daire içinde beyaz ikon.
   Pano kolon başlığı ve liste grup başlığı ortak kullanır. */
.ino-status-icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--ino-column-accent, var(--tblr-secondary));
    color: #fff;
}

.ino-status-icon .ti {
    font-size: 12px;
    stroke-width: 2.5;
}

/* Süzgeç çipi: kompakt, içeriğe göre genişleyen açılır liste (Görevler süzgeç
   satırı). Boş seçenek süzgecin adını taşır ("Kategori"); bir değer seçilince
   çip mavi kenarlıkla belli olur — JS gerekmez. Grupla gibi her zaman değeri
   olan listeler ino-filter-chip-neutral ile vurgudan çıkar. Özgüllük sayfa
   CSS'lerindeki genişlik kurallarını (ör. .ino-calendar-filters .form-select) aşar. */
select.form-select.ino-filter-chip,
.ino-select-search:has(> select.ino-filter-chip) > .ino-select-search-toggle {
    width: auto;
    min-width: 0;
    max-width: 14rem;
    height: 32px;
    padding: 4px 30px 4px 12px;
    font-size: 13px;
    font-weight: 500;
    color: var(--tblr-body-color);
    background-color: var(--tblr-bg-surface);
    background-position: right 10px center;
    background-size: 12px 12px;
    border-radius: 8px;
}

/* Uzun listeler InoSelectSearch ile aramalı düğmeye dönüşür; düğme de çip olur. */
.ino-select-search:has(> select.ino-filter-chip) {
    flex: 0 0 auto;
}

select.form-select.ino-filter-chip:not(.ino-filter-chip-neutral):has(option:checked:not([value=""])),
.ino-select-search:has(> select.ino-filter-chip:not(.ino-filter-chip-neutral) option:checked:not([value=""])) > .ino-select-search-toggle {
    color: var(--tblr-primary);
    background-color: rgba(var(--tblr-primary-rgb), .06);
    border-color: rgba(var(--tblr-primary-rgb), .45);
}

/* Süzgeç satırındaki öncelik bayrağı ve Tarih kutusu çip boyunda. */
.ino-priority-filter.ino-priority-flag {
    width: 32px;
    height: 32px;
    border-radius: 8px;
}

/* Görevler sekme satırı: solda kapsam sekmeleri (alt çizgili, sayı rozetli),
   sağda görünüm düğmeleri; satırın tamamı alt çizgiyi taşır. */
.ino-task-tabbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: -4px 0 16px;
    border-bottom: 1px solid var(--tblr-border-color);
}

.ino-task-tabs {
    display: flex;
    align-self: stretch;
    align-items: flex-end;
    gap: 24px;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.ino-task-tabbar > .ino-view-switch {
    margin: 6px 0;
}

/* Telefonda görünüm düğmeleri üstte, sekmeler alt çizginin üzerinde kalır. */
@media (max-width: 767.98px) {
    .ino-task-tabbar {
        flex-direction: column-reverse;
        align-items: stretch;
        gap: 4px;
    }

    .ino-task-tabbar > .ino-view-switch {
        margin: 0;
    }

    .ino-view-switch-item {
        flex: 1 1 0;
        justify-content: center;
    }
}

.ino-task-tab {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 10px 2px;
    margin-bottom: -1px;
    font-size: 14px;
    font-weight: 500;
    color: var(--tblr-secondary);
    white-space: nowrap;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: color .15s, border-color .15s;
}

.ino-task-tab:hover {
    color: var(--tblr-body-color);
    text-decoration: none;
}

.ino-task-tab.is-active {
    color: var(--tblr-primary);
    font-weight: 600;
    border-bottom-color: var(--tblr-primary);
}

.ino-task-tab-count {
    min-width: 22px;
    padding: 1px 7px;
    font-size: 12px;
    font-weight: 600;
    line-height: 18px;
    text-align: center;
    color: var(--tblr-secondary);
    background: var(--tblr-bg-surface-secondary);
    border-radius: 999px;
}

.ino-task-tab.is-active .ino-task-tab-count {
    color: var(--tblr-primary);
    background: rgba(var(--tblr-primary-rgb), .1);
}

.ino-page-header-description {
    margin-top: 4px;
    font-size: 14px;
    color: #64748b;
}

.ino-page-header-action {
    min-height: 40px;
    padding-left: 18px;
    padding-right: 18px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    font-weight: 600;
    border-radius: 10px;
}
/** PageHeader */

/* filter form */
.ino-filter-form .form-control,
.ino-filter-form .form-select,
.ino-filter-form .btn {
    min-height: 40px;
}
/** filter form */


/* filter sort */

.ino-table-footer {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding: 12px 16px;
    border-top: 1px solid #e5e7eb;
    background: #fff;
}

.ino-table-info {
    justify-self: start;
    font-size: 14px;
    font-weight: 600;
}

.ino-page-size {
    justify-self: center;
}

.ino-pagination {
    justify-self: end;
}

.ino-pagination {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ino-page-text {
    font-size: 13px;
    color: #475569;
}
.ino-sort-link {
    display: inline-flex;
    align-items: center;
    color: inherit;
    text-decoration: none;
    font-weight: 600;
}

    .ino-sort-link:hover {
        color: var(--ino-primary);
    }
.ino-page-size {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #64748b;
}

    .ino-page-size .form-select {
        width: 80px;
        min-height: 32px;
    }
/* filter sort */


.ino-table-clickable tbody tr {
    cursor: pointer;
}

    .ino-table-clickable tbody tr:hover {
        background-color: #f8fafc;
    }

.ino-icon-button {
    width: 32px;
    height: 32px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}


/* empty state */
.ino-empty-state {
    padding: 48px 24px;
    text-align: center;
    background: #fff;
}

.ino-empty-state-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 14px;
    border-radius: 16px;
    background: #f1f5f9;
    color: var(--ino-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
}

.ino-empty-state-title {
    font-size: 16px;
    font-weight: 700;
    color: #0f172a;
}

.ino-empty-state-description {
    margin-top: 6px;
    font-size: 14px;
    color: #64748b;
}
/** empty state */

/* table checkbox */
.ino-selection-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    border-bottom: 1px solid #e5e7eb;
    background: #f8fafc;
    font-size: 13px;
    color: #334155;
}

.ino-selection-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}
/** table checkbox */
.ino-list-toolbar {
    display: flex;
    justify-content: flex-end;
    padding: 10px 16px;
    border-bottom: 1px solid #e5e7eb;
    background: #fff;
}
.ino-table-action-menu {
    width: 30px;
    height: 30px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.ino-list-menu-btn {
    width: 34px;
    height: 34px;
    padding: 0;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f8fafc;
    border: 1px solid #dbe3ef;
    color: #64748b;
}

    .ino-list-menu-btn:hover,
    .ino-list-menu-btn:focus {
        background: #eff6ff;
        border-color: #bfdbfe;
        color: var(--ino-primary);
    }

.ino-list-menu {
    min-width: 170px;
    border-radius: 10px;
    padding: 6px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .12);
}

    .ino-list-menu .dropdown-item {
        border-radius: 8px;
        font-size: 13px;
        padding: 8px 10px;
    }

.ino-row-action {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #2563eb;
    text-decoration: none !important;
    background: transparent;
    border: 1px solid transparent;
}

    .ino-row-action:hover {
        color: var(--ino-primary);
        background: #eff6ff;
        border-color: #bfdbfe;
    }

    .ino-row-action i,
    .ino-list-menu-btn i {
        font-size: 16px;
    }




/** sort */
.ino-sort-input-wrap {
    display: flex;
    align-items: center;
    gap: 4px;
}

.ino-sort-stack {
    width: 14px;
    min-width: 14px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.ino-sort-btn {
    width: 14px;
    height: 10px;
    padding: 0;
    border: none;
    background: transparent;
    color: #6c757d;
    line-height: 1;
    cursor: pointer;
}

    .ino-sort-btn:hover:not(:disabled) {
        color: var(--tblr-primary);
    }

    .ino-sort-btn:disabled {
        opacity: 0.2;
        cursor: default;
    }

    .ino-sort-btn i {
        font-size: 10px;
    }

/**/
.ino-input-with-actions {
    position: relative;
}

    .ino-input-with-actions .form-control {
        padding-right: 48px;
    }

.ino-input-actions {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    gap: 8px;
}

    .ino-input-actions .ino-field-action {
        color: #64748b;
        text-decoration: none;
        line-height: 1;
    }

        .ino-input-actions .ino-field-action:hover {
            color: var(--tblr-primary);
        }

        .ino-input-actions .ino-field-action i {
            font-size: 15px;
        }

/* Kutunun üst kenarına oturan durum rozeti. Etiket metni kısa olduğu için
   sağ üst köşe boştur; rozet oraya konunca satır yüksekliği değişmez. */
.ino-input-badge {
    position: absolute;
    top: -10px;
    right: 8px;
    z-index: 2;
    display: none;
    align-items: center;
    padding: 1px 8px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}

    .ino-input-badge.is-visible {
        display: inline-flex;
    }

    .ino-input-badge.ino-badge-einvoice {
        background: #ecfdf5;
        border-color: #a7f3d0;
        color: #047857;
    }

    .ino-input-badge.ino-badge-earchive {
        background: #eff6ff;
        border-color: #bfdbfe;
        color: #1d4ed8;
    }

/* Alan altındaki uyarı satırı. Hata değil — kayıt engellenmiyor, kullanıcı
   sicildeki değeri görüp kendi kararını veriyor. */
.ino-field-warning {
    color: #b45309;
}

    .ino-field-warning .ino-field-warning-value {
        font-weight: 600;
    }

    .ino-field-warning a {
        color: inherit;
        text-decoration: underline;
        cursor: pointer;
        white-space: nowrap;
    }

.ino-field-action.is-busy {
    pointer-events: none;
    opacity: .55;
}

    .ino-field-action.is-busy i {
        animation: ino-spin .9s linear infinite;
    }

@keyframes ino-spin {
    to {
        transform: rotate(360deg);
    }
}

/***/
.ino-text-input {
    text-align: left;
}

.ino-money-input,
.ino-decimal-input,
.ino-integer-input,
.ino-percent-input {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.ino-date-input {
    text-align: center;
}

.ino-phone-input {
    font-variant-numeric: tabular-nums;
}

.ino-taxnumber-input,
.ino-identity-input,
.ino-iban-input {
    font-variant-numeric: tabular-nums;
}
/**/
.ino-record-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .2rem 1rem;
    background: #fafbfc;
    border: 1px solid #e9ecef;
    border-radius: .4rem;
    font-size: .82rem;
    color: #6c757d;
}

    .ino-record-info strong {
        color: #495057;
        font-weight: 600;
    }

    /**/
.ino-image-dropzone {
    display: block;
    border: 1px solid #dbe1ea;
    border-radius: 6px;
    padding: 44px 16px;
    color: #5d6b82;
    background: #fff;
}

    .ino-image-dropzone i {
        display: block;
        font-size: 56px;
        color: #d5dde6;
        margin-bottom: 8px;
    }

    .ino-image-dropzone strong {
        display: block;
        color: #111827;
        margin-top: 4px;
    }

    .ino-image-dropzone small {
        display: block;
        font-size: 12px;
        color: #7b8794;
        font-style: italic;
        margin-top: 6px;
    }
    /**/

/* STICKY FORM ACTIONS */
/* Sekmeli form kartının sticky footer davranışını hazırlar. */
.ino-tabbed-form-card {
    overflow: visible;
}

/* Formu kart içinde dikey akışta tutar. */
.ino-tabbed-form {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

/* Sekme içeriğinin footer altında kalmasını engeller. */
.ino-tabbed-form-body {
    flex: 1 1 auto;
    padding-bottom: 2rem;
}

/* Form aksiyonlarını ekranın altında görünür tutar. */
.ino-form-actions {
    position: sticky;
    bottom: 0;
    z-index: 40;
    width: 100%;
    padding: 0.9rem 1.25rem;
    background: var(--tblr-bg-surface, #fff);
    border-top: 1px solid rgba(98, 105, 118, 0.18);
    box-shadow: 0 -4px 14px rgba(31, 41, 55, 0.06);
}

.ino-audit-box {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-top: 1.25rem;
    padding: 0.45rem 0.9rem;
    overflow: hidden;
    background: var(--tblr-bg-surface-secondary, #f8fafc);
    border: 1px solid var(--tblr-border-color);
    border-radius: var(--tblr-border-radius);
}

.ino-audit-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-width: 0;
}

    .ino-audit-content > div {
        min-width: 0;
    }

@media (max-width: 767.98px) {
    .ino-audit-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }

        .ino-audit-content .text-md-end {
            text-align: left !important;
        }
}

/* Mobilde aksiyonların taşmasını engeller. */
@media (max-width: 767.98px) {
    .ino-form-actions {
        padding: 0.75rem 1rem;
    }

        .ino-form-actions .btn {
            white-space: nowrap;
        }
}


/* ürün listesi küçük görsel*/
.ino-product-list-thumb {
    display: flex;
    flex: 0 0 52px;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    overflow: hidden;
    color: var(--tblr-secondary);
    background: var(--tblr-bg-surface-secondary);
    border: 1px solid var(--tblr-border-color);
    border-radius: 0.5rem;
}

    .ino-product-list-thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .ino-product-list-thumb i {
        font-size: 1.25rem;
    }

    /**/
.ino-product-dropdown {
    position: fixed;
    max-height: 360px;
    overflow-y: auto;
    z-index: 2000;
    background: var(--tblr-bg-surface);
    border: 1px solid var(--tblr-border-color);
    border-radius: var(--tblr-border-radius);
    box-shadow: var(--tblr-box-shadow-dropdown);
}

    .ino-product-dropdown table {
        min-width: 620px;
    }

    .ino-product-dropdown thead {
        position: sticky;
        top: 0;
        z-index: 1;
        background: var(--tblr-bg-surface-secondary);
    }

    .ino-product-dropdown tbody tr {
        cursor: pointer;
    }

.ino-product-dropdown-loading,
.ino-product-dropdown-empty {
    padding: 1.25rem;
    text-align: center;
    color: var(--tblr-secondary);
}
/**/
.validation-summary-valid {
    display: none;
}

.ino-list-card {
    overflow: visible;
}

    .ino-list-card .table-responsive {
        overflow-x: auto;
        overflow-y: visible;
    }

    .ino-list-card .dropdown {
        position: static;
    }

    .ino-list-card .dropdown-menu {
        z-index: 1080;
    }

/* Entegrasyon bağlantısı kurulum adımları */
.integration-setup-card {
    overflow: hidden;
}

.integration-setup-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.integration-setup-step {
    position: relative;
    display: flex;
    min-width: 0;
    gap: 12px;
    padding: 14px 18px;
    border-radius: 10px;
}

    .integration-setup-step:not(:last-child)::after {
        position: absolute;
        z-index: 0;
        top: 31px;
        right: -18px;
        left: 54px;
        height: 2px;
        background: var(--tblr-border-color);
        content: "";
    }

.integration-setup-step-marker {
    position: relative;
    z-index: 1;
    display: inline-flex;
    flex: 0 0 36px;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 2px solid var(--tblr-border-color);
    border-radius: 50%;
    background: var(--tblr-bg-surface);
    color: var(--tblr-secondary);
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
}

    .integration-setup-step-marker .ti {
        font-size: 20px;
        stroke-width: 2.5;
    }

.integration-setup-step-content {
    position: relative;
    z-index: 1;
    min-width: 0;
    padding-top: 1px;
}

.integration-setup-step-title {
    margin-bottom: 3px;
    color: var(--tblr-secondary);
    font-weight: 600;
}

.integration-setup-step-description {
    color: var(--tblr-secondary);
    font-size: 12px;
    line-height: 1.4;
}

.integration-setup-step.is-active {
    background: var(--tblr-primary-lt);
    box-shadow: inset 0 0 0 1px rgba(var(--tblr-primary-rgb), 0.12);
}

    .integration-setup-step.is-active .integration-setup-step-marker {
        border-color: var(--tblr-primary);
        background: var(--tblr-primary);
        color: #fff;
        box-shadow: 0 0 0 4px rgba(var(--tblr-primary-rgb), 0.12);
    }

    .integration-setup-step.is-active .integration-setup-step-title {
        color: var(--tblr-primary);
    }

.integration-setup-step.is-completed .integration-setup-step-marker {
    border-color: var(--tblr-success);
    background: var(--tblr-success);
    color: #fff;
}

.integration-setup-step.is-completed .integration-setup-step-title {
    color: var(--tblr-success);
}

.integration-setup-step.is-completed:not(:last-child)::after {
    background: var(--tblr-success);
}

.integration-setup-step.is-pending {
    opacity: 0.72;
}

@media (max-width: 991.98px) {
    .integration-setup-steps {
        grid-template-columns: 1fr;
    }

    .integration-setup-step {
        min-height: 78px;
        padding: 10px 12px;
    }

        .integration-setup-step:not(:last-child)::after {
            top: 46px;
            right: auto;
            bottom: -32px;
            left: 29px;
            width: 2px;
            height: 42px;
        }
}

/* Marka eşleştirme — kanal markası arama listesi */
.ino-brand-mapping-card {
    overflow: visible;
}

.ino-brand-mapping-table,
.ino-brand-mapping-table table,
.ino-brand-mapping-table tbody,
.ino-brand-mapping-table tr,
.ino-brand-mapping-table td {
    overflow: visible;
}

/* Sabit konumlu: yer, genişlik ve yön JS'de hesaplanır (InoUi.anchorPanel).
   Tablo hücresi içinde absolute konumlanan panel kart kenarında kırpılıyordu. */
.ino-search-dropdown {
    position: fixed;
    max-height: 260px;
    overflow-y: auto;
    z-index: 2000;
    background: var(--tblr-bg-surface);
    border: 1px solid var(--tblr-border-color);
    border-radius: var(--tblr-border-radius);
    box-shadow: var(--tblr-box-shadow-dropdown);
}

    .ino-search-dropdown .list-group-item {
        background: var(--tblr-bg-surface);
        border-left: 0;
        border-right: 0;
        border-radius: 0;
    }

    .ino-search-dropdown .list-group-item-action:hover {
        background: var(--tblr-bg-surface-secondary);
    }


/* Kanal kartı: sağlayıcı kimliği sol şeritten okunur, kartlar alt alta gelince ayrışır. */
.ino-channel-card {
    border-left: 4px solid var(--ino-channel-accent, #4263eb);
    transition: border-left-color .15s ease-in-out;
}

    /* Tabler .card üzerine gelindiğinde border-color'ı bütün olarak değiştiriyor;
   şerit onunla griye dönmesin diye burada yeniden bildiriliyor. */
    .ino-channel-card:hover,
    .ino-channel-card:focus-within {
        border-left-color: color-mix(in srgb, var(--ino-channel-accent, #4263eb) 100%, #000 22%);
    }

    .ino-channel-card > .card-header {
        background: color-mix(in srgb, var(--ino-channel-accent, #4263eb) 7%, transparent);
    }

/* Kanal eylemleri dış sisteme veri gönderir; ürün formunun kaydet düğmesiyle
   aynı renkte olmamalı. */
.ino-btn-channel {
    background-color: var(--ino-channel-accent, #4263eb);
    border-color: var(--ino-channel-accent, #4263eb);
    color: #fff;
}

    .ino-btn-channel:hover,
    .ino-btn-channel:focus {
        background-color: var(--ino-channel-accent, #4263eb);
        border-color: var(--ino-channel-accent, #4263eb);
        color: #fff;
        filter: brightness(0.92);
    }

    .ino-btn-channel:disabled {
        opacity: .55;
    }
/* Kanala ait ama okuma amaçlı eylemler: aynı kimlik, daha hafif ağırlık. */
.ino-btn-channel-outline {
    background-color: transparent;
    border-color: color-mix(in srgb, var(--ino-channel-accent, #4263eb) 45%, transparent);
    color: var(--ino-channel-accent, #4263eb);
}

    .ino-btn-channel-outline:hover,
    .ino-btn-channel-outline:focus {
        background-color: color-mix(in srgb, var(--ino-channel-accent, #4263eb) 10%, transparent);
        border-color: var(--ino-channel-accent, #4263eb);
        color: var(--ino-channel-accent, #4263eb);
    }

/* Kaydedilmemiş değişiklik varken kaydetme şeridi ve sekme başlığı vurgulanır. */
.ino-form-actions-dirty {
    border-top-color: var(--tblr-orange, #f76707);
    box-shadow: 0 -4px 14px rgba(247, 103, 7, 0.18);
}

.ino-tab-dirty::after {
    content: "";
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    margin-left: 0.35rem;
    vertical-align: middle;
    background: var(--tblr-orange, #f76707);
    border-radius: 50%;
}

/* Yetkisiz kontrol gizlenmez, sebebiyle kilitlenir (4e.2).
   Tabler .btn:disabled'a pointer-events: none veriyor; tarayıcı kapalı
   elemanda hit-test yapamadığı için title balonu hiç çıkmıyordu, yani
   sebep yazılıyor ama okunamıyordu. Kilitli kontrolde imleç olayları geri
   açılır: disabled düğme zaten click üretmez, href'i sökülmüş bağlantı da
   bir yere gitmez. */
[data-permission-locked] {
    pointer-events: auto !important;
    cursor: not-allowed;
    opacity: 0.4;
    /* Bağlantıda disabled niteliği yok sayıldığından Tabler'ın hover
       kuralları çalışmaya devam ediyor ve kilitli düğme imleç altında
       koyulaşıp tıklanabilir görünüyordu. Çözülmüş rengi ezmek yerine
       hover değişkenlerini kendi taban değerlerine bağlıyoruz: kural
       tek yerde kalıyor, düğmenin kendi rengine dokunulmuyor. */
    --tblr-btn-hover-bg: var(--tblr-btn-bg);
    --tblr-btn-hover-border-color: var(--tblr-btn-border-color);
    --tblr-btn-hover-color: var(--tblr-btn-color);
    --tblr-dropdown-link-hover-bg: transparent;
    --tblr-dropdown-link-hover-color: var(--tblr-dropdown-link-color);
}

    [data-permission-locked]:hover,
    [data-permission-locked]:focus {
        text-decoration: none;
        box-shadow: none;
    }

/* Marka düğmesi kuralı (.btn.btn-primary:hover) rengi ve opaklığı
   !important ile kuruyor; değişken ezmesi oraya yetişmiyor. Kilitli
   düğmede hover'ı taban renge sabitlemek için aynı silahla ve daha
   yüksek özgüllükle yazılıyor — kural hâlâ tek yerde. */
.btn.btn-primary[data-permission-locked]:hover,
.btn.btn-primary[data-permission-locked]:focus,
.btn.btn-primary[data-permission-locked]:active {
    background-color: var(--ino-primary) !important;
    border-color: var(--ino-primary) !important;
    opacity: 0.4 !important;
}

/* ============================================================
   MOBİL VE TABLET DÜZENİ (< 992px)
   Dar ekranda sidebar yer kaplamaz; ekran dışından gelen bir
   çekmecedir. Konumlandırmanın tamamı burada; ino-layout.js yalnız
   gövde sınıflarını çevirir (bkz. AI.md "Konumlandırmayı CSS ile JS
   bölüşmez"). Dar ekrana ait kurallar tek yerde toplanır.
   ============================================================ */

/* Çekmece açıkken içeriği karartan katman; masaüstünde hiç görünmez. */
.ino-sidebar-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1029;
    background: rgba(15, 23, 42, .45);
    opacity: 0;
    visibility: hidden;
    transition: opacity .22s ease, visibility .22s ease;
}

/* Çekmeceyi kapatma düğmesi yalnız dar ekranda anlamlı. */
.ino-sidebar-close {
    display: none;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 10px;
    background: rgba(255, 255, 255, .08);
    color: rgba(255, 255, 255, .85);
    align-items: center;
    justify-content: center;
}

    .ino-sidebar-close:hover,
    .ino-sidebar-close:focus {
        background: rgba(255, 255, 255, .16);
        color: #fff;
    }

    .ino-sidebar-close i {
        font-size: 20px;
    }

@media (max-width: 991.98px) {

    /* Sidebar ekran dışında bekler, açılınca içeriğin üstüne biner.
       Daraltma sınıfını ino-layout.js dar ekranda gövdeden kaldırır; genişlik
       yine de burada geri alınır ki script gecikse bile çekmece ikon şeridine
       düşmesin. */
    .ino-sidebar,
    body.ino-sidebar-collapsed .ino-sidebar {
        width: var(--ino-sidebar-width);
        max-width: 84vw;
        transform: translateX(-100%);
        transition: transform .22s ease;
    }

    body.ino-sidebar-open .ino-sidebar {
        transform: translateX(0);
        box-shadow: 0 0 40px rgba(15, 23, 42, .45);
    }

    body.ino-sidebar-open .ino-sidebar-backdrop {
        opacity: 1;
        visibility: visible;
    }

    /* Çekmece açıkken arkadaki içerik kaymaz. */
    body.ino-sidebar-open .ino-wrapper {
        overflow: hidden;
    }

    .ino-sidebar-close {
        display: inline-flex;
        margin-left: auto;
    }

    /* Çekmecede daraltma yoktur; düğmesi gizlenir, kapatma düğmesi yerini alır. */
    .ino-sidebar-collapse {
        display: none;
    }

    /* İçerik tam genişlikte: daraltma kipi dar ekranda uygulanmaz
       (sınıfı ino-layout.js gövdeden kaldırır), margin yine de sıfırlanır. */
    .ino-wrapper,
    body.ino-sidebar-collapsed .ino-wrapper {
        margin-left: 0 !important;
        width: 100%;
    }

    /* Çekmece düğmesi sayfa kaydırılınca da elin altında kalsın. */
    .ino-topbar {
        position: sticky;
        top: 0;
        z-index: 1020; /* Çekmece (1030) ve karartma (1029) üstte kalmalı. */
        min-height: 56px;
    }

    /* Bootstrap `.navbar > .container-fluid`a `flex-wrap: inherit` yazıyor ve
       `.navbar` dar ekranda `wrap`; sınıf seçicisi bunu yenemediği için uzun
       breadcrumb'da zil ve avatar alt satıra düşüyordu. Sarma iki düzeyde de
       kapatılır. */
    .ino-topbar,
    .ino-topbar > .ino-topbar-container {
        flex-wrap: nowrap;
    }

    .ino-topbar-container {
        gap: 8px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .ino-header-left {
        flex: 1 1 auto;
        min-width: 0;
    }

    /* Global arama dar ekranda satırı tek başına doldururdu; kutu gizlenir,
       giriş noktası zilin yanındaki ikondur. İkon açınca arama topbar'ın
       tamamını kaplayan satır olur, sonuç paneli ekran genişliğindedir. */
    .ino-header-center {
        display: none;
    }

    .ino-gsearch-open {
        display: inline-flex;
    }

    .ino-topbar.is-search-open .ino-header-center {
        display: flex;
        align-items: center;
        gap: 8px;
        position: absolute;
        inset: 0;
        padding: 0 16px;
        background: #fff;
        z-index: 2;
    }

        .ino-topbar.is-search-open .ino-global-search {
            max-width: none;
            flex: 1 1 auto;
        }

        .ino-topbar.is-search-open .ino-gsearch-close {
            display: inline-flex;
        }

        .ino-topbar.is-search-open .ino-gsearch-kbd {
            display: none;
        }

        /* iOS 16px altındaki kutuya odaklanınca sayfayı yakınlaştırır. */
        .ino-topbar.is-search-open .ino-global-search input {
            font-size: 16px;
            padding-right: 16px;
        }

        .ino-topbar.is-search-open .ino-gsearch-panel {
            position: fixed;
            top: 58px;
            left: 8px;
            right: 8px;
            width: auto;
            max-height: calc(100vh - 72px);
        }

    .ino-page-title-wrap {
        gap: 10px;
        min-width: 0;
    }

    .ino-breadcrumb {
        min-width: 0;
        font-size: 13px;
        white-space: nowrap;
        overflow: hidden;
    }

        .ino-breadcrumb > * {
            overflow: hidden;
            text-overflow: ellipsis;
        }

    .ino-topbar-sidebar-toggle {
        display: inline-flex;
        flex: 0 0 auto;
    }

    .ino-container {
        padding-left: 16px;
        padding-right: 16px;
    }

    /* Tabler `.card-header`a `display: flex` verip sarma bırakmıyor; başlık
       yanındaki eylem düğmeleri dar ekranda kart dışına taşıyordu. Eylemler
       başlığın altına iner. */
    .card-header {
        flex-wrap: wrap;
        row-gap: .5rem;
    }

    /* nav-fill sekmeleri dar ekranda okunmaz hâle sıkıştırıyordu;
       doğal genişlikte kalıp yatay kaydırılırlar. */
    .nav-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: none;
    }

        .nav-tabs::-webkit-scrollbar {
            display: none;
        }

        .nav-tabs .nav-item {
            flex: 0 0 auto;
        }

        .nav-tabs .nav-link {
            white-space: nowrap;
        }

    /* Liste tabloları yatay kaydırılır; parmakla kaydırma akıcı olsun. */
    .table-responsive {
        -webkit-overflow-scrolling: touch;
    }
}

/* Tablet dikeyde (768–991px) filtre alanları tek satıra sığmayıp okunmaz
   hâle geliyordu; ortak filtre formunda iki sütuna düşerler. Kural tek
   yerde: her liste ekranı aynı davranır. */
@media (min-width: 768px) and (max-width: 991.98px) {

    .ino-filter-form .row > [class^="col-md-"],
    .ino-filter-form .row > [class*=" col-md-"] {
        flex: 0 0 auto;
        width: 50%;
    }
}

/* Telefon ölçeği: yan yana duran ikilileri alt alta almak burada başlar. */
@media (max-width: 767.98px) {

    /* Sayfa başlığı ile birincil eylem alt alta; eylem tam genişlik. */
    .ino-page-header-main {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .ino-page-header-title {
        font-size: 19px;
    }

    .ino-page-header-main > a,
    .ino-page-header-main > .btn {
        width: 100%;
        justify-content: center;
    }

    /* Liste altı: kayıt bilgisi, sayfa boyutu ve sayfalama alt alta. */
    .ino-table-footer {
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 10px;
        text-align: center;
    }

    .ino-table-info,
    .ino-page-size,
    .ino-pagination {
        justify-self: center;
    }

    /* Sabit 80px, dar ekranın büyük yazı tipinde "25"i kırpıyordu. */
    .ino-page-size .form-select {
        width: auto;
        min-width: 80px;
    }

    /* Seçim ve araç çubukları taşmak yerine sarar. */
    .ino-selection-bar,
    .ino-selection-actions {
        flex-wrap: wrap;
        gap: 8px;
    }
}
