/**
 * @file frontend/assets/css/style.css
 * @description OtoVento arayüzü özel stilleri. NaeronUI tasarım token'ları ile tam uyumludur.
 * NaeronUI kopyası doğrudan değiştirilmez; bu dosyada yalnız uygulamaya özgü düzen tutulur.
 * Kit sınıfları (.nui-*) burada yeniden tanımlanmaz; renk, ölçü ve yazı boyutu yalnız var(--nui-*) token'larıdır.
 */

/* Giriş ve MFA ekranları (kit .nui-auth-* kalıbı): QR çerçevesi ve kod girişi. */
.ov-qr-frame {
    display: flex;
    justify-content: center;
    padding: var(--nui-gap-3);
    border: 1px solid var(--nui-border);
    border-radius: var(--nui-radius);
    /* QR okuyucular açık sessiz bölge ister; tema koyu olsa da zemin sabit açık kalır (zorunlu istisna). */
    background: #fff;
}
.ov-auth-code-input {
    text-align: center;
    font-family: var(--nui-font-mono);
    font-size: var(--nui-font-size-lg);
    font-weight: 700;
    letter-spacing: 0.25em;
}
.ov-auth-code-input-upper {
    text-transform: uppercase;
    letter-spacing: 0.15em;
}

/* Kit liste/kart içinde madde işaretsiz ul. */
.ov-list-reset {
    margin: 0;
    padding: 0;
    list-style: none;
}
/* Genel Bakış: kit .nui-kpi bağlantı olarak kullanılır; bağlantı rengi/çizgisi kitin kart metnini bozmaz. */
.ov-dashboard-link {
    color: inherit;
    text-decoration: none;
}

.ov-grid-scroll-wrapper {
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    overflow-x: auto;
    border: 1px solid var(--nui-border);
    border-radius: var(--nui-radius);
    background: var(--nui-raised);
    position: relative;
}

/* Alt sayfalayıcıların görünümü grids12.css'te tektir; burada yalnız alta yapışma vardır. */
.ov-sticky-pager {
    position: sticky;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 20;
}
.ov-pager-bar {
    position: sticky;
    bottom: 0;
    z-index: 20;
}

/* Tıklanabilir Tablo Satırları (Nested grid ve checkbox seçimleri için) */
.ov-clickable-row {
    cursor: pointer;
    user-select: none;
    transition: background 0.12s ease;
}
.ov-clickable-row:hover {
    background: var(--nui-raised-hover) !important;
}
.ov-clickable-row.selected,
.ov-clickable-row.ov-row-selected {
    background: var(--nui-accent-fill) !important;
}

/* Tedarikçi Havuzu (Supplier Pool) düzeni */
.ov-pool-layout {
    display: flex;
    gap: 16px;
    align-items: stretch;
    height: calc(100vh - 130px);
    min-height: 0;
    overflow: hidden;
}

.ov-pool-sidebar {
    width: 220px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow-y: auto;
    padding-right: 4px;
}

.ov-pool-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

/* Fiyat ve Stok Değişim Vurguları */
.ov-diff-new {
    background: color-mix(in srgb, var(--nui-success) 8%, transparent);
    border-color: var(--nui-success);
    color: var(--nui-success);
}

.ov-diff-old {
    background: color-mix(in srgb, var(--nui-danger) 8%, transparent);
    border-color: var(--nui-danger);
    color: var(--nui-danger);
}

