/* BLC İskele Mühendislik A.Ş. - kurumsal admin teması
   Sade, modern: nötr açık gri zemin, beyaz kartlar, BLC kırmızısı yalnız
   vurgu / ana eylemlerde. Tüm renkler aşağıdaki değişkenlerden gelir;
   yeni bileşende sabit renk yerine bunları kullanın. */

/* =====================================================================
   1. Tasarım değişkenleri (Django'nun kendi değişkenleri de burada)
   ===================================================================== */

html[data-theme="light"], html[data-theme="dark"], html[data-theme="auto"], :root {
    --blc: #b3121b;
    --blc-koyu: #8e0e15;
    --blc-acik: #fdf1f2;
    --blc-halka: rgba(179, 18, 27, 0.16);

    --zemin: #f4f5f7;
    --yuzey: #ffffff;
    --yuzey-2: #f8f9fb;
    --cizgi: #e3e6eb;
    --cizgi-acik: #eef0f3;
    --metin: #1c2230;
    --metin-orta: #4a5263;
    --metin-soluk: #6b7383;

    --yesil: #1f8a4c;
    --yesil-acik: #e9f6ee;
    --sari: #a86a00;
    --sari-acik: #fff6e2;
    --mavi: #1d5fbf;
    --mavi-acik: #eaf1fc;

    --yaricap: 10px;
    --yaricap-kucuk: 8px;
    --golge: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
    --golge-buyuk: 0 12px 32px rgba(16, 24, 40, 0.12), 0 2px 6px rgba(16, 24, 40, 0.06);
    --gecis: 0.16s ease;

    /* Django admin değişkenleri */
    --primary: var(--blc);
    --secondary: var(--blc-koyu);
    --accent: var(--blc);
    --primary-fg: #fff;

    --body-fg: var(--metin);
    --body-bg: var(--yuzey);
    --body-quiet-color: var(--metin-soluk);
    --body-medium-color: var(--metin-orta);
    --body-loud-color: #0f1420;

    --header-color: var(--metin);
    --header-branding-color: var(--metin);
    --header-bg: var(--yuzey);
    --header-link-color: var(--metin-orta);

    --breadcrumbs-fg: var(--metin-soluk);
    --breadcrumbs-link-fg: var(--metin-orta);
    --breadcrumbs-bg: transparent;

    --link-fg: var(--blc);
    --link-hover-color: var(--blc-koyu);
    --link-selected-fg: var(--blc-koyu);

    --hairline-color: var(--cizgi-acik);
    --border-color: var(--cizgi);

    --error-fg: #b42318;
    --message-success-bg: var(--yesil-acik);
    --message-warning-bg: var(--sari-acik);
    --message-error-bg: #fdecec;

    --darkened-bg: var(--yuzey-2);
    --selected-bg: var(--blc-acik);
    --selected-row: #fff7e6;

    --button-fg: var(--metin);
    --button-bg: var(--yuzey);
    --button-hover-bg: var(--yuzey-2);
    --default-button-bg: var(--blc);
    --default-button-hover-bg: var(--blc-koyu);
    --close-button-bg: #6b7383;
    --close-button-hover-bg: #4a5263;
    --delete-button-bg: #b42318;
    --delete-button-hover-bg: #8f1c13;

    --object-tools-fg: #fff;
    --object-tools-bg: var(--blc);
    --object-tools-hover-bg: var(--blc-koyu);

    --font-family-primary: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

    color-scheme: light;
}

/* Kullanıcının isteğiyle karanlık mod KASITLI olarak kapalı: telefon /
   tarayıcı karanlık temada olsa bile site açık görünür (yukarıdaki blok
   data-theme="dark"/"auto" için de aynı açık değerleri verir). */
@media (prefers-color-scheme: dark) {
    :root, html[data-theme="auto"] { color-scheme: light; }
}

.theme-toggle { display: none !important; }

/* =====================================================================
   2. Temel
   ===================================================================== */

html, body {
    background: var(--zemin);
}

body, input, select, textarea, button, .button, table, #nav-sidebar, .breadcrumbs {
    font-family: var(--font-family-primary) !important;
}

body {
    color: var(--metin);
    font-size: 14px;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
    font-family: var(--font-family-primary) !important;
    color: var(--metin);
    letter-spacing: -0.01em;
}

#content h1 {
    font-size: 1.45rem;
    font-weight: 700;
    margin: 0 0 18px;
}

#content h2 { font-weight: 650; }

a:link, a:visited { color: var(--blc); text-decoration: none; }
a:hover, a:focus { color: var(--blc-koyu); }

th, label { font-weight: 600; }

::selection { background: var(--blc-acik); color: var(--metin); }

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

/* Sayfa açılışında içerik hafifçe yukarı süzülerek gelir */
#content { animation: blc-icerik-giris 0.28s ease-out both; }

@keyframes blc-icerik-giris {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
}

@view-transition { navigation: auto; }

::view-transition-old(root) { animation: 0.14s ease-in both blc-solma; }
::view-transition-new(root) { animation: 0.2s ease-out both blc-belirme; }

@keyframes blc-solma { to { opacity: 0; } }
@keyframes blc-belirme { from { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
    *, ::view-transition-old(root), ::view-transition-new(root) {
        animation: none !important;
        transition: none !important;
    }
}

[hidden] { display: none !important; }

/* Kaydırma çubuğu */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
    background: #c9ced6;
    border-radius: 10px;
    border: 2px solid var(--zemin);
}
::-webkit-scrollbar-thumb:hover { background: #a9b0bb; }

/* =====================================================================
   3. Üst bar
   ===================================================================== */

#header {
    position: sticky;
    top: 0;
    z-index: 200;
    min-height: 60px;
    padding: 0 28px;
    background: var(--yuzey);
    color: var(--metin);
    border-top: 3px solid var(--blc);
    border-bottom: 1px solid var(--cizgi);
    box-shadow: 0 1px 0 rgba(16, 24, 40, 0.02);
    gap: 16px;
}

#branding { display: flex; align-items: center; }

#site-name { margin: 0; }

#site-name a:link, #site-name a:visited {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--metin);
    text-decoration: none;
}

#site-name .brand-logo {
    height: 34px !important;
    width: auto !important;
    max-width: none !important;
    display: block;
    border-radius: 4px;
}

#site-name span {
    font-size: 1.02rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    white-space: nowrap;
}

#site-name small {
    display: block;
    font-size: 0.72rem;
    font-weight: 500;
    color: var(--metin-soluk);
    letter-spacing: 0;
}

#user-tools {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    font-size: 0.82rem;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: var(--metin-orta);
}

#user-tools a, #logout-form button {
    display: inline-flex;
    align-items: center;
    height: 32px;
    padding: 0 12px;
    border-radius: var(--yaricap-kucuk);
    border: 0 !important;
    color: var(--metin-orta) !important;
    text-decoration: none !important;
    font-size: 0.82rem !important;
    font-weight: 500;
    text-transform: none;
    background: transparent;
    transition: background-color var(--gecis), color var(--gecis);
}

#user-tools a:hover, #logout-form button:hover {
    background: var(--yuzey-2);
    color: var(--metin) !important;
}

.blc-kullanici {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding-right: 8px;
    margin-right: 4px;
    border-right: 1px solid var(--cizgi);
    color: var(--metin);
    font-weight: 600;
}

.blc-kullanici-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--blc-acik);
    color: var(--blc);
    font-weight: 700;
    font-size: 0.8rem;
    text-transform: uppercase;
}

/* Hızlı geçiş (Ctrl+K) düğmesi - üst barda */
.blc-hizli-gecis-tetik {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    height: 36px;
    min-width: 260px;
    padding: 0 10px 0 12px;
    margin-right: auto;
    margin-left: 28px;
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap-kucuk);
    background: var(--yuzey-2);
    color: var(--metin-soluk);
    font-size: 0.85rem;
    cursor: pointer;
    transition: border-color var(--gecis), background-color var(--gecis);
}

.blc-hizli-gecis-tetik:hover { border-color: #c9ced6; background: var(--yuzey); }

.blc-hizli-gecis-tetik kbd, .blc-hizli-gecis kbd {
    margin-left: auto;
    padding: 1px 6px;
    border: 1px solid var(--cizgi);
    border-radius: 5px;
    background: var(--yuzey);
    font-family: inherit;
    font-size: 0.72rem;
    color: var(--metin-soluk);
}

/* =====================================================================
   4. Breadcrumbs
   ===================================================================== */

.breadcrumbs {
    background: transparent;
    color: var(--metin-soluk);
    padding: 16px 40px 0;
    font-size: 0.82rem;
    font-weight: 500;
    border: 0;
}

.breadcrumbs a:link, .breadcrumbs a:visited {
    color: var(--metin-orta);
    font-weight: 500;
}

.breadcrumbs a:hover { color: var(--blc); }

/* =====================================================================
   5. Sol menü
   ===================================================================== */

#nav-sidebar {
    background: var(--yuzey);
    border-right: 1px solid var(--cizgi);
    padding: 12px 10px 24px;
    box-sizing: border-box;
}

#nav-filter {
    width: 100%;
    height: 34px;
    margin: 0 0 12px;
    padding: 0 12px;
    border: 1px solid var(--cizgi) !important;
    border-radius: var(--yaricap-kucuk) !important;
    background: var(--yuzey-2);
    font-size: 0.82rem;
}

#nav-sidebar .module {
    margin-bottom: 14px;
    background: transparent;
    border: 0;
    box-shadow: none;
}

#nav-sidebar .module caption, #nav-sidebar table caption {
    padding: 6px 10px;
    background: transparent;
    color: var(--metin-soluk);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border: 0;
}

#nav-sidebar .module caption a { color: var(--metin-soluk) !important; }

#nav-sidebar table { width: 100%; }

#nav-sidebar table tr {
    border-radius: var(--yaricap-kucuk);
    transition: background-color var(--gecis);
}

#nav-sidebar .module th, #nav-sidebar .module td {
    padding: 0;
    border: 0;
    background: transparent;
}

#nav-sidebar .module tr { background: transparent; }

#nav-sidebar th a {
    display: block;
    padding: 7px 10px;
    border-radius: var(--yaricap-kucuk) 0 0 var(--yaricap-kucuk);
    color: var(--metin-orta) !important;
    font-weight: 500;
    font-size: 0.86rem;
}

#nav-sidebar td a.addlink {
    display: block;
    padding: 7px 10px;
    border-radius: 0 var(--yaricap-kucuk) var(--yaricap-kucuk) 0;
    background: none;
    font-size: 0;
    color: transparent;
    opacity: 0;
    transition: opacity var(--gecis);
}

#nav-sidebar td a.addlink::before {
    content: "+";
    font-size: 1rem;
    font-weight: 600;
    color: var(--metin-soluk);
}

#nav-sidebar tr:hover td a.addlink { opacity: 1; }
#nav-sidebar td a.addlink:hover::before { color: var(--blc); }

#nav-sidebar .module tr:hover { background: var(--yuzey-2); }
#nav-sidebar tr:hover th a { color: var(--metin) !important; }

#nav-sidebar .current-model {
    background: var(--blc-acik) !important;
}

#nav-sidebar .current-model th a {
    color: var(--blc) !important;
    font-weight: 650;
    box-shadow: inset 3px 0 0 var(--blc);
}

#toggle-nav-sidebar {
    background: var(--yuzey);
    border: 0;
    border-right: 1px solid var(--cizgi);
    color: var(--metin-soluk);
    font-size: 1rem;
}

#toggle-nav-sidebar:hover, #toggle-nav-sidebar:focus { background: var(--yuzey-2); color: var(--blc); }

/* =====================================================================
   6. İçerik / kartlar / modüller
   ===================================================================== */

#content {
    padding: 18px 40px 40px;
}

.module {
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
    box-shadow: var(--golge);
}

fieldset.module { overflow: hidden; }

