:root{
  --fp-primary:#00e5ff;
  --fp-accent:#8b5cf6;
  --fp-bg1:#0b1020;
  --fp-bg2:#071a33;
  --fp-surface:rgba(255,255,255,.06);
  --fp-surface2:rgba(255,255,255,.10);
  --fp-border:rgba(255,255,255,.10);
  --fp-text:rgba(255,255,255,.92);
  --fp-muted:rgba(255,255,255,.70);
  --fp-danger:#ff4d6d;
  --fp-success:#22c55e;
  --fp-warning:#f59e0b;
  --fp-radius:18px;
  --fp-radius-sm:14px;
  --fp-shadow:0 18px 60px rgba(0,0,0,.45);
  --fp-font: system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Kufi Arabic", "Noto Sans Arabic", sans-serif;
  --fp-font-size: 14px;
}
html,body{height:100%;}
/* Prevent horizontal page scrolling on mobile when tables are wide */
html,body{overflow-x:hidden;}
body.fp-body{
  margin:0;
  font-family:var(--fp-font);
  font-size:var(--fp-font-size);
  color:var(--fp-text);
  background:
    radial-gradient(1200px 600px at 10% 10%, rgba(139,92,246,.25), transparent 60%),
    radial-gradient(900px 500px at 90% 20%, rgba(0,229,255,.18), transparent 55%),
    linear-gradient(160deg, var(--fp-bg1), var(--fp-bg2));
}
[data-theme="light"] body.fp-body{
  --fp-text:rgba(10,20,35,.92);
  --fp-muted:rgba(10,20,35,.65);
  --fp-border:rgba(10,20,35,.10);
  --fp-surface:rgba(255,255,255,.75);
  --fp-surface2:rgba(255,255,255,.92);
  background:
    radial-gradient(1200px 600px at 10% 10%, rgba(139,92,246,.12), transparent 60%),
    radial-gradient(900px 500px at 90% 20%, rgba(0,229,255,.10), transparent 55%),
    linear-gradient(180deg, #f6f9ff, #edf2ff);
}
*{box-sizing:border-box;}
a{color:inherit;text-decoration:none;}
.fp-main{min-height:100vh;margin-inline-start:280px;transition:margin .2s ease;max-width:100%;}
body.fp-sidebar-collapsed .fp-main{margin-inline-start:92px;}
.fp-sidebar{
  position:fixed;inset-block:18px;inset-inline-start:18px;
  width:262px;
  height:calc(100vh - 36px);
  display:flex;flex-direction:column;
  overflow:hidden;
  border:1px solid var(--fp-border);
  border-radius:22px;
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.05));
  backdrop-filter: blur(12px);
  box-shadow:var(--fp-shadow);
  padding:16px;
  z-index:40;
}
body.fp-sidebar-collapsed .fp-sidebar{width:74px;}
.fp-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.fp-brand img{width:40px;height:40px;border-radius:14px;object-fit:contain;background:rgba(255,255,255,.08);}
.fp-brand-title{font-weight:800;letter-spacing:.2px;}
.fp-badge{font-size:12px;color:var(--fp-muted);}
.fp-nav{display:flex;flex-direction:column;gap:10px;margin-top:12px;flex:1;overflow-y:auto;overflow-x:hidden;padding-inline-end:6px;}
.fp-nav a{
  display:flex;align-items:center;gap:10px;
  padding:12px 12px;
  border-radius:16px;
  border:1px solid transparent;
  background:transparent;
  transition:transform .12s ease, background .12s ease, border .12s ease;
  color:var(--fp-text);
}
.fp-nav a:hover{background:var(--fp-surface);border-color:var(--fp-border);transform:translateY(-1px);}
.fp-nav a.active{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);box-shadow:inset 3px 0 0 var(--fp-primary);}
.fp-nav .fp-ico{width:22px;opacity:.9}
body.fp-sidebar-collapsed .fp-nav .fp-label,
body.fp-sidebar-collapsed .fp-brand-title,
body.fp-sidebar-collapsed .fp-badge{display:none;}
.fp-header{
  position:sticky;top:0;z-index:20;
  padding:14px 16px 10px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.fp-topbar{
  width:100%;
  border:1px solid var(--fp-border);
  border-radius:18px;
  /* Less "flashy" header on mobile/desktop */
  background:rgba(255,255,255,.06);
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 28px rgba(0,0,0,.20);
  padding:12px 12px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.fp-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.fp-btn{
  border:1px solid var(--fp-border);
  background:var(--fp-surface);
  color:var(--fp-text);
  padding:9px 11px;
  border-radius:14px;
  cursor:pointer;
}
.fp-btn:hover{background:var(--fp-surface2);}
.fp-btn-primary{
  border-color:rgba(0,0,0,0.0);
  border-color:color-mix(in srgb, var(--fp-primary) 60%, transparent);
  background:linear-gradient(90deg, var(--fp-primary), var(--fp-accent));
}
.fp-chip{padding:10px 12px;border-radius:14px;border:1px solid var(--fp-border);background:var(--fp-surface);}
.fp-content{padding:0 22px 22px;}
.fp-card{
  border:1px solid var(--fp-border);
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
  backdrop-filter: blur(12px);
  border-radius:22px;
  box-shadow:var(--fp-shadow);
  padding:18px;
  /* Keep wide tables inside cards (no page overflow) */
  overflow-x:auto;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
}
.fp-h2{margin:0 0 14px;font-size:20px;}
.fp-form{display:block;}
.fp-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.fp-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
.fp-label{display:block;margin:0 0 8px;color:var(--fp-muted);font-size:13px;}
.fp-input, .fp-select, .fp-textarea{
  width:100%;
  border-radius:14px;
  border:1px solid var(--fp-border);
  background:var(--fp-surface);
  padding:11px 12px;
  color:var(--fp-text);
  outline:none;
}
.fp-input:focus, .fp-select:focus, .fp-textarea:focus{border-color:rgba(0,229,255,.45);box-shadow:0 0 0 4px rgba(0,229,255,.10);}
.fp-textarea{min-height:110px;resize:vertical;}
.fp-divider{height:1px;background:var(--fp-border);margin:16px 0;}
.fp-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0 10px;
}
.fp-table th{color:var(--fp-muted);font-size:13px;font-weight:600;text-align:start;padding:0 10px 6px;}
.fp-table td{
  background:var(--fp-surface);
  border:1px solid var(--fp-border);
  padding:12px 10px;
  vertical-align:middle;
  word-break:break-word;
  white-space:nowrap;
}

/* Allow wrapping only for cells explicitly marked as long */
.fp-table td.fp-wrap,
.fp-table th.fp-wrap{white-space:normal;}
.fp-table tr td:first-child{border-start-start-radius:14px;border-end-start-radius:14px;}
.fp-table tr td:last-child{border-start-end-radius:14px;border-end-end-radius:14px;}
.fp-actions{display:flex;gap:8px;flex-wrap:wrap;}
.fp-alert{padding:12px 14px;border-radius:14px;border:1px solid var(--fp-border);background:var(--fp-surface);margin-bottom:14px;}
.fp-alert-success{border-color:rgba(34,197,94,.35);}
.fp-alert-danger{border-color:rgba(255,77,109,.35);}
.fp-alert-warning{border-color:rgba(245,158,11,.35);}
.fp-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:35;}
.fp-overlay.fp-open{display:block;}
@media (max-width:980px){
  .fp-main{margin-inline-start:0;}
  .fp-sidebar{inset-inline-start:12px;transform:translateX(-110%);transition:transform .2s ease;}
  [dir="rtl"] .fp-sidebar{transform:translateX(110%);}
  .fp-sidebar.fp-open{transform:translateX(0);}
  body.fp-sidebar-collapsed .fp-sidebar{width:262px;}
  .fp-grid-2,.fp-grid-3{grid-template-columns:1fr;}

  /* Header becomes clean and stacked on phones */
  .fp-header{padding:10px 10px 6px;}
  .fp-topbar{flex-direction:column;align-items:stretch;gap:10px;padding:10px;}
  .fp-row{gap:8px;}
  .fp-btn{padding:10px 12px;width:auto;}
  .fp-content{padding:0 10px 14px;}

  /* Tables: keep inside card and allow horizontal scroll inside card */
  .fp-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .fp-table thead, .fp-table tbody{display:table;width:100%;}
  .fp-table{min-width:720px;}
  .fp-table th, .fp-table td{white-space:nowrap;}
  .fp-table th.fp-wrap, .fp-table td.fp-wrap{white-space:normal;}
}