/* Satır içi senkronizasyon bandı; çubuk kitin .nui-progress bileşenidir. */
.ov-sync-banner {
    padding: 10px 14px;
    border-radius: var(--nui-radius);
    background: var(--nui-accent-fill);
    border: 1px solid var(--nui-accent-border);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Günlük çalışma alanları: kit sayfa kabı (.nui-page-container) ile birlikte kullanılır; burada yalnız iç boşluk vardır. */
.ov-work-page{padding:12px 16px;display:flex;flex-direction:column;gap:8px}.ov-table-scroll{overflow-x:auto}.ov-work-page small{display:block;color:var(--nui-text-muted)}.ov-work-page pre{white-space:pre-wrap;max-height:300px;overflow:auto}@media print{.nui-sidebar, .nui-statusbar, .nui-workspace-tabs{display:none!important}.ov-work-page{padding:0}}

/* Kit .nui-page-container esnek sütundur; kartlar ve tablo kapları taşma kaydırmasında ezilmesin. */
.nui-page-container.ov-work-page>*, .nui-page-container.ov-dashboard>* {flex-shrink:0}

/* İlan fiyatları ve adetleri küçük alanlarda, ürün adı rahat okunur genişlikte tutulur. */
.ov-hb-page .nui-table td .nui-input { width:110px; }

/* İş ekranları ve pencere içeriği: yazı ve zemin kitten gelir; burada yalnız düzen (flex, grid, boşluk) vardır. */
.ov-ui, .ov-product-detail, .ov-work-page {color:var(--nui-text);box-sizing:border-box;min-width:0}
.ov-ui {padding:20px;display:flex;flex-direction:column;gap:16px}.ov-ui>*, .ov-work-page>* {min-width:0}
.ov-ui h1, .ov-work-page h1 {font-size:calc(var(--nui-font-size-lg) + 3px);line-height:1.3;margin:0}.ov-ui h2, .ov-work-page h2 {font-size:var(--nui-font-size-lg);line-height:1.4;margin:0 0 8px}.ov-ui h3, .ov-work-page h3 {font-size:var(--nui-font-size-base);margin:0 0 8px}
.ov-ui p, .ov-work-page p {margin:0 0 8px;line-height:1.5}.ov-ui small, .ov-work-page small {font-size:var(--nui-font-size-xs);color:var(--nui-text-muted)}
.ov-ui>.nui-button, .ov-work-page>.nui-button {align-self:flex-start}
.ov-ui svg, .ov-work-page svg, .ov-product-detail svg {width:1em;height:1em;flex-shrink:0}
.ov-ui label:has(>.nui-input), .ov-work-page label:has(>.nui-input) {display:flex;flex-direction:column;gap:6px;min-width:0}
.ov-ui label:has(>input[type=checkbox]), .ov-ui label:has(>input[type=radio]), .ov-work-page label:has(>input[type=checkbox]) {display:flex;flex-direction:row;align-items:flex-start;gap:8px}
.ov-ui input[type=checkbox], .ov-ui input[type=radio]{flex-shrink:0;margin-top:3px}
.ov-ui textarea.nui-input, .ov-work-page textarea.nui-input{resize:vertical}
.ov-ui details, .ov-work-page details, .ov-product-detail details {min-width:0;border-radius:var(--nui-radius-sm);background:var(--nui-raised-hover);padding:12px 14px}.ov-ui summary, .ov-work-page summary {cursor:pointer;font-weight:600}.ov-ui details[open]>summary, .ov-work-page details[open]>summary {margin-bottom:12px}
.ov-ui tbody tr:last-child td {border-bottom:0}
.ov-ui pre {font-size:var(--nui-font-size-xs);white-space:pre-wrap;overflow:auto;max-height:300px}.ov-ui-scroll-window{height:100%;overflow:auto;box-sizing:border-box}

/* Ürün merkezi, hem tam sayfada hem küçük pencerede aynı okunur düzeni kullanır. */
.ov-product-detail{padding:20px;display:flex;flex-direction:column;gap:12px;container-type:inline-size}
.ov-product-detail p{line-height:1.55;color:var(--nui-text-muted);margin:8px 0}.ov-product-detail h1{font-size:calc(var(--nui-font-size-lg) + 3px);line-height:1.3}.ov-product-detail h2{font-size:var(--nui-font-size-lg);margin-top:0}.ov-product-detail h3{font-size:var(--nui-font-size-base);margin:0 0 10px}.ov-product-detail small{font-size:var(--nui-font-size-xs);line-height:1.5}.ov-product-detail strong{font-weight:650}
.ov-product-detail>.nui-button{align-self:flex-start}.ov-product-detail textarea{resize:vertical}
.ov-product-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;border-bottom:1px solid var(--nui-border);padding-bottom:12px}.ov-product-title{display:flex;align-items:center;gap:14px;min-width:0}.ov-product-avatar{width:44px;height:44px;border:1px solid var(--nui-border);border-radius:var(--nui-radius);display:flex;align-items:center;justify-content:center;background:var(--nui-bg);color:var(--nui-primary);flex-shrink:0}.ov-product-avatar img{width:100%;height:100%;object-fit:contain;border-radius:var(--nui-radius)}.ov-product-avatar svg{width:24px;height:24px}.ov-product-title h1{margin:0 0 5px}.ov-product-title p{margin:0;font-size:var(--nui-font-size-xs)}
.ov-product-actions{display:flex;gap:6px;flex-wrap:wrap}