.module h2, .module caption, .inline-group h2 {
    padding: 12px 16px;
    background: var(--yuzey-2);
    color: var(--metin);
    font-size: 0.85rem;
    font-weight: 650;
    letter-spacing: 0;
    text-transform: none;
    border-bottom: 1px solid var(--cizgi);
}

.module h2 a, .module caption a { color: var(--metin) !important; }

fieldset.module h2, fieldset.module summary h2 {
    border-radius: 0;
}

.form-row {
    padding: 12px 16px;
    border-bottom: 1px solid var(--cizgi-acik);
}

.aligned label { color: var(--metin-orta); font-weight: 600; font-size: 0.84rem; }

div.help, p.help, .help {
    color: var(--metin-soluk) !important;
    font-size: 0.78rem !important;
}

.inline-group {
    border-radius: var(--yaricap);
    overflow-x: auto;
    border: 1px solid var(--cizgi);
    background: var(--yuzey);
    box-shadow: var(--golge);
}

.inline-group .tabular tr.add-row td { background: var(--yuzey-2); }

/* =====================================================================
   7. Form alanları
   ===================================================================== */

input[type=text], input[type=number], input[type=email], input[type=password],
input[type=url], input[type=tel], input[type=search], input[type=date], input[type=time],
textarea, select, .vTextField, .vDateField, .vTimeField, .vIntegerField, .vURLField {
    min-height: 36px;
    padding: 6px 10px;
    border: 1px solid #d3d8df !important;
    border-radius: var(--yaricap-kucuk) !important;
    background-color: var(--yuzey);
    color: var(--metin);
    font-size: 0.88rem;
    box-sizing: border-box;
    transition: border-color var(--gecis), box-shadow var(--gecis);
}

textarea { min-height: 72px; }

select { padding-right: 28px; }

input:hover, textarea:hover, select:hover { border-color: #b8bfca !important; }

input[type=text]:focus, input[type=number]:focus, input[type=email]:focus,
input[type=password]:focus, input[type=url]:focus, input[type=tel]:focus, input[type=search]:focus,
textarea:focus, select:focus {
    border-color: var(--blc) !important;
    box-shadow: 0 0 0 3px var(--blc-halka);
    outline: none;
}

input[type=checkbox], input[type=radio] { accent-color: var(--blc); }

.select2-container--admin-autocomplete .select2-selection--single,
.select2-container--admin-autocomplete .select2-selection--multiple {
    min-height: 36px;
    border: 1px solid #d3d8df !important;
    border-radius: var(--yaricap-kucuk) !important;
}

.select2-container--admin-autocomplete .select2-selection--single .select2-selection__rendered {
    line-height: 34px;
}

.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow { height: 34px; }

.select2-container--admin-autocomplete.select2-container--focus .select2-selection,
.select2-container--admin-autocomplete.select2-container--open .select2-selection {
    border-color: var(--blc) !important;
    box-shadow: 0 0 0 3px var(--blc-halka);
}

.select2-dropdown {
    border-color: var(--cizgi) !important;
    border-radius: var(--yaricap-kucuk) !important;
    box-shadow: var(--golge-buyuk);
    overflow: hidden;
}

.select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] {
    background: var(--blc) !important;
}

/* =====================================================================
   8. Butonlar
   ===================================================================== */

.button, input[type=submit], input[type=button], .submit-row input, a.button, button.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 14px !important;
    border: 1px solid #d3d8df !important;
    border-radius: var(--yaricap-kucuk) !important;
    background: var(--yuzey);
    color: var(--metin) !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    letter-spacing: 0;
    text-transform: none;
    line-height: 1.2;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05);
    cursor: pointer;
    box-sizing: border-box;
    vertical-align: middle;
    transition: background-color var(--gecis), border-color var(--gecis), color var(--gecis), box-shadow var(--gecis);
}

.button:hover, input[type=submit]:hover, input[type=button]:hover, .submit-row input:hover, a.button:hover {
    background: var(--yuzey-2);
    border-color: #b8bfca !important;
    color: var(--metin) !important;
}

.button:active, input[type=submit]:active, input[type=button]:active, a.button:active {
    transform: translateY(1px);
}

.button.default, input[type=submit].default, .submit-row input.default, a.button.default {
    background: var(--blc);
    border-color: var(--blc) !important;
    color: #fff !important;
}

.button.default:hover, input[type=submit].default:hover, .submit-row input.default:hover, a.button.default:hover {
    background: var(--blc-koyu);
    border-color: var(--blc-koyu) !important;
    color: #fff !important;
}

.button[disabled], input[type=submit][disabled], .button:disabled, input[type=button][disabled] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Kaydet satırı */
.submit-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 14px 16px;
    margin: 18px 0 0;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
    box-shadow: var(--golge);
}

.submit-row a.deletelink, .submit-row a.closelink {
    display: inline-flex;
    align-items: center;
    height: 36px;
    padding: 0 14px;
    border-radius: var(--yaricap-kucuk);
    font-size: 0.85rem;
    font-weight: 600;
}

.submit-row a.deletelink:link, .submit-row a.deletelink:visited {
    background: transparent;
    border: 1px solid #f1c3c0;
    color: #b42318;
}

.submit-row a.deletelink:hover { background: #fdecec; color: #8f1c13; }

/* Sağ üst eylem düğmeleri (Ekle, PDF, ...) */
.object-tools { margin-top: 0; }

.object-tools li { height: auto; }

.object-tools a:link, .object-tools a:visited {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 36px;
    padding: 0 14px;
    border-radius: var(--yaricap-kucuk);
    background: var(--yuzey);
    border: 1px solid #d3d8df;
    color: var(--metin);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05);
    transition: background-color var(--gecis), border-color var(--gecis);
}

.object-tools a:hover { background: var(--yuzey-2); border-color: #b8bfca; color: var(--metin); }

.object-tools a.addlink:link, .object-tools a.addlink:visited {
    background: var(--blc);
    border-color: var(--blc);
    color: #fff;
    padding-right: 14px;
}

.object-tools a.addlink:hover { background: var(--blc-koyu); border-color: var(--blc-koyu); color: #fff; }

.object-tools a.addlink, .object-tools a.historylink, .object-tools a.viewsitelink {
    background-image: none !important;
}

.object-tools a.addlink::before {
    content: "+";
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1;
}

/* Satır içi "Ekle / Değiştir" bağlantıları */
a.addlink, a.changelink, a.viewlink, a.deletelink, a.inlinechangelink {
    font-weight: 500;
}

/* =====================================================================
   9. Ana panel (Yönetim Paneli)
   ===================================================================== */

.dashboard #content {
    width: auto;
    max-width: 1320px;
    margin: 0 auto;
}

.dashboard #content-main {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 18px;
    float: none;
    width: auto;
    align-items: start;
}

.dashboard #content-main > .module {
    margin: 0;
    overflow: hidden;
    transition: box-shadow var(--gecis), transform var(--gecis), border-color var(--gecis);
}

.dashboard #content-main > .module:hover {
    border-color: #d3d8df;
    box-shadow: var(--golge-buyuk);
}

.dashboard .module table { width: 100%; }

.dashboard .module caption {
    padding: 14px 16px;
    text-align: left;
    background: var(--yuzey);
    font-size: 0.92rem;
    font-weight: 700;
    text-transform: none;
    letter-spacing: -0.01em;
    border-bottom: 1px solid var(--cizgi-acik);
}

.dashboard .module caption::before {
    content: "";
    display: inline-block;
    width: 32px;
    height: 32px;
    margin-right: 10px;
    vertical-align: middle;
    border-radius: 8px;
    background-color: var(--blc-acik);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3121b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");
}

.dashboard .app-menu_satis caption::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3121b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E");
}

.dashboard .app-menu_depo caption::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3121b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 8l-9-5-9 5v8l9 5 9-5z'/%3E%3Cpath d='M3 8l9 5 9-5M12 13v8'/%3E%3C/svg%3E");
}

.dashboard .app-menu_sayim caption::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3121b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M9 3h6v3H9zM9 11l1.5 1.5L13 10M9 16h6'/%3E%3C/svg%3E");
}

.dashboard .app-menu_gorev caption::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3121b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9'/%3E%3Cpath d='M13.7 21a2 2 0 0 1-3.4 0'/%3E%3C/svg%3E");
}

.dashboard .app-menu_kira caption::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3121b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='17' rx='2'/%3E%3Cpath d='M3 9h18M8 2v4M16 2v4M8 14h3M8 17h6'/%3E%3C/svg%3E");
}

.dashboard .app-menu_pazarlama caption::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3121b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E");
}

.dashboard .app-menu_tanimlar caption::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3121b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h10'/%3E%3C/svg%3E");
}

.dashboard .app-menu_yonetim caption::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3121b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l8 4v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6z'/%3E%3C/svg%3E");
}

.dashboard .module caption a.section:link, .dashboard .module caption a.section:visited {
    color: var(--metin) !important;
}

.dashboard .module tr {
    background: transparent;
    transition: background-color var(--gecis);
}

.dashboard .module tr:hover { background: var(--yuzey-2); }

.dashboard .module th, .dashboard .module td {
    padding: 0;
    border-bottom: 1px solid var(--cizgi-acik);
    vertical-align: middle;
}

.dashboard .module tr:last-child th, .dashboard .module tr:last-child td { border-bottom: 0; }

.dashboard .module th a {
    display: flex;
    align-items: center;
    padding: 11px 16px;
    color: var(--metin) !important;
    font-weight: 500;
    font-size: 0.88rem;
}

.dashboard .module th a::after {
    content: "›";
    margin-left: auto;
    padding-left: 8px;
    color: #b8bfca;
    font-size: 1.1rem;
    transition: transform var(--gecis), color var(--gecis);
}

.dashboard .module tr:hover th a::after { transform: translateX(3px); color: var(--blc); }

.dashboard .module td { width: 1%; white-space: nowrap; padding-right: 10px; }

.dashboard .module td a.addlink, .dashboard .module td a.changelink, .dashboard .module td a.viewlink {
    display: inline-flex;
    align-items: center;
    height: 28px;
    padding: 0 10px;
    border-radius: 6px;
    background: none !important;
    color: var(--metin-soluk) !important;
    font-size: 0.78rem;
    font-weight: 600;
}

.dashboard .module td a.changelink, .dashboard .module td a.viewlink { display: none; }

.dashboard .module td a.addlink:hover {
    background: var(--blc-acik) !important;
    color: var(--blc) !important;
}

.dashboard .module td a.addlink::before { content: "+ "; white-space: pre; }

.blc-karsilama {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    max-width: 1320px;
    margin: 0 auto 20px;
}

.blc-karsilama h1 { margin: 0 !important; }

.blc-karsilama p {
    margin: 4px 0 0;
    color: var(--metin-soluk);
    font-size: 0.9rem;
}

/* =====================================================================
   10. Liste sayfaları (changelist)
   ===================================================================== */

#changelist { flex-direction: column; }

#changelist.module {
    background: none;
    border: 0;
    box-shadow: none;
    border-radius: 0;
}

#changelist .toplinks, #changelist #toolbar { background: none; border: 0; }

#changelist .changelist-form-container { width: 100%; }

.blc-arac-cubugu-satiri {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.blc-arac-cubugu-satiri #toolbar {
    flex: 1 1 380px;
    margin: 0;
    padding: 0;
    background: none;
    border: 0;
}

#toolbar form#changelist-search {
    display: flex;
    align-items: center;
    gap: 8px;
}

#toolbar form#changelist-search > div { display: flex; align-items: center; gap: 8px; flex: 1 1 auto; }

#toolbar #searchbar {
    flex: 1 1 auto;
    max-width: 460px;
    height: 38px;
    padding-left: 36px;
    background: var(--yuzey) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7383' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E") no-repeat 11px center / 16px;
}

#toolbar label[for=searchbar] { display: none; }

#toolbar .small.quiet { color: var(--metin-soluk); font-size: 0.8rem; }

.blc-arac-cubugu-satiri .object-tools {
    position: static;
    float: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
}

.blc-arac-cubugu-satiri .object-tools li { float: none; margin: 0; list-style: none; }

