:root{--bg-page:#eef1f8;--bg-deep:radial-gradient(120% 140% at 15% -10%,#fff 0%,#f4f6fc 45%,#eef1f8 100%);--panel-bg:rgba(255,255,255,.94);--panel-border:rgba(20,25,45,.08);--surface:#fff;--surface-2:#f4f6fb;--surface-3:#eceffa;--ink:#171b2b;--ink-soft:#4b5169;--muted:#8891a8;--blue:#2f5dff;--violet:#8b5cf6;--grad-brand:linear-gradient(120deg,var(--blue),var(--violet));--amber:#f6a723;--amber-2:#ef7f1a;--grad-amber:linear-gradient(120deg,var(--amber),var(--amber-2));--danger-1:#fb7185;--danger-2:#e11d48;--grad-danger:linear-gradient(120deg,var(--danger-1),var(--danger-2));--gold:#f4b740;--silver:#9fabc4;--bronze:#d98a56;--radius-sm:10px;--radius-md:16px;--radius-lg:22px;--radius-xl:28px;--shadow-1:0 24px 60px rgba(30,40,80,.16);--shadow-2:0 10px 28px rgba(30,40,80,.1);--shadow-glow:0 0 0 1px rgba(47,93,255,.1),0 10px 28px rgba(47,93,255,.18);--ease:cubic-bezier(.22,.9,.3,1);--font-ui:"Manrope","Vazirmatn",sans-serif}*{box-sizing:border-box}html.spf-scroll-lock,body.spf-scroll-lock{overflow:hidden !important;height:100%;overscroll-behavior:none}body{background:var(--bg-page)}.spf-root{font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.45;direction:ltr;color:var(--ink)}button{font-family:inherit}.spf-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:140001;background:rgba(20,25,45,.35);-webkit-backdrop-filter:blur(14px) saturate(120%);backdrop-filter:blur(14px) saturate(120%);animation:fadeInModal .22s var(--ease) both;overflow:hidden}.spf-modal.open{display:flex}@keyframes fadeInModal{from{opacity:0}to{opacity:1}}.spf-panel{width:min(1180px, 96vw);height:min(880px, 94vh);background:var(--bg-deep);border:1px solid var(--panel-border);border-radius:var(--radius-xl);padding:20px 22px 24px;position:relative;overflow-y:auto;overflow-x:hidden;box-shadow:var(--shadow-1);animation:panelIn .3s var(--ease) both}@keyframes panelIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}.spf-panel::-webkit-scrollbar{width:7px}.spf-panel::-webkit-scrollbar-track{background:0 0}.spf-panel::-webkit-scrollbar-thumb{background:rgba(20,25,45,.14);border-radius:10px}.spf-panel::-webkit-scrollbar-thumb:hover{background:rgba(20,25,45,.24)}.spf-float{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:140050;background:rgba(15,18,32,.45);backdrop-filter:blur(10px);animation:fadeInModal .18s var(--ease) both}.spf-float.open{display:flex}.spf-float-card{width:min(640px, 92vw);max-height:88vh;overflow-y:auto;background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--panel-border);box-shadow:var(--shadow-1);padding:22px 24px 26px;position:relative;animation:panelIn .26s var(--ease) both}.spf-float-card.wide{width:min(760px, 94vw)}.spf-float-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.spf-float-title{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;color:var(--ink)}.spf-float-title .icon-badge{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--grad-brand);color:#fff;flex-shrink:0}.spf-float-title .icon-badge svg{width:18px;height:18px}.spf-float-title.amber .icon-badge{background:var(--grad-amber)}.spf-float-close{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--panel-border);border-radius:11px;color:var(--ink-soft);cursor:pointer;transition:transform .18s var(--ease),background .18s var(--ease),color .18s}.spf-float-close svg{width:15px;height:15px}.spf-float-close:hover{background:rgba(225,29,72,.1);color:#e11d48;transform:rotate(90deg)}.spf-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;position:relative;z-index:30}.spf-header-left{display:flex;align-items:center;gap:10px}.spf-header-actions{display:flex;align-items:center;gap:10px;margin-inline-start:auto;position:relative}.NextBtn{display:inline-flex;align-items:center;gap:9px;background:var(--grad-brand);color:#fff;font-weight:800;font-size:14.5px;padding:12px 18px;border-radius:var(--radius-md);border:1px solid rgba(47,93,255,.18);cursor:pointer;box-shadow:0 10px 24px rgba(47,93,255,.22);transition:transform .2s var(--ease),box-shadow .2s var(--ease),filter .2s}.NextBtn svg{width:17px;height:17px}.NextBtn:hover{transform:translateY(-3px);filter:brightness(1.05)}.NextBtn:active{transform:translateY(-1px) scale(.98)}.action-trigger{width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;border:1px solid var(--panel-border);background:var(--surface);color:var(--ink-soft);cursor:pointer;position:relative;box-shadow:0 2px 8px rgba(30,40,80,.06);transition:transform .2s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease),color .2s}.action-trigger svg{width:19px;height:19px;transition:transform .3s var(--ease)}.action-trigger:hover{background:var(--surface-3);color:var(--blue);transform:translateY(-2px)}.action-trigger.is-open{background:var(--surface-3);color:var(--blue);box-shadow:0 0 0 1px rgba(47,93,255,.18),0 8px 20px rgba(47,93,255,.16)}.action-trigger.is-open svg{transform:rotate(90deg)}.action-trigger.danger:hover{background:rgba(225,29,72,.08);color:#e11d48}.action-trigger.danger.is-open{background:rgba(225,29,72,.08);color:#e11d48;box-shadow:0 0 0 1px rgba(225,29,72,.2),0 8px 20px rgba(225,29,72,.16)}.action-trigger.amber:hover{background:rgba(246,167,35,.12);color:var(--amber-2)}.action-trigger .dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--grad-brand);box-shadow:0 0 6px rgba(47,93,255,.7);opacity:0;transform:scale(.4);transition:all .2s var(--ease)}.action-trigger.danger .dot{background:var(--grad-danger);box-shadow:0 0 6px rgba(225,29,72,.7)}.action-group{position:relative}.action-popover{position:absolute;right:0;display:flex;flex-direction:column;gap:8px;min-width:230px;padding:10px;border-radius:var(--radius-md);background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--shadow-2),0 0 0 1px rgba(20,25,45,.02);backdrop-filter:blur(14px);opacity:0;pointer-events:none;z-index:40}.action-popover.dir-down{top:calc(100% + 10px);transform-origin:top right;transform:translateY(-6px) scale(.96)}.action-popover.dir-up{bottom:calc(100% + 10px);transform-origin:bottom right;transform:translateY(6px) scale(.96)}.action-popover.open{opacity:1;pointer-events:auto;transform:translateY(0) scale(1);transition:opacity .22s var(--ease),transform .22s var(--ease)}.action-popover:not(.open){transition:opacity .16s ease,transform .16s ease}.popover-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:11px;border:1px solid transparent;background:var(--surface-2);color:var(--ink);font-size:13.5px;font-weight:600;text-align:left;cursor:pointer;transition:background .15s ease,transform .15s ease,border-color .15s ease;opacity:0;transform:translateY(4px)}.action-popover.open .popover-btn{opacity:1;transform:translateY(0)}.action-popover.open .popover-btn:nth-child(1){transition-delay:.03s}.action-popover.open .popover-btn:nth-child(2){transition-delay:.07s}.action-popover.open .popover-btn:nth-child(3){transition-delay:.11s}.popover-btn svg{width:15px;height:15px;flex-shrink:0;opacity:.85}.popover-btn:hover{background:var(--surface-3);border-color:rgba(47,93,255,.14);transform:translateX(-2px)}.popover-btn.danger{color:#c81e46}.popover-btn.danger:hover{background:rgba(225,29,72,.1);border-color:rgba(225,29,72,.22)}.spf-close{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--panel-border);border-radius:12px;color:var(--ink-soft);cursor:pointer;box-shadow:0 2px 8px rgba(30,40,80,.06);transition:transform .18s var(--ease),background .18s var(--ease),color .18s}.spf-close svg{width:16px;height:16px}.spf-close:hover{background:rgba(225,29,72,.1);color:#e11d48;transform:translateY(-2px) rotate(90deg)}.header_tabpart{background:linear-gradient(135deg,rgba(47,93,255,.06),rgba(139,92,246,.06));border:1px solid var(--panel-border);border-radius:var(--radius-lg);padding:16px;margin-top:4px;margin-bottom:18px}.spf-tabs{display:flex;gap:6px;width:100%;background:var(--surface);padding:6px;border-radius:14px;box-shadow:inset 0 0 0 1px var(--panel-border)}.spf-tab{flex:1;text-align:center;padding:10px 14px;border-radius:10px;color:var(--ink-soft);font-weight:700;font-size:13.5px;cursor:pointer;transition:all .18s var(--ease)}.spf-tab:hover{color:var(--ink)}.spf-tab.active{background:var(--grad-brand);color:#fff;box-shadow:0 8px 18px rgba(47,93,255,.24)}.headerTabs{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:14px;flex-wrap:wrap;gap:8px}.TitleTable{font-weight:800;color:var(--ink);font-size:22px;letter-spacing:-.2px}#spf-overview{color:var(--muted);font-size:13px;font-weight:600}.overviewReport{font-size:14px}.spf-body{display:flex;flex-direction:column;gap:16px;width:100%}.spf-card{background:0 0;border-radius:var(--radius-lg);min-height:60vh}.spf-current-correct{display:flex;align-items:flex-start;gap:14px;background:linear-gradient(135deg,rgba(47,93,255,.06),rgba(139,92,246,.06));border:1px dashed rgba(47,93,255,.28);border-radius:var(--radius-lg);padding:14px 16px;margin-bottom:14px}.spf-current-correct .icon-badge{width:38px;height:38px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--grad-brand);color:#fff}.spf-current-correct .icon-badge svg{width:18px;height:18px}.spf-current-correct-body{flex:1;min-width:0}.spf-current-correct-label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--blue);margin-bottom:4px}.spf-current-correct-text{font-size:14.5px;font-weight:600;color:var(--ink);word-break:break-word}.spf-current-correct-text.empty{color:var(--muted);font-weight:500;font-style:italic}.spf-current-correct .spf-ghost{flex-shrink:0}textarea.spf-text,.correctnessBox,input.spf-ghost,#ranking-answer{width:100%;border-radius:var(--radius-md);border:1px solid var(--panel-border);background:var(--surface);color:var(--ink);font-size:15px;padding:14px 16px;resize:vertical;outline:none;transition:box-shadow .18s var(--ease),border-color .18s var(--ease),transform .12s;box-shadow:0 2px 10px rgba(30,40,80,.05)}textarea.spf-text{min-height:160px}textarea.spf-text:focus,.correctnessBox:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(47,93,255,.12);transform:translateY(-1px)}.spf-char-count{color:var(--muted);font-size:12.5px;margin-top:8px;text-align:right}.spf-student-actions{display:flex;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap}.spf-primary,.loadBtn{display:inline-flex;align-items:center;gap:9px;background:var(--grad-brand);color:#fff !important;padding:11px 18px;border-radius:12px;border:none;font-weight:800;font-size:13.5px;cursor:pointer;box-shadow:0 8px 20px rgba(47,93,255,.2);transition:transform .18s var(--ease),filter .18s}.spf-primary:hover,.loadBtn:hover{transform:translateY(-3px);filter:brightness(1.05)}.spf-primary:active,.loadBtn:active{transform:translateY(-1px) scale(.98)}.spf-ghost{background:var(--surface);color:var(--ink) !important;border:1px solid var(--panel-border);padding:10px 16px;border-radius:12px;cursor:pointer;font-weight:700;font-size:13px;display:inline-flex;align-items:center;gap:8px;box-shadow:0 2px 8px rgba(30,40,80,.05);transition:background .16s,transform .16s,color .16s,border-color .16s}.spf-ghost svg{width:15px;height:15px}.spf-ghost:hover{background:var(--surface-3);border-color:rgba(47,93,255,.2);color:var(--blue) !important;transform:translateY(-2px)}.spf-ghost.amber:hover{background:rgba(246,167,35,.12);border-color:rgba(246,167,35,.3);color:var(--amber-2) !important}.spf-danger,.spf-ghost_delete{background:var(--grad-danger);color:#fff !important;border:none;padding:10px 16px;border-radius:12px;cursor:pointer;font-weight:700;font-size:13px;transition:transform .16s,filter .16s}.spf-danger:hover,.spf-ghost_delete:hover{transform:translateY(-2px);filter:brightness(1.08)}.spf-status{color:var(--ink-soft) !important;font-size:13px;font-weight:600;padding:8px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--panel-border);display:inline-flex;align-items:center;gap:8px}.spf-status .status-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 6px rgba(34,197,94,.7)}.spf-spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(47,93,255,.18);border-top-color:var(--blue);animation:spin .85s linear infinite;display:inline-block;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}#spf-student-panel{display:flex;flex-direction:column;gap:16px}#headerstudent{background:linear-gradient(135deg,rgba(47,93,255,.08),rgba(139,92,246,.08));border:1px solid var(--panel-border);border-radius:var(--radius-lg);padding:16px 18px;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.spf-profile-card{width:100%;display:flex;justify-content:space-between;align-items:center}.profile_box{flex:1;display:flex;flex-direction:row;align-items:center}.spf-profile-avatar{width:58px;height:58px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1.3rem;background:var(--grad-brand);color:#fff;box-shadow:var(--shadow-glow);flex-shrink:0}.username_box{display:flex;flex-direction:column;margin-left:16px}#spf-profile-name{font-size:18px;font-weight:800;color:var(--ink)}#spf-profile-attempts{margin-top:2px;font-size:12px;color:var(--muted)}.spf-profile-meta{flex:1;display:flex;flex-direction:row;width:100%}.rank_detail{display:flex;flex-direction:row;align-items:center;gap:12px;margin-left:auto}.spf-score-big{font-size:26px;font-weight:900;color:var(--ink)}.spf-rank-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:10px;font-weight:800;font-size:12.5px;color:var(--ink);background:var(--surface);border:1px solid var(--panel-border)}.spf-progress{display:none}.spf-composer{background:var(--surface);border:1px solid var(--panel-border);border-radius:var(--radius-lg);padding:18px 20px 20px;box-shadow:var(--shadow-2)}.spf-composer-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--panel-border)}.spf-composer-head .icon-badge{width:42px;height:42px;border-radius:13px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--grad-brand);color:#fff;box-shadow:var(--shadow-glow)}.spf-composer-head .icon-badge svg{width:20px;height:20px}.spf-composer-head-text{display:flex;flex-direction:column;margin-top:25px;margin-bottom:30px}.spf-composer-title{font-size:16.5px;font-weight:800;color:var(--ink)}.spf-composer-subtitle{font-size:12.5px;color:var(--muted);font-weight:500;margin-top:2px}.spf-student-actions{justify-content:flex-start}.spf-student-actions .spf-status{margin-left:auto}.spf-question-card{background:var(--surface);border:1px solid var(--panel-border);border-radius:var(--radius-lg);padding:16px 18px;box-shadow:var(--shadow-2);display:flex;gap:12px;align-items:flex-start}.spf-question-card .icon-badge{width:36px;height:36px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--grad-amber);color:#fff}.spf-question-card .icon-badge svg{width:17px;height:17px}.EnterCorrectBox{border-radius:var(--radius-lg);border:1px solid var(--panel-border);padding:4px 2px 2px}.AnswerText{font-size:16px;font-weight:700;background:var(--surface);color:var(--ink);border:1px dashed rgba(20,25,45,.18);border-radius:14px;padding:12px 14px}.correctedBox{font-size:15px;background:0 0 !important;border-radius:var(--radius-md);border:1px dashed rgba(20,25,45,.18);color:var(--ink);font-weight:500;display:flex;flex-wrap:wrap;word-break:break-word;padding:12px 14px}.spf-table,#ranking-results-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:14px;font-size:14px;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-2)}.spf-table thead th,#ranking-results-table thead th{text-align:left;padding:13px 14px;color:#fff !important;background:var(--grad-brand);font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.4px}.spf-table tbody tr,#ranking-results-table tbody tr{background:var(--surface);transition:background .16s,transform .16s}.spf-table tbody tr:nth-child(even),#ranking-results-table tbody tr:nth-child(even){background:var(--surface-2)}.spf-table tbody tr:hover,#ranking-results-table tbody tr:hover{background:rgba(47,93,255,.06)}.spf-table tbody td,#ranking-results-table td{padding:12px 14px;color:var(--ink);border-bottom:1px solid rgba(20,25,45,.06)}.spf-empty{text-align:center;color:var(--muted);font-style:italic;padding:22px}#ranking-results-table tbody tr:first-child td{background:#fff7dd;font-weight:800;color:#8a5a00}#ranking-results-table tbody tr:nth-child(2) td{background:#eef3ff;font-weight:800;color:#3457a6}#ranking-results-table tbody tr:nth-child(3) td{background:#fdf1ec;font-weight:800;color:#8a4a2c}.actionCell button{font-size:12px;padding:6px 10px}.timeCell{font-size:12px;font-style:italic;color:var(--muted)}.user-container{display:flex;flex-direction:column;align-items:center;text-align:center}.user-name{font-size:13px;font-weight:700;color:var(--ink)}.spf-avatar{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--grad-brand);color:#fff;font-weight:800;margin-right:8px}.scores-podium{display:flex;justify-content:center;align-items:flex-end;gap:16px;margin:8px 0 12px;direction:ltr}.podium-item{width:130px;display:flex;flex-direction:column;align-items:center;text-align:center}.podium-top{display:flex;flex-direction:column;align-items:center;margin-bottom:10px;min-height:95px}.podium-avatar{width:56px;height:56px;border-radius:50%;background:var(--grad-brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:19px;margin-bottom:8px;box-shadow:var(--shadow-2)}.podium-name{font-weight:800;font-size:14px;color:var(--ink);word-break:break-word}.podium-base{width:100%;border-radius:18px 18px 10px 10px;padding:16px 10px 14px;box-shadow:var(--shadow-2);display:flex;flex-direction:column;align-items:center;justify-content:center}.podium-item.rank-1 .podium-base{height:150px;background:linear-gradient(180deg,#fff3c4,#ffdd7a)}.podium-item.rank-2 .podium-base{height:120px;background:linear-gradient(180deg,#e9f0ff,#c6d6ff)}.podium-item.rank-3 .podium-base{height:110px;background:linear-gradient(180deg,#ffe6de,#ffc7b3)}.podium-medal{font-size:26px;margin-bottom:8px}.podium-score{font-size:15px;font-weight:800;color:#20232f}.podium-item.rank-1{z-index:3}.podium-item.rank-2{z-index:2}.podium-item.rank-3{z-index:1}.spf-podium-empty{text-align:center;color:var(--muted);font-style:italic;padding:28px 10px}@media (max-width:820px){.spf-header{flex-wrap:wrap}.spf-body{flex-direction:column}.spf-panel{padding:16px;height:100vh;width:100vw;border-radius:0}}@media (max-width:600px){.TitleTable{font-size:18px}.headerTabs{flex-direction:column;align-items:flex-start}#headerstudent{flex-direction:column;align-items:flex-start;gap:12px}.rank_detail{margin-left:0}.action-popover{min-width:200px}.spf-composer-head{flex-wrap:wrap}}.hidden{display:none !important}