.curriculum-container{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#e2e8f0);padding:2rem 1rem;direction:rtl;font-family:Segoe UI,Tahoma,Arial,sans-serif}@media (max-width:768px){.curriculum-container{padding:1rem .5rem}}.curriculum-header{text-align:center;margin-bottom:3rem;padding:2rem;background:#fff;border-radius:.75rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);border:1px solid #e2e8f0}.curriculum-header .curriculum-title{font-size:2.5rem;font-weight:700;color:#2563eb;margin-bottom:.5rem;background:linear-gradient(135deg,#2563eb,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@media (max-width:768px){.curriculum-header .curriculum-title{font-size:2rem}}.curriculum-header .curriculum-subtitle{font-size:1.125rem;color:#7e92b1;margin:0}.curriculum-header .header-buttons{display:-ms-flexbox;display:flex;gap:1rem;margin-top:1rem;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center}@media (max-width:768px){.curriculum-header .header-buttons{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;gap:.75rem}}.curriculum-header .remaining-subjects-btn{background:linear-gradient(135deg,#ff8a1e,#fbbf24);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}.curriculum-header .remaining-subjects-btn:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);background:linear-gradient(135deg,#ea7000,#f59e0b)}.curriculum-header .remaining-subjects-btn:active{transform:translateY(0)}@media (max-width:768px){.curriculum-header .remaining-subjects-btn{padding:.625rem 1.25rem;font-size:.875rem}}.curriculum-header .optional-subjects-btn{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}.curriculum-header .optional-subjects-btn:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);background:linear-gradient(135deg,#134cca,#2563eb)}.curriculum-header .optional-subjects-btn:active{transform:translateY(0)}@media (max-width:768px){.curriculum-header .optional-subjects-btn{padding:.625rem 1.25rem;font-size:.875rem}}.loading-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-direction:column;flex-direction:column;padding:4rem 2rem;background:#fff;border-radius:.75rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);border:1px solid #e2e8f0}.loading-container .loading-spinner{width:3rem;height:3rem;border:4px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.loading-container .loading-text{font-size:1.125rem;color:#7e92b1;margin:0}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-direction:column;flex-direction:column;padding:4rem 2rem;background:#fff;border-radius:.75rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);border:1px solid #f75252}.error-container .error-icon{font-size:3rem;margin-bottom:1rem}.error-container .error-text{font-size:1.125rem;color:#f75252;margin:0;text-align:center}.curriculum-content{max-width:1200px;margin:0 auto}.semester-card{background:#fff;border-radius:.75rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);border:1px solid #e2e8f0;margin-bottom:2rem;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.semester-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}.semester-card .semester-header{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;padding:1.5rem 2rem;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:1rem}@media (max-width:768px){.semester-card .semester-header{-ms-flex-direction:column;flex-direction:column;text-align:center;padding:1rem}}.semester-card .semester-header .semester-title{font-size:1.5rem;font-weight:600;margin:0;color:#fff}@media (max-width:768px){.semester-card .semester-header .semester-title{font-size:1.25rem}}.semester-card .semester-header .subject-count{background:hsla(0,0%,100%,.2);padding:.5rem 1rem;border-radius:1rem;font-size:.875rem;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.semester-card .subjects-container{padding:2rem}@media (max-width:768px){.semester-card .subjects-container{padding:1rem}}.semester-card .subjects-container .subjects-title{font-size:1.25rem;font-weight:600;color:#1e293b;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid #e2e8f0}.subjects-grid{display:-ms-grid;display:grid;-ms-grid-columns:(minmax(280px,1fr))[auto-fit];grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;gap:1rem}.subject-card{background:#fff;border:2px solid #e2e8f0;border-radius:.75rem;padding:1.5rem;position:relative;overflow:hidden}.subject-card,.subject-card:before{transition:all .3s cubic-bezier(.4,0,.2,1)}.subject-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:#e2e8f0}.subject-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);border-color:#2563eb}.subject-card:hover:before{background:#2563eb}.subject-card.status-passed{border-color:#2ec057}.subject-card.status-passed:before{background:#2ec057}.subject-card.status-passed:hover{border-color:#249744}.subject-card.status-failed{border-color:#f75252}.subject-card.status-failed:before{background:#f75252}.subject-card.status-failed:hover{border-color:#f52121}.subject-card.status-pending{border-color:#ff8a1e}.subject-card.status-pending:before{background:#ff8a1e}.subject-card.status-pending:hover{border-color:#ea7000}.subject-card .subject-header{margin-bottom:1rem}.subject-card .subject-header .subject-name{font-size:1.125rem;font-weight:600;color:#1e293b;margin:0 0 .5rem;line-height:1.4}.subject-card .subject-header .subject-hours{font-size:1rem;color:#7e92b1;background:#e2e8f0;padding:.25rem .75rem;border-radius:1rem;font-weight:500}.subject-card .subject-status{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.subject-card .subject-status .status-badge{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:1rem;font-size:.875rem;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1)}.subject-card .subject-status .status-badge .status-icon{font-size:1rem;font-weight:700}.subject-card .subject-status .status-badge.status-passed{background:#2ec057;color:#fff}.subject-card .subject-status .status-badge.status-failed{background:#f75252;color:#fff}.subject-card .subject-status .status-badge.status-pending{background:#ff8a1e;color:#fff}.subject-card .subject-status .status-badge.status-unknown{background:#f1f3f5;color:#fff}@media (max-width:1024px){.subjects-grid{-ms-grid-columns:(minmax(250px,1fr))[auto-fit];grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}}@media (max-width:768px){.curriculum-container{padding:1rem .5rem}.curriculum-header{margin-bottom:2rem;padding:1.5rem 1rem}.curriculum-header .curriculum-title{font-size:1.75rem}.curriculum-header .curriculum-subtitle{font-size:1rem}.semester-card{margin-bottom:1.5rem}.semester-card .subjects-container{padding:1rem}.subjects-grid{-ms-grid-columns:1fr;grid-template-columns:1fr;gap:.75rem}.subject-card{padding:1rem}.subject-card .subject-header .subject-name{font-size:1rem}}@media (max-width:480px){.curriculum-container{padding:.5rem}.curriculum-header{padding:1rem;margin-bottom:1.5rem}.curriculum-header .curriculum-title{font-size:1.5rem}.semester-card .semester-header{padding:1rem}.semester-card .semester-header .semester-title{font-size:1.125rem}.semester-card .semester-header .subject-count{font-size:.75rem;padding:.375rem .75rem}.semester-card .subjects-container{padding:.75rem}.semester-card .subjects-container .subjects-title{font-size:1.125rem;margin-bottom:1rem}.subject-card{padding:.75rem}.subject-card .subject-header{margin-bottom:.75rem}.subject-card .subject-header .subject-name{font-size:.875rem}.subject-card .subject-header .subject-hours{font-size:.75rem;padding:.25rem .5rem}.subject-card .subject-status .status-badge{font-size:.75rem;padding:.375rem .75rem}.subject-card .subject-status .status-badge .status-icon{font-size:.875rem}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.semester-card{animation:fadeInUp .6s ease-out}.subject-card{animation:fadeInUp .4s ease-out}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;z-index:1000;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .3s ease-out}.modal-overlay .modal-content{background:#fff;border-radius:.75rem;box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);max-width:600px;width:100%;max-height:80vh;overflow:hidden;animation:slideInUp .3s ease-out;border:1px solid #e2e8f0}@media (max-width:768px){.modal-overlay .modal-content{max-width:95%;max-height:90vh}}.modal-overlay .modal-header{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;padding:1.5rem 2rem;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}@media (max-width:768px){.modal-overlay .modal-header{padding:1rem 1.5rem}}.modal-overlay .modal-header .modal-title{font-size:1.5rem;font-weight:600;margin:0}@media (max-width:768px){.modal-overlay .modal-header .modal-title{font-size:1.25rem}}.modal-overlay .modal-header .modal-close-btn{background:hsla(0,0%,100%,.2);border:none;color:#fff;width:2rem;height:2rem;border-radius:50%;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:1.125rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.modal-overlay .modal-header .modal-close-btn:hover{background:hsla(0,0%,100%,.3);transform:scale(1.1)}.modal-overlay .modal-body{padding:2rem;max-height:60vh;overflow-y:auto}@media (max-width:768px){.modal-overlay .modal-body{padding:1.5rem}}.modal-overlay .modal-body .optional-count,.modal-overlay .modal-body .remaining-count{font-size:1.125rem;color:#1e293b;margin-bottom:1.5rem;padding:1rem;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-radius:.5rem;border-left:4px solid #2563eb;font-weight:600}@media (max-width:768px){.modal-overlay .modal-body .optional-count,.modal-overlay .modal-body .remaining-count{font-size:1rem;padding:.75rem}}.modal-overlay .modal-body .optional-subjects-list,.modal-overlay .modal-body .remaining-subjects-list{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:1rem}.modal-overlay .modal-body .optional-subject-item,.modal-overlay .modal-body .remaining-subject-item{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;padding:1rem;background:#f8fafc;border-radius:.5rem;border:1px solid #e2e8f0;transition:all .3s cubic-bezier(.4,0,.2,1)}.modal-overlay .modal-body .optional-subject-item:hover,.modal-overlay .modal-body .remaining-subject-item:hover{background:#f1f5f9;border-color:#2563eb;transform:translateX(4px)}@media (max-width:768px){.modal-overlay .modal-body .optional-subject-item,.modal-overlay .modal-body .remaining-subject-item{padding:.75rem;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;gap:.5rem}}.modal-overlay .modal-body .optional-subject-item.studied,.modal-overlay .modal-body .remaining-subject-item.studied{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#2ec057}.modal-overlay .modal-body .optional-subject-item.studied:hover,.modal-overlay .modal-body .remaining-subject-item.studied:hover{background:linear-gradient(135deg,#ecfdf5,#d1fae5)}.modal-overlay .modal-body .optional-subject-item.not-studied,.modal-overlay .modal-body .remaining-subject-item.not-studied{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#ff8a1e}.modal-overlay .modal-body .optional-subject-item.not-studied:hover,.modal-overlay .modal-body .remaining-subject-item.not-studied:hover{background:linear-gradient(135deg,#fef3c7,#fde68a)}.modal-overlay .modal-body .optional-subject-item .subject-info,.modal-overlay .modal-body .remaining-subject-item .subject-info{-ms-flex:1;flex:1}.modal-overlay .modal-body .optional-subject-item .subject-info .subject-name,.modal-overlay .modal-body .remaining-subject-item .subject-info .subject-name{font-size:1.125rem;font-weight:600;color:#1e293b;margin:0 0 .25rem;line-height:1.4}@media (max-width:768px){.modal-overlay .modal-body .optional-subject-item .subject-info .subject-name,.modal-overlay .modal-body .remaining-subject-item .subject-info .subject-name{font-size:1rem}}.modal-overlay .modal-body .optional-subject-item .subject-info .subject-details,.modal-overlay .modal-body .remaining-subject-item .subject-info .subject-details{font-size:.875rem;color:#7e92b1;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:.5rem}@media (max-width:768px){.modal-overlay .modal-body .optional-subject-item .subject-info .subject-details,.modal-overlay .modal-body .remaining-subject-item .subject-info .subject-details{font-size:.75rem}}.modal-overlay .modal-body .optional-subject-item .subject-number,.modal-overlay .modal-body .remaining-subject-item .subject-number{background:#2563eb;color:#fff;width:2rem;height:2rem;border-radius:50%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-weight:600;font-size:.875rem;-ms-flex-negative:0;flex-shrink:0;margin-left:.5rem}@media (max-width:768px){.modal-overlay .modal-body .optional-subject-item .subject-number,.modal-overlay .modal-body .remaining-subject-item .subject-number{width:1.75rem;height:1.75rem;font-size:.75rem}}.modal-overlay .modal-body .optional-subject-item .subject-status-info,.modal-overlay .modal-body .remaining-subject-item .subject-status-info{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:.75rem;-ms-flex-negative:0;flex-shrink:0}@media (max-width:768px){.modal-overlay .modal-body .optional-subject-item .subject-status-info,.modal-overlay .modal-body .remaining-subject-item .subject-status-info{-ms-flex-item-align:end;align-self:flex-end;gap:.5rem}}.modal-overlay .modal-body .optional-subject-item .subject-status-info .status-indicator,.modal-overlay .modal-body .remaining-subject-item .subject-status-info .status-indicator{width:2rem;height:2rem;border-radius:50%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-weight:700;font-size:.875rem}@media (max-width:768px){.modal-overlay .modal-body .optional-subject-item .subject-status-info .status-indicator,.modal-overlay .modal-body .remaining-subject-item .subject-status-info .status-indicator{width:1.75rem;height:1.75rem;font-size:.75rem}}.modal-overlay .modal-body .optional-subject-item .subject-status-info .status-indicator.status-passed,.modal-overlay .modal-body .remaining-subject-item .subject-status-info .status-indicator.status-passed{background:#2ec057;color:#fff}.modal-overlay .modal-body .optional-subject-item .subject-status-info .status-indicator.status-failed,.modal-overlay .modal-body .remaining-subject-item .subject-status-info .status-indicator.status-failed{background:#f75252;color:#fff}.modal-overlay .modal-body .optional-subject-item .subject-status-info .status-indicator.status-pending,.modal-overlay .modal-body .remaining-subject-item .subject-status-info .status-indicator.status-pending{background:#ff8a1e;color:#fff}.modal-overlay .modal-body .optional-subject-item .subject-status-info .status-indicator.status-unknown,.modal-overlay .modal-body .remaining-subject-item .subject-status-info .status-indicator.status-unknown{background:#f1f3f5;color:#fff}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media print{.curriculum-container{background:#fff;padding:0}.semester-card{border:1px solid #ccc;margin-bottom:1rem}.semester-card,.subject-card{break-inside:avoid;box-shadow:none}.subject-card{border:1px solid #eee}.modal-overlay{display:none}}