.blc-sil-modu-dugmesi {
    display: inline-flex;
    align-items: center;
    height: 36px;
    padding: 0 14px;
    border: 1px solid #f1c3c0;
    border-radius: var(--yaricap-kucuk);
    background: var(--yuzey);
    color: #b42318;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color var(--gecis);
}

.blc-sil-modu-dugmesi:hover { background: #fdecec; }

body.blc-sil-modu #changelist table { animation: blc-sil-modu-vurgu 1.1s ease-in-out 2; }

body.blc-sil-modu .action-checkbox-column,
body.blc-sil-modu .action-checkbox { background-color: rgba(180, 35, 24, 0.08) !important; }

body.blc-sil-modu .action-select {
    outline: 2px solid #b42318;
    outline-offset: 2px;
}

@keyframes blc-sil-modu-vurgu {
    0%, 100% { box-shadow: none; }
    50% { box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.3); }
}

/* Süzgeçler: tablonun üstünde yatay açılır menüler */
#changelist #changelist-filter, #changelist .actions, .mg, .mg * {
    box-sizing: border-box;
}

#changelist #changelist-filter {
    order: -1;
    flex: 0 0 auto !important;
    min-height: 0;
    width: 100%;
    max-width: none;
    margin: 0 0 14px !important;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
    box-shadow: var(--golge);
}

#changelist-filter h2 {
    flex: 0 0 auto;
    margin: 0 4px 0 0 !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    color: var(--metin-soluk);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

#changelist-filter #changelist-filter-extra-actions {
    flex: 0 0 auto;
    order: 99;
    margin: 0 0 0 auto !important;
    border: 0 !important;
    display: flex;
    gap: 6px;
}

#changelist-filter #changelist-filter-extra-actions h3 {
    margin: 0;
    padding: 0;
    font-size: 0.78rem;
    font-weight: 600;
}

#changelist-filter #changelist-filter-extra-actions a {
    display: inline-flex;
    align-items: center;
    height: 30px;
    padding: 0 10px;
    border-radius: 6px;
    color: var(--metin-orta);
}

#changelist-filter #changelist-filter-extra-actions a:hover { background: var(--yuzey-2); color: var(--blc); }

#changelist-filter #changelist-filter-extra-actions a.viewlink, #changelist-filter #changelist-filter-extra-actions a.hidelink {
    background-image: none;
    padding-left: 10px;
}

#changelist-filter details { position: relative; border: 0 !important; margin: 0 !important; }

#changelist-filter details summary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 12px !important;
    margin: 0 !important;
    border: 1px solid var(--cizgi);
    border-radius: 999px;
    background: var(--yuzey);
    color: var(--metin-orta);
    font-size: 0.8rem;
    font-weight: 600;
    list-style: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--gecis), border-color var(--gecis), color var(--gecis);
}

#changelist-filter details summary::-webkit-details-marker { display: none; }
#changelist-filter details summary::before { content: none !important; }

#changelist-filter details summary::after {
    content: "";
    width: 7px;
    height: 7px;
    margin-left: 2px;
    border-right: 1.6px solid currentColor;
    border-bottom: 1.6px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    opacity: 0.6;
}

#changelist-filter details summary:hover { border-color: #b8bfca; color: var(--metin); }

#changelist-filter details[open] summary {
    border-color: var(--blc);
    color: var(--blc);
    box-shadow: 0 0 0 3px var(--blc-halka);
}

#changelist-filter details:has(li.selected:not(:first-child)) summary {
    background: var(--blc-acik);
    border-color: var(--blc);
    color: var(--blc);
}

#changelist-filter details ul {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 60;
    min-width: 220px;
    max-height: 340px;
    overflow-y: auto;
    margin: 0 !important;
    padding: 6px !important;
    background: var(--yuzey);
    border: 1px solid var(--cizgi) !important;
    border-radius: var(--yaricap);
    box-shadow: var(--golge-buyuk);
    animation: blc-acilir 0.14s ease-out;
}

@keyframes blc-acilir {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: none; }
}

#changelist-filter details li { padding: 0 !important; margin: 0 !important; border: 0 !important; list-style: none; }

#changelist-filter details li a {
    display: block;
    padding: 7px 10px;
    border-radius: 6px;
    color: var(--metin-orta) !important;
    font-size: 0.84rem;
}

#changelist-filter details li a:hover { background: var(--yuzey-2); color: var(--metin) !important; }

#changelist-filter details li.selected a {
    background: var(--blc-acik);
    color: var(--blc) !important;
    font-weight: 600;
}

/* Sonuç tabloları */
#changelist .results, table.results {
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
    box-shadow: var(--golge);
    overflow: auto;
}

#changelist table, table.results {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

#changelist table thead th, table.results thead th,
#changelist table thead td, table.results thead td {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 10px 14px !important;
    background: var(--yuzey-2);
    color: var(--metin-soluk);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--cizgi);
    white-space: nowrap;
}

#changelist table thead th a, table.results thead th a { color: var(--metin-soluk) !important; }
#changelist table thead th.sorted a, #changelist table thead th a:hover { color: var(--metin) !important; }

#changelist table tbody th, #changelist table tbody td,
table.results tbody th, table.results tbody td {
    padding: 10px 14px !important;
    font-size: 0.86rem;
    border-bottom: 1px solid var(--cizgi-acik);
    vertical-align: middle;
}

#changelist table tbody tr:last-child th, #changelist table tbody tr:last-child td,
table.results tbody tr:last-child th, table.results tbody tr:last-child td { border-bottom: 0; }

#changelist table tbody tr, table.results tbody tr { background: var(--yuzey); transition: background-color var(--gecis); }
#changelist table tbody tr:hover, table.results tbody tr:hover { background: var(--yuzey-2); }
#changelist table tbody tr.selected { background: var(--selected-row); }

#changelist table tbody th a, table.results tbody th a { font-weight: 600; }

/* Toplu işlem çubuğu */
#changelist .actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    margin-bottom: 10px;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
    color: var(--metin-orta);
    font-size: 0.84rem;
}

#changelist .actions label { font-weight: 600; }
#changelist .actions select { min-width: 220px; }

/* Sayfalama */
#changelist .paginator, .paginator {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    padding: 14px 0 0;
    margin: 0;
    background: none;
    border: 0;
    color: var(--metin-soluk);
    font-size: 0.84rem;
}

.paginator a:link, .paginator a:visited, .paginator .this-page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    padding: 0 8px;
    border-radius: var(--yaricap-kucuk);
    border: 1px solid var(--cizgi);
    background: var(--yuzey) !important;
    color: var(--metin-orta) !important;
    font-weight: 600;
    box-sizing: border-box;
}

.paginator a:hover { border-color: #b8bfca; color: var(--metin) !important; }

.paginator .this-page {
    background: var(--blc) !important;
    border-color: var(--blc);
    color: #fff !important;
}

.paginator a.showall { border: 0; background: none !important; }

/* Tarih hiyerarşisi */
.xfull ul.toplinks, ul.toplinks {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 0;
    margin: 0 0 12px;
    border: 0;
    background: none;
}

ul.toplinks li { list-style: none; margin: 0; }

ul.toplinks a {
    display: inline-flex;
    align-items: center;
    height: 30px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid var(--cizgi);
    background: var(--yuzey);
    color: var(--metin-orta) !important;
    font-size: 0.8rem;
    font-weight: 600;
}

/* =====================================================================
   11. Mesajlar ve hatalar
   ===================================================================== */

ul.messagelist { padding: 0 40px; margin: 14px 0 0; }

ul.messagelist li {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 8px;
    padding: 11px 14px 11px 40px;
    border: 1px solid var(--cizgi);
    border-left: 4px solid var(--mavi);
    border-radius: var(--yaricap);
    background-color: var(--yuzey) !important;
    background-position: 14px center;
    color: var(--metin);
    font-size: 0.86rem;
    font-weight: 500;
    box-shadow: var(--golge);
    animation: blc-acilir 0.2s ease-out;
}

ul.messagelist li.success { border-left-color: var(--yesil); }
ul.messagelist li.warning { border-left-color: #d08700; }
ul.messagelist li.error { border-left-color: #b42318; }

.errornote {
    padding: 11px 14px;
    border: 1px solid #f1c3c0;
    border-left: 4px solid #b42318;
    border-radius: var(--yaricap);
    background: #fdf3f2;
    color: #8f1c13;
    font-weight: 500;
}

ul.errorlist { margin: 0 0 6px; padding: 0; }

ul.errorlist li {
    padding: 6px 10px;
    border-radius: 6px;
    background: #fdf3f2;
    color: #b42318;
    font-size: 0.82rem;
    font-weight: 500;
}

.errors input, .errors select, .errors textarea { border-color: #e5776c !important; }

/* =====================================================================
   12. Çift kutulu seçici (SelectFilter2)
   ===================================================================== */

.selector { gap: 12px; }

.selector-available, .selector-chosen {
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
    overflow: hidden;
    background: var(--yuzey);
}

.selector-available-title, .selector-chosen-title {
    padding: 10px 12px !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-size: 0.82rem;
    font-weight: 650;
}

.selector-available-title { background: var(--yuzey-2) !important; color: var(--metin) !important; }
.selector-chosen-title { background: var(--blc) !important; color: #fff !important; }

.selector .selector-filter {
    padding: 8px 10px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--cizgi-acik) !important;
    background: var(--yuzey);
}

.selector select { border: 0 !important; border-radius: 0 !important; margin: 0 !important; }

.selector ul.selector-chooser {
    background: var(--yuzey-2);
    border: 1px solid var(--cizgi);
    border-radius: 999px;
}

.selector-chosen .list-footer-display {
    margin: 0 10px 10px !important;
    border: 0 !important;
    border-radius: var(--yaricap-kucuk) !important;
    background: var(--blc) !important;
}

/* =====================================================================
   13. Sürükle-bırak dosya kutusu
   ===================================================================== */

.dosya-yukleme-kutusu {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    max-width: 420px;
    padding: 22px 16px;
    border: 1.5px dashed #c9ced6;
    border-radius: var(--yaricap);
    background: var(--yuzey-2);
    text-align: center;
    cursor: pointer;
    transition: border-color var(--gecis), background-color var(--gecis);
}

.dosya-yukleme-kutusu:hover, .dosya-yukleme-kutusu.surukleniyor {
    border-color: var(--blc);
    background: var(--blc-acik);
}

.dosya-yukleme-kutusu.dolu { border-style: solid; border-color: var(--blc); }

.dosya-yukleme-metin { color: var(--metin-soluk); font-size: 0.85rem; }
.dosya-yukleme-kutusu.dolu .dosya-yukleme-metin { color: var(--blc); font-weight: 600; }
.dosya-yukleme-kutusu input[type="file"] { max-width: 100%; }

/* =====================================================================
   14. Segmentli seçimler (Kira / Satış)
   ===================================================================== */

.blc-tur-satiri #id_tur, .field-fis_turu #id_fis_turu {
    display: inline-flex;
    gap: 4px;
    margin-top: 2px;
    padding: 4px;
    border-radius: var(--yaricap);
    background: var(--zemin);
    border: 1px solid var(--cizgi);
}

.blc-tur-satiri #id_tur > div, .field-fis_turu #id_fis_turu > div { margin: 0; }

.blc-tur-satiri #id_tur label, .field-fis_turu #id_fis_turu label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 34px;
    padding: 0 18px;
    border-radius: var(--yaricap-kucuk);
    color: var(--metin-orta);
    font-weight: 600;
    font-size: 0.86rem;
    cursor: pointer;
    transition: background-color var(--gecis), color var(--gecis), box-shadow var(--gecis);
}

.blc-tur-satiri #id_tur input[type=radio], .field-fis_turu #id_fis_turu input[type=radio] { margin: 0; }

.blc-tur-satiri #id_tur label:has(input:checked), .field-fis_turu #id_fis_turu label:has(input:checked) {
    background: var(--yuzey);
    color: var(--blc);
    box-shadow: var(--golge);
}

/* =====================================================================
   15. Özel sayfa bileşenleri
   ===================================================================== */

#satis-fiyat-tablosu {
    width: 100%;
    margin-bottom: 18px;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
    overflow: hidden;
    background: var(--yuzey);
}

