/* خط العناوين Cairo (D-387): متغير الوزن، مضمَّن محليًا بجزأيه العربي واللاتيني برخصة OFL (fonts/cairo/OFL.txt)، فيعمل دون إنترنت. */
@font-face {
  font-family: 'Cairo';
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url('../fonts/cairo/cairo-arabic-wght-normal.woff2') format('woff2-variations'), url('../fonts/cairo/cairo-arabic-wght-normal.woff2') format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

@font-face {
  font-family: 'Cairo';
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url('../fonts/cairo/cairo-latin-wght-normal.woff2') format('woff2-variations'), url('../fonts/cairo/cairo-latin-wght-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* نظام التصميم 20.2 (D-340): خصائص منطقية فقط (ق-5)، حدود بألوان صريحة، لا تدرجات ولا ضبابية،
   النص الأساسي 16 بكسل وارتفاع سطر 1.6 (ق-54). */

:root {
    --alnazim-ink: #1A1A1A;
    --alnazim-ink-muted: #4B5563;
    --alnazim-line: #D1D5DB;
    --alnazim-line-strong: #9CA3AF;
    --alnazim-primary: #5B2C87;
    --alnazim-primary-dark: #3F1D5F;
    --alnazim-primary-light: #EFE8F5;
    --alnazim-page: #F5F5F7;
    --alnazim-surface: #FFFFFF;
    /* كل النصوص بخط القاهرة المضمَّن في fonts/cairo، فلا تختلف الواجهة من جهاز لآخر (D-387، D-539). */
    --alnazim-font: 'Cairo', Tahoma, sans-serif;
    --alnazim-heading-font: 'Cairo', Tahoma, sans-serif;
}

/* كل العناوين بخط القاهرة (D-387). */
h1, h2, h3, h4, h5, h6,
.mud-typography-h1, .mud-typography-h2, .mud-typography-h3, .mud-typography-h4, .mud-typography-h5, .mud-typography-h6,
.app-name, .page-title, .panel-title, .auth-brand, .auth-title, .event-card-name, .transition-item-title, .programme-session-title,
.emergency-overlay-title, .room-screen-title {
    font-family: var(--alnazim-heading-font);
}

html,
body {
    font-family: var(--alnazim-font);
    font-size: 16px;
    line-height: 1.6;
    color: var(--alnazim-ink);
    background-color: var(--alnazim-page);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    margin: 0;
}

.tabular-nums {
    font-variant-numeric: tabular-nums;
}

.ltr-inline {
    unicode-bidi: isolate;
    direction: ltr;
}

/* الغلاف */
.app-bar {
    border-block-end: 1px solid var(--alnazim-primary-dark);
}

.app-name {
    font-weight: 700;
    margin-inline-start: 8px;
}

.app-drawer {
    border-inline-end: 1px solid var(--alnazim-line);
}

.app-content {
    padding-block: 24px;
    padding-inline: 24px;
}

.page-title {
    margin-block-end: 8px;
}

.page-note {
    color: var(--alnazim-ink-muted);
    margin-block-end: 24px;
}

.panel {
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
    padding: 24px;
    background-color: var(--alnazim-surface);
}

.panel-title {
    margin-block-end: 16px;
}

.role-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* شاشة الدخول SCR-ORG-060 */
.auth-page {
    min-block-size: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    box-sizing: border-box;
}

.auth-card {
    inline-size: 100%;
    max-inline-size: 440px;
    padding: 32px;
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
    background-color: var(--alnazim-surface);
    box-sizing: border-box;
}

.auth-brand {
    color: var(--alnazim-primary);
    font-weight: 700;
    margin-block-end: 16px;
}

.auth-title {
    margin-block-end: 8px;
}

.auth-subtitle {
    color: var(--alnazim-ink-muted);
    margin-block-end: 24px;
}

.auth-alert {
    margin-block-end: 16px;
}

.auth-submit {
    margin-block-start: 8px;
    min-block-size: 48px;
}

.auth-restart {
    display: inline-block;
    margin-block-start: 16px;
}

.field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-block-end: 16px;
}

.field-label {
    font-weight: 600;
    font-size: 1rem;
    color: var(--alnazim-ink);
    text-align: start;
}

.field-input {
    font-family: var(--alnazim-font);
    font-size: 1rem;
    line-height: 1.5;
    min-block-size: 48px;
    padding-block: 10px;
    padding-inline: 14px;
    border: 1px solid var(--alnazim-line-strong);
    border-radius: 8px;
    background-color: var(--alnazim-surface);
    color: var(--alnazim-ink);
    box-sizing: border-box;
    inline-size: 100%;
}

.field-input:focus-visible {
    outline: 3px solid var(--alnazim-primary);
    outline-offset: 1px;
    border-color: var(--alnazim-primary);
}

/* الحقول التقنية (البريد، الرمز) LTR داخل صفحة RTL تبدأ من جهة الكتابة نفسها. */
.field-input[dir="ltr"] {
    text-align: start;
}

.field-code {
    font-size: 1.5rem;
    letter-spacing: 0.3em;
    font-variant-numeric: tabular-nums;
    text-align: center;
}

.enroll-qr {
    display: flex;
    justify-content: center;
    margin-block-end: 16px;
}

.enroll-qr svg {
    inline-size: 200px;
    block-size: 200px;
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
    padding: 8px;
    background-color: #FFFFFF;
}

.manual-key {
    font-family: Consolas, 'Courier New', monospace;
    font-size: 1rem;
    font-weight: 600;
    background-color: var(--alnazim-primary-light);
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
    padding-block: 8px;
    padding-inline: 12px;
    word-break: break-all;
}

/* لوحة المؤسسة SCR-ORG-001 */
.page-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-block-end: 24px;
}

.page-action {
    min-block-size: 44px;
}

.event-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
}

.event-card {
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
    padding: 20px;
    background-color: var(--alnazim-surface);
    block-size: 100%;
    box-sizing: border-box;
}

.event-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-block-end: 16px;
}

.event-card-name {
    font-size: 1.125rem;
}

.event-card-facts {
    display: grid;
    gap: 8px;
    margin: 0;
}

.event-card-facts > div,
.review-list > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    border-block-end: 1px solid var(--alnazim-line);
    padding-block-end: 8px;
}

.event-card-facts dt,
.review-list dt {
    color: var(--alnazim-ink-muted);
    font-weight: 500;
}

.event-card-facts dd,
.review-list dd {
    margin: 0;
    font-weight: 600;
}

.event-code {
    font-family: Consolas, 'Courier New', monospace;
    letter-spacing: 0.1em;
}

.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
}

/* شارة الحالة (StatusBadge): نص ولون بحدود صريحة */
.status-badge {
    display: inline-block;
    white-space: nowrap;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.5;
    padding-block: 2px;
    padding-inline: 10px;
    border-radius: 999px;
    border: 1px solid var(--alnazim-line-strong);
    background-color: #F3F4F6;
    color: #374151;
}

.status-in_preparation,
.status-under_review {
    border-color: #B45309;
    background-color: #FEF3C7;
    color: #78350F;
}

.status-approved,
.status-registration_not_open,
.status-published {
    border-color: var(--alnazim-primary);
    background-color: var(--alnazim-primary-light);
    color: var(--alnazim-primary-dark);
}

.status-registration_open,
.status-live {
    border-color: #1E7E34;
    background-color: #E6F4EA;
    color: #14532D;
}

.status-registration_closed,
.status-completed {
    border-color: #1F7A8C;
    background-color: #E0F2F5;
    color: #134E5E;
}

.status-cancelled {
    border-color: #B91C1C;
    background-color: #FEE2E2;
    color: #7F1D1D;
}

/* معالج إنشاء فعالية SCR-ORG-002 */
.wizard-steps {
    list-style: none;
    margin: 0;
    margin-block-end: 24px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.wizard-step {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-block: 8px;
    padding-inline: 12px;
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
    background-color: var(--alnazim-surface);
    color: var(--alnazim-ink-muted);
    font-weight: 500;
}

.wizard-step.current {
    border-color: var(--alnazim-primary);
    color: var(--alnazim-primary-dark);
    font-weight: 700;
}

.wizard-step.done {
    color: var(--alnazim-ink);
}

.wizard-step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 28px;
    block-size: 28px;
    border-radius: 999px;
    border: 1px solid currentColor;
}

.wizard-step.current .wizard-step-number {
    background-color: var(--alnazim-primary);
    border-color: var(--alnazim-primary);
    color: #FFFFFF;
}

.wizard-panel {
    max-inline-size: 960px;
}

.wizard-alert {
    margin-block-end: 16px;
}

.template-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 12px;
}

.template-card {
    display: flex;
    align-items: center;
    gap: 12px;
    min-block-size: 72px;
    padding: 16px;
    border: 1px solid var(--alnazim-line-strong);
    border-radius: 8px;
    background-color: var(--alnazim-surface);
    color: var(--alnazim-ink);
    font-family: var(--alnazim-font);
    font-size: 1rem;
    text-align: start;
    cursor: pointer;
}

.template-card:hover {
    border-color: var(--alnazim-primary);
}

.template-card:focus-visible {
    outline: 3px solid var(--alnazim-primary);
    outline-offset: 2px;
}

.template-card.selected {
    border: 2px solid var(--alnazim-primary);
    background-color: var(--alnazim-primary-light);
    font-weight: 600;
}

.wizard-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.wizard-field.wide {
    grid-column: 1 / -1;
}

.zone-list {
    list-style: none;
    margin: 0;
    margin-block-end: 16px;
    padding: 0;
    display: grid;
    gap: 12px;
}

.zone-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.zone-name {
    flex: 2 1 240px;
}

.zone-capacity {
    flex: 1 1 120px;
}

.review-list {
    display: grid;
    gap: 8px;
    margin: 0;
    margin-block-end: 16px;
}

.wizard-actions {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-block-start: 24px;
}

@media (max-width: 768px) {
    .wizard-form {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* نظرة الفعالية SCR-ORG-003 وحوار الانتقال SCR-ORG-007 */
.back-link {
    display: inline-block;
    margin-block-end: 16px;
}

.status-bar {
    list-style: none;
    margin: 0;
    margin-block-end: 24px;
    padding: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
    background-color: var(--alnazim-surface);
}

.status-bar-item {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-block: 4px;
    padding-inline: 10px;
    border-radius: 999px;
    border: 1px solid var(--alnazim-line);
    color: var(--alnazim-ink-muted);
    font-size: 0.875rem;
    font-weight: 500;
}

.status-bar-dot {
    inline-size: 10px;
    block-size: 10px;
    border-radius: 999px;
    border: 2px solid var(--alnazim-line-strong);
    box-sizing: border-box;
}

.status-bar-item.done {
    color: var(--alnazim-ink);
}

.status-bar-item.done .status-bar-dot {
    background-color: var(--alnazim-primary);
    border-color: var(--alnazim-primary);
}

.status-bar-item.current {
    border-color: var(--alnazim-primary);
    background-color: var(--alnazim-primary);
    color: #FFFFFF;
    font-weight: 700;
}

.status-bar-item.current .status-bar-dot {
    background-color: #FFFFFF;
    border-color: #FFFFFF;
}

.status-bar-item.current.cancelled {
    border-color: #B91C1C;
    background-color: #B91C1C;
}

.overview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 16px;
    align-items: start;
}

.transition-list,
.checklist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
}

.transition-item {
    display: grid;
    gap: 8px;
    padding: 16px;
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
}

.transition-item-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.transition-item-title {
    font-weight: 600;
}

.transition-open {
    justify-self: start;
}

.checklist-summary {
    font-size: 0.875rem;
    font-weight: 600;
}

.checklist-summary.passed {
    color: #14532D;
}

.checklist-summary.missing {
    color: #7F1D1D;
}

.checklist-item {
    display: flex;
    align-items: center;
    gap: 8px;
}

.dialog-section {
    margin-block-start: 16px;
}

.visually-hidden {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

/* مسارات التسجيل SCR-ORG-010 ومنشئ النماذج SCR-ORG-011 */
.message-set-panel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-block-end: 16px;
}

.message-set-panel .panel-title {
    margin-block-end: 0;
    flex-basis: 100%;
}

.event-card.archived {
    background-color: #F9FAFB;
}

.card-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-block-start: 16px;
}

.side-editor-body {
    padding: 24px;
}

.side-editor-tab {
    padding-block: 16px;
    display: grid;
    gap: 12px;
}

