@font-face{font-family:Vazirmatn;src:url('./fonts/Vazirmatn-Variable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--ink:#172033;--muted:#6e778c;--line:#e5e8ef;--bg:#f4f6fa;--panel:#fff;--primary:#4d4cdb;--primary-dark:#3635ba;--cyan:#0aa7a1;--amber:#f3a622;--red:#dc445a;--soft:#eef0ff;--shadow:0 18px 50px rgba(31,40,70,.09)}
*{box-sizing:border-box}html{font-family:Vazirmatn,Tahoma,sans-serif;color:var(--ink);background:var(--bg)}body{margin:0;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:fixed;right:0;top:0;bottom:0;width:260px;background:#fff;padding:26px 20px;display:flex;flex-direction:column;border-left:1px solid var(--line);z-index:20}.brand{display:flex;align-items:center;gap:12px;margin:0 4px 32px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,#6664ed,#3b39c3);color:#fff;font-size:23px;font-weight:800;box-shadow:0 8px 20px rgba(77,76,219,.28)}.brand b{display:block;font-size:17px}.brand small,.school-chip small{display:block;color:var(--muted);font-size:11px;margin-top:2px}nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:#596276;padding:12px 14px;border-radius:12px;text-align:right;display:flex;align-items:center;gap:10px;font-weight:600}.nav-item span{font-size:20px;width:24px;text-align:center}.nav-item:hover,.nav-item.active{background:var(--soft);color:var(--primary)}.privacy-card{margin-top:auto;background:#effaf7;border:1px solid #d5f1e9;border-radius:16px;padding:14px;display:flex;gap:10px}.privacy-card .shield{flex:0 0 27px;height:27px;border-radius:10px;background:#d2f2e8;color:#078571;display:grid;place-items:center;font-weight:800}.privacy-card b{font-size:12px;display:block}.privacy-card small{display:block;font-size:10px;line-height:1.8;color:#477168;margin-top:3px}.ghost{border:0;background:transparent;padding:11px;margin-top:7px}.danger{color:#a0525f;font-size:12px}main{grid-column:2;min-width:0}.topbar{height:78px;padding:0 38px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.school-chip{display:flex;align-items:center;gap:10px}.school-chip>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#e9eaff;color:var(--primary);font-weight:800}.school-chip b{font-size:13px}.icon-btn{display:none;border:0;background:transparent;font-size:22px}.view{display:none;padding:34px 38px 55px;max-width:1500px;margin:auto}.view.active{display:block}.primary,.secondary{border-radius:11px;padding:11px 18px;border:1px solid transparent;font-weight:700;transition:.2s}.primary{background:var(--primary);color:#fff;box-shadow:0 7px 16px rgba(77,76,219,.18)}.primary:hover{background:var(--primary-dark);transform:translateY(-1px)}.secondary{background:#fff;border-color:#d9dde7;color:#4e5870}.secondary:hover{border-color:#b9bfd0;background:#fafbfc}.small{padding:8px 14px;font-size:12px}.hero{min-height:310px;background:linear-gradient(135deg,#4d4cdb,#6b68ed);border-radius:26px;padding:44px 48px;color:#fff;display:grid;grid-template-columns:1.25fr .75fr;overflow:hidden;position:relative;box-shadow:var(--shadow)}.hero:before{content:"";position:absolute;width:360px;height:360px;border:1px solid rgba(255,255,255,.13);border-radius:50%;left:-80px;top:-140px}.eyebrow{font-size:12px;font-weight:700;color:var(--primary);letter-spacing:.1px}.hero .eyebrow{color:#d9d8ff}.hero h1{font-size:31px;line-height:1.45;margin:9px 0 12px;max-width:650px}.hero p{font-size:14px;line-height:2;color:#e7e7ff;max-width:680px;margin:0}.hero-actions{display:flex;gap:10px;margin-top:24px}.hero .primary{background:#fff;color:var(--primary)}.hero .secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}.hero-art{position:relative;min-height:220px}.paper{position:absolute;width:195px;height:230px;border-radius:10px;background:#fff;left:60px;top:3px;box-shadow:0 18px 35px rgba(23,20,85,.25)}.p1{transform:rotate(-8deg);opacity:.38;left:30px}.p2{padding:18px;transform:rotate(4deg)}.mini-head{height:35px;border-radius:7px;background:#e8e9ff}.mini-lines{margin-top:16px;height:74px;background:repeating-linear-gradient(#dfe3ec 0 5px,transparent 5px 15px)}.mini-chart{height:54px;margin-top:15px;background:linear-gradient(135deg,transparent 40%,#7674ed 41% 45%,transparent 46%),linear-gradient(45deg,transparent 35%,#1bb8ae 36% 40%,transparent 41%);border-bottom:1px solid #d4d8e2}.status-bubble{position:absolute;left:7px;bottom:6px;background:#fff;color:#078571;border-radius:12px;padding:10px 15px;font-weight:800;font-size:12px;box-shadow:0 8px 24px rgba(25,22,79,.25)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}.stats article{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px;display:flex;align-items:center;gap:14px}.stat-icon{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;font-weight:800}.indigo{background:#eeefff;color:var(--primary)}.cyan{background:#e9f9f7;color:var(--cyan)}.amber{background:#fff6e3;color:var(--amber)}.stats small{display:block;color:var(--muted);font-size:11px}.stats strong{display:block;font-size:20px;margin-top:3px}.section-head{display:flex;justify-content:space-between;align-items:end;margin:32px 0 16px}.section-head h2,.page-title h1{margin:0 0 4px}.section-head h2{font-size:20px}.section-head p,.page-title p{margin:0;color:var(--muted);font-size:12px}.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.steps-grid article{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px}.steps-grid span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--soft);color:var(--primary);font-weight:800}.steps-grid h3{font-size:14px;margin:14px 0 6px}.steps-grid p{font-size:11px;line-height:1.9;color:var(--muted);margin:0}.page-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.page-title h1{font-size:27px;margin-top:5px}.class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.class-card,.empty-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.class-card .class-top{display:flex;justify-content:space-between}.class-badge{background:var(--soft);color:var(--primary);padding:6px 10px;border-radius:9px;font-size:11px}.class-card h3{margin:16px 0 5px}.class-card p{color:var(--muted);font-size:11px}.class-meta{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:16px;padding-top:14px;gap:8px}.class-meta small{color:var(--muted);display:block}.class-meta b{font-size:12px}.empty-card{grid-column:1/-1;text-align:center;padding:50px;color:var(--muted)}.empty-card b{display:block;color:var(--ink);font-size:17px;margin-bottom:6px}.progress-pill{background:#fff;border:1px solid var(--line);padding:10px 13px;border-radius:13px;width:170px}.progress-pill b{font-size:11px;display:block}.progress-pill span{display:block;height:4px;background:#e7e9f0;border-radius:10px;margin-top:7px;overflow:hidden}.progress-pill i{display:block;width:25%;height:100%;background:var(--primary);transition:.3s}.wizard-tabs{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);border-radius:17px;padding:8px;margin-bottom:18px}.wizard-tabs button{border:0;background:transparent;border-radius:12px;padding:10px 12px;display:flex;gap:9px;align-items:center;text-align:right;color:#7a8294}.wizard-tabs button>b{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#f0f2f6}.wizard-tabs button>span{font-size:12px;font-weight:700}.wizard-tabs small{display:block;font-size:9px;font-weight:400;margin-top:2px}.wizard-tabs button.active{background:var(--soft);color:var(--primary)}.wizard-tabs button.active>b{background:var(--primary);color:#fff}.wizard-body{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 34px rgba(34,44,75,.04);overflow:hidden}.step-panel{display:none;padding:28px 32px 20px;min-height:420px}.step-panel.active{display:block}.panel-heading{display:flex;gap:12px;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:24px}.panel-icon{width:44px;height:44px;border-radius:13px;background:var(--soft);color:var(--primary);display:grid;place-items:center;font-size:13px;font-weight:800}.panel-heading h2{font-size:18px;margin:0 0 4px}.panel-heading p{font-size:11px;color:var(--muted);margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.form-grid label{font-size:11px;font-weight:700;color:#535c70}.form-grid .span-2{grid-column:1/-1}.form-grid input,.form-grid select{display:block;width:100%;margin-top:7px;border:1px solid #dce0e8;border-radius:10px;padding:11px 12px;background:#fff;color:var(--ink);outline:none}.form-grid input:focus,.form-grid select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #eeefff}.tip{background:#fff8e9;border:1px solid #f8e7ba;border-radius:12px;padding:12px 14px;color:#7b642f;font-size:11px;margin-top:20px}.dropzone{display:flex;min-height:190px;border:2px dashed #cfd4e0;border-radius:16px;background:#fafbfe;align-items:center;justify-content:center;flex-direction:column;cursor:pointer;transition:.2s}.dropzone:hover,.dropzone.drag{border-color:var(--primary);background:#f5f5ff}.dropzone input{display:none}.upload-icon{width:48px;height:48px;border-radius:15px;background:var(--soft);color:var(--primary);display:grid;place-items:center;font-size:24px;margin-bottom:12px}.dropzone b{font-size:14px}.dropzone small{font-size:10px;color:var(--muted);margin-top:5px}.template-row{display:flex;align-items:center;justify-content:space-between;margin-top:15px;background:#f6f8fb;border-radius:12px;padding:12px 14px}.template-row b,.template-row small{display:block;font-size:11px}.template-row small{color:var(--muted);margin-top:3px}.file-report{margin-top:15px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.file-report-head{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;background:#f7f9fc}.file-report-head b{font-size:12px}.file-report-head small{color:var(--muted)}.checks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px}.check{border-radius:10px;background:#f7f8fb;padding:10px}.check b{display:block;font-size:15px}.check small{font-size:9px;color:var(--muted)}.check.ok b{color:#07947e}.check.bad b{color:var(--red)}.error-list{margin:0;padding:0 18px 12px;color:var(--red);font-size:10px;line-height:1.9}.match-summary{margin-top:15px;border-radius:13px;background:#f7f9fc;padding:17px}.match-summary.empty{text-align:center;color:var(--muted);font-size:11px}.match-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.match-grid div{background:#fff;border:1px solid var(--line);padding:13px;border-radius:11px}.match-grid b{font-size:18px;display:block}.match-grid small{color:var(--muted);font-size:9px}.validation-grid{display:grid;gap:9px}.validation-item{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px}.validation-item>span{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;font-weight:800}.validation-item.ok>span{background:#e4f7f1;color:#078c77}.validation-item.warn>span{background:#fff3d9;color:#bf7c06}.validation-item.bad>span{background:#ffe7eb;color:var(--red)}.validation-item b{display:block;font-size:11px}.validation-item small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.review-actions{display:flex;justify-content:center;gap:10px;margin-top:24px}.wizard-actions{border-top:1px solid var(--line);padding:16px 32px;display:flex;justify-content:space-between}.preview-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.preview-toolbar>div{display:flex;align-items:center;gap:10px}.preview-toolbar h1{font-size:20px;margin:0}.preview-toolbar span{font-size:10px;color:var(--muted)}.print-note{background:#fff8e9;color:#79622e;border:1px solid #f5e4b8;padding:10px 14px;border-radius:10px;font-size:10px;margin-bottom:18px}.print-sheet{width:210mm;min-height:297mm;background:#fff;margin:0 auto 24px;padding:8mm;box-shadow:0 8px 30px rgba(30,39,69,.12);display:flex;flex-direction:column;gap:5mm}.report-card{height:137.5mm;border:1.2px solid #202635;border-radius:2mm;padding:3.2mm;display:flex;flex-direction:column;overflow:hidden;background:#fff}.report-title{text-align:center;font-size:12px;font-weight:800;border-bottom:1px solid #293040;padding:0 0 2mm;margin-bottom:2mm}.student-head{display:grid;grid-template-columns:24mm 1fr;gap:3mm}.student-photo{width:24mm;height:28mm;border:1px solid #858b98;border-radius:1mm;object-fit:cover;background:#f0f2f6}.photo-placeholder{display:grid;place-items:center;font-size:22px;color:#a1a7b3}.student-info{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5mm}.info-cell{background:#f3f4f7;border-radius:.8mm;padding:1.2mm 1.7mm;font-size:7.5px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-cell b{font-size:8.2px}.info-cell.wide{grid-column:span 2}.info-cell.comment{grid-column:1/-1;white-space:normal;height:8mm;line-height:1.5}.subjects-wrap{margin-top:2.3mm;display:grid;gap:1.5mm}.subject-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5mm;direction:rtl}.subject-box{border:1px solid #303640;min-height:15mm}.subject-box table{border-collapse:collapse;width:100%;font-size:6.5px}.subject-box th{background:#eef0f4;font-weight:700}.subject-box th,.subject-box td{padding:.35mm .8mm;border-bottom:.3px solid #c9cdd5}.subject-box tr:last-child td{border-bottom:0}.subject-box th:last-child,.subject-box td:last-child{width:8mm;text-align:center;border-right:.3px solid #c9cdd5}.rank-line{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2mm;margin:2mm 0}.rank-line div{font-size:7px;text-align:center;padding:1mm;border:1px solid #bac0cc;background:#f6f7f9}.rank-line b{font-size:8px;color:#3031a7}.chart-wrap{border:1px solid #7e8594;padding:1mm;flex:1;min-height:30mm}.chart-wrap canvas{width:100%;height:100%;display:block}.sheet-count{position:absolute}.zoomed .print-sheet{transform:scale(1.12);transform-origin:top center;margin-bottom:60px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.guide-grid article{background:#fff;border:1px solid var(--line);border-radius:17px;padding:22px}.guide-grid h3{font-size:15px;margin:0 0 10px}.guide-grid p,.guide-grid li{font-size:11px;line-height:2;color:var(--muted)}.guide-grid code{display:block;direction:ltr;text-align:left;background:#f3f5f8;padding:12px;border-radius:10px;color:#454f65}.toast-visible{position:fixed!important;bottom:25px;left:25px;background:#20283a;color:#fff;padding:12px 18px;border-radius:11px;font-size:11px;z-index:99;box-shadow:var(--shadow)}
@media(max-width:1000px){.app-shell{grid-template-columns:1fr}.sidebar{transform:translateX(105%);transition:.25s;box-shadow:var(--shadow)}.sidebar.open{transform:none}main{grid-column:1}.icon-btn{display:block}.hero{grid-template-columns:1fr}.hero-art{display:none}.steps-grid{grid-template-columns:1fr 1fr}.class-grid{grid-template-columns:1fr 1fr}.topbar,.view{padding-left:22px;padding-right:22px}}
@media(max-width:650px){.topbar .primary{display:none}.view{padding:22px 14px}.hero{padding:28px 22px}.hero h1{font-size:24px}.stats,.steps-grid,.class-grid,.guide-grid{grid-template-columns:1fr}.wizard-tabs button>span{display:none}.wizard-tabs button{justify-content:center}.page-title{align-items:start;gap:12px}.page-title h1{font-size:22px}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.step-panel{padding:22px 16px}.match-grid,.checks{grid-template-columns:1fr}.preview-toolbar{align-items:flex-start}.print-sheet{transform:scale(.47);transform-origin:top right;margin-bottom:-150mm}.zoomed .print-sheet{transform:scale(.6);margin-bottom:-115mm}}
@page{size:A4 portrait;margin:0}
@media print{html,body{background:#fff}.sidebar,.topbar,#dashboard,#classes,#builder,#guide,.preview-toolbar,.print-note{display:none!important}.app-shell,main{display:block}.view{display:none!important;padding:0;max-width:none}.view#preview{display:block!important}.print-sheet{box-shadow:none;margin:0;page-break-after:always;break-after:page;transform:none!important}.print-sheet:last-child{page-break-after:auto;break-after:auto}.report-card{break-inside:avoid}.zoomed .print-sheet{margin:0}}