#satis-fiyat-tablosu th, #satis-fiyat-tablosu td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--cizgi-acik);
    text-align: left;
}

#satis-fiyat-tablosu thead th { background: var(--yuzey-2); font-weight: 650; }
#satis-fiyat-tablosu tbody tr:hover { background: var(--yuzey-2); }
#satis-fiyat-tablosu .satis-birim-fiyat { width: 140px; }
#satis-fiyat-tablosu .satis-satir-tutari { font-weight: 700; color: var(--metin); }

#satis-toplam-kutusu {
    max-width: 360px;
    margin: 0 0 22px auto;
    padding: 14px 20px;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
}

#satis-toplam-kutusu > div { display: flex; justify-content: space-between; padding: 4px 0; }

#satis-toplam-kutusu .satis-genel-toplam {
    margin-top: 8px;
    padding-top: 10px;
    border-top: 1px solid var(--cizgi);
    font-size: 1.1rem;
    color: var(--blc);
}

.blc-taslak-karti {
    max-width: 760px;
    padding: 26px 30px;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
    box-shadow: var(--golge);
}

.blc-taslak-aciklama {
    margin: 0 0 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--cizgi-acik);
    color: var(--metin-soluk);
    line-height: 1.6;
}

.blc-taslak-karti .form-row { padding: 14px 0; border-bottom: 1px solid var(--cizgi-acik); }
.blc-taslak-karti .form-row:last-child { border-bottom: 0; }
.blc-taslak-karti label { display: block; margin-bottom: 6px; font-weight: 600; }

/* Eski SIFIR / 2. El düğme satırı (başka sayfalarda kullanılıyor) */
.blc-durum-toggle-satiri {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 10px 0;
    padding: 4px;
    border-radius: var(--yaricap);
    background: var(--zemin);
    border: 1px solid var(--cizgi);
}

.blc-durum-toggle-buton {
    min-width: 120px;
    height: 34px;
    padding: 0 18px !important;
    border: 0;
    border-radius: var(--yaricap-kucuk);
    background: transparent;
    color: var(--metin-orta);
    font-weight: 600;
    font-size: 0.86rem !important;
    cursor: pointer;
}

.blc-durum-toggle-buton.blc-aktif { background: var(--yuzey); color: var(--blc); box-shadow: var(--golge); }

.blc-tip-kutusu {
    margin: 16px 0;
    padding: 14px;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
}

.blc-bos-mesaj { color: var(--metin-soluk); }

.blc-tablo-kaydirici { overflow-x: auto; }

/* Kalem satırı silme (satir-silme.js) */
.satir-sil-butonu {
    padding: 4px 10px;
    border: 1px solid #f1c3c0;
    border-radius: 6px;
    background: var(--yuzey);
    color: #b42318;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}

.satir-sil-butonu:hover { background: #b42318; border-color: #b42318; color: #fff; }

tr.kalem-silinecek td { opacity: 0.45; text-decoration: line-through; }
tr.kalem-silinecek td:has(.satir-sil-butonu) { opacity: 1; text-decoration: none; }

.satir-silme-uyarisi {
    margin: 12px 0;
    padding: 10px 14px;
    border-left: 4px solid #b42318;
    border-radius: var(--yaricap-kucuk);
    background: #fdf3f2;
    color: #8f1c13;
    font-weight: 600;
}

/* =====================================================================
   16. Yüzen paneller: Son Eylemler, AI Asistan
   ===================================================================== */

#son-eylemler-tetik, #asistan-tetik {
    position: fixed;
    bottom: 20px;
    right: 24px;
    z-index: 300;
    display: flex;
    align-items: center;
    gap: 8px;
    height: 40px;
    padding: 0 16px;
    border: 1px solid var(--cizgi);
    border-radius: 999px;
    background: var(--yuzey);
    color: var(--metin);
    font-weight: 600;
    font-size: 0.84rem;
    box-shadow: var(--golge-buyuk);
    cursor: pointer;
    transition: transform var(--gecis), box-shadow var(--gecis), border-color var(--gecis);
}

#son-eylemler-tetik:hover, #asistan-tetik:hover { transform: translateY(-1px); border-color: #c9ced6; }

#son-eylemler-tetik .son-eylemler-nokta {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--blc);
}

#asistan-tetik { background: var(--metin); border-color: var(--metin); color: #fff; }
#asistan-tetik:hover { border-color: var(--metin); }

#content-related.son-eylemler-panel, #asistan-paneli {
    position: fixed;
    bottom: 72px;
    right: 24px;
    z-index: 299;
    margin: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: 14px;
    box-shadow: var(--golge-buyuk);
    transform: translateY(8px);
    transition: opacity 0.18s ease, transform 0.18s ease, height 0.25s ease, max-height 0.25s ease;
}

#content-related.son-eylemler-panel {
    left: auto;
    width: 320px;
    max-width: calc(100vw - 48px);
    max-height: 0;
}

#content-related.son-eylemler-panel.acik {
    max-height: 75vh;
    opacity: 1;
    transform: none;
    overflow-y: auto;
    pointer-events: auto;
}

#content-related.son-eylemler-panel .module { background: transparent; border: 0; box-shadow: none; border-radius: 0; }

#content-related.son-eylemler-panel h2 {
    margin: 0;
    padding: 12px 16px;
    background: var(--yuzey-2);
    color: var(--metin);
    font-size: 0.86rem;
    border-bottom: 1px solid var(--cizgi);
}

#content-related.son-eylemler-panel h3 { padding: 8px 16px 0; font-size: 0.74rem; color: var(--metin-soluk); }
#content-related.son-eylemler-panel .actionlist { padding: 4px 16px 14px !important; }
#content-related.son-eylemler-panel .actionlist li { padding: 6px 0; border-bottom: 1px solid var(--cizgi-acik); }
#content-related.son-eylemler-panel .actionlist li:last-child { border-bottom: 0; }

#asistan-paneli {
    width: 380px;
    max-width: calc(100vw - 48px);
    height: 0;
    max-height: 70vh;
    display: flex;
    flex-direction: column;
}

#asistan-paneli.acik { height: 520px; opacity: 1; transform: none; pointer-events: auto; }

#asistan-baslik {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    background: var(--metin);
    color: #fff;
    font-weight: 650;
    font-size: 0.9rem;
}

#asistan-kapat {
    padding: 0 4px;
    border: 0;
    background: none;
    color: #fff;
    font-size: 1.3rem;
    line-height: 1;
    opacity: 0.8;
    cursor: pointer;
}

#asistan-kapat:hover { opacity: 1; }

#asistan-mesaj-listesi {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 16px;
    overflow-y: auto;
    background: var(--yuzey-2);
}

.asistan-mesaj {
    max-width: 85%;
    padding: 9px 13px;
    border-radius: 12px;
    font-size: 0.86rem;
    line-height: 1.45;
    white-space: pre-wrap;
    word-break: break-word;
}

.asistan-mesaj.kullanici { align-self: flex-end; background: var(--blc); color: #fff; border-bottom-right-radius: 4px; }

.asistan-mesaj.asistan {
    align-self: flex-start;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    color: var(--metin);
    border-bottom-left-radius: 4px;
}

.asistan-mesaj.asistan.gecici { opacity: 0.6; font-style: italic; }

#asistan-giris-satiri {
    display: flex;
    flex-shrink: 0;
    align-items: flex-end;
    gap: 8px;
    padding: 12px 14px;
    border-top: 1px solid var(--cizgi);
}

#asistan-mesaj-girisi {
    flex: 1 1 auto;
    max-height: 120px;
    resize: none;
    font-size: 0.86rem;
}

#asistan-gonder-dugmesi {
    flex-shrink: 0;
    height: 36px;
    padding: 0 16px;
    border: 0;
    border-radius: var(--yaricap-kucuk);
    background: var(--blc);
    color: #fff;
    font-weight: 600;
    font-size: 0.84rem;
    cursor: pointer;
}

#asistan-gonder-dugmesi:hover { background: var(--blc-koyu); }
#asistan-gonder-dugmesi:disabled { opacity: 0.6; cursor: default; }

/* =====================================================================
   17. Hızlı geçiş penceresi (Ctrl+K) - hizli-gecis.js
   ===================================================================== */

.blc-hizli-gecis-perde {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
    align-items: flex-start;
    justify-content: center;
    padding-top: 12vh;
    background: rgba(16, 20, 32, 0.38);
}

.blc-hizli-gecis-perde.acik { display: flex; animation: blc-belirme 0.12s ease-out; }

.blc-hizli-gecis {
    width: 560px;
    max-width: calc(100vw - 32px);
    overflow: hidden;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: 14px;
    box-shadow: 0 24px 64px rgba(16, 24, 40, 0.28);
    animation: blc-acilir 0.16s ease-out;
}

.blc-hizli-gecis input {
    width: 100%;
    height: 54px !important;
    padding: 0 18px 0 48px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--cizgi) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 1rem !important;
    background: var(--yuzey) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7383' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E") no-repeat 18px center / 18px;
}

.blc-hizli-gecis ul { max-height: 52vh; overflow-y: auto; margin: 0; padding: 6px; list-style: none; }

.blc-hizli-gecis li { margin: 0; padding: 0; list-style: none; }

.blc-hizli-gecis li a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    border-radius: var(--yaricap-kucuk);
    color: var(--metin) !important;
    font-size: 0.9rem;
}

.blc-hizli-gecis li a small { margin-left: auto; color: var(--metin-soluk); font-size: 0.75rem; }

.blc-hizli-gecis li.secili a { background: var(--blc-acik); color: var(--blc) !important; }

.blc-hizli-gecis .blc-hizli-gecis-bos { padding: 18px; color: var(--metin-soluk); text-align: center; }

/* =====================================================================
   18. Malzeme gezgini (Malzemeler / Depo Stok) - malzeme-gezgini.js
   ===================================================================== */

.mg {
    margin: 0 0 24px;
}

.mg-ozet {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}

.mg-ozet-kart {
    padding: 14px 16px;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
    box-shadow: var(--golge);
}

.mg-ozet-kart span { display: block; color: var(--metin-soluk); font-size: 0.76rem; font-weight: 600; }

.mg-ozet-kart b {
    display: block;
    margin-top: 4px;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}

.mg-panel {
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
    box-shadow: var(--golge);
}

.mg-ust {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 16px;
    background: var(--yuzey);
    border-bottom: 1px solid var(--cizgi);
    border-radius: var(--yaricap) var(--yaricap) 0 0;
}

.mg-satir { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

.mg-ara {
    flex: 1 1 320px;
    height: 40px !important;
    padding-left: 38px !important;
    font-size: 0.92rem !important;
    background: var(--yuzey) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7383' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E") no-repeat 12px center / 17px !important;
}

.mg-segment {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    background: var(--zemin);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
}

.mg-segment button {
    height: 32px;
    padding: 0 12px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--metin-orta);
    font-size: 0.82rem;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--gecis), color var(--gecis);
}

.mg-segment button:hover { color: var(--metin); }
.mg-segment button.aktif { background: var(--yuzey); color: var(--blc); box-shadow: var(--golge); }

.mg-segment button svg { width: 16px; height: 16px; vertical-align: -3px; }

.mg-cipler { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }

.mg-cipler.daralt { max-height: 66px; overflow: hidden; }

.mg-cip-ac {
    padding: 0 4px;
    border: 0;
    background: none;
    color: var(--blc);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}

.mg-cip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 11px;
    border: 1px solid var(--cizgi);
    border-radius: 999px;
    background: var(--yuzey);
    color: var(--metin-orta);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color var(--gecis), border-color var(--gecis), color var(--gecis);
}

