:root{
  --bg: #14100D;
  --surface: #1D1712;
  --surface-2: #241C15;
  --surface-3: #2B2118;
  --line: #362B20;
  --text: #F1E9DE;
  --text-dim: #B7A996;
  --text-mute: #8A7C6A;
  --copper: #C97D4B;
  --copper-bright: #E29A66;
  --gold: #D4A24C;
  --danger: #C4574A;
  --good: #6FA283;
  --radius: 14px;
  --radius-sm: 8px;
  --shadow: 0 20px 50px -20px rgba(0,0,0,.6);
  --mono: 'JetBrains Mono', 'Courier New', monospace;
  --display: 'Cairo', 'Tajawal', sans-serif;
  --body: 'IBM Plex Sans Arabic', 'Tajawal', sans-serif;
}

*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  background:
    radial-gradient(1200px 600px at 85% -10%, rgba(201,125,75,.10), transparent 60%),
    radial-gradient(900px 500px at -5% 110%, rgba(212,162,76,.08), transparent 60%),
    var(--bg);
  color:var(--text);
  font-family:var(--body);
  direction:rtl;
  min-height:100vh;
}

::selection{background:var(--copper); color:#1a1310;}

button{font-family:inherit;}
input{font-family:inherit;}

.hidden{display:none !important;}

/* ---------- Texture: subtle coffee-ring / grain ---------- */
body::before{
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  opacity:.05;
  background-image:
    radial-gradient(circle at 20% 30%, #fff 0, transparent 1px),
    radial-gradient(circle at 70% 60%, #fff 0, transparent 1px),
    radial-gradient(circle at 40% 80%, #fff 0, transparent 1px);
  background-size: 3px 3px;
}

/* =========================================================
   LOGIN VIEW
   ========================================================= */
.login-screen{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  position:relative;
  z-index:1;
}

.login-card{
  width:100%;
  max-width:400px;
  background:linear-gradient(180deg, var(--surface-2), var(--surface));
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:38px 32px 30px;
  position:relative;
  overflow:hidden;
}

.login-card::after{
  content:"";
  position:absolute;
  top:-60px; left:50%;
  width:220px; height:220px;
  transform:translateX(-50%);
  background:radial-gradient(circle, rgba(201,125,75,.25), transparent 70%);
  pointer-events:none;
}

.brand-mark{
  display:flex; align-items:center; gap:12px;
  margin-bottom:28px;
}
.brand-mark .ring{
  width:44px; height:44px;
  border-radius:50%;
  border:2px solid var(--copper);
  display:grid; place-items:center;
  position:relative;
  flex-shrink:0;
}
.brand-mark .ring::before{
  content:"";
  width:6px; height:6px;
  border-radius:50%;
  background:var(--gold);
}
.brand-mark .ring::after{
  content:"";
  position:absolute; inset:-6px;
  border-radius:50%;
  border:1px solid rgba(201,125,75,.35);
}
.brand-mark .txt{ line-height:1.15; }
.brand-mark .txt b{
  display:block; font-family:var(--display); font-weight:800;
  font-size:18px; letter-spacing:.2px;
}
.brand-mark .txt span{
  font-family:var(--mono); font-size:11px; color:var(--text-mute);
  letter-spacing:1px;
}

.login-card h1{
  font-family:var(--display);
  font-weight:800;
  font-size:22px;
  margin:0 0 6px;
}
.login-card p.sub{
  margin:0 0 26px;
  color:var(--text-dim);
  font-size:13.5px;
}

.field{ margin-bottom:16px; }
.field label{
  display:block;
  font-size:12.5px;
  color:var(--text-mute);
  margin-bottom:7px;
  font-family:var(--mono);
  letter-spacing:.3px;
}
.field .input-wrap{
  position:relative;
}
.field input{
  width:100%;
  background:var(--surface-3);
  border:1px solid var(--line);
  color:var(--text);
  border-radius:var(--radius-sm);
  padding:12px 14px;
  font-size:14.5px;
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.field input:focus{
  border-color:var(--copper);
  box-shadow:0 0 0 3px rgba(201,125,75,.15);
}

.login-btn{
  width:100%;
  border:none;
  border-radius:var(--radius-sm);
  padding:13px 16px;
  background:linear-gradient(180deg, var(--copper-bright), var(--copper));
  color:#1a1310;
  font-weight:800;
  font-size:14.5px;
  cursor:pointer;
  margin-top:6px;
  transition:transform .12s ease, filter .12s ease;
}
.login-btn:hover{ filter:brightness(1.08); }
.login-btn:active{ transform:scale(.98); }

.login-error{
  display:flex; align-items:center; gap:8px;
  background:rgba(196,87,74,.12);
  border:1px solid rgba(196,87,74,.35);
  color:#E5A79E;
  font-size:12.5px;
  padding:10px 12px;
  border-radius:var(--radius-sm);
  margin-bottom:16px;
}

.login-foot{
  margin-top:22px;
  text-align:center;
  font-family:var(--mono);
  font-size:11px;
  color:var(--text-mute);
  letter-spacing:.5px;
}

/* =========================================================
   DASHBOARD SHELL
   ========================================================= */
.shell{
  display:grid;
  grid-template-columns:260px 1fr;
  min-height:100vh;
}

/* ---- Sidebar ---- */
.sidebar{
  background:linear-gradient(180deg, var(--surface-2), var(--surface));
  border-left:1px solid var(--line);
  padding:22px 18px;
  display:flex;
  flex-direction:column;
  position:sticky;
  top:0;
  height:100vh;
}
.sidebar .brand-mark{ margin-bottom:30px; padding:0 4px;}

.side-label{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:1.5px;
  color:var(--text-mute);
  margin:0 6px 10px;
  text-transform:uppercase;
}

.side-nav{
  list-style:none;
  margin:0 0 20px;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:3px;
  overflow-y:auto;
}
.side-nav li a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 10px;
  border-radius:var(--radius-sm);
  color:var(--text-dim);
  text-decoration:none;
  font-size:13.5px;
  transition:background .12s ease, color .12s ease;
  cursor:pointer;
}
.side-nav li a:hover{ background:var(--surface-3); color:var(--text); }
.side-nav li a .dot{
  width:7px;height:7px;border-radius:50%;flex-shrink:0;
}

.sidebar-foot{
  margin-top:auto;
  padding-top:16px;
  border-top:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.user-chip{
  display:flex; align-items:center; gap:8px;
  font-size:12.5px; color:var(--text-dim);
}
.user-chip .av{
  width:28px;height:28px;border-radius:50%;
  background:linear-gradient(135deg, var(--copper), var(--gold));
  display:grid;place-items:center;
  font-family:var(--display); font-weight:800; font-size:12px; color:#1a1310;
}
.logout-btn{
  background:none;border:1px solid var(--line);color:var(--text-mute);
  border-radius:var(--radius-sm); padding:7px 10px; cursor:pointer;
  font-size:12px; transition:border-color .12s ease, color .12s ease;
}
.logout-btn:hover{ border-color:var(--danger); color:#E5A79E; }

/* ---- Main ---- */
.main{
  padding:26px 34px 60px;
  overflow-x:hidden;
}
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:26px;
  flex-wrap:wrap;
}
.topbar h2{
  font-family:var(--display);
  font-weight:800;
  font-size:24px;
  margin:0;
}
.topbar .date{
  font-family:var(--mono);
  font-size:11.5px;
  color:var(--text-mute);
  margin-top:4px;
}
.topbar-actions{
  display:flex; gap:10px; align-items:center;
}
.search-box{
  position:relative;
}
.search-box input{
  width:230px;
  background:var(--surface-2);
  border:1px solid var(--line);
  color:var(--text);
  border-radius:999px;
  padding:9px 16px;
  font-size:13px;
  outline:none;
  transition:border-color .15s ease, width .2s ease;
}
.search-box input:focus{ border-color:var(--copper); width:270px; }

.btn-primary{
  display:inline-flex; align-items:center; gap:8px;
  background:linear-gradient(180deg, var(--copper-bright), var(--copper));
  color:#1a1310; border:none; border-radius:999px;
  padding:10px 18px; font-weight:800; font-size:13px; cursor:pointer;
  transition:filter .12s ease, transform .12s ease;
}
.btn-primary:hover{ filter:brightness(1.08); }
.btn-primary:active{ transform:scale(.97); }

/* ---- Stat strip ---- */
.stat-strip{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:14px;
  margin-bottom:30px;
}
.stat-card{
  background:var(--surface-2);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:16px 18px;
}
.stat-card .n{
  font-family:var(--display); font-weight:800; font-size:26px;
}
.stat-card .l{
  font-size:12px; color:var(--text-mute); margin-top:4px;
}

/* ---- System grid ---- */
.section-head{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:14px;
}
.section-head h3{
  font-family:var(--display); font-size:15px; font-weight:800; margin:0;
  color:var(--text-dim);
}

.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:16px;
}

.sys-card{
  background:var(--surface-2);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:20px;
  position:relative;
  display:flex;
  flex-direction:column;
  gap:14px;
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease;
  cursor:pointer;
}
.sys-card:hover{
  transform:translateY(-3px);
  border-color:var(--copper);
  box-shadow:var(--shadow);
}
.sys-card .top-row{
  display:flex; align-items:flex-start; justify-content:space-between;
}
.sys-card .icon-badge{
  width:42px; height:42px;
  border-radius:11px;
  display:grid; place-items:center;
  flex-shrink:0;
}
.sys-card .icon-badge svg{ width:20px; height:20px; }

.sys-card .card-menu{
  background:none; border:none; color:var(--text-mute);
  cursor:pointer; padding:4px; border-radius:6px;
  font-size:16px; line-height:1;
}
.sys-card .card-menu:hover{ background:var(--surface-3); color:var(--text); }

.sys-card h4{
  margin:0; font-family:var(--display); font-weight:800; font-size:15.5px;
}
.sys-card p{
  margin:0; font-size:12.5px; color:var(--text-dim); line-height:1.6;
}
.sys-card .meta-row{
  display:flex; align-items:center; justify-content:space-between;
  margin-top:auto;
  padding-top:12px;
  border-top:1px dashed var(--line);
}
.sys-card .tag{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.4px;
  color:var(--text-mute);
  background:var(--surface-3);
  padding:4px 9px; border-radius:999px;
}
.sys-card .go{
  font-family:var(--mono); font-size:11px; color:var(--copper-bright);
  display:flex; align-items:center; gap:4px;
}

/* ---- Add-system card ---- */
.add-card{
  border:1.5px dashed var(--line);
  background:transparent;
  border-radius:var(--radius);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:10px;
  min-height:168px;
  cursor:pointer;
  color:var(--text-mute);
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.add-card:hover{
  border-color:var(--copper);
  color:var(--copper-bright);
  background:rgba(201,125,75,.05);
}
.add-card .plus{
  width:38px;height:38px;border-radius:50%;
  border:1.5px dashed currentColor;
  display:grid; place-items:center;
  font-size:20px;
}
.add-card span{ font-size:12.5px; font-family:var(--mono); }

.empty-state{
  text-align:center;
  padding:60px 20px;
  color:var(--text-mute);
}
.empty-state b{ display:block; color:var(--text-dim); margin-bottom:6px; font-family:var(--display); }

/* =========================================================
   MODAL
   ========================================================= */
.modal-backdrop{
  position:fixed; inset:0;
  background:rgba(10,7,5,.6);
  backdrop-filter:blur(3px);
  display:grid; place-items:center;
  z-index:50;
  padding:20px;
}
.modal{
  width:100%; max-width:440px;
  background:linear-gradient(180deg, var(--surface-2), var(--surface));
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:26px 26px 22px;
  max-height:90vh;
  overflow-y:auto;
}
.modal-head{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:20px;
}
.modal-head h3{
  font-family:var(--display); font-weight:800; font-size:17px; margin:0;
}
.modal-close{
  background:none; border:none; color:var(--text-mute);
  font-size:18px; cursor:pointer; line-height:1; padding:4px;
}
.modal-close:hover{ color:var(--text); }

.icon-picker{
  display:flex; flex-wrap:wrap; gap:8px;
}
.icon-opt{
  width:38px; height:38px; border-radius:10px;
  border:1.5px solid var(--line);
  background:var(--surface-3);
  display:grid; place-items:center;
  cursor:pointer;
  color:var(--text-dim);
  transition:border-color .12s ease, color .12s ease;
}
.icon-opt svg{ width:17px; height:17px; }
.icon-opt.active{ border-color:var(--copper); color:var(--copper-bright); }

.color-picker{ display:flex; flex-wrap:wrap; gap:8px; }
.color-opt{
  width:26px; height:26px; border-radius:50%;
  cursor:pointer; border:2px solid transparent;
  transition:border-color .12s ease, transform .12s ease;
}
.color-opt.active{ border-color:var(--text); transform:scale(1.1); }

.modal-actions{
  display:flex; gap:10px; margin-top:22px;
}
.btn-ghost{
  flex:1;
  background:none;
  border:1px solid var(--line);
  color:var(--text-dim);
  border-radius:var(--radius-sm);
  padding:11px; font-size:13.5px; cursor:pointer;
  transition:border-color .12s ease, color .12s ease;
}
.btn-ghost:hover{ border-color:var(--text-mute); color:var(--text); }
.btn-danger-ghost{
  border-color:rgba(196,87,74,.4); color:#E5A79E;
}
.btn-danger-ghost:hover{ border-color:var(--danger); }
.modal .btn-primary{ flex:2; justify-content:center; }

/* Toast */
.toast{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--surface-3);
  border:1px solid var(--line);
  color:var(--text);
  padding:12px 20px;
  border-radius:999px;
  font-size:13px;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;
  z-index:100;
  display:flex; align-items:center; gap:8px;
  box-shadow:var(--shadow);
}
.toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
.toast .dot{ width:7px; height:7px; border-radius:50%; background:var(--good); }

/* Scrollbar */
::-webkit-scrollbar{ width:8px; height:8px; }
::-webkit-scrollbar-track{ background:transparent; }
::-webkit-scrollbar-thumb{ background:var(--line); border-radius:8px; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:900px){
  .shell{ grid-template-columns:1fr; }
  .sidebar{
    position:static; height:auto; flex-direction:row; align-items:center;
    padding:14px 16px; overflow-x:auto;
  }
  .sidebar .brand-mark{ margin-bottom:0; }
  .side-label{ display:none; }
  .side-nav{ flex-direction:row; margin:0 12px; }
  .sidebar-foot{ margin-top:0; border-top:none; padding-top:0; }
  .main{ padding:20px 16px 50px; }
  .stat-strip{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:520px){
  .stat-strip{ grid-template-columns:1fr 1fr; }
  .search-box input{ width:150px; }
  .search-box input:focus{ width:170px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}

/* Focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible{
  outline:2px solid var(--copper-bright);
  outline-offset:2px;
}