.ov-product-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:16px;align-items:start}.ov-product-detail .nui-panel{min-width:0}.ov-product-detail .ov-product-form, .ov-product-detail .ov-card-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ov-product-form label, .ov-card-editor label{display:flex;flex-direction:column;gap:6px;min-width:0}.ov-product-form label:has(textarea), .ov-card-editor>h3, .ov-card-editor>textarea, .ov-card-editor>div{grid-column:1/-1}.ov-product-form>div{grid-column:1/-1}.ov-card-editor label:has(input[type=checkbox]){flex-direction:row;align-items:center;grid-column:1/-1}.ov-product-form .nui-input, .ov-card-editor .nui-input{width:100%}
.ov-product-detail details{margin-top:8px}.ov-product-detail summary{font-weight:600;cursor:pointer}.ov-product-detail details[open]>summary{margin-bottom:10px}.ov-product-detail details .nui-input{margin-top:8px}
.ov-sales-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ov-sales-card{line-height:1.5}.ov-sales-card p{margin:12px 0}.ov-sales-card>div:first-child{flex-wrap:wrap}.ov-product-detail .ov-card-editor{border:2px solid var(--nui-primary)}
.ov-product-vehicles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ov-product-vehicles label{display:flex;flex-direction:column;gap:5px;min-width:0}.ov-product-vehicles .nui-input{width:100%}.ov-product-vehicles .nui-button{align-self:end}.ov-product-detail .ov-product-vehicles input{width:100%}
@container(max-width:740px){.ov-product-overview, .ov-sales-cards{grid-template-columns:1fr}.ov-product-header{flex-direction:column}.ov-product-vehicles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container(max-width:460px){.ov-product-detail .ov-product-form, .ov-product-detail .ov-card-editor, .ov-product-vehicles{grid-template-columns:1fr}.ov-product-form>*, .ov-card-editor>*{grid-column:1/-1}}
@media(max-width:600px){.ov-ui, .ov-work-page, .ov-product-detail {padding:14px}}
.ov-ui-scroll-window>*{flex-shrink:0}

/* Rapor bölümleri kit kartıdır (.nui-card-structured); yalnız taşma ve yazdırma kuralı kalır. */
.ov-report-content{min-width:0}
/* Formların pencere kabuğu ve davranışı NUI Window tarafından sağlanır. */
.ov-window-form{padding:20px;color:var(--nui-text);box-sizing:border-box;min-height:100%}
.ov-window-form h2{margin:0 0 12px}
.ov-window-form label{display:flex;flex-direction:column;gap:6px;min-width:0}.ov-window-form .nui-input{width:100%}
.ov-window-form .ov-product-form, .ov-window-form .ov-card-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ov-window-form .ov-product-form>div, .ov-window-form .ov-product-form label:has(textarea), .ov-window-form .ov-card-editor>h3, .ov-window-form .ov-card-editor>textarea, .ov-window-form .ov-card-editor>div, .ov-window-form .ov-card-editor label:has(input[type=checkbox]){grid-column:1/-1}
.ov-window-form .ov-card-editor label:has(input[type=checkbox]){flex-direction:row}
.ov-window-form .ov-product-form>div:last-child, .ov-window-form .ov-card-editor>div:last-child{position:sticky;bottom:-20px;background:var(--nui-raised);padding:16px 0;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--nui-border)}
/* Pencere içi eylem şeridi kaydırmada altta yapışık kalır; görünüm .nui-form-actions'tan gelir. JS (window-standard.config.js) bunu pencere footer'ına taşır. */
.ov-sticky-footer{position:sticky;bottom:-20px;z-index:2}

