/* Master Data page: category tree, relationship links, mobile cards and editor details.
   Carried over from the old stylesheet and recoloured with the shared ui.css palette. */
.master-edit { display: inline-grid; place-items: center; min-width: 30px; min-height: 30px; border: 1px solid #B8C4D6; border-radius: 7px; background: var(--ui-blue-soft); color: var(--ui-blue); padding: 3px; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
.master-edit i { font-size: 16px; }
.master-edit:hover, .master-edit:focus-visible { border-color: var(--ui-blue); background: var(--ui-blue-soft); }
.category-tree { display: grid; gap: 9px; margin-bottom: 24px; }
.category-tree-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 2px 8px; }
.category-tree-heading > div:first-child { display: grid; gap: 3px; }
.category-tree-heading strong { color: var(--ui-ink); font-size: 15px; }
.category-tree-heading span { color: var(--ui-muted); font-size: 12px; }
.category-tree-controls { display: flex; gap: 7px; }
.category-tree-controls button { border: 1px solid #B8C4D6; border-radius: 7px; background: var(--ui-panel); color: var(--ui-blue); padding: 7px 10px; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.category-tree-controls button:hover, .category-tree-controls button:focus-visible { border-color: var(--ui-blue); background: var(--ui-blue-soft); }
.category-node { overflow: hidden; border: 1px solid var(--ui-line); border-radius: 9px; background: var(--ui-panel); box-shadow: 0 2px 8px rgba(28,57,94,.025); }
.category-node.expanded { border-color: #B8C4D6; box-shadow: 0 3px 12px rgba(15,77,160,.055); }
.category-node-head { display: flex; align-items: center; gap: 8px; padding: 6px 11px; }
.category-node.expanded .category-node-head { background: var(--ui-tint); }
.category-node-toggle { display: flex; align-items: center; gap: 11px; flex: 1; min-width: 0; border: 0; background: transparent; color: var(--ui-ink); padding: 3px 0; text-align: left; cursor: pointer; font: inherit; }
.category-node-toggle > i { flex: none; color: var(--ui-muted); font-size: 16px; }
.category-node-icon { display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 7px; color: var(--ui-blue); background: var(--ui-blue-soft); font-size: 17px; }
.category-node-title { display: grid; gap: 2px; min-width: 0; }
.category-node-title strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.category-node-title small { color: var(--ui-muted); font-size: 11px; }
.category-node-count { flex: none; margin-left: auto; padding: 5px 8px; border-radius: 6px; background: var(--ui-blue-soft); color: var(--ui-blue) !important; font-size: 11px !important; font-weight: 700; }
.category-node-edit { flex: none; }
.category-children { border-top: 1px solid var(--ui-line); margin-left: 22px; border-left: 2px solid #B8C4D6; }
.category-children-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 47px; padding: 6px 13px 6px 19px; color: var(--ui-muted); font-size: 12px; }
.category-children-top button { display: inline-flex; align-items: center; gap: 5px; flex: none; border: 1px solid #B8C4D6; border-radius: 7px; padding: 6px 9px; background: var(--ui-blue-soft); color: var(--ui-blue); font: inherit; font-size: 12px; font-weight: 750; cursor: pointer; }
.category-children-top button:hover, .category-children-top button:focus-visible { background: var(--ui-blue-soft); border-color: var(--ui-blue); }
.category-child-list { display: grid; }
.category-child-row { display: grid; grid-template-columns: 15px minmax(160px, 1.4fr) minmax(140px, 1fr) 30px; align-items: center; gap: 12px; min-height: 43px; padding: 6px 13px 6px 19px; border-top: 1px solid var(--ui-tint); color: var(--ui-ink); font-size: 12px; }
.category-child-branch { width: 13px; height: 14px; border-left: 1px solid #B8C4D6; border-bottom: 1px solid #B8C4D6; border-radius: 0 0 0 4px; align-self: start; margin-top: 2px; }
.category-child-main { display: flex; align-items: baseline; gap: 11px; min-width: 0; }
.category-child-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 650; }
.category-child-main small { color: var(--ui-muted); font-size: 11px; }
.category-child-arabic { color: var(--ui-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.category-children-empty, .category-tree-empty { padding: 18px 20px; color: var(--ui-muted); font-size: 13px; }
.category-children-empty { border-top: 1px solid var(--ui-tint); }
.relationship-explorer { display: grid; gap: 9px; margin: 13px 0 24px; }
.relationship-explorer-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 3px 2px 8px; }
.relationship-explorer-heading > div:first-child { display: grid; gap: 3px; }
.relationship-explorer-heading strong { color: var(--ui-ink); font-size: 15px; }
.relationship-explorer-heading span { color: var(--ui-muted); font-size: 12px; }
.relationship-view-switch { display: flex; gap: 3px; padding: 3px; border: 1px solid var(--ui-line); border-radius: 8px; background: var(--ui-tint); }
.relationship-view-switch button { display: inline-flex; align-items: center; gap: 6px; border: 0; border-radius: 6px; padding: 7px 11px; background: transparent; color: var(--ui-muted); font: inherit; font-size: 12px; font-weight: 700; white-space: nowrap; cursor: pointer; }
.relationship-view-switch button.active { background: var(--ui-panel); color: var(--ui-blue); box-shadow: 0 1px 5px rgba(30,62,103,.12); }
.relationship-parent { overflow: hidden; border: 1px solid var(--ui-line); border-radius: 9px; background: var(--ui-panel); }
.relationship-parent[open] { border-color: #B8C4D6; box-shadow: 0 3px 11px rgba(23,72,132,.055); }
.relationship-parent > summary, .relationship-branch > summary { display: flex; align-items: center; gap: 10px; cursor: pointer; list-style: none; }
.relationship-parent > summary::-webkit-details-marker, .relationship-branch > summary::-webkit-details-marker { display: none; }
.relationship-parent > summary { min-height: 61px; padding: 9px 14px; }
.relationship-parent[open] > summary { background: var(--ui-tint); border-bottom: 1px solid var(--ui-line); }
.relationship-summary-icon { display: grid; place-items: center; flex: none; width: 33px; height: 33px; border-radius: 8px; background: var(--ui-blue-soft); color: var(--ui-blue); font-size: 18px; }
.relationship-summary-name { display: grid; gap: 2px; min-width: 0; }
.relationship-summary-name strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ui-ink); font-size: 13px; }
.relationship-summary-name small { color: var(--ui-muted); font-size: 11px; }
.relationship-summary-count { margin-left: auto; color: var(--ui-ink-2); font-size: 12px; white-space: nowrap; }
.relationship-pending { padding: 4px 7px; border-radius: 5px; background: var(--ui-warn-soft); color: var(--ui-warn); font-size: 11px; font-weight: 700; white-space: nowrap; }
.relationship-caret { flex: none; color: var(--ui-muted); font-size: 15px; transition: transform .15s; }
.relationship-parent:not([open]) > summary .relationship-caret, .relationship-branch:not([open]) > summary .relationship-caret { transform: rotate(-90deg); }
.relationship-parent-body { display: grid; gap: 7px; padding: 9px 12px 12px 25px; border-left: 2px solid #B8C4D6; margin-left: 29px; }
.relationship-branch { border: 1px solid var(--ui-line); border-radius: 7px; background: var(--ui-panel); overflow: hidden; }
.relationship-branch > summary { min-height: 42px; padding: 7px 11px; color: var(--ui-ink); }
.relationship-branch[open] > summary { background: var(--ui-tint); border-bottom: 1px solid var(--ui-line); }
.relationship-branch > summary > i:first-child { color: var(--ui-blue); font-size: 17px; }
.relationship-branch > summary strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.relationship-branch > summary span { margin-left: auto; color: var(--ui-muted); font-size: 11px; white-space: nowrap; }
.relationship-branch > summary em { color: var(--ui-warn); font-size: 11px; font-style: normal; white-space: nowrap; }
.relationship-branch-body { padding: 4px 9px 8px 17px; border-left: 2px solid var(--ui-line); margin-left: 17px; }
.relationship-cluster { margin: 6px 0; border: 1px solid var(--ui-line); border-radius: 7px; overflow: hidden; }
.relationship-cluster-head { display: flex; align-items: center; gap: 8px; min-height: 36px; padding: 6px 10px; background: var(--ui-tint); color: var(--ui-ink-2); }
.relationship-cluster-head i { color: var(--ui-blue); font-size: 15px; }
.relationship-cluster-head strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.relationship-cluster-head span { margin-left: auto; color: var(--ui-muted); font-size: 11px; white-space: nowrap; }
.relationship-link-row { display: grid; grid-template-columns: minmax(145px,1.2fr) 94px minmax(125px,1.4fr) auto; align-items: center; gap: 12px; min-height: 49px; padding: 7px 10px; border-top: 1px solid var(--ui-tint); }
.relationship-link-main { display: grid; gap: 2px; min-width: 0; }
.relationship-link-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ui-ink); font-size: 12px; }
.relationship-link-main small { color: var(--ui-muted); font-size: 10px; }
.relationship-link-state { width: fit-content; padding: 4px 6px; border-radius: 5px; font-size: 10px; font-weight: 700; white-space: nowrap; }
.relationship-link-state.review { background: var(--ui-warn-soft); color: var(--ui-warn); }
.relationship-link-state.matched { background: var(--ui-ok-soft); color: var(--ui-ok); }
.relationship-link-issue { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ui-muted); font-size: 11px; }
.relationship-link-actions { display: flex; gap: 6px; }
.relationship-link-actions button { display: grid; place-items: center; min-width: 28px; height: 28px; border: 1px solid #B8C4D6; border-radius: 6px; background: var(--ui-panel); color: var(--ui-blue); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.relationship-link-actions button i { font-size: 15px; }
.relationship-link-actions .relationship-approve { padding: 0 8px; }
.relationship-link-actions button:disabled { opacity: .48; cursor: not-allowed; }
.relationship-empty { padding: 25px; border: 1px dashed #B8C4D6; border-radius: 8px; color: var(--ui-muted); text-align: center; font-size: 13px; }
@media (max-width: 1000px) {
    .relationship-link-row { grid-template-columns: minmax(120px,1fr) auto auto; }
    .relationship-link-issue { display: none; }
}
@media (max-width: 700px) {
    .relationship-explorer-heading { align-items: stretch; flex-direction: column; }
    .relationship-view-switch { align-self: flex-start; }
    .relationship-parent > summary { gap: 7px; padding: 8px 10px; }
    .relationship-summary-count { display: none; }
    .relationship-parent-body { margin-left: 16px; padding-left: 10px; }
    .relationship-branch > summary em { display: none; }
    .relationship-branch-body { margin-left: 10px; padding-left: 10px; }
    .relationship-link-row { grid-template-columns: minmax(0,1fr) auto; gap: 5px; }
    .relationship-link-state { grid-column: 1; grid-row: 2; }
    .relationship-link-actions { grid-column: 2; grid-row: 1 / 3; }
    .relationship-link-main strong { white-space: normal; }
}
@media (max-width: 700px) {
    .category-tree-heading { align-items: start; }
    .category-tree-controls { flex-wrap: wrap; justify-content: end; }
    .category-node-count { display: none; }
    .category-child-row { grid-template-columns: 12px minmax(0, 1fr) 30px; gap: 8px; }
    .category-child-arabic { display: none; }
    .category-children-top { align-items: start; flex-direction: column; gap: 6px; }
    .category-child-main { flex-wrap: wrap; gap: 3px 8px; }
}
.master-fields { grid-template-columns: repeat(3,minmax(0,1fr)); margin: 4px 0; }
.master-caution { color: var(--ui-warn); font-size: 12px; }
.master-editor[open] { width: min(740px, calc(100vw - 32px)); max-height: calc(100vh - 32px); margin: auto; overflow: auto; box-shadow: 0 24px 80px rgba(10, 30, 60, .25); }
.master-editor::backdrop { background: rgba(13,31,57,.58); }
.master-source-values { margin: 12px 0 0; padding: 10px 12px; border-radius: 6px; background: var(--ui-tint); color: var(--ui-muted); font-size: 12px; line-height: 1.5; }
.master-checklist { display: grid; gap: 6px; margin: 12px 0; padding: 12px 14px; border: 1px solid var(--ui-line); border-radius: 7px; font-size: 12px; }
.master-checklist strong { margin-bottom: 3px; color: var(--ui-ink); }
.master-checklist .ready { color: var(--ui-ok); }
.master-checklist .missing { color: var(--ui-warn); }
.master-approval-details { display: grid; grid-template-columns: 110px 1fr; gap: 8px 12px; margin: 15px 0 20px; font-size: 13px; }
.master-approval-details dt { color: var(--ui-muted); }
.master-approval-details dd { margin: 0; color: var(--ui-ink); font-weight: 700; }
.master-edit:disabled { opacity: .48; cursor: not-allowed; }
.master-mobile-list { display: none; }
.master-status-badge { display: inline-block; width: fit-content; padding: 4px 7px; background: var(--ui-warn-soft); color: var(--ui-warn); border-radius: 5px; font-size: 11px; font-weight: 700; }
.master-status-badge.is-matched { background: var(--ui-ok-soft); color: var(--ui-ok); }
.master-mobile-emails { display: grid; gap: 4px; color: var(--ui-ink-2); font-size: 12px; overflow-wrap: anywhere; }
@media (max-width: 700px) {
    .master-fields { grid-template-columns: 1fr; }
}
@media (max-width: 1200px) {
    .master-mobile-list { display: grid; gap: 8px; }
    .master-mobile-card { display: grid; gap: 5px; padding: 11px 13px; background: var(--ui-panel); border: 1px solid var(--ui-line); border-radius: 9px; }
    .master-mobile-card strong, .master-mobile-card span { display: block; }
    .master-mobile-card strong { color: var(--ui-ink); font-size: 13px; overflow-wrap: anywhere; }
    .master-mobile-card div > span { margin-top: 3px; color: var(--ui-muted); font-size: 11px; overflow-wrap: anywhere; }
    .master-mobile-actions { display: flex; gap: 7px; margin-top: 2px; }
    .master-editor .master-fields { grid-template-columns: 1fr; }
}
