/* ============================================================================
   saw-controls.css — عناصر التحكّم المشتركة في لوحة ساو تيك لايف
   ============================================================================
   الشريحة ومنتقي اللون. كلاهما يلفّ العنصر الأصلي بـsaw-controls.js فلا يحتاج
   تعديل HTML في أي صفحة: input[type=range] وinput[type=color] تبقى كما هي.

   الألوان كلّها من متغيّرات الهوية فتتبع ثيم الباقة (الفضّي والذهبي والأزرق).
   ولا تُستعمل --p-900/--p-700: فُحصت فوجدت غير معرّفة في المشروع.

   الشريحة مقتبسة من Uiverse.io (boryanakrasteva) ومعدَّلة،
   والمنتقي شكله من Web Awesome والكود لنا.
   ============================================================================ */

/* ═══════════ الشريحة ═══════════ */

/* Capsule and moving light adapted from Uiverse.io by boryanakrasteva. */
.glow-slider { position:relative;height:58px;width:100%;--slider-position:50%;--slider-value:50%; }
.glow-slider__track { position:absolute;left:15px;right:15px;top:25px;height:6px;border-radius:30px;background:rgba(var(--c-dark-rgb,43,20,88),.92);box-shadow:inset 0 1px 3px #0008;pointer-events:none;overflow:hidden; }
.glow-slider__fill { display:block;position:absolute;inset-block:0;right:0;width:var(--slider-value);background:linear-gradient(90deg,var(--purple,#6d34df),var(--p-400,#d9abfa));border-radius:inherit; }
.glow-slider__knob { position:absolute;left:calc(15px + (100% - 30px)*var(--slider-fraction));top:7px;transform:translateX(-50%);width:26px;height:40px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:rgba(var(--c-dark-rgb,43,20,88),.92);border:1px solid var(--p-400,#d9abfa);border-radius:30px;box-shadow:0 0 10px rgba(var(--lux-rgb,109,52,223),.5),inset 0 0 6px rgba(var(--lux-rgb,109,52,223),.1);pointer-events:none; }
.glow-slider__light { width:4px;height:9px;border-radius:10px;background:var(--p-400,#d9abfa);box-shadow:0 0 8px rgba(var(--lux-light-rgb,217,171,250),.7);animation:sliderHint 2s ease-in-out infinite; }
.glow-slider input[type=range] { position:absolute;inset:0;margin:0;width:100%;height:54px;opacity:0;cursor:ew-resize;appearance:none;-webkit-appearance:none;padding:0;border:0; }
.glow-slider input[type=range]::-webkit-slider-thumb { appearance:none;-webkit-appearance:none;width:30px;height:42px; }
.glow-slider input[type=range]::-moz-range-thumb { width:30px;height:42px;border:0; }
.glow-slider:focus-within .glow-slider__knob { outline:2px solid var(--p-300,#e9d5ff);outline-offset:3px; }
.glow-slider:has(input:active) .glow-slider__knob { box-shadow:0 0 15px rgba(var(--lux-rgb,109,52,223),.7); }
.glow-slider--disabled { opacity:.35; }
.glow-slider--disabled input { cursor:not-allowed; }
.glow-slider--disabled .glow-slider__knob { border-color:var(--gry-64b,#9aa0ac);box-shadow:none; }
.glow-slider--disabled .glow-slider__light { animation:none;background:var(--gry-64b,#9aa0ac);box-shadow:none; }
.glow-slider__value { position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);font:11px Tahoma,sans-serif;color:var(--text-dim,#b9a5d8);pointer-events:none; }
.cmp__demo { gap:24px;padding-bottom:25px; }
@keyframes sliderHint { 0%,100% { transform:translateY(-3px);opacity:.6; } 50% { transform:translateY(3px);opacity:1; } }
@media(prefers-reduced-motion:reduce) { .glow-slider__light { animation:none; } }
@media(forced-colors:active) { .glow-slider input[type=range] { opacity:1;appearance:auto; } .glow-slider__track,.glow-slider__knob { display:none; } }
/* The glowing capsule is the entire thin horizontal control. */
.glow-slider { height:38px; }
.glow-slider__track {
 left:0;right:0;top:10px;height:14px;box-sizing:border-box;
 border:1px solid rgba(var(--lux-light-rgb,217,171,250),.7);
 border-radius:30px;background:rgba(var(--c-dark-rgb,43,20,88),.92);
 box-shadow:0 0 9px rgba(var(--lux-rgb,109,52,223),.35),inset 0 0 5px rgba(var(--lux-rgb,109,52,223),.12);
}
.glow-slider__fill { opacity:.15; }
.glow-slider__knob {
 left:calc(15px + (100% - 30px)*var(--slider-fraction));top:14px;
 width:12px;height:6px;border:0;border-radius:10px;
 background:var(--p-400,#d9abfa);
 box-shadow:0 0 7px rgba(var(--lux-light-rgb,217,171,250),.7);
}
.glow-slider__light { display:none; }
.glow-slider input[type=range] { height:38px; }
.glow-slider__value { bottom:-8px; }
.glow-slider--disabled .glow-slider__track { border-color:var(--gry-64b,#9aa0ac);background:rgba(0,0,0,.34);box-shadow:none; }
.glow-slider--disabled .glow-slider__knob { background:var(--gry-64b,#9aa0ac);box-shadow:none; }/* Grab cursor for the draggable slider instead of resize arrows. */
.glow-slider input[type=range]:not(:disabled) { cursor:grab; }
.glow-slider input[type=range]:not(:disabled):active { cursor:grabbing; }/* Live value bubble shown only while the slider is being dragged. */
.glow-slider__bubble {
 position:absolute;left:calc(15px + (100% - 30px)*var(--slider-fraction));bottom:calc(100% + 2px);
 transform:translate(-50%,5px) scale(.9);transform-origin:50% 100%;
 min-width:34px;padding:6px 9px;box-sizing:border-box;border-radius:11px;
 background:linear-gradient(150deg,rgba(var(--lux-rgb,109,52,223),.45),rgba(var(--c-dark-rgb,43,20,88),.92));border:1px solid rgba(var(--lux-light-rgb,217,171,250),.5);
 color:var(--text,#f3ecff);font:700 12px Tahoma,sans-serif;text-align:center;white-space:nowrap;
 box-shadow:0 4px 14px rgba(var(--lux-rgb,109,52,223),.2);
 opacity:0;visibility:hidden;pointer-events:none;z-index:5;
 transition:opacity 130ms ease,transform 130ms ease,visibility 130ms;
}
.glow-slider__bubble::after {
 content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);
 border:5px solid transparent;border-top-color:rgba(var(--lux-rgb,109,52,223),.45);
}
.glow-slider.is-value-dragging .glow-slider__bubble {
 opacity:1;visibility:visible;transform:translate(-50%,0) scale(1.3);
}
.cmp__demo { padding-top:40px;gap:42px; }
@media(prefers-reduced-motion:reduce) { .glow-slider__bubble { transition:none; } }/* Keep the value centered inside a slightly thicker slider track. */
.glow-slider__track { top:8px;height:22px; }
.glow-slider__knob { top:16px; }
.glow-slider__value {
 top:8px;bottom:auto;height:22px;display:flex;align-items:center;justify-content:center;
 font:700 11px Tahoma,sans-serif;color:var(--text,#f3ecff);
 text-shadow:0 1px 3px #000,0 0 5px rgba(var(--c-dark-rgb,43,20,88),.92);z-index:2;
}/* Flowing sheen runs only while the slider is held. */
.glow-slider__track::after {
 content:'';position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;
 background:linear-gradient(105deg,
 transparent 10%,rgba(var(--lux-rgb,109,52,223),.08) 25%,
 rgba(var(--lux-rgb,109,52,223),.42) 40%,
 rgba(var(--lux-light-rgb,217,171,250),.52) 48%,
 rgba(255,255,255,.26) 50%,
 rgba(var(--lux-light-rgb,217,171,250),.35) 53%,
 rgba(var(--lux-rgb,109,52,223),.14) 64%,transparent 80%);
 background-size:240% 100%;opacity:0;
 animation:sliderFlowSheen 1.8s linear infinite;animation-play-state:paused;
 transition:opacity 220ms ease;
}
.glow-slider.is-value-dragging .glow-slider__track::after {
 opacity:1;animation-play-state:running;
}
@keyframes sliderFlowSheen { from { background-position:180% 50%; } to { background-position:-60% 50%; } }
@media(prefers-reduced-motion:reduce) {
 .glow-slider__track::after { animation:none;transition:none;background-position:50% 50%; }
}/* Seamless right-to-left sheen: travel exactly one repeated texture period. */
.glow-slider__track::after {
 background-image:linear-gradient(90deg,
 transparent 0%,
 rgba(var(--lux-rgb,109,52,223),.06) 15%,
 rgba(var(--lux-rgb,109,52,223),.28) 32%,
 rgba(var(--lux-light-rgb,217,171,250),.42) 44%,
 rgba(255,255,255,.24) 50%,
 rgba(var(--lux-light-rgb,217,171,250),.42) 56%,
 rgba(var(--lux-rgb,109,52,223),.28) 68%,
 rgba(var(--lux-rgb,109,52,223),.06) 85%,transparent 100%);
 background-size:220px 100%;background-repeat:repeat-x;
 animation-name:sliderFlowSeamless;
 animation-duration:2.4s;animation-timing-function:linear;animation-iteration-count:infinite;
}
@keyframes sliderFlowSeamless {
 from { background-position:0 50%; }
 to { background-position:-220px 50%; }
}
@media(prefers-reduced-motion:reduce) {
 .glow-slider__track::after { animation:none; }
}/* One sheen only; loop resets while the entire sheen is outside the clipped track. */
.glow-slider__track::after {
 inset:0 auto 0 0;width:100%;
 background-image:linear-gradient(90deg,
 transparent 34%,
 rgba(var(--lux-rgb,109,52,223),.08) 40%,
 rgba(var(--lux-light-rgb,217,171,250),.25) 47%,
 rgba(255,255,255,.22) 50%,
 rgba(var(--lux-light-rgb,217,171,250),.25) 53%,
 rgba(var(--lux-rgb,109,52,223),.08) 60%,
 transparent 66%);
 background-size:100% 100%;background-repeat:no-repeat;background-position:center;
 animation:sliderFlowSingle 2.8s linear infinite;
 animation-play-state:paused;
}
.glow-slider.is-value-dragging .glow-slider__track::after { animation-play-state:running; }
@keyframes sliderFlowSingle {
 from { transform:translateX(68%); }
 to { transform:translateX(-68%); }
}
@media(prefers-reduced-motion:reduce) {
 .glow-slider__track::after { animation:none;transform:none; }
}/* Left-moving comet sheen: bright leading edge and longer fading tail to the right. */
.glow-slider__track::after {
 background-image:linear-gradient(90deg,
 transparent 22%,
 rgba(var(--lux-light-rgb,217,171,250),.10) 24%,
 rgba(245,232,255,.56) 27%,
 rgba(var(--lux-light-rgb,217,171,250),.43) 30%,
 rgba(var(--lux-light-rgb,217,171,250),.28) 38%,
 rgba(var(--lux-rgb,109,52,223),.20) 49%,
 rgba(var(--lux-rgb,109,52,223),.11) 61%,
 rgba(var(--lux-rgb,109,52,223),.035) 73%,
 transparent 80%);
 animation-name:sliderFlowComet;
 animation-duration:3.2s;
}
@keyframes sliderFlowComet {
 from { transform:translateX(80%); }
 to { transform:translateX(-82%); }
}
@media(prefers-reduced-motion:reduce) {
 .glow-slider__track::after { animation:none;transform:none; }
}

/* ═══════════ منتقي اللون ═══════════ */

/* ===== .saw-color — منتقي اللون =====
   الشكل مقتبس من منتقي Web Awesome، والكود لنا بالكامل: لا سكربت خارجيّ ولا CDN.
   يلفّ input[type=color] الأصلي ويُبقيه في الشجرة حاملًا للقيمة، فيكتب فيه ويُطلق
   input/change — فكل قارئ للقيمة في اللوحة يعمل كما هو.
   الألوان كلّها من متغيّرات الهوية فتتبع ثيم الباقة. */
.saw-color { position:relative; display:inline-block; }
.saw-color > input[type=color] { display:none !important; }

/* الزرّ: رقعة اللون + قيمته */
.saw-color__trigger {
 display:inline-flex; align-items:center; cursor:pointer;
 padding:5px; border-radius:999px;
 background:rgba(var(--c-dark-rgb,43,20,88),.85);
 border:1px solid var(--card-border,rgba(109,52,223,.28));
 font-family:inherit; font-weight:700; font-size:.78rem; color:var(--text,#f3ecff);
 transition:border-color .18s ease, box-shadow .25s ease;
}
.saw-color__trigger:hover { border-color:rgba(var(--lux-rgb,109,52,223),.55); box-shadow:0 0 0 3px rgba(var(--lux-rgb,109,52,223),.10); }
.saw-color__trigger:focus-visible { outline:2px solid var(--purple-light,#d9abfa); outline-offset:2px; }
.saw-color__swatch {
 width:26px; height:26px; border-radius:999px; flex:0 0 auto;
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.22), 0 2px 8px rgba(0,0,0,.35);
 /* شطرنج خلف اللون ليظهر الفاتح منه */
 background-image:linear-gradient(var(--sc-val,#6d34df),var(--sc-val,#6d34df)),
                  conic-gradient(#ffffff26 0 25%,#0000 0 50%,#ffffff26 0 75%,#0000 0);
 background-size:100% 100%, 10px 10px;
}

/* اللوحة */
.saw-color__panel {
 position:absolute; z-index:70; inset-inline-start:0; top:calc(100% + 8px);
 width:232px; padding:12px; border-radius:16px;
 background:rgba(var(--c-dark-rgb,43,20,88),.97); border:1px solid var(--card-border,rgba(109,52,223,.28));
 box-shadow:0 18px 44px rgba(0,0,0,.5);
 display:none;
}
.saw-color__panel[data-open] { display:block; }
.saw-color__panel[popover] {
 position:fixed;inset:auto;margin:0;box-sizing:border-box;
 max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:auto;
}
.saw-color__panel::backdrop { background:transparent; }

/* شبكة التشبّع/السطوع */
.saw-color__grid {
 position:relative; height:132px; border-radius:12px; cursor:crosshair; overflow:hidden;
 background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,var(--sc-hue,#f00));
 touch-action:none;
}
.saw-color__grid-handle, .saw-color__hue-handle {
 position:absolute; width:14px; height:14px; border-radius:999px; pointer-events:none;
 border:2px solid #fff; box-shadow:0 0 0 1px rgba(0,0,0,.45), 0 2px 6px rgba(0,0,0,.5);
}
.saw-color__grid-handle { transform:translate(-50%,-50%); }

/* شريط التدرّج */
.saw-color__hue {
 position:relative; height:12px; margin-top:12px; border-radius:999px; cursor:ew-resize; touch-action:none;
 background:linear-gradient(to right,#f00 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%);
}
.saw-color__hue-handle { top:50%; transform:translate(-50%,-50%); width:16px; height:16px; }

/* اختيار بصري فقط — القطّارة بلا حقل كود لون. */
.saw-color__row { display:flex; gap:7px; margin-top:12px; }
.saw-color__eyedrop {
 flex:0 0 auto; width:34px; height:34px; border-radius:999px; cursor:pointer;
 background:rgba(var(--lux-rgb,109,52,223),.14); border:1px solid rgba(var(--lux-rgb,109,52,223),.42);
 color:var(--text,#f3ecff); font-size:.9rem;
}
.saw-color__eyedrop:hover { background:rgba(var(--lux-rgb,109,52,223),.24); }

/* عيّنات جاهزة */
.saw-color__swatches { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.saw-color__swatches button {
 width:20px; height:20px; border-radius:999px; cursor:pointer; padding:0;
 border:1px solid rgba(255,255,255,.2);
}
.saw-color__swatches button:hover { box-shadow:0 0 0 2px rgba(var(--lux-light-rgb,217,171,250),.5); }
@media(prefers-reduced-motion:reduce){ .saw-color__trigger{ transition:none; } }


/* ═══════════ الراديو ═══════════
   يحلّ محلّ الأشكال الثلاثة القائمة (.adv-radio · .tts-row · لصيقة عارية).
   المحوّل في saw-controls.js يضيف .saw-radio ويحقن علامة الاختيار بعد المدخل
   مباشرةً — والمدخل الأصلي يبقى هو حامل القيمة فلا يتغيّر أي منطق.
   الخلفية والحدّ بـ!important لأن مجموعة «رقاقات الاختيار» في dashboard.css
   تفرضهما على .tts-row بـ!important. */
.saw-radio { background:transparent !important; border:0 !important; box-shadow:none !important; }
/* From Uiverse.io by gagan-gv: adapted to native radios and brand colors. */
.saw-radio { position:relative;display:flex;align-items:center;gap:18px;padding:8px 12px;background:transparent;border:0;font-size:.85rem;cursor:pointer;user-select:none; }
.saw-radio input[type=radio] { position:absolute;opacity:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0; }
.radio-checkmark { position:relative;display:block;flex:0 0 32px;width:32px;height:32px;box-sizing:border-box;border-radius:50px;background:rgba(var(--c-dark-rgb,43,20,88),.92);border:1px solid rgba(var(--lux-light-rgb,217,171,250),.15);transition:box-shadow .7s ease,border-color .3s ease; }
input:checked ~ .radio-checkmark {
 background:rgba(var(--c-dark-rgb,43,20,88),.92);border-color:rgba(var(--lux-light-rgb,217,171,250),.35);
 box-shadow:-7px -7px 20px rgba(var(--lux-rgb,109,52,223),.32),0 -8px 20px rgba(var(--lux-rgb,109,52,223),.28),7px -7px 20px rgba(var(--lux-light-rgb,217,171,250),.2),8px 0 20px rgba(var(--lux-rgb,109,52,223),.32),7px 7px 20px rgba(var(--lux-rgb,109,52,223),.3),0 8px 20px rgba(var(--lux-light-rgb,217,171,250),.2),-7px 7px 20px rgba(var(--lux-rgb,109,52,223),.28);
}
.radio-checkmark::after { content:'';position:absolute;left:11px;top:6px;width:6px;height:12px;border:solid var(--text,#f3ecff);border-width:0 3px 3px 0;transform:rotate(45deg) scale(.7);opacity:0;transition:opacity 180ms ease,transform 220ms ease; }
input:checked ~ .radio-checkmark::after { opacity:1;transform:rotate(45deg) scale(1); }
input:focus-visible ~ .radio-checkmark { outline:2px solid var(--purple-light,#d9abfa);outline-offset:4px; }
.saw-radio:hover .radio-checkmark { border-color:rgba(var(--lux-light-rgb,217,171,250),.5); }
input:disabled ~ span { opacity:.4; }
@media(prefers-reduced-motion:reduce) { .radio-checkmark,.radio-checkmark::after { transition:none; } }
/* Scale the radio graphic and its glow to 80%, preserving label size. */
.radio-checkmark { zoom:.8; }

/* ═══════════ شريط التقدّم ═══════════
   يحلّ محلّ .upload-progress القائم. المحوّل يسمّي عنصر التعبئة الموجود
   (upload-progress__fill) ويبقي معرّفه كما هو، فكل كود يضبط عرضه يعمل.
   وحركاته اللانهائية transform وopacity وحدهما (§26). */
/* Adapted from Uiverse.io by rust_1966; brand palette and actual preview progress. */
.upload-progress .upload-progress__bar { position:relative;width:100%;height:20px;background:radial-gradient(circle,rgba(var(--c-dark-rgb,43,20,88),.92),rgba(0,0,0,.34));border-radius:30px;overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,.5);box-sizing:border-box;border:1px solid rgba(var(--lux-light-rgb,217,171,250),.20); }
.upload-progress .upload-progress__bar > .upload-progress__fill { position:absolute;top:0;left:0;height:100%;border-radius:30px;background:linear-gradient(90deg,var(--purple,#6d34df),var(--p-400,#d9abfa));box-shadow:0 0 15px rgba(var(--lux-rgb,109,52,223),.6),0 0 30px rgba(var(--lux-light-rgb,217,171,250),.35);transform-origin:left;animation:brandProgressReveal 3s ease-in-out both; }
.upload-progress .upload-progress__fill::before { content:'';position:absolute;top:50%;left:50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.15),transparent);opacity:.5;animation:brandProgressRipple 3s infinite;pointer-events:none; }
.upload-progress .upload-progress__percent { position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:10px;font-weight:bold;letter-spacing:1px;color:#fff;text-shadow:0 2px 4px #000b;z-index:2;line-height:1; }
.upload-progress .upload-progress__particles { position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none; }
.upload-progress .upload-progress__particles i { position:absolute;width:4px;height:4px;background:#fff;border-radius:50%;opacity:.6;animation:brandProgressFloat 5s infinite ease-in-out; }
.upload-progress .upload-progress__particles i:nth-child(1) { top:10%;left:20%; }
.upload-progress .upload-progress__particles i:nth-child(2) { top:30%;left:70%;animation-delay:1s; }
.upload-progress .upload-progress__particles i:nth-child(3) { top:50%;left:50%;animation-delay:2s; }
.upload-progress .upload-progress__particles i:nth-child(4) { top:80%;left:40%;animation-delay:1.5s; }
.upload-progress .upload-progress__particles i:nth-child(5) { top:90%;left:60%;animation-delay:2.5s; }
.upload-progress .upload-progress__text { margin-top:10px;text-align:center; }
@keyframes brandProgressReveal { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes brandProgressRipple { from { transform:translate(-50%,-50%) scale(.5);opacity:.7; } to { transform:translate(-50%,-50%) scale(1.5);opacity:0; } }
@keyframes brandProgressFloat { 0%,100% { transform:translate(0,0); } 50% { transform:translate(10px,-20px); } }
@media(prefers-reduced-motion:reduce) { .upload-progress .upload-progress__fill,.upload-progress .upload-progress__fill::before,.upload-progress .upload-progress__particles i { animation:none; } }

/* ═══════════ شريط الرابط ═══════════
   يحلّ محلّ .widget-url القائم بغلاف زجاجيّ وقفل. الشكل وحده — النسخ يبقى
   لزرّ copyUrl الموجود، ولم يُنقل معالج النسخ الذي جاء مع التصميم لئلّا
   يُنسخ مرّتين. */
/* Locked glass presentation; copying is handled by the adjacent button. */
/* نُزع user-select:none وpointer-events:none من التصميم الأصلي: كانا يمنعان
   تظليل الرابط ونسخه يدويًّا ويُخرجان الحقل من متناول لوحة المفاتيح. الحقل
   readonly، وهذا وحده يقول «للقراءة» بلا أن يعطّل شيئًا. */
.url-glass { position:relative;flex:1;min-width:0;overflow:hidden;border-radius:var(--btn-r);isolation:isolate;box-shadow:inset 0 1px 0 #ffffff20,0 3px 10px #0002; }
.url-glass .widget-url,
.url-glass .screen-row__url,
.url-glass #da-overlay-url-input { box-sizing:border-box;display:block;width:100%;min-width:0;margin:0;padding-inline-end:44px;color:var(--text-dim,#b9a5d8); }
.url-glass::after { content:'';position:absolute;inset:0;border-radius:inherit;border:1px solid rgba(255,255,255,.17);background:linear-gradient(115deg,rgba(255,255,255,.025) 15%,rgba(255,255,255,.16) 34%,rgba(255,255,255,.035) 46%,transparent 63%),linear-gradient(180deg,rgba(255,255,255,.07),rgba(var(--lux-rgb,109,52,223),.07));backdrop-filter:blur(.55px);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.15);pointer-events:none; }
.url-lock { position:absolute;right:14px;top:50%;transform:translateY(-50%);z-index:2;width:15px;height:15px;fill:none;stroke:var(--text-dim,#b9a5d8);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none; }
.link-copy-success { color:#8fe0b0; }




@keyframes copyHintFloat {
 0%,100% { transform:translate(-50%,0) rotate(45deg); }
 50% { transform:translate(-50%,3px) rotate(45deg); }
}

/* ═══════════ منطقة رفع الملف ═══════════
   تحلّ محلّ .upload-zone و.da-upload-zone القائمتين. المحوّل يلفّ محتواهما
   في .file-upload-design ويُبقي input[type=file] ومعالجات النقر كما هي.
   الدوران ساكنٌ حتى التمرير، والسحابة تطفو بـtranslate. */
/* From Uiverse.io by alsaad1060 — بنيته ومقاساته كما هي، والألوان وحدها
   حُوّلت إلى متغيّرات الهوية لأن الأصل مصمَّم لخلفية فاتحة ولوحتنا داكنة. */
.file-upload-form {
  width: 100%;
  height: fit-content;
  display: flex;
  align-items: center;
  justify-content: center;
}
.file-upload-label input {
  display: none;
}
@keyframes saw-upload-float {
  from { translate: 0 -4px; }
  to   { translate: 0 4px; }
}
.file-upload-label svg { animation: saw-upload-float 2.8s ease-in-out infinite alternate; }
@media (prefers-reduced-motion: reduce) { .file-upload-label svg { animation: none; } }
.file-upload-label svg {
  height: 50px;
  fill: var(--purple-light, #d9abfa);
  margin-bottom: 20px;
}
.file-upload-label {
  cursor: pointer;
  background-color: rgba(var(--c-dark-rgb, 43, 20, 88), .85);
  padding: 30px 70px;
  border-radius: 40px;
  border: 2px dashed rgba(var(--lux-light-rgb, 217, 171, 250), .45);
  box-shadow: 0px 0px 200px -50px rgba(0, 0, 0, 0.719);
  width: 100%;
  box-sizing: border-box;
  color: var(--text, #f3ecff);
  transition: border-color .18s ease, background-color .18s ease;
}
/* الدوران مسحوبٌ من Uiverse.io by terenceodonoghue — بقي منه المحرّك وحده:
   مربّع متدرّج يدور خلف المنطقة، والطبقة الداخلية تغطّي وسطه فلا يظهر إلا إطار
   يلفّ. الألوان من الهوية، والحركة transform وحدها (قاعدة §26). */
.file-upload-label { position: relative; overflow: hidden; isolation: isolate; }
.file-upload-label::before {
  content: ""; position: absolute; top: 50%; left: 50%; z-index: -2;
  width: 140%; aspect-ratio: 1; border-radius: 50%;
  background-image: linear-gradient(var(--purple, #6d34df), var(--purple-light, #d9abfa), var(--purple, #6d34df));
  filter: blur(18px); opacity: .75;
  animation: saw-upload-spin 2.4s linear infinite;
  /* ساكنٌ حتى التمرير — نفس نمط الزرّ الأساسي في ui.css: كلفته صفر وهو ساكن،
     فلا تدور طبقة مضبّبة بلا توقّف في لوحة تعمل أثناء البثّ. */
  animation-play-state: paused;
}
.file-upload-label::after {
  content: ""; position: absolute; inset: 3px; z-index: -1; border-radius: 38px;
  background-color: rgba(var(--c-dark-rgb, 43, 20, 88), .95);
}
@keyframes saw-upload-spin {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to   { transform: translate(-50%, -50%) rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) { .file-upload-label::before { animation: none; } }
.file-upload-label:hover {
  border-color: var(--purple-light, #d9abfa);
}
.file-upload-label:hover::before,
.file-upload-label:focus-within::before { animation-play-state: running; }
.file-upload-label p { margin: 0; font-size: .9rem; font-weight: 700; }
.file-upload-hint { font-size: .78rem !important; font-weight: 600 !important; color: var(--text-dim, rgba(217,171,250,.72)); }
.file-upload-design {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
.browse-button {
  background-color: rgba(var(--lux-rgb, 109, 52, 223), .9);
  padding: 5px 15px;
  border-radius: 10px;
  color: var(--lgt-100, #fff);
  transition: all 0.3s;
}
.browse-button:hover {
  background-color: var(--purple, #6d34df);
}
@media (prefers-reduced-motion: reduce) {
  .file-upload-label, .browse-button { transition: none; }
}

/* ═══════════ السِكّة المنزلقة ═══════════
   تجمع صفوف الخيارات المتفرّقة في سِكّة واحدة بعنصر منزلق يتبع المختار،
   فيُقرأ الصفّ خيارًا واحدًا لا أزرارًا متناثرة (بلاغ صفحة الطبقات).
   بلا overflow:hidden عمدًا: بعض الصفوف فيها منتقي لون تفتح لوحته للأسفل
   فتُقصّ لو قُصّ الشريط.
   مقتبس من Uiverse.io (chase2k25) ومعدَّل. */
/* تُضيف ولا تفرض تخطيطًا: بعض الصفوف ليست سِكّة خالصة — صفّ «التصميم» في
   الطبقات فيه تسمية ومنتقي لون، وفرضُ العرض والحشو والفجوة يزاحم تخطيطه
   فينزاح المنزلق عن الزرّ. */
.saw-glide {
 position:relative;isolation:isolate;
 background:rgba(var(--lux-light-rgb,217,171,250),.06);
 border:0;border-radius:1rem;backdrop-filter:blur(12px);
 box-shadow:inset 1px 1px 4px rgba(255,255,255,.2),inset -1px -1px 6px rgba(0,0,0,.3),0 4px 12px rgba(0,0,0,.15);
}
.saw-glide > button,
.saw-glide > button.on,
.saw-glide > button[aria-pressed=true] {
 position:relative;z-index:2;flex:1;min-width:80px;margin:0;
 display:flex;align-items:center;justify-content:center;
 padding:.8rem 1.6rem;border:0;border-radius:1rem;
 font-size:14px;font-weight:600;line-height:1.4;
 color:var(--text-dim,#c8b9dd);background:transparent;box-shadow:none;
 transition:color .3s ease;
}
.saw-glide > button:hover,
.saw-glide > button.on { color:var(--text,#fff);background:transparent;box-shadow:none; }
.saw-glide > button::before,.saw-glide > button::after { display:none; }
.saw-glide > button:focus-visible { outline:2px solid var(--p-400,#d9abfa);outline-offset:-4px; }
.saw-glide .glass-glider {
 position:absolute;left:0;top:0;bottom:0;z-index:1;pointer-events:none;border-radius:1rem;
 background:linear-gradient(135deg,rgba(var(--lux-rgb,109,52,223),.3),var(--purple,#6d34df));
 box-shadow:0 0 18px rgba(var(--lux-rgb,109,52,223),.4),inset 0 0 10px rgba(var(--lux-light-rgb,217,171,250),.22);
 transition:transform .5s cubic-bezier(.37,1.65,.66,.7),width .25s ease;
}
@media(max-width:480px) { .saw-glide { width:100%; } .saw-glide > button { min-width:0;padding:.8rem .6rem;font-size:12px; } }
@media(prefers-reduced-motion:reduce) { .saw-glide .glass-glider,.saw-glide > button { transition:none; } }/* ═══════════ المفتاح ═══════════
   يحلّ محلّ الأسماء الخمسة القائمة: .action-toggle · .mp-switch ·
   .cg-switch · .da-switch · .da-switch-m — كلّها <div> تُبدّلها اللوحة
   بكلاس .on. فنُقل الشكل كما هو، ولم يُغيَّر فيه إلا المحدِّدات: كل
   ':checked + .neo-toggle' صارت '.on .neo-toggle'. ولو بُني على صندوق
   اختيار مخفيّ لنشأت حالة ثانية تحتاج مزامنة دائمة مع الكلاس.
/* From Uiverse.io by chicogale */ 
.saw-toggle {
  --toggle-width: 80px;
  --toggle-height: 38px;
  --toggle-bg: rgba(var(--c-dark-rgb,43,20,88),.92);
  --toggle-off-color: var(--gry-64b,#9aa0ac);
  --toggle-on-color: var(--purple-light,#d9abfa);
  --toggle-transition: 0.4s cubic-bezier(0.25, 1, 0.5, 1);

  position: relative;
  display: inline-flex;
  flex-direction: column;
  font-family: "Segoe UI", Tahoma, sans-serif;
  user-select: none;
}


.neo-toggle {
  position: relative;
  width: var(--toggle-width);
  height: var(--toggle-height);
  display: block;
  cursor: pointer;
  transform: translateZ(0);
  perspective: 500px;
}

/* Track styles */
.neo-track {
  position: absolute;
  inset: 0;
  border-radius: calc(var(--toggle-height) / 2);
  overflow: hidden;
  transform-style: preserve-3d;
  transform: translateZ(-1px);
  transition: transform var(--toggle-transition);
  box-shadow:
    0 2px 10px rgba(0, 0, 0, 0.5),
    inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}

.neo-background-layer {
  position: absolute;
  inset: 0;
  background: var(--toggle-bg);
  background-image: linear-gradient(
    -45deg,
    rgba(20, 20, 20, 0.8) 0%,
    rgba(30, 30, 30, 0.3) 50%,
    rgba(20, 20, 20, 0.8) 100%
  );
  opacity: 1;
  transition: all var(--toggle-transition);
}

.neo-grid-layer {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(
      to right,
      rgba(71, 80, 87, 0.05) 1px,
      transparent 1px
    ),
    linear-gradient(to bottom, rgba(71, 80, 87, 0.05) 1px, transparent 1px);
  background-size: 5px 5px;
  opacity: 0;
  transition: opacity var(--toggle-transition);
}

.neo-track-highlight {
  position: absolute;
  inset: 1px;
  border-radius: calc(var(--toggle-height) / 2);
  background: linear-gradient(90deg, transparent, rgba(54, 249, 199, 0));
  opacity: 0;
  transition: all var(--toggle-transition);
}

/* Spectrum analyzer */
.neo-spectrum-analyzer {
  position: absolute;
  bottom: 6px;
  right: 10px;
  height: 10px;
  display: flex;
  align-items: flex-end;
  gap: 2px;
  opacity: 0;
  transition: opacity var(--toggle-transition);
}

.neo-spectrum-bar {
  width: 2px;
  height: 3px;
  background-color: var(--toggle-on-color);
  opacity: 0.8;
}

/* Thumb styles */
.neo-thumb {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  transform-style: preserve-3d;
  transition: transform var(--toggle-transition);
  z-index: 1;
}

.neo-thumb-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: var(--toggle-off-color);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
  transition: all var(--toggle-transition);
}

.neo-thumb-core {
  position: absolute;
  inset: 5px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), transparent);
  transition: all var(--toggle-transition);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.neo-thumb-icon {
  position: relative;
  width: 10px;
  height: 10px;
  transition: all var(--toggle-transition);
}

.neo-thumb-wave {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 2px;
  background: var(--toggle-off-color);
  transform: translate(-50%, -50%);
  transition: all var(--toggle-transition);
}

.neo-thumb-pulse {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid var(--toggle-off-color);
  transform: scale(0);
  opacity: 0;
  transition: all var(--toggle-transition);
}

/* Gesture area */
.neo-gesture-area {
  position: absolute;
  inset: -10px;
  z-index: 0;
}

/* Interaction feedback */
.neo-interaction-feedback {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

.neo-ripple {
  position: absolute;
  top: 50%;
  left: 30%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    var(--toggle-on-color) 0%,
    transparent 70%
  );
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: all 0.4s ease-out;
}

.neo-progress-arc {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  border: 2px solid transparent;
  border-top-color: var(--toggle-on-color);
  transform: translate(-50%, -50%) scale(0) rotate(0deg);
  opacity: 0;
  transition:
    opacity 0.3s ease,
    transform 0.5s ease;
}

/* Status indicator */
.neo-status {
  position: absolute;
  bottom: -20px;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: center;
}

.neo-status-indicator {
  display: flex;
  align-items: center;
  gap: 4px;
}

.neo-status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--toggle-off-color);
  transition: all var(--toggle-transition);
}

.neo-status-text {
  font-size: 9px;
  font-weight: 600;
  color: var(--toggle-off-color);
  letter-spacing: 1px;
  transition: all var(--toggle-transition);
}

/* Value display */


/* Active states */

/* ON state */
.saw-toggle.on .neo-toggle .neo-thumb {
  transform: translateX(calc(var(--toggle-width) - 38px));
}

.saw-toggle.on .neo-toggle .neo-thumb-ring {
  background-color: var(--toggle-on-color);
  border-color: rgba(54, 249, 199, 0.3);
  box-shadow: 0 0 15px rgba(54, 249, 199, 0.5);
}

.saw-toggle.on .neo-toggle .neo-thumb-wave {
  height: 8px;
  width: 8px;
  border-radius: 50%;
  background: transparent;
  border: 1px solid #fff;
}

.saw-toggle.on .neo-toggle .neo-thumb-pulse {
  transform: scale(1.2);
  opacity: 0.3;
  animation: neo-pulse 1.5s infinite;
}

.saw-toggle.on .neo-toggle .neo-track-highlight {
  background: linear-gradient(90deg, transparent, rgba(54, 249, 199, 0.2));
  opacity: 1;
}

.saw-toggle.on .neo-toggle .neo-grid-layer {
  opacity: 1;
}

.saw-toggle.on .neo-toggle .neo-spectrum-analyzer {
  opacity: 1;
}

.saw-toggle.on .neo-toggle .neo-spectrum-bar:nth-child(1) {
  animation: neo-spectrum 0.9s infinite;
}

.saw-toggle.on .neo-toggle .neo-spectrum-bar:nth-child(2) {
  animation: neo-spectrum 0.8s 0.1s infinite;
}

.saw-toggle.on .neo-toggle .neo-spectrum-bar:nth-child(3) {
  animation: neo-spectrum 1.1s 0.2s infinite;
}

.saw-toggle.on .neo-toggle .neo-spectrum-bar:nth-child(4) {
  animation: neo-spectrum 0.7s 0.1s infinite;
}

.saw-toggle.on .neo-toggle .neo-spectrum-bar:nth-child(5) {
  animation: neo-spectrum 0.9s 0.15s infinite;
}

.saw-toggle.on .neo-toggle .neo-status-dot {
  background-color: var(--toggle-on-color);
  box-shadow: 0 0 8px var(--toggle-on-color);
}

.saw-toggle.on .neo-toggle .neo-status-text {
  color: var(--toggle-on-color);
  content: "ACTIVE";
}



/* Hover effects */
.saw-toggle:hover .neo-thumb-ring {
  transform: scale(1.05);
}

.saw-toggle:not(.on) .neo-toggle:hover .neo-thumb-wave::before,
.saw-toggle:not(.on) .neo-toggle:hover .neo-thumb-wave::after {
  opacity: 1;
}

/* Drag gesture handling */
.neo-toggle.neo-dragging .neo-track {
  transform: translateZ(-1px) scale(1.02);
}

.neo-toggle.neo-dragging .neo-thumb {
  transition: none;
}

/* Animations */
@keyframes neo-pulse {
  0% {
    transform: scale(1);
    opacity: 0.5;
  }
  50% {
    transform: scale(1.5);
    opacity: 0.2;
  }
  100% {
    transform: scale(1);
    opacity: 0.5;
  }
}

@keyframes neo-spectrum {
  0% {
    height: 3px;
  }
  50% {
    height: 8px;
  }
  100% {
    height: 3px;
  }
}

/* Custom script to enable advance features */
.neo-toggle.neo-activated .neo-ripple {
  width: 100px;
  height: 100px;
  opacity: 0.5;
  transition: all 0.6s ease-out;
}

.neo-toggle.neo-progress .neo-progress-arc {
  opacity: 0.8;
  transform: translate(-50%, -50%) scale(1) rotate(270deg);
  transition:
    opacity 0.3s ease,
    transform 1s ease;
}

/* Status text change */
.saw-toggle.on .neo-toggle .neo-status-text::before {
  content: "ACTIVE";
}

.saw-toggle:not(.on) .neo-toggle .neo-status-text::before {
  content: "STANDBY";
}

/* Integration: preserve source look; native checkbox handles state and keyboard. */
.saw-toggle { margin:8px 14px 26px; direction:ltr;flex-shrink:0; }
.saw-toggle--big { --toggle-width:104px;--toggle-height:46px; }
.saw-toggle--big .neo-thumb { width:38px;height:38px; }
.saw-toggle--big.on .neo-toggle .neo-thumb { transform:translateX(calc(var(--toggle-width) - 46px)); }
.saw-toggle.on .neo-toggle .neo-status-text::before { content:'مفعّل'; }
.saw-toggle:not(.on) .neo-toggle .neo-status-text::before { content:'مطفأ'; }
.saw-toggle .neo-status-text { letter-spacing:0;font-size:10px; }
.saw-toggle:not(.on) .neo-toggle .neo-status-text { color:var(--text-dim,rgba(217,171,250,.72)); }
.saw-toggle .neo-spectrum-analyzer { left:12px;right:auto; }
@media(prefers-reduced-motion:reduce) {
 .saw-toggle *,.saw-toggle *::before { animation:none !important;transition:none !important; }
}/* Reduce both switch variants and all their details by exactly 30%. */
.saw-toggle { zoom:.7; }/* Brand violet active state with steady glow and no animated waves. */
.saw-toggle {
 --toggle-on-color:var(--purple,#8b5cf6);
}
.saw-toggle.on .neo-toggle .neo-thumb-ring {
 background-color:var(--toggle-on-color);
 border-color:rgba(var(--lux-light-rgb,217,171,250),.45);
 box-shadow:0 0 10px rgba(var(--lux-rgb,109,52,223),.55),0 0 20px rgba(var(--lux-rgb,109,52,223),.24);
}
.saw-toggle.on .neo-toggle .neo-track-highlight {
 background:linear-gradient(90deg,transparent,rgba(var(--lux-rgb,109,52,223),.25));
}
.saw-toggle .neo-spectrum-analyzer,
.saw-toggle .neo-thumb-pulse,
.saw-toggle .neo-interaction-feedback,
.saw-toggle .neo-ripple,
.saw-toggle .neo-progress-arc { display:none;animation:none !important; }
.saw-toggle .neo-spectrum-bar { animation:none !important; }

/* الدمج مع القائم: القواعد القديمة مُسنَدة بمعرّف صفحة
   (#page-music-player .mp-switch) فلا تُهزم بترتيبٍ ولا بتخصيص — ولذلك
   !important هنا وحدها، على ما يُلغى منها فقط. وتبقى القواعد القديمة في
   مكانها: إن تعطّل السكربت ظهر المفتاح القديم بدل لا شيء. */
.saw-toggle {
 width:auto !important;height:auto !important;
 background:none !important;border:0 !important;border-radius:0 !important;box-shadow:none !important;
 margin:0;vertical-align:middle;
 padding:0 0 20px;      /* صفر: بعضها <button> فيحشوه المتصفّح. والسفليّ مكانُ نصّ الحالة المعلّق فلا يركب على ما تحته */
}
.saw-toggle::after,.saw-toggle::before { content:none !important; }

/* ═══════════ القائمة المنسدلة ═══════════
   ١٠٨ قائمة في اللوحة. الأصل <select> يبقى مصدر الحقيقة — القيمة تُقرأ
   وتُكتب عليه كما كانت، وأحداث input/change تُطلق منه — ويُخفى، ويُركَّب
   فوقه زرٌّ يعرض المختار وقائمةُ خيارات. وبهذا لا يتغيّر سطرٌ واحد في
   كود اللوحة الذي يقرأ select.value.
   منقول من الملف المعتمد كما هو؛ المُغيَّر نطاق المحدِّد وحده:
   #fields-section .field-glow--select ⇐ .saw-select */
.saw-select { position:relative;display:block;overflow:visible; }
.saw-select > select.select-native { display:none; }
.saw-select.compact-open { z-index:10; }
.saw-select .select-trigger { position:relative;width:100%;padding:11px 42px;font:inherit;font-size:.9rem;color:var(--text,#f3ecff);background:var(--input-bg,rgba(217,171,250,.06));border:1px solid var(--input-border,rgba(109,52,223,.25));border-radius:var(--btn-r);cursor:pointer;text-align:center; }
.saw-select .select-trigger::after { content:'⌄';position:absolute;left:20px; }
.saw-select .select-trigger:focus-visible { outline:2px solid var(--p-400,#d9abfa);outline-offset:2px; }
.saw-select .select-trigger:disabled { opacity:.5;cursor:not-allowed; }
.saw-select .compact-options { position:absolute; top:calc(100% + 5px); inset-inline:0; padding:5px; max-height:180px; overflow-y:auto; border:1px solid rgba(var(--lux-light-rgb,217,171,250),.22); border-radius:15px; background:#21132f; box-shadow:0 8px 20px #0004; }
.saw-select .compact-options[hidden] { display:none; }
.saw-select .compact-option { display:block; width:100%; min-height:36px; padding:8px 28px; position:relative; border:0; border-radius:10px; color:var(--text,#f3ecff); background:transparent; font:inherit; font-size:.84rem; cursor:pointer; text-align:center; transition:background 140ms ease; }
.saw-select .compact-option:hover,.saw-select .compact-option:focus-visible { background:linear-gradient(110deg,#482068,#7941a5,#482068); background-size:200% 100%; animation:compactGradient 3s ease infinite; outline:none; }
.saw-select .compact-option[aria-selected=true]::after { content:'✓'; position:absolute; right:12px; color:#d9abfa; }
@keyframes compactGradient { 50% { background-position:100% 50%; } }
@media(prefers-reduced-motion:reduce) { .saw-select .compact-option:hover,.saw-select .compact-option:focus-visible { animation:none; } }

/* الدمج: القائمة المنسدلة تخرج عن حدود أبيها، وكثير من صفوف اللوحة
   ونوافذها تقصّ ما يخرج عنها — فتُقصّ القائمة. يُرفع القصّ عن السلسلة
   الحاضنة وقت الفتح وحدَه، ويعود بعد الإغلاق. */
.saw-clip-open { overflow:visible !important; }
/* نصّ الخيار لا يلتفّ: بعض القوائم في خلايا ضيّقة (خانة صوت في جدول)،
   والالتفاف كان يضاعف ارتفاع الصفّ. */
.saw-select .select-trigger { white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box; }
/* الحشو الجانبيّ ٤٢px يترك مكان السهم — وفي خانة ضيّقة لا يبقى للنصّ شيء */
.saw-select[style*="inline-block"] .select-trigger { padding-inline:34px 24px; }

/* Approved components: _components-approved.html. Keep behavior in saw-controls.js. */
/* Focused fields: original button gradient, blurred inward and clipped. */
.field-glow { position:relative; display:block; isolation:isolate; overflow:hidden; border-radius:var(--btn-r); width:100%; }
.field-glow--multiline { border-radius:18px; }
.field-glow > :is(input,textarea,select) { display:block; box-sizing:border-box; width:100%; margin:0; }
.field-glow::after {
 content:""; position:absolute; inset:-3px; padding:7px; border-radius:inherit;
 pointer-events:none; opacity:0; z-index:1;
 background:conic-gradient(from var(--glow-a),
 var(--p-900,#2e1065),var(--p-700,#6d34df),var(--p-500,#8b5cf6),
 var(--p-400,#d9abfa),var(--p-300,#ffffff),var(--p-400,#d9abfa),
 var(--p-500,#8b5cf6),var(--p-700,#6d34df),var(--p-900,#2e1065));
 mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
 mask-composite:exclude;
 filter:blur(4px);
 animation:glowSpin 3.2s linear infinite; animation-play-state:paused;
 transition:opacity 180ms ease;
}
.field-glow:focus-within::after { opacity:.95; animation-play-state:running; }
.field-glow > :is(input,textarea,select):focus:not(:disabled) {
 outline:none; border-color:rgba(var(--lux-light-rgb,217,171,250),.38);
 background:rgba(var(--lux-rgb,109,52,223),.14);
 box-shadow:inset 0 0 12px rgba(var(--lux-rgb,109,52,223),.12);
 caret-color:var(--p-300,#ffffff);
}
@media(prefers-reduced-motion:reduce) {
 .field-glow::after { animation:none; transition:none; }
}
@media(forced-colors:active) {
 .field-glow::after { display:none; }
 .field-glow > :is(input,textarea,select):focus:not(:disabled) { outline:2px solid Highlight; outline-offset:-3px; }
}
/* Center the actual shared fields, including settings cards and inline forms. */
body[data-saw-ui] :is(.field-glow,.card-neon) > :is(input,textarea) {
    text-align: center !important;
    text-align-last: center !important;
}
body[data-saw-ui] :is(.field-glow,.card-neon) > :is(input,textarea)::placeholder {
    text-align: center;
}
/* Custom number controls, keeping native input validation and keyboard stepping. */
.field-glow--number { overflow:visible; }
.field-glow--number::after { inset:0; clip-path:inset(0 round var(--btn-r)); }
body[data-saw-ui] .saw-number { min-width:min(168px,100%); }
body[data-saw-ui] .saw-number > input {
 appearance:textfield;-moz-appearance:textfield;box-sizing:border-box;
 width:100% !important;min-height:46px;padding:10px 44px !important;font-variant-numeric:tabular-nums;
}
.saw-number > input::-webkit-inner-spin-button,
.saw-number > input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
body[data-saw-ui] .saw-number > .number-step {
 position:absolute; top:50%; translate:0 -50%; z-index:2;
 display:grid; place-items:center; width:30px; height:30px; padding:0;
 border:1px solid rgba(var(--lux-light-rgb,217,171,250),.20); border-radius:10px;
 background:linear-gradient(180deg,rgba(var(--lux-light-rgb,217,171,250),.13),rgba(var(--lux-rgb,109,52,223),.08));
 color:var(--text,#f3ecff);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
 cursor:pointer; transition:background 160ms ease,box-shadow 160ms ease,scale 140ms ease;
}
.number-step--up { right:7px;left:auto; }
.number-step--down { left:7px;right:auto; }
.number-step svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
@media(hover:hover) {
 body[data-saw-ui] .saw-number > .number-step:hover:not(:disabled) { background:rgba(var(--lux-rgb,109,52,223),.3); box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 10px rgba(var(--lux-rgb,109,52,223),.24); }
}
.number-step:active:not(:disabled) { scale:.9; }
.number-step:focus-visible { outline:2px solid var(--p-400,#d9abfa); outline-offset:2px; }
.number-step:disabled { opacity:.3; cursor:not-allowed; }
.number-step.bump svg { animation:numberBump 220ms ease-out; }
@keyframes numberBump { 50% { transform:scale(1.25); } }
@media(pointer:coarse) { body[data-saw-ui] .saw-number > input { min-height:52px;padding-inline:48px !important; } body[data-saw-ui] .saw-number > .number-step { width:36px;height:36px; } }
@media(prefers-reduced-motion:reduce) { .number-step { transition:none; } .number-step.bump svg { animation:none; } .number-step:active:not(:disabled) { scale:1; } }
/* Brief directional feedback on numeric value changes. */
.field-glow--number input.number-rise { animation:numberRise 650ms ease-out; }
.field-glow--number input.number-fall { animation:numberFall 650ms ease-out; }
@keyframes numberRise { 0%,35% { color:#75e6ab; text-shadow:0 0 9px rgba(74,222,128,.45); } 100% { color:var(--text,#f3ecff); text-shadow:none; } }
@keyframes numberFall { 0%,35% { color:#ff8d9c; text-shadow:0 0 9px rgba(255,92,114,.4); } 100% { color:var(--text,#f3ecff); text-shadow:none; } }
.number-direction { position:absolute; inset-inline-start:calc(50% + 28px); top:50%; translate:0 -50%; z-index:2; pointer-events:none; opacity:0; font-size:12px; font-weight:800; }
.number-direction.is-up { color:#75e6ab; animation:numberDirectionUp 650ms ease-out; }
.number-direction.is-down { color:#ff8d9c; animation:numberDirectionDown 650ms ease-out; }
@keyframes numberDirectionUp { 0% { opacity:0; transform:translateY(5px); } 20%,50% { opacity:1; } 100% { opacity:0; transform:translateY(-9px); } }
@keyframes numberDirectionDown { 0% { opacity:0; transform:translateY(-5px); } 20%,50% { opacity:1; } 100% { opacity:0; transform:translateY(9px); } }
@media(prefers-reduced-motion:reduce) {
 .number-direction.is-up,.number-direction.is-down { animation:none; }
 .field-glow--number input.number-rise { animation:none; color:#75e6ab; }
 .field-glow--number input.number-fall { animation:none; color:#ff8d9c; }
}
/* Direction signs: plus physically right, minus physically left of the value. */
.number-direction { inset-inline-start:auto; }
.number-direction.is-up { left:calc(50% + var(--number-offset,28px)); right:auto; }
.number-direction.is-down { right:calc(50% + var(--number-offset,28px)); left:auto; }
@media(prefers-reduced-motion:reduce) { .number-direction:is(.is-up,.is-down) { opacity:1;animation:none; } }


/* Adapted from Uiverse.io by Lakshay-art. Input box only; no grid/background or icons. */


.card-neon { position:relative;isolation:isolate;width:100%;max-width:440px;margin-inline:auto; }
.card-neon-layer { position:absolute;inset:-3px;overflow:hidden;z-index:-1;border-radius:12px;pointer-events:none;filter:blur(3px); }
.card-neon-layer::before { content:'';position:absolute;left:50%;top:50%;width:650px;height:650px;transform:translate(-50%,-50%) rotate(70deg);transition:transform 2s ease;background:conic-gradient(#1c191c,var(--purple,#6d34df) 5%,#1c191c 14%,#1c191c 50%,var(--p-500,#8b5cf6) 60%,#1c191c 64%); }
.card-neon-white { inset:-2px;filter:blur(2px); }
.card-neon-white::before { transform:translate(-50%,-50%) rotate(83deg);background:conic-gradient(transparent 0%,var(--p-400,#d9abfa),transparent 8%,transparent 50%,var(--p-300,#e9d5ff),transparent 58%);filter:brightness(1.4); }
.card-neon-border { inset:-1px;filter:blur(.5px); }
.card-neon-glow { inset:-7px;filter:blur(17px);opacity:.35; }
.card-neon-glow::before { background:conic-gradient(#000,var(--purple,#6d34df) 5%,#000 38%,#000 50%,var(--p-500,#8b5cf6) 60%,#000 87%); }
.card-neon input { box-sizing:border-box;display:block;width:100%;height:56px;border:0;border-radius:10px;background:var(--saw-field-surface,#010201);color:#fff;padding:0 18px;font:inherit;font-size:.94rem;text-align:center;box-shadow:none; }
.card-neon input::placeholder { color:var(--text-dim,#c0b9c0);opacity:1;text-align:center; }
.card-neon input:focus { outline:none;box-shadow:inset 0 0 0 1px rgba(var(--lux-light-rgb,217,171,250),.2); }
.card-neon:hover .card-neon-layer::before { transform:translate(-50%,-50%) rotate(250deg); }
.card-neon:focus-within .card-neon-layer::before { transform:translate(-50%,-50%) rotate(430deg);transition-duration:4s; }
.card-neon-label { position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap; }
@media(prefers-reduced-motion:reduce) { .card-neon-layer::before { transition:none; } }
@media(forced-colors:active) { .card-neon input { border:1px solid CanvasText; } .card-neon input:focus { outline:2px solid Highlight; } }

/* From Uiverse.io by 00Kubi */
.neon-checkbox {
  --primary: var(--purple, #8b5cf6);
  --primary-dark: var(--p-700, #6d34df);
  --primary-light: var(--p-400, #d9abfa);
  --size: 30px;
  position: relative;
  width: var(--size);
  height: var(--size);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.neon-checkbox input {
  display: none;
}

.neon-checkbox__frame {
  position: relative;
  width: 100%;
  height: 100%;
}

.neon-checkbox__box {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  border-radius: 4px;
  border: 2px solid var(--primary-dark);
  transition: all 0.4s ease;
}

.neon-checkbox__check-container {
  position: absolute;
  inset: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.neon-checkbox__check {
  width: 80%;
  height: 80%;
  fill: none;
  stroke: var(--primary);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 40;
  stroke-dashoffset: 40;
  transform-origin: center;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.neon-checkbox__glow {
  position: absolute;
  inset: -2px;
  border-radius: 6px;
  background: var(--primary);
  opacity: 0;
  filter: blur(8px);
  transform: scale(1.2);
  transition: all 0.4s ease;
}

.neon-checkbox__borders {
  position: absolute;
  inset: 0;
  border-radius: 4px;
  overflow: hidden;
}

.neon-checkbox__borders span {
  position: absolute;
  width: 40px;
  height: 1px;
  background: var(--primary);
  opacity: 0;
  transition: opacity 0.4s ease;
}

.neon-checkbox__borders span:nth-child(1) {
  top: 0;
  left: -100%;
  animation: neonCheckborderFlow1 2s linear infinite;
}

.neon-checkbox__borders span:nth-child(2) {
  top: -100%;
  right: 0;
  width: 1px;
  height: 40px;
  animation: neonCheckborderFlow2 2s linear infinite;
}

.neon-checkbox__borders span:nth-child(3) {
  bottom: 0;
  right: -100%;
  animation: neonCheckborderFlow3 2s linear infinite;
}

.neon-checkbox__borders span:nth-child(4) {
  bottom: -100%;
  left: 0;
  width: 1px;
  height: 40px;
  animation: neonCheckborderFlow4 2s linear infinite;
}

.neon-checkbox__particles span {
  position: absolute;
  width: 4px;
  height: 4px;
  background: var(--primary);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  top: 50%;
  left: 50%;
  box-shadow: 0 0 6px var(--primary);
}

.neon-checkbox__rings {
  position: absolute;
  inset: -20px;
  pointer-events: none;
}

.neon-checkbox__rings .ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid var(--primary);
  opacity: 0;
  transform: scale(0);
}

.neon-checkbox__sparks span {
  position: absolute;
  width: 20px;
  height: 1px;
  background: linear-gradient(90deg, var(--primary), transparent);
  opacity: 0;
}

/* Hover Effects */
.neon-checkbox:hover .neon-checkbox__box {
  border-color: var(--primary);
  transform: scale(1.05);
}

/* Checked State */
.neon-checkbox input:checked ~ .neon-checkbox__frame .neon-checkbox__box {
  border-color: var(--primary);
  background: rgba(var(--lux-rgb,109,52,223),.1);
}

.neon-checkbox input:checked ~ .neon-checkbox__frame .neon-checkbox__check {
  stroke-dashoffset: 0;
  transform: scale(1.1);
}

.neon-checkbox input:checked ~ .neon-checkbox__frame .neon-checkbox__glow {
  opacity: 0.2;
}

.neon-checkbox
  input:checked
  ~ .neon-checkbox__frame
  .neon-checkbox__borders
  span {
  opacity: 1;
}

/* Particle Animations */
.neon-checkbox
  input:checked
  ~ .neon-checkbox__frame
  .neon-checkbox__particles
  span {
  animation: neonCheckparticleExplosion 0.6s ease-out forwards;
}

.neon-checkbox
  input:checked
  ~ .neon-checkbox__frame
  .neon-checkbox__rings
  .ring {
  animation: neonCheckringPulse 0.6s ease-out forwards;
}

.neon-checkbox
  input:checked
  ~ .neon-checkbox__frame
  .neon-checkbox__sparks
  span {
  animation: neonChecksparkFlash 0.6s ease-out forwards;
}

/* Animations */
@keyframes neonCheckborderFlow1 {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(200%);
  }
}

@keyframes neonCheckborderFlow2 {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(200%);
  }
}

@keyframes neonCheckborderFlow3 {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-200%);
  }
}

@keyframes neonCheckborderFlow4 {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-200%);
  }
}

@keyframes neonCheckparticleExplosion {
  0% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0;
  }
  20% {
    opacity: 1;
  }
  100% {
    transform: translate(
        calc(-50% + var(--x, 20px)),
        calc(-50% + var(--y, 20px))
      )
      scale(0);
    opacity: 0;
  }
}

@keyframes neonCheckringPulse {
  0% {
    transform: scale(0);
    opacity: 1;
  }
  100% {
    transform: scale(2);
    opacity: 0;
  }
}

@keyframes neonChecksparkFlash {
  0% {
    transform: rotate(var(--r, 0deg)) translateX(0) scale(1);
    opacity: 1;
  }
  100% {
    transform: rotate(var(--r, 0deg)) translateX(30px) scale(0);
    opacity: 0;
  }
}

/* Particle Positions */
.neon-checkbox__particles span:nth-child(1) {
  --x: 25px;
  --y: -25px;
}
.neon-checkbox__particles span:nth-child(2) {
  --x: -25px;
  --y: -25px;
}
.neon-checkbox__particles span:nth-child(3) {
  --x: 25px;
  --y: 25px;
}
.neon-checkbox__particles span:nth-child(4) {
  --x: -25px;
  --y: 25px;
}
.neon-checkbox__particles span:nth-child(5) {
  --x: 35px;
  --y: 0px;
}
.neon-checkbox__particles span:nth-child(6) {
  --x: -35px;
  --y: 0px;
}
.neon-checkbox__particles span:nth-child(7) {
  --x: 0px;
  --y: 35px;
}
.neon-checkbox__particles span:nth-child(8) {
  --x: 0px;
  --y: -35px;
}
.neon-checkbox__particles span:nth-child(9) {
  --x: 20px;
  --y: -30px;
}
.neon-checkbox__particles span:nth-child(10) {
  --x: -20px;
  --y: 30px;
}
.neon-checkbox__particles span:nth-child(11) {
  --x: 30px;
  --y: 20px;
}
.neon-checkbox__particles span:nth-child(12) {
  --x: -30px;
  --y: -20px;
}

/* Spark Rotations */
.neon-checkbox__sparks span:nth-child(1) {
  --r: 0deg;
  top: 50%;
  left: 50%;
}
.neon-checkbox__sparks span:nth-child(2) {
  --r: 90deg;
  top: 50%;
  left: 50%;
}
.neon-checkbox__sparks span:nth-child(3) {
  --r: 180deg;
  top: 50%;
  left: 50%;
}
.neon-checkbox__sparks span:nth-child(4) {
  --r: 270deg;
  top: 50%;
  left: 50%;
}

/* Ring Delays */
.neon-checkbox__rings .ring:nth-child(1) {
  animation-delay: 0s;
}
.neon-checkbox__rings .ring:nth-child(2) {
  animation-delay: 0.1s;
}
.neon-checkbox__rings .ring:nth-child(3) {
  animation-delay: 0.2s;
}

.cmp__demo { gap:32px;padding:26px; }
.neon-check-label { display:inline-flex;align-items:center;gap:12px;font-size:.85rem;cursor:pointer; }
.neon-checkbox { display:inline-block;flex-shrink:0; }
.neon-checkbox__frame { display:block;pointer-events:none; }
.neon-checkbox__box { box-sizing:border-box; }
.neon-checkbox input { display:block;position:absolute;opacity:0;width:1px;height:1px;clip-path:inset(50%); }
.neon-checkbox input:focus-visible ~ .neon-checkbox__frame .neon-checkbox__box { outline:2px solid var(--primary-light);outline-offset:4px; }
.neon-checkbox__borders span { animation-play-state:paused; }
input:checked ~ .neon-checkbox__frame .neon-checkbox__borders span { animation-play-state:running; }
@media(prefers-reduced-motion:reduce) { .neon-checkbox * { animation:none !important;transition:none !important; } }
.saw-check { display:inline-flex;align-items:center;justify-content:center;position:relative;isolation:isolate;padding:12px 24px;border-radius:999px;cursor:pointer; }
.saw-check input[type=checkbox] { position:absolute;opacity:0;width:1px;height:1px; }
.saw-check:not(:has(input:checked)) { background:var(--saw-neutral,#19191e);border:1px solid rgba(160,160,173,.16);box-shadow:none;color:var(--text-muted,#9995a2); }
.saw-check:has(input:checked),
#action-country-block[open] > .saw-check { background:linear-gradient(155deg,rgba(var(--lux-rgb,109,52,223),.20),rgba(var(--lux-rgb,109,52,223),.12)),var(--saw-neutral,#191321);border:1px solid rgba(var(--lux-light-rgb,217,171,250),.62);color:var(--purple-light,#d5a6ff);box-shadow:inset 0 1px 0 #ffffff26,0 0 8px rgba(var(--lux-rgb,109,52,223),.22),0 0 22px rgba(var(--lux-rgb,109,52,223),.15); }
.saw-check::before,.saw-check::after { display:none; }
.saw-check:has(input:disabled) { opacity:.42;cursor:not-allowed; }
.saw-check:has(input:focus-visible) { outline:2px solid var(--purple-light,#d9abfa);outline-offset:3px; }
/* Wrappers retain the original field's layout and label/value associations. */
.field-glow,.card-neon { box-sizing:border-box;min-width:0; }
.card-neon { max-width:none; }
.card-neon input { height:auto;min-height:44px;padding:12px 18px; }
.field-glow > input,.field-glow > textarea { min-width:0;max-width:100%; }
.field-glow--number > input { padding-inline:48px; }
.neon-checkbox { display:inline-block;flex:0 0 auto;vertical-align:middle; }
.neon-checkbox input[type=checkbox] { display:block;position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;z-index:2;cursor:inherit; }
.neon-checkbox:has(input:disabled) { opacity:.42;cursor:not-allowed; }
.neon-checkbox:has(input:focus-visible) { outline:2px solid var(--purple-light,#d9abfa);outline-offset:4px; }
.neon-checkbox__frame { display:block; }
.saw-toggle { font-family:inherit; }
.saw-toggle > input[type=checkbox] { position:absolute;inset:0;width:100%;height:100%;opacity:0;z-index:3;cursor:pointer; }
.saw-toggle[aria-disabled=true] { opacity:.42;cursor:not-allowed; }
.saw-toggle:focus-visible,.saw-toggle:has(input:focus-visible) { outline:2px solid var(--purple-light,#d9abfa);outline-offset:4px; }
.saw-select .compact-options { background:var(--p-900,#21132f); }
.saw-select .compact-option:hover,.saw-select .compact-option:focus-visible { background:linear-gradient(110deg,var(--p-800,#482068),var(--p-600,#7941a5),var(--p-800,#482068)); }
.saw-select .compact-option[aria-selected=true]::after { color:var(--purple-light,#d9abfa); }
.saw-select .compact-options[popover] { position:fixed;inset:auto;margin:0;box-sizing:border-box; }
.saw-select .compact-options::backdrop { background:transparent; }
.saw-glide > button.active,.saw-glide > button.is-on { position:relative;z-index:2;background:transparent;box-shadow:none;color:var(--text,#fff); }
.saw-glide .glass-glider { pointer-events:none; }
/* Consistent fallback tokens on standalone pages, without changing their body or canvas. */
body[data-saw-ui] { --btn-ink:var(--ink,#140d22);--btn-r:999px; }
body[data-saw-ui=game] { --purple:var(--accent,#8b6cff);--purple-light:var(--accent-soft,#c7b7ff);--lux-rgb:var(--accent-rgb,139,108,255);--lux-light-rgb:var(--accent-rgb,139,108,255);--p-500:var(--accent,#8b6cff);--p-400:var(--accent-soft,#c7b7ff);--p-300:var(--text,#f3ecff);--p-700:var(--accent-2,#6248e0);--p-600:var(--accent-2,#6248e0);--p-800:var(--panel,#1b1630);--p-900:var(--panel,#0c081c);--text-dim:var(--muted,#b9a5d8); }
body[data-saw-ui=marketing] .btn--primary::after { background:var(--gl-base,var(--btn-ink));box-shadow:inset 0 1px 0 var(--gl-hi,#ffffff20); }
/* Marketing motion remains owned by the page's GSAP timeline. */
body[data-saw-ui=marketing] :is(.btn,.btn::before,.btn::after) { animation:none;transition:none; }
body[data-saw-ui] [hidden] { display:none !important; }
.neon-checkbox + .check-box { display:none; }
.neon-checkbox input[type=checkbox] { clip-path:none; }
.saw-toggle > :is(.slider,.toggle-slider,.switch-slider) { display:none; }
.saw-select > select.select-native { display:block;position:absolute;width:1px;height:1px;opacity:0;clip-path:inset(50%);pointer-events:none; }
.saw-glide > button { min-width:0; }
.saw-glide { flex-wrap:wrap; }
.saw-glide > button { flex:1 0 auto;max-width:100%;white-space:nowrap; }
.saw-glide .glass-glider { bottom:auto;height:var(--glider-height,100%);top:var(--glider-top,0px); }
body[data-saw-ui] .field-glow > :is(input,textarea) { box-sizing:border-box;width:100%; }
body[data-saw-ui] .saw-glide > button { background:transparent;box-shadow:none;border-color:transparent;transform:none; }
body[data-saw-ui] .saw-glide > button::before,body[data-saw-ui] .saw-glide > button::after { display:none; }
.saw-glide > .tab-slider { display:none; }
.saw-glide > :is(.mc-seg__ind,.rr-seg__ind,.rr-tabs__ind,.fw-seg__ind,.tw-seg__ind) { display:none; }
.saw-glide > button:is(.active,.is-on,.on):not(:disabled) { background:transparent;box-shadow:none; }
/* Goal settings: equal options, with only the shared glass indicator painted. */
#dg-modal .dg-seg.saw-glide {
 display:flex;width:100%;box-sizing:border-box;flex-wrap:nowrap;align-items:stretch;
}
#dg-modal .dg-seg.saw-glide > .dg-seg-btn {
 flex:1 1 0;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;
 padding:10px 8px;line-height:1.5;background:transparent;box-shadow:none;
}
body[data-saw-ui=marketing] .btn--primary::after { background:var(--gl-base,var(--btn-ink));box-shadow:inset 0 1px 0 var(--gl-hi,#ffffff20); }
body[data-saw-ui=marketing] .btn--primary::before { animation:none; }
.saw-toggle.is-on .neo-thumb { transform:translateX(calc(var(--toggle-width) - 38px)); }
.saw-toggle.is-on .neo-thumb-ring { background:var(--purple); }
@media(prefers-reduced-motion:reduce) {
 .btn::before,.grant-btn::before,.btn-save::before,.saw-toggle *,.neon-checkbox * { animation:none !important;transition:none !important; }
 .field-glow::after,.card-neon-layer::before { animation:none;transition:none; }
}
