@font-face{font-family:NeoSansArabic;src:url('/static/NeoSansArabic(9).ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
:root{font-family:NeoSansArabic,Tahoma,Arial,sans-serif;color:#18392f;background:#f5f8f6;font-synthesis:none;--green:#18704f;--deep:#14583f;--mint:#e8f3ed;--gold:#c7a55c;--line:#dbe7e0;--muted:#6a7f75;--red:#b64545}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#eef6f1 0,#f7f9f7 310px,#f5f8f6 100%);font-size:16px}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.topbar{height:76px;padding:0 clamp(18px,5vw,72px);background:#fff;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);box-shadow:0 4px 18px #244d3810}.brand{display:flex;gap:12px;align-items:center;font-weight:800;color:var(--deep);font-size:17px}.brand small{display:block;font-weight:400;font-size:12px;color:var(--muted);margin-top:2px}.brand-mark,.school-symbol{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:linear-gradient(145deg,#207d59,#12553c);color:#fff;border:2px solid #d8c58d;box-shadow:0 5px 12px #14583f20;font-size:21px}.user-area{display:flex;align-items:center;gap:14px;color:#496258;font-size:14px}.user-area form{margin:0}.page-wrap{width:min(1180px,calc(100% - 32px));margin:34px auto 58px;min-height:calc(100vh - 190px)}footer{text-align:center;padding:20px;color:#82928b;font-size:13px}footer span{color:var(--gold);padding:0 7px}.heading-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 22px}.heading-row h1{font-size:30px;margin:5px 0;color:#174d39}.heading-row p{margin:0}.eyebrow{font-size:13px;color:#96772f;font-weight:700}.muted,.hint{color:var(--muted)}.muted{font-size:14px}.hint{font-size:13px;line-height:1.8;margin:12px 0 0}.pill{padding:8px 13px;border:1px solid #e3d5ac;background:#fbf8ee;border-radius:999px;color:#7e662c;font-size:13px;white-space:nowrap}.grid{display:grid;gap:18px;margin-bottom:18px}.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:0 8px 26px #1b533610;margin-bottom:18px}.grid .card{margin:0}.section-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px}.section-title h2,.card h2{font-size:19px;color:#1b4d3a;margin:0}.section-title p{margin:6px 0 0}.icon-bubble{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#edf5f0;color:var(--green);font-size:20px}.count{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:50%;color:var(--green);background:var(--mint);font-weight:700}.btn{display:inline-flex;justify-content:center;align-items:center;gap:7px;border:0;border-radius:11px;padding:10px 16px;min-height:43px;cursor:pointer;font-weight:700;transition:transform .15s,box-shadow .15s}.btn:hover{transform:translateY(-1px);box-shadow:0 5px 12px #174d391c}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--green);color:white}.btn-primary:hover{background:var(--deep)}.btn-outline{color:var(--green);background:#fff;border:1px solid #b9d2c4}.btn-quiet{color:#596f65;background:#f0f4f1;padding:7px 11px;min-height:34px}.btn-danger{background:#fff1f0;color:#a74040;border:1px solid #f0d0ce}.btn-small{min-height:32px;padding:5px 9px;font-size:13px;border-radius:8px}.full{width:100%}label{display:flex;flex-direction:column;gap:7px;font-size:14px;color:#315447;font-weight:700}label small{font-size:12px;color:var(--muted);font-weight:400}input,select,textarea{width:100%;border:1px solid #cddbd3;border-radius:10px;background:#fff;padding:10px 12px;color:#193d30;outline:none;min-height:42px}input:focus,select:focus,textarea:focus{border-color:#529476;box-shadow:0 0 0 3px #3d8b6418}textarea{resize:vertical;line-height:1.8}input[type=checkbox]{width:17px;min-height:17px;accent-color:var(--green)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.wide{grid-column:1/-1}.upload-box{padding:16px;background:#f7faf8;border:1px dashed #a9c4b4;border-radius:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.upload-box input{flex:1;min-width:190px;border:0;background:transparent;padding:0}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:0 0 18px}.stat-card{padding:16px 18px;border-radius:16px;background:#fff;border:1px solid var(--line);box-shadow:0 5px 16px #1b53360a}.stat-card span{display:block;color:var(--muted);font-size:13px}.stat-card strong{display:block;color:var(--green);font-size:27px;margin-top:6px}.stat-warning{background:#fffaf0;border-color:#ead9a6}.stat-warning strong{color:#94722a}.mapping-form{display:grid;grid-template-columns:1fr 1.2fr 1.5fr auto;align-items:end;gap:12px;margin:15px 0}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:13px}table{border-collapse:collapse;width:100%;min-width:650px;text-align:right}th,td{padding:12px 14px;border-bottom:1px solid #e9efeb;font-size:14px;vertical-align:middle}th{background:#f4f8f5;color:#547064;font-weight:700}tbody tr:last-child td{border-bottom:0}code{font-family:ui-monospace,Consolas,monospace;direction:ltr;display:inline-block;border-radius:6px;background:#f1f5f2;padding:3px 7px;color:#315c47}.alert{border-radius:12px;padding:12px 15px;margin:12px 0 18px;font-size:14px;line-height:1.7}.success{background:#eaf5ed;color:#226442;border:1px solid #cce4d2}.warning{background:#fff8e8;color:#7c6527;border:1px solid #eddfb6}.error{background:#fff0ef;color:#a54040;border:1px solid #efcecc}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.check{display:flex;flex-direction:row;align-items:center;gap:7px;padding:8px 9px;background:#f7faf8;border-radius:9px;font-weight:400;font-size:13px}.compact-list,.school-list,.request-list{margin-top:14px;display:flex;flex-direction:column;gap:8px}.compact-list>div,.school-row{padding:9px 10px;border-radius:10px;background:#f7faf8;display:flex;justify-content:space-between;gap:12px;align-items:center}.compact-list small,.school-row small,.request-item small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.school-row{justify-content:flex-start;padding:12px}.school-row>div{flex:1}.status-dot{font-size:12px;color:var(--green)}.status-dot:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#4b9c70;margin-left:6px}.empty{text-align:center;color:#7d9087;padding:18px}.mapping-form label{min-width:0}.state{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:12px;white-space:nowrap}.state-new{background:#fff4d8;color:#90702b}.state-approved,.state-sent{background:#e7f4eb;color:#28734a}.state-rejected,.state-failed{background:#fcebea;color:#a44545}.state-sending{background:#eaf1fb;color:#456eaa}.inline-actions{display:inline-block;margin:2px}.teacher-grid{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr)}.teacher-card{max-width:760px}.student-picker{border:1px solid var(--line);border-radius:13px;padding:11px;background:#fbfdfb}.picker-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.picker-head .check{flex-direction:row;align-items:center;font-size:13px}.student-list{max-height:270px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}.student-option{display:flex;flex-direction:row;align-items:center;gap:8px;padding:9px;background:#f3f7f4;border-radius:9px;font-weight:400;font-size:13px}.student-option[hidden]{display:none}.student-option span{flex:1}.student-option small{font-size:11px;color:#71877b}.request-item{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.request-item p{grid-column:1/-1;margin:0;color:var(--muted);font-size:13px}.token-list{display:flex;gap:6px;flex-wrap:wrap}.login-layout{min-height:65vh;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:5vw;max-width:970px;margin:0 auto}.login-copy h1{font-size:42px;margin:8px 0;color:#14583f}.login-copy p{font-size:17px;line-height:2;color:#61766b;max-width:480px}.login-badge{display:inline-block;background:#e8f3ed;color:#33664e;border:1px solid #cfdfd4;border-radius:12px;padding:11px 14px;font-size:14px;margin-top:12px}.login-card{padding:28px}.login-card h2{margin:0 0 20px}.login-card label{margin-bottom:14px}.key-card{max-width:700px;margin:7vh auto;text-align:center}.key-value{margin:20px 0;padding:17px;background:#f4f8f5;border:1px dashed #98b6a5;border-radius:12px;font:15px ui-monospace,Consolas,monospace;overflow-wrap:anywhere;user-select:all}.key-card .btn{margin:4px}
@media(max-width:800px){.two-col,.teacher-grid,.login-layout{grid-template-columns:1fr}.login-layout{gap:10px}.login-copy{text-align:center;padding:18px}.login-copy p{margin:0 auto}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.mapping-form{grid-template-columns:repeat(2,minmax(0,1fr))}.mapping-form .btn{width:100%}.teacher-card{max-width:none}}
@media(max-width:520px){.topbar{height:66px;padding:0 14px}.brand{font-size:14px}.brand-mark{width:38px;height:38px}.user-area{font-size:12px;gap:7px}.page-wrap{width:calc(100% - 22px);margin:22px auto 38px}.heading-row h1{font-size:24px}.heading-row{align-items:flex-start}.card{padding:16px;border-radius:16px}.stats{gap:8px}.stat-card{padding:12px}.stat-card strong{font-size:23px}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.mapping-form{grid-template-columns:1fr}.check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-list{grid-template-columns:1fr}.request-item{grid-template-columns:1fr}.request-item .state{justify-self:start}}
.mapping-preview-grid{display:grid;gap:10px}.mapping-preview-row{display:grid;grid-template-columns:.55fr 1.3fr 1fr;gap:12px;align-items:end;padding:12px;background:#f7faf8;border-radius:12px}.code-chip{display:grid;place-items:center;min-height:42px;padding:8px;background:#e8f3ed;border-radius:9px;color:#226446;font-weight:700;direction:ltr}@media(max-width:620px){.mapping-preview-row{grid-template-columns:1fr}.code-chip{justify-self:start;min-height:32px}}
.message-preview{padding:12px 14px;border:1px solid #d7e5dc;border-radius:12px;background:#f7faf8;color:#536d60;white-space:pre-wrap;line-height:1.9;font-size:14px}.review-details summary{color:#216847;cursor:pointer;font-weight:700}.recipient-review{margin:12px 0;padding:12px;border-radius:12px;background:#f7faf8}.recipient-review strong{display:block}.recipient-review small{display:block;color:#71877b;margin:4px 0 8px}.review-buttons{display:flex;gap:8px;margin-top:10px}
