:root{--color-primary:#0d7377;--color-primary-dark:#095456;--color-primary-light:#14919b;--color-secondary:#d4af37;--color-secondary-light:#e6c968;--color-background:#f9f6f1;--color-surface:#ffffff;--color-text:#2c3e50;--color-text-light:#5a6c7d;--color-text-muted:#8696a7;--color-success:#27ae60;--color-error:#e74c3c;--color-border:#e0ddd5;--font-family:'Tajawal',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:0.375rem;--radius-md:0.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px rgba(0, 0, 0, 0.05);--shadow-md:0 4px 6px rgba(0, 0, 0, 0.07),0 2px 4px rgba(0, 0, 0, 0.05);--shadow-lg:0 10px 15px rgba(0, 0, 0, 0.1),0 4px 6px rgba(0, 0, 0, 0.05);--shadow-xl:0 20px 25px rgba(0, 0, 0, 0.1),0 10px 10px rgba(0, 0, 0, 0.04);--transition-fast:150ms ease;--transition-base:250ms ease;--transition-slow:350ms ease}*,::after,::before{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html{font-size:16px;scroll-behavior:smooth;background-color:var(--color-primary-dark)}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--color-text);background-color:var(--color-primary-dark);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}.header-pattern{position:absolute;inset:0;opacity:.2;background-image:url("https://images.unsplash.com/photo-1618224237039-0f55d9f40c1c?w=1200&q=80");background-size:cover;background-position:center;filter:blur(2px);pointer-events:none}.footer-pattern{position:absolute;inset:0;opacity:.15;background-image:url("https://images.unsplash.com/photo-1618224237039-0f55d9f40c1c?w=800&q=60");background-size:cover;background-position:center bottom;filter:blur(3px);pointer-events:none}.header{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-dark) 100%);color:#fff;padding:var(--spacing-xl) var(--spacing-md);padding-top:calc(var(--spacing-xl) + env(safe-area-inset-top,0px));text-align:center;position:relative;overflow:hidden}.header-content{position:relative;z-index:1;max-width:600px;margin:0 auto}.logo-container{width:20%;height:20%;background:#fff;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-lg);box-shadow:var(--shadow-lg);padding:var(--spacing-sm)}.logo{width:100%;height:100%;object-fit:contain}.title{font-size:var(--font-size-2xl);font-weight:800;margin-bottom:var(--spacing-sm);text-shadow:0 2px 4px rgba(0,0,0,.2)}.subtitle{font-size:var(--font-size-lg);font-weight:500;opacity:.95;margin-bottom:var(--spacing-md)}.year-badge{display:inline-block;background:var(--color-secondary);color:var(--color-text);padding:var(--spacing-xs) var(--spacing-lg);border-radius:var(--radius-full);font-weight:700;font-size:var(--font-size-sm);box-shadow:var(--shadow-md)}.main-content{flex:1;padding:var(--spacing-xl) var(--spacing-md);width:100%;background-color:var(--color-background);display:flex;flex-direction:column;align-items:center}.main-content>:not(.loading-overlay):not(.message-modal){max-width:800px;width:100%}.loading-overlay,.message-modal{max-width:none}.search-section{margin-bottom:var(--spacing-xl)}.search-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--spacing-xl);border:1px solid var(--color-border)}.search-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);color:var(--color-primary)}.search-icon{width:24px;height:24px}.search-header h3{font-size:var(--font-size-xl);font-weight:700}.search-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.input-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.input-label{font-weight:600;color:var(--color-text);font-size:var(--font-size-sm)}.input-field{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-lg);font-family:var(--font-family);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input-field::placeholder{color:var(--color-text-muted)}.input-field:focus{outline:0;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(13,115,119,.15)}.input-field:valid:not(:placeholder-shown){border-color:var(--color-success)}.input-hint{font-size:var(--font-size-sm);color:var(--color-text-muted)}.input-hint.valid{color:var(--color-success)}.search-btn{width:100%;padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-lg);font-weight:700;font-family:var(--font-family);color:#fff;background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-dark) 100%);border:none;border-radius:var(--radius-md);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);min-height:52px}.search-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.search-btn:active:not(:disabled){transform:translateY(0)}.search-btn:disabled{opacity:.6;cursor:not-allowed}.btn-loader{display:flex;align-items:center;gap:var(--spacing-sm)}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.results-section{animation:fadeIn var(--transition-base)}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.result-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;border:1px solid var(--color-border)}.result-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) var(--spacing-xl);background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-dark) 100%);color:#fff}.result-header h3{font-size:var(--font-size-lg);font-weight:700}.print-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:rgba(255,255,255,.2);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.print-btn:hover{background:rgba(255,255,255,.3)}.print-btn svg{width:18px;height:18px}.printable-card{padding:var(--spacing-xl)}.card-header-print{display:none}.highlight-box{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.highlight-item{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-light) 100%);color:#fff;padding:var(--spacing-lg);border-radius:var(--radius-md);text-align:center;box-shadow:var(--shadow-md)}.highlight-label{display:block;font-size:var(--font-size-sm);opacity:.9;margin-bottom:var(--spacing-xs)}.highlight-value{display:block;font-size:var(--font-size-3xl);font-weight:800;line-height:1.2}.info-grid{display:flex;flex-direction:column;gap:var(--spacing-sm)}.info-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--color-background);border-radius:var(--radius-sm);gap:var(--spacing-md)}.info-label{font-weight:600;color:var(--color-text-light);font-size:var(--font-size-sm);white-space:nowrap}.info-value{font-weight:700;color:var(--color-text);text-align:left;word-break:break-word}.remaining-subjects{margin-top:var(--spacing-lg);padding:var(--spacing-lg);background:rgba(231,76,60,.1);border:1px solid rgba(231,76,60,.3);border-radius:var(--radius-md)}.subjects-label{display:block;font-weight:700;color:var(--color-error);margin-bottom:var(--spacing-sm)}.subjects-value{color:var(--color-text);font-weight:600}.selection-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;border:1px solid var(--color-border)}.selection-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) var(--spacing-xl);background:var(--color-primary);color:#fff}.selection-header h3{font-size:var(--font-size-lg);font-weight:700}.close-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.2);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:background var(--transition-fast)}.close-btn:hover{background:rgba(255,255,255,.3)}.close-btn svg{width:20px;height:20px}.students-list{list-style:none;max-height:400px;overflow-y:auto}.students-list li{border-bottom:1px solid var(--color-border)}.students-list li:last-child{border-bottom:none}.students-list button{width:100%;padding:var(--spacing-lg) var(--spacing-xl);background:0 0;border:none;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:600;color:var(--color-text);text-align:right;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.students-list button:hover{background:var(--color-primary);color:#fff}.loading-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(4px)}.loading-content{background:var(--color-surface);padding:var(--spacing-2xl);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-xl)}.loading-spinner{width:48px;height:48px;border:4px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:.8s linear infinite spin;margin:0 auto var(--spacing-lg)}.loading-content p{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text)}.message-modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md);backdrop-filter:blur(4px)}.modal-content{background:var(--color-surface);padding:var(--spacing-2xl);border-radius:var(--radius-lg);text-align:center;max-width:400px;width:100%;box-shadow:var(--shadow-xl);animation:modalIn var(--transition-base)}@keyframes modalIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal-icon{width:64px;height:64px;margin:0 auto var(--spacing-lg);border-radius:50%;display:flex;align-items:center;justify-content:center}.modal-icon.error{background:rgba(231,76,60,.1);color:var(--color-error)}.modal-icon.info{background:rgba(13,115,119,.1);color:var(--color-primary)}.modal-icon svg{width:32px;height:32px}.modal-message{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--spacing-xl);line-height:1.5}.modal-btn{padding:var(--spacing-md) var(--spacing-2xl);font-size:var(--font-size-base);font-weight:700;font-family:var(--font-family);color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.modal-btn:hover{background:var(--color-primary-dark)}.footer{background:var(--color-primary-dark);color:#fff;padding:var(--spacing-lg) var(--spacing-md);padding-bottom:calc(var(--spacing-lg) + env(safe-area-inset-bottom,0px));text-align:center;position:relative;overflow:hidden}.footer-content{position:relative;z-index:1}.footer p{font-size:var(--font-size-sm);opacity:.9}.footer .version{font-size:var(--font-size-xs);opacity:.5;margin-top:var(--spacing-xs);font-family:monospace}@media print{body{background:#fff;font-size:12pt}.footer,.header,.loading-overlay,.message-modal,.result-header,.search-section,.selection-card{display:none!important}.main-content{padding:0;max-width:none}.result-card,.results-section{display:block!important}.result-card{box-shadow:none;border:2px solid var(--color-primary);border-radius:var(--radius-md);max-width:350px;margin:0 auto}.printable-card{padding:var(--spacing-lg)}.card-header-print{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--color-primary)}.card-logo{width:50px;height:50px;object-fit:contain}.card-title-print{display:flex;flex-direction:column}.college-name{font-weight:700;font-size:11pt;color:var(--color-primary)}.card-year{font-size:10pt;color:var(--color-text-light)}.highlight-box{margin-bottom:var(--spacing-md)}.highlight-item{padding:var(--spacing-md);-webkit-print-color-adjust:exact;print-color-adjust:exact}.highlight-value{font-size:var(--font-size-2xl)}.info-row{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background);-webkit-print-color-adjust:exact;print-color-adjust:exact}.info-label,.info-value{font-size:10pt}.remaining-subjects{margin-top:var(--spacing-md);padding:var(--spacing-md);-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (max-width:640px){:root{--font-size-3xl:1.75rem;--font-size-4xl:2rem}.header{padding:var(--spacing-lg) var(--spacing-md)}.logo-container{width:64px;height:64px}.title{font-size:var(--font-size-xl)}.subtitle{font-size:var(--font-size-base)}.search-card{padding:var(--spacing-lg)}.input-field{padding:var(--spacing-md);font-size:var(--font-size-base)}.highlight-box{grid-template-columns:1fr}.highlight-value{font-size:var(--font-size-2xl)}.info-row{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.info-value{text-align:right;width:100%}}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}}::selection{background:var(--color-primary);color:#fff}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-background)}::-webkit-scrollbar-thumb{background:var(--color-primary-light);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}