*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font-family: var(--font-ui);
    font-size: 15px;
    line-height: 1.7;
    font-weight: 400;
}

h1,
h2,
h3,
h4 {
    font-weight: 700;
    line-height: 1.28;
    letter-spacing: -0.02em;
    margin: 0 0 var(--space-3);
}

p {
    margin: 0 0 var(--space-4);
    max-width: var(--measure);
}

a {
    color: inherit;
    text-decoration: none;
}

a:focus-visible,
button:focus-visible,
input:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* كل رقم في الموقع يُرصف عموديًا */
.jl-num,
td,
th {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
}

/*
 * <time> يحمل كلمات أيضًا («اليوم»، «أمس»)، وخطّ الأرقام أحاديّ المسافة
 * لاتينيّ فيسقط العربيُّ فيه إلى خطّ بديل بتباعد مشوَّه. الأرقام المصطفّة
 * تكفي هنا، والخطّ المخصّص يُطلب صراحةً بـ .jl-num حيث المحتوى رقم فعلًا.
 */
time {
    font-variant-numeric: tabular-nums;
}

/* الفصل بخطوط رفيعة — لا ظلال في هذا النظام */
.jl-rule {
    border: 0;
    border-top: var(--hairline);
    margin: var(--space-5) 0;
}

.jl-site-header {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    background: var(--nav-bg);
    color: var(--nav-ink);
    padding: 0 var(--space-4);
    min-height: 54px;
}

.jl-brand {
    font-weight: 700;
    font-size: 17px;
    letter-spacing: -0.03em;
}

.jl-header-actions {
    margin-inline-start: auto;
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.jl-theme-toggle {
    background: transparent;
    color: inherit;
    border: 1px solid currentColor;
    border-radius: var(--radius);
    padding: 5px 10px;
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}

.jl-main {
    padding: var(--space-5) var(--space-4);
}

/* --------------------------------------------------------------------------
   حاصر العرض

   خطّ المرجع الوحيد في الموقع. كل ما يحمل هذا الصنف يبدأ من الحافّة
   نفسها التي تبدأ منها الترويسة — والحافّة المستقيمة لا يلاحظها أحد،
   أمّا المهتزّة فيراها الجميع ولا يعرف أحد سببها.

   ولا يُخلط بـ .jl-shell في craft.css: ذاك غلافٌ بحشوة وحافّة وانحناء،
   وهذا حاصر عرض لا شكل له.
   -------------------------------------------------------------------------- */

.jl-wrap {
    max-width: var(--container);
    margin-inline: auto;
    padding-inline: var(--gutter);
}

.jl-site-footer {
    color: var(--muted);
    font-size: 13px;
}

/* الخطّ يعلو المحتوى لا النافذة: الترويسة جزيرة طافية، فلو امتدّ خطّ
   الفوتر بعرض الشاشة لتناقض طرفا الصفحة. */
.jl-site-footer__wrap {
    padding-block: var(--space-5);
    border-top: var(--hairline);
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}
