:root{font-family:Cairo,Tahoma,Arial,sans-serif;color:#16243a;background:#f4f7fb}*{box-sizing:border-box}body{margin:0;min-height:100vh}header{background:#fff;border-bottom:1px solid #e3e9f1}a{color:#1763a5;text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:1120px;margin:auto;padding:0 20px}.top{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.brand{font-weight:800;font-size:22px;color:#124b83}nav{display:flex;gap:17px;align-items:center;flex-wrap:wrap}nav form{margin:0}main{padding-top:36px!important;padding-bottom:60px!important;min-height:76vh}h1{font-size:29px;margin:0 0 16px}h2{margin:28px 0 16px}h3{margin:0 0 15px}.muted{color:#66768b;line-height:1.9}.panel{background:white;border:1px solid #e4eaf1;border-radius:15px;padding:24px;margin-bottom:16px;box-shadow:0 4px 16px #12243c08}.narrow{max-width:590px;margin:35px auto}.center{text-align:center}.hero{background:linear-gradient(110deg,#174f87,#267fc0);color:white;padding:40px;border-radius:18px;margin-bottom:32px}.hero p{opacity:.94}.hero .btn{background:white;color:#15558b}.heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.cards .panel{margin:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}.stats .panel{text-align:center;display:flex;flex-direction:column;gap:8px}.stats strong{font-size:32px;color:#1763a5}.stats span{color:#66768b}label{display:block;font-weight:bold;margin:17px 0 8px}input,select,textarea{width:100%;padding:13px;border:1px solid #cad6e4;border-radius:9px;font:inherit;background:#fff}input:focus,select:focus,textarea:focus{outline:2px solid #b4d9f5}button,.btn{display:inline-block;border:0;background:#1763a5;color:white;border-radius:9px;padding:12px 19px;font:inherit;font-weight:bold;cursor:pointer;margin-top:14px}button:hover,.btn:hover{opacity:.9;text-decoration:none}.secondary{background:#eaf1f8;color:#174e81}.danger{background:#b3313c}.small{padding:8px 12px;margin:0}.link{background:transparent;color:#1763a5;padding:0;margin:0}.inline,.filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.inline input,.inline select,.filters select{width:auto;flex:1;min-width:160px}.inline button,.filters button{margin:0}.filters{margin:20px 0}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:660px;text-align:right}th,td{padding:14px 10px;border-bottom:1px solid #edf0f5}th{background:#f5f8fc;color:#44566c}.grade{display:flex;gap:6px;align-items:center}.grade input{width:75px;padding:8px}.pill{padding:5px 10px;border-radius:99px;font-size:12px}.ok{background:#e1f5e9;color:#167143}.no{background:#fde9e9;color:#a52d32}.alert{padding:13px 18px;border-radius:9px;background:#eaf2fd;margin:10px 0}.alert.error{background:#fde8e8;color:#a12b2b}.alert.success{background:#e4f5e9;color:#146d3e}footer{text-align:center;color:#8290a2;padding:28px}@media(max-width:650px){.top{padding:15px 20px}.brand{font-size:19px}nav{font-size:13px;gap:10px}.stats{gap:7px}.stats .panel{padding:14px 6px}.stats strong{font-size:24px}.hero{padding:25px}h1{font-size:24px}.panel{padding:17px}}

/* Student submission page — isolated component styles */
.submission-page{max-width:720px;margin:0 auto 40px}.submission-heading{text-align:center;background:linear-gradient(135deg,#163d77,#256cb0);border-radius:24px 24px 0 0;padding:40px 30px;color:#fff}.submission-heading h1{font-size:30px;margin:12px 0 8px}.submission-heading p{opacity:.9;line-height:1.9;margin:0 auto 16px;max-width:540px}.submission-tag{background:#ffffff24;border:1px solid #ffffff40;padding:5px 15px;border-radius:99px;font-size:13px}.submission-meta{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.submission-meta span{background:#ffffff1c;padding:6px 13px;border-radius:9px;font-size:13px}.submission-form{background:#fff;border:1px solid #e2e9f3;border-top:0;border-radius:0 0 24px 24px;padding:32px 38px;box-shadow:0 15px 40px #193c6912}.submission-step{display:flex;align-items:center;gap:12px;margin:4px 0 18px;color:#193d6b}.submission-step span{display:grid;place-items:center;background:#e9f1fc;color:#2363a3;border-radius:10px;width:37px;height:37px;font-weight:800}.submission-step strong{font-size:18px}.submission-field{margin-bottom:22px}.submission-field label:not(.upload-zone){margin:0 0 9px;font-size:14px}.submission-field em{color:#c83d52;font-style:normal}.submission-field input:not([type=file]),.submission-field select{height:56px;border:1px solid #d5dfed;background:#fbfcff;border-radius:12px;padding:12px 16px;transition:border-color .2s,box-shadow .2s}.submission-field input:focus,.submission-field select:focus{outline:none;border-color:#397dbb;box-shadow:0 0 0 4px #397dbb18}.submission-field small{display:block;color:#75869b;font-size:12px;margin-top:7px}.upload-zone{cursor:pointer;border:2px dashed #b9cde4;background:#f7faff;border-radius:16px;min-height:175px;display:flex!important;align-items:center;justify-content:center;flex-direction:column;gap:7px;text-align:center;padding:20px;color:#1e568c;transition:background .2s}.upload-zone:hover{background:#eef6ff}.upload-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#e2effc;font-size:29px}.visually-hidden-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.submission-send{display:block;width:100%;margin:25px 0 0;background:linear-gradient(100deg,#246cb0,#174a88);padding:15px;border-radius:12px;font-size:17px}.submission-note{text-align:center;color:#7b899a;font-size:12px;margin:12px 0 0}@media(max-width:650px){.submission-page{margin:0 auto 20px}.submission-heading{padding:30px 20px;border-radius:18px 18px 0 0}.submission-heading h1{font-size:24px}.submission-form{padding:24px 20px;border-radius:0 0 18px 18px}}
/* Portal 2.0: self-contained extension */
:root{--accent:#245b91;--ink:#162b43;--line:#dfe7f0}body{font-family:'Cairo',sans-serif;color:var(--ink);background:#f5f8fc}h1,h2,h3{letter-spacing:-.4px}.eyebrow{font-weight:800;color:#28679d;font-size:.85rem}.auth-card{max-width:620px;margin:38px auto!important;padding:34px!important;border-radius:22px!important}.auth-card h1{margin:8px 0}.auth-card input,.auth-card select{width:100%}.wide{width:100%;justify-content:center;text-align:center;margin-top:14px}.secondary{background:#eaf1f8!important;color:#244e78!important}.soft{background:#edf5ff;padding:14px;border-radius:12px;margin:18px 0}.record-line{padding:14px 0;border-bottom:1px solid var(--line);display:block}.record-line:last-child{border-bottom:0}.record-line p{margin:4px 0}.record-line summary{cursor:pointer;padding:8px 0}.record-line form{margin:12px 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.overflow{overflow-x:auto}.overflow table{min-width:920px}.filter{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.filter select{min-width:220px}.switch-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.switch-row input{width:20px!important;height:20px}.danger{background:#b8343c!important;color:white!important}input,select,textarea{border-radius:11px!important}a{overflow-wrap:anywhere}.print-report{overflow-x:auto}.print-report table{width:100%}@media(max-width:700px){.auth-card{padding:20px!important;margin:16px auto!important}.form-grid{grid-template-columns:1fr}.top{flex-wrap:wrap}.top nav{flex-wrap:wrap}.print-report{padding:12px!important}}@media print{header,footer,.no-print{display:none!important}body{background:white}.print-report{border:0!important;box-shadow:none!important}}