/* Optional helper wrapper (safe even if not used in HTML) */
.fp-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;}
.fp-table-wrap .fp-table{min-width:720px;}
.fp-login-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
}
.fp-login-card{
  width:min(420px, 100%);
  border:1px solid var(--fp-border);
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.06));
  backdrop-filter: blur(14px);
  border-radius:26px;
  box-shadow:var(--fp-shadow);
  padding:22px;
}
.fp-login-title{font-size:20px;font-weight:800;margin:0 0 12px;}
.fp-footer{padding:14px 22px 26px;color:var(--fp-muted);font-size:12px;}
CSS

/* helpers used in legacy views */
.fp-row-between{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.fp-icon-btn{border:1px solid var(--fp-border);background:var(--fp-surface);color:var(--fp-text);padding:10px 12px;border-radius:14px;cursor:pointer;}
.fp-icon-btn:hover{background:var(--fp-surface2);}
.fp-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:20px;z-index:60;}
.fp-modal.fp-open{display:flex;}
/* Backdrop under the panel (so it never blocks clicks on the dialog) */
.fp-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);z-index:0;}
/* Dialog containers */
.fp-modal-content,
.fp-modal-card,
.fp-modal-panel{position:relative;z-index:1;max-width:720px;width:100%;}
/* Optional: remove backdrop dim (used for CSV copy modals) */
.fp-modal.fp-nodim .fp-modal-backdrop{background:transparent;}

