:root{--bg:#f5f6f8;--card:#fff;--ink:#1f2937;--muted:#6b7280;--line:#e5e8ee;--pri:#2563eb;--pri-soft:#eff4ff;--dark:#1f2937;--danger:#b91c1c;--danger-soft:#fef2f2;--input-bg:#fff;--input-line:#d8dde6;--row-alt:#f8fafc;--total-bg:#eff4ff;--total-ink:#1d4ed8;--good:#166534;--ring:rgba(37,99,235,.16);--shadow:0 1px 2px rgba(16,24,40,.05);color-scheme:light}body.dark{--bg:#0c1322;--card:#121c31;--ink:#e9eef7;--muted:#9aa8c0;--line:#243252;--pri:#5b9cf8;--pri-soft:#16294d;--dark:#e9eef7;--danger:#f28383;--danger-soft:#2a1a1e;--input-bg:#0c1527;--input-line:#2c3c5e;--row-alt:#0e1830;--total-bg:#16294d;--total-ink:#bcd2fb;--good:#4ade80;--ring:rgba(91,156,248,.25);--shadow:none;color-scheme:dark}body.dark .btn{background:var(--card);color:var(--ink);border-color:var(--line)}body.dark .btn:hover{background:#182642}body.dark .btn.primary{background:var(--pri);border-color:var(--pri);color:#0b1220}body.dark .btn.dark{background:#e9eef7;border-color:#e9eef7;color:#0b1220}body.dark .btn.danger{background:transparent;color:var(--danger);border-color:var(--line)}body.dark input,body.dark textarea,body.dark select{background:var(--input-bg);color:var(--ink);border-color:var(--input-line)}body.dark input::placeholder,body.dark textarea::placeholder{color:var(--muted)}body.dark table#grid{background:var(--card)}body.dark #grid thead th{background:#0a1120;color:#dbe4f3}body.dark #grid thead th small{color:var(--muted)}body.dark #grid tbody tr:hover td{background:#14203a}body.dark #grid td.c-num{color:var(--muted)}body.dark #grid td.c-total{background:var(--total-bg);color:var(--total-ink)}body.dark #grid input.grade{background:var(--input-bg);color:var(--ink);border-color:var(--input-line)}body.dark .badge{background:var(--total-bg);color:var(--total-ink)}body.dark .total-box{background:var(--row-alt);border-color:var(--line)}body.dark .total-box b{color:var(--total-ink)}body.dark .chip{background:#0c1527}body.dark .chip.active{background:var(--pri);border-color:var(--pri);color:#0b1220}body.dark .chip.active .cnt{color:#0b1220}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Cairo,Tajawal,Segoe UI,Tahoma,Arial,sans-serif;background:var(--bg);color:var(--ink);direction:rtl;line-height:1.7}button,input,textarea,select{font-family:inherit}body,.card,.btn,.tab,.chip,.icon-btn,.stages-col,.total-box,.badge,.toast,input,textarea,select,#grid th,#grid td{transition:background-color .35s ease,color .35s ease,border-color .35s ease,box-shadow .35s ease}@media(prefers-reduced-motion:reduce){body,.card,.btn,.tab,.chip,.icon-btn,.stages-col,.total-box,.badge,.toast,input,textarea,select,#grid th,#grid td{transition:none}}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--pri);outline-offset:2px}.app{max-width:1160px;margin:0 auto;padding:24px 20px 40px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.toolbar h1{margin:0;font-size:22px;font-weight:800}.sub{margin:2px 0 0;color:var(--muted);font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap}.tabs{display:flex;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:6px;margin-bottom:20px;position:sticky;top:12px;z-index:20;box-shadow:var(--shadow);overflow-x:auto}.tab{flex:1;white-space:nowrap;border:1px solid transparent;background:transparent;color:var(--muted);min-height:42px;padding:0 18px;border-radius:10px;cursor:pointer;font-weight:700;font-size:14px}.tab:hover{color:var(--ink);background:var(--row-alt)}.tab.active{background:var(--pri);color:#fff}body.dark .tab.active{color:#0b1220}.tabpanel{display:none}.tabpanel.active{display:block}.section-pick label{min-width:130px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:0 18px;border-radius:10px;cursor:pointer;font-weight:600;font-size:14px;box-shadow:var(--shadow)}.btn:hover{background:var(--row-alt);border-color:var(--input-line)}.btn.primary{background:var(--pri);border-color:var(--pri);color:#fff}.btn.primary:hover{background:#1d4ed8}.btn.dark{background:var(--dark);border-color:var(--dark);color:#fff}.btn.danger{background:transparent;color:var(--danger);border-color:var(--line);box-shadow:none}.btn.danger:hover{background:var(--danger-soft);border-color:var(--danger)}.btn.small{min-height:32px;padding:0 12px;font-size:13px;border-radius:8px;box-shadow:none}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:20px;box-shadow:var(--shadow)}.card h2{margin:0 0 4px;font-size:16px;font-weight:800}.card h3{margin:0;font-size:14px;font-weight:700}.card-sub{color:var(--muted);font-size:13px;margin:0 0 14px}.stages-wrap{display:grid;grid-template-columns:1fr 2fr;gap:12px;margin-top:12px}.stages-col{background:var(--row-alt);border-radius:12px;padding:12px 14px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.chip{display:inline-flex;align-items:center;min-height:36px;border:1px solid var(--line);background:var(--card);padding:0 16px;border-radius:999px;cursor:pointer;font-weight:700;font-size:13px;color:var(--ink);box-shadow:var(--shadow)}.chip:hover{border-color:var(--pri)}.chip.active{background:var(--pri);border-color:var(--pri);color:#fff}.chip .cnt{opacity:.75;font-weight:400;font-size:11px;margin-right:4px}.section-subject{margin-top:12px}.section-subject label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;width:100%}.icon-btn{border:1px solid transparent;background:transparent;border-radius:8px;cursor:pointer;font-size:12px;min-height:28px;padding:0 10px;color:var(--muted)}.icon-btn:hover{color:var(--pri);background:var(--pri-soft)}.sec-item{display:flex;align-items:center;gap:2px}.meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}.meta-grid label,.inline-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}.meta-grid input,.inline-form input,.inline-form select,textarea{border:1px solid var(--input-line);border-radius:10px;min-height:42px;padding:0 12px;font-size:14px;width:100%;background:var(--input-bg);color:var(--ink)}textarea{min-height:120px;padding:10px 12px;line-height:1.8}.meta-grid input:focus,.inline-form input:focus,.inline-form select:focus,textarea:focus{border-color:var(--pri);box-shadow:0 0 0 3px var(--ring);outline:none}textarea{resize:vertical}.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.row-gap{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}.inline-form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.inline-form input{width:auto}.inline-form select{width:auto;min-width:130px}#newColName{width:230px}#newColMax{width:96px}#singleName{width:230px}.hint{color:var(--muted);font-size:13px;margin:0 0 8px}.badge{background:var(--total-bg);color:var(--total-ink);border-radius:999px;padding:3px 12px;font-size:12px;font-weight:700}.total-box{margin-top:12px;background:var(--row-alt);border:1px solid var(--line);border-radius:12px;padding:12px 16px;font-size:15px}.total-box b{font-size:19px;color:var(--total-ink)}.total-box .short{color:var(--danger);font-weight:700}.total-box .full{color:var(--good);font-weight:700}.cols-list,.students-list{display:flex;flex-direction:column;margin-top:6px}.col-row,.stu-row{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding:10px 2px;flex-wrap:wrap}.col-row:last-child,.stu-row:last-child{border-bottom:none}.col-row>b{color:var(--muted);font-weight:700;min-width:20px}.col-row input[type=text]{width:180px;border:1px solid var(--input-line);border-radius:8px;min-height:36px;padding:0 10px;background:var(--input-bg);color:var(--ink)}.col-row input[type=number]{width:84px;border:1px solid var(--input-line);border-radius:8px;min-height:36px;padding:0 10px;background:var(--input-bg);color:var(--ink)}.stu-row .nm{flex:1;min-width:180px;font-weight:700}.stu-row input.edit{flex:1;border:1px solid var(--input-line);border-radius:8px;min-height:36px;padding:0 10px;background:var(--input-bg);color:var(--ink)}.note-cell{display:flex;gap:4px;align-items:center;min-width:150px}.note-cell input.note-text{flex:1;min-width:70px;border:1px solid var(--input-line);border-radius:8px;min-height:34px;padding:0 8px;background:var(--input-bg);color:var(--ink);font-size:13px}.note-cell input.cut{width:54px;border:1px solid var(--input-line);border-radius:8px;min-height:34px;padding:0 6px;background:var(--input-bg);color:var(--danger);font-weight:800;text-align:center}.note-cell input.note-text:focus,.note-cell input.cut:focus{border-color:var(--pri);box-shadow:0 0 0 3px var(--ring);outline:none}.kind-tag{font-size:11px;font-weight:700;color:var(--muted);background:var(--row-alt);border:1px solid var(--line);border-radius:6px;padding:2px 8px;white-space:nowrap}.spacer{flex:1}.table-wrap{overflow:auto;max-height:65vh;border:1px solid var(--line);border-radius:12px;margin-top:10px}table#grid{border-collapse:collapse;width:100%;min-width:700px;background:var(--card)}#grid th,#grid td{border:1px solid var(--line);padding:8px;color:var(--ink);text-align:center;font-size:14px;white-space:nowrap}#grid thead th{background:#eef2f7;color:#334155;position:sticky;top:0;z-index:3;font-size:13px;font-weight:800}#grid thead th small{display:block;font-weight:600;color:var(--muted);font-size:11px}#grid tbody tr:hover td{background:var(--row-alt)}#grid td.c-num{color:var(--muted);font-weight:700}#grid td.c-name{font-weight:700;text-align:right;max-width:260px;overflow:hidden;text-overflow:ellipsis}#grid td.c-total{font-weight:800;background:var(--total-bg);color:var(--total-ink)}#grid input.grade{width:68px;text-align:center;border:1px solid var(--input-line);border-radius:8px;min-height:34px;background:var(--input-bg);color:var(--ink)}#grid input.grade:focus{border-color:var(--pri);box-shadow:0 0 0 3px var(--ring);outline:none}#grid input.grade.low{color:var(--danger);font-weight:800}#grid input.grade.high{color:var(--good);font-weight:800}#grid td.c-total.low{color:var(--danger)}#grid td.c-total.high{color:var(--good)}#grid tfoot td{font-weight:700;color:var(--muted)}#grid tfoot td.low{color:var(--danger)}#grid tfoot td.high,body.dark #grid input.grade.high,body.dark #grid td.c-total.high,body.dark #grid tfoot td.high{color:var(--good)}.toast{position:fixed;bottom:24px;right:50%;transform:translate(50%);background:#1f2937;color:#fff;padding:10px 24px;border-radius:12px;font-size:14px;font-weight:600;z-index:50;box-shadow:0 8px 24px #0000002e}body.dark .toast{background:#e9eef7;color:#0b1220}#sheet{display:none}@media print{body{background:#fff!important;color:#000!important}.no-print{display:none!important}#sheet{display:block!important;color:#000}.sheet-head{display:flex;align-items:center;gap:8px;border:2px solid #000;border-bottom:none;padding:2px 8px}.logo{width:50px;height:50px;object-fit:contain}.sheet-titles{flex:1;text-align:center;line-height:1.2}.sheet-titles .t1{font-size:9pt;font-weight:700}.sheet-titles .t2{font-size:14pt;font-weight:800;margin:0}.sheet-titles .t3{font-size:10pt;font-weight:700}.sheet-side,.meta-table{display:none}.print-table{width:100%;border-collapse:collapse;font-size:11pt;margin-top:0;line-height:1.3}.print-table th,.print-table td{border:1px solid #000;padding:2px 5px;text-align:center}.print-table thead{display:table-header-group}.print-table thead th{background:#e8e8e8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:9.5pt}.print-table tbody td.nm{text-align:right;font-weight:700}.print-table td.low{color:#c00000!important;font-weight:800;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-table td.high{color:#006400!important;font-weight:800;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-table tbody tr.avg td{background:#e8e8e8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;font-weight:800}.print-table tr{break-inside:avoid;page-break-inside:avoid}.print-table td,.print-table th{break-inside:avoid}.sheet-foot{display:flex;justify-content:space-between;margin-top:4px;font-size:9pt;font-weight:700}}@media(max-width:900px){.meta-grid{grid-template-columns:repeat(2,1fr)}.app{padding:16px 12px 32px}}@media(max-width:640px){.meta-grid,.stages-wrap{grid-template-columns:1fr}.card{padding:16px}}
