@font-face { font-family: 'Vazirmatn'; src: local('Vazirmatn'), url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;600;800&display=swap'); }
:root{ --bg1:#0a0a0f; --text:#eaeef7; --muted:#b7c1d6; --card:rgba(255,255,255,0.06); --glass:rgba(255,255,255,0.08); --yellow:#ffd000; --orange:#ff8800; --shadow:0 10px 30px rgba(0,0,0,.5); }
*{box-sizing:border-box} html,body{height:100%} body{margin:0;background:var(--bg1);color:var(--text);font-family: Vazirmatn, system-ui, sans-serif;}
.gradient-bg{ background: radial-gradient(1200px 600px at 10% -10%, #00f, transparent), radial-gradient(1200px 600px at 90% 110%, #0ff, transparent), radial-gradient(1200px 600px at 10% 110%, #f0f, transparent), #02030f; min-height:100vh;}
.nav{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;backdrop-filter: blur(8px);background: linear-gradient(180deg, rgba(0,0,0,.5), rgba(0,0,0,.1)); position:sticky; top:0; z-index:10}
.nav a{color:var(--text); text-decoration:none; margin-inline:10px}
.nav a.active{color:var(--yellow)}
.brand{font-weight:800}
.center{display:flex;justify-content:center;align-items:center;flex-direction:column;padding:8vh 16px;text-align:center}
.hero h1{margin:0 0 8px 0; letter-spacing:-1px}
.sub{color:var(--muted)}
.container{max-width:1000px;margin:20px auto;padding:0 16px}
.card{background:var(--card);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;box-shadow:var(--shadow);backdrop-filter: blur(10px);}
.kpi{font-size:24px}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:center}
.list{display:grid;gap:12px;margin-top:14px}
.item-head{display:flex;justify-content:space-between;align-items:center}
.pill{border:1px solid rgba(255,255,255,.2);padding:.2rem .6rem;border-radius:999px;color:var(--muted);font-size:.85rem}
.item-actions{display:flex;gap:8px;flex-wrap:wrap}
.empty{color:var(--muted)}
.form label{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.form input,.form textarea,.form select{padding:10px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.04);color:var(--text)}
.alert{padding:10px 12px;border-radius:12px;margin:10px 0}
.alert.success{background: rgba(0,255,120,.15);border:1px solid rgba(0,255,120,.3)}
.alert.error{background: rgba(255,0,70,.12);border:1px solid rgba(255,0,70,.3)}
.alert.info{background: rgba(0,150,255,.12);border:1px solid rgba(0,150,255,.3)}
.btn{padding:10px 14px;border-radius:14px;border:none;background:rgba(255,255,255,.08);color:var(--text);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px; box-shadow: var(--shadow)}
.btn.glass{background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2)}
.btn.yellow{background: linear-gradient(90deg, var(--yellow), var(--orange)); color:#111; font-weight:700}
.btn.outline{background:transparent;border:1px solid rgba(255,255,255,.3)}
.btn.danger{background: rgba(255,0,70,.2);border:1px solid rgba(255,255,255,.5)}
.table{width:100%;border-collapse: collapse}
.table th,.table td{padding:10px;border-bottom:1px dashed rgba(255,255,255,.15)}
.mono{font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}
.grid2{display:grid;grid-template-columns:1fr 1fr; gap:10px}
.grid2 .full{grid-column:1/-1}
.cards-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.collection-tile{ text-decoration:none; color: var(--text); }
.collection-tile:hover{ text-decoration:none; }
.collection-tile h3, .collection-tile p{ color: var(--text); }
.collection-tile .muted{ color: var(--muted); }
.parts{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.part-row{display:flex;gap:8px;align-items:center;justify-content:flex-start;flex-wrap:wrap}
.part-row .title{flex:1; color:#eaeef7}


/* search */
.form input[name="q"]{ min-width: 220px; }


/* responsive tweaks */
.table-wrap{ width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch }
.table{ min-width: 720px }

@media (max-width: 880px){
  .container{ padding: 0 12px }
  .cards-grid{ grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); }
  .stats-grid{ grid-template-columns: repeat(auto-fit, minmax(180px,1fr)); }
  .grid2{ grid-template-columns: 1fr; }
  .item-head{ flex-direction: column; align-items: flex-start; gap: 8px; }
  .item-actions{ flex-direction: column; align-items: stretch; }
  .part-row{ flex-direction: column; align-items: stretch; }
  .pill{ align-self: flex-start; }
  .nav{ flex-wrap: wrap; gap: 8px; }
  .nav nav{ display:flex; flex-wrap:wrap; gap:8px; }
  .hero{ padding: 6vh 12px; }
}

/* Extra small phones */
@media (max-width: 420px){
  .brand{ font-size: 16px }
  .btn{ padding: 9px 12px; }
  .pill{ font-size: .8rem }
  .kpi{ font-size: 20px }
}

.brand .logo{height:28px;display:inline-block;vertical-align:middle}


/* === Neon Progress Preloader === */
#preloader-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.88);backdrop-filter:blur(3px);}
.preloader-box{width:320px;max-width:80vw;text-align:center;}
.preloader-title{font-weight:700;letter-spacing:.5px;margin-bottom:10px;opacity:.9}
.preloader-bar{height:6px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.12);box-shadow:0 0 24px rgba(255,120,0,.25) inset;}
.preloader-fill{width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,#ff7a00,#ffd500);
animation:preloader-fill 2.2s ease-in-out infinite;}
.preloader-glow{position:relative;height:22px;margin-top:8px;filter:blur(8px);opacity:.7}
.preloader-dot{position:absolute;left:0;top:0;width:10px;height:10px;border-radius:50%;background:#ffd500;animation:preloader-dot 1.1s linear infinite;}
@keyframes preloader-fill{0%{width:0%}50%{width:84%}100%{width:100%}}
@keyframes preloader-dot{0%{transform:translateX(0)}100%{transform:translateX(100%)}}
@media (prefers-reduced-motion: reduce){.preloader-fill,.preloader-dot{animation-duration:1ms;animation-iteration-count:1}}

/* === Global Button Click Animations (Ripple + Press) === */
.btn, button, .button, input[type=submit], a.btn, .btn.outline {
  position: relative;
  overflow: hidden;
  transform: translateZ(0);
  transition: transform .08s ease, box-shadow .2s ease;
}
.btn:active, button:active, .button:active, input[type=submit]:active, a.btn:active {
  transform: scale(0.98);
}
.ripple {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  inset: 0 auto auto 0;
  transform: translate(-50%, -50%);
  width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(255,213,0,.65) 0%, rgba(255,122,0,.45) 40%, rgba(255,122,0,0) 70%);
  opacity: 0;
  animation: ripple-anim .6s ease-out forwards;
  filter: drop-shadow(0 0 8px rgba(255,122,0,.6));
}
@keyframes ripple-anim {
  0% { opacity: .9; transform: translate(-50%, -50%) scale(0.2); }
  70% { opacity: .35; transform: translate(-50%, -50%) scale(16); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(22); }
}
.btn:hover, button:hover, .button:hover, input[type=submit]:hover, a.btn:hover {
  box-shadow: 0 0 0 0 rgba(255,122,0,0), 0 0 24px rgba(255,122,0,.2) inset;
}


/* === Unified Persian font: Vazir === */
@font-face{
  font-family:'Vazir';
  src: url('/assets/fonts/Vazir.woff2') format('woff2'),
       url('/assets/fonts/Vazir.woff') format('woff');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
html, body, button, input, select, textarea {
  font-family: 'Vazir', sans-serif !important;
}

