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}
: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-back:cubic-bezier(.34,1.56,.64,1);--bp-xs:360px;--bp-sm:480px;--bp-md:768px;--bp-lg:1024px}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth}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:#ffe2da;min-height:100vh;margin:0;padding:0;font-weight:450;overflow-x:hidden}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}.container{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}.app-title{font-size:clamp(var(--text-2xl),4vw,var(--text-4xl));color:var(--primary-color);text-align:center;letter-spacing:-.025em;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;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{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);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}.language-switcher{top:var(--space-md);right:var(--space-md);z-index:10000;align-items:center;gap:var(--space-xs);padding:var(--space-sm)var(--space-md);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-md);color:var(--text-color);font-family:var(--font-rubik),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:var(--text-sm);cursor:pointer;transition:var(--transition-base);background:#fff3;border:1px solid #ffffff4d;flex-shrink:0;font-weight:500;display:inline-flex;position:fixed}[dir=rtl] .language-switcher,html[lang=ar] .language-switcher{font-family:var(--font-bricolage),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.language-switcher:hover{background:#ffffff4d;border-color:#ff795566}.language-switcher-label{font-variant-numeric:tabular-nums}.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:9999;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:9999;align-items:center;gap:var(--space-md);padding:var(--space-sm);-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-full);box-shadow:var(--shadow-md);animation:undoBarEnter .4s var(--ease-out)forwards;background:#fffffff2;border:1px solid #fff9;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))}}.top-box,.table-box{-webkit-backdrop-filter:blur(25px);border-radius:var(--radius-2xl);padding:var(--space-xl);transition:var(--transition-base);background:#ffffff8c;border:1.5px solid #ffffffa6;width:100%;max-width:100%}.form-row{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.form-label{color:var(--text-color);font-weight:650;font-size:var(--text-base);text-align:left;letter-spacing:.025em;text-shadow:0 1px 2px #fffc;min-width:120px}.form-input,.form-select{width:100%;min-width:200px;height:50px;padding:var(--space-md)var(--space-lg);border-radius:var(--radius-md);font-size:var(--text-base);-webkit-backdrop-filter:blur(16px);color:var(--text-color);transition:var(--transition-base);text-align:center;box-sizing:border-box;background:#ffffff59;border:2px solid #ffffff80;outline:none;flex:1;justify-content:center;align-items:center;font-weight:550;display:flex;box-shadow:inset 0 1px #fff9,inset 0 -1px #00000008,0 2px 6px #0000000d}.form-input:focus,.form-select:focus{background:#ffffff40;border-color:#ff795599;transform:translateY(-1px);box-shadow:0 0 0 3px #ff795526}.form-input::placeholder{color:var(--text-muted);font-weight:400}.course-form-suggestions{border-radius:var(--radius-md);z-index:1000;max-height:200px;box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(16px);background:#ffffffe6;border:2px solid #ffffff80;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.course-form-suggestion-item{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;color:var(--text-color);transition:var(--transition-base);padding:10px 15px;font-weight:500;overflow:hidden}.course-form-suggestion-item:not(:last-child){border-bottom:1px solid #cbd5e180}.course-form-suggestion-item:hover{color:var(--primary-600);background-color:#ff79551a}.import-textarea{width:100%;min-height:200px;padding:var(--space-sm)var(--space-md);border-radius:var(--radius-md);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:var(--text-sm);-webkit-backdrop-filter:blur(16px);color:var(--text-color);transition:var(--transition-base);resize:none;box-sizing:border-box;text-align:left;scrollbar-width:none;-ms-overflow-style:none;background:#ffffff59;border:2px solid #ffffff80;outline:none;font-weight:400;overflow:hidden auto;box-shadow:inset 0 1px #fff9,inset 0 -1px #00000008,0 2px 6px #0000000d}.import-textarea::-webkit-scrollbar{display:none}.import-textarea:focus{background:#ffffff40;border-color:#ff795599;transform:translateY(-1px);box-shadow:0 0 0 3px #ff795526}.import-textarea::placeholder{color:var(--text-muted);font-weight:400}.credit-hours-number{padding:var(--space-md);text-align:center;font-size:var(--text-base);color:var(--text-color);cursor:default;background:0 0;border:none;outline:none;flex:1;justify-content:center;align-items:center;width:auto;min-width:40px;font-weight:650;transition:all .2s;display:flex}.credit-arrow{-webkit-backdrop-filter:blur(12px);cursor:pointer;width:40px;min-width:40px;height:100%;transition:var(--transition-base);color:var(--text-secondary);background:#ffffff40;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:inset 0 1px #fff6}.credit-arrow:hover:not(:disabled){color:var(--primary-600);background:#ff795526}.credit-arrow:active:not(:disabled){background:#ff795540;transform:scale(.95)}.credit-arrow:disabled{cursor:not-allowed;opacity:.5;color:var(--text-muted)}.credit-arrow svg{width:20px;height:20px}.credit-arrow-left{border-right:1px solid var(--border-light)}.credit-arrow-right{border-left:1px solid var(--border-light)}.credit-hours-container{flex:1;justify-content:center;align-items:center;min-width:0;height:50px;display:flex;position:relative;overflow:hidden}.credit-hours-display{justify-content:center;align-items:center;width:100%;min-width:0;height:100%;display:flex;position:relative}.credit-hours-current,.credit-hours-pending{font-size:var(--text-base);color:var(--text-color);-webkit-user-select:none;user-select:none;font-weight:650;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute}.credit-hours-current{z-index:2}.credit-hours-pending{z-index:1;opacity:0}.credit-hours-container.slide-left .credit-hours-current{animation:.3s cubic-bezier(.4,0,.2,1) forwards slideOutRight}.credit-hours-container.slide-left .credit-hours-pending{animation:.3s cubic-bezier(.4,0,.2,1) forwards slideInLeft}.credit-hours-container.slide-right .credit-hours-current{animation:.3s cubic-bezier(.4,0,.2,1) forwards slideOutLeft}.credit-hours-container.slide-right .credit-hours-pending{animation:.3s cubic-bezier(.4,0,.2,1) forwards slideInRight}@keyframes slideOutLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100%)}}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-3px)}20%,40%,60%,80%{transform:translate(3px)}}.credit-arrow.shake{animation:.5s cubic-bezier(.4,0,.2,1) shake}.credit-hours-container.resetting .credit-hours-current{animation:.2s ease-in-out pulseScale}@keyframes pulseScale{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.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}.course-table{border-collapse:separate;border-spacing:0;border-radius:var(--radius-md);width:100%;margin:0;overflow:visible}.course-table thead{background:linear-gradient(135deg,var(--primary-500),var(--primary-600))}.course-table tbody{overflow:visible}.table-header-hidden{display:none}.course-table th{padding:var(--space-lg);color:var(--white);font-weight:650;font-size:var(--text-sm);text-align:center;letter-spacing:.025em;text-transform:uppercase;border:none}.course-table th:first-child{border-top-left-radius:var(--radius-md)}.course-table th:last-child{border-top-right-radius:var(--radius-md)}.course-table tbody tr{transition:var(--transition-base);background:#ffffff26;border-bottom:1px solid #ffffff59;position:relative;overflow:visible}.course-table tbody tr:hover:not(.dropdown-open){z-index:1;background:#ffffff40}.course-table tbody tr.dropdown-open{z-index:5;background:#ffffff26;transform:none}.course-table tbody tr:last-child{border-bottom:none}.course-table td{padding:var(--space-lg);text-align:center;color:var(--text-color);border:none;font-weight:550;position:relative}.course-name{color:var(--text-color);font-weight:650}.course-hours{color:var(--text-secondary);font-weight:600}.grade-cell{justify-content:center;align-items:center;gap:8px;display:flex;position:relative}.form-grade-container{box-sizing:border-box;flex:1;justify-content:center;align-items:center;width:100%;min-width:200px;display:flex;position:relative}.form-grade-container .grade-dropdown-input-mode{box-sizing:border-box;flex:1;width:100%;min-width:200px}.grade-badge-container{justify-content:center;align-items:center;display:flex}.course-grade-badge{border-radius:var(--radius-full);font-weight:650;font-size:var(--text-sm);width:46px;min-width:46px;height:30px;min-height:30px;transition:var(--transition-base);text-align:center;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex;color:#fff!important}.empty-grade{background:var(--gray-400);color:var(--white)}.remove-btn{width:var(--remove-btn-size);height:var(--remove-btn-size);min-width:var(--remove-btn-size);min-height:var(--remove-btn-size);cursor:pointer;transition:var(--transition-base);z-index:15;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin:0 auto;padding:0;display:flex;position:relative;overflow:visible}.remove-btn:hover{filter:drop-shadow(0 4px 8px #e5393566);transform:translateY(-1px)}.remove-btn svg{width:calc(var(--remove-btn-size)*.9);height:calc(var(--remove-btn-size)*.9);flex-shrink:0;min-width:24px;min-height:24px;transition:filter .2s}.remove-btn:hover svg{filter:brightness(1.1)}.empty-state{text-align:center;padding:var(--space-3xl);color:var(--text-muted);text-shadow:0 1px 2px #ffffffb3}.empty-state-icon{width:64px;height:64px;margin:0 auto var(--space-lg);color:var(--gray-300)}.empty-state-icon svg{width:100%;height:100%}.empty-state p{font-size:var(--text-lg);margin:0}.gpa-display{-webkit-backdrop-filter:blur(30px);border-radius:var(--radius-xl);padding:var(--space-lg);text-align:center;transition:var(--transition-base);background:#fff9;border:2px solid #ffffffb3;flex-direction:column;justify-content:center;align-items:center;width:200px;max-width:200px;height:200px;margin:0 auto;display:flex}.gpa-label{font-size:var(--text-lg);color:var(--text-secondary);margin-bottom:var(--space-sm);letter-spacing:.025em;text-transform:uppercase;text-shadow:0 1px 2px #fffc;font-weight:650}.gpa-value{font-size:var(--text-3xl);background:linear-gradient(135deg,var(--primary-500),var(--primary-600));-webkit-text-fill-color:transparent;letter-spacing:-.025em;filter:drop-shadow(0 1px 2px #fff9);-webkit-background-clip:text;background-clip:text;margin:0;font-weight:700}.gpa-scale{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-sm);text-shadow:0 1px 2px #fff9;font-weight:500}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.grade-dropdown{width:100%;display:inline-block;position:relative}.grade-dropdown-input-mode{width:100%;display:block}.grade-dropdown-trigger{background:var(--gray-100);width:24px;height:24px;color:var(--gray-600);font-size:var(--text-sm);cursor:pointer;transition:var(--transition-base);text-align:center;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:8px;padding:0;font-weight:600;display:inline-flex;position:relative}.grade-dropdown-trigger:hover{background:var(--gray-200)}.grade-dropdown-trigger:active{transform:translateY(0)}.grade-dropdown-trigger-compact{width:24px;min-width:auto;height:24px;box-shadow:var(--shadow-xs);padding:0}.grade-dropdown-text{flex-shrink:0}.grade-dropdown-arrow{transition:var(--transition-base);flex-shrink:0;width:8px;height:8px}.grade-dropdown-arrow.open{transform:rotate(180deg)}.grade-dropdown-menu{z-index:100000;border:1px solid var(--gray-200);border-radius:var(--radius-lg);width:220px;animation:dropdownSlideIn .25s var(--ease-out);box-shadow:var(--shadow-md);isolation:isolate;pointer-events:auto;background:#fff;margin-top:0;position:absolute;overflow:hidden}.grade-dropdown-content{max-height:300px;padding:var(--space-md);scrollbar-width:thin;scrollbar-color:var(--gray-300)transparent;overflow-y:auto}.grade-dropdown-content::-webkit-scrollbar{width:6px}.grade-dropdown-content::-webkit-scrollbar-track{background:0 0}.grade-dropdown-content::-webkit-scrollbar-thumb{background-color:var(--gray-300);border-radius:3px}.grade-dropdown-option{width:100%;padding:var(--space-md)var(--space-lg);border-radius:var(--radius-md);font-size:var(--text-sm);text-align:center;cursor:pointer;transition:var(--transition-fast);border:none;justify-content:center;align-items:center;height:36px;margin-bottom:4px;font-weight:600;display:flex;color:#fff!important}.grade-dropdown-option:last-child{margin-bottom:0}.grade-dropdown-option:hover{box-shadow:var(--shadow-sm);filter:brightness(1.05);transform:scale(1.02)}.grade-dropdown-option:hover:after{content:"";z-index:-1;position:absolute;inset:0}.grade-dropdown-separator{background:var(--gray-200);border-radius:var(--radius-full);height:1px;margin:6px 12px}@keyframes dropdownSlideIn{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-width:768px){.grade-dropdown-trigger{width:20px;min-width:20px;height:20px;font-size:var(--text-xs);padding:0}.grade-dropdown-option{padding:var(--space-xs)var(--space-sm);font-size:var(--text-xs);height:28px}.grade-dropdown-menu{width:140px;box-shadow:0 3px 10px #00000026}.course-grade-badge{width:40px;min-width:40px;height:28px;font-size:var(--text-xs);padding:0}}@media (max-width:480px){.grade-dropdown-menu{width:120px}.grade-dropdown-option{height:auto;min-height:44px;padding:var(--space-sm)var(--space-md)}.course-table .grade-dropdown-trigger{width:44px;min-width:44px;height:44px;min-height:44px}.course-grade-badge{width:40px;min-width:40px;height:28px;font-size:var(--text-xs);padding:0}}@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)}.top-box,.table-box{padding:var(--space-lg);border-radius:var(--radius-xl)}.form-row{align-items:stretch;gap:var(--space-sm);flex-direction:column}.form-label{text-align:left;min-width:auto;font-size:var(--text-lg)}.form-input,.form-select,.credit-hours-input,.grade-dropdown-input-mode .grade-dropdown-trigger.form-input-style-trigger{box-sizing:border-box;width:100%;min-width:100%;max-width:100%}.credit-hours-input,.grade-dropdown-input-mode .grade-dropdown-trigger.form-input-style-trigger{margin:0;display:flex}.button-group{gap:var(--space-sm);flex-direction:column}.btn-primary,.btn-secondary{width:100%;min-height:44px}.modal-footer .btn-primary,.modal-footer .btn-secondary{min-height:44px}.course-table th,.course-table td{padding:var(--space-md)var(--space-sm);font-size:var(--text-sm)}.gpa-display{max-width:100%}.modal-content{margin:var(--space-lg);padding:var(--space-xl)var(--space-xl);border-radius:var(--radius-xl);width:calc(100% - 2*var(--space-lg));max-width:500px}}@media (max-width:480px){.container{padding:var(--space-md)}.modal-content{margin:var(--space-md);padding:var(--space-lg);border-radius:var(--radius-lg);width:calc(100% - 2*var(--space-md))}.course-table th:first-child,.course-table td:first-child{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.form-input,.form-select,.credit-hours-input,.grade-dropdown-input-mode .grade-dropdown-trigger.form-input-style-trigger{height:45px;padding:var(--space-sm)var(--space-md);box-sizing:border-box;width:100%;min-width:0}.credit-hours-number{min-width:30px;font-size:calc(var(--text-base) - 1px);padding:var(--space-sm)}.credit-arrow{width:36px;min-width:36px}.gpa-value{font-size:var(--text-3xl)}.remove-btn svg{width:16px;height:16px}}@media (max-width:360px){.form-label{min-width:0}.modal-content{box-sizing:border-box;max-width:100%}.modal-overlay{padding:var(--space-sm)}}@media (prefers-reduced-motion:reduce){body{background-attachment:local;animation:none}.credit-hours-number.sliding-out-left,.credit-hours-number.sliding-out-right,.credit-hours-number.sliding-in-left,.credit-hours-number.sliding-in-right,.credit-hours-number.shake,.credit-hours-number.pulse{transition:none;animation:none}.top-box,.table-box,.gpa-display,.form-input,.form-select,.btn-primary,.btn-secondary{transition:none;transform:none}}@media (max-width:480px){.top-box,.table-box,.gpa-display{-webkit-backdrop-filter:blur(20px);background:#ffffff73;border:1.5px solid #fff9}.form-input,.form-select,.credit-hours-input,.grade-dropdown-input-mode .grade-dropdown-trigger.form-input-style-trigger{-webkit-backdrop-filter:blur(15px);background:#ffffff4d;border:1.5px solid #fff6;width:100%}.credit-arrow{aspect-ratio:1;flex-shrink:0;justify-content:center;align-items:center;width:40px;min-width:40px;height:100%;display:flex}.paste-btn{-webkit-backdrop-filter:blur(12px);background:#ffffff59;border:1px solid #ffffff73}.remove-btn{-webkit-backdrop-filter:none;background:0 0;border:none}}@media (prefers-contrast:high){.top-box,.table-box,.gpa-display,.form-input,.form-select,.credit-hours-input,.grade-dropdown-input-mode .grade-dropdown-trigger.form-input-style-trigger{background:var(--white);-webkit-backdrop-filter:none;border:2px solid var(--border-color)}}.loading{opacity:.6;pointer-events:none}.loading:after{content:"";border:2px solid var(--primary-color);border-top-color:#0000;border-radius:50%;width:20px;height:20px;margin:-10px 0 0 -10px;animation:1s linear infinite spin;position:absolute;top:50%;left:50%}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.level-container,.term-container,.table-box .level-container,.table-box .term-group .term-container{transition-duration:.5s!important}}.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)}}.grade-dropdown-input-mode .grade-dropdown-trigger.form-input-style-trigger{width:100%;min-width:200px;height:50px;padding:var(--space-md)var(--space-lg);border-radius:var(--radius-md);font-size:var(--text-base);-webkit-backdrop-filter:blur(16px);color:var(--text-color);transition:var(--transition-base);text-align:center;box-sizing:border-box;background:#ffffff59;border:2px solid #ffffff80;outline:none;flex:1;justify-content:center;align-items:center;margin:0;font-weight:550;display:flex;box-shadow:inset 0 1px #fff9,inset 0 -1px #00000008,0 2px 6px #0000000d}.grade-dropdown-input-mode .grade-dropdown-trigger.form-input-style-trigger:focus,.grade-dropdown-input-mode .grade-dropdown-trigger.form-input-style-trigger:hover{background:#ffffff40;border-color:#ff795599;transform:translateY(-1px);box-shadow:0 0 0 3px #ff795526}.grade-dropdown-input-text{text-align:center;color:var(--text-color);flex-grow:1;justify-content:center;width:100%;font-size:1.2rem;font-weight:550;display:flex}.grade-dropdown-input-mode .grade-dropdown-arrow{margin-left:var(--space-md);width:14px;height:14px}.modal-overlay{-webkit-backdrop-filter:blur(12px);z-index:9999999;box-sizing:border-box;pointer-events:auto;opacity:0;visibility:hidden;background:#000000b3;justify-content:center;align-items:center;width:100vw;height:100vh;margin:0;padding:32px;transition:opacity .3s,visibility .3s;display:flex;position:fixed;inset:0;overflow:auto}.modal-overlay.modal-visible{opacity:1;visibility:visible;animation:.3s forwards fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}body.modal-open{overflow:hidden}.modal-content{-webkit-backdrop-filter:blur(25px);border-radius:var(--radius-2xl);scrollbar-width:none;-ms-overflow-style:none;width:100%;max-width:600px;max-height:80vh;transition:transform .3s var(--ease-back);animation:slideUp .3s var(--ease-back);background:#fffffff2;border:1.5px solid #fff9;flex-direction:column;margin:0 auto;padding:0;display:flex;overflow-y:auto;transform:translateY(0);box-shadow:0 10px 30px #0000001a}.modal-content.import-modal{background:var(--white);-webkit-backdrop-filter:none;border:1px solid var(--border-color);overflow:hidden}.modal-content.import-modal .modal-body{flex:auto;min-height:0;overflow-y:auto}.modal-content.import-modal .modal-footer{padding:var(--space-sm)var(--space-lg)var(--space-lg);flex-shrink:0;justify-content:flex-end;align-items:center;margin-top:0;display:flex}.modal-content.import-modal .modal-footer .button-group{justify-content:flex-end;margin:0}.modal-content.import-modal .modal-footer .btn-primary{border-radius:var(--radius-md)}.modal-content::-webkit-scrollbar{display:none}.modal-header{margin-bottom:var(--space-sm);padding:var(--space-xl)var(--space-2xl)var(--space-md);border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--text-xl);color:var(--text-color);margin:0;font-weight:700}.modal-close{padding:var(--space-xs);cursor:pointer;background:0 0;border:none}.modal-body{padding:var(--space-sm)var(--space-2xl)var(--space-xl)}.modal-description{margin-bottom:var(--space-lg);color:var(--text-secondary);font-size:var(--text-base);line-height:1.5}.modal-footer{padding:var(--space-md)var(--space-2xl);border-top:1px solid var(--border-light);flex-shrink:0;justify-content:flex-end;margin-top:auto;display:flex}.modal-footer .button-group{gap:var(--space-md);justify-content:flex-end;display:flex}.modal-footer .btn-primary,.modal-footer .btn-secondary{min-width:120px}.textarea-container{margin-bottom:var(--space-sm);width:100%;position:relative}.import-btn,.paste-btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-md);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary);transition:var(--transition-base);cursor:pointer;background:#ffffff26;border:1px solid #ffffff40;display:inline-flex;position:relative;overflow:hidden}.import-btn:before,.paste-btn:before{content:"";width:100%;height:100%;transition:var(--transition-slow);background:linear-gradient(90deg,#0000,#fff3,#0000);position:absolute;top:0;left:-100%}.import-btn:hover:before,.paste-btn:hover:before{left:100%}.import-btn:hover{background:#ffffff40;transform:translateY(-1px)}.import-btn:active{transform:translateY(0)}.paste-btn{top:var(--space-sm);right:var(--space-sm);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-sm);padding:var(--space-sm)var(--space-md);align-items:center;gap:var(--space-xs);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary);transition:var(--transition-base);z-index:2;background:#ffffff40;border:1px solid #fff3;display:flex;position:absolute;box-shadow:0 2px 8px #0000001a}.paste-btn:hover{color:var(--primary-color);background:#ffffff59;border-color:#ff79554d;transform:translateY(-1px)}.paste-btn svg{width:20px;height:20px;margin-right:var(--space-xs)}
.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){pointer-events:none!important;visibility:hidden!important;height:0!important;position:absolute!important;overflow:hidden!important}.level-container.collapsed,.term-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:cubic-bezier(.34,1.56,.64,1)!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){.course-table td:first-child{white-space:normal;word-break:break-word;text-align:left;width:auto;max-width:none;padding-left:8px}.course-name{width:100%;padding:0;font-size:.85rem;line-height:1.3;display:block}.course-table td{padding:var(--space-md)var(--space-sm)}}.modal-overlay{justify-content:center!important;align-items:center!important;padding:16px!important;overflow:hidden!important}.modal-content{flex-direction:column!important;width:95%!important;max-width:500px!important;max-height:85vh!important;margin:0 auto!important;display:flex!important;overflow:hidden!important}.modal-body{-webkit-overflow-scrolling:touch!important;flex:1!important;overflow-y:auto!important}.import-textarea{font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace!important}@media (max-width:480px){.modal-overlay{padding:12px!important}.modal-content{border-radius:var(--radius-lg)!important;width:100%!important;margin:0!important;padding:0!important}.modal-header{margin-bottom:8px!important;padding:12px 16px!important}.modal-body{padding:8px 16px 16px!important}.modal-title{font-size:1.2rem!important}.modal-description{margin-bottom:12px!important;font-size:.9rem!important}.import-textarea{min-height:160px!important;padding:8px!important;font-size:.8rem!important;line-height:1.4!important}.modal-footer{padding:12px 16px!important}.modal-footer .button-group{flex-wrap:nowrap!important;justify-content:space-between!important;width:100%!important}.modal-footer .btn-primary,.modal-footer .btn-secondary{flex:1!important;min-width:0!important;min-height:44px!important;margin:0 4px!important;padding:8px 12px!important;font-size:.9rem!important}.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{width:20px!important;min-width:20px!important;height:20px!important}.group-toggle svg{width:14px!important;height:14px!important}.term-group{margin-left:var(--space-sm)!important;margin-bottom:0!important}.term-group:not(:first-child){margin-top:5px!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 (prefers-reduced-motion:reduce){.table-container:not(.level-container):not(.term-container),.table-container.expanded:not(.level-container):not(.term-container),.table-container.collapsed:not(.level-container):not(.term-container){transition:none!important;animation:none!important}.table-container.expanded:not(.level-container):not(.term-container){opacity:1!important;max-height:2000px!important;transform:translateY(0)!important}.table-container.collapsed:not(.level-container):not(.term-container){opacity:0!important;visibility:hidden!important;max-height:0!important}.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{transition:opacity .1s!important;animation:none!important}.level-container,.term-container,.table-box .level-container,.table-box .term-group .term-container{transition-duration:.35s!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{min-height:44px!important;margin:0 2px!important;padding:6px 10px!important;font-size:.8rem!important}.app-subtitle{display:none!important}.course-table td{padding:var(--space-sm)4px!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{filter:none!important;transform:none!important}.remove-btn:hover svg{filter:brightness(1.2)!important}td .remove-btn{opacity:1!important}}