@media(max-width:700px){.ov-window-form .ov-product-form, .ov-window-form .ov-card-editor{grid-template-columns:1fr}.ov-window-form{padding:18px}}
@media print{.ov-sticky-tabs {display:none!important}.ov-reports .ov-report-content{display:block!important;box-shadow:none;break-inside:avoid;margin-top:16px}}
@container(max-width:740px){.ov-product-overview{grid-template-columns:1fr}}

/* Katalogda ürün kimliği ve ana eylem dar sütunlarda ezilmez. */
.ov-catalog-filters{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(3,minmax(140px,1fr));gap:12px 16px}
.ov-catalog-filters label{display:flex;flex-direction:column;gap:5px;min-width:0;color:var(--nui-text-muted)}
.ov-catalog-filters .nui-input, .ov-catalog-filters .nui-select, .ov-catalog-filters .nui-clearable-input{width:100%;min-width:0}
.ov-catalog-filter-options{justify-content:flex-start;flex-wrap:wrap;gap:16px}.ov-catalog-filter-options label{display:flex;align-items:center;gap:6px}
.ov-catalog .nui-table td, .ov-catalog .nui-table th{overflow-wrap:normal}
.ov-catalog .nui-table td:nth-child(2) strong, .ov-catalog .nui-table td:nth-child(7)>strong{white-space:nowrap}

@media(max-width:1000px){.ov-catalog-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.ov-catalog-filters{grid-template-columns:1fr}}

/* Ürün fotoğrafları ve ilan takibi NUI yüzey ve boşluk düzenini kullanır. */
.ov-image-failed { color:var(--nui-text-muted); font-size:var(--nui-font-size-sm); }
.ov-image-manager { display:flex; gap:20px; flex-wrap:wrap; }

.ov-detail-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:20px; flex-wrap:wrap; }
.ov-detail-heading h1 { line-height:1.35; margin:8px 0; overflow-wrap:anywhere; }
.ov-detail-heading nui-gallery { max-width:360px; }

.ov-listing-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin:16px 0; }
.ov-listing-table td { vertical-align:middle; }
.ov-window-wide td small { display:block; margin-top:5px; color:var(--nui-text-muted); }
.ov-listing-identity { display:flex; gap:12px; align-items:center; min-width:0; max-width:380px; }
/* Tüm listelerde ürün görseli aynı ölçüdedir: 36 px kare, 8 px köşe; görsel yoksa ikonlu yer tutucu hizayı korur. */
.ov-listing-photo { flex-shrink:0; display:flex; align-items:center; justify-content:center; overflow:hidden; border:1px solid var(--nui-border); background:var(--nui-panel); border-radius:var(--nui-radius-sm); color:var(--nui-text-muted); }
.ov-listing-photo img { width:100%; height:100%; object-fit:contain; }

.ov-hb-page { gap:0; }

.ov-pool-main table.nui-table td:nth-child(3) > .nui-badge { margin-top:6px; }

.ov-ui td small { display:block; margin-top:4px; color:var(--nui-text-muted); }
@media(max-width:1000px) { .ov-pool-sidebar { width:180px; } }