.mg-cip:hover { border-color: #b8bfca; color: var(--metin); }

.mg-cip em {
    font-style: normal;
    font-weight: 600;
    font-size: 0.72rem;
    color: var(--metin-soluk);
    font-variant-numeric: tabular-nums;
}

.mg-cip.aktif { background: var(--blc); border-color: var(--blc); color: #fff; }
.mg-cip.aktif em { color: rgba(255, 255, 255, 0.8); }
.mg-cip.bos { opacity: 0.45; }

.mg-etiket {
    min-width: 62px;
    margin-right: 2px;
    color: var(--metin-soluk);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.mg-bilgi {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: var(--metin-soluk);
    font-size: 0.82rem;
}

.mg-bilgi b { color: var(--metin); }

.mg-temizle {
    padding: 0;
    border: 0;
    background: none;
    color: var(--blc);
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
}

.mg-temizle[hidden] { display: none; }

.mg-govde { padding: 0; }

.mg-grup-baslik {
    position: sticky;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    background: var(--yuzey-2);
    border-bottom: 1px solid var(--cizgi);
    color: var(--metin);
    font-size: 0.8rem;
    font-weight: 700;
}

.mg-grup-baslik em { font-style: normal; font-weight: 600; color: var(--metin-soluk); }

.mg-tablo { width: 100%; border-collapse: collapse; }

.mg-tablo th {
    padding: 9px 14px;
    background: var(--yuzey);
    color: var(--metin-soluk);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-align: left;
    border-bottom: 1px solid var(--cizgi);
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
}

.mg-tablo th.sayi, .mg-tablo td.sayi { text-align: right; font-variant-numeric: tabular-nums; }
.mg-tablo th:hover { color: var(--metin); }
.mg-tablo th.sirali { color: var(--blc); }
.mg-tablo th.sirali::after { content: " ↓"; }
.mg-tablo th.sirali.ters::after { content: " ↑"; }

.mg-tablo td {
    padding: 8px 14px;
    border-bottom: 1px solid var(--cizgi-acik);
    font-size: 0.86rem;
    vertical-align: middle;
}

.mg-tablo tr { transition: background-color var(--gecis); }
.mg-tablo tbody tr:hover { background: var(--yuzey-2); }

.mg-foto {
    display: block;
    width: 44px;
    height: 34px;
    object-fit: contain;
    border-radius: 6px;
    background: #fff;
    border: 1px solid var(--cizgi-acik);
}

.mg-foto-bos {
    display: block;
    width: 44px;
    height: 34px;
    border-radius: 6px;
    background: var(--yuzey-2);
    border: 1px dashed var(--cizgi);
}

.mg-ad a { color: var(--metin) !important; font-weight: 600; }
.mg-ad a:hover { color: var(--blc) !important; }
.mg-ad small { display: block; margin-top: 2px; color: var(--metin-soluk); font-size: 0.76rem; font-weight: 500; }

.mg-rozet {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 7px;
    margin-right: 6px;
    border-radius: 5px;
    background: var(--zemin);
    color: var(--metin-orta);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    vertical-align: 1px;
}

.mg-rozet.sifir { background: var(--yesil-acik); color: var(--yesil); }
.mg-rozet.ikinci { background: var(--sari-acik); color: var(--sari); }

.mg-stok { font-weight: 700; }
.mg-stok.yok { color: var(--metin-soluk); font-weight: 500; }
.mg-stok.eksi { color: #b42318; }

/* Kart görünümü */
.mg-kartlar {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 12px;
    padding: 14px 16px 16px;
}

.mg-kart {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
    color: var(--metin) !important;
    transition: box-shadow var(--gecis), border-color var(--gecis), transform var(--gecis);
}

.mg-kart:hover { border-color: #c9ced6; box-shadow: var(--golge-buyuk); transform: translateY(-2px); }

.mg-kart-foto {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 130px;
    padding: 10px;
    background: #fff;
    border-bottom: 1px solid var(--cizgi-acik);
}

.mg-kart-foto img { max-width: 100%; max-height: 100%; object-fit: contain; }

.mg-kart-govde { padding: 10px 12px 12px; }
.mg-kart-govde b { display: block; font-size: 0.84rem; font-weight: 600; line-height: 1.35; }
.mg-kart-govde small { display: block; margin-top: 6px; color: var(--metin-soluk); font-size: 0.76rem; }

.mg-bos {
    padding: 48px 16px;
    color: var(--metin-soluk);
    text-align: center;
}

.mg-daha {
    display: flex;
    justify-content: center;
    padding: 14px;
    border-top: 1px solid var(--cizgi-acik);
}

.mg-gelismis {
    margin-top: 22px;
}

.mg-gelismis > summary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 2px;
    color: var(--metin-orta);
    font-weight: 600;
    font-size: 0.86rem;
    cursor: pointer;
    list-style: none;
}

.mg-gelismis > summary::-webkit-details-marker { display: none; }

.mg-gelismis > summary::before {
    content: "";
    width: 7px;
    height: 7px;
    border-right: 1.6px solid currentColor;
    border-bottom: 1.6px solid currentColor;
    transform: rotate(-45deg);
    transition: transform var(--gecis);
}

.mg-gelismis[open] > summary::before { transform: rotate(45deg); }

.mg-gelismis > summary:hover { color: var(--blc); }

/* =====================================================================
   19. Giriş ve doğrulama sayfaları
   ===================================================================== */

body.blc-giris-sayfasi {
    min-height: 100vh;
    background:
        radial-gradient(1200px 600px at 50% -10%, rgba(179, 18, 27, 0.08), transparent 60%),
        var(--zemin);
}

body.blc-giris-sayfasi #container {
    width: 100%;
    min-width: 0;
    max-width: none;
    min-height: 100vh;
    height: auto;
    margin: 0;
    padding: 40px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    box-sizing: border-box;
}

body.blc-giris-sayfasi .main, body.blc-giris-sayfasi #main {
    flex: 0 0 auto;
    width: 100%;
    display: flex;
    justify-content: center;
    background: transparent;
}

body.blc-giris-sayfasi #content-start, body.blc-giris-sayfasi .content {
    flex: 0 0 auto;
    width: 100%;
    max-width: 420px;
    display: flex;
    justify-content: center;
    background: transparent;
}

body.blc-giris-sayfasi #content {
    flex: 0 0 auto;
    width: 100%;
    max-width: 420px;
    padding: 0;
    background: transparent;
}

.blc-giris-karti {
    width: 100%;
    box-sizing: border-box;
    padding: 40px 36px 34px;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-top: 3px solid var(--blc);
    border-radius: 14px;
    box-shadow: var(--golge-buyuk);
    text-align: center;
}

.blc-giris-logo { height: 56px; width: auto; margin-bottom: 18px; }

.blc-giris-baslik {
    margin: 0 0 6px;
    color: var(--metin) !important;
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1.35;
}

.blc-giris-alt-baslik { margin: 0 0 26px; color: var(--metin-soluk); font-size: 0.85rem; }

.blc-giris-karti .form-row { padding: 6px 0; border: 0; text-align: left; }
.blc-giris-karti .form-row label { color: var(--metin-orta); font-size: 0.8rem; font-weight: 600; }

.blc-giris-karti .form-row #id_username, .blc-giris-karti .form-row #id_password {
    width: 100%;
    height: 42px;
    margin-top: 4px;
    background: var(--yuzey);
}

.blc-giris-karti .submit-row {
    padding: 18px 0 0;
    margin: 0;
    background: none;
    border: 0;
    box-shadow: none;
}

.blc-giris-karti .submit-row input[type=submit] {
    width: 100%;
    height: 44px;
    background: var(--blc);
    border-color: var(--blc) !important;
    color: #fff !important;
    font-size: 0.95rem !important;
}

.blc-giris-karti .submit-row input[type=submit]:hover { background: var(--blc-koyu); }

.blc-giris-karti .password-reset-link { margin-top: 14px; text-align: center; }
.blc-giris-karti .password-reset-link a { color: var(--blc); font-size: 0.82rem; }

@media (max-width: 480px) {
    .blc-giris-karti { padding: 32px 22px 28px; }
    .blc-giris-baslik { font-size: 1.15rem; }
}

.blc-dogrulama-kod-girisi {
    width: 100%;
    box-sizing: border-box;
    margin-top: 4px;
    height: 54px !important;
    font-size: 1.5rem !important;
    letter-spacing: 0.6em;
    text-align: center;
    font-weight: 700;
    color: var(--metin);
}

.blc-giris-donus-linki {
    display: flex !important;
    width: 100%;
    height: 44px;
    background: var(--blc) !important;
    border-color: var(--blc) !important;
    color: #fff !important;
}

/* =====================================================================
   20. Mobil
   ===================================================================== */

@media (max-width: 1024px) {
    body #header { flex-direction: row; align-items: center; justify-content: space-between; }
    body #user-tools { margin-left: auto; }
    .blc-hizli-gecis-tetik { min-width: 0; margin-left: 12px; }
    .blc-hizli-gecis-tetik span, .blc-hizli-gecis-tetik kbd { display: none; }
}

@media (max-width: 767px) {
    body #header { padding: 8px 12px; flex-wrap: nowrap; position: static; }
    #site-name small { display: none; }
    .blc-hizli-gecis-tetik { margin-left: 8px; }
    #user-tools a[href*="password_change"] { display: none; }
    #user-tools { flex-wrap: nowrap; }
    .mg-tablo th:nth-child(n+4):not(:last-child), .mg-tablo td:nth-child(n+4):not(:last-child) { display: none; }
    .mg-tablo th, .mg-tablo td { padding-left: 8px; padding-right: 8px; }
    #site-name span { font-size: 0.95rem; }
    #user-tools { flex-wrap: wrap; justify-content: flex-start; }
    .blc-kullanici { display: none; }
    .breadcrumbs { padding: 12px 16px 0; }
    #content { padding: 12px 16px 32px; }
    ul.messagelist { padding: 0 16px; }
    .dashboard #content-main { grid-template-columns: 1fr; }
    .mg-ust { position: static; }
    .mg-kartlar { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
    .mg-gizle-mobil { display: none; }
    .blc-durum-toggle-satiri { display: flex; }
    .blc-durum-toggle-buton { flex: 1; min-width: 0; }
}

/* =====================================================================
   21. Fiş fotoğrafından otomatik doldurma kartı - fis-okuma.js
   ===================================================================== */

.fis-oku-karti {
    margin: 0 0 18px;
    padding: 16px 18px;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-left: 4px solid var(--blc);
    border-radius: var(--yaricap);
    box-shadow: var(--golge);
}

.fis-oku-ust { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }

.fis-oku-ikon {
    flex: 0 0 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--blc-acik);
    color: var(--blc);
}

.fis-oku-ikon svg { width: 22px; height: 22px; }

.fis-oku-metin { flex: 1 1 320px; min-width: 0; }
.fis-oku-metin > b { display: block; font-size: 0.95rem; }
.fis-oku-metin span b { color: var(--metin); }
.fis-oku-metin span { display: block; margin-top: 2px; color: var(--metin-soluk); font-size: 0.82rem; }

.fis-oku-onizleme {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid var(--cizgi);
    background: var(--yuzey-2);
}

.fis-oku-dugmeler { display: flex; flex-wrap: wrap; gap: 8px; }
.fis-oku-dugmeler .button { min-height: 40px; }

.fis-oku-donen {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, 0.45);
    border-top-color: #fff;
    border-radius: 50%;
    animation: fis-oku-don 0.8s linear infinite;
}

@keyframes fis-oku-don { to { transform: rotate(360deg); } }

.fis-oku-sonuc {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: var(--yaricap-kucuk);
    background: var(--yuzey-2);
    border: 1px solid var(--cizgi);
    font-size: 0.86rem;
    line-height: 1.5;
}

