@import url('https://fonts.googleapis.com/css2?family=Tajawal:wght@400;500;700;800&display=swap');
:root{--navy:#172033;--blue:#2563eb;--bg:#f3f5f9;--line:#e2e7ef;--text:#1d2939;--muted:#667085;--white:#fff;--danger:#d92d20}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text);font-family:'Tajawal',Arial,sans-serif}body:not(.authenticated) #app{display:none!important}body.authenticated #authScreen{display:none!important}button,input,select,textarea{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}
.authScreen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#e9efff,#f8fafc 45%,#eef2f7)}.authCard{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:0 22px 60px rgba(23,32,51,.12);text-align:center}.backLink{display:block;text-align:right;color:var(--muted);text-decoration:none;font-size:14px}.ownerMark{width:60px;height:60px;border-radius:17px;background:var(--navy);color:white;display:grid;place-items:center;font-size:29px;font-weight:800;margin:24px auto 14px}.eyebrow{margin:0;color:var(--blue);font-size:13px;font-weight:800}.authCard h1{margin:5px 0 8px}.authCard form{text-align:right;margin-top:24px}.authCard label,.formGrid label,dialog>form>label{display:grid;gap:7px;font-size:14px;font-weight:700;margin-bottom:14px}input,select,textarea{width:100%;border:1px solid #cfd6e2;border-radius:9px;padding:11px 12px;background:#fff;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.11)}textarea{resize:vertical}.primary,.secondary{border-radius:8px;padding:10px 15px;font-weight:700}.primary{border:1px solid var(--blue);background:var(--blue);color:#fff}.secondary{border:1px solid #ccd4e0;background:#fff;color:#344054}.wide{width:100%;margin-top:4px}.textButton{border:0;background:transparent;color:var(--blue);font-weight:700;margin-top:14px}.formMessage{min-height:20px;color:var(--danger);font-size:13px}.formMessage.success{color:#087443}
.app{min-height:100vh}.sidebar{position:fixed;inset:0 0 0 auto;width:255px;background:var(--navy);padding:25px 17px;display:flex;flex-direction:column;color:#fff;z-index:20}.brand{display:flex;gap:11px;align-items:center;padding:0 8px 25px;border-bottom:1px solid rgba(255,255,255,.11)}.brand>span{width:42px;height:42px;border-radius:12px;background:#fff;color:var(--navy);font-size:23px;font-weight:800;display:grid;place-items:center}.brand div{display:grid}.brand small{color:#aeb8cb;margin-top:3px}.sidebar nav{display:grid;gap:7px;margin-top:25px}.navItem{border:0;text-align:right;background:transparent;color:#b9c3d6;padding:13px 15px;border-radius:8px;font-weight:700}.navItem.active,.navItem:hover{background:rgba(255,255,255,.1);color:#fff}.studentLink{margin-top:auto;background:#24314a;color:#dbe5f8;text-decoration:none;padding:12px;border-radius:8px;text-align:center;font-size:14px}.logout{border:0;background:transparent;color:#f6b8b3;padding:15px;margin-top:7px}.main{margin-right:255px;min-height:100vh}.topbar{height:91px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px}.topbar h1{margin:0;font-size:23px}.topbar p{margin:5px 0 0;color:var(--muted);font-size:13px}.ownerBadge{text-align:left;display:grid}.ownerBadge span{font-size:12px;color:var(--muted)}.ownerBadge b{font-size:13px}.menuButton{display:none;border:0;background:transparent;font-size:25px}.view{display:none;padding:28px 32px}.view.active{display:block}.statsGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.statCard,.panel{background:#fff;border:1px solid var(--line);border-radius:12px}.statCard{padding:21px;border-top:4px solid}.statCard span{color:var(--muted);font-size:14px}.statCard b{display:block;font:800 31px Arial;margin:13px 0 7px}.statCard small{color:var(--muted)}.statCard.blue{border-top-color:#2563eb}.statCard.green{border-top-color:#16a36a}.statCard.violet{border-top-color:#7c3aed}.statCard.amber{border-top-color:#e08b12}.dashboardGrid{display:grid;grid-template-columns:1.7fr 1fr;gap:16px;margin-top:16px}.panel{padding:22px}.panelHead{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.panel h2{margin:0;font-size:19px}.panel p{margin:5px 0 0;color:var(--muted);font-size:13px}.bankProgress>div{display:flex;justify-content:space-between;margin:30px 0 9px}progress{width:100%;height:11px;border:0;border-radius:20px;overflow:hidden}progress::-webkit-progress-bar{background:#eef1f5}progress::-webkit-progress-value{background:#2563eb}.miniStats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:27px}.miniStats div{background:#f8fafc;border-radius:9px;padding:14px;text-align:center}.miniStats b{display:block;font:700 22px Arial}.miniStats span{color:var(--muted);font-size:13px}.quickAction{width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:14px;text-align:right;display:flex;align-items:center;gap:12px;margin-top:12px}.quickAction:hover{border-color:#b8c7e3;background:#f8fbff}.quickAction>span{width:36px;height:36px;border-radius:9px;background:#edf3ff;color:#2563eb;display:grid;place-items:center;font-size:21px}.quickAction div{display:grid}.quickAction small{color:var(--muted);margin-top:3px}.tablePanel{min-height:400px}.filters{display:grid;grid-template-columns:1fr 180px 180px;gap:10px;margin-bottom:17px}.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th{background:#f8fafc;color:#667085;font-size:12px;text-align:right;padding:11px;border-bottom:1px solid var(--line)}td{padding:13px 11px;border-bottom:1px solid #edf0f4;font-size:14px}td.questionCell{max-width:430px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill{display:inline-block;border-radius:20px;padding:4px 9px;font-size:12px;background:#eef2f7}.pill.published,.pill.completed{background:#e9f8f0;color:#087443}.pill.draft,.pill.inProgress{background:#fff5df;color:#925f06}.rowActions{display:flex;gap:6px}.rowActions button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 9px}.rowActions .delete{color:var(--danger)}.empty{text-align:center;padding:55px;color:var(--muted)}.pagination{display:flex;justify-content:center;align-items:center;gap:13px;margin-top:20px}.pagination button:disabled{opacity:.4;cursor:not-allowed}
dialog{width:min(760px,calc(100% - 24px));max-height:92vh;border:0;border-radius:14px;padding:0;box-shadow:0 25px 70px rgba(16,24,40,.28)}dialog::backdrop{background:rgba(16,24,40,.55)}dialog form{padding:24px}.dialogHead{display:flex;justify-content:space-between;margin-bottom:22px}.dialogHead h2{margin:4px 0}.iconButton{border:0;background:#f2f4f7;border-radius:8px;width:37px;height:37px;font-size:24px}.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:0 13px}.formGrid .full{grid-column:1/-1}fieldset{border:1px solid var(--line);border-radius:10px;margin:4px 0 15px;padding:15px}legend{font-weight:700;padding:0 6px}.choicesGrid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.choiceInput{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px}.choiceInput input[type=radio]{width:auto}.dialogActions{display:flex;justify-content:flex-start;gap:8px;border-top:1px solid var(--line);padding-top:17px}.toast{position:fixed;left:24px;bottom:24px;background:#172033;color:#fff;padding:13px 18px;border-radius:9px;box-shadow:0 12px 30px rgba(0,0,0,.2);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;z-index:50}.toast.show{opacity:1;transform:none}
@media(max-width:1050px){.statsGrid{grid-template-columns:1fr 1fr}.dashboardGrid{grid-template-columns:1fr}.filters{grid-template-columns:1fr 150px 150px}}
@media(max-width:760px){.sidebar{transform:translateX(100%);transition:.2s}.sidebar.open{transform:none}.main{margin:0}.topbar{height:auto;min-height:82px;padding:15px 18px}.menuButton{display:block}.ownerBadge{display:none}.view{padding:18px}.statsGrid{grid-template-columns:1fr 1fr}.filters{grid-template-columns:1fr}.stackMobile{align-items:flex-start}.formGrid,.choicesGrid{grid-template-columns:1fr}}
@media(max-width:470px){.statsGrid{grid-template-columns:1fr}.panelHead{align-items:flex-start}.panelHead.stackMobile{display:grid}.miniStats{grid-template-columns:1fr 1fr 1fr}.authCard{padding:25px}}