/* Havuz başlığında çekim ana aksiyondur; yardımcı işlemler aynı NUI menüsünde kalır. */
.ov-pool-header { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.ov-pool-heading { flex:1; min-width:260px; }
.ov-pool-header-actions { display:flex; align-items:center; gap:8px; margin-left:auto; flex:0 0 auto; }

/* Başlık ve ürün satırları aynı 44 px seçim sütununu ve aynı merkezlenmiş hedefi kullanır. */
.ov-pool-page .ov-pool-main table.nui-table .ov-pool-select-cell { text-align:center; vertical-align:middle; box-sizing:border-box; }
.ov-pool-select-cell > .ov-grid-checkbox-hit { display:flex; margin:0 auto; }
@media(max-width:760px) { .ov-pool-heading { min-width:0; flex-basis:100%; } .ov-pool-header-actions { width:100%; justify-content:flex-end; } }

/* Çekim farkları NUI gövdesini doldurur; yalnız kayıt alanı kayar. */
.ov-window-form.ov-run-changes-workspace{padding:0;height:100%;min-height:0;overflow:hidden}
.ov-run-changes-content{display:flex;flex-direction:column;height:100%;min-height:0;min-width:0}
.ov-run-changes-list{flex:1;min-height:0;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px}
.ov-run-changes-list>div{flex-shrink:0}
.ov-run-changes-pager{flex-shrink:0;padding:10px 16px;gap:8px;flex-wrap:wrap}
@media(max-width:600px){.ov-run-changes-content>div:not(.ov-run-changes-list){gap:8px;flex-wrap:wrap}.ov-run-changes-list{padding:10px}.ov-run-changes-content input[type=checkbox]{flex-shrink:0}}

/* Havuz filtreleri mevcut tek-seçimli sorgu enumunu açık checkbox gruplarıyla gösterir. */
.ov-pool-filter-choices { display:flex; flex-direction:column; gap:10px; }
.ov-pool-filter-choices fieldset { display:flex; flex-direction:column; gap:8px; min-width:0; padding:0; margin:0; border:0; }
.ov-pool-filter-choices legend { padding:0; margin-bottom:6px; color:var(--nui-text-muted); font-size:var(--nui-font-size-xs); font-weight:600; }
.ov-pool-filter-choices .nui-checkbox { align-items:flex-start; line-height:1.4; }
.ov-pool-filter-choices .nui-checkbox input { margin-top:2px; }
.ov-pool-filter-help { margin:0; color:var(--nui-text-muted); font-size:var(--nui-font-size-xs); line-height:1.4; }

/* İnceleme ve çekim geçmişi aynı sabit başlık/altlık ile olay satırlarını kaydırır. */
.ov-changes-heading { padding:12px 16px; border-bottom:1px solid var(--nui-border); background:var(--nui-panel); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; flex-shrink:0; }
.ov-changes-heading p { flex-basis:100%; margin:0; font-size:var(--nui-font-size-sm); color:var(--nui-text-muted); line-height:1.4; }
.ov-changes-heading .ov-changes-history-notice { color:var(--nui-text); }
.ov-changes-filters { display:flex; gap:6px; padding:8px 16px; border-bottom:1px solid var(--nui-border); flex-shrink:0; overflow-x:auto; }
.ov-changes-filters .nui-button { flex-shrink:0; }
.ov-changes-selection { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:8px 16px; border-bottom:1px solid var(--nui-border); flex-shrink:0; font-size:var(--nui-font-size-sm); }
.ov-change-card { display:flex; align-items:flex-start; gap:10px; padding:10px 12px; border:1px solid var(--nui-border); border-radius:var(--nui-radius-sm); background:var(--nui-raised); font-size:var(--nui-font-size-sm); line-height:1.5; }
.ov-change-card > .nui-checkbox { margin-top:2px; }
.ov-change-card-content { flex:1; min-width:0; overflow-wrap:anywhere; }
.ov-change-card-content p { margin:4px 0; }
.ov-change-card-title { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.ov-change-card-title > span:last-child { color:var(--nui-text-muted); font-size:var(--nui-font-size-xs); }
.ov-change-old-value { text-decoration:line-through; color:var(--nui-text-muted); }
.ov-change-current-value { margin-top:6px; padding-top:6px; border-top:1px solid var(--nui-border); }
.ov-change-reviewed { display:flex; align-items:center; gap:4px; color:var(--nui-text-muted); font-size:var(--nui-font-size-xs); }
.ov-change-row-actions { display:flex; gap:6px; flex-wrap:wrap; flex-shrink:0; }
.ov-changes-footer > span { flex:1; font-size:var(--nui-font-size-xs); color:var(--nui-text-muted); }
@media(max-width:600px) { .ov-change-row-actions { flex-direction:column; } .ov-change-card { flex-wrap:wrap; } .ov-change-card-content { min-width:180px; } }

/* Araç marka logosu görseli (boyutu car-logo.directive.js belirler). */
.ov-car-logo-img {
    display: inline-block;
    vertical-align: middle;
    object-fit: contain;
    flex-shrink: 0;
}

/* Gezinme seçimi daraltma düğmesinin yanında durur. */
.nui-shell .nui-sidebar-brand .ov-workspace-mode { margin-left: auto; }
.nui-shell .nui-sidebar-brand .ov-workspace-mode + .nui-sidebar-toggle { margin-left: 2px; }

/* Bugün yapılacaklar kart başlığı üç noktayla kesilmez, iki satıra sarılır. */
.ov-dashboard-todo .nui-grid-auto-lg { --nui-grid-min: 320px; }
.ov-todo-title { font-weight: 600; color: var(--nui-text); font-size: var(--nui-font-size-base); line-height: 1.35; overflow-wrap: anywhere; }

/* Bildirim paneli: NUI item-group satırları, semantik ikon kutusu, hedef odak etiketi ve hover eylemleri. */
.ov-notification-item { cursor: pointer; align-items: flex-start; position: relative; transition: background .12s, border-color .12s; }
.ov-notification-item:hover, .ov-notification-item:focus-within { background: var(--nui-raised-hover); }
.ov-notification-item.is-unread { background: color-mix(in srgb, var(--nui-primary, #2563eb) 6%, var(--nui-raised)); }
.ov-notification-media { position: relative; margin-top: 2px; }
.ov-notification-media.is-danger { background: color-mix(in srgb, var(--nui-danger, #dc2626) 14%, transparent); color: var(--nui-danger, #dc2626); }
.ov-notification-media.is-warning { background: color-mix(in srgb, var(--nui-warning, #d97706) 16%, transparent); color: var(--nui-warning, #d97706); }
.ov-notification-media.is-info { background: color-mix(in srgb, var(--nui-primary, #2563eb) 12%, transparent); color: var(--nui-primary, #2563eb); }
.ov-notification-dot { position: absolute; top: -2px; right: -2px; width: 8px; height: 8px; border-radius: 999px; background: var(--nui-primary, #2563eb); box-shadow: 0 0 0 2px var(--nui-raised); }
.ov-notification-head { flex-wrap: nowrap; min-width: 0; }
.ov-notification-head .nui-item-title { flex: 1 1 auto; min-width: 0; }
.ov-notification-meta { margin-top: 2px; font-size: var(--nui-font-size-xs); }
.ov-notification-target { color: var(--nui-primary, #2563eb); font-weight: 500; font-size: var(--nui-font-size-xs); }
.ov-notification-actions { align-self: center; }
@media (hover: hover) {
    .ov-notification-item .ov-notification-actions { opacity: 0; pointer-events: none; transition: opacity .12s ease; }
    .ov-notification-item:hover .ov-notification-actions,
    .ov-notification-item:focus-within .ov-notification-actions { opacity: 1; pointer-events: auto; }
}
/* Bildirimden gidilen hedef satır vurgusu */
.ov-row-focused { outline: 2px solid var(--nui-primary, #2563eb); outline-offset: -2px; background: color-mix(in srgb, var(--nui-primary, #2563eb) 8%, transparent) !important; }


