:root{--bg:#F4F7FC;--card:#fff;--ink:#1b2740;--muted:#6b7a96;--line:#E3ECFB;--blue:#2563EB;--blue-d:#1E3A8A;--red:#E0455A;--green:#16A34A}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Vazirmatn,Tahoma,Segoe UI,sans-serif;font-size:14px;line-height:1.8}h1,h2{margin:0 0 8px}.muted{color:var(--muted)}.small{font-size:12px}.err{color:var(--red)}.center{text-align:center}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 10px 30px -24px #1e407880;margin-bottom:14px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.between{justify-content:space-between}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:13px}input,select{font:inherit;padding:9px 12px;border:1px solid #d5e3fa;border-radius:12px;background:#fff}input:focus,select:focus{outline:2px solid rgba(37,99,235,.35);border-color:var(--blue)}.search{min-width:280px;flex:1}.btn{font:inherit;font-weight:700;border:1px solid transparent;border-radius:12px;padding:9px 16px;cursor:pointer}.btn.primary{background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff}.btn.ghost{background:#eef4ff;color:var(--blue-d)}.btn:disabled{opacity:.5;cursor:not-allowed}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}.auth-card{width:min(380px,100%);display:flex;flex-direction:column;gap:12px}.auth-card h1{color:var(--blue-d)}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.side{background:linear-gradient(180deg,#1e3a8a,#14274f);color:#fff;padding:20px 14px;display:flex;flex-direction:column;gap:6px}.side .muted{color:#b8c6e6}.brand{font-size:20px;font-weight:800}.brand b{color:#4ade80}.side nav{display:flex;flex-direction:column;gap:4px;margin-top:14px;flex:1}.side a{color:#dbe6ff;text-decoration:none;padding:9px 12px;border-radius:12px}.side a:hover{background:#ffffff1a}.side a.on{background:#2563eb;color:#fff;font-weight:700}.who{border-top:1px solid rgba(255,255,255,.15);padding-top:12px;display:flex;flex-direction:column;gap:4px}.who .btn{margin-top:6px}.content{padding:24px;min-width:0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.stat{display:flex;flex-direction:column}.stat b{font-size:24px;color:var(--blue-d)}.stat span{color:var(--muted)}.table-wrap{padding:0;overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px 14px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}th{background:#f4f8ff;color:var(--muted);font-size:12px}.tag{background:#ddf5e5;color:var(--green);padding:2px 10px;border-radius:99px;font-size:12px;font-weight:700}.tag.off{background:#ffe3e6;color:var(--red)}.toasts{position:fixed;bottom:16px;left:16px;display:flex;flex-direction:column;gap:8px;z-index:50}.toast{background:#14274f;color:#fff;padding:10px 16px;border-radius:12px;box-shadow:0 12px 30px -12px #00000080}.toast.error{background:var(--red)}@media(max-width:800px){.shell{grid-template-columns:1fr}.side{flex-direction:row;flex-wrap:wrap;align-items:center}.side nav{flex-direction:row;margin:0}.content{padding:14px}}.lnk{color:var(--blue-d);font-weight:700;text-decoration:none}.filebtn{margin-inline-start:8px;font-size:11px;font-weight:800;color:var(--blue);background:#eaf2ff;border:1px solid #BFD4F7;border-radius:10px;padding:2px 10px;text-decoration:none}.filebtn:hover{background:var(--blue);color:#fff}.hero{display:flex;flex-direction:column;gap:14px;background:linear-gradient(135deg,#1e3a8a,#2563eb 60%,#0ea5e9);color:#fff;border:0}.hero h2{margin:0 0 6px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{background:#ffffff2e;border:1px solid rgba(255,255,255,.3);border-radius:99px;padding:2px 12px;font-size:12px;font-weight:700}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:0}.facts>div{background:#ffffff1f;border-radius:12px;padding:8px 12px}.facts dt{font-size:11px;opacity:.75}.facts dd{margin:0;font-weight:800}.steps{display:flex;list-style:none;margin:0;padding:0;overflow-x:auto;gap:0}.steps li{flex:1 0 auto;min-width:70px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;opacity:.7;position:relative;padding-bottom:4px;text-align:center}.steps li i{width:12px;height:12px;border-radius:50%;background:#ffffff59}.steps li.done{opacity:1}.steps li.done i{background:#4ade80}.steps li.cur{opacity:1;font-weight:800}.steps li.cur i{background:#fff;box-shadow:0 0 0 4px #ffffff4d}.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;align-items:start}.list{list-style:none;margin:0 0 10px;padding:0}.list li{padding:4px 0;border-bottom:1px dashed var(--line)}.pay{margin-top:12px;align-items:end}h3{margin:0 0 10px}h4{margin:10px 0 4px}.week{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:10px;overflow-x:auto}.day{margin:0;padding:12px;min-height:140px}.day h4{margin:0 0 8px;font-size:13px}.day.today{outline:2px solid var(--blue)}.sess{border:1px solid var(--line);border-right:4px solid var(--blue);border-radius:12px;padding:8px;margin-bottom:8px;background:#fbfdff}.sess.held{border-right-color:var(--green)}.sess.cancelled{border-right-color:var(--red);opacity:.55}.sess .t{font-size:12px}.sess .n{font-weight:700}.acts,.inline{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.inline input{min-width:0;flex:1;padding:5px 8px;font-size:12px}.mini{font:inherit;font-size:11px;padding:2px 8px;border-radius:8px;border:1px solid #BFD4F7;background:#eaf2ff;color:var(--blue-d);cursor:pointer}.mini.bad{background:#ffe3e6;border-color:#f3b4bc;color:var(--red)}.warn{background:#fff7e6;border-color:#f5d08a}.ok{color:var(--green);font-weight:700}.slot{margin:2px;padding:2px 10px;border-radius:99px;border:1px solid var(--blue);background:#fff;color:var(--blue);cursor:pointer;font:inherit;font-size:12px}.stats8{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.stat8{background:#f4f8ff;border-radius:12px;padding:8px 12px}.stat8 .tot{color:var(--blue-d)}.warnline{grid-column:1/-1;margin:0;color:#8a5a00;background:#fff7e6;border-radius:10px;padding:6px 10px;font-size:12px}.warnline.bad{color:var(--red);background:#ffe3e6}.grp table input,.grp table select{padding:5px 8px;width:100%;min-width:0}.w60{width:60px!important}.w90{width:90px!important}.w120{width:130px!important}.inl{flex-direction:row;align-items:center;gap:6px}.linked{color:var(--green)}.ap.done{opacity:.7}tr.clk{cursor:pointer}tr.clk:hover{background:#f4f8ff}tr.sel{background:#eaf2ff}tr.tot td{background:#f4f8ff;font-weight:800}.dot{color:var(--green)}.dot.man{color:#e8870e}.yr{min-width:90px;text-align:center}.tot2{color:var(--blue-d)}tr.void td{text-decoration:line-through;opacity:.55}h3{margin:14px 0 8px}.ok{color:var(--green)}.list li.cur{background:#eaf2ff;border-radius:8px;padding-inline:6px}