.fis-oku-sonuc.tamam { background: var(--yesil-acik); border-color: #bfe3cc; }
.fis-oku-sonuc.uyari { background: var(--sari-acik); border-color: #f1d9a6; }
.fis-oku-sonuc.hata { background: #fdf3f2; border-color: #f1c3c0; color: #8f1c13; }
.fis-oku-sonuc ul { margin: 8px 0 0 18px; padding: 0; }
.fis-oku-sonuc li { list-style: disc; margin: 2px 0; padding: 0; }
.fis-oku-soluk { color: var(--metin-soluk); }

.fis-oku-cubuk {
    height: 4px;
    margin-bottom: 8px;
    overflow: hidden;
    border-radius: 4px;
    background: var(--cizgi);
}

.fis-oku-cubuk span {
    display: block;
    width: 35%;
    height: 100%;
    border-radius: 4px;
    background: var(--blc);
    animation: fis-oku-kay 1.3s ease-in-out infinite;
}

@keyframes fis-oku-kay {
    from { transform: translateX(-100%); }
    to { transform: translateX(300%); }
}

.fis-oku-tablo {
    width: 100%;
    margin-top: 10px;
    border-collapse: collapse;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap-kucuk);
    overflow: hidden;
}

.fis-oku-tablo th, .fis-oku-tablo td {
    padding: 6px 10px;
    border-bottom: 1px solid var(--cizgi-acik);
    font-size: 0.82rem;
    text-align: left;
}

.fis-oku-tablo th { background: var(--yuzey-2); color: var(--metin-soluk); font-size: 0.72rem; text-transform: uppercase; }
.fis-oku-tablo td + td, .fis-oku-tablo th + th { text-align: right; width: 70px; }

.fis-oku-doldu {
    background-color: #fff6d6 !important;
    border-color: #e0b54a !important;
    animation: fis-oku-parla 1.6s ease-out;
}

@keyframes fis-oku-parla {
    from { box-shadow: 0 0 0 4px rgba(224, 181, 74, 0.45); }
    to { box-shadow: 0 0 0 0 rgba(224, 181, 74, 0); }
}

.fis-oku-karti { position: relative; transition: border-color var(--gecis), background-color var(--gecis); }

.fis-oku-birak {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    border: 2px dashed var(--blc);
    border-radius: var(--yaricap);
    background: rgba(253, 241, 242, 0.94);
    color: var(--blc);
    font-weight: 700;
    font-size: 0.95rem;
    pointer-events: none;
}

.fis-oku-karti.surukleniyor .fis-oku-birak { display: flex; }

/* =====================================================================
   22. Antrasit vurgular: üst bar, sol menü, tablo / bölüm başlıkları
   (kırmızı bu koyu zemin üzerinde vurgu olarak kalır)
   ===================================================================== */

:root, html[data-theme="light"], html[data-theme="dark"], html[data-theme="auto"] {
    --antrasit: #262a31;
    --antrasit-2: #30353e;
    --antrasit-3: #3a404a;
    --antrasit-cizgi: #3f4651;
    --antrasit-metin: #eef0f3;
    --antrasit-soluk: #a3aab6;
}

/* Üst bar */
#header {
    background: var(--antrasit);
    border-bottom: 1px solid #1b1e23;
    color: var(--antrasit-metin);
    box-shadow: 0 2px 10px rgba(16, 20, 28, 0.18);
}

#site-name a:link, #site-name a:visited { color: #fff; }
#site-name small { color: var(--antrasit-soluk); }
#site-name .brand-logo { background: #fff; padding: 2px; border-radius: 6px; }

.blc-hizli-gecis-tetik {
    background: var(--antrasit-2);
    border-color: var(--antrasit-cizgi);
    color: var(--antrasit-soluk);
}

.blc-hizli-gecis-tetik:hover { background: var(--antrasit-3); border-color: #555d6a; color: var(--antrasit-metin); }
.blc-hizli-gecis-tetik kbd { background: var(--antrasit); border-color: var(--antrasit-cizgi); color: var(--antrasit-soluk); }

#user-tools { color: var(--antrasit-soluk); }
#user-tools a, #logout-form button { color: var(--antrasit-soluk) !important; }
#user-tools a:hover, #logout-form button:hover { background: var(--antrasit-2); color: #fff !important; }
.blc-kullanici { color: #fff; border-right-color: var(--antrasit-cizgi); }
.blc-kullanici-avatar { background: var(--blc); color: #fff; }

/* Sol menü */
#nav-sidebar {
    background: var(--antrasit);
    border-right: 1px solid #1b1e23;
}

#nav-filter {
    background: var(--antrasit-2) !important;
    border-color: var(--antrasit-cizgi) !important;
    color: var(--antrasit-metin);
}

#nav-filter::placeholder { color: var(--antrasit-soluk); }

#nav-sidebar .module caption, #nav-sidebar table caption,
#nav-sidebar .module caption a { color: #7f8794 !important; }

#nav-sidebar th a { color: #cfd3da !important; }
#nav-sidebar .module tr:hover { background: var(--antrasit-2); }
#nav-sidebar .module tr:hover th a { color: #fff !important; }
#nav-sidebar td a.addlink::before { color: var(--antrasit-soluk); }
#nav-sidebar td a.addlink:hover::before { color: #fff; }

#nav-sidebar .current-model { background: rgba(179, 18, 27, 0.22) !important; }
#nav-sidebar .current-model th a { color: #fff !important; box-shadow: inset 3px 0 0 var(--blc); }

#toggle-nav-sidebar {
    background: var(--antrasit);
    border-right-color: #1b1e23;
    color: var(--antrasit-soluk);
}

#toggle-nav-sidebar:hover, #toggle-nav-sidebar:focus { background: var(--antrasit-2); color: #fff; }

/* Bölüm başlıkları (form bölümleri, satır içi tablolar) */
.module h2, .module caption, .inline-group h2, fieldset.module h2 {
    background: var(--antrasit);
    color: #fff;
    border-bottom: 2px solid var(--blc);
}

.module h2 a, .module caption a, .inline-group h2 a { color: #fff !important; }

fieldset.collapse h2 a.collapse-toggle, fieldset.module summary { color: #fff !important; }

/* Ana panel kartlarının başlığı */
.dashboard .module caption {
    background: var(--antrasit);
    color: #fff;
    border-bottom: 2px solid var(--blc);
}

.dashboard .module caption a.section:link, .dashboard .module caption a.section:visited { color: #fff !important; }
.dashboard .module caption::before { background-color: rgba(255, 255, 255, 0.95); }

/* Tablo başlıkları */
#changelist table thead th, table.results thead th,
#changelist table thead td, table.results thead td,
.inline-group .tabular thead th, .mg-tablo th, .fis-oku-tablo th, #satis-fiyat-tablosu thead th {
    background: var(--antrasit-2) !important;
    color: #d6dae0 !important;
    border-bottom: 2px solid var(--blc) !important;
}

#changelist table thead th a, table.results thead th a,
#changelist table thead th .text a, .inline-group .tabular thead th a { color: #d6dae0 !important; }

#changelist table thead th.sorted a, #changelist table thead th a:hover,
.mg-tablo th:hover { color: #fff !important; }

.mg-tablo th.sirali { color: #fff !important; box-shadow: inset 0 -2px 0 #ff6b72; }

#changelist table thead th.action-checkbox-column { background: var(--antrasit-2) !important; }

/* Gezgin: sistem grup başlıkları ve özet kartları */
.mg-grup-baslik {
    background: var(--antrasit-3);
    color: #fff;
    border-bottom-color: var(--antrasit-cizgi);
}

.mg-grup-baslik em { color: var(--antrasit-soluk); }

.mg-ozet-kart { border-top: 3px solid var(--antrasit); }
.mg-ozet-kart:first-child { border-top-color: var(--blc); }

/* Süzgeç çubuğu etiketi ve seçici başlıkları */
.selector-available-title { background: var(--antrasit-2) !important; color: #fff !important; }

/* Son Eylemler paneli başlığı */
#content-related.son-eylemler-panel h2 { background: var(--antrasit); color: #fff; border-bottom: 2px solid var(--blc); }
#son-eylemler-tetik { background: var(--antrasit); border-color: var(--antrasit); color: #fff; }

@media (max-width: 767px) {
    .blc-hizli-gecis-tetik { background: var(--antrasit-2); }
}

.liste-oku-tablo td:nth-child(2), .liste-oku-tablo th:nth-child(2) { text-align: left; width: auto; }
.liste-oku-tablo td:first-child { color: var(--metin-soluk); }

/* =====================================================================
   23. Maliyet Hesabı Tablosu (satış teklifleri) - maliyet-hesabi.js
   ===================================================================== */

.maliyet-paneli {
    position: relative;
    margin: 0 0 18px;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
    box-shadow: var(--golge);
    overflow: hidden;
}

.maliyet-paneli > summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 16px;
    padding: 12px 16px;
    background: var(--antrasit);
    border-bottom: 2px solid var(--blc);
    color: #fff;
    cursor: pointer;
    list-style: none;
}

.maliyet-paneli > summary::-webkit-details-marker { display: none; }

.maliyet-paneli > summary::before {
    content: "";
    width: 7px;
    height: 7px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg);
    transition: transform var(--gecis);
}

.maliyet-paneli[open] > summary::before { transform: rotate(45deg); }
.maliyet-baslik { font-weight: 700; font-size: 0.9rem; }
.maliyet-ozet { margin-left: auto; color: #d6dae0; font-size: 0.82rem; font-variant-numeric: tabular-nums; }

.maliyet-govde { padding: 14px 16px 16px; }

.maliyet-arac { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-bottom: 12px; }
.maliyet-arac label { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.maliyet-arac .maliyet-kar-genel { width: 90px; }
.maliyet-ayirac { width: 1px; height: 26px; margin: 0 4px; background: var(--cizgi); }

.maliyet-kaydirici { overflow-x: auto; border: 1px solid var(--cizgi); border-radius: var(--yaricap-kucuk); }

.maliyet-tablo { width: 100%; border-collapse: collapse; }

.maliyet-tablo th {
    padding: 8px 10px;
    background: var(--antrasit-2);
    color: #d6dae0;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-align: left;
    white-space: nowrap;
    border-bottom: 2px solid var(--blc);
}

.maliyet-tablo td { padding: 6px 10px; border-bottom: 1px solid var(--cizgi-acik); font-size: 0.85rem; vertical-align: middle; }
.maliyet-tablo .sayi { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.maliyet-tablo .maliyet-no { width: 28px; color: var(--metin-soluk); }
.maliyet-tablo input { width: 120px; text-align: right; }
.maliyet-tablo input.maliyet-k { width: 80px; }
.maliyet-tablo tbody tr:hover { background: var(--yuzey-2); }
.maliyet-tablo tfoot td { background: var(--yuzey-2); font-weight: 700; border-bottom: 0; }
.maliyet-tablo tfoot .maliyet-kar-satiri td { color: var(--yesil); }

.maliyet-paneli .fis-oku-sonuc { margin: 0 0 12px; }
.maliyet-paneli.surukleniyor .fis-oku-birak { display: flex; }
.fis-oku-donen.koyu { border-color: rgba(0, 0, 0, 0.15); border-top-color: var(--blc); }

.maliyet-paneli.iskonto-modu .maliyet-tablo tfoot .maliyet-kar-satiri td { color: var(--metin-orta); }
.maliyet-iskonto-notu { margin-top: 8px; }

/* =====================================================================
   24. Teklif gönderim penceresi (WhatsApp / E-posta) - teklif-gonder.js
   ===================================================================== */

.teklif-gonder-dugmeleri { display: inline-flex; gap: 6px; white-space: nowrap; }
.teklif-gonder-dugmeleri .button { min-height: 32px; padding: 0 10px !important; font-size: 0.8rem !important; }
.teklif-gonder-wp { color: #128C7E !important; border-color: #9fd9cf !important; }
.teklif-gonder-wp:hover { background: #e9f8f5 !important; }

.tg-perde {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
    align-items: flex-start;
    justify-content: center;
    padding-top: 10vh;
    background: rgba(16, 20, 32, 0.42);
}

.tg-perde.acik { display: flex; animation: blc-belirme 0.12s ease-out; }

.tg-pencere {
    width: 560px;
    max-width: calc(100vw - 32px);
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--yuzey);
    border-radius: 14px;
    box-shadow: 0 24px 64px rgba(16, 24, 40, 0.3);
    animation: blc-acilir 0.16s ease-out;
}

.tg-baslik {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    background: var(--antrasit);
    border-bottom: 2px solid var(--blc);
    color: #fff;
}

.tg-kapat { border: 0; background: none; color: #fff; font-size: 1.4rem; line-height: 1; cursor: pointer; opacity: 0.8; }
.tg-kapat:hover { opacity: 1; }

.tg-govde { padding: 16px 18px; overflow-y: auto; }
.tg-aciklama { margin: 0 0 12px; color: var(--metin-orta); }

.tg-secenekler { display: flex; flex-direction: column; gap: 8px; }

.tg-secenek {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap-kucuk);
    cursor: pointer;
    transition: border-color var(--gecis), background-color var(--gecis);
}

.tg-secenek:hover { border-color: #b8bfca; }
.tg-secenek:has(input:checked) { border-color: #128C7E; background: #eef9f6; }
.tg-secenek input { margin: 0; accent-color: #128C7E; }
.tg-secenek b { display: block; font-size: 0.9rem; }
.tg-secenek small { display: block; color: var(--metin-soluk); font-size: 0.78rem; }
.tg-secenek.pasif { opacity: 0.55; cursor: default; }
.tg-musteri { border-style: dashed; }

.tg-alan { display: block; margin-bottom: 12px; }
.tg-alan span { display: block; margin-bottom: 4px; color: var(--metin-orta); font-size: 0.8rem; font-weight: 600; }
.tg-alan input, .tg-alan textarea { width: 100%; box-sizing: border-box; font-family: inherit; }
.tg-ekler { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.tg-ek { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.tg-alan .tg-ek input { width: auto; margin: 0; }
.tg-ek small { color: var(--metin-soluk); }
.tg-ek.pasif { opacity: 0.55; cursor: default; }

.tg-alt {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 18px;
    border-top: 1px solid var(--cizgi);
    background: var(--yuzey-2);
}

.tg-alt:empty { display: none; }
.tg-wp-dugme { background: #128C7E !important; border-color: #128C7E !important; }
.tg-wp-dugme:hover { background: #0e6f64 !important; }
.tg-sonuc { margin-top: 12px; }

/* =====================================================================
   25. Gelen Malzeme Formu seçim ekranı
   ===================================================================== */

.gm-kartlar { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 18px; max-width: 1100px; }

.gm-kart {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0 0 16px;
    background: var(--yuzey);
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap);
    box-shadow: var(--golge);
    overflow: hidden;
}

.gm-kart h2 {
    margin: 0;
    padding: 12px 16px;
    background: var(--antrasit);
    border-bottom: 2px solid var(--blc);
    color: #fff !important;
    font-size: 0.95rem;
}

.gm-kart > p, .gm-kart > input, .gm-kart > select, .gm-kart > .gm-dugmeler { margin: 0 16px; }
.gm-kart .gm-secim { width: auto; height: 260px; padding: 4px; }
.gm-kart .gm-secim option { padding: 6px 8px; border-radius: 6px; }
.gm-kart .gm-secim option:checked { background: var(--blc-acik); color: var(--blc); font-weight: 600; }
.gm-dugmeler { display: flex; gap: 8px; }
.gm-dugmeler .pasif { opacity: 0.5; pointer-events: none; }

/* =====================================================================
   26. Geniş tablolar / mobil: kaydırılabilir kutu + üst çubuk - tablo-kaydirma.js
   ===================================================================== */

/* Satır içi tablolar (teklif kalemleri vb.) kesilmesin: kaydırmayı .blc-kaydir kutusu yapar */
.inline-group, .inline-group fieldset.module { overflow: visible; }

.blc-kaydir {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
}

.blc-kaydir, .blc-kaydir-ust, #changelist div.results, .blc-tablo-kaydirici, .maliyet-kaydirici {
    scrollbar-width: auto;
    scrollbar-color: var(--antrasit-3) var(--cizgi-acik);
}

.blc-kaydir::-webkit-scrollbar, .blc-kaydir-ust::-webkit-scrollbar, #changelist div.results::-webkit-scrollbar,
.blc-tablo-kaydirici::-webkit-scrollbar, .maliyet-kaydirici::-webkit-scrollbar { height: 12px; }

.blc-kaydir::-webkit-scrollbar-track, .blc-kaydir-ust::-webkit-scrollbar-track,
#changelist div.results::-webkit-scrollbar-track, .blc-tablo-kaydirici::-webkit-scrollbar-track,
.maliyet-kaydirici::-webkit-scrollbar-track { background: var(--cizgi-acik); border-radius: 6px; }

.blc-kaydir::-webkit-scrollbar-thumb, .blc-kaydir-ust::-webkit-scrollbar-thumb,
#changelist div.results::-webkit-scrollbar-thumb, .blc-tablo-kaydirici::-webkit-scrollbar-thumb,
.maliyet-kaydirici::-webkit-scrollbar-thumb { background: var(--antrasit-3); border-radius: 6px; border: 2px solid var(--cizgi-acik); }

.blc-kaydir-ust { max-width: 100%; overflow-x: auto; overflow-y: hidden; margin-bottom: 4px; }
.blc-kaydir-ust > div { height: 1px; }

.blc-kaydir-ipucu {
    margin: 4px 0 2px;
    color: var(--metin-soluk);
    font-size: 0.75rem;
    font-weight: 600;
    text-align: center;
}

/* Kaydırılabilir tabloda sağ kenarda gölge: devamı olduğu belli olsun */
.blc-kaydir.tasiyor {
    background:
        linear-gradient(to left, var(--yuzey) 30%, rgba(255, 255, 255, 0)) right / 40px 100% no-repeat local,
        linear-gradient(to left, rgba(16, 24, 40, 0.14), rgba(16, 24, 40, 0)) right / 14px 100% no-repeat scroll;
}

/* Masaüstünde ipucu yazısı gerekmez (çubuk zaten görünür) */
@media (min-width: 1025px) {
    .blc-kaydir-ipucu { display: none !important; }
}

/* Mobil: içerik kenar boşlukları ve tablo hücreleri biraz daha sıkı */
@media (max-width: 767px) {
    #changelist table tbody th, #changelist table tbody td, table.results tbody th, table.results tbody td,
    #changelist table thead th, table.results thead th { padding: 8px 10px !important; }
    .inline-group .tabular td, .inline-group .tabular th { padding: 6px !important; }
    /* Kaydet çubuğu ekranın altında sabit ve kısa: KAYDET tam genişlik, diğerleri yan yana ikişer */
    .submit-row {
        position: sticky; bottom: 0; z-index: 50;
        display: grid !important; grid-template-columns: 1fr 1fr; gap: 6px; padding: 8px 10px;
    }
    .submit-row > * { margin: 0 !important; min-width: 0; box-sizing: border-box; }
    .submit-row input, .submit-row a {
        width: 100% !important; height: auto !important; min-height: 38px; padding: 6px 8px !important;
        font-size: 0.78rem !important; white-space: normal; line-height: 1.2; justify-content: center; text-align: center;
    }
    .submit-row input.default, .submit-row input[name=_save] { grid-column: 1 / -1; font-size: 0.9rem !important; }
    .submit-row a.deletelink, .submit-row a.closelink {
        grid-column: 1 / -1; min-height: 30px; align-self: center; display: flex !important; align-items: center;
    }
    /* Yüzen AI Asistan düğmesi küçük yuvarlak simgeye döner, kaydet çubuğunun üstünde durur */
    #asistan-tetik {
        bottom: 190px; right: 12px; width: 46px; height: 46px; padding: 0;
        justify-content: center; font-size: 0;
    }
    #asistan-tetik .asistan-simge { font-size: 1.2rem; }
}

/* =====================================================================
   27. Menü düğmesi (3 çizgi): masaüstünde sol menüyü aç/kapat, telefonda soldan kayan panel
   ===================================================================== */

.blc-menu-dugmesi {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    margin-right: 14px;
    padding: 0;
    border: 1px solid var(--antrasit-cizgi);
    border-radius: var(--yaricap-kucuk);
    background: var(--antrasit-2);
    color: var(--antrasit-metin);
    cursor: pointer;
    transition: background-color var(--gecis), border-color var(--gecis);
}

.blc-menu-dugmesi[hidden] { display: none; }
.blc-menu-dugmesi:hover, .blc-menu-dugmesi:focus-visible { background: var(--antrasit-3); border-color: #555d6a; color: #fff; }

/* Django'nun ince » şeridi yerine başlıktaki düğme kullanılır */
#toggle-nav-sidebar { display: none !important; }
.main > #nav-sidebar + .content { max-width: 100%; }
@media (min-width: 768px) {
    .main.shifted > #nav-sidebar + .content { max-width: calc(100% - 276px); }
}

.blc-menu-perde { display: none; }

@media (max-width: 767px) {
    .blc-menu-dugmesi { width: 36px; height: 36px; margin-right: 10px; }

    body .main > #nav-sidebar, body .main.shifted > #nav-sidebar {
        display: block;
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        width: min(300px, 86vw);
        max-height: none;
        height: 100%;
        margin: 0;
        z-index: 1001;
        overflow-y: auto;
        visibility: hidden;
        transform: translateX(-105%);
        transition: transform 0.22s ease, visibility 0.22s;
        box-shadow: 8px 0 30px rgba(0, 0, 0, 0.35);
    }

    body.blc-menu-acik .main > #nav-sidebar, body.blc-menu-acik .main.shifted > #nav-sidebar { visibility: visible; transform: none; }

    .blc-menu-perde {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1000;
        background: rgba(16, 20, 26, 0.5);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.22s ease;
    }

    body.blc-menu-acik .blc-menu-perde { opacity: 1; pointer-events: auto; }
    body.blc-menu-acik { overflow: hidden; }
    #nav-sidebar th a { padding-top: 10px; padding-bottom: 10px; }
}

/* =====================================================================
   28. KG ile fiyatlandırma (masa iskele satış teklifi)
   ===================================================================== */

.kg-fiyat-bolumu { margin: 0 0 18px; }
.kg-fiyat-satiri { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.kg-fiyat-satiri label { min-width: auto !important; width: auto !important; padding: 0 !important; font-weight: 600; }
.kg-fiyat-satiri input[type=number] { width: 110px; }
.kg-fiyat-birim { color: var(--metin-soluk); }
.kg-fiyat-bolumu .help { margin: 0 12px 6px !important; padding-left: 0 !important; }
.kg-fiyat-ozeti { font-weight: 600; padding: 8px 12px; margin: 0; }

/* =====================================================================
   29. Teklifler listesi: onay düğmesi ve onay penceresi (teklif-onay.js)
   ===================================================================== */

.teklif-onay-dugmesi {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border: 1px solid transparent;
    border-radius: 999px;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color var(--gecis), border-color var(--gecis);
}

.teklif-onay-dugmesi img { width: 13px; height: 13px; }
.teklif-onay-dugmesi.bekliyor { background: #fdf0f0; border-color: #f3caca; color: #a3201a; }
.teklif-onay-dugmesi.bekliyor:hover { background: #fbe3e3; border-color: #e9a9a9; }
.teklif-onay-dugmesi.onayli { background: #ecf8ef; border-color: #bfe3c8; color: #1d6b35; }
.teklif-onay-dugmesi.onayli:hover { background: #dff2e4; border-color: #9fd3ad; }

.to-pencere { max-width: 520px; }
.to-ayrinti[hidden] { display: none !important; }
.to-ayrinti { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--cizgi); }
.to-ayrinti .tg-alan span i { font-weight: 400; color: var(--metin-soluk); }
.to-ayrinti input[type=date] { width: auto; min-width: 180px; }

.to-onay-kutusu {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--cizgi);
    border-radius: var(--yaricap-kucuk);
    cursor: pointer;
}

.to-onay-kutusu:has(input:checked) { border-color: #4caf6a; background: #f0faf3; }
.to-onay-kutusu input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: #2e9d4e; flex: 0 0 auto; }
.to-onay-kutusu b { display: block; font-size: 0.95rem; }
.to-onay-kutusu small { display: block; color: var(--metin-soluk); font-size: 0.78rem; margin-top: 2px; }

.to-pdf-alani {
    padding: 18px 14px;
    border: 1.5px dashed #c3c9d2;
    border-radius: var(--yaricap-kucuk);
    background: var(--yuzey-2);
    text-align: center;
    color: var(--metin-orta);
    font-size: 0.85rem;
    cursor: pointer;
    transition: border-color var(--gecis), background-color var(--gecis);
}

.to-pdf-alani:hover, .to-pdf-alani:focus-visible, .to-pdf-alani.surukleniyor { border-color: var(--blc); background: #fdf3f3; }
.to-pdf-alani u { color: var(--blc); }
.to-pdf-secilen { margin-top: 10px; color: var(--metin); }
.to-pdf-kaldir { border: 0; background: none; color: var(--metin-soluk); font-size: 1.1rem; cursor: pointer; margin-left: 4px; }
.to-pdf-kaldir:hover { color: var(--blc); }

/* =====================================================================
   30. Sarfiyat sonucu yenilendi vurgusu (masa-sarfiyat-hesaplama.js)
   ===================================================================== */

@keyframes blc-yenilendi { from { background-color: #fff4c2; } to { background-color: transparent; } }
.blc-yenilendi tbody td { animation: blc-yenilendi 0.9s ease-out; }

/* =====================================================================
   31. Kira Takip İcmali: Birim Fiyat Hesaplama Aracı (icmal-fiyat-araci.js)
   ===================================================================== */

.icmal-fiyat-araci {
    margin: 4px 0 16px;
    padding: 14px 16px;
    border: 1px solid var(--cizgi);
    border-left: 4px solid var(--blc);
    border-radius: var(--yaricap);
    background: var(--yuzey-2);
}

.icmal-fiyat-araci[hidden] { display: none; }
.ifa-baslik { margin-bottom: 10px; font-size: 0.95rem; }
.ifa-baslik span { color: var(--metin-soluk); font-size: 0.82rem; }
.ifa-satir { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-bottom: 10px; }
.ifa-mod { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; cursor: pointer; }
.ifa-mod input { margin: 0; accent-color: var(--blc); }
.ifa-deger { width: 150px; }
.ifa-birim { color: var(--metin-soluk); margin-left: -8px; }
.icmal-fiyat-araci .help { margin: 0 0 8px !important; padding: 0 !important; }
.ifa-sonuc { margin: 0 0 8px; }
.ifa-sonuc ul { margin: 6px 0 0; padding-left: 18px; }
.ifa-ozet { margin: 0; font-weight: 600; color: var(--metin-orta); }

/* Kira icmali: giden fiş bazında kira fiyatlandırması (birim / paket) */
.fis-fiyatlandirma { white-space: nowrap; }
.fis-fiyatlandirma select { min-width: 120px; }
.fis-paket-bedeli { margin-left: 6px; }
.fis-paket-bedeli[hidden] { display: none; }
.fis-paket-bedeli input { width: 110px; }

/* Kira icmali: fiş bazında işçilik tablosu - genel ayar / işçilik yok satırlarında kutular soluk */
.fis-iscilik-satiri.pasif .fis-iscilik-ozel input { opacity: 0.45; background: var(--yuzey-2); }
.fis-iscilik-birim { color: var(--metin-soluk); }
.fis-iscilik-tablosu td.fis-iscilik-ozel { white-space: nowrap; }
.fis-iscilik-tablosu input[name^="iscilik_metraj_"] { width: 120px !important; }

/* Kiralık teklif: Kira Fiyatı Hesaplama Aracı (kiralik-fiyat-araci.js) */
.kfa-sonuc { margin: 0 12px 8px; }
.kfa-sonuc ul { text-align: left; margin: 6px 0 0; padding-left: 18px; }
.kiralik-fiyat-araci .kfa-deger { width: 140px; }

/* =====================================================================
   32. Görevler ve Hatırlatmalar (gorev-hatirlatma.js)
   ===================================================================== */

.blc-gorev-zil {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0 !important;
    border-radius: var(--yaricap-kucuk);
    color: var(--antrasit-metin) !important;
}

.blc-gorev-zil:hover { background: var(--antrasit-2); color: #fff !important; }
.blc-gorev-zil.var svg { animation: blc-zil 2.4s ease-in-out infinite; transform-origin: 50% 10%; color: #fff; }

.blc-gorev-sayi {
    position: absolute;
    top: 2px;
    right: 0;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--blc);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 17px;
    text-align: center;
    box-sizing: border-box;
}

.blc-gorev-sayi[hidden] { display: none; }

@keyframes blc-zil {
    0%, 70%, 100% { transform: rotate(0); }
    75% { transform: rotate(14deg); } 80% { transform: rotate(-12deg); }
    85% { transform: rotate(8deg); } 90% { transform: rotate(-5deg); }
}

.gorev-pencere { max-width: 560px; }
.gorev-kart { border: 1px solid var(--cizgi); border-left: 4px solid var(--blc); border-radius: var(--yaricap-kucuk);
              padding: 10px 12px; margin-bottom: 10px; background: var(--yuzey); }
.gorev-kart-ust { display: flex; align-items: center; gap: 8px; }
.gorev-kart-ust a { color: var(--metin); }
.gorev-tur { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
             background: var(--yuzey-2); border: 1px solid var(--cizgi); border-radius: 999px; padding: 1px 8px; color: var(--metin-orta); }
.gorev-kart-aciklama { margin: 6px 0 0; color: var(--metin-orta); font-size: 0.86rem; }
.gorev-kart-alt { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 8px;
                  font-size: 0.8rem; color: var(--metin-soluk); }
.gorev-kart-alt .button { margin-left: auto; }
.gorev-kart.bitti { border-left-color: #2e9d4e; background: #f0faf3; }
.gorev-bitti { color: #1d6b35; font-weight: 600; }
.gorev-pencere .tg-alt { flex-wrap: wrap; }

.gorev-durum { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 0.78rem; font-weight: 600; white-space: nowrap; }
.gorev-durum.tamam { background: #ecf8ef; color: #1d6b35; }
.gorev-durum.geldi { background: #fdecec; color: #a3201a; }
.gorev-durum.bekliyor { background: var(--yuzey-2); color: var(--metin-orta); }

@media (max-width: 767px) {
    .gorev-kart-alt .button { margin-left: 0; width: 100%; }
}

/* =====================================================================
   33. Kira Bitişleri ve Finans sayfaları
   ===================================================================== */

.kira-bitis-tablosu tr.kb-yakin td { background: #fff8e6; }
.kira-bitis-tablosu tr.kb-gecti td { background: #fdecec; }
.kira-bitis-tablosu tr.kb-gecti td:nth-child(5) { color: #a3201a; }
.kb-rozet { display: inline-block; margin-left: 4px; padding: 0 7px; border-radius: 999px; font-size: 0.7rem;
            background: var(--yuzey-2); border: 1px solid var(--cizgi); color: var(--metin-soluk); }
.kb-rozet.elle { background: #fdecea; border-color: #f3caca; color: #8e1b10; }
.kb-form { display: flex; gap: 6px; align-items: center; margin: 0; }
.kb-form input[type=date] { width: auto; }

.finans-tablosu th.sayi, .finans-tablosu td.sayi, .finans-detay .sayi { text-align: right; white-space: nowrap; }
.finans-tablosu tfoot td { background: var(--yuzey-2); }
.finans-tablosu details summary { cursor: pointer; }
.finans-detay { width: 100%; margin: 8px 0 4px; font-size: 0.82rem; }
.finans-detay th { background: var(--yuzey-2) !important; color: var(--metin-orta) !important; font-size: 0.72rem; }

.dashboard .app-menu_finans caption::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3121b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='M7 15l4-4 3 3 6-6'/%3E%3C/svg%3E");
}

/* Finans: Paraşüt bölümü araç satırı ve sınıf rozetleri */
.finans-arac { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 12px 12px 0; }
.finans-arac form { margin: 0; display: flex; align-items: center; gap: 6px; }
.finans-sinif { display: inline-block; padding: 0 8px; border-radius: 999px; font-size: 0.72rem; font-weight: 600; white-space: nowrap;
                background: var(--yuzey-2); color: var(--metin-orta); }
.finans-sinif.kira { background: #e8f1fb; color: #1d4f86; }
.finans-sinif.satis { background: #ecf8ef; color: #1d6b35; }
.finans-sinif.zayi { background: #fff4e0; color: #8a5300; }
.finans-sinif.iade { background: #fdecec; color: #a3201a; }

.dashboard .app-menu_ihracat caption::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3121b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18'/%3E%3Cpath d='M12 3a14 14 0 0 1 0 18a14 14 0 0 1 0-18'/%3E%3C/svg%3E");
}

/* İhracat dosyası */
.ihr-panel { padding-bottom: 4px; }
.ihr-adimlar { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 12px; padding: 0; }
.ihr-adimlar li { display: flex; align-items: center; gap: 6px; padding: 5px 10px 5px 5px; border-radius: 999px;
                  background: var(--yuzey-2); color: var(--metin-soluk); font-size: 0.8rem; }
.ihr-adimlar li span { display: inline-flex; width: 20px; height: 20px; border-radius: 50%; align-items: center;
                       justify-content: center; background: var(--cizgi); color: var(--metin-orta); font-weight: 700;
                       font-size: 0.72rem; }
.ihr-adimlar li.tamam { background: #ecf8ef; color: #1d6b35; }
.ihr-adimlar li.tamam span { background: #1d6b35; color: #fff; }
.ihr-adimlar li.sirada { background: #fff4e0; color: #8a5300; font-weight: 600; }
.ihr-adimlar li.sirada span { background: #8a5300; color: #fff; }
.ihr-belgeler { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 12px; margin: 0 12px; }
.ihr-belgeler > div { background: var(--yuzey-2); border-radius: 8px; padding: 10px 12px; }
.ihr-belgeler h3 { margin: 0 0 8px; font-size: 0.9rem; }
.ihr-belgeler + .ihr-belgeler { margin-top: 12px; }
.ihr-onizleme { margin-top: 10px; }
.ihr-onizleme summary { cursor: pointer; font-weight: 600; }
.ihr-onizleme pre { white-space: pre-wrap; font-family: inherit; font-size: 0.82rem; line-height: 1.45; background: var(--yuzey-1, #fff);
  border: 1px solid var(--cizgi); border-radius: 6px; padding: 8px 10px; max-height: 320px; overflow: auto; }
.ihr-ilerleme { display: inline-block; width: 70px; height: 7px; border-radius: 4px; background: var(--cizgi);
                vertical-align: middle; overflow: hidden; }
.ihr-ilerleme span { display: block; height: 100%; background: #1d6b35; }
.ihr-kantar-uyari { color: #b42318; font-weight: 700; }
.ihr-paketleme tr.ihr-degisik td { background: #fff6e0; }
.ihr-paketleme select, .ihr-paketleme input { padding: 2px 4px; }
.ihr-paketleme .ihr-pasif { opacity: 0.35; background: #eee; pointer-events: none; }

/* Finans > Toplu Fatura Kesme */
.tf-bolum > summary { cursor: pointer; list-style: none; }
.tf-bolum > summary::-webkit-details-marker { display: none; }
.tf-bolum > summary h2::before { content: "▸ "; }
.tf-bolum[open] > summary h2::before { content: "▾ "; }
.tf-tablo .finans-sinif { margin: 1px 0; }
.tf-arac { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 10px 12px; }
.tf-arac .tf-kes { background: #a3201a; color: #fff; border-color: #a3201a; }
.tf-arac .tf-kes:disabled { opacity: 0.5; }
.tf-durum { font-size: 0.82rem; }
.tf-durum.bekliyor { color: var(--metin-soluk); }
.tf-durum.tamam { color: #1d6b35; font-weight: 600; }
.tf-durum.hata, .tf-engel { color: #a3201a; }
