/* FDX_FUPANEL_SITE — ديمو فيوبانل: صدفة تطبيق على رموز نظام تصميم فيودكس (fx-tokens.css). */
:root{--acc:#2F6FDB;--acc-soft:rgba(47,111,219,.1);--side:270px;--bh:44px;--th:62px}
html.dark{--acc:#7FA8F0;--acc-soft:rgba(127,168,240,.14)}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--fx-font);background:var(--fx-bg);color:var(--fx-text);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
.ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}
.ic.s{display:inline}.ic.m{display:none}html.dark .ic.s{display:none}html.dark .ic.m{display:inline}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;direction:ltr;unicode-bidi:isolate}
.num{font-variant-numeric:tabular-nums}

/* الشريط التوضيحي */
.dm-banner{position:sticky;top:0;z-index:40;height:var(--bh);display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--fx-navy);color:var(--fx-white);font-size:13.5px}
html.dark .dm-banner{background:var(--fx-panel);border-bottom:1px solid var(--fx-line)}
.dm-banner-t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dm-banner-t b{color:var(--fx-orange-on-dark)}
.dm-banner-a{display:flex;gap:8px;flex:none}
.dm-bb{border:1px solid rgba(255,255,255,.28);background:none;color:var(--fx-white);border-radius:var(--fx-r-pill);padding:4px 12px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
.dm-bb.pri{background:var(--fx-orange);border-color:var(--fx-orange)}
.dm-bb.ghost{border-color:transparent;color:var(--fx-on-dark-3)}
.dm-bb:hover{border-color:var(--fx-white)}

/* الرأس */
.dm-top{position:sticky;top:var(--bh);z-index:30;height:var(--th);display:flex;align-items:center;gap:14px;padding:0 18px;background:var(--fx-hdr-glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--fx-line)}
.dm-brand{display:flex;align-items:center;gap:8px}
.dm-brand img{height:30px;width:auto}
.dm-brand .lg-w{display:none}html.dark .dm-brand .lg-d{display:none}html.dark .dm-brand .lg-w{display:block}
.dm-brand span{font-weight:700;font-size:15px;color:var(--acc);border-inline-start:1px solid var(--fx-line-2);padding-inline-start:9px;direction:ltr}
.dm-modes{display:flex;gap:4px;padding:4px;border-radius:var(--fx-r-pill);background:var(--fx-soft);border:1px solid var(--fx-line)}
.dm-modes a{padding:6px 14px;border-radius:var(--fx-r-pill);font-size:14px;font-weight:700;color:var(--fx-muted);white-space:nowrap}
.dm-modes a.on{background:var(--fx-paper);color:var(--fx-ink);box-shadow:var(--fx-sh-1)}
.dm-sp{flex:1}
.dm-search{display:flex;align-items:center;gap:8px;background:var(--fx-paper);border:1px solid var(--fx-line);border-radius:var(--fx-r-pill);padding:6px 12px;width:240px;color:var(--fx-muted)}
.dm-search input{border:0;background:none;outline:0;width:100%;color:var(--fx-text);font-size:14px}
.dm-ib{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--fx-line);background:var(--fx-paper);cursor:pointer;color:var(--fx-ink)}
.dm-menu{display:none}
.dm-av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--acc);color:var(--fx-white);flex:none}

/* الصدفة */
.dm-shell{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:calc(100vh - var(--bh) - var(--th))}
.dm-side{position:sticky;top:calc(var(--bh) + var(--th));height:calc(100vh - var(--bh) - var(--th));overflow:auto;padding:18px 14px 30px;border-inline-end:1px solid var(--fx-line);background:var(--fx-paper)}
.dm-side h4{font-size:12px;font-weight:700;color:var(--fx-muted);margin:16px 10px 6px;letter-spacing:.02em}
.dm-side h4:first-child{margin-top:0}
.dm-side a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--fx-r-sm);font-size:14.5px;color:var(--fx-text)}
.dm-side a:hover{background:var(--fx-soft)}
.dm-side a.on{background:var(--acc-soft);color:var(--acc);font-weight:700}
.dm-side a .ic{color:var(--fx-muted)}
.dm-side a.on .ic{color:var(--acc)}
.dm-side a .ct{margin-inline-start:auto;font-size:12px;color:var(--fx-muted);background:var(--fx-soft);border-radius:var(--fx-r-pill);padding:0 8px}
.dm-ctx{display:flex;gap:10px;align-items:center;padding:10px;border-radius:var(--fx-r-md);background:var(--fx-soft);margin-bottom:14px}
.dm-ctx i{width:36px;height:36px;border-radius:var(--fx-r-sm);display:grid;place-items:center;background:var(--fx-paper);color:var(--acc);flex:none}
.dm-ctx b{display:block;font-size:14px;color:var(--fx-ink)}
.dm-ctx small{display:block;font-size:12px;color:var(--fx-muted)}
.dm-main{padding:24px 28px 60px;min-width:0;outline:0}
.dm-scrim{display:none}

