/* «الأدوات» fan (public/tools-fan.js, Omxio msg dcbd4922 item 4; owner t684u). Tools stack on the side OPPOSITE لوحة التحكم
   (.side at inline-start): RTL → physical left, LTR → physical right. Never over the control panel / partner search. Layout + motion
   only: icons = .icon-btn; label pill + badge = --fan-* tokens. */
.tfan{position:fixed;left:auto;right:var(--fan-edge);bottom:var(--fan-bottom);z-index:var(--fan-z);display:flex;flex-direction:column;align-items:flex-end;gap:var(--fan-gap);pointer-events:none}
.tfan[dir=rtl]{right:auto;left:var(--fan-edge);align-items:flex-end} /* RTL column flex-end = physical left (opposite .side) */
/* desktop: .side is on inline-start, so the end edge of the viewport IS the main pane's tools rail — no --fan-side-w offset */
.tfan-i{display:flex;align-items:center;gap:var(--space-2);padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;
  opacity:0;transform:translateX(var(--fan-shift)) scale(.85);transition:transform var(--fan-dur) var(--fan-ease),opacity var(--fan-dur) ease}
.tfan[dir=ltr] .tfan-i{flex-direction:row;transform:translateX(calc(var(--fan-shift) * -1)) scale(.85)} /* icon on the right edge, label inward */
.tfan[dir=rtl] .tfan-i{flex-direction:row} /* RTL row: label at start (right/inward), icon at end (left/edge) */
.tfan.open .tfan-i{opacity:1;transform:none;pointer-events:auto}
.tfan.out .tfan-i{transition-delay:0s;transition-duration:.14s}
.tfan-i:focus-visible{outline:none}.tfan-i:focus-visible .tfan-ic{box-shadow:var(--focus-ring)}
.tfan-l{display:inline-flex;align-items:center;min-height:var(--fan-l-h);padding:0 var(--fan-l-pad);border-radius:var(--radius-pill);background:var(--fan-l-bg);color:var(--fan-l-ink);
  box-shadow:var(--fan-shadow);-webkit-backdrop-filter:var(--fan-blur);backdrop-filter:var(--fan-blur);font-size:var(--fan-l-fs);font-weight:var(--fw-medium);white-space:nowrap}
.tfan-ic{position:relative;flex:none}
.tfan-ic > svg,.tfan-ic > .me,.tfan-ic > .tfan-face{width:20px;height:20px}.tfan-face{display:grid;place-items:center}
.tfan-n{position:absolute;top:-5px;inset-inline-start:-6px;box-sizing:border-box;min-width:var(--fan-badge-s);height:var(--fan-badge-s);padding:0 4px;border-radius:var(--radius-pill);
  background:var(--fan-badge);color:var(--on-fan-badge);font-style:normal;font-size:var(--fs-xxs);font-weight:var(--fw-bold);line-height:var(--fan-badge-s);text-align:center;direction:ltr}
/* the stagger: d0 is next to the tab and comes out first */
.tfan.open .tfan-i.d1{transition-delay:calc(var(--fan-stagger) * 1)}.tfan.open .tfan-i.d2{transition-delay:calc(var(--fan-stagger) * 2)}
.tfan.open .tfan-i.d3{transition-delay:calc(var(--fan-stagger) * 3)}.tfan.open .tfan-i.d4{transition-delay:calc(var(--fan-stagger) * 4)}
.tfan.open .tfan-i.d5{transition-delay:calc(var(--fan-stagger) * 5)}.tfan.open .tfan-i.d6{transition-delay:calc(var(--fan-stagger) * 6)}
.tfan.open .tfan-i.d7{transition-delay:calc(var(--fan-stagger) * 7)}.tfan.open .tfan-i.d8{transition-delay:calc(var(--fan-stagger) * 8)}
.tfan.open .tfan-i.d9{transition-delay:calc(var(--fan-stagger) * 9)}.tfan.open .tfan-i.d10{transition-delay:calc(var(--fan-stagger) * 10)}
.tfan.open .tfan-i.d11{transition-delay:calc(var(--fan-stagger) * 11)}.tfan.open .tfan-i.d12{transition-delay:calc(var(--fan-stagger) * 12)}
/* short screens: the list scrolls instead of running off the top */
.tfan.open{max-height:calc(100dvh - var(--fan-bottom) - var(--space-6));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding:var(--space-1)}
@media (prefers-reduced-motion:reduce){.tfan-i{transform:none;transition:opacity .01s}.tfan.open .tfan-i{transition-delay:0s!important}}
@media (forced-colors:active){.tfan-l{border:1px solid CanvasText}}
/* «صندوق الأدوات» (Omxio msg f4cf487e): the ONLY floating thing. Placed where he dragged it (--tbx-x / --tbx-y, set by tools-fan.js —
   a position, never a look); it never moves by itself. Tucked against the left/right edge it shows only the small arrow tab.
   The look is the standard .icon-btn.float / .icon-btn.float.tab (theme-components.css); this file only places it. */
.tfab{position:fixed;left:var(--tbx-x,var(--tfab-edge));top:var(--tbx-y,auto);z-index:var(--tfab-z);display:block;padding:0;margin:0;border:0;background:transparent;color:inherit;
  font:inherit;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;
  opacity:0;visibility:hidden;pointer-events:none;transform:scale(.8);
  transition:opacity var(--fan-dur) ease,transform var(--fan-dur) var(--fan-ease),visibility 0s linear var(--fan-dur)}