.builder-grid {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) minmax(320px, 2fr) minmax(280px, 1.5fr);
    gap: 16px;
    align-items: start;
}

.library-list,
.builder-fields {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
}

.library-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border-block-end: 1px solid var(--alnazim-line);
    padding-block: 4px;
}

.builder-field {
    display: grid;
    gap: 8px;
    padding: 12px;
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
    background-color: var(--alnazim-surface);
}

.builder-field-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.builder-field-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.page-number {
    max-inline-size: 96px;
}

.rule-editor {
    display: grid;
    gap: 8px;
}

.form-preview {
    display: grid;
    gap: 8px;
    padding: 12px;
    border: 1px dashed var(--alnazim-line-strong);
    border-radius: 8px;
}

.inline-action {
    margin-inline-start: 12px;
}

@media (max-width: 1024px) {
    .builder-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* طابور الموافقات SCR-ORG-014 وقائمة الانتظار */
.approvals-toolbar {
    max-inline-size: 360px;
    margin-block: 16px;
}

.approvals-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(320px, 2fr);
    gap: 16px;
    align-items: start;
}

.approvals-list .template-card {
    inline-size: 100%;
}

.approvals-item {
    display: grid;
    gap: 4px;
    justify-items: start;
}

.table-scroll {
    overflow-x: auto;
    margin-block-start: 16px;
}

.data-table {
    inline-size: 100%;
    border-collapse: collapse;
    background-color: var(--alnazim-surface);
    border: 1px solid var(--alnazim-line);
}

.data-table th,
.data-table td {
    text-align: start;
    padding-block: 8px;
    padding-inline: 12px;
    border-block-end: 1px solid var(--alnazim-line);
    line-height: 1.35;
}

.data-table th {
    font-weight: 600;
    color: var(--alnazim-ink-muted);
}

@media (max-width: 1024px) {
    .approvals-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* شريط تبويبات يُصيَّر محتواه من أول تصيير على الخادم */
.tab-bar {
    display: flex;
    gap: 4px;
    border-block-end: 1px solid var(--alnazim-line);
    margin-block-end: 8px;
}

.tab-button {
    font-family: var(--alnazim-font);
    font-size: 1rem;
    font-weight: 600;
    padding-block: 10px;
    padding-inline: 16px;
    border: 0;
    border-block-end: 3px solid transparent;
    background-color: transparent;
    color: var(--alnazim-ink-muted);
    cursor: pointer;
}

.tab-button.active {
    color: var(--alnazim-primary-dark);
    border-block-end-color: var(--alnazim-primary);
}

.tab-button:focus-visible {
    outline: 3px solid var(--alnazim-primary);
    outline-offset: 2px;
}

/* المسجلون SCR-ORG-012 وبطاقة المشارك SCR-ORG-013 والدعوات SCR-ORG-017 */
.filter-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-block: 16px;
}

.filter-search {
    flex: 2 1 280px;
}

.filter-field {
    flex: 1 1 180px;
}

.card-action-panel {
    display: grid;
    gap: 12px;
    margin-block-end: 16px;
}

.status-badge[class*="registration-"] {
    border-color: var(--alnazim-line-strong);
}

.registration-confirmed {
    border-color: #1E7E34;
    background-color: #E6F4EA;
    color: #14532D;
}

.registration-pending_review,
.registration-pending_level2,
.registration-needs_info,
.registration-pending_payment {
    border-color: #B45309;
    background-color: #FEF3C7;
    color: #78350F;
}

.registration-waitlisted {
    border-color: var(--alnazim-primary);
    background-color: var(--alnazim-primary-light);
    color: var(--alnazim-primary-dark);
}

.registration-rejected,
.registration-cancelled,
.registration-expired {
    border-color: #B91C1C;
    background-color: #FEE2E2;
    color: #7F1D1D;
}

/* البطاقة في بطاقة المشارك ولوحة المطابقة (REQ-BDG-003) */
.badge-panel {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 24px;
}

.badge-qr svg {
    inline-size: 180px;
    block-size: 180px;
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
    padding: 8px;
    background-color: #FFFFFF;
}

.reconciliation {
    margin-block-end: 16px;
}

.stat-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    margin: 0;
}

.stat-row > div {
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
    padding: 12px;
}

.stat-row dt {
    color: var(--alnazim-ink-muted);
    font-weight: 500;
}

.stat-row dd {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
}

/* الأجهزة SCR-FLD-003 (REQ-CHK-001) */
.pairing-panel {
    margin-block-end: 16px;
}

.pairing-body {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 24px;
}

.pairing-code {
    margin: 0;
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: 0.25em;
    font-variant-numeric: tabular-nums;
    color: var(--alnazim-primary-dark);
}

.device-permissions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    margin: 0;
    margin-block: 8px;
    padding: 12px;
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
}

.device-permissions legend {
    font-weight: 600;
    padding-inline: 4px;
}

.device-active {
    border-color: #1E7E34;
    background-color: #E6F4EA;
    color: #14532D;
}

.device-pairing {
    border-color: var(--alnazim-primary);
    background-color: var(--alnazim-primary-light);
    color: var(--alnazim-primary-dark);
}

.device-offline {
    border-color: #B45309;
    background-color: #FEF3C7;
    color: #78350F;
}

.device-revoked {
    border-color: #B91C1C;
    background-color: #FEE2E2;
    color: #7F1D1D;
}

.battery-low {
    color: #7F1D1D;
    font-weight: 600;
}

/* طوابير الطباعة SCR-FLD-004 (REQ-PRT-001) */
.plain-list {
    margin-block: 0 12px;
    padding-inline-start: 20px;
}

.printer-online {
    border-color: #1E7E34;
    background-color: #E6F4EA;
    color: #14532D;
}

.printer-offline,
.printer-error {
    border-color: #B91C1C;
    background-color: #FEE2E2;
    color: #7F1D1D;
}

.printer-out_of_media,
.printer-out_of_ribbon,
.printer-cover_open {
    border-color: #B45309;
    background-color: #FEF3C7;
    color: #78350F;
}

/* الموقع والإشغال SCR-ORG-005 وقواعد الدخول SCR-ORG-043 (REQ-ACL-001، REQ-ACL-002) */
.code-text {
    margin-inline-start: 6px;
    color: #5A5A4A;
    font-size: 13px;
}

