:root{--bg:#0A0A0A;--surface:#161618;--line:#26262A;--text:#F3F4F6;--muted:#9CA3AF;--accent:#FF5E00;--ok:#4ADE80;--danger:#F87171}@media (prefers-color-scheme: light){:root{--bg:#F7F6F3;--surface:#FFFFFF;--line:#E4E2DC;--text:#171717;--muted:#6B6B70;--accent:#E85500;--ok:#16A34A;--danger:#DC2626}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:var(--text);font-family:IBM Plex Sans Arabic,system-ui,sans-serif;font-size:16px}h1,header b{font-family:Alexandria,IBM Plex Sans Arabic,sans-serif}.num{font-family:Space Grotesk,sans-serif;direction:ltr;unicode-bidi:isolate}.app{max-width:640px;margin:0 auto;padding:env(safe-area-inset-top) 12px 40px}header{position:sticky;top:0;z-index:5;display:flex;gap:10px;align-items:center;padding:14px 4px;background:var(--bg);border-bottom:1px solid var(--line)}header .muted{margin-inline-start:auto;font-size:14px}.center{min-height:100vh;display:grid;place-items:center;padding:20px}.center .card{width:100%;max-width:380px;display:grid;gap:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:14px;text-align:start;color:inherit;font:inherit}.card img{width:100%;border-radius:4px;margin-top:8px}.list{display:grid;gap:8px;padding-top:12px}.row{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:48px;margin:0;width:100%}.grid2{display:grid;grid-template-columns:1fr auto;gap:8px}label{display:grid;gap:6px;font-size:14px;color:var(--muted)}input,select,textarea{min-height:48px;width:100%;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:4px;padding:0 12px;font:inherit}textarea{min-height:100px;padding:10px 12px}input.mark{width:80px;text-align:center}button{min-height:48px;border-radius:4px;font:inherit;cursor:pointer}.primary{background:var(--accent);color:#0a0a0a;border:0;font-weight:600}.primary:disabled{opacity:.5}.ghost{background:transparent;border:1px solid var(--line);color:var(--text);padding:0 12px}.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin-top:8px}.tabs button{flex-shrink:0;background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:0 14px}.tabs button.on{color:var(--text);border-color:var(--accent)}.banner{width:100%;margin-top:10px;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);border:0;padding:12px}.muted{color:var(--muted)}.danger{color:var(--danger)}.accent{color:var(--accent)}.ok{color:var(--ok)}.st-absent{border-color:var(--danger);color:var(--danger)}.st-late{border-color:var(--accent);color:var(--accent)}.st-excused{opacity:.7}