.tfab.on{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}
.tfab.drag{cursor:grabbing;transition:none}
.tfab.drag .tfab-ic{transform:scale(1.08)}
.tfab:active .tfab-ic{transform:scale(.94)}
.tfab:focus-visible{outline:none}.tfab:focus-visible .tfab-ic,.tfab:focus-visible .tfab-tab{box-shadow:var(--focus-ring)}
.tfab .tfab-tab{display:none}
/* tucked: only the arrow tab, stuck to the edge it was dragged to, at the same height; the arrow points back into the screen */
.tfab.tuck .tfab-ic{display:none}
.tfab.tuck .tfab-tab{display:grid}
.tfab.tuck-l{left:0}
.tfab.tuck-r{left:auto;right:0}
.tfab.tuck-r .tfab-tab svg{transform:scaleX(-1)}
/* the fan opened from the box: toward the roomier side (up / down), aligned to the box's side (on-l / on-r) */
.tfan.from-fab{left:var(--tbx-fan-x);right:auto;top:var(--tbx-fan-y);bottom:auto}
.tfan.from-fab.on-r{left:auto;right:var(--tbx-fan-x)}
.tfan.from-fab.up{transform:translateY(-100%)}
.tfan.from-fab.open{max-height:var(--tbx-fan-max)}
.tfan.from-fab.on-r{align-items:flex-end}.tfan.from-fab.on-r[dir=rtl]{align-items:flex-start} /* items hug the physical right */
.tfan.from-fab.on-r .tfan-i{flex-direction:row}.tfan.from-fab.on-r[dir=rtl] .tfan-i{flex-direction:row-reverse} /* icon on the edge side, label inward */
.tfan.from-fab.on-r .tfan-i{transform:translateX(calc(var(--fan-shift) * -1)) scale(.85)}.tfan.from-fab.on-r.open .tfan-i{transform:none}
@media (min-width:761px){.tfan.from-fab{left:var(--tbx-fan-x)}.tfan.from-fab.on-r{left:auto}}
/* «الإشعارات الرئيسية» (owner voice msg 7570e3b6): the red count of new notifications from every app (notify-hub.js) on the toolbox,
   and one bounce when a new one arrives. Look from the --tfab-badge* / --tfab-bump* tokens only. */
.tfab-n{position:absolute;top:var(--tfab-badge-top);inset-inline-end:var(--tfab-badge-side);box-sizing:border-box;min-width:var(--tfab-badge-s);height:var(--tfab-badge-s);
  padding:0 var(--tfab-badge-pad);border-radius:var(--radius-pill);background:var(--tfab-badge);color:var(--on-tfab-badge);box-shadow:0 0 0 var(--tfab-badge-ring-w) var(--tfab-badge-ring);
  font-style:normal;font-size:var(--tfab-badge-fs);font-weight:var(--fw-bold);line-height:var(--tfab-badge-s);text-align:center;direction:ltr;pointer-events:none}
.tfab-n[hidden]{display:none}
.tfab.tuck .tfab-n{top:var(--tfab-badge-tuck-top)}
@keyframes tfab-bump{0%{transform:translateY(0) scale(1)}25%{transform:translateY(var(--tfab-bump-h)) scale(1.08)}45%{transform:translateY(0) scale(.96)}
  65%{transform:translateY(calc(var(--tfab-bump-h) / 2)) scale(1.03)}85%,100%{transform:translateY(0) scale(1)}}
@keyframes tfab-n-pop{0%{transform:scale(.4)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
.tfab.on.bump{animation:tfab-bump var(--tfab-bump-dur) var(--fan-ease) 1}
.tfab.on.bump .tfab-n{animation:tfab-n-pop var(--tfab-bump-dur) var(--fan-ease) 1}
@media (prefers-reduced-motion:reduce){.tfab.on.bump,.tfab.on.bump .tfab-n{animation:none}}
@media (prefers-reduced-motion:reduce){.tfab,.tfab .tfab-ic{transition:none;transform:none}}
@media (forced-colors:active){.tfab .tfab-ic,.tfab .tfab-tab{border:1px solid CanvasText}}
@media print{.tfab{display:none}}
/* msg f4cf487e «احذف لي كل الأقسام العائمة … أريد فقط صندوق الأدوات هو الذي يكون عائم»: nothing else floats. Their tools now open
   from the toolbox fan: the tab bar («الرئيسية / المهام / Git / الموافقات / الأدوات» + «اسأل أومكسيو» chip), the round buttons
   stacked over the chat composer (tasks, Git, WhatsApp, Socia, ملفاتي, browser, mail, approvals, the folded «اسأل أومكسيو» box),
   and the floating pills («نشر يحتاج مشرف», «حارس التشغيل», «عرض كعميل»). */
.tbar-wrap,.tb-fab,.gb-fab,.wb-fab,.sb-fab,.mf-fab,.br-fab,.mb-fab,.eb-fab,.ab-fab,.as-fab,.sdp-dock,.ogd-dock,.cl-dock{display:none!important}
.side.has-tbar .sscroll{padding-bottom:var(--sb)}