/* المحتوى */
.crumbs{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--fx-muted);margin-bottom:12px;flex-wrap:wrap}
.crumbs a:hover{color:var(--acc)}
.crumbs .ic{width:14px;height:14px;transform:scaleX(-1)}
.hero{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap;background:var(--fx-paper);border:1px solid var(--fx-line);border-radius:var(--fx-r-lg);padding:20px 22px;margin-bottom:20px}
.hero h1{font-size:24px;margin:0;color:var(--fx-ink)}
.hero .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.hero .sub{font-size:13px;color:var(--fx-muted);margin-top:4px}
.gauges{display:flex;gap:14px}
.gauge{width:84px;text-align:center}
.gauge svg{width:72px;height:72px}
.gauge circle{fill:none;stroke-width:8}
.gauge .bg{stroke:var(--fx-soft)}
.gauge .fg{stroke:var(--acc);stroke-linecap:round;transition:stroke-dashoffset .8s var(--fx-ease)}
.gauge .fg.warn{stroke:var(--fx-tier-warn)}
.gauge b{display:block;font-size:13px;margin-top:-50px;height:46px;color:var(--fx-ink)}
.gauge small{display:block;font-size:12px;color:var(--fx-muted)}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:2px 10px;border-radius:var(--fx-r-pill);background:var(--fx-soft);color:var(--fx-muted);white-space:nowrap}
.pill.ok{background:var(--fx-ok-soft);color:var(--fx-ok)}
.pill.ok::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.pill.bad{background:rgba(220,60,60,.12);color:var(--fx-tier-low)}
.pill.warn{background:rgba(232,150,20,.14);color:var(--fx-tier-warn)}
.pill.acc{background:var(--acc-soft);color:var(--acc)}
.banner{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--fx-r-md);border:1px solid var(--fx-line);background:var(--fx-paper);font-size:14px;margin-bottom:10px}
.banner .ic{margin-top:2px}
.banner.warn{border-color:rgba(232,150,20,.4)}.banner.warn .ic{color:var(--fx-tier-warn)}
.banner.info .ic{color:var(--acc)}
.banner.ok .ic{color:var(--fx-ok)}
.banner a{color:var(--acc);font-weight:700}
.banner .grow{flex:1}
.tgroup{margin-top:22px}
.tgroup h2{font-size:15px;color:var(--fx-muted);margin:0 0 10px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.tile{display:flex;gap:12px;align-items:flex-start;padding:16px;border-radius:var(--fx-r-md);background:var(--fx-paper);border:1px solid var(--fx-line);transition:transform var(--fx-t-fast),box-shadow var(--fx-t-fast)}
.tile:hover{transform:translateY(-2px);box-shadow:var(--fx-sh-2);border-color:var(--acc)}
.tile i{width:40px;height:40px;border-radius:var(--fx-r-sm);display:grid;place-items:center;background:var(--acc-soft);color:var(--acc);flex:none}
.tile b{display:flex;gap:8px;align-items:center;font-size:15px;color:var(--fx-ink)}
.tile small{display:block;font-size:13px;color:var(--fx-muted);margin-top:2px}
.tile .ct{font-size:12px;font-weight:700;color:var(--acc);background:var(--acc-soft);border-radius:var(--fx-r-pill);padding:0 8px}
.page-h{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.page-h h2{font-size:22px;margin:0;color:var(--fx-ink)}
.page-h p{margin:2px 0 0;color:var(--fx-muted);font-size:14px}
.card{background:var(--fx-paper);border:1px solid var(--fx-line);border-radius:var(--fx-r-md);padding:18px;margin-bottom:14px}
.card h3{font-size:16px;margin:0 0 10px;color:var(--fx-ink)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.grid2>*,.grid3>*,.fm>*{min-width:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--fx-line-2);background:var(--fx-paper);color:var(--fx-ink);border-radius:var(--fx-r-btn);padding:8px 14px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--acc);color:var(--acc)}
.btn.pri{background:var(--acc);border-color:var(--acc);color:var(--fx-white)}
.btn.pri:hover{filter:brightness(1.08);color:var(--fx-white)}
.btn.sm{padding:5px 10px;font-size:13px}
.btn.dan:hover{border-color:var(--fx-tier-low);color:var(--fx-tier-low)}
.btn[disabled]{opacity:.55;pointer-events:none}
.btn .ic{width:16px;height:16px}
.tbl-w{overflow-x:auto;background:var(--fx-paper);border:1px solid var(--fx-line);border-radius:var(--fx-r-md)}
table.tbl{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.tbl th{font-size:12.5px;color:var(--fx-muted);text-align:start;font-weight:700;padding:10px 14px;background:var(--fx-soft);white-space:nowrap}
.tbl td{padding:11px 14px;border-top:1px solid var(--fx-line);vertical-align:middle}
.tbl td .acts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.tbl tr.new td{animation:flash 1.6s}
@keyframes flash{from{background:var(--acc-soft)}to{background:transparent}}
.bar{height:7px;border-radius:7px;background:var(--fx-soft);overflow:hidden;min-width:80px}
.bar i{display:block;height:100%;background:var(--acc);border-radius:7px}
.bar i.warn{background:var(--fx-tier-warn)}
.field{display:grid;gap:5px;font-size:13.5px;font-weight:700;color:var(--fx-ink);margin-bottom:12px}
.field small{font-weight:400;color:var(--fx-muted)}
.field input,.field select,.field textarea{border:1px solid var(--fx-line-2);background:var(--fx-bg);border-radius:var(--fx-r-sm);padding:9px 11px;font-size:14px;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--acc);outline-offset:1px;border-color:transparent}
.inrow{display:flex;gap:8px;align-items:center}
.inrow .pre{font-size:13px;color:var(--fx-muted);direction:ltr}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--fx-line-2);background:var(--fx-paper);border-radius:var(--fx-r-pill);padding:3px 11px;font-size:12.5px;font-weight:700;cursor:pointer;color:var(--fx-muted)}
.chip.on{background:var(--acc-soft);border-color:var(--acc);color:var(--acc)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:14px}
.kv dt{color:var(--fx-muted)}.kv dd{margin:0;color:var(--fx-ink);font-weight:700}
.empty{text-align:center;padding:30px;color:var(--fx-muted)}
.grade{width:38px;height:38px;border-radius:var(--fx-r-sm);display:grid;place-items:center;font-weight:700;font-size:17px;color:var(--fx-white)}
.grade.A{background:var(--fx-ok)}.grade.B{background:var(--acc)}.grade.C{background:var(--fx-tier-warn)}.grade.D{background:var(--fx-tier-low)}
.spark{width:100%;height:120px}
.spark path.l{fill:none;stroke:var(--acc);stroke-width:2}
.spark path.a{fill:var(--acc-soft)}
.spark line{stroke:var(--fx-line);stroke-width:1}
.switch{position:relative;width:42px;height:24px;border-radius:24px;background:var(--fx-line-2);border:0;cursor:pointer;flex:none;transition:background var(--fx-t-fast)}
.switch::after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:18px;height:18px;border-radius:50%;background:var(--fx-white);transition:inset-inline-start var(--fx-t-fast)}
.switch[aria-checked="true"]{background:var(--fx-ok)}
.switch[aria-checked="true"]::after{inset-inline-start:21px}
.srow{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid var(--fx-line)}
.srow:first-of-type{border-top:0}
.srow b{display:block;font-size:14.5px;color:var(--fx-ink)}
.srow small{display:block;font-size:13px;color:var(--fx-muted)}
.count{font-weight:700;color:var(--fx-tier-warn)}

