
:root{
  --bg0:#f4fbf7;
  --bg1:#e9f7ef;
  --glass: rgba(255,255,255,.55);
  --glass2: rgba(255,255,255,.38);
  --line: rgba(15,42,27,.10);
  --text:#0f2a1b;
  --muted:#5f7d6f;
  --primary:#2fbf83;
  --primary2:#8de1b8;
  --warn:#f4c542;
  --danger:#ff6b81;
  --shadow: 0 30px 90px rgba(0,0,0,.10);
  --shadow2: 0 18px 55px rgba(15,42,27,.10);
  --radius: 24px;
  --radius2: 18px;
  --font: "Cairo","IBM Plex Sans Arabic",system-ui,-apple-system,"Segoe UI",Tahoma,Arial,sans-serif;
}

*{box-sizing:border-box}
html,body{height:100%}

body{
  margin:0;
  font-family:var(--font);
  color:var(--text);
  background:
    radial-gradient(900px 600px at 15% 10%, rgba(47,191,131,.20), transparent 60%),
    radial-gradient(900px 600px at 90% 0%, rgba(141,225,184,.24), transparent 55%),
    linear-gradient(180deg,var(--bg0),var(--bg1));
  overflow-x:hidden;
}

/* translucent background images with opacity */
body::before{
  content:"";
  position:fixed;
  inset:0;
  background-image:
    url("assets/img/tech_bg.svg"),
    url("assets/img/dev_bg.svg");
  background-size: cover, cover;
  background-position: center, center;
  background-repeat:no-repeat, no-repeat;
  opacity:.18;        /* requested transparency */
  pointer-events:none;
  z-index:-2;
  filter:saturate(1.1) contrast(1.05);
}
body::after{
  content:"";
  position:fixed;
  inset:-40px;
  background:
    radial-gradient(1000px 700px at 70% 20%, rgba(255,255,255,.55), transparent 60%),
    radial-gradient(900px 650px at 25% 85%, rgba(255,255,255,.45), transparent 60%);
  pointer-events:none;
  z-index:-1;
  backdrop-filter: blur(8px);
}

.container{max-width:1200px;margin:34px auto;padding:0 20px}

/* Cards (glass) */
.card{
  background: linear-gradient(180deg, var(--glass), rgba(255,255,255,.75));
  border:1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow2);
  padding:24px;
  margin-bottom:18px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: transform .20s ease, box-shadow .20s ease, border-color .20s ease;
}
.card:hover{
  transform: translateY(-3px);
  box-shadow: var(--shadow);
  border-color: rgba(47,191,131,.25);
}

.topbar{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.brand{display:flex;gap:12px;align-items:center}
.logo{
  width:46px;height:46px;border-radius:16px;
  background:
    radial-gradient(circle at 30% 30%, rgba(47,191,131,.95), transparent 55%),
    radial-gradient(circle at 70% 30%, rgba(141,225,184,.95), transparent 55%),
    rgba(15,42,27,.04);
  border:1px solid var(--line);
  box-shadow: 0 10px 25px rgba(47,191,131,.18);
}

h2,h3{margin:0 0 14px 0;font-weight:800;letter-spacing:.2px}
.muted{color:var(--muted)}
.small{font-size:13px}

.grid{display:grid;gap:14px}
.grid-2{grid-template-columns: repeat(2, minmax(0,1fr))}
.grid-3{grid-template-columns: repeat(3, minmax(0,1fr))}
.grid-4{grid-template-columns: repeat(4, minmax(0,1fr))}
@media (max-width: 980px){.grid-3,.grid-4{grid-template-columns:1fr}}
@media (max-width: 860px){.grid-2{grid-template-columns:1fr}}

.field label{display:block;font-weight:800;margin:10px 0 7px 0}
.input,.textarea,.select{
  width:100%;
  padding:14px 14px;
  border-radius:16px;
  border:1px solid rgba(15,42,27,.14);
  background: rgba(255,255,255,.70);
  color:var(--text);
  outline:none;
  transition:.18s ease;
}
.input:focus,.textarea:focus,.select:focus{
  border-color: rgba(47,191,131,.55);
  box-shadow: 0 0 0 4px rgba(47,191,131,.18);
}
.textarea{min-height:120px;resize:vertical}
.help{font-size:13px;color:var(--muted);margin-top:6px}

.hr{height:1px;background:rgba(15,42,27,.10);margin:18px 0}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:12px 18px;border-radius:16px;
  border:1px solid rgba(15,42,27,.12);
  background: rgba(255,255,255,.70);
  color:var(--text);
  text-decoration:none;
  cursor:pointer;
  font-weight:900;
  transition: transform .12s ease, background .18s ease, border-color .18s ease;
}
.btn:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.85);
  border-color: rgba(47,191,131,.28);
}
.btn-primary{
  color:#fff;
  border-color: rgba(47,191,131,.35);
  background: linear-gradient(135deg, rgba(47,191,131,.95), rgba(141,225,184,.95));
  box-shadow: 0 14px 40px rgba(47,191,131,.22);
}
.btn-primary:hover{background: linear-gradient(135deg, rgba(29,154,103,.98), rgba(47,191,131,.98));}
.btn-danger{
  border-color: rgba(255,107,129,.30);
  background: rgba(255,107,129,.10);
  color:#7b1424;
}
.btn-danger:hover{background: rgba(255,107,129,.16);}

.alert{
  padding:12px 14px;border-radius:16px;
  border:1px solid rgba(15,42,27,.10);
  background: rgba(255,255,255,.62);
  backdrop-filter: blur(12px);
}
.alert-error{border-color: rgba(255,107,129,.30); background: rgba(255,107,129,.10)}
.alert-ok{border-color: rgba(47,191,131,.30); background: rgba(47,191,131,.12)}

.badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 12px;border-radius:999px;
  border:1px solid rgba(15,42,27,.10);
  background: rgba(255,255,255,.55);
  font-size:12px;font-weight:900;
}
.badge-ok{border-color: rgba(47,191,131,.30); background: rgba(47,191,131,.12)}
.badge-warn{border-color: rgba(244,197,66,.35); background: rgba(244,197,66,.14)}
.badge-bad{border-color: rgba(255,107,129,.30); background: rgba(255,107,129,.12)}

.tabbar{
  display:flex;gap:10px;flex-wrap:wrap;
  padding:10px;border-radius:20px;
  border:1px solid rgba(15,42,27,.10);
  background: rgba(255,255,255,.55);
  backdrop-filter: blur(14px);
}
.tab{
  padding:12px 18px;border-radius:16px;
  border:1px solid transparent;
  background:transparent;
  text-decoration:none;
  font-weight:1000;
  color:var(--muted);
}
.tab.active{
  background: rgba(255,255,255,.86);
  color:var(--text);
  border-color: rgba(15,42,27,.10);
  box-shadow: 0 12px 36px rgba(0,0,0,.08);
}

.table{
  width:100%;
  border-collapse: collapse;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(15,42,27,.10);
  background: rgba(255,255,255,.55);
  backdrop-filter: blur(14px);
}
.table th{
  padding:14px;
  text-align:right;
  font-weight:900;
  color:var(--muted);
  font-size:13px;
  background: rgba(223,247,234,.55);
}
.table td{
  padding:14px;
  border-bottom:1px solid rgba(15,42,27,.10);
  vertical-align:top;
}
.table tr:last-child td{border-bottom:none}

.stat{
  padding:16px;border-radius:18px;border:1px solid rgba(15,42,27,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.78));
  backdrop-filter: blur(16px);
}
.stat .num{font-size:28px;font-weight:1000;line-height:1;margin-top:6px}
.stat .label{color:var(--muted);font-weight:900;font-size:13px}

.progress-wrap{margin-top:10px; display:none}
.progress-bar{height:10px;border-radius:999px;background:rgba(15,42,27,.10);overflow:hidden}
.progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--primary),var(--primary2));transition:width .12s ease}

.spinner{
  width:18px;height:18px;border-radius:50%;
  border:3px solid rgba(255,255,255,.45);
  border-top-color:#fff;
  animation:spin .8s linear infinite;
  display:inline-block;
}
@keyframes spin{to{transform:rotate(360deg)}}

.countdown{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.countdown .box{
  flex:1;min-width:160px;
  padding:14px;border-radius:18px;border:1px solid rgba(15,42,27,.10);
  background: rgba(255,255,255,.58);
  backdrop-filter: blur(16px);
}
.countdown .time{font-size:18px;font-weight:1000}
.countdown .hint{font-size:12px;color:var(--muted);font-weight:900}

.footer{text-align:center;font-size:12px;color:var(--muted);margin-top:20px}
.code{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; font-size: 13px;}

/* Admin accent (same theme, more formal) */
.admin-surface .card{
  border-color: rgba(141,225,184,.22);
}

/* Fix background image paths for admin pages (they live in /admin/) */
body.admin-surface::before{
  background-image:
    url("../assets/img/tech_bg.svg"),
    url("../assets/img/dev_bg.svg");
}
