@font-face{font-family:Abyy Sans;src:url(/fonts/abyysans-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Abyy Sans;src:url(/fonts/abyysans-Medium.woff2)format("woff2");font-weight:500 700;font-style:normal;font-display:swap}@font-face{font-family:Abyy Serif Display;src:url(/fonts/abyyserifdisplay-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Abyy Serif Display;src:url(/fonts/abyyserifdisplay-Bold.woff2)format("woff2");font-weight:600 700;font-style:normal;font-display:swap}@font-face{font-family:Abyy Serif Display;src:url(/fonts/abyyserifdisplay-Black.woff2)format("woff2");font-weight:800 900;font-style:normal;font-display:swap}:root{--font-body:"Abyy Sans", "Tajawal", system-ui, sans-serif;--font-head:"Abyy Serif Display", "Abyy Sans", "Tajawal", serif;--bg:#f6f7f5;--surface:#fff;--border:#e5e7e2;--text:#1f2421;--text-soft:#5f6b64;--text-mute:#8a938c;--accent:#1690a1;--accent-soft:#e3f4f6;--accent-ink:#0f6f7d;--gold:#c0894b;--gold-soft:#f7eede;--gold-ink:#8f6224;--subj:var(--accent);--danger:#b3402a;--danger-soft:#faece7;--warn:#8a5a0b;--warn-soft:#faeeda;--radius:12px;--shadow:0 1px 2px #141e190a}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-body);margin:0;padding:0;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}.app{flex-direction:column;min-height:100vh;display:flex}.site-header{background:var(--surface);border-bottom:1px solid var(--border);padding:14px 20px}.brand{align-items:center;gap:12px;max-width:900px;margin:0 auto;display:flex}.brand-mark{background:var(--accent-soft);width:42px;height:42px;color:var(--accent);border-radius:11px;justify-content:center;align-items:center;font-size:22px;display:flex}.brand-logo{width:auto;height:46px;display:block}.brand-text{flex-direction:column;display:flex}.brand-title{font-family:var(--font-head);font-size:20px;font-weight:700}.brand-subtitle{color:var(--text-soft);font-size:13px}.container{flex:1;width:100%;max-width:900px;margin:0 auto;padding:24px 20px 40px}.section-title{color:var(--text-soft);margin:8px 2px 12px;font-size:17px;font-weight:700}.intro{background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 20%, var(--border));border-radius:var(--radius);margin-bottom:24px;padding:16px 18px}.intro-title{font-family:var(--font-head);color:var(--accent-ink);margin:0 0 6px;font-size:18px;font-weight:700}.intro-text{color:var(--text-soft);margin:0;font-size:15px;line-height:1.9}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:28px;padding:8px 8px 4px}.panel .section-title{margin:0 0 4px;padding:8px 8px 2px}.deadline-list{margin:0;padding:0;list-style:none}.deadline-row{border-top:1px solid var(--border);align-items:center;gap:12px;padding:12px;transition:background .12s;display:flex}.deadline-list li:first-child .deadline-row{border-top:none}.deadline-row:hover{background:var(--bg)}.deadline-dot{background:var(--subj);border-radius:50%;flex:none;width:9px;height:9px}.deadline-title{flex:1;font-weight:500}.deadline-meta{text-align:start;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.deadline-subject{color:var(--text);font-size:15px;font-weight:500}.deadline-instructor{color:var(--text-soft);font-size:12px}.drive-btn{background:var(--accent);color:#fff;font-family:var(--font-head);box-shadow:var(--shadow);border-radius:12px;justify-content:center;align-items:center;gap:10px;margin-bottom:28px;padding:16px 20px;font-size:17px;font-weight:700;transition:background .12s;display:flex}.drive-btn:hover{background:var(--accent-ink)}.drive-btn-arrow{font-family:var(--font-body);opacity:.85;font-size:15px}.subject-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.subject-card{background:color-mix(in srgb, var(--subj) 8%, #fff);border:1px solid color-mix(in srgb, var(--subj) 22%, var(--border));border-radius:var(--radius);border-top:3px solid var(--subj);box-shadow:var(--shadow);padding:18px 18px 14px;transition:border-color .12s,transform .12s,box-shadow .12s,background .12s;display:block}.subject-card:hover{background:color-mix(in srgb, var(--subj) 13%, #fff);border-color:var(--subj);transform:translateY(-2px);box-shadow:0 4px 14px #141e191a}.subject-card-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.code-chip{color:color-mix(in srgb, var(--subj) 78%, #000);background:color-mix(in srgb, var(--subj) 14%, #fff);border-radius:8px;padding:3px 10px;font-size:13px;font-weight:500}.section-no{color:var(--text-mute);font-size:12px}.subject-name{font-family:var(--font-head);margin:4px 0 6px;font-size:20px;font-weight:700;line-height:1.5}.subject-instructor{color:var(--text-soft);margin:0;font-size:13px}.subject-card-meta{color:var(--text-soft);border-top:1px solid var(--border);gap:16px;margin-top:14px;padding-top:12px;font-size:15px;display:flex}.back-link{color:var(--subj);margin-bottom:16px;font-size:14px;display:inline-block}.back-link:hover{text-decoration:underline}.subject-header{margin-bottom:20px}.required-tasks{margin-bottom:28px}.required-tasks .section-title{margin:0 2px 12px}.subject-page-title{font-family:var(--font-head);margin:10px 0 6px;font-size:26px;font-weight:800}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.tab{color:var(--text-soft);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-family:inherit;font-size:15px}.tab:hover{color:var(--text)}.tab-active{color:color-mix(in srgb, var(--subj) 80%, #000);border-bottom-color:var(--subj);font-weight:500}.badge{white-space:nowrap;border-radius:20px;padding:2px 10px;font-size:12px;font-weight:500}.badge-task{background:var(--accent-soft);color:var(--accent-ink)}.badge-research{color:#4b2c73;background:#eee7f6}.pill{white-space:nowrap;border-radius:20px;padding:2px 10px;font-size:12px;font-weight:500}.pill-overdue{background:var(--danger-soft);color:var(--danger)}.pill-soon{background:var(--warn-soft);color:var(--warn)}.pill-upcoming{background:var(--bg);color:var(--text-soft)}.task-list,.summary-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.task-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.task-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.task-title{flex:1;font-weight:700}.task-due{color:var(--text-soft);margin:8px 0 0;font-size:14px}.task-details{color:var(--text-soft);margin:6px 0 0;font-size:14px;line-height:1.8}.task-more{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}.task-more summary{cursor:pointer;color:var(--accent-ink);align-items:center;gap:6px;font-size:14px;font-weight:500;list-style:none;display:flex}.task-more summary::-webkit-details-marker{display:none}.task-more summary:after{content:"⌄";margin-inline-start:auto;font-size:14px;transition:transform .15s}.task-more[open] summary:after{transform:rotate(180deg)}.detail-list{color:var(--text-soft);flex-direction:column;gap:7px;margin:10px 4px 0;padding-inline-start:20px;font-size:14px;display:flex}.detail-list li{line-height:1.6}.topics-note{color:var(--text-mute);margin:10px 0 0;font-size:13px}.summary-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.summary-title{font-weight:500}.summary-actions{gap:8px;display:flex}.summary-actions a{color:var(--subj);border:1px solid var(--border);border-radius:8px;padding:4px 14px;font-size:14px}.summary-actions a:hover{border-color:var(--subj);background:color-mix(in srgb, var(--subj) 12%, #fff)}.empty{color:var(--text-mute);padding:8px 4px;font-size:15px}.site-footer{text-align:center;color:var(--text-mute);border-top:1px solid var(--border);margin-top:auto;padding:24px 20px;font-size:13px}@media (width<=520px){.subject-grid{grid-template-columns:1fr}.deadline-instructor{display:none}}