/* مدير الملفات */
.fm{display:grid;grid-template-columns:220px 1fr;gap:14px}
.fm-tree{background:var(--fx-paper);border:1px solid var(--fx-line);border-radius:var(--fx-r-md);padding:10px;font-size:14px;align-self:start}
.fm-tree a{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:var(--fx-r-xs)}
.fm-tree a.on,.fm-tree a:hover{background:var(--acc-soft);color:var(--acc)}
.fm-path{display:flex;gap:4px;align-items:center;font-size:13px;direction:ltr;justify-content:flex-end;color:var(--fx-muted)}
.fm-name{display:flex;gap:9px;align-items:center;cursor:pointer;direction:ltr;justify-content:flex-end}
.fm-name:hover{color:var(--acc)}
.fm-name .ic{color:var(--fx-muted)}
.fm-name.dir .ic{color:var(--fx-tier-warn)}
.editor{width:100%;min-height:330px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;direction:ltr;text-align:left;line-height:1.55;border:1px solid var(--fx-line-2);border-radius:var(--fx-r-sm);padding:12px;background:var(--fx-bg);resize:vertical;tab-size:4}

/* الطرفية */
.term{background:var(--fx-navy);color:var(--fx-on-dark);border-radius:var(--fx-r-md);padding:14px 16px;min-height:380px;max-height:60vh;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;direction:ltr;text-align:left;line-height:1.6;cursor:text}
.term .p{color:#7FE0A8}.term .e{color:#FF9B8A}.term .d{color:#8EA2D0}
.term-in{display:flex;gap:6px}
.term-in input{flex:1;background:none;border:0;outline:0;color:#fff;font:inherit;padding:0}

/* phpMyAdmin الشكلي */
.pma{display:grid;grid-template-columns:200px 1fr;gap:0;border:1px solid var(--fx-line);border-radius:var(--fx-r-md);overflow:hidden;min-height:340px;direction:ltr;text-align:left;font-size:13px}
.pma-side{background:var(--fx-soft);padding:10px;border-right:1px solid var(--fx-line)}
.pma-side b{display:block;margin-bottom:6px}
.pma-side a{display:block;padding:3px 6px;border-radius:4px;cursor:pointer}
.pma-side a.on,.pma-side a:hover{background:var(--acc-soft);color:var(--acc)}
.pma-main{padding:12px;overflow:auto}
.pma-main table{border-collapse:collapse;width:100%}
.pma-main th,.pma-main td{border:1px solid var(--fx-line);padding:5px 8px;text-align:left;white-space:nowrap}
.pma-main th{background:var(--fx-soft)}

/* الإشعارات والنافذة */
.dm-toasts{position:fixed;bottom:18px;inset-inline-start:18px;z-index:60;display:grid;gap:8px;width:min(380px,calc(100vw - 36px))}
.toast{display:flex;gap:10px;align-items:flex-start;background:var(--fx-paper);border:1px solid var(--fx-line);box-shadow:var(--fx-sh-3);border-radius:var(--fx-r-md);padding:12px 14px;font-size:14px;animation:tin .25s var(--fx-ease)}
.toast .ic{color:var(--fx-ok);margin-top:2px}
.toast.run .ic{color:var(--acc);animation:spin 1s linear infinite}
.toast small{display:block;color:var(--fx-muted);font-size:12.5px}
.toast .pb{height:4px;border-radius:4px;background:var(--fx-soft);margin-top:7px;overflow:hidden}
.toast .pb i{display:block;height:100%;width:0;background:var(--acc);transition:width .4s}
@keyframes tin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}
.dm-modal{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:16px}
.dm-modal[hidden]{display:none}
.dm-modal-bg{position:absolute;inset:0;background:var(--fx-scrim)}
.dm-modal-in{position:relative;width:min(620px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--fx-paper);border-radius:var(--fx-r-lg);padding:22px;box-shadow:var(--fx-sh-3)}
.dm-modal-in.wide{width:min(980px,100%)}
.dm-modal-in h3{margin:0 0 4px;font-size:19px;color:var(--fx-ink)}
.dm-modal-in .mp{color:var(--fx-muted);font-size:14px;margin:0 0 16px}
.dm-modal-in .ft{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
.cd{font-weight:700;color:var(--fx-tier-warn)}

@media (max-width:1100px){
  .dm-search{display:none}
}
@media (max-width:900px){
  :root{--th:58px}
  .dm-menu{display:grid}
  .dm-shell{grid-template-columns:minmax(0,1fr)}
  .dm-side{position:fixed;top:0;bottom:0;inset-inline-start:0;height:100vh;width:min(300px,86vw);z-index:55;transform:translateX(105%);transition:transform .25s var(--fx-ease);box-shadow:var(--fx-sh-3)}
  html.nav-open .dm-side{transform:none}
  html.nav-open .dm-scrim{display:block;position:fixed;inset:0;z-index:50;background:var(--fx-scrim)}
  .dm-main{padding:18px 16px 60px}
  .grid2,.grid3,.fm{grid-template-columns:minmax(0,1fr)}
  .fm-tree{display:flex;overflow-x:auto;gap:4px}
  .fm-tree a{white-space:nowrap}
  .pma{grid-template-columns:1fr}
  .pma-side{border-right:0;border-bottom:1px solid var(--fx-line)}
}
@media (max-width:640px){
  .dm-banner{font-size:12.5px;gap:8px;padding:0 10px}
  .dm-banner-t{white-space:normal;line-height:1.3}
  .dm-bb.ghost,.dm-bb:not(.pri){display:none}
  .dm-top{gap:8px;padding:0 10px}
  .dm-brand img{height:26px}
  .dm-brand span{display:none}
  .dm-modes a{padding:5px 10px;font-size:13px}
  .dm-av{display:none}
  .hero{padding:16px}
  .gauges{width:100%;justify-content:space-around}
  .tiles{grid-template-columns:1fr}
}
