h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

/* ============================================================
   PriceTracker UI Teması
   ============================================================ */
:root {
    --pt-bg: #0f1419;
    --pt-surface: #ffffff;
    --pt-sidebar: #141b24;
    --pt-sidebar-active: #1f6feb;
    --pt-border: #e3e8ef;
    --pt-text: #1a2230;
    --pt-muted: #6b7684;
    --pt-primary: #1f6feb;
    --pt-primary-hover: #1a5fd0;
    --pt-danger: #d92d20;
    --pt-warn: #b54708;
    --pt-ok: #067647;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    color: var(--pt-text);
    background: #f5f7fa;
}

/* Layout */
.pt-layout { display: flex; min-height: 100vh; }

.pt-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.pt-main-full { align-items: center; justify-content: center; }

.pt-content { padding: 1.75rem 2rem; }

/* Sidebar */
.pt-nav {
    width: 240px;
    background: var(--pt-sidebar);
    color: #c9d3e0;
    display: flex;
    flex-direction: column;
    padding: 1.25rem 0.85rem;
    flex-shrink: 0;
}
.pt-brand {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: #fff;
    padding: 0.35rem 0.65rem 1.25rem;
}
.pt-brand-mark { color: var(--pt-primary); }

.pt-nav-items { display: flex; flex-direction: column; gap: 0.15rem; }
.pt-nav-section {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6b7a8d;
    padding: 1rem 0.75rem 0.35rem;
}
.pt-nav-item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.6rem 0.75rem;
    border-radius: 8px;
    color: #c9d3e0;
    text-decoration: none;
    font-size: 0.92rem;
    transition: background 0.12s, color 0.12s;
}
.pt-nav-item:hover { background: rgba(255,255,255,0.06); color: #fff; }
.pt-nav-item.active { background: var(--pt-sidebar-active); color: #fff; }
.pt-nav-icon {
    display: inline-flex;
    width: 20px;
    justify-content: center;
    opacity: 0.85;
    font-size: 0.85rem;
}

/* Topbar */
.pt-topbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
    padding: 0.85rem 2rem;
    background: #fff;
    border-bottom: 1px solid var(--pt-border);
}
.pt-user { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.pt-user-name { font-weight: 600; font-size: 0.9rem; }
.pt-user-role { font-size: 0.75rem; color: var(--pt-muted); }
.pt-logout-form { margin: 0; }
.pt-logout-btn {
    background: transparent;
    border: 1px solid var(--pt-border);
    color: var(--pt-text);
    padding: 0.4rem 0.9rem;
    border-radius: 7px;
    cursor: pointer;
    font-size: 0.85rem;
}
.pt-logout-btn:hover { background: #f0f2f5; }

/* Titles */
.pt-page-title { font-size: 1.5rem; margin: 0 0 1.25rem; }
.pt-muted { color: var(--pt-muted); }

/* Cards */
.pt-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
    margin-bottom: 1.75rem;
}
.pt-card {
    background: #fff;
    border: 1px solid var(--pt-border);
    border-radius: 12px;
    padding: 1.15rem 1.25rem;
}
.pt-card-label { font-size: 0.8rem; color: var(--pt-muted); margin-bottom: 0.4rem; }
.pt-card-value { font-size: 1.9rem; font-weight: 700; }
.pt-card-alert { border-color: #fcdcd7; background: #fef4f2; }
.pt-card-alert .pt-card-value { color: var(--pt-danger); }

/* Panels */
.pt-panel {
    background: #fff;
    border: 1px solid var(--pt-border);
    border-radius: 12px;
    padding: 1.25rem 1.4rem;
    margin-bottom: 1.5rem;
}
.pt-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}
.pt-panel-head h2 { font-size: 1.1rem; margin: 0; }
.pt-grid-2 {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 1.5rem;
    align-items: start;
}
@media (max-width: 900px) { .pt-grid-2 { grid-template-columns: 1fr; } }

/* Tables */
.pt-table { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.pt-table th {
    text-align: left;
    padding: 0.6rem 0.75rem;
    border-bottom: 2px solid var(--pt-border);
    color: var(--pt-muted);
    font-weight: 600;
    white-space: nowrap;
}
.pt-table td {
    padding: 0.65rem 0.75rem;
    border-bottom: 1px solid #eef1f5;
}
.pt-table tbody tr:hover { background: #f9fafb; }
.pt-num { text-align: right; white-space: nowrap; }
.pt-danger { color: var(--pt-danger); font-weight: 600; }
.pt-table code { background: #f0f2f5; padding: 0.1rem 0.4rem; border-radius: 4px; font-size: 0.82rem; }

/* Badges */
.pt-badge {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
}
.pt-badge-ok { background: #e7f6ee; color: var(--pt-ok); }
.pt-badge-warn { background: #fef0e6; color: var(--pt-warn); }
.pt-badge-muted { background: #eef1f5; color: var(--pt-muted); }

/* Links & buttons */
.pt-link { color: var(--pt-primary); text-decoration: none; font-size: 0.85rem; }
.pt-link:hover { text-decoration: underline; }

.pt-btn {
    border: none;
    border-radius: 8px;
    padding: 0.6rem 1.1rem;
    font-size: 0.9rem;
    cursor: pointer;
    font-weight: 600;
}
.pt-btn-primary { background: var(--pt-primary); color: #fff; }
.pt-btn-primary:hover { background: var(--pt-primary-hover); }
.pt-btn-primary:disabled { opacity: 0.6; cursor: default; }
.pt-btn-block { width: 100%; margin-top: 0.5rem; }

/* Row action buttons */
.pt-row-actions { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.pt-btn-sm {
    border: 1px solid var(--pt-border);
    background: #fff;
    color: var(--pt-text);
    border-radius: 6px;
    padding: 0.3rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.pt-btn-sm:hover { background: #f0f2f5; }
.pt-btn-sm.pt-btn-warn { border-color: #f4c9a8; color: var(--pt-warn); background: #fef6ef; }
.pt-btn-sm.pt-btn-warn:hover { background: #fdeada; }
.pt-btn-sm.pt-btn-ok { border-color: #c8ecd6; color: var(--pt-ok); background: #f0faf4; }
.pt-btn-sm.pt-btn-ok:hover { background: #e2f5ea; }

/* Modal */
.pt-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 20, 25, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 1rem;
}
.pt-modal {
    background: #fff;
    border-radius: 14px;
    padding: 1.5rem 1.6rem;
    width: 100%;
    max-width: 420px;
    box-shadow: 0 24px 60px rgba(0,0,0,0.35);
}
.pt-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}
.pt-modal-head h2 { font-size: 1.15rem; margin: 0; }
.pt-modal-close {
    border: none;
    background: transparent;
    font-size: 1.1rem;
    cursor: pointer;
    color: var(--pt-muted);
    line-height: 1;
}
.pt-modal-close:hover { color: var(--pt-text); }
.pt-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    margin-top: 1rem;
}
.pt-modal .pt-field input {
    width: 100%;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--pt-border);
    border-radius: 8px;
    font-size: 0.9rem;
}
.pt-modal .pt-field input:focus { outline: none; border-color: var(--pt-primary); box-shadow: 0 0 0 3px rgba(31,111,235,0.12); }

/* Forms */
.pt-field { display: block; margin-bottom: 0.9rem; }
.pt-field > span { display: block; font-size: 0.82rem; color: var(--pt-muted); margin-bottom: 0.3rem; }
.pt-field input {
    width: 100%;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--pt-border);
    border-radius: 8px;
    font-size: 0.9rem;
}
.pt-field input:focus { outline: none; border-color: var(--pt-primary); box-shadow: 0 0 0 3px rgba(31,111,235,0.12); }

/* Alerts */
.pt-alert { padding: 0.7rem 0.9rem; border-radius: 8px; font-size: 0.85rem; margin-bottom: 0.9rem; }
.pt-alert-error { background: #fef4f2; color: var(--pt-danger); border: 1px solid #fcdcd7; }
.pt-alert-ok { background: #e7f6ee; color: var(--pt-ok); border: 1px solid #c8ecd6; }

.pt-empty { padding: 3rem 1rem; text-align: center; color: var(--pt-muted); }

.yetkisiz-uyari { padding: 2rem; text-align: center; }

/* Login */
.pt-login-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #0f1419 0%, #1a2634 100%);
    padding: 1rem;
}
.pt-login-card {
    background: #fff;
    border-radius: 16px;
    padding: 2.25rem 2rem;
    width: 100%;
    max-width: 380px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.35);
}
.pt-login-brand {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 1.5rem;
    font-weight: 700;
    justify-content: center;
}
.pt-login-brand .pt-brand-mark { color: var(--pt-primary); }
.pt-login-sub { text-align: center; color: var(--pt-muted); font-size: 0.85rem; margin: 0.35rem 0 1.5rem; }
.pt-login-form { margin-top: 0.5rem; }

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}


/* ============================================================
   Marka / Pazaryeri Hiyerarşik Ağaç (Tree View) Stilleri
   ============================================================ */
.pt-tree {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.pt-tree-brand-node {
    border: 1px solid var(--pt-border);
    border-radius: 10px;
    background: #fcfdfe;
    overflow: hidden;
}

.pt-tree-brand-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    background: #f1f5f9;
    cursor: pointer;
    user-select: none;
    transition: background 0.12s;
}
.pt-tree-brand-header:hover {
    background: #e8eef5;
}

.pt-tree-brand-title {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-weight: 700;
    font-size: 0.98rem;
    color: var(--pt-text);
}

.pt-tree-caret {
    display: inline-flex;
    width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    color: var(--pt-primary);
    background: #e0ecff;
    border-radius: 4px;
    font-weight: 700;
}

.pt-tree-brand-children {
    margin: 0.65rem 0.85rem 0.85rem 1.35rem;
    padding-left: 0.95rem;
    border-left: 2px solid #cbd5e1;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.pt-tree-site-node {
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #ffffff;
    overflow: hidden;
}

.pt-tree-site-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0.9rem;
    background: #f8fafc;
    cursor: pointer;
    user-select: none;
    border-bottom: 1px solid transparent;
    transition: background 0.12s;
}
.pt-tree-site-header:hover {
    background: #f1f5f9;
}
.pt-tree-site-header.open {
    border-bottom-color: #e2e8f0;
}

.pt-tree-site-title {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    font-weight: 600;
    font-size: 0.9rem;
}

.pt-tree-branch-glyph {
    color: #94a3b8;
    font-family: Consolas, monospace;
    font-weight: 700;
}

.pt-tree-site-body {
    padding: 0.25rem 0.6rem 0.5rem;
}

.pt-tree-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* ============================================================
   Kompakt tema katmanı (v2)
   ============================================================ */
.pt-content { padding: 1.1rem 1.5rem; }
.pt-nav { width: 210px; padding: 1rem 0.65rem; }
.pt-nav-item { padding: 0.5rem 0.7rem; font-size: 0.88rem; }
.pt-topbar { padding: 0.55rem 1.5rem; }
.pt-panel { padding: 0.95rem 1.1rem; margin-bottom: 1rem; border-radius: 10px; }
.pt-panel-head { margin-bottom: 0.7rem; gap: 0.75rem; }
.pt-panel-head h2 { font-size: 0.98rem; }
.pt-panel-tight { padding: 0.85rem 1rem; }
.pt-panel-flush { padding: 0; overflow: hidden; }
.pt-table th { padding: 0.5rem 0.65rem; font-size: 0.76rem; text-transform: uppercase; letter-spacing: .03em; }
.pt-table td { padding: 0.5rem 0.65rem; }
.pt-small { font-size: 0.8rem; }
.pt-btn-compact { padding: 0.42rem 0.9rem; font-size: 0.85rem; }
a.pt-btn-sm { text-decoration: none; display: inline-flex; align-items: center; }
.pt-btn-sm:disabled { opacity: .5; cursor: default; }

.pt-page-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-bottom: 0.9rem; flex-wrap: wrap; }
.pt-page-head .pt-page-title { margin: 0; font-size: 1.3rem; }
.pt-page-sub { margin: 0.15rem 0 0; color: var(--pt-muted); font-size: 0.85rem; }

/* Dashboard */
.db-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0.65rem; margin-bottom: 1rem; }
.db-kpi { background: #fff; border: 1px solid var(--pt-border); border-radius: 10px; padding: 0.7rem 0.9rem; display: flex; flex-direction: column; gap: 0.15rem; color: inherit; text-decoration: none; transition: border-color .12s, box-shadow .12s; }
a.db-kpi:hover { border-color: #bcd3fb; box-shadow: 0 2px 8px rgba(31,111,235,.08); }
.db-kpi span { font-size: 0.75rem; color: var(--pt-muted); }
.db-kpi strong { font-size: 1.45rem; }
.db-kpi.alert { background: #fef4f2; border-color: #fcdcd7; }
.db-kpi.alert strong { color: var(--pt-danger); }
.db-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: 1rem; }
@media (max-width: 1100px) { .db-grid { grid-template-columns: 1fr; } }
.db-matrix-wrap { overflow-x: auto; }
.db-matrix { border-collapse: separate; border-spacing: 3px; font-size: 0.82rem; width: 100%; }
.db-matrix th { font-weight: 600; color: var(--pt-muted); font-size: 0.74rem; text-align: center; padding: 0.2rem; white-space: nowrap; }
.db-matrix tbody th { text-align: left; }
.db-matrix tbody th a { color: var(--pt-text); text-decoration: none; font-size: 0.85rem; }
.db-matrix td { padding: 0; text-align: center; }
.db-cell { display: block; padding: 0.4rem 0.3rem; border-radius: 6px; color: var(--pt-text); text-decoration: none; font-weight: 600; min-width: 44px; }
.db-cell[data-dark="True"] { color: #fff; }
.db-cell.none { color: #cbd5e1; background: #f8fafc; font-weight: 400; }
.db-health { display: flex; flex-direction: column; }
.db-health-row { display: flex; align-items: center; gap: 0.55rem; padding: 0.42rem 0.1rem; border-bottom: 1px solid #f1f4f8; font-size: 0.85rem; flex-wrap: wrap; }
.db-health-row:last-child { border-bottom: none; }
.db-health-name { font-weight: 600; min-width: 100px; }
.db-health-stats { display: flex; gap: 0.5rem; color: var(--pt-muted); font-size: 0.78rem; flex: 1; }
.db-health-stats .bad { color: var(--pt-danger); font-weight: 600; }
.db-led { width: 9px; height: 9px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
.db-led.ok { background: #16a34a; box-shadow: 0 0 0 3px #dcfce7; }
.db-led.bad { background: #dc2626; box-shadow: 0 0 0 3px #fee2e2; }
.db-led.off { background: #f59e0b; box-shadow: 0 0 0 3px #fef3c7; }
.db-led.idle { background: #cbd5e1; }
.db-deals { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 0.6rem; }
.db-deal { display: flex; gap: 0.65rem; padding: 0.55rem; border: 1px solid var(--pt-border); border-radius: 9px; text-decoration: none; color: inherit; transition: border-color .12s; }
.db-deal:hover { border-color: #bcd3fb; }
.db-deal img, .db-deal .mx-noimg { width: 52px; height: 52px; object-fit: contain; border-radius: 6px; background: #f8fafc; flex-shrink: 0; }
.db-deal-body { min-width: 0; display: flex; flex-direction: column; gap: 0.15rem; }
.db-deal-name { font-size: 0.82rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.db-deal-meta { font-size: 0.74rem; color: var(--pt-muted); }
.db-deal-price { display: flex; align-items: center; gap: 0.4rem; font-size: 0.85rem; }
.db-deal-price strong { color: #16a34a; }
.db-deal-price s { color: var(--pt-muted); font-size: 0.76rem; }

/* Ortak: arama kutusu, çipler */
.mx-query { flex: 1; display: flex; align-items: center; gap: 0.4rem; background: #fff; border: 1px solid var(--pt-border); border-radius: 9px; padding: 0 0.6rem; min-width: 240px; transition: border-color .12s, box-shadow .12s; }
.mx-query:focus-within { border-color: var(--pt-primary); box-shadow: 0 0 0 3px rgba(31,111,235,.12); }
.mx-query input { flex: 1; border: none; outline: none; padding: 0.55rem 0; font-size: 0.92rem; background: transparent; }
.mx-query-icon { color: var(--pt-muted); font-size: 1.05rem; }
.mx-query-clear { border: none; background: #eef1f5; color: var(--pt-muted); border-radius: 50%; width: 20px; height: 20px; font-size: 0.65rem; cursor: pointer; }
.mx-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; }
.mx-chip { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.15rem 0.55rem; border-radius: 999px; font-size: 0.75rem; font-weight: 600; background: #eef1f5; color: #475569; }
.mx-chip-brand { background: #1a2230; color: #fff; }
.mx-chip-olcu { background: #fef3c7; color: #92400e; }
.mx-chip-tip { background: #e0e7ff; color: #3730a3; }
.mx-chip-ozellik { background: #fce7f3; color: #9d174d; }
.mx-chip-model { background: #e0f2fe; color: #075985; }
.mx-chip-barkod { background: #dcfce7; color: #166534; }
.mx-chip-x { border: none; background: transparent; color: var(--pt-muted); cursor: pointer; }
.mx-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.mx-noimg { display: flex; align-items: center; justify-content: center; color: #cbd5e1; background: #f8fafc; }
.mx-empty { text-align: center; padding: 2.5rem 1rem; color: var(--pt-text); }
.mx-empty p { margin: 0.2rem 0; }
.mx-empty-icon { font-size: 2rem; color: #cbd5e1; margin-bottom: 0.4rem; }
.mx-legend { display: flex; flex-wrap: wrap; gap: 0.8rem; font-size: 0.76rem; color: var(--pt-muted); margin-top: 0.3rem; }
.mx-legend i { display: inline-block; width: 10px; height: 3px; border-radius: 2px; margin-right: 0.3rem; vertical-align: middle; }
.mx-chart { width: 100%; height: auto; display: block; }

/* Eşleştirme sayfası */
.mx-shell { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 1rem; align-items: start; }
@media (max-width: 1000px) { .mx-shell { grid-template-columns: 1fr; } }
.mx-side { background: #fff; border: 1px solid var(--pt-border); border-radius: 10px; position: sticky; top: 0.75rem; max-height: calc(100vh - 6rem); display: flex; flex-direction: column; overflow: hidden; }
.mx-side-head { display: flex; justify-content: space-between; align-items: center; padding: 0.7rem 0.8rem 0.5rem; }
.mx-side-search { margin: 0 0.8rem 0.5rem; padding: 0.4rem 0.6rem; border: 1px solid var(--pt-border); border-radius: 7px; font-size: 0.82rem; }
.mx-side-list { overflow-y: auto; padding: 0 0.4rem 0.5rem; }
.mx-side-empty { font-size: 0.82rem; padding: 0.5rem; }
.mx-group { display: flex; flex-direction: column; gap: 0.15rem; width: 100%; text-align: left; border: none; background: transparent; padding: 0.5rem 0.55rem; border-radius: 7px; cursor: pointer; color: inherit; }
.mx-group:hover { background: #f4f6f9; }
.mx-group.active { background: #e8f0fe; }
.mx-group-name { font-size: 0.85rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mx-group-meta { font-size: 0.72rem; color: var(--pt-muted); display: flex; gap: 0.3rem; flex-wrap: wrap; }
.mx-group-price { color: #16a34a; font-weight: 600; margin-left: auto; }
.mx-main { min-width: 0; }
.mx-editor { display: flex; flex-direction: column; gap: 0.7rem; }
.mx-searchbar { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.mx-brand, .ct-bar select { padding: 0.5rem 0.6rem; border: 1px solid var(--pt-border); border-radius: 9px; font-size: 0.88rem; background: #fff; font-weight: 600; }
.mx-ref { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; font-size: 0.83rem; background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 8px; padding: 0.4rem 0.6rem; }
.mx-parse { min-height: 1.6rem; }
.mx-hint { font-size: 0.8rem; }
.mx-statusbar { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; border-top: 1px solid #f1f4f8; padding-top: 0.6rem; }
.mx-tabs { display: inline-flex; background: #f1f4f8; border-radius: 8px; padding: 2px; }
.mx-tabs button { border: none; background: transparent; padding: 0.3rem 0.7rem; border-radius: 6px; font-size: 0.8rem; cursor: pointer; color: var(--pt-muted); font-weight: 600; }
.mx-tabs button.on { background: #fff; color: var(--pt-text); box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.mx-tabs b { margin-left: 0.2rem; color: var(--pt-primary); }
.mx-coverage { font-size: 0.78rem; flex: 1; }
.mx-matrix { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0.65rem; }
.mx-col { background: #f8fafc; border: 1px solid #e8edf3; border-radius: 9px; padding: 0.45rem; display: flex; flex-direction: column; gap: 0.4rem; }
.mx-col.picked { border-color: #93b8f7; background: #f5f9ff; }
.mx-col.empty { opacity: .65; }
.mx-col-head { display: flex; align-items: center; gap: 0.4rem; font-size: 0.85rem; padding: 0.1rem 0.2rem; }
.mx-col-count { margin-left: auto; font-size: 0.72rem; color: var(--pt-muted); background: #fff; border-radius: 999px; padding: 0.05rem 0.45rem; border: 1px solid #e8edf3; }
.mx-col-empty { font-size: 0.78rem; color: var(--pt-muted); padding: 0.8rem 0.3rem; text-align: center; }
.mx-card { background: #fff; border: 1.5px solid #e8edf3; border-radius: 8px; padding: 0.45rem; cursor: pointer; transition: border-color .1s, box-shadow .1s; position: relative; }
.mx-card:hover { border-color: #bcd3fb; }
.mx-card.sel { border-color: var(--pt-primary); box-shadow: 0 0 0 3px rgba(31,111,235,.12); }
.mx-card.sel::after { content: "✓"; position: absolute; top: -7px; left: -7px; width: 18px; height: 18px; border-radius: 50%; background: var(--pt-primary); color: #fff; font-size: 0.7rem; display: flex; align-items: center; justify-content: center; }
.mx-card-top { display: flex; gap: 0.5rem; }
.mx-card-top img, .mx-card-top .mx-noimg { width: 44px; height: 44px; object-fit: contain; border-radius: 5px; background: #f8fafc; flex-shrink: 0; }
.mx-card-body { flex: 1; min-width: 0; }
.mx-card-name { font-size: 0.79rem; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mx-card-price { display: flex; gap: 0.35rem; align-items: baseline; margin-top: 0.15rem; font-size: 0.85rem; }
.mx-card-price s, .mx-compare-price s { color: var(--pt-muted); font-size: 0.74rem; }
.mx-score { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.78rem; font-weight: 700; flex-shrink: 0; }
.mx-score.s-exact { background: #16a34a; color: #fff; }
.mx-score.s-strong { background: #dcfce7; color: #166534; }
.mx-score.s-review { background: #fef3c7; color: #92400e; }
.mx-score.s-weak { background: #f1f5f9; color: #64748b; }
.mx-signals { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-top: 0.35rem; align-items: center; }
.mx-sig { font-size: 0.68rem; padding: 0.05rem 0.4rem; border-radius: 4px; }
.mx-sig.ok { background: #f0fdf4; color: #166534; }
.mx-sig.mid { background: #fffbeb; color: #92400e; }
.mx-sig.bad { background: #fef2f2; color: #991b1b; }
.mx-open { margin-left: auto; font-size: 0.8rem; color: var(--pt-muted); text-decoration: none; padding: 0 0.2rem; }
.mx-open:hover { color: var(--pt-primary); }
.mx-more { border: none; background: transparent; color: var(--pt-primary); font-size: 0.78rem; cursor: pointer; padding: 0.2rem; font-weight: 600; }
.mx-savebar { position: sticky; bottom: 0.75rem; display: flex; align-items: center; gap: 0.6rem; background: #1a2230; color: #fff; border-radius: 11px; padding: 0.55rem 0.6rem 0.55rem 1rem; box-shadow: 0 10px 30px rgba(15,20,25,.25); flex-wrap: wrap; z-index: 5; }
.mx-savebar .pt-muted { color: #94a3b8; }
.mx-savebar-info { display: flex; gap: 0.4rem; align-items: center; flex: 1; flex-wrap: wrap; font-size: 0.85rem; }
.mx-savebar-name { padding: 0.45rem 0.6rem; border-radius: 7px; border: 1px solid #334155; background: #0f1419; color: #fff; min-width: 240px; font-size: 0.85rem; }
.mx-warn { background: #f59e0b; color: #1a2230; padding: 0.1rem 0.5rem; border-radius: 5px; font-size: 0.75rem; font-weight: 600; }
.mx-warn-soft { background: #334155; color: #e2e8f0; }
.mx-detail-head { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; margin-bottom: 0.75rem; }
.mx-detail-head h2 { margin: 0 0 0.35rem; font-size: 1.1rem; }
.mx-inline-confirm { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; }
.mx-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem; margin-bottom: 0.85rem; }
@media (max-width: 800px) { .mx-kpis { grid-template-columns: repeat(2, 1fr); } }
.mx-kpi { background: #f8fafc; border-radius: 8px; padding: 0.5rem 0.7rem; display: flex; flex-direction: column; }
.mx-kpi span { font-size: 0.72rem; color: var(--pt-muted); }
.mx-kpi strong { font-size: 1.1rem; }
.mx-kpi strong.ok { color: #16a34a; }
.mx-kpi strong.warn { color: var(--pt-warn); }
.mx-kpi small { font-size: 0.72rem; color: var(--pt-muted); }
.mx-compare { display: flex; flex-direction: column; gap: 0.2rem; margin-bottom: 0.9rem; }
.mx-compare-row { display: grid; grid-template-columns: 150px minmax(120px, 1fr) 120px minmax(0, 1.4fr); gap: 0.7rem; align-items: center; padding: 0.35rem 0.25rem; border-bottom: 1px solid #f4f6f9; font-size: 0.84rem; }
.mx-compare-site { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.mx-compare-bar { position: relative; height: 12px; background: #f1f4f8; border-radius: 6px; overflow: hidden; }
.mx-bar, .mx-bar-ghost { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 6px; }
.mx-bar-ghost { background: #dbe3ec; }
.mx-compare-price { text-align: right; display: flex; flex-direction: column; line-height: 1.15; }
.mx-compare-name { min-width: 0; display: flex; gap: 0.4rem; align-items: center; }
.mx-compare-name a { color: var(--pt-text); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 0.8rem; }
.mx-compare-name a:hover { color: var(--pt-primary); }
.mx-section-title { font-size: 0.78rem; font-weight: 700; color: var(--pt-muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 0.35rem; }

/* Katalog */
.ct-bar { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; margin-bottom: 0.6rem; }
.ct-bar select { font-weight: 500; max-width: 230px; }
.ct-toggle { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.84rem; background: #fff; border: 1px solid var(--pt-border); border-radius: 9px; padding: 0.45rem 0.65rem; cursor: pointer; }
.ct-sites { display: flex; gap: 0.35rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.ct-site { display: inline-flex; align-items: center; gap: 0.35rem; border: 1px solid var(--pt-border); background: #fff; border-radius: 999px; padding: 0.25rem 0.7rem; font-size: 0.8rem; cursor: pointer; color: var(--pt-text); }
.ct-site b { color: var(--pt-muted); font-weight: 600; }
.ct-site.on { background: #1a2230; color: #fff; border-color: #1a2230; }
.ct-site.on b { color: #94a3b8; }
.ct-table td { vertical-align: middle; }
.ct-thumb { width: 36px; height: 36px; object-fit: contain; border-radius: 5px; background: #f8fafc; display: flex; }
.ct-name { max-width: 460px; }
.ct-name a { color: var(--pt-text); text-decoration: none; font-weight: 600; font-size: 0.85rem; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ct-name a:hover { color: var(--pt-primary); }
.ct-sub { display: flex; gap: 0.3rem; align-items: center; font-size: 0.74rem; color: var(--pt-muted); margin-top: 0.1rem; flex-wrap: wrap; }
.ct-cart { color: #16a34a; }
.ct-old { font-size: 0.72rem; color: var(--pt-muted); }
.ct-oos { opacity: .6; }
.ct-open { background: #f5f9ff; }
.ct-detail td { background: #fafcff; padding: 0.75rem 1rem; }
.ct-detail-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(220px, 1fr); gap: 1rem; }
.ct-hist { display: flex; flex-direction: column; font-size: 0.8rem; }
.ct-hist-row { display: grid; grid-template-columns: 80px 1fr 1fr 70px; gap: 0.4rem; padding: 0.25rem 0; border-bottom: 1px solid #eef1f5; }
.ct-hist-row.sus { color: var(--pt-danger); }
.ct-more { padding: 0.6rem; text-align: center; border-top: 1px solid #eef1f5; }

/* AI eşleştirme */
.mx-ai-btn { background: linear-gradient(135deg, #6d28d9, #2563eb); color: #fff; border-color: transparent; }
.mx-ai-btn:hover { filter: brightness(1.08); background: linear-gradient(135deg, #6d28d9, #2563eb); }
.mx-ai-stats { display: flex; flex-wrap: wrap; gap: 0.9rem; font-size: 0.76rem; color: var(--pt-muted); background: #faf8ff; border: 1px solid #ede9fe; border-radius: 8px; padding: 0.4rem 0.7rem; }
.mx-ai-stats b { color: var(--pt-text); }
.mx-ai-msg { color: #6d28d9; font-weight: 600; }
.mx-verdict { display: flex; align-items: center; gap: 0.3rem; margin-top: 0.35rem; padding-top: 0.35rem; border-top: 1px dashed #eef1f5; }
.mx-verdict-tag { font-size: 0.68rem; font-weight: 700; padding: 0.05rem 0.4rem; border-radius: 4px; white-space: nowrap; }
.v-kural_kabul, .v-kullanici_kabul { background: #dcfce7; color: #166534; }
.v-ai_kabul { background: #ede9fe; color: #5b21b6; }
.v-ai_red, .v-kural_red, .v-kullanici_red { background: #f1f5f9; color: #64748b; }
.v-belirsiz { background: #fef3c7; color: #92400e; }
.mx-verdict-why { font-size: 0.68rem; color: var(--pt-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1; min-width: 0; }
.mx-vbtn { margin-left: auto; border: 1px solid var(--pt-border); background: #fff; width: 22px; height: 22px; border-radius: 5px; font-size: 0.7rem; cursor: pointer; padding: 0; }
.mx-vbtn + .mx-vbtn { margin-left: 0; }
.mx-vbtn.ok:hover { background: #dcfce7; color: #166534; }
.mx-vbtn.bad:hover { background: #fee2e2; color: #991b1b; }