:root{--ink:#2b1f39;--muted:#786f82;--pink:#e84788;--pink-dark:#c92f70;--soft:#fff3f8;--purple:#7653cf;--line:#eadfea;--green:#159b74;--red:#d95162}*{box-sizing:border-box}body{margin:0;background:#fbf9fc;color:var(--ink);font-family:Tahoma,Arial,sans-serif;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:34px 0 70px}.top{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;background:linear-gradient(135deg,#fff1f7,#f4efff);padding:28px;border-radius:24px}.brand h1{margin:0;font-size:clamp(25px,4vw,34px)}.brand p{margin:8px 0 0;color:var(--muted)}.card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 10px 25px #4d2c4e0a}.login{width:min(100%,450px);margin:8vh auto;padding:42px;background:#ffffffdf;backdrop-filter:blur(12px);border:1px solid #fff;border-radius:32px;box-shadow:0 26px 70px #7c406025;position:relative;text-align:center}.login:before{content:'ف';display:grid;place-items:center;width:70px;height:70px;margin:0 auto 18px;border-radius:24px;background:linear-gradient(145deg,var(--pink),#934ad6);color:#fff;font-size:34px;font-weight:800;box-shadow:0 12px 28px #e8478840}.login .field{text-align:right}.login h1{font-size:32px;margin:0 0 10px}.field{display:grid;gap:8px;margin:13px 0;color:#594e61;font-size:13px;font-weight:700}.field input,.field select,.field textarea,input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:13px 14px;color:var(--ink);outline:none;transition:.2s}.field input:focus,.field select:focus,.field textarea:focus,input:focus,select:focus,textarea:focus{border-color:var(--pink);box-shadow:0 0 0 4px #e8478815}textarea{min-height:88px;resize:vertical}.btn{border:0;border-radius:14px;padding:12px 17px;background:linear-gradient(135deg,var(--pink),var(--pink-dark));color:#fff;font-weight:800;box-shadow:0 8px 20px #e8478825}.btn:hover{transform:translateY(-1px)}.btn.alt,.tab{background:#fff;color:var(--pink-dark);border:1px solid var(--line);box-shadow:none}.btn.red{background:#fff0f1;color:#b3293b;border:1px solid #f0bbc2;box-shadow:none}.btn.green{background:var(--green)}.btn:disabled{opacity:.55}.row{display:flex;gap:10px;flex-wrap:wrap}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:16px}.shell>.grid>.card{background:linear-gradient(180deg,#fff,#fffafd);min-height:145px}.shell>.grid>.card h2{margin:0 0 16px;font-size:20px}.list{display:grid;gap:10px}.item{border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px}.item h3{margin:0 0 7px}.item p{color:var(--muted);line-height:1.7}.tabs{display:flex;gap:8px;overflow:auto;padding-bottom:10px;margin-bottom:10px}.tab{white-space:nowrap}.tab.on{background:linear-gradient(135deg,var(--pink),var(--pink-dark));color:#fff;border-color:transparent}.stat{font-size:30px;font-weight:800;color:var(--pink-dark)}.muted{color:var(--muted)}.hidden{display:none!important}.msg{padding:11px;border-radius:10px;margin:12px 0;background:#f3effa}.msg.bad{background:#fff0f1;color:#b3293b}.msg.ok{background:#e5f8f1;color:#087c59}.badge{display:inline-block;border-radius:20px;padding:6px 10px;background:var(--soft);color:var(--pink-dark);font-size:12px;font-weight:800}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.day{padding:10px 4px;text-align:center;border:1px solid var(--line);border-radius:11px;background:#fff;font-size:12px}.day.present{background:#e5f8f1;border-color:#a8e2cd;color:#087c59;font-weight:800}.day.absent{background:#ffebed;border-color:#f1b8c0;color:#b12d3d}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:11px;border-bottom:1px solid var(--line);text-align:right}.modal{position:fixed;inset:0;background:#2b1f3988;display:grid;place-items:center;padding:16px;z-index:10}.modal>.card{width:min(720px,100%);max-height:92vh;overflow:auto;border-radius:26px}.modal>.card>h2{font-size:27px;border-bottom:1px solid var(--line);padding-bottom:14px}.modal form:not(.row){display:grid;gap:10px}.modal form:not(.row)>button{justify-self:start}.modal .view{margin-top:16px;padding:15px;background:#faf7fb;border-radius:16px}.modal .view h3{color:var(--pink-dark)}details{margin-top:18px;color:var(--pink-dark)}summary{cursor:pointer;font-weight:800}@media(max-width:780px){.shell{width:min(100% - 22px,1120px);padding-top:18px}.top{align-items:flex-start;padding:22px}.grid{grid-template-columns:1fr}.login{padding:30px 22px}.calendar{grid-template-columns:repeat(4,1fr)}}
