/*! KASHF-COPYRIGHT © 2026 مؤسسة العزل الحصين للمقاولات (س.ت 1010824507) — منصة كشف kashf.com.sa — انظر NOTICE.txt */
/*! Kashf v129 APPS — kx-apps.css: الطبقة المشتركة لواجهات التطبيقات (تطبيق الفني Pro · بوابة الشركاء · /book/ · /partners/).
 * شريط حالة الاتصال الحقيقية (navigator.onLine) · هياكل التحميل · رسالة الخطأ المضمَّنة · بطاقة صفحة التطبيق · دخول الشاشات بحركة هادئة.
 * كل الألوان من رموز --k-* (kashf-tokens.css) أو رموز الوضع (--kc-* للعميل) مع قيم احتياطية مفحوصة التباين؛ الوضع الداكن و«شمس» (D10) مدعومان؛
 * لا إزاحة تخطيط (الشريط ثابت الموضع، الهياكل محجوزة الارتفاع)؛ الحركة تُلغى كلياً مع prefers-reduced-motion أو data-km=off. docs/151 */

:root{--kx-ink:var(--kc-ink,var(--k-text,#0C241B));--kx-surface:var(--kc-surface,var(--k-surface,#FFFFFF));--kx-sunk:var(--kc-sunk,var(--k-surface-2,#EAF5EF));--kx-hair:var(--kc-hair,var(--k-border,#D3E9DC));--kx-muted:var(--kc-muted,var(--k-muted,#4B6358));--kx-primary:var(--kc-primary,var(--k-primary,#057A57));--kx-on-primary:var(--kc-on-primary,var(--k-on-primary,#FFFFFF));--kx-danger:var(--kc-emergency,#B42318);--kx-danger-bg:#FDECEC;--kx-warn-bg:#3A2A05;--kx-warn-ink:#FFE7A8;--kx-ok-bg:#0B3D2B;--kx-ok-ink:#C9F2DA;--kx-ease:cubic-bezier(.22,1,.36,1)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=sun]):not([data-kc-scheme=light]){--kx-danger:#FF8A80;--kx-danger-bg:#3A1212}}
:root[data-kc-scheme=dark],:root.k-smart{--kx-danger:#FF8A80;--kx-danger-bg:#3A1212}
:root[data-theme=sun]{--kx-ink:#000;--kx-surface:#fff;--kx-hair:#000;--kx-muted:#1F2A25;--kx-primary:#005C3B;--kx-warn-bg:#000;--kx-warn-ink:#fff;--kx-ok-bg:#000;--kx-ok-ink:#fff}

/*@kx net — شريط الاتصال: ثابت فوق المحتوى (لا يزيح التخطيط)، يظهر فقط عند انقطاع حقيقي ثم «عاد الاتصال» لثوانٍ */
.kx-net{position:fixed;z-index:2147483000;inset-inline:12px;inset-block-start:calc(10px + env(safe-area-inset-top,0px));margin-inline:auto;max-width:520px;display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 14px;border-radius:14px;background:var(--kx-warn-bg);color:var(--kx-warn-ink);font:600 14px/1.45 var(--kc-font,"IBM Plex Sans Arabic",system-ui,-apple-system,"Segoe UI",Tahoma,sans-serif);box-shadow:0 10px 30px -12px rgba(0,0,0,.45);transform:translateY(0);opacity:1;transition:transform 260ms var(--kx-ease),opacity 260ms var(--kx-ease)}
.kx-net[hidden]{display:flex!important;transform:translateY(calc(-100% - 24px));opacity:0;pointer-events:none;visibility:hidden;transition:transform 200ms var(--kx-ease),opacity 200ms var(--kx-ease),visibility 0s 200ms}
.kx-net[data-s=on]{background:var(--kx-ok-bg);color:var(--kx-ok-ink)}
.kx-net i{flex:none;width:10px;height:10px;border-radius:50%;background:currentColor}
.kx-net[data-s=off] i{animation:kx-blink 1.6s ease-in-out infinite}
.kx-net span{min-width:0}
:root[data-theme=sun] .kx-net{border:2px solid #fff;font-size:16px}
@keyframes kx-blink{50%{opacity:.35}}

/*@kx skeleton — هيكل تحميل بارتفاع محجوز (لا يقفز المحتوى عند وصوله) */
.kx-skel{display:block;height:var(--kx-skel-h,52px);margin:6px 0;border-radius:var(--kc-r-ctl,14px);background:linear-gradient(90deg,var(--kx-sunk) 25%,var(--kx-surface) 50%,var(--kx-sunk) 75%);background-size:200% 100%;animation:kx-sh 1.3s linear infinite}
.kx-skel.sm{height:16px;border-radius:8px;width:60%}
.kx-skel.card{--kx-skel-h:120px}
@keyframes kx-sh{from{background-position:100% 0}to{background-position:-100% 0}}

/*@kx error — خطأ مضمَّن بدل alert(): يُقرأ بقارئ الشاشة (role=alert)، ومعه بديل الاتصال المباشر حين يتعذّر الخادم */
.kx-err{display:grid;gap:8px;margin:10px 0;padding:12px 14px;border-radius:14px;border:1px solid var(--kx-danger);border-inline-start-width:4px;background:var(--kx-danger-bg);color:var(--kx-ink);font-size:14.5px}
.kx-err[hidden]{display:none!important}
.kx-err b{color:var(--kx-danger)}
.kx-err .kx-acts{display:flex;flex-wrap:wrap;gap:8px}
.kx-err .kx-acts>*{display:inline-flex;align-items:center;justify-content:center;width:auto!important;min-height:44px!important;margin:0!important;padding:0 16px!important;border-radius:12px!important;font-weight:700;text-decoration:none;text-align:center!important}
.kx-err a.kx-call{background:var(--kx-primary);color:var(--kx-on-primary);border:1px solid var(--kx-primary)}

/*@kx view — دخول الشاشة (تطبيق الفني): شفافية+إزاحة صغيرة فقط، 220ms */
.kx-js [data-kx-view].kx-in>*{animation:kx-in 220ms var(--kx-ease) both}
@keyframes kx-in{from{opacity:0;transform:translateY(8px)}}
.kx-boot{display:grid;gap:12px;padding:4px 0}
.kx-boot .kx-skel{margin:0}

/*@kx targets — أهداف لمس ≥44px وتركيز ظاهر لعناصر الواجهة المشتركة */
.kx-app :where(.btn,button:not(.kx-plain),[role=button]){min-height:44px}
.kx-app :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--kx-primary);outline-offset:2px}
.kx-sr{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0}

/*@kx partners — صفحة تطبيق الشركاء (/partners/) */
.kx-pa{max-width:760px;margin:0 auto;padding:24px 16px 40px;box-sizing:border-box}
.kx-pa-hero{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;margin:0 0 18px}
.kx-pa-hero.kx-pa-nomark{grid-template-columns:1fr}
.kx-pa-hero img{width:72px;height:72px;border-radius:18px;box-shadow:0 10px 26px -12px rgba(5,122,87,.55)}
.kx-pa-hero h1{margin:0 0 4px;font-size:clamp(24px,5.4vw,34px);line-height:1.2;text-wrap:balance}
.kx-pa-hero p{margin:0;color:var(--k-muted,#4B6358)}
.kx-pa-feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:0 0 20px;padding:0;list-style:none}
.kx-pa-feat li{display:grid;gap:4px;padding:14px 16px;border:1px solid var(--k-border,#D3E9DC);border-radius:16px;background:var(--k-surface,#fff)}
.kx-pa-feat b{font-size:15.5px}
.kx-pa-feat span{color:var(--k-muted,#4B6358);font-size:14px}
.kx-pa-stores{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 8px}
.kx-pa-stores>*{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:14px;font-weight:700;text-decoration:none}
.kx-pa-stores a{background:var(--k-primary,#057A57);color:var(--k-on-primary,#fff)}
.kx-pa-stores [aria-disabled=true]{border:1px dashed var(--k-border,#B9D3C6);color:var(--k-muted,#4B6358);background:transparent}
.kx-pa-state{margin:0 0 12px;padding:10px 14px;border-radius:12px;background:var(--k-surface-2,#EAF5EF)}
.kx-pa-join{margin:22px 0 0;padding:18px;border-radius:18px;background:var(--k-surface-2,#EAF5EF)}
.kx-pa-join h2{margin:0 0 6px;font-size:20px}
.kx-pa-join p{margin:0}
.kx-pa-join a{display:inline-flex;align-items:center;min-height:44px}
.kx-pa>p.small.muted{margin:18px 0 0;font-size:13.5px;color:var(--k-muted,#4B6358)}
@media (max-width:420px){.kx-pa-hero{grid-template-columns:1fr}.kx-pa-hero img{width:60px;height:60px}}

/*@kx motion — احترام تفضيل تقليل الحركة وإيقاف الحركة من إعدادات المستخدم */
@media (prefers-reduced-motion:reduce){.kx-net,.kx-net[hidden]{transition:none}.kx-net[data-s=off] i,.kx-skel,.kx-js [data-kx-view].kx-in>*{animation:none}}
:root[data-km=off] :is(.kx-net[data-s=off] i,.kx-skel,[data-kx-view].kx-in>*){animation:none}
