body{font-family:var(--font-bricolage), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif!important}html[lang=ar] body,[dir=rtl] body{font-family:var(--font-rubik), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif!important}html[lang=ar] .western-digits,html[lang=ar] .grade-ltr,[dir=rtl] .western-digits,[dir=rtl] .grade-ltr{unicode-bidi:isolate}:root{--primary-50:#fef7f3;--primary-100:#fdeee7;--primary-200:#faddd0;--primary-300:#f6c2a8;--primary-400:#f19f7e;--primary-500:#ff7955;--primary-600:#e85a37;--primary-700:#c44729;--primary-800:#9f3a25;--primary-900:#803024;--primary-color:var(--primary-500);--primary-hover:var(--primary-600);--primary-active:var(--primary-700);--accent-color:var(--primary-500);--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-color:var(--gray-50);--bg-secondary:var(--gray-100);--white:#fff;--text-color:var(--gray-900);--text-secondary:var(--gray-600);--text-muted:var(--gray-500);--border-color:var(--gray-200);--border-light:var(--gray-100);--shadow-xs:0 0 12px 6px #00000005;--shadow-sm:0 0 18px 8px #00000006;--shadow-md:0 0 24px 12px #00000008;--shadow-lg:0 0 32px 16px #00000009;--shadow-xl:0 0 40px 20px #0000000a;--shadow-2xl:0 0 50px 25px #0000000b;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--radius-3xl:32px;--radius-full:9999px;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--transition-fast:all .15s cubic-bezier(.4, 0, .2, 1);--transition-base:all .2s cubic-bezier(.4, 0, .2, 1);--transition-slow:all .3s cubic-bezier(.4, 0, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--ease-back:var(--ease-out-quart);--z-sticky:200;--z-header-float:250;--z-dropdown:300;--z-modal-backdrop:1000;--z-modal:1100;--z-modal-backdrop-stacked:1050;--z-modal-stacked:1150;--z-toast:1200;--glass-bg:#ffffff47;--glass-border:#ffffff80;--glass-blur:blur(12px) saturate(1.15);--modal-backdrop-dim:#0f172a7a;--modal-content-blur:18px;--modal-stack-blur:14px;--modal-stack-dim:#0f172a66;--header-float-size:44px;--header-float-inset:var(--space-md);--header-clearance:calc(var(--header-float-inset) + var(--header-float-size) + var(--space-sm));--bp-xs:360px;--bp-sm:480px;--bp-md:768px;--bp-lg:1024px}:is(.top-box,.table-box .group-header,.gpa-sticky-summary,.footer-content,.fcai-status-indicator,.header-float-btn,.undo-bar){background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border-color:var(--glass-border)}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth;background-color:#ffe2da}body{font-family:var(--font-bricolage), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-feature-settings:"kern" 1, "liga" 1, "calt" 1, "pnum" 1, "tnum" 0, "onum" 1, "lnum" 0, "dlig" 0;color:var(--text-color);line-height:1.6;font-size:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0000;min-height:100vh;margin:0;padding:0;font-weight:450;overflow-x:hidden}img,picture,video,canvas:not(.three-bg-canvas),svg{max-width:100%;display:block}canvas.three-bg-canvas{display:block}input,button,textarea,select{font:inherit}.btn-primary{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-xl);background:linear-gradient(135deg, var(--primary-500), var(--primary-600));color:var(--white);border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;transition:var(--transition-base);letter-spacing:.025em;border:none;min-height:40px;font-weight:650;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn-primary:before{content:"";width:100%;height:100%;transition:var(--transition-slow);background:linear-gradient(90deg,#0000,#fff3,#0000);position:absolute;top:0;left:-100%}.btn-primary:hover:before{left:100%}.btn-primary:hover{background:linear-gradient(135deg, var(--primary-600), var(--primary-700));transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-xl);-webkit-backdrop-filter:blur(12px);color:var(--primary-color);border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;transition:var(--transition-base);letter-spacing:.025em;background:#ffffff1f;border:2px solid #ff795599;min-height:40px;font-weight:650;text-decoration:none;display:inline-flex}.btn-secondary:hover{background:var(--primary-color);color:var(--white);transform:translateY(-1px)}.button-group{gap:var(--space-md);margin-top:var(--space-lg);flex-wrap:wrap;justify-content:center;display:flex}.btn-primary:focus-visible,.btn-secondary:focus-visible,.form-input:focus-visible,.form-select:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media print{.btn-primary,.btn-secondary,.remove-btn{display:none}.container{max-width:none;padding:0}.top-box,.table-box,.gpa-display{box-shadow:none;border:1px solid var(--border-color)}}.number-strip{transform:translateY(-50%) translateX(var(--x-offset,0))!important;-webkit-transform:translateY(-50%) translateX(var(--x-offset,0))!important;will-change:transform!important;backface-visibility:hidden!important;flex-direction:row!important;justify-content:flex-start!important;align-items:center!important;width:auto!important;height:100%!important;margin:0!important;padding:0!important;display:flex!important;position:absolute!important;top:50%!important;left:0!important}.perspective-container{flex:1!important;justify-content:center!important;align-items:center!important;min-width:60px!important;height:100%!important;display:flex!important;position:relative!important;overflow:hidden!important}.number-dial-viewport{width:100%!important;height:100%!important;position:relative!important;overflow:visible!important}@media (max-width:480px){.course-form{flex-wrap:wrap!important;display:flex!important}}body{font-family:var(--font-bricolage), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;-webkit-text-size-adjust:100%}.table-container.collapsed:not(.level-container):not(.term-container):not(.manual-container){pointer-events:none!important;visibility:hidden!important;height:0!important;position:absolute!important;overflow:hidden!important}.level-container.collapsed,.term-container.collapsed,.manual-container.collapsed{pointer-events:none!important;overflow:hidden!important}.group-header{pointer-events:auto!important;visibility:visible!important;height:auto!important;position:relative!important}@keyframes slideOutLeft{0%{opacity:1;transform:translate(0)}50%{opacity:.7}to{opacity:0;transform:translate(-200%)}}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}50%{opacity:.7}to{opacity:0;transform:translate(200%)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-200%)}50%{opacity:.7}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(200%)}50%{opacity:.7}to{opacity:1;transform:translate(0)}}.credit-hours-container.slide-left .credit-hours-current,.credit-hours-container.slide-right .credit-hours-current,.credit-hours-container.slide-left .credit-hours-pending,.credit-hours-container.slide-right .credit-hours-pending{animation-duration:.4s!important;animation-timing-function:var(--ease-out-quart)!important}.credit-arrow{flex-shrink:0;justify-content:center;align-items:center;width:46px;min-width:46px;display:flex;background:#ffffff4d!important;height:100%!important}@media (max-width:480px){.table-box .course-table td:first-child{white-space:normal;word-break:break-word;text-align:left;width:auto;max-width:none;padding-inline:var(--clist-name-px,8px)}.table-box .course-name{width:100%;padding:0;font-size:.85rem;line-height:1.3;display:block}.table-box .course-table td{padding-block:var(--clist-row-py,8px);padding-inline:0}.table-box .course-table td:first-child{padding-inline:var(--clist-name-px,8px)}.table-box .course-table td.course-remove{padding-block:var(--clist-row-py,8px);padding-inline:0 var(--clist-name-px,8px)}}.app-root{z-index:1;transition:filter .22s;position:relative}.modal-overlay{background:var(--modal-backdrop-dim);width:100vw;height:100vh;z-index:var(--z-modal-backdrop);padding:var(--space-lg);box-sizing:border-box;opacity:0;pointer-events:none;justify-content:center;align-items:center;margin:0;transition:opacity .22s;display:flex;position:fixed;inset:0;overflow:auto}.modal-overlay.modal-visible{opacity:1;pointer-events:auto}.modal-overlay.modal-overlay--stacked{z-index:var(--z-modal-backdrop-stacked);background:var(--modal-stack-dim);-webkit-backdrop-filter:blur(var(--modal-stack-blur)) saturate(1.1)}.modal-overlay.modal-overlay--stacked .modal-content{z-index:var(--z-modal-stacked)}.modal-overlay.modal-visible{animation:.22s forwards modalFadeIn}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}body.modal-open{overflow:hidden}body.modal-open .app-root{filter:blur(var(--modal-content-blur)) brightness(.97);pointer-events:none;-webkit-user-select:none;user-select:none}.modal-content{background:var(--white);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:min(100%,32rem);max-width:32rem;max-height:min(85vh,720px);z-index:var(--z-modal);box-shadow:var(--shadow-lg);isolation:isolate;animation:modalSlideUp .26s var(--ease-out-quart);flex-direction:column;margin:auto;padding:0;display:flex;position:relative;overflow:hidden}.modal-header{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-xl) var(--space-md);border-bottom:1px solid var(--border-color);flex-shrink:0;margin:0;display:flex}.modal-title{font-size:var(--text-xl);color:var(--text-color);text-wrap:balance;margin:0;font-weight:700;line-height:1.25}.modal-close{min-width:44px;min-height:44px;margin:calc(-1 * var(--space-xs));padding:var(--space-xs);cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-sm);transition:var(--transition-base);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;line-height:0;display:inline-flex}.modal-close:hover{color:var(--text-color);background:var(--gray-100)}.modal-close:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.modal-body{padding:var(--space-lg) var(--space-xl);-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow-y:auto}.modal-description{margin:0 0 var(--space-lg);color:var(--text-secondary);font-size:var(--text-base);text-wrap:pretty;line-height:1.55}.modal-description a,.modal-body a:not(.how-to-link){color:var(--primary-color);text-underline-offset:2px;font-weight:600;text-decoration:underline}.modal-description a:hover,.modal-body a:not(.how-to-link):hover{color:var(--primary-hover)}.modal-footer{padding:var(--space-md) var(--space-xl) var(--space-lg);border-top:1px solid var(--border-color);background:var(--white);flex-shrink:0;justify-content:flex-end;margin-top:auto;display:flex}.modal-footer .button-group{gap:var(--space-sm);flex-wrap:wrap;justify-content:flex-end;width:100%;margin:0;display:flex}.modal-footer .btn-primary,.modal-footer .btn-secondary,.modal-footer .btn-danger{min-width:7.5rem;min-height:44px}.modal-footer .btn-secondary{background:var(--gray-100);border:1px solid var(--border-color);color:var(--text-color);-webkit-backdrop-filter:none;font-weight:600}.modal-footer .btn-secondary:hover{background:var(--gray-200);border-color:var(--gray-300);color:var(--text-color);transform:none}.modal-content.how-to-modal{width:min(100%,40rem);max-width:40rem}.modal-content.confirmation-modal{width:min(100%,28rem);max-width:28rem}.modal-content.import-modal{width:min(100%,34rem);max-width:34rem}.modal-content.stats-modal{width:min(100%,36rem);max-width:36rem}.import-textarea{font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace}@media (max-width:640px){.modal-overlay{padding:var(--space-md);padding-bottom:max(var(--space-md), env(safe-area-inset-bottom,0px));align-items:flex-end}.modal-content{border-radius:var(--radius-xl);width:100%;max-height:min(92vh,720px)}.modal-header{padding:var(--space-md) var(--space-lg) var(--space-sm)}.modal-body{padding:var(--space-md) var(--space-lg)}.modal-title{font-size:var(--text-lg)}.modal-description{font-size:var(--text-sm);margin-bottom:var(--space-md)}.import-textarea{font-size:var(--text-xs);min-height:10rem;line-height:1.45}.modal-footer{padding:var(--space-sm) var(--space-lg) max(var(--space-md), env(safe-area-inset-bottom,0px))}.modal-footer .button-group{gap:var(--space-sm);flex-direction:column-reverse}.modal-footer .btn-primary,.modal-footer .btn-secondary,.modal-footer .btn-danger{width:100%;min-width:0;margin:0}}@media (max-width:480px){.modal-overlay{padding:var(--space-md)}}.course-form input.form-input,.course-form .credit-hours-input,.course-form .grade-dropdown-input-mode .grade-dropdown-trigger.form-input-style-trigger{box-sizing:border-box!important;height:48px!important;min-height:48px!important;max-height:48px!important;line-height:1.25!important}.course-form .grade-dropdown-input-mode .grade-dropdown-trigger.form-input-style-trigger{border-radius:var(--radius-md)!important;width:100%!important;margin-inline-start:0!important}@media (max-width:480px){.group-header{padding:var(--space-sm)!important;margin-bottom:var(--space-xs)!important;border-radius:var(--radius-md)!important}.group-title{gap:var(--space-sm)!important;font-size:1rem!important}.group-toggle{flex-shrink:0!important;justify-content:center!important;align-items:center!important;width:20px!important;min-width:20px!important;height:20px!important;min-height:20px!important;display:inline-flex!important}.group-toggle svg{width:10px!important;height:10px!important}.term-group .group-header{display:flex;justify-content:space-between!important;align-items:center!important;width:100%!important;margin-right:0!important}.term-title{font-size:.9rem!important}.term-group .table-container table{width:100%!important}@media (max-width:380px){.table-header-hidden{display:none!important}}.gpa-display{width:160px!important;max-width:160px!important;height:160px!important;padding:var(--space-md)!important}.gpa-label{margin-bottom:4px!important;font-size:1rem!important}.gpa-value{font-size:2rem!important}.gpa-scale{margin-top:4px!important;font-size:.7rem!important}.grade-dropdown-menu{width:140px!important;position:fixed!important}.grade-dropdown-content{padding:var(--space-sm)!important}.grade-badge-container{justify-content:center;align-items:center;display:flex}.course-grade-badge{width:40px!important;min-width:40px!important;height:28px!important;min-height:28px!important;font-size:.8rem!important}}@media (prefers-contrast:high){.form-input,.form-select,.credit-hours-input,.grade-dropdown-input-mode .grade-dropdown-trigger.form-input-style-trigger{color:#000!important;background:#fff!important;border:2px solid #000!important}.course-table th{color:#fff!important;background:#000!important}.course-grade-badge{border:2px solid #000!important}.btn-primary{color:#fff!important;background:#000!important;border:2px solid #000!important}.modal-content,.top-box,.table-box{background:#fff!important;border:2px solid #000!important}}@media (max-width:360px){.container{padding:var(--space-sm)!important}.modal-content{border-radius:var(--radius-md)!important;box-sizing:border-box!important;max-width:100%!important}.modal-header{padding:10px 12px!important}.modal-body{padding:8px 12px 12px!important}.modal-footer{padding:10px 12px!important}.modal-footer .button-group{gap:6px!important}.modal-footer .btn-primary,.modal-footer .btn-secondary,.modal-footer .btn-danger{min-height:44px!important;margin:0 2px!important;padding:6px 10px!important;font-size:.8rem!important}.app-subtitle{display:none!important}.table-box .course-table td{padding:0!important}@media (max-width:330px){body{font-size:.85rem!important}.app-title{font-size:1.3rem!important}.top-box,.table-box{padding:var(--space-md) var(--space-sm)!important}.form-input,.form-select,.credit-hours-input,.grade-dropdown-input-mode .grade-dropdown-trigger.form-input-style-trigger{box-sizing:border-box!important;width:100%!important;min-width:0!important;height:36px!important;font-size:.8rem!important}}}@media (max-width:480px){.remove-btn:hover{transform:none!important}.remove-btn:hover svg,.remove-btn:hover svg path{filter:none!important}td .remove-btn{opacity:1!important}}
.ambient-backdrop{z-index:0;pointer-events:none;filter:blur(36px)saturate(1.12);transform-origin:50%;background:radial-gradient(85% 65% at 18% 22%,#ffa57db8,#0000 56%),radial-gradient(78% 58% at 82% 78%,#ffc3a8ad,#0000 58%),radial-gradient(95% 75% at 52% 48%,#fff8f4e0,#0000 64%),radial-gradient(62% 48% at 68% 12%,#ffeee6eb,#0000 52%),radial-gradient(70% 55% at 35% 88%,#ffd2bc8c,#0000 60%),#ffe2da;position:fixed;inset:0;overflow:hidden;transform:scale(1.1)}.three-bg-canvas{z-index:-1;pointer-events:none;opacity:1;width:100%;max-width:none;height:100%;transition:opacity .3s ease-in;position:fixed;top:0;left:0}
.container{z-index:1;max-width:800px;padding:var(--space-xl) var(--space-lg);align-items:center;gap:var(--space-xl);flex-direction:column;min-height:100vh;margin:0 auto;display:flex;position:relative}.app-title{font-size:clamp(var(--text-2xl), 4vw, var(--text-4xl));color:var(--primary-600);text-align:center;letter-spacing:-.025em;text-wrap:balance;margin:0;padding-bottom:0;font-weight:700;line-height:1.15}.app-subtitle{font-size:var(--text-lg);color:var(--text-secondary);text-align:center;margin:var(--space-sm) 0 0 0;letter-spacing:.025em;font-weight:500}.app-header-section{flex-direction:column;align-items:center;gap:20px;width:100%;display:flex}.app-header{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:0;display:flex}.app-header-titles{text-align:center;flex-direction:column;flex:1;align-items:center;min-width:0;display:flex}.app-header .app-title{text-align:center}.app-header .app-subtitle{text-align:center;margin-top:var(--space-xs)}[dir=rtl] .app-title,html[lang=ar] .app-title{padding-bottom:6px}.save-notification{top:var(--space-lg);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:var(--text-base);z-index:var(--z-toast);max-width:min(90vw,400px);box-shadow:var(--shadow-md);font-weight:600;transition:opacity .3s,transform .3s;position:fixed;left:50%;transform:translate(-50%)}.save-notification.success{color:var(--white);background:#22c55ef2;border:1px solid #fff6}.save-notification.error{color:var(--white);background:#ef4444f2;border:1px solid #fff6}.undo-bar{top:var(--space-lg);z-index:var(--z-toast);align-items:center;gap:var(--space-md);padding:var(--space-sm);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-full);box-shadow:var(--shadow-md);animation:undoBarEnter .4s var(--ease-out) forwards;display:flex;position:fixed;left:50%;transform:translate(-50%)}[dir=rtl] .undo-bar{left:50%;right:auto;transform:translate(-50%)}.undo-bar-exit{animation:undoBarExit .4s var(--ease-in) forwards;pointer-events:none}@keyframes undoBarEnter{0%{transform:translate(-50%,-100%)}to{transform:translate(-50%)}}[dir=rtl] .undo-bar-exit{animation:undoBarExitRtl .4s var(--ease-in) forwards}@keyframes undoBarExit{0%{transform:translate(-50%)}to{transform:translate(-50%,-100%)}}@keyframes undoBarExitRtl{0%{transform:translate(-50%)}to{transform:translate(-50%,-100%)}}.undo-bar-progress-wrap{flex-shrink:0;width:40px;height:40px;position:relative}.undo-bar-circle{width:40px;height:40px;transform:rotate(-90deg)}.undo-bar-circle-bg{fill:none;stroke:var(--gray-200);stroke-width:4px}.undo-bar-circle-fill{fill:none;stroke:var(--primary-color);stroke-width:4px;stroke-linecap:round;transition:stroke-dashoffset 10ms linear}.undo-bar-countdown{font-size:var(--text-sm);color:var(--text-color);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;inset:0}.undo-bar-btn{height:40px;padding:0 var(--space-lg);background:var(--primary-color);color:var(--white);border-radius:var(--radius-full);font-size:var(--text-sm);cursor:pointer;transition:var(--transition-base);border:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.undo-bar-btn:hover{background:var(--primary-hover);transform:translateY(-1px)}@media (max-width:480px){.save-notification{top:var(--space-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);max-width:calc(100vw - 2 * var(--space-md))}}.app-course-workspace{gap:var(--space-md);flex-direction:column;width:100%;display:flex}@media (max-width:768px){.container{padding:var(--space-lg) var(--space-md);gap:var(--space-lg)}.app-title{font-size:var(--text-2xl)}.app-subtitle{font-size:var(--text-base)}}@media (max-width:640px){.container{padding-top:calc(var(--header-clearance) + env(safe-area-inset-top,0px))}}@media (max-width:480px){.container{padding:max(var(--header-clearance), var(--space-md)) var(--space-md) var(--space-md);padding-top:calc(var(--header-clearance) + env(safe-area-inset-top,0px))}}
