/* ویژن مدیا — v9 «سبز شب» */
/* =====================================================================
   ویژن مدیا v9 — برنامهٔ پروژه، صورتجلسه، گزارش، استخدام، برد، امضای موبایلی
   فقط اضافه می‌کند؛ طراحی قبلی «سبز شب» دست نخورده است.
   ===================================================================== */

/* ---------- حرکت‌های ریز ورود ---------- */
@keyframes v9In{from{opacity:0; transform:translateY(14px) scale(.985);}to{opacity:1; transform:none;}}
.v9-pre{opacity:0;}
.v9-in{animation:v9In .55s var(--ease) both;}
@keyframes v9Shake{20%,60%{transform:translateX(-7px);}40%,80%{transform:translateX(7px);}}
.v9-shake{animation:v9Shake .45s;}
.v9-bad{border-color:var(--danger) !important; box-shadow:0 0 0 4px var(--danger-bg) !important; border-radius:12px;}
html.v9-noscroll, html.v9-noscroll body{overflow:hidden;}
.v9-toast{position:fixed; top:16px; left:50%; z-index:999; transform:translate(-50%,-150%); padding:12px 18px; border-radius:100px; background:#111; color:#fff; font-weight:700; font-size:13.5px; display:flex; gap:10px; transition:transform .55s var(--spring);}
.v9-toast.show{transform:translate(-50%,0);}
@media (prefers-reduced-motion: reduce){ .v9-in, .v9-shake{animation:none;} .v9-pre{opacity:1;} }

/* ---------- عمومی ---------- */
.v9-h{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:10px;}
.v9-h h3{margin:0;}
.v9-chips{display:flex; flex-wrap:wrap; gap:6px;}
.v9-chip{display:inline-flex; align-items:center; gap:5px; padding:4px 11px; border-radius:99px; font-size:12px; font-weight:600; border:1px solid var(--edge); background:var(--glass-flat); color:var(--ink); text-decoration:none; transition:border-color .2s, transform .3s var(--spring);}
a.v9-chip:hover{border-color:var(--edge-2); transform:translateY(-1px);}
.v9-chip.g{background:var(--ok-bg); color:var(--ok); border-color:transparent;}
.v9-chip.y{background:var(--warn-bg); color:var(--warn); border-color:transparent;}
.v9-chip.r{background:var(--danger-bg); color:var(--danger); border-color:transparent;}
.v9-ic-btn{width:38px; height:38px; display:grid; place-items:center; border-radius:12px; border:1px solid var(--edge); background:var(--glass-flat); color:var(--ink-soft); cursor:pointer; transition:all .3s var(--spring);}
.v9-ic-btn svg{width:18px; height:18px;}
.v9-ic-btn:hover{color:var(--mint); border-color:var(--edge-2); transform:translateY(-2px);}
.v9-ic-btn.on{color:var(--mint); background:var(--accent-soft); border-color:var(--edge-2);}
.v9-pj-acts{display:flex; gap:6px; margin-inline-start:auto; align-self:flex-start;}
.v9-pj-acts form{margin:0;}
.v9-plan-banner{display:flex; align-items:center; gap:12px; margin-top:12px; padding:12px 14px; border-radius:16px; text-decoration:none; color:var(--ink);
  background:linear-gradient(110deg, rgba(34,197,94,.20), rgba(34,197,94,.05)); border:1px solid var(--edge-2); animation:v9Glow 2.6s ease-in-out infinite;}
.v9-plan-banner .ic{font-size:24px;} .v9-plan-banner b{display:block; font-size:14px;} .v9-plan-banner small{color:var(--ink-soft); font-size:12px;}
.v9-plan-banner em{margin-inline-start:auto; font-style:normal; font-weight:800; color:var(--mint); white-space:nowrap;}
@keyframes v9Glow{50%{box-shadow:0 0 0 5px rgba(34,197,94,.10);}}
.v9-scen-mode{display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin:10px 0; padding:8px; border-radius:14px; background:var(--glass-flat); border:1px solid var(--edge); font-size:12.5px;}
.v9-scen-mode button{border:1px solid var(--edge); background:transparent; color:var(--ink-soft); padding:6px 12px; border-radius:10px; font:inherit; font-weight:700; cursor:pointer; transition:all .25s;}
.v9-scen-mode button.on{background:var(--accent-soft); color:var(--mint); border-color:var(--edge-2);}
.v9-doc-list{display:flex; flex-direction:column; gap:8px;}
.v9-doc{display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:14px; border:1px solid var(--edge); background:var(--glass-flat); text-decoration:none; color:var(--ink); transition:transform .3s var(--spring), border-color .2s;}
.v9-doc:hover{transform:translateX(-3px); border-color:var(--edge-2);}
.v9-doc .ic{font-size:20px;} .v9-doc b{display:block; font-size:13px;} .v9-doc small{color:var(--ink-faint); font-size:11.5px;}
.v9-doc em{margin-inline-start:auto; font-style:normal; font-size:11.5px; color:var(--mint); white-space:nowrap;}
.v9-tl{list-style:none; margin:0; padding:0 18px 0 0; position:relative;}
.v9-tl::before{content:""; position:absolute; right:7px; top:6px; bottom:6px; width:2px; background:linear-gradient(var(--brand), transparent); border-radius:2px;}
.v9-tl li{position:relative; display:flex; gap:8px; align-items:baseline; padding:6px 0; font-size:13px; flex-wrap:wrap;}
.v9-tl li i{position:absolute; right:-24px; top:5px; width:22px; height:22px; border-radius:50%; background:var(--card); display:grid; place-items:center; font-style:normal; font-size:11px; border:1px solid var(--edge);}
.v9-tl li small{color:var(--ink-faint); font-size:11px; margin-inline-start:auto;}
.v9-cv{display:flex; flex-wrap:wrap; gap:4px; margin-top:4px;}
.v9-exp summary{cursor:pointer; font-size:11.5px; color:var(--mint);}
.v9-exp p{font-size:12px; color:var(--ink-soft); white-space:pre-wrap; max-width:360px;}
.v9-wd-edit{margin-top:6px;}
.v9-wd-edit summary{cursor:pointer; font-size:11.5px; color:var(--ink-soft); list-style:none;}
.v9-wd-edit form{margin-top:8px; padding:10px; border-radius:12px; background:var(--glass-flat); border:1px solid var(--edge);}
.v9-days{display:flex; flex-wrap:wrap; gap:5px; margin-bottom:8px;}
.v9-days label{margin:0; cursor:pointer;}
.v9-days input{display:none;}
.v9-days span{display:inline-block; padding:6px 11px; border-radius:10px; border:1px solid var(--edge); font-size:12px; font-weight:700; color:var(--ink-soft); transition:all .25s var(--spring);}
.v9-days input:checked + span{background:var(--accent-soft); color:var(--mint); border-color:var(--edge-2); transform:scale(1.04);}

/* ---------- منوی ساخت سریع ---------- */
.v9-qc{position:relative;}
.v9-qc-btn{background:var(--brand-grad) !important; color:#fff !important; border:none !important;}
.v9-qc-btn svg{stroke:#fff !important; transition:transform .4s var(--spring);}
.v9-qc.open .v9-qc-btn svg{transform:rotate(135deg);}
.v9-qc-menu{position:absolute; top:calc(100% + 8px); left:0; min-width:210px; padding:6px; border-radius:16px; background:var(--card); border:1px solid var(--edge); box-shadow:var(--shadow-lg); z-index:80;
  opacity:0; pointer-events:none; transform:translateY(-8px) scale(.96); transform-origin:top left; transition:all .3s var(--spring);}
.v9-qc.open .v9-qc-menu{opacity:1; pointer-events:auto; transform:none;}
.v9-qc-menu a{display:flex; align-items:center; gap:9px; padding:9px 10px; border-radius:11px; color:var(--ink); text-decoration:none; font-size:13px; font-weight:600;}
.v9-qc-menu a:hover{background:var(--accent-soft); color:var(--mint);}
.v9-qc-menu .nav-icon{width:17px; height:17px; stroke:currentColor;}

/* ---------- پد امضای موبایلی ---------- */
.v9-sig{margin-top:12px; border-radius:18px; padding:12px; background:var(--glass-flat); border:1px solid var(--edge);}
.v9-sig-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; font-size:13px;}
.v9-sig-tool{border:1px solid var(--edge); background:transparent; color:var(--ink-soft); border-radius:10px; padding:5px 10px; font:inherit; font-size:12px; cursor:pointer;}
.v9-sig-pad{position:relative; height:190px; border-radius:14px; background:#fff; border:2px dashed rgba(34,197,94,.55); overflow:hidden; touch-action:none;}
html[data-theme="light"] .v9-sig-pad{background:#fff;}
.v9-sig-pad canvas{position:absolute; inset:0; width:100%; height:100%; display:block; cursor:crosshair; touch-action:none;}
.v9-sig-ph{position:absolute; inset:0; display:grid; place-items:center; color:#94a3b8; font-size:14px; font-weight:700; pointer-events:none; transition:opacity .3s;}
.v9-sig-line{position:absolute; right:16px; left:16px; bottom:38px; border-bottom:1.5px solid #cbd5e1; pointer-events:none;}
.v9-sig.inked .v9-sig-ph{opacity:0;}
.v9-sig-clr{position:absolute; top:8px; left:8px; width:40px; height:40px; border-radius:12px; border:1px solid #e2e8f0; background:#fff; color:#334155; display:grid; place-items:center; cursor:pointer; box-shadow:0 4px 12px -4px rgba(0,0,0,.2);}
.v9-sig-clr svg{width:19px; height:19px;}
.v9-sig-pad canvas{filter:none;}
.v9-sig-pad canvas{--ink:#0f172a;}
.v9-sig-form{margin:10px 0 0;}
.v9-sig-go{width:100%; min-height:52px; font-size:15px; display:flex; align-items:center; justify-content:center; gap:8px; border-radius:14px;}
.v9-sig-go svg{width:20px; height:20px;}
.v9-sig-go:disabled{opacity:.5;}
.v9-sig-go:not(:disabled){animation:v9Glow 2s ease-in-out infinite;}
.v9-sig-hint{text-align:center; font-size:11.5px; color:var(--ink-faint); margin:8px 0 0;}
.v9-sig.full{position:fixed; inset:0; z-index:400; margin:0; border-radius:0; background:var(--paper); display:flex; flex-direction:column; padding:calc(12px + env(safe-area-inset-top,0px)) 12px calc(12px + env(safe-area-inset-bottom,0px));}
.v9-sig.full .v9-sig-pad{flex:1; height:auto;}
.v9-sig.full .v9-sig-tool span{display:none;}
@media (max-width:760px){
  .v9-sig{padding:10px; margin-left:-4px; margin-right:-4px;}
  .v9-sig-pad{height:210px;}
  .v9-sig-form{position:sticky; bottom:calc(84px + var(--safe-b)); z-index:5;}
  .v9-sig.full .v9-sig-form{position:static;}
  .v9-sig-go{min-height:56px; font-size:15.5px; box-shadow:0 14px 30px -12px rgba(34,197,94,.7);}
}

/* ---------- برنامهٔ پیشنهادی ---------- */
.v9-plan-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.v9-team{display:grid; grid-template-columns:repeat(4,1fr); gap:10px;}
.v9-member{padding:12px; border-radius:16px; border:1px solid var(--edge); background:var(--glass-flat); position:relative; overflow:hidden;}
.v9-member small{display:block; font-size:11px; color:var(--ink-faint);}
.v9-member select{margin:6px 0 0; font-size:13px;}
.v9-member .days{font-size:11px; color:var(--mint); margin-top:4px;}
.v9-af{display:flex; align-items:center; gap:8px; padding:10px; border-radius:14px; border:1px solid var(--edge); background:var(--glass-flat); margin-bottom:8px; flex-wrap:wrap;}
.v9-af .n{width:30px; height:30px; border-radius:10px; display:grid; place-items:center; background:var(--brand-grad); color:#fff; font-weight:900; font-size:13px; flex-shrink:0;}
.v9-af input, .v9-af select{margin:0 !important; width:auto; flex:1; min-width:110px;}
.v9-cal{display:grid; grid-template-columns:repeat(7,1fr); gap:4px; max-width:430px;}
.v9-cal .h{font-size:10.5px; text-align:center; color:var(--ink-faint); padding:2px 0;}
.v9-cal .d{aspect-ratio:1; border-radius:10px; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:11px; border:1px solid var(--line-soft); background:var(--glass-flat); position:relative; font-family:var(--font-num);}
.v9-cal .d.off{color:var(--danger); background:var(--danger-bg);}
.v9-cal .d.post{background:var(--accent-soft); border-color:var(--edge-2); color:var(--mint); font-weight:800;}
.v9-cal .d.af{background:var(--brand-grad); color:#fff; font-weight:900; border:none; box-shadow:0 6px 16px -6px rgba(34,197,94,.8);}
.v9-cal .d.today{outline:2px solid var(--info); outline-offset:1px;}
.v9-cal .d i{font-style:normal; font-size:9px; opacity:.85;}
.v9-cal .d.e{background:transparent; border:none;}
.v9-legend{display:flex; gap:10px; flex-wrap:wrap; font-size:11.5px; color:var(--ink-soft); margin:8px 0;}
.v9-legend span::before{content:""; display:inline-block; width:10px; height:10px; border-radius:3px; margin-left:5px; vertical-align:middle; background:var(--c);}
.v9-month{margin-bottom:14px;}
.v9-month h4{margin:0 0 6px; font-size:13px;}
.v9-actbar{position:sticky; bottom:calc(10px + var(--safe-b)); z-index:20; display:flex; gap:8px; flex-wrap:wrap; padding:10px; border-radius:18px; background:var(--card); border:1px solid var(--edge); box-shadow:var(--shadow-lg); margin-top:14px;}
.v9-actbar .btn{flex:1; min-height:46px;}
@media (max-width:760px){ .v9-plan-grid{grid-template-columns:1fr;} .v9-team{grid-template-columns:1fr 1fr;} .v9-actbar{bottom:calc(84px + var(--safe-b));} }

/* ---------- کاغذ A4 (صورتجلسه / قرارداد) ---------- */
.a4-wrap{display:flex; flex-direction:column; align-items:center; gap:14px; padding:14px 8px 40px;}
.a4-bar{display:flex; gap:8px; flex-wrap:wrap; justify-content:center; width:min(210mm,100%);}
.a4{width:210mm; min-height:297mm; max-width:100%; background:#fff; color:#0f172a; position:relative; overflow:hidden; box-shadow:0 30px 70px -30px rgba(0,0,0,.6); border-radius:6px; padding:14mm 16mm 26mm; font-size:12.5px; line-height:2.05; display:flex; flex-direction:column;}
.a4 .wm{position:absolute; inset:0; display:grid; place-items:center; pointer-events:none; opacity:.05;}
.a4 .wm img{width:62%;}
.a4-band{position:absolute; top:0; right:0; left:0; height:7px; background:linear-gradient(90deg,#15803D,#22C55E,#0EA5E9);}
.a4-head{display:flex; align-items:center; gap:14px; padding-bottom:12px; border-bottom:2px solid #22C55E; position:relative;}
.a4-head img{width:58px; height:58px; border-radius:14px;}
.a4-head h2{margin:0; font-size:17px; font-weight:900; color:#0f1a14;}
.a4-head p{margin:0; font-size:10.5px; color:#475569; line-height:1.7;}
.a4-head .meta{margin-inline-start:auto; text-align:left; font-size:10.5px; color:#334155; line-height:1.9;}
.a4-head .meta b{display:block; font-size:13px; color:#15803D;}
.a4-title{text-align:center; margin:16px 0 6px; font-size:16px; font-weight:900; color:#0f1a14;}
.a4-body{flex:1; white-space:pre-wrap; text-align:justify; position:relative;}
.a4-body ol{margin:6px 0; padding-right:20px;}
.a4-tbl{width:100%; border-collapse:collapse; margin:8px 0; font-size:11.5px;}
.a4-tbl td, .a4-tbl th{border:1px solid #e2e8f0; padding:5px 8px; text-align:right;}
.a4-tbl th{background:#f0fdf4; color:#15803D;}
.a4-signs{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:22px; page-break-inside:avoid;}
.a4-sign{border:1px dashed #cbd5e1; border-radius:12px; padding:10px; min-height:132px; position:relative; text-align:center;}
.a4-sign small{display:block; color:#64748b; font-size:10.5px;}
.a4-sign b{display:block; font-size:12px;}
.a4-sign img.sg{height:62px; max-width:90%; object-fit:contain; mix-blend-mode:multiply; margin-top:4px; position:relative; z-index:2;}
.a4-sign .stamp-svg{position:absolute; left:8px; bottom:4px; width:104px; height:104px; opacity:.88; transform:rotate(-14deg); z-index:1;}
.a4-sign .empty{color:#cbd5e1; font-size:11px; margin-top:30px;}
.a4-foot{position:absolute; bottom:0; right:0; left:0; padding:7px 16mm; font-size:9.5px; color:#475569; display:flex; justify-content:space-between; border-top:1px solid #e2e8f0; background:#f8fafc;}
.a4-badge{display:inline-block; padding:2px 10px; border-radius:99px; font-size:10.5px; font-weight:800;}
.a4-badge.ok{background:#dcfce7; color:#15803D;} .a4-badge.wait{background:#fef3c7; color:#92400E;} .a4-badge.no{background:#fee2e2; color:#B91C1C;}
@media (max-width:820px){ .a4{padding:8mm 6mm 22mm; min-height:auto; font-size:12px;} .a4-head img{width:46px; height:46px;} .a4-signs{grid-template-columns:1fr 1fr; gap:10px;} .a4-foot{padding:6px 10px; flex-direction:column; gap:2px;} }
@media print{
  @page{size:A4; margin:0;}
  html, body{background:#fff !important;}
  body::before, .sidebar, .appbar, .dock, .a4-bar, .no-print, #vmToastWrap, .v9-actbar{display:none !important;}
  .layout, .main, .page{display:block !important; padding:0 !important; margin:0 !important; max-width:none !important;}
  .a4-wrap{padding:0;}
  .a4{box-shadow:none; border-radius:0; width:210mm; min-height:297mm; max-width:none; padding:14mm 16mm 26mm;}
}

/* ---------- گزارش ---------- */
.v9-rep-head{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:14px;}
.v9-seg{display:inline-flex; padding:4px; border-radius:14px; background:var(--glass-flat); border:1px solid var(--edge);}
.v9-seg a{padding:6px 14px; border-radius:10px; font-size:12.5px; font-weight:700; color:var(--ink-soft); text-decoration:none;}
.v9-seg a.on{background:var(--brand-grad); color:#fff;}
.v9-ring{--p:0; width:120px; height:120px; border-radius:50%; display:grid; place-items:center; position:relative;
  background:conic-gradient(var(--c,#22C55E) calc(var(--p)*1%), rgba(var(--fg-rgb),.08) 0); animation:v9RingIn 1.4s var(--ease) both;}
.v9-ring::before{content:""; position:absolute; inset:11px; border-radius:50%; background:var(--card);}
.v9-ring b{position:relative; font-size:24px; font-weight:900; font-family:var(--font-num);}
.v9-ring small{position:relative; display:block; font-size:10.5px; color:var(--ink-faint); text-align:center; margin-top:-6px;}
@property --p{syntax:'<number>'; inherits:true; initial-value:0;}
@keyframes v9RingIn{from{--p:0;}}
.v9-kpis{display:grid; grid-template-columns:repeat(4,1fr); gap:10px;}
.v9-kpi{padding:14px; border-radius:18px; background:var(--glass); border:1px solid var(--edge);}
.v9-kpi span{display:block; font-size:11.5px; color:var(--ink-faint);}
.v9-kpi b{display:block; font-size:24px; font-weight:900; font-family:var(--font-num); line-height:1.5;}
.v9-kpi small{font-size:11px; color:var(--ink-soft);}
.v9-bars{display:flex; align-items:flex-end; gap:5px; height:150px; padding:8px 0 0; border-bottom:1px solid var(--line);}
.v9-bars .b{flex:1; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:3px; height:100%;}
.v9-bars .b i{display:block; width:100%; max-width:26px; border-radius:7px 7px 3px 3px; background:var(--brand-grad); transform-origin:bottom; animation:v9Bar .9s var(--spring) both; min-height:3px;}
.v9-bars .b i.s{background:linear-gradient(#60A5FA,#2563EB);}
.v9-bars .b em{font-style:normal; font-size:9.5px; color:var(--ink-faint); font-family:var(--font-num);}
@keyframes v9Bar{from{transform:scaleY(0);}}
.v9-health{display:inline-flex; align-items:center; gap:6px; padding:4px 12px; border-radius:99px; font-weight:800; font-size:12px;}
.v9-health.green{background:var(--ok-bg); color:var(--ok);} .v9-health.yellow{background:var(--warn-bg); color:var(--warn);} .v9-health.red{background:var(--danger-bg); color:var(--danger);}
.v9-health::before{content:""; width:8px; height:8px; border-radius:50%; background:currentColor; animation:blinkDot 1.6s infinite;}
@keyframes blinkDot{50%{opacity:.3;}}
.v9-rep-row{display:grid; grid-template-columns:2fr 1fr 1fr 1fr 1.2fr auto; gap:10px; align-items:center; padding:10px 12px; border-radius:14px; border:1px solid var(--edge); background:var(--glass-flat); margin-bottom:8px; text-decoration:none; color:var(--ink);}
.v9-rep-row:hover{border-color:var(--edge-2);}
.v9-rep-row small{display:block; color:var(--ink-faint); font-size:10.5px;}
.v9-mini{height:6px; border-radius:6px; background:rgba(var(--fg-rgb),.08); overflow:hidden;}
.v9-mini i{display:block; height:100%; background:var(--brand-grad); border-radius:6px;}
.v9-praise{padding:16px; border-radius:18px; background:linear-gradient(120deg, rgba(34,197,94,.16), rgba(14,165,233,.08)); border:1px solid var(--edge-2); font-size:13.5px; line-height:2;}
@media (max-width:760px){ .v9-kpis{grid-template-columns:1fr 1fr;} .v9-rep-row{grid-template-columns:1fr 1fr; } .v9-rep-row > :first-child{grid-column:1/-1;} }

/* ---------- برد کانبان ---------- */
.v9-board{display:grid; grid-auto-flow:column; grid-auto-columns:minmax(250px,1fr); gap:12px; overflow-x:auto; padding-bottom:12px; scroll-snap-type:x mandatory;}
.v9-col{background:var(--glass-flat); border:1px solid var(--edge); border-radius:18px; padding:10px; scroll-snap-align:start; min-height:200px;}
.v9-col h3{font-size:13px; margin:2px 4px 10px; display:flex; justify-content:space-between;}
.v9-col h3 em{font-style:normal; font-size:11px; background:var(--accent-soft); color:var(--mint); padding:1px 9px; border-radius:99px;}
.v9-kc{display:block; padding:11px; border-radius:14px; background:var(--card); border:1px solid var(--edge); margin-bottom:8px; text-decoration:none; color:var(--ink); transition:transform .3s var(--spring), border-color .2s; position:relative;}
.v9-kc:hover{transform:translateY(-2px) rotate(-.4deg); border-color:var(--edge-2);}
.v9-kc b{font-size:13px; display:block;}
.v9-kc small{font-size:11px; color:var(--ink-faint);}
.v9-kc .pin{position:absolute; top:8px; left:8px; font-size:12px;}
.v9-kc .dot{display:inline-block; width:8px; height:8px; border-radius:50%; margin-left:4px;}
.v9-kc .dot.green{background:var(--ok);} .v9-kc .dot.yellow{background:var(--warn);} .v9-kc .dot.red{background:var(--danger);}

/* ---------- بار کاری ---------- */
.v9-wl{overflow-x:auto;}
.v9-wl table{min-width:760px;}
.v9-wl td.c{text-align:center; padding:4px;}
.v9-wl .cell{width:26px; height:26px; margin:auto; border-radius:8px; display:grid; place-items:center; font-size:10.5px; font-weight:800;}
.v9-wl .cell.off{background:rgba(var(--fg-rgb),.05); color:var(--ink-faint);}
.v9-wl .cell.free{background:var(--ok-bg); color:var(--ok);}
.v9-wl .cell.busy{background:var(--brand-grad); color:#fff;}
.v9-wl .cell.hol{background:var(--danger-bg); color:var(--danger);}
.v9-load{height:8px; border-radius:8px; background:rgba(var(--fg-rgb),.08); overflow:hidden; min-width:80px;}
.v9-load i{display:block; height:100%; border-radius:8px;}

/* ---------- امروز ---------- */
.v9-today{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.v9-hello{padding:20px; border-radius:22px; background:linear-gradient(120deg, rgba(34,197,94,.18), rgba(34,197,94,.03)); border:1px solid var(--edge-2); margin-bottom:14px; position:relative; overflow:hidden;}
.v9-hello h1{margin:0; font-size:20px;} .v9-hello p{margin:4px 0 0; color:var(--ink-soft); font-size:13px;}
.v9-hello::after{content:""; position:absolute; width:220px; height:220px; left:-60px; top:-90px; border-radius:50%; background:radial-gradient(circle, rgba(34,197,94,.3), transparent 65%); animation:v9Orb 8s ease-in-out infinite alternate;}
@keyframes v9Orb{to{transform:translate(40px,30px) scale(1.2);}}
.v9-item{display:flex; align-items:center; gap:10px; padding:10px; border-radius:13px; border:1px solid var(--edge); background:var(--glass-flat); margin-bottom:7px; text-decoration:none; color:var(--ink); transition:transform .3s var(--spring);}
.v9-item:hover{transform:translateX(-3px);}
.v9-item .k{margin-inline-start:auto; font-size:11px; padding:2px 9px; border-radius:99px; background:var(--accent-soft); color:var(--mint); white-space:nowrap;}
@media (max-width:760px){ .v9-today{grid-template-columns:1fr;} }

/* ---------- استخدام و صفحات عمومی ---------- */
.v9-pub{min-height:100vh; background:var(--paper); color:var(--ink); overflow-x:hidden;}
.v9-pub .top{display:flex; align-items:center; justify-content:space-between; max-width:1100px; margin:0 auto; padding:16px 18px;}
.v9-pub .top a.brand{display:flex; align-items:center; gap:8px; font-weight:900; color:var(--ink); text-decoration:none;}
.v9-pub .top .vm-logo{width:36px; height:36px; border-radius:11px;}
.v9-hero{max-width:1100px; margin:0 auto; padding:30px 18px 10px; text-align:center; position:relative;}
.v9-hero h1{font-size:clamp(28px,5.5vw,52px); font-weight:900; line-height:1.3; margin:0 0 10px; letter-spacing:-.5px;}
.v9-hero p{color:var(--ink-soft); max-width:640px; margin:0 auto; font-size:15px;}
.v9-gt{background:var(--brand-grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
.v9-roles{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; max-width:1000px; margin:26px auto; padding:0 18px;}
.v9-role{position:relative; cursor:pointer;}
.v9-role input{position:absolute; opacity:0; pointer-events:none;}
.v9-role .in{display:flex; flex-direction:column; gap:4px; padding:16px; border-radius:20px; border:1.5px solid var(--edge); background:var(--glass); transition:all .4s var(--spring); height:100%;}
.v9-role .in .e{font-size:28px; transition:transform .5s var(--spring);}
.v9-role .in b{font-size:14.5px;} .v9-role .in small{font-size:11.5px; color:var(--ink-faint);}
.v9-role:hover .in{transform:translateY(-3px);}
.v9-role input:checked + .in{border-color:var(--brand); background:linear-gradient(150deg, rgba(34,197,94,.18), rgba(34,197,94,.04)); box-shadow:0 18px 40px -20px rgba(34,197,94,.6);}
.v9-role input:checked + .in .e{transform:scale(1.18) rotate(-8deg);}
.v9-form{max-width:760px; margin:0 auto 60px; padding:22px; border-radius:26px; background:var(--card); border:1px solid var(--edge); box-shadow:var(--shadow-lg);}
.v9-form .row2{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.v9-drop{display:flex; align-items:center; gap:12px; padding:16px; border-radius:16px; border:2px dashed var(--edge-2); background:var(--accent-soft); cursor:pointer; transition:background .3s;}
.v9-drop:hover{background:rgba(34,197,94,.18);}
.v9-drop input{display:none;}
.v9-drop .e{font-size:30px;}
.v9-team-strip{display:flex; gap:12px; overflow-x:auto; max-width:1100px; margin:20px auto; padding:6px 18px 14px; scrollbar-width:none;}
.v9-team-strip .m{flex:0 0 120px; text-align:center;}
.v9-team-strip .m .av{width:84px; height:84px; margin:0 auto 6px; border-radius:26px; background:var(--accent-soft) center/cover; display:grid; place-items:center; font-size:26px; font-weight:900; color:var(--mint); border:2px solid var(--edge-2); animation:v9Bob 4s ease-in-out infinite;}
.v9-team-strip .m:nth-child(2n) .av{animation-delay:-2s;}
.v9-team-strip .m b{display:block; font-size:12.5px;} .v9-team-strip .m small{font-size:11px; color:var(--ink-faint);}
@keyframes v9Bob{50%{transform:translateY(-6px);}}
.v9-done{text-align:center; padding:40px 20px;}
.v9-done .ok{width:96px; height:96px; margin:0 auto 14px; border-radius:50%; background:var(--brand-grad); display:grid; place-items:center; animation:v9Pop .8s var(--spring) both; box-shadow:0 20px 50px -16px rgba(34,197,94,.8);}
.v9-done .ok svg{width:46px; height:46px; stroke:#fff; stroke-dasharray:30; stroke-dashoffset:30; animation:v9Draw .6s .5s ease forwards;}
@keyframes v9Pop{from{transform:scale(0) rotate(-40deg);}}
@keyframes v9Draw{to{stroke-dashoffset:0;}}
.v9-err{display:flex; gap:10px; align-items:center; padding:12px 14px; border-radius:14px; background:var(--danger-bg); color:var(--danger); font-weight:700; font-size:13px; margin-bottom:12px; animation:v9Shake .45s;}
@media (max-width:760px){ .v9-roles{grid-template-columns:1fr 1fr;} .v9-form{padding:16px; border-radius:22px; margin:0 10px 40px;} .v9-form .row2{grid-template-columns:1fr;} }

/* ---------- صفحهٔ خطا ---------- */
.v9-error{max-width:520px; margin:40px auto; text-align:center; padding:30px 22px; border-radius:26px; background:var(--glass); border:1px solid var(--edge); position:relative; overflow:hidden;}
.v9-error .ic{width:92px; height:92px; margin:0 auto 14px; border-radius:30px; display:grid; place-items:center; background:var(--danger-bg); color:var(--danger); animation:v9Pop .7s var(--spring) both;}
.v9-error .ic svg{width:44px; height:44px; animation:v9Wig 2.4s 1s ease-in-out infinite;}
@keyframes v9Wig{0%,80%,100%{transform:none;} 85%{transform:rotate(-10deg);} 90%{transform:rotate(10deg);} 95%{transform:rotate(-5deg);}}
.v9-error h2{margin:0 0 8px; font-size:18px;}
.v9-error p{color:var(--ink-soft); font-size:14px; line-height:2;}
.v9-error .acts{display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin-top:16px;}

/* ---------- موبایل مینیمال ---------- */
@media (max-width:760px){
  .page .card{border-radius:18px; padding:14px;}
  .page h1{font-size:19px;}
  .page table{font-size:12.5px;}
  .dock .dock-item{transition:transform .35s var(--spring);}
  .dock .dock-item:active{transform:scale(.88);}
  .btn:active{transform:scale(.97);}
}

/* ---------- v9.3: نوار مراحل بالای صفحه ---------- */
.v9-jy{margin:0 0 14px; padding:12px 14px 10px; border-radius:20px; background:var(--glass); border:1px solid var(--edge); overflow:hidden; animation:v9In .5s var(--ease);}
.v9-jy-rail{position:relative; display:flex; justify-content:space-between; padding:0 4px;}
.v9-jy-rail::before, .v9-jy-rail > i{content:""; position:absolute; top:15px; right:18px; left:18px; height:4px; border-radius:4px; background:rgba(var(--fg-rgb),.08);}
.v9-jy-rail > i{left:auto; width:0; background:var(--brand-grad); box-shadow:0 0 12px rgba(34,197,94,.6); animation:v9JyFill 1.4s .2s cubic-bezier(.2,.9,.3,1) forwards;}
@keyframes v9JyFill{to{width:calc((100% - 36px) * var(--p) / 100);}}
.v9-jy-st{position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:4px; flex:0 0 auto; width:54px; opacity:0; animation:v9In .5s var(--d) var(--ease) forwards;}
.v9-jy-st span{width:34px; height:34px; border-radius:12px; display:grid; place-items:center; font-size:13px; font-weight:900; background:var(--card-2); border:1.5px solid var(--edge); color:var(--ink-faint); transition:all .4s;}
.v9-jy-st small{font-size:10.5px; color:var(--ink-faint); text-align:center; line-height:1.4; font-weight:700;}
.v9-jy-st.done span{background:var(--accent-soft); border-color:var(--edge-2); color:var(--mint);}
.v9-jy-st.cur span{background:var(--brand-grad); color:#fff; border-color:transparent; animation:v9JyPulse 2s 1.2s ease-in-out infinite; transform:scale(1.12);}
.v9-jy-st.cur small{color:var(--mint);}
@keyframes v9JyPulse{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.55);} 50%{box-shadow:0 0 0 9px rgba(34,197,94,0);}}
.v9-jy-next{display:flex; align-items:center; gap:8px; margin-top:10px; padding:10px 12px; border-radius:14px; background:linear-gradient(110deg, rgba(34,197,94,.16), rgba(34,197,94,.04)); border:1px solid var(--edge-2); color:var(--ink); text-decoration:none; font-size:13px; flex-wrap:wrap;}
.v9-jy-next b{color:var(--mint);} .v9-jy-next span{flex:1; min-width:150px;}
.v9-jy-next em{font-style:normal; font-weight:900; color:#fff; background:var(--brand-grad); padding:6px 14px; border-radius:11px; white-space:nowrap; box-shadow:0 8px 18px -8px rgba(34,197,94,.8);}
.v9-jy-staff{display:flex; align-items:center; gap:10px; margin:0 0 12px; padding:10px 12px; border-radius:16px; background:var(--glass); border:1px solid var(--edge-2); color:var(--ink); text-decoration:none; animation:v9In .45s var(--ease);}
.v9-jy-staff i{font-style:normal; width:34px; height:34px; border-radius:11px; display:grid; place-items:center; background:var(--brand-grad); animation:v9JyPulse 2.4s ease-in-out infinite; flex-shrink:0;}
.v9-jy-staff span{flex:1; min-width:0;} .v9-jy-staff small{display:block; font-size:11px; color:var(--ink-faint);} .v9-jy-staff b{display:block; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.v9-jy-staff em{font-style:normal; font-size:12px; font-weight:800; color:var(--mint); white-space:nowrap;}
@media (max-width:760px){ .v9-jy{padding:10px 8px 8px; border-radius:18px;} .v9-jy-st{width:40px;} .v9-jy-st span{width:28px; height:28px; border-radius:10px; font-size:11.5px;} .v9-jy-st small{font-size:9px;} .v9-jy-rail::before, .v9-jy-rail > i{top:12px;} }
@media (prefers-reduced-motion: reduce){ .v9-jy-rail > i{width:calc((100% - 36px) * var(--p) / 100); animation:none;} .v9-jy-st{opacity:1; animation:none;} }
/* v9.3: پالس مرحلهٔ فعلی در مراحل صفحهٔ پروژه */
.stepper-step.current .circle{animation:v9JyPulse 2s ease-in-out infinite;}
.stepper-step.done .circle{animation:v9Pop .6s var(--spring) both;}

/* ---------------- vm-v9.4: تاریخ قسط بعدی ---------------- */
.v9-due{display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:16px; border:1px solid var(--edge); background:rgba(96,165,250,.10); color:var(--ink);}
.v9-due-cal{display:grid; place-items:center; min-width:88px; padding:6px 10px; border-radius:12px; background:var(--card); border:1px solid var(--edge); text-align:center; line-height:1.4;}
.v9-due-cal small{font-size:11px; color:var(--ink-faint);} .v9-due-cal b{font-family:var(--font-num); font-size:15px; font-weight:900; direction:ltr;}
.v9-due-txt{display:flex; flex-direction:column; gap:2px; min-width:0;} .v9-due-txt small{font-size:11.5px; color:var(--ink-faint);} .v9-due-txt b{font-size:14px;}
.v9-due.far .v9-due-txt b{color:#60A5FA;}
.v9-due.mid{background:rgba(251,191,36,.12); border-color:rgba(251,191,36,.35);} .v9-due.mid .v9-due-txt b{color:#FBBF24;}
.v9-due.soon, .v9-due.over{border-color:rgba(231,76,60,.55); animation:v9DueBlink 1.2s ease-in-out infinite;}
.v9-due.soon .v9-due-txt b, .v9-due.over .v9-due-txt b{color:#F87171;}
@keyframes v9DueBlink{0%,100%{background:rgba(231,76,60,.12); box-shadow:0 0 0 0 rgba(231,76,60,0);} 50%{background:rgba(231,76,60,.32); box-shadow:0 0 0 4px rgba(231,76,60,.18);}}
.v9-due-chip{display:inline-block; margin-inline-start:6px; padding:2px 10px; border-radius:999px; font-size:11.5px; font-weight:800; background:rgba(96,165,250,.15); color:#60A5FA;}
.v9-due-chip.mid{background:rgba(251,191,36,.15); color:#FBBF24;}
.v9-due-chip.soon, .v9-due-chip.over{background:rgba(231,76,60,.2); color:#F87171; animation:v9DueBlink 1.2s ease-in-out infinite;}
.v9-due-mini{font-style:normal; font-size:11.5px;} .v9-due-mini.soon, .v9-due-mini.over{color:#F87171; font-weight:800; animation:v9DueTxt 1.2s ease-in-out infinite;}
@keyframes v9DueTxt{50%{opacity:.35;}}
.v9-jy-next.hot{border-color:rgba(231,76,60,.55); animation:v9DueBlink 1.2s ease-in-out infinite;} .v9-jy-next.hot b{color:#F87171;}
@media (prefers-reduced-motion: reduce){ .v9-due.soon, .v9-due.over, .v9-due-chip.soon, .v9-due-chip.over, .v9-jy-next.hot, .v9-due-mini.soon{animation:none;} }

/* ---------------- vm-v9.5: گروه‌های جمع‌شوندهٔ منو ---------------- */
.sidebar nav .nav-section[data-grp]{cursor:pointer; user-select:none; display:flex; align-items:center; justify-content:space-between; gap:6px; border-radius:12px; margin-top:4px; transition:background .2s, color .2s;}
.sidebar nav .nav-section[data-grp]::after{content:"‹"; font-size:15px; line-height:1; transition:transform .3s; transform:rotate(-90deg); opacity:.7;}
.sidebar nav .nav-section[data-grp].open{color:var(--ink);}
.sidebar nav .nav-section[data-grp].open::after{transform:rotate(90deg);}
.sidebar nav .nav-section[data-grp]:hover{background:rgba(var(--fg-rgb),.05); color:var(--ink);}
.sidebar nav .nav-hid{display:none !important;}
.sidebar nav .nav-hid.nav-show{display:flex !important;}
.sidebar nav .nav-section[data-grp].open + a, .sidebar nav .nav-section[data-grp].open ~ a:not(.nav-hid){animation:navIn .3s both;}
@keyframes navIn{from{opacity:0; transform:translateY(-4px);}}
html.sb-mini .sidebar nav .nav-hid{display:flex !important;}
@media (max-width:880px){
  .sidebar nav .nav-section[data-grp]{grid-column:1/-1; padding:12px 12px; background:rgba(var(--fg-rgb),.04); border:1px solid var(--edge); font-size:12.5px; margin-top:6px;}
  .sidebar nav .nav-section[data-grp].open{background:rgba(34,197,94,.08); border-color:rgba(34,197,94,.3);}
}

/* ---------------- vm-v9.5: موبایل جمع‌وجورتر ---------------- */
@media (max-width:600px){
  .main .card{padding:14px 14px; margin-bottom:10px; border-radius:20px;}
  .main h1{font-size:19px; margin-bottom:10px;}
  .main h2{font-size:16px;}
  .main h3{font-size:14.5px;}
  .bento{gap:10px !important;}
  .dash-hero{padding:18px 16px !important;}
  .dash-hero h1{font-size:21px !important;}
  .pl-head{margin-bottom:10px;} .pl-head p{font-size:12px; line-height:1.9;}
  .main table td, .main table th{padding:8px 6px; font-size:12.5px;}
  .main input, .main select, .main textarea{font-size:16px; padding:10px 12px;}
  .main label{font-size:12.5px; margin:8px 0 4px;}
  .btn{min-height:42px;} .btn.small{min-height:34px; padding:6px 12px;}
  .v9-jy{padding:10px !important; margin-bottom:10px !important;}
  .v9-jy-st small{font-size:9.5px;}
  .vpf{margin-top:16px; gap:10px;}
  .vmc-main{padding:12px 14px;} .vmc-main b{font-size:16px;}
}
@media (max-width:380px){
  .main .card{padding:12px 11px;}
  .main{padding-left:10px !important; padding-right:10px !important;}
}

/* ---------------- vm-v9.5: منوی صفحه‌های عمومی + درباره ما / تماس ---------------- */
.v9-pubnav{display:flex; gap:4px; flex:1; justify-content:center; flex-wrap:wrap;}
.v9-pubnav a{padding:7px 12px; border-radius:11px; font-size:13px; font-weight:700; color:var(--ink-soft); text-decoration:none;}
.v9-pubnav a:hover{background:rgba(var(--fg-rgb),.06); color:var(--ink);}
@media (max-width:760px){ .v9-pub .top{flex-wrap:wrap; gap:8px;} .v9-pubnav{order:3; flex-basis:100%; justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none;} .v9-pubnav a{white-space:nowrap; background:rgba(var(--fg-rgb),.04); border:1px solid var(--edge);} }
.pg{max-width:1040px; margin:0 auto; padding:10px 18px 60px;}
.pg-hero{position:relative; overflow:hidden; border-radius:30px; padding:34px 24px; border:1px solid var(--edge); background:radial-gradient(70% 90% at 100% 0%, rgba(34,197,94,.2), transparent 60%), radial-gradient(60% 70% at 0% 100%, rgba(56,189,248,.12), transparent 60%), var(--glass,var(--card)); margin-bottom:18px;}
.pg-hero .crumb{font-size:12px; color:var(--ink-faint); margin-bottom:10px;} .pg-hero .crumb a{color:var(--mint); text-decoration:none;}
.pg-hero h1{font-size:clamp(24px,4.6vw,38px); margin:0 0 10px; line-height:1.5; font-weight:900;}
.pg-hero h1 em{font-style:normal; background:var(--brand-grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
.pg-hero p{font-size:14.5px; line-height:2.1; color:var(--ink-soft); max-width:680px; margin:0;}
.pg-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; margin-bottom:18px;}
.pg-c{padding:18px; border-radius:22px; border:1px solid var(--edge); background:var(--card); animation:v9In .6s both;}
.pg-c .ic{width:44px; height:44px; border-radius:14px; display:grid; place-items:center; font-size:21px; background:rgba(34,197,94,.12); margin-bottom:10px;}
.pg-c b{display:block; font-size:14.5px; margin-bottom:6px;} .pg-c span{font-size:12.5px; color:var(--ink-faint); line-height:2;}
.pg-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:18px;}
.pg-stats div{text-align:center; padding:16px 8px; border-radius:20px; border:1px solid var(--edge-2,var(--edge)); background:linear-gradient(150deg, rgba(34,197,94,.12), rgba(34,197,94,.02));}
.pg-stats b{display:block; font-size:26px; font-weight:900; font-family:var(--font-num);} .pg-stats small{font-size:12px; color:var(--ink-faint);}
@media (max-width:640px){ .pg-stats{grid-template-columns:repeat(2,1fr);} }
.pg-sec{margin:22px 0 12px; font-size:18px;}
.pg-links{display:flex; gap:8px; flex-wrap:wrap; margin-top:16px;}
.pg-map{display:block; border-radius:22px; overflow:hidden; border:1px solid var(--edge); text-decoration:none; color:inherit; padding:18px; background:linear-gradient(135deg, rgba(56,189,248,.12), rgba(34,197,94,.08)); margin-top:12px;}
