/* ---------- Meezan base ---------- */
.mz{font-family:var(--font-text);color:var(--text-primary);background:var(--surface-page);padding:20px;box-sizing:border-box;-webkit-font-smoothing:antialiased}
.mz *{box-sizing:border-box}
.mz [dir=rtl], .mz[dir=rtl]{font-family:var(--font-text)}
.mz-num{font-variant-numeric:tabular-nums lining-nums}
.mz-cap{font-size:12px;line-height:16px;color:var(--text-secondary);margin:0 0 8px}
.mz-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.mz-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px}

/* ---------- Brandmark ---------- */
.mz-mark{display:block;flex:none}
.mz-mark .b{fill:var(--logo-ink)}
.mz-mark .n{fill:var(--logo-nuqta)}
.on-ink .mz-mark .b{fill:var(--on-brand-ink)}
.on-ink .mz-mark .n{fill:var(--brand-brass)}

/* ---------- Lockups ---------- */
.mz-lockup{display:inline-flex;align-items:center;gap:10px;color:var(--logo-ink)}
.mz-lockup .en{font-family:var(--font-display);font-weight:600;letter-spacing:-0.015em;line-height:1}
.mz-lockup .ar{font-family:var(--font-display);font-weight:500;line-height:1}
.mz-lockup .rule{width:1px;align-self:stretch;background:currentColor;opacity:.28;margin:2px 2px}
.mz-lockup.h{font-size:22px}
.mz-lockup.h .ar{font-size:21px;transform:translateY(-1px)}
.mz-lockup.s{flex-direction:column;gap:8px;text-align:center}
.mz-lockup.s .en{font-size:26px}
.mz-lockup.s .ar{font-size:24px}
.on-ink{background:var(--brand-ink);color:var(--on-brand-ink)}
.on-ink .mz-lockup{color:var(--on-brand-ink)}

/* ---------- Buttons ---------- */
.mz-btn{font-family:var(--font-text);font-size:14px;line-height:20px;font-weight:600;height:36px;padding:0 16px;border-radius:var(--radius-sm);border:1px solid transparent;display:inline-flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap}
.mz-btn svg{width:20px;height:20px}
.mz-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.mz-btn.primary{background:var(--action);color:var(--on-action)}
.mz-btn.primary:hover{background:var(--action-hover)}
.mz-btn.primary:active{background:var(--action-pressed)}
.mz-btn.secondary{background:var(--surface);color:var(--text-primary);border-color:var(--border-strong)}
.mz-btn.secondary:hover{background:var(--surface-sunken)}
.mz-btn.ghost{background:transparent;color:var(--action)}
.mz-btn.ghost:hover{background:var(--action-subtle)}
.mz-btn.danger{background:var(--error);color:#FFFFFF}
[data-theme=dark] .mz-btn.danger{color:#1A0806}
.mz-btn[disabled]{background:var(--surface-sunken);color:var(--text-disabled);border-color:transparent;cursor:not-allowed}
.mz-btn.focus{outline:2px solid var(--focus-ring);outline-offset:2px}
.mz-btn.sm{height:28px;padding:0 10px;font-size:13px}

/* ---------- Tags & badges ---------- */
.mz-tag{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:var(--radius-xs);font-size:12px;line-height:16px;font-weight:600;white-space:nowrap}
.mz-tag i{width:6px;height:6px;transform:rotate(45deg);background:currentColor;display:inline-block;flex:none}
.mz-tag.civil{color:var(--court-civil);background:var(--court-civil-surface)}
.mz-tag.sharia{color:var(--court-sharia);background:var(--court-sharia-surface)}
.mz-tag.criminal{color:var(--court-criminal);background:var(--court-criminal-surface)}
.mz-tag.bcdr{color:var(--court-bcdr);background:var(--court-bcdr-surface)}
.mz-tag.ok{color:var(--success-text);background:var(--success-surface)}
.mz-tag.warn{color:var(--warning-text);background:var(--warning-surface)}
.mz-tag.err{color:var(--error-text);background:var(--error-surface)}
.mz-tag.neutral{color:var(--text-secondary);background:var(--surface-sunken)}
.mz-tag svg{width:14px;height:14px}

/* ---------- Table ---------- */
.mz-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;font-size:13px;line-height:20px}
.mz-table th{background:var(--surface-sunken);color:var(--text-secondary);font-size:12px;line-height:16px;font-weight:600;text-align:start;padding:10px 12px;border-bottom:1px solid var(--border)}
.mz-table td{padding:10px 12px;border-bottom:1px solid var(--border-subtle);vertical-align:middle;height:40px}
.mz-table tr:last-child td{border-bottom:0}
.mz-table tr.sel td{background:var(--action-subtle)}
.mz-table .sub{color:var(--text-secondary);font-size:12px;line-height:16px}
.mz-table a{color:var(--action);text-decoration:none;font-weight:500}
.mz-table a:hover{text-decoration:underline}
.mz-table td.num{font-variant-numeric:tabular-nums}
.mz-table [lang=ar]{font-size:14px}

/* ---------- Alerts ---------- */
.mz-alert{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-radius:var(--radius-md);border:1px solid;font-size:14px;line-height:22px}
.mz-alert svg{width:20px;height:20px;flex:none;margin-top:1px}
.mz-alert b{font-weight:600}
.mz-alert.ok{background:var(--success-surface);color:var(--success-text);border-color:var(--success)}
.mz-alert.warn{background:var(--warning-surface);color:var(--warning-text);border-color:var(--warning)}
.mz-alert.err{background:var(--error-surface);color:var(--error-text);border-color:var(--error)}
.mz-alert.info{background:var(--action-subtle);color:var(--text-primary);border-color:var(--action)}
.mz-alert.info svg{color:var(--action)}

/* ---------- App header ---------- */
.mz-header{display:flex;align-items:center;gap:24px;height:56px;padding:0 20px;background:var(--brand-ink);color:var(--on-brand-ink);border-radius:var(--radius-md)}
.mz-header nav{display:flex;gap:4px;flex:1}
.mz-header nav a{font-size:13px;line-height:18px;font-weight:500;color:var(--on-brand-ink-muted);text-decoration:none;padding:8px 12px;border-radius:var(--radius-sm)}
.mz-header nav a.on{color:var(--on-brand-ink);background:var(--brand-ink-700)}
.mz-header .lang{font-size:13px;font-weight:600;color:var(--on-brand-ink);border:1px solid var(--on-brand-ink-muted);border-radius:var(--radius-sm);padding:4px 10px}
.mz-header .avatar{width:28px;height:28px;border-radius:50%;background:var(--brand-ink-700);display:grid;place-items:center;font-size:12px;font-weight:600}

/* ---------- Icons ---------- */
.mz-ico{width:24px;height:24px;color:var(--text-primary);flex:none}
.mz-ico .nq{fill:var(--action)}
.mz-ico.brand .nq{fill:var(--logo-nuqta)}
.mz-btn .nq,.mz-tag .nq,.mz-alert .nq,.mz-header .nq{fill:currentColor}