.fp-pill{padding:10px 12px;border-radius:14px;border:1px solid var(--fp-border);background:var(--fp-surface);}
.fp-pill:hover{background:var(--fp-surface2);}


.fp-modal-card{
  position:relative;
  width:min(760px, 100%);
  border:1px solid var(--fp-border);
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.06));
  backdrop-filter: blur(14px);
  border-radius:22px;
  box-shadow:var(--fp-shadow);
  padding:16px;
  z-index:2;
}
.fp-card-title{font-weight:800;}
.fp-muted{color:var(--fp-muted);font-size:12px;}

.fp-nav-group{margin-top:10px;padding-top:10px;border-top:1px solid var(--fp-border);}
.fp-nav-title{font-size:11px;color:var(--fp-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 10px 8px;}

/* Sidebar scrollbars */
.fp-nav::-webkit-scrollbar{width:8px;}
.fp-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:10px;}
.fp-nav::-webkit-scrollbar-track{background:transparent;}
[dir="rtl"] .fp-nav{padding-inline-start:6px;padding-inline-end:0;}

.fp-badge-ok{background:rgba(34,197,94,.15);border:1px solid rgba(34,197,94,.35);color:rgb(34,197,94);}
.fp-badge-bad{background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.35);color:rgb(239,68,68);}

.fp-link{background:transparent;border:0;color:var(--fp-primary);cursor:pointer;font:inherit;padding:0;text-decoration:underline;}

.fp-modal{display:none;position:fixed;inset:0;align-items:center;justify-content:center;}
.fp-modal.is-open{display:flex;}

/* Fast search input above tables (used across the system) */
.fp-table-search{width:100%;max-width:520px;margin:10px 0 12px 0;}

/* --- Fast search standardization (v42) ---
   Keep ONE instant search input (.fp-table-search) above tables.
   Hide legacy search bars (server-side forms + advanced filters) to avoid duplicates.
*/
.fp-search,
.fp-search-advanced{
  display:none !important;
}