.occupancy-normal,
.gate-open,
.rule-allow {
    border-color: #1E7E34;
    background-color: #E6F4EA;
    color: #14532D;
}

.occupancy-warning,
.occupancy-critical,
.gate-closed_manual {
    border-color: #B45309;
    background-color: #FEF3C7;
    color: #78350F;
}

.occupancy-full,
.gate-closed_capacity,
.rule-deny {
    border-color: #B91C1C;
    background-color: #FEE2E2;
    color: #7F1D1D;
}

/* مصمم البطاقات SCR-ORG-040 (REQ-BDG-001): العناصر يمينًا والقماش وسطًا والخصائص يسارًا */
.designer-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.designer-grid {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) 300px;
    gap: 16px;
    align-items: start;
    margin-block-end: 16px;
}

.designer-palette {
    display: grid;
    gap: 8px;
}

.designer-properties {
    display: grid;
    gap: 12px;
}

.designer-numbers {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.designer-samples {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-block-end: 12px;
}

.designer-canvas {
    position: relative;
    inline-size: min(100%, 640px);
    margin-inline: auto;
    background-color: #FFFFFF;
    border: 1px solid #A8AB96;
    touch-action: none;
    user-select: none;
}

.designer-preview {
    display: block;
    inline-size: 100%;
    block-size: 100%;
}

.designer-element {
    position: absolute;
    border: 1px dashed #5A5A4A;
    cursor: move;
}

.designer-element.selected {
    border: 2px solid #0F4C45;
    background-color: #E6EFEE;
    mix-blend-mode: multiply;
}

.designer-element.truncated {
    border-color: #DC2626;
}

.designer-element.hidden-by-condition {
    border-style: dotted;
}

.designer-element:focus-visible {
    outline: 3px solid #A64E1F;
}

.resize-handle {
    position: absolute;
    inset-inline-end: -5px;
    inset-block-end: -5px;
    inline-size: 10px;
    block-size: 10px;
    background-color: #0F4C45;
    cursor: nwse-resize;
}

.plain-list {
    margin: 0;
    padding-inline-start: 18px;
}

@media (max-width: 1100px) {
    .designer-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* الرسائل والقوالب SCR-ORG-030 (REQ-NTF-001) */
.message-editor {
    display: grid;
    gap: 12px;
}

.message-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.variable-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.panel-subtitle {
    margin-block: 8px 0;
    font-weight: 600;
}

.message-preview {
    padding: 16px;
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    background-color: #FFFFFF;
    line-height: 1.6;
}

.message-preview p {
    margin: 0 0 6px;
}

.message-preview-subject {
    font-weight: 700;
}

@media (max-width: 900px) {
    .message-fields {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* شبكة البرنامج (SCR-ORG-020): خانة لكل قاعة في كل نصف ساعة، والخانة الفارغة زر إنشاء. */
.programme-grid td {
  vertical-align: top;
  min-inline-size: 180px;
}

.programme-session {
  display: grid;
  gap: 4px;
  inline-size: 100%;
  padding: 8px;
  border: 1px solid var(--color-primary, #5b2c87);
  border-radius: 8px;
  background: #efe8f5;
  font: inherit;
  text-align: start;
  cursor: pointer;
}

.programme-session-title {
  font-weight: 600;
}

.programme-empty {
  inline-size: 100%;
  min-block-size: 32px;
  border: 1px dashed #d1d5db;
  border-radius: 8px;
  background: none;
  color: #6b7280;
  font: inherit;
  cursor: pointer;
}

/* تنبيه الطوارئ بملء الشاشة (SCR-SGN-003، REQ-MSG-002): لون التنبيه ونص لا يقل عن 24 بكسل؛ الانتهاء بلون الأمان. */
.emergency-overlay {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 24px;
  padding: 32px;
  background: #b91c1c;
  color: #ffffff;
  text-align: center;
}

.emergency-overlay-cleared {
  background: #0f4c45;
}

.emergency-overlay-title {
  margin: 0;
  font-size: clamp(2.5rem, 7vw, 5rem);
  font-weight: 800;
  line-height: 1.2;
}

.emergency-overlay-body {
  margin: 0;
  max-inline-size: 40ch;
  font-size: clamp(1.5rem, 4vw, 2.6rem);
  font-weight: 600;
  line-height: 1.5;
}

/* إطلاق الطوارئ (SCR-FLD-006، REQ-MSG-002): قوالب كبيرة وتأكيد مزدوج ولوحة التأكيدات. */
.emergency-templates {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
  margin-block-end: 16px;
}

.emergency-template {
  min-block-size: 64px;
  font-size: 1rem;
}

.emergency-preview {
  padding: 12px 16px;
  border: 1px solid #dc2626;
  border-radius: 8px;
  background: #fef2f2;
  margin-block: 8px 16px;
}

.emergency-confirm {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-block-start: 12px;
}

.emergency-row {
  padding-block: 12px;
  border-block-start: 1px solid #c2c5aa;
}

.emergency-active {
  border-inline-start: 4px solid #dc2626;
  padding-inline-start: 12px;
}

.emergency-row-head {
  display: flex;
  align-items: center;
  gap: 12px;
}

.emergency-zones {
  margin: 8px 0;
  padding-inline-start: 20px;
}

/* شاشة القاعة (SCR-SGN-002، REQ-SES-005): الرمز كبير يُقرأ من بعد مترين. */
.room-screen {
  display: grid;
  justify-items: center;
  gap: 16px;
  padding-block: 24px;
}

.room-screen-title {
  font-size: 2.2rem;
  font-weight: 700;
}

.room-screen-session {
  font-size: 1.4rem;
  font-weight: 600;
}

.room-screen-code svg {
  inline-size: min(60vh, 90vw);
  block-size: auto;
}

/* الرمز الجماعي للطباعة (SCR-ORG-018، REQ-CHK-004). */
.group-code-print {
  display: grid;
  justify-items: center;
  gap: 8px;
  margin-block: 12px;
}

.group-code-print svg {
  inline-size: 220px;
  block-size: 220px;
}

/* رابط التسجيل العام في SCR-ORG-010 (D-388). */
.public-link {
    margin: 8px 0;
    overflow-wrap: anywhere;
}

.public-link-editor {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 12px;
    max-inline-size: 640px;
}

.public-link-editor .mud-input-control {
    flex: 1 1 280px;
}

/* نصوص الموافقات في SCR-ORG-021 وسجلها في بطاقة المشارك (D-389). */
.consent-body {
    margin: 8px 0;
    padding: 12px;
    background: var(--alnazim-page);
    border: 1px solid var(--alnazim-line);
    border-radius: 6px;
    white-space: pre-line;
}

.consent-versions {
    margin-block-start: 12px;
}

.consent-versions summary {
    cursor: pointer;
    font-weight: 600;
}

/* مجموعات المعاينة في SCR-ORG-041 (D-390). */
.pre-print-groups {
    list-style: none;
    margin: 8px 0 12px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pre-print-groups li {
    border: 1px solid var(--alnazim-line);
    border-radius: 6px;
    padding: 4px 10px;
    background: var(--alnazim-surface);
}

.pre-print-group-label {
    font-family: var(--alnazim-heading-font);
    font-weight: 700;
}

/* تقارير التسجيل (REQ-RPT-001، D-393): رسم SVG بعرض الحاوية والتسميات يمينًا، والجدول المصاحب يمرر أفقيًا على الشاشات الضيقة. */
.report-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-block-end: 16px;
}

.report-id {
    font-size: 13px;
    color: var(--alnazim-ink-muted);
    margin-inline-start: 8px;
}

.report-chart {
    margin: 0 0 16px;
}

.report-chart-svg {
    inline-size: 100%;
    max-inline-size: 760px;
    block-size: auto;
}

.report-chart-label {
    font-size: 13px;
    fill: var(--alnazim-ink);
}

/* مواضع نصوص الرسم محسوبة بنهاية ثابتة (اليمين) وبداية ثابتة (اليسار)؛ الاتجاه الموروث من الصفحة RTL كان يقلب المرساة فتخرج تسمية العمود العربية من الرسم (D-506).
   النص العربي يبقى بترتيبه الصحيح بخوارزمية الاتجاه الثنائي. */
.report-chart-svg text {
    direction: ltr;
}

.report-chart-value {
    font-size: 11px;
    fill: var(--alnazim-ink-muted);
}

.report-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    font-size: 13px;
}

.report-chart-swatch {
    display: inline-block;
    inline-size: 12px;
    block-size: 12px;
    margin-inline-end: 6px;
    vertical-align: middle;
}

.report-formula {
    margin-block: 12px;
    color: var(--alnazim-ink-muted);
}

.report-group-title {
    margin-block: 8px;
}

/* التصدير (REQ-EXP-001، D-395). */
.export-columns {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 4px 16px;
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
    padding: 12px 16px;
    margin-block: 12px;
}

.export-sensitive {
    display: inline-block;
    font-size: 13px;
    color: #B45309;
    margin-inline-start: 8px;
}

.schedule-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    border-block-end: 1px solid var(--alnazim-line);
    padding-block: 12px;
}

/* لوحة الميدان (REQ-DASH-001، D-396): شبكة أقسام على الشاشة الكبيرة وتبويبات على الجوال. */
.field-headline dd {
    font-size: 32px;
    font-weight: 700;
}

.field-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    gap: 16px;
}

.field-tabs {
    display: none;
}

.field-gate,
.field-zone,
.field-vip {
    border-block-end: 1px solid var(--alnazim-line);
    padding-block: 10px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.field-gate-numbers {
    display: flex;
    gap: 16px;
    font-size: 14px;
}

.field-spark {
    inline-size: 120px;
    block-size: 24px;
}

.field-zone-head {
    display: flex;
    justify-content: space-between;
}

.field-bar {
    block-size: 10px;
    border: 1px solid var(--alnazim-line-strong);
    border-radius: 4px;
    overflow: hidden;
}

.field-bar-fill {
    block-size: 100%;
}

.band-green { background-color: #15803D; }
.band-amber { background-color: #B45309; }
.band-red { background-color: #B91C1C; }

.field-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 8px;
}

.field-card {
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 14px;
}

.field-card.status-offline,
.field-card.status-error {
    border-color: #B91C1C;
}

.field-security {
    font-size: 14px;
    padding-block: 4px;
}

.alert-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

@media (max-width: 700px) {
    .field-tabs {
        display: flex;
    }

    .field-grid {
        display: block;
    }

    .dash-section:not(.active) {
        display: none;
    }
}


/* الشهادات (REQ-CERT-001، D-397). */
.cert-elements input.cert-input,
.cert-elements select.cert-input {
    inline-size: 100%;
    min-inline-size: 160px;
    font-size: 14px;
    padding: 4px;
    border: 1px solid var(--alnazim-line-strong);
    border-radius: 4px;
}

.cert-elements input.cert-number {
    inline-size: 5em;
    font-size: 14px;
    padding: 4px;
    border: 1px solid var(--alnazim-line-strong);
    border-radius: 4px;
}

.cert-upload {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 14px;
}

.cert-preview {
    max-inline-size: 100%;
    border: 1px solid var(--alnazim-line);
    margin-block: 12px;
}


/* SCR-ORG-033 الاستبيانات (REQ-SUR-001). */
.survey-builder {
    display: grid;
    gap: 12px;
}

.survey-builder-row {
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    padding: 12px;
}

.survey-number {
    font-weight: 700;
    min-inline-size: 24px;
}

.survey-text {
    min-inline-size: 280px;
    flex: 1;
}

.survey-public .survey-link {
    word-break: break-all;
}

.survey-qr svg {
    inline-size: 180px;
    block-size: 180px;
}

.survey-result {
    border-block-start: 1px solid #C2C5AA;
    padding-block: 12px;
}

.survey-bars {
    display: grid;
    gap: 4px;
    max-inline-size: 640px;
}

.survey-bar {
    display: grid;
    grid-template-columns: minmax(80px, 200px) 1fr 48px;
    gap: 8px;
    align-items: center;
}

.survey-bar-track {
    background: #E6EFEE;
    block-size: 14px;
    border-radius: 4px;
    overflow: hidden;
}

.survey-bar-fill {
    display: block;
    block-size: 100%;
    background: #0F4C45;
}

.survey-texts {
    list-style: none;
    padding: 0;
    display: grid;
    gap: 6px;
}

.survey-texts li {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}


/* SCR-ORG-027 المتحدثون (REQ-SPK-001). */
.tag-warning {
    background: #FFBD00;
    color: #1A1A1A;
}


/* SCR-ORG-023 مكتب المساعدة (REQ-HELP-001): القائمة يمينًا والمحادثة وسطًا والسياق يسارًا، وعمود واحد على الشاشات الضيقة. */
.helpdesk {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(320px, 2fr) minmax(220px, 1fr);
    gap: 16px;
    align-items: start;
}

@media (max-width: 1100px) {
    .helpdesk {
        grid-template-columns: 1fr;
    }
}

.helpdesk-items {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 6px;
    max-block-size: 70vh;
    overflow-y: auto;
}

.helpdesk-item {
    border: 1px solid #C2C5AA;
    border-inline-start: 4px solid #C2C5AA;
    border-radius: 6px;
}

.helpdesk-item--overdue {
    border-inline-start-color: #DC2626;
}

.helpdesk-item--active {
    background: #E6EFEE;
}

.helpdesk-open {
    display: grid;
    gap: 2px;
    inline-size: 100%;
    text-align: start;
    background: none;
    border: 0;
    padding: 8px 10px;
    cursor: pointer;
    font: inherit;
}

.helpdesk-subject {
    font-weight: 600;
}

.helpdesk-messages {
    list-style: none;
    padding: 0;
    display: grid;
    gap: 10px;
}

.helpdesk-message {
    border-radius: 8px;
    padding: 8px 12px;
    background: #FFFFFF;
    border: 1px solid #C2C5AA;
}

.helpdesk-message--staff {
    background: #E6EFEE;
}

.helpdesk-message--internal {
    background: #F4D58D;
}

.helpdesk-message p {
    margin: 4px 0 0;
    white-space: pre-wrap;
}

.helpdesk-facts {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 4px 12px;
}

.helpdesk-facts dt {
    font-weight: 600;
}

.helpdesk-facts dd {
    margin: 0;
}

/* التصويت المباشر والأسئلة (REQ-POLL-001، REQ-QNA-001). */
.interaction-layout {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: 16px;
    align-items: start;
}

.row-active {
    background-color: #E6EFEE;
}

.row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.link-button {
    background: none;
    border: 0;
    padding: 0;
    color: #0F4C45;
    font: inherit;
    font-weight: 600;
    text-align: start;
    cursor: pointer;
}

.poll-bars {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
}

.poll-bars li {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr) auto;
    gap: 8px;
    align-items: center;
}

.poll-bars__bar {
    display: block;
    block-size: 14px;
    background-color: #E6EFEE;
    border-radius: 7px;
    overflow: hidden;
}

.poll-bars__bar span {
    display: block;
    block-size: 100%;
    background-color: #0F4C45;
}

.poll-bars__value {
    font-weight: 600;
    min-inline-size: 64px;
    text-align: end;
}

.guest-code {
    margin-block-start: 16px;
    display: grid;
    gap: 8px;
    justify-items: start;
}

.qr-box svg {
    inline-size: 180px;
    block-size: 180px;
}

.qna-board {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    align-items: start;
}

.qna-card {
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    padding: 8px 12px;
    margin-block: 8px;
    background-color: #FFFFFF;
}

.qna-card--pinned {
    border-color: #A64E1F;
    background-color: #F5E9E2;
}

.qna-body {
    font-weight: 500;
    margin-block: 0 4px;
}

.qna-answer {
    border-inline-start: 3px solid #0F4C45;
    padding-inline-start: 8px;
}

@media (max-width: 1100px) {
    .interaction-layout,
    .qna-board {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* التصويت الرسمي ووضع المُقدِّم (REQ-POLL-002، REQ-SPK-003). */
.quorum-board {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-block-end: 12px;
}

.quorum-tile {
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    padding: 8px;
    display: grid;
    gap: 2px;
    text-align: center;
    background-color: #FFFFFF;
}

.quorum-value {
    font-size: 1.4rem;
    font-weight: 700;
}

.quorum-tile--ok {
    border-color: #0F4C45;
    background-color: #E6EFEE;
}

.quorum-tile--missing {
    border-color: #A64E1F;
    background-color: #F5E9E2;
}

.formal-outcome {
    font-weight: 700;
    font-size: 1.1rem;
}

.presenter-links {
    display: grid;
    gap: 4px;
    margin-block: 8px;
}

@media (max-width: 700px) {
    .quorum-board {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* أوزان درجة التفاعل (REQ-RPT-003). */
.weight-field {
    max-inline-size: 110px;
}

/* محرر الخريطة (REQ-MAP-001): المخطط بعرض ثابت والدبابيس بنسب منه، والرسم بصري لا يُعكس في RTL. */
.map-editor-scroll {
    overflow-x: auto;
    margin-block: 12px;
}

.map-editor {
    position: relative;
    direction: ltr;
    border: 1px solid #C2C5AA;
    background-color: #FFFFFF;
    cursor: crosshair;
}

.map-editor img {
    inline-size: 100%;
    block-size: 100%;
    display: block;
    user-select: none;
    pointer-events: none;
}

.map-pin {
    position: absolute;
    transform: translate(-50%, -100%);
    padding: 2px 8px;
    border: 1px solid #0A3530;
    border-radius: 12px;
    background-color: #0F4C45;
    color: #FFFFFF;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}

.map-pin.selected {
    background-color: #A64E1F;
    border-color: #7C3A16;
}

.map-pin-new {
    inline-size: 16px;
    block-size: 16px;
    padding: 0;
    background-color: #E2552A;
    pointer-events: none;
}

/* الأجنحة على المخطط وخريطتها الحرارية (REQ-MAP-002، D-511). */
.map-pin-booth.booth-free {
    background-color: #FFFFFF;
    color: #0F4C45;
}

.booth-heat {
    position: absolute;
    transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #1A1A1A;
    font-size: 13px;
    font-weight: 700;
    pointer-events: none;
}

.booth-heat.heat-1 {
    inline-size: 32px;
    block-size: 32px;
    background-color: #F4D58D;
}

.booth-heat.heat-2 {
    inline-size: 40px;
    block-size: 40px;
    background-color: #FFBD00;
}

.booth-heat.heat-3 {
    inline-size: 48px;
    block-size: 48px;
    background-color: #E2552A;
}

.booth-heat.heat-4 {
    inline-size: 56px;
    block-size: 56px;
    background-color: #A64E1F;
    color: #FFFFFF;
}

.booth-heat.heat-5 {
    inline-size: 64px;
    block-size: 64px;
    background-color: #7C3A16;
    color: #FFFFFF;
}

/* المسودات الآلية (REQ-AI-004، D-516). */
.ai-text {
    white-space: pre-line;
    padding: 12px;
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    background: #FFFFFF;
    line-height: 1.7;
}

.ai-session {
    display: grid;
    gap: 8px;
    padding-block: 12px;
    border-block-end: 1px solid #E5E5DC;
}

/* معرض الصور للاعتدال (REQ-MEDIA-001، D-514). */
.photo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
    margin-block: 12px;
}

.photo-card {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 8px;
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    background: #FFFFFF;
}

.photo-card img {
    inline-size: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 6px;
    background: #F4F4F0;
}

.check-row {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    margin-block: 8px;
}

/* رموز المطاردة والأجنحة للطباعة (REQ-GAME-001، D-513). */
.code-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 16px;
    margin-block: 12px;
}

.code-grid .qr svg {
    inline-size: 140px;
    block-size: 140px;
}

.here-code .qr svg {
    inline-size: 160px;
    block-size: 160px;
}

/* الرعاة والعارضون (REQ-SPN-001، SCR-ORG-039). */
.sponsor-board {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
    margin-block: 12px;
}

.sponsor-card {
    padding: 12px;
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    background-color: #FFFFFF;
}

.sponsor-card.selected {
    border-color: #0F4C45;
}

.fulfillment {
    list-style: none;
    padding: 0;
    margin-block: 8px;
    font-size: 13px;
}

.fulfillment li.done {
    color: #0F4C45;
    font-weight: 600;
}

.fulfillment li.open {
    color: #A64E1F;
}

.sponsor-logo-preview {
    max-block-size: 96px;
    max-inline-size: 240px;
    object-fit: contain;
    border: 1px solid #C2C5AA;
    padding: 6px;
    background-color: #FFFFFF;
}

.warning-text {
    color: #A64E1F;
    font-weight: 600;
}

/* الترجمة واكتمالها (REQ-I18N-002، SCR-ORG-057). */
.translation-row {
    display: grid;
    grid-template-columns: minmax(200px, 2fr) minmax(200px, 2fr) auto;
    gap: 12px;
    align-items: center;
    padding-block: 8px;
    border-block-end: 1px solid #C2C5AA;
}

/* شريط حالة المنصة (REQ-ADM-005). */
.status-banner {
    margin-block-end: 8px;
}

/* خريطة حقول الموصل (REQ-CRM-001): حقل الناظم يمينًا وسمة Dynamics يسارًا. */
.mapping-grid {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(220px, 2fr);
    gap: 8px 16px;
    align-items: center;
    margin-block: 12px;
}

.mapping-source {
    font-weight: 600;
}

.preview-row {
    border-block-end: 1px solid #C2C5AA;
    padding-block: 8px;
}

.json-preview {
    font-size: 13px;
    white-space: pre-wrap;
    word-break: break-all;
    background-color: #FFFFFF;
    border: 1px solid #C2C5AA;
    padding: 8px;
    margin-block: 4px;
}

/* إعدادات حساب العتاد (REQ-HW-001): حقول متجاورة تلتف على الشاشات الضيقة. */
.hardware-plan-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px 16px;
    align-items: center;
    margin-block: 12px;
}

.table-group th {
    background-color: #E6EFEE;
    font-weight: 600;
    text-align: start;
}

/* اللوحة التنفيذية (REQ-RPT-005): بطاقات عمودية بأرقام كبيرة للجوال أولًا. */
.executive-cards {
    list-style: none;
    margin: 16px 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 12px;
}

.executive-card {
    background-color: #FFFFFF;
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.executive-card-label {
    font-weight: 600;
    color: #5A5A4A;
}

.executive-card-value {
    font-size: 32px;
    font-weight: 700;
    color: #0F4C45;
}

.executive-card-delta.up {
    color: #0F4C45;
}

.executive-card-delta.down {
    color: #DC2626;
}

/* المقاعد والبروتوكول SCR-ORG-047 (REQ-SEAT-001، D-470): الضيوف يمينًا والمقاعد يسارًا، والمقعد زر يقبل الإفلات والنقر ولوحة المفاتيح. */
.seating-layout {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 3fr;
    gap: 16px;
    margin-block-start: 16px;
}

@media (max-width: 900px) {
    .seating-layout {
        grid-template-columns: 1fr;
    }
}

.seating-guest-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-block-size: 70vh;
    overflow-y: auto;
}

.seating-guest {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-block: 8px;
    padding-inline: 8px;
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    background-color: #FFFFFF;
}

.seating-guest.selected {
    border-color: #0F4C45;
    background-color: #E6EFEE;
}

.seating-pick {
    display: flex;
    flex-direction: column;
    gap: 2px;
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    text-align: start;
    cursor: pointer;
}

.seating-pick:focus-visible,
.seating-seat:focus-visible {
    outline: 3px solid #A64E1F;
    outline-offset: 2px;
}

.seating-map {
    overflow-x: auto;
}

.seating-row {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-block-end: 8px;
}

.seating-row-label {
    min-inline-size: 96px;
    font-weight: 600;
}

.seating-seat {
    min-inline-size: 72px;
    min-block-size: 48px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-inline: 4px;
    border: 1px solid #A8AB96;
    border-radius: 6px;
    background-color: #FFFFFF;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}

.seating-seat.head {
    background-color: #E6EFEE;
}

.seating-seat.accessible {
    border: 2px solid #1D4E89;
}

.seating-seat.occupied {
    background-color: #F4D58D;
}

.seating-seat.selected {
    outline: 3px solid #0F4C45;
}

/* مجموعات الخانات في الاعتماد (REQ-ACC-001): الوثائق والمسارات بلا إطار. */
.check-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    margin: 0 0 0.75rem;
    padding: 0;
    border: 0;
}

.check-group legend {
    margin-block-end: 0.25rem;
    font-weight: 600;
}

/* لون مستوى الاعتماد (REQ-ACC-002): عيّنة بجانب اسم المستوى. */
.level-swatch {
    display: inline-block;
    inline-size: 1.25rem;
    block-size: 1.25rem;
    border: 1px solid #5A5A4A;
    border-radius: 4px;
    vertical-align: middle;
}

/* بطاقات لوحات الملصقات برمز يفتح الملصق في التطبيق (SCR-ORG-067). */
.board-labels {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
    margin-block-start: 16px;
}

.board-label {
    border: 1px solid var(--alnazim-line);
    border-radius: 8px;
    padding: 16px;
    break-inside: avoid;
}

.board-qr svg {
    inline-size: 160px;
    block-size: 160px;
}

/* المدفوعات SCR-ORG-071 (REQ-PAY-001، D-497). */
.summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
    margin: 0;
}

.summary-grid > div {
    padding: 12px;
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    background-color: #FFFFFF;
}

.summary-grid dt {
    font-size: 13px;
    color: #5A5A4A;
}

.summary-grid dd {
    margin: 4px 0 0;
    font-size: 18px;
    font-weight: 600;
}

.panel-inner {
    margin-block-start: 16px;
    padding: 16px;
    border: 1px solid #C2C5AA;
    border-radius: 8px;
}

.text-warning {
    color: #7C3A16;
    font-weight: 600;
}

.text-error {
    color: #B91C1C;
    font-weight: 600;
}

.nowrap-cell {
    white-space: nowrap;
}

.inline-action {
    margin-inline-start: 8px;
}

.plain-fieldset {
    display: flex;
    flex-wrap: wrap;
    gap: 0 16px;
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    padding: 8px 12px;
    margin-block: 12px;
}

.plain-fieldset > legend {
    flex-basis: 100%;
}

/* منشئ التقارير المخصص SCR-ORG-074 (D-506): مناطق الإفلات متجاورة وتلتف على الشاشة الضيقة. */
.custom-report-zones {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-block: 12px;
}

.custom-report-zone {
    flex: 1 1 260px;
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    padding: 12px;
    background: #FFFFFF;
}

.custom-report-zone-title {
    font-size: 1rem;
    margin-block-end: 8px;
}

.custom-report-dropzone {
    min-block-size: 96px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.custom-report-field {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding-inline: 10px;
    padding-block: 4px;
    border: 1px solid #C2C5AA;
    border-radius: 6px;
    background: #FAF5EB;
    cursor: grab;
}

.custom-report-field.measure {
    border-inline-start: 4px solid #0F766E;
}

.custom-report-field.dimension {
    border-inline-start: 4px solid #5B2C87;
}

/* منشئ سير العمل SCR-ORG-075 (D-508): اللوحة تتدفق من اليمين بخانات بين العقد، والتفرّع والموافقة يفتحان صفين، وتتمرر أفقيًا داخلها لا الصفحة. */
.wf-builder {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.wf-palette {
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    padding: 8px 12px;
    background: #FFFFFF;
}

.wf-palette-title {
    font-size: 1rem;
    margin-block-end: 6px;
}

.wf-palette-zone {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-block-size: 40px;
}

.wf-palette-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding-inline: 10px;
    padding-block: 4px;
    border: 1px solid #C2C5AA;
    border-radius: 6px;
    background: #FAF5EB;
    cursor: grab;
    font-size: 14px;
}

.wf-canvas {
    overflow-x: auto;
    border: 1px solid #C2C5AA;
    border-radius: 8px;
    padding: 16px;
    background: #FDFBF6;
    max-inline-size: 100%;
}

.wf-lane {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: nowrap;
}

.wf-node {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    inline-size: 170px;
    min-block-size: 64px;
    padding: 8px 10px;
    border: 1px solid #A8AB96;
    border-radius: 8px;
    background: #FFFFFF;
    color: #1A1A1A;
    font: inherit;
    font-size: 14px;
    text-align: start;
    cursor: pointer;
    flex-shrink: 0;
}

.wf-node:focus-visible {
    outline: 2px solid #0F4C45;
    outline-offset: 2px;
}

.wf-node-head {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
}

.wf-node-summary {
    font-size: 13px;
    color: #5A5A4A;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-inline-size: 150px;
}

.wf-node-trigger {
    border-inline-start: 4px solid #0F4C45;
}

.wf-node-conditions,
.wf-node-branch {
    border-inline-start: 4px solid #A64E1F;
}

.wf-node-approval,
.wf-node-wait {
    border-inline-start: 4px solid #5B2C87;
}

.wf-node-stop {
    border-inline-start: 4px solid #DC2626;
}

.wf-node-selected {
    border-color: #0F4C45;
    box-shadow: 0 0 0 2px #0F4C45;
}

.wf-node-error {
    border-color: #DC2626;
    background: #FDECEC;
}

.wf-node-reached {
    font-size: 13px;
    font-weight: 600;
    color: #0F4C45;
}

.wf-connector {
    display: inline-block;
    inline-size: 24px;
    block-size: 2px;
    background: #A8AB96;
    flex-shrink: 0;
}

.wf-slot {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-inline-size: 44px;
    min-block-size: 44px;
    flex-shrink: 0;
}

.wf-slot::before {
    content: "";
    position: absolute;
    inset-inline: 0;
    inset-block-start: 50%;
    block-size: 2px;
    background: #A8AB96;
}

.wf-slot-zone {
    position: absolute;
    inset: 0;
    border-radius: 6px;
}

.wf-slot-add {
    position: relative;
    background: #FFFFFF;
    border-radius: 50%;
}

.wf-can-drop {
    outline: 2px dashed #0F4C45;
    background: #E6EFEE;
}

.wf-split {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-shrink: 0;
}

.wf-lanes {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-inline-start: 8px;
    border-inline-start: 2px solid #A8AB96;
}

.wf-lane-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
}

.wf-lane-label {
    font-size: 13px;
    font-weight: 600;
    color: #5A5A4A;
    min-inline-size: 48px;
}

.wf-condition {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-block: 6px;
}

.wf-issue-list {
    margin-block: 6px 0;
    padding-inline-start: 20px;
}

/* كتل الصفحات المخصصة في محرر الموقع (REQ-SITE-004، D-527). */
.website-block {
    border-inline-start: 3px solid #C2C5AA;
    padding-inline-start: 12px;
    margin-block: 8px;
}
