/* Merkezi tema köprüsü: eski bileşen değişkenleri kullanıcı tema ayarlarıyla
   aynı kaynağı kullanır. Modüller kendi sabit renklerini bıraktığında bile
   kurumsal vurgu, yüzey, yazı ve kenar renkleri tutarlı kalır. */
:root {
    --opal-bg: #eef3f8;
    --opal-panel: #ffffff;
    --opal-panel-soft: #f8fbff;
    --opal-text: #152033;
    --opal-muted: #667085;
    --opal-border: #dce6f2;
    --bg: var(--opal-bg);
    --panel: var(--opal-panel);
    --panel2: var(--opal-panel-soft);
    --text: var(--opal-text);
    --muted: var(--opal-muted);
    --line: var(--opal-border);
    --brand: var(--opal-primary, #1479db);
    --brand2: var(--opal-primary-strong, #0c5fc0);
    --soft: var(--opal-primary-soft, #e9f3ff);
    --surface: var(--opal-panel);
    --surface-soft: var(--opal-panel-soft);
    --primary: var(--opal-primary, #1479db);
    --primary-dark: var(--opal-primary-strong, #0c5fc0);
    --accent: var(--opal-primary, #1479db);
    --border-color: var(--opal-border);
    --text-muted: var(--opal-muted);
    --surface: var(--opal-panel);
}

html[data-theme="dark"] {
    --opal-bg: #101827;
    --opal-panel: #172033;
    --opal-panel-soft: #1d2940;
    --opal-text: #eef5ff;
    --opal-muted: #a7b4c8;
    --opal-border: #2a3a55;
    --opal-primary-soft: color-mix(in srgb, var(--opal-primary, #1479db) 24%, #172033) !important;
    --soft: var(--opal-primary-soft) !important;
}

html[data-theme="dark"] body .btn.ghost {
    color: var(--text) !important;
    background: var(--panel2) !important;
    border-color: var(--line) !important;
}
html[data-theme="dark"] body .opal-data-table td { color: var(--text); }
html[data-radius="sharp"] body :is(.opal-data-table tr, .opal-datatable, .opal-table-scroll, .workorder-panel-card) { border-radius: 0 !important; }

html, body { font-family: var(--opal-font-family, inherit); font-size: var(--opal-base-font-size, 14px); }
body, button, input, select, textarea { font-weight: var(--opal-font-weight, 400); }
button, input, select, textarea { border-radius: var(--input-radius, var(--radius-control, 10px)); }
.btn, .search-button, .search-icon-submit, .topbar-icon-button { border-radius: var(--button-radius, var(--radius-control, 10px)); }
.page-card, .inner-card, .opal-table-card, .kanban-card, .stat-card, .company-card, .modal-card { border-radius: var(--card-radius, var(--radius-card, 12px)); }
.modal-shell { direction: inherit; }

/* Modül stillerindeki eski beyaz/sabit yüzeyleri tema yüzeyine bağla.  Bu
   katman en sonda yüklendiği için yeni ve eski WS ekranları aynı değerleri
   kullanır; durum renkleri (success/warn/danger) özellikle ezilmez. */
.opal-topbar, .page-card, .page-card-head, .page-card-body,
.inner-card, .opal-table-card, .opal-data-table, .opal-global-table,
.company-card, .stat-card, .kanban-card, .modal-card, .modal-head,
.modal-body, .modal-foot, .settings-hub-card, .settings-hub-head,
.settings-hub-content, .settings-hub-foot, .table-toolbar, .inner-head {
    color: var(--text);
}
.page-card, .inner-card, .opal-table-card, .opal-data-table,
.opal-global-table, .company-card, .stat-card, .kanban-card,
.modal-card, .settings-hub-card { background-color: var(--panel); border-color: var(--line); }
.page-card-head, .page-card-body, .table-toolbar, .inner-head,
.modal-head, .modal-body, .modal-foot, .settings-hub-head,
.settings-hub-content, .settings-hub-foot { background-color: var(--panel); border-color: var(--line); }
input, select, textarea, .form-control, .field-input, .search-input,
.opal-table-search input, .global-search { background-color: var(--panel); color: var(--text); border-color: var(--line); }
input::placeholder, textarea::placeholder { color: var(--muted); }
.btn-primary, .btn-brand, .btn-accent, .search-icon-submit,
[data-theme-primary], .is-primary { background: var(--brand); border-color: var(--brand); }
html[data-theme="dark"] .opal-topbar,
html[data-theme="dark"] .opal-footer,
html[data-theme="dark"] .modal-shell .modal-card,
html[data-theme="dark"] .settings-hub-nav { background-color: var(--panel); color: var(--text); }
html[data-theme="dark"] .modal-shell,
html[data-theme="dark"] .opal-overlay { background-color: rgba(2, 8, 23, .72); }

/* Operasyon, PTS ve belge önizlemeleri de aynı yüzey/tipografi kaynağını
   kullanır. Durum renkleri (success/warn/danger) özel anlamını korur. */
.operation-hero, .operation-status-card, .operation-panel,
.operation-modal-card, .operation-entity-strip, .operation-modal-foot,
.operation-pdf-preview, .service-form-document, .pts-app,
.pts-app-install-gate-card, .pts-app-splash-card {
    background-color: var(--panel);
    color: var(--text);
    border-color: var(--line);
}
.operation-panel-head, .operation-panel-body, .operation-log-item,
.operation-result-list p, .operation-token-line, .service-form-document section,
.pts-app-status-card, .pts-app-mini-grid article {
    background-color: var(--panel);
    color: var(--text);
    border-color: var(--line);
}
.operation-hero p, .operation-status-card span, .operation-entity-strip,
.operation-log-item small, .service-form-document header span,
.service-form-document footer, .pts-app-privacy, .pts-app-status-card p,
.pts-app-mini-grid article small { color: var(--muted); }
.operation-demo-table th, .operation-demo-table td,
.service-form-document header, .service-form-document section { border-color: var(--line); }
.operation-demo-table th, .operation-entity-strip { background-color: var(--panel-soft); }
.opal-operation-form input, .opal-operation-form select, .opal-operation-form textarea,
.signature-pad-wrap, .operation-action-menu { background-color: var(--panel); color: var(--text); border-color: var(--line); }

/* Shared typography also covers legacy/global forms outside #opalApp.
   Icons and printable documents deliberately retain their own font metrics. */
@media screen {
html[data-font-size] { font-size: var(--opal-base-font-size, 14px); }
html[data-font-family] body :is(input, select, textarea, button, label, table, p, h1, h2, h3, h4, small, strong, b) {
    font-family: var(--opal-font-family, Arial, sans-serif) !important;
}
html[data-font-size] body :is(input, select, textarea, .btn, label, td, .modal-body, .enterprise-modal-body, .settings-panel) {
    font-size: var(--opal-base-font-size, 14px) !important;
}
html[data-font-size] body :is(small, .muted, .eyebrow, .modal-kicker, th, label > span) {
    font-size: calc(var(--opal-base-font-size, 14px) * .86) !important;
}
html[data-font-size] body :is(h1, .page-title) { font-size: calc(var(--opal-base-font-size, 14px) * 1.7) !important; }
html[data-font-size] body h2 { font-size: calc(var(--opal-base-font-size, 14px) * 1.45) !important; }
html[data-font-size] body :is(h3, h4) { font-size: calc(var(--opal-base-font-size, 14px) * 1.15) !important; }
html[data-font-weight] body :is(input, select, textarea, td, p, small) { font-weight: var(--opal-weight-regular, 400) !important; }
html[data-font-weight] body :is(label, button, th) { font-weight: var(--opal-weight-medium, 500) !important; }
html[data-font-weight] body :is(strong, b, h1, h2, h3, h4, .eyebrow, .modal-kicker) { font-weight: var(--opal-weight-bold, 700) !important; }
}

/* Arabic layout: fixed sidebar, main area, floating menus and tabular text
   are mirrored without changing stored data or document directions. */
html[dir="rtl"] { direction: rtl; }
html[dir="rtl"] body { text-align: right; }
html[dir="rtl"] .opal-sidebar { left: auto; right: 0; border-right: 0; border-left: 1px solid var(--line); }
html[dir="rtl"] .opal-main { margin-left: 0; margin-right: var(--sidebar); }
html[dir="rtl"] .sidebar-collapsed .opal-main { margin-left: 0; margin-right: var(--sidebar-collapsed); }
html[dir="rtl"] .opal-footer { left: 0; right: var(--sidebar); }
html[dir="rtl"] .sidebar-collapsed .opal-footer { left: 0; right: var(--sidebar-collapsed); }
html[dir="rtl"] .opal-topbar,
html[dir="rtl"] .page-card-head,
html[dir="rtl"] .table-toolbar,
html[dir="rtl"] .inner-head { direction: rtl; }
html[dir="rtl"] .profile-grid-menu,
html[dir="rtl"] .notification-dropdown { right: auto; left: 0; }
html[dir="rtl"] .head-actions { justify-content: flex-start; }
html[dir="rtl"] .opal-table th,
html[dir="rtl"] .opal-table td,
html[dir="rtl"] .opal-global-table th,
html[dir="rtl"] .opal-global-table td { text-align: right; }
html[dir="rtl"] .opal-table td:first-child { border-left: 0; border-right: 1px solid var(--line); border-radius: 0 var(--radius-card) var(--radius-card) 0; }
html[dir="rtl"] .opal-table td:last-child { border-right: 0; border-left: 1px solid var(--line); border-radius: var(--radius-card) 0 0 var(--radius-card); }
html[dir="rtl"] .search-input-wrap input,
html[dir="rtl"] input,
html[dir="rtl"] select,
html[dir="rtl"] textarea { text-align: right; }
html[dir="rtl"] .global-search-autocomplete,
html[dir="rtl"] .enterprise-search-results { text-align: right; }

@media (max-width: 820px) {
    html[dir="rtl"] .opal-sidebar { right: 0; left: auto; transform: translateX(110%); }
    html[dir="rtl"] .sidebar-open .opal-sidebar { transform: translateX(0); }
    html[dir="rtl"] .opal-main,
    html[dir="rtl"] .sidebar-collapsed .opal-main { margin-left: 0; margin-right: 0; }
    html[dir="rtl"] .opal-footer,
    html[dir="rtl"] .sidebar-collapsed .opal-footer { left: 0; right: 0; }
    html[dir="rtl"] .profile-grid-menu,
    html[dir="rtl"] .notification-dropdown { left: 10px; right: 10px; }
}
