:root{--bg:#060b15;--bg2:#0c1422;--card:#111c2e;--card2:#162035;--border:#1e3050;--accent:#29b6f6;--accent-dk:#0288d1;--accent-glow:#29b6f61f;--txt:#dde6f0;--txt2:#7e9ab5;--txt3:#445a72;--success:#4dd0e1;--warn:#ffb74d;--danger:#ef5350;--aplus-c:#ce93d8;--a-c:#29b6f6;--b-c:#4dd0a8;--c-c:#ff8a65;--r:12px;--r-sm:8px;--tr:.2s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--txt);background-image:radial-gradient(at 20% 20%,#29b6f60a 0%,#0000 55%),radial-gradient(at 80% 80%,#29b6f60a 0%,#0000 55%);min-height:100vh;font-family:Noto Sans JP,Inter,sans-serif;overflow-x:hidden}.header{z-index:100;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#08152a 0%,#0d1f3c 100%);justify-content:space-between;align-items:center;height:76px;padding:0 24px;display:flex;position:sticky;top:0;box-shadow:0 2px 20px #00000080}.header-left{align-items:baseline;gap:10px;display:flex}.logo{letter-spacing:-.5px;background:linear-gradient(120deg, #fff 0%, var(--accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:22px;font-weight:700}.logo-sub{color:var(--txt3);letter-spacing:1px;font-size:11px}.header-center{flex:1;justify-content:center;display:flex}.gpa-display{border:1px solid var(--border);background:#ffffff0a;border-radius:50px;align-items:center;gap:14px;padding:8px 20px;display:flex}.gpa-block{flex-direction:column;align-items:center;gap:1px;display:flex}.gpa-label{color:var(--txt3);text-transform:uppercase;letter-spacing:.6px;font-size:9px}.gpa-value{color:#fff;letter-spacing:-.5px;font-family:Inter,monospace;font-size:18px;font-weight:700}.gpa-value.accent{color:var(--accent)}.gpa-value.theo{color:#a5d6a7}.gpa-divider{color:var(--txt3);font-size:18px}.gpa-gap-sub{text-align:center;min-height:14px;font-size:10px;font-weight:600}.gap-ok{color:var(--success)}.gap-bad{color:var(--danger)}.gap-neu{color:var(--txt3)}.header-right{gap:8px;display:flex}.main{max-width:800px;margin:0 auto;padding:24px 16px 120px}.year-tabs{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);gap:4px;margin-bottom:12px;padding:6px;display:flex}.year-tab{color:var(--txt2);border-radius:var(--r-sm);cursor:pointer;transition:all var(--tr);background:0 0;border:none;flex:1;padding:10px;font-family:inherit;font-size:14px;font-weight:500;position:relative;overflow:hidden}.year-tab.active{background:var(--accent-dk);color:#fff;box-shadow:0 2px 12px #0288d173}.year-tab:not(.active):hover{background:var(--accent-glow);color:var(--accent)}.sem-tabs{gap:8px;margin-bottom:20px;display:flex}.sem-tab{border:1px solid var(--border);color:var(--txt2);cursor:pointer;transition:all var(--tr);background:0 0;border-radius:50px;padding:8px 28px;font-family:inherit;font-size:13px;font-weight:500;position:relative;overflow:hidden}.sem-tab.active{border-color:var(--accent);color:var(--accent);background:var(--accent-glow)}.sem-tab:not(.active):hover{border-color:var(--txt2);color:var(--txt)}.summary-card{background:var(--border);border-radius:var(--r);gap:1px;margin-bottom:20px;display:flex;overflow:hidden}.summary-item{background:var(--card);flex-direction:column;flex:1;align-items:center;gap:4px;padding:16px 12px;display:flex}.summary-label{color:var(--txt3);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.summary-value{color:var(--accent);font-family:Inter,monospace;font-size:22px;font-weight:700}.course-list{flex-direction:column;gap:10px;display:flex}.sort-bar{align-items:center;gap:8px;margin-bottom:14px;display:flex}.sort-label{color:var(--txt3);white-space:nowrap;font-size:12px}.sort-btn{border:1px solid var(--border);color:var(--txt2);cursor:pointer;transition:all var(--tr);background:0 0;border-radius:50px;padding:5px 14px;font-family:inherit;font-size:12px;position:relative;overflow:hidden}.sort-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-glow)}.sort-btn:not(.active):hover{border-color:var(--txt2);color:var(--txt)}.cat-header{color:var(--txt2);letter-spacing:.5px;align-items:center;gap:8px;margin-top:8px;padding:4px 4px 6px;font-size:12px;font-weight:600;display:flex}.cat-header:first-child{margin-top:0}.cat-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.course-card{--cat-color:var(--accent);--cat-bg:#29b6f60d}.course-card[data-cat=math]{--cat-color:#4fc3f7;--cat-bg:#4fc3f70f}.course-card[data-cat=science]{--cat-color:#81c784;--cat-bg:#81c7840f}.course-card[data-cat=language]{--cat-color:#f06292;--cat-bg:#f062920f}.course-card[data-cat=humanities]{--cat-color:#ffb74d;--cat-bg:#ffb74d0f}.course-card[data-cat=social]{--cat-color:#ce93d8;--cat-bg:#ce93d80f}.course-card[data-cat=pe]{--cat-color:#4db6ac;--cat-bg:#4db6ac0f}.course-card[data-cat=info]{--cat-color:#dce775;--cat-bg:#dce7750f}.course-card[data-cat=other]{--cat-color:#90a4ae;--cat-bg:#90a4ae0f}.course-card{background:linear-gradient(120deg, var(--cat-bg) 0%, var(--card) 55%);border:1px solid var(--border);border-radius:var(--r);cursor:pointer;transition:border-color var(--tr), transform var(--tr), box-shadow var(--tr);padding:16px 18px;position:relative;overflow:hidden}.course-card:before{content:"";background:var(--cat-color);opacity:.7;width:3px;transition:opacity var(--tr);border-radius:3px 0 0 3px;position:absolute;top:0;bottom:0;left:0}.course-card:hover{border-color:var(--cat-color);transform:translateY(-1px);box-shadow:0 4px 20px #00000026}.course-card:hover:before{opacity:1}.course-card-top{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:12px;display:flex}.course-name{color:var(--txt);font-size:15px;font-weight:600}.badges{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.badge{white-space:nowrap;border-radius:50px;padding:3px 9px;font-size:11px;font-weight:500}.badge-cat{color:var(--txt2);background:#ffffff0f}.badge-cred{color:var(--accent);background:#29b6f61f}.badge-grade{padding:3px 10px;font-size:12px;font-weight:700}.grade-aplus{color:var(--aplus-c);background:#ce93d82e}.grade-a{color:var(--a-c);background:#29b6f62e}.grade-b{color:var(--b-c);background:#4dd0a82e}.grade-c{color:var(--c-c);background:#ff8a652e}.grade-fail{color:var(--danger);background:#ef53501f}.grade-none{color:var(--txt3);background:#ffffff0d}.course-card-bottom{align-items:center;gap:12px;display:flex}.score-wrapper{align-items:center;gap:8px;display:flex}.score-label{color:var(--txt3);font-size:12px}.score-input{border:1px solid var(--border);width:68px;color:var(--txt);text-align:center;transition:border-color var(--tr), background var(--tr);background:#ffffff0a;border-radius:8px;padding:6px 10px;font-family:Inter,monospace;font-size:14px}.score-input:focus{border-color:var(--accent);background:var(--accent-glow);outline:none}.course-gap{align-items:center;gap:3px;margin-left:auto;font-size:12px;font-weight:600;display:flex}.empty-state{text-align:center;color:var(--txt3);padding:64px 20px;display:none}.empty-state .material-icons{opacity:.4;margin-bottom:12px;font-size:52px;display:block}.empty-state p{margin-bottom:4px;font-size:15px}.empty-sub{opacity:.7;font-size:13px}.fab{background:linear-gradient(135deg, var(--accent-dk) 0%, var(--accent) 100%);color:#fff;cursor:pointer;transition:transform var(--tr), box-shadow var(--tr);z-index:50;border:none;border-radius:50px;align-items:center;gap:8px;padding:14px 26px;font-family:inherit;font-size:15px;font-weight:600;display:flex;position:fixed;bottom:32px;right:32px;overflow:hidden;box-shadow:0 4px 24px #29b6f666}.fab:hover{transform:translateY(-2px);box-shadow:0 8px 32px #29b6f680}.fab:active{transform:translateY(0)}.btn-icon{width:40px;height:40px;color:var(--txt2);cursor:pointer;transition:all var(--tr);background:#ffffff0d;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.btn-icon:hover{background:var(--accent-glow);color:var(--accent)}.btn-primary{background:linear-gradient(135deg, var(--accent-dk), var(--accent));color:#fff;border-radius:var(--r-sm);cursor:pointer;transition:opacity var(--tr), transform var(--tr);border:none;padding:10px 24px;font-family:inherit;font-size:14px;font-weight:600;position:relative;overflow:hidden}.btn-primary:hover{opacity:.88;transform:translateY(-1px)}.btn-secondary{color:var(--txt2);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:all var(--tr);background:0 0;padding:10px 24px;font-family:inherit;font-size:14px;font-weight:500;position:relative;overflow:hidden}.btn-secondary:hover{background:#ffffff0d}.btn-danger{color:var(--danger);border-radius:var(--r-sm);cursor:pointer;transition:all var(--tr);background:#ef53501a;border:1px solid #ef53504d;padding:10px 24px;font-family:inherit;font-size:14px;font-weight:600;position:relative;overflow:hidden}.btn-danger:hover{background:#ef535033}.ripple-wave{pointer-events:none;background:#ffffff47;border-radius:50%;animation:.65s linear forwards ripple-anim;position:absolute;transform:scale(0)}@keyframes ripple-anim{to{opacity:0;transform:scale(4)}}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000b8;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.modal-overlay.open{display:flex}.modal{border:1px solid var(--border);background:#111827;border-radius:16px;width:100%;max-width:480px;animation:.22s modal-in;box-shadow:0 24px 64px #000000a6}@keyframes modal-in{0%{opacity:0;transform:scale(.94)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{justify-content:space-between;align-items:center;padding:20px 20px 0;display:flex}.modal-header h2{color:#fff;font-size:18px;font-weight:600}.modal-body{flex-direction:column;gap:18px;max-height:62vh;padding:20px;display:flex;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:16px 20px;display:flex}#signout-confirm-modal .modal-footer{justify-content:space-between}.form-group{flex-direction:column;gap:8px;display:flex}.form-label{color:var(--txt2);font-size:13px;font-weight:500}.required{color:var(--accent)}.form-input{border:1px solid var(--border);border-radius:var(--r-sm);color:var(--txt);transition:border-color var(--tr), background var(--tr);background:#ffffff0d;padding:10px 14px;font-family:inherit;font-size:14px}.form-input:focus{border-color:var(--accent);background:var(--accent-glow);outline:none}.form-input option{background:#1a2740}.form-hint{color:var(--txt3);min-height:18px;font-size:12px}.slider-group{align-items:center;gap:14px;display:flex}.slider{-webkit-appearance:none;background:var(--border);border-radius:4px;outline:none;flex:1;height:4px}.slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;width:22px;height:22px;box-shadow:0 0 0 4px var(--accent-glow);transition:box-shadow var(--tr);border-radius:50%}.slider::-webkit-slider-thumb:hover{box-shadow:0 0 0 9px var(--accent-glow)}.slider-value{color:var(--accent);text-align:right;min-width:44px;font-family:Inter,monospace;font-size:18px;font-weight:700}.credit-buttons{gap:8px;display:flex}.credit-btn{border:1px solid var(--border);color:var(--txt2);border-radius:var(--r-sm);cursor:pointer;transition:all var(--tr);background:0 0;flex:1;padding:10px;font-family:inherit;font-size:14px;font-weight:500;position:relative;overflow:hidden}.credit-btn.active{border-color:var(--accent);background:var(--accent-glow);color:var(--accent)}.credit-btn:not(.active):hover{border-color:var(--txt2);color:var(--txt)}.gpa-buttons{gap:8px;display:flex}.gpa-btn{border:1px solid var(--border);color:var(--txt2);border-radius:var(--r-sm);cursor:pointer;transition:all var(--tr);background:0 0;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 6px;font-family:inherit;display:flex;position:relative;overflow:hidden}.gpa-btn-val{font-family:Inter,monospace;font-size:15px;font-weight:700;line-height:1}.gpa-btn-grade{color:var(--txt3);transition:color var(--tr);font-size:11px}.gpa-btn.active{border-color:var(--accent);background:var(--accent-glow);color:var(--accent)}.gpa-btn.active .gpa-btn-grade{color:var(--accent);opacity:.7}.gpa-btn:not(.active):hover{border-color:var(--txt2);color:var(--txt)}.gpa-btn:not(.active):hover .gpa-btn-grade{color:var(--txt2)}.login-overlay{z-index:300;background:linear-gradient(160deg,#f0f8ff 0%,#fff 55%,#eaf5ff 100%);justify-content:center;align-items:center;padding:0 24px;display:none;position:fixed;inset:0;overflow:hidden}.login-overlay.visible{display:flex}.login-overlay:before{content:"UTools";letter-spacing:-10px;background:linear-gradient(120deg,#0277bd12 0%,#29b6f617 100%);-webkit-text-fill-color:transparent;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-background-clip:text;background-clip:text;font-size:220px;font-weight:900;line-height:1;position:absolute;bottom:-40px;left:50%;transform:translate(-50%)}.login-orb{pointer-events:none;border-radius:50%;position:absolute}.login-orb--1{background:radial-gradient(circle,#29b6f621 0%,#0000 65%);width:520px;height:520px;animation:10s ease-in-out infinite alternate orb-drift;top:-180px;right:-160px}.login-orb--2{background:radial-gradient(circle,#0288d117 0%,#0000 65%);width:400px;height:400px;animation:13s ease-in-out infinite alternate-reverse orb-drift;bottom:-130px;left:-130px}.login-orb--3{background:radial-gradient(circle,#4dd0e124 0%,#0000 65%);width:220px;height:220px;animation:7s ease-in-out -4s infinite alternate orb-drift;top:42%;left:6%}@keyframes orb-drift{0%{transform:translateY(0)scale(1)}to{transform:translateY(-28px)scale(1.07)}}.login-card{-webkit-backdrop-filter:blur(24px);background:#ffffffd1;border:1px solid #fffffff2;border-radius:28px;flex-direction:column;align-items:center;gap:20px;width:100%;max-width:320px;padding:44px 36px;animation:.7s cubic-bezier(.34,1.4,.64,1) both card-rise;display:flex;position:relative;box-shadow:0 8px 40px #29b6f61f,0 2px 10px #0000000f}@keyframes card-rise{0%{opacity:0;transform:translateY(40px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.login-logo-area{flex-direction:column;align-items:center;gap:10px;display:flex}.login-logo-mark{color:#fff;background:linear-gradient(135deg,#0288d1 0%,#29b6f6 100%);border-radius:18px;justify-content:center;align-items:center;width:62px;height:62px;font-size:30px;font-weight:800;animation:.6s cubic-bezier(.34,1.56,.64,1) 50ms both mark-pop;display:flex;box-shadow:0 8px 28px #29b6f652}@keyframes mark-pop{0%{opacity:0;transform:scale(.4)rotate(-15deg)}to{opacity:1;transform:scale(1)rotate(0)}}.login-logo{background:linear-gradient(120deg,#0277bd 0%,#29b6f6 55%,#4dd0e1 100%);-webkit-text-fill-color:transparent;letter-spacing:-2px;-webkit-background-clip:text;background-clip:text;font-size:44px;font-weight:800;line-height:1;animation:.5s .18s both fade-up}.login-tagline{color:#8fafc8;letter-spacing:2.5px;text-transform:uppercase;font-size:11px;font-weight:500;animation:.5s .26s both fade-up}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.login-desc{color:#6a8aa4;text-align:center;font-size:14px;line-height:1.7;animation:.5s .34s both fade-up}.btn-google{color:#3c4043;cursor:pointer;transition:transform var(--tr), box-shadow var(--tr);background:#fff;border:1.5px solid #00000017;border-radius:50px;justify-content:center;align-items:center;gap:12px;width:100%;padding:13px 28px;font-family:inherit;font-size:15px;font-weight:600;animation:.5s .44s both fade-up;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 10px #00000014}.btn-google:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0000001f}.btn-google:active{transform:translateY(0)}.login-error{color:var(--danger);text-align:center;min-height:18px;font-size:13px;line-height:1.5}.loading-overlay{z-index:250;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#060b15d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.user-area{align-items:center;gap:8px;display:flex}.user-avatar{border:2px solid var(--accent);object-fit:cover;border-radius:50%;width:32px;height:32px}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent-dk)}.modal-section{flex-direction:column;gap:18px;display:flex}.grade-type-toggle{border:1px solid var(--border);border-radius:var(--r-sm);display:flex;overflow:hidden}.grade-type-btn{color:var(--txt2);cursor:pointer;transition:all var(--tr);background:0 0;border:none;flex:1;padding:9px 12px;font-family:inherit;font-size:13px;font-weight:500}.grade-type-btn:not(:last-child){border-right:1px solid var(--border)}.grade-type-btn.active{background:var(--accent-glow);color:var(--accent)}.grade-type-btn:not(.active):hover{color:var(--txt);background:#ffffff0a}.passfail-buttons{gap:8px;display:flex}.passfail-btn{border:1px solid var(--border);color:var(--txt2);border-radius:var(--r-sm);cursor:pointer;transition:all var(--tr);background:0 0;flex:1;padding:12px;font-family:inherit;font-size:14px;font-weight:600;position:relative;overflow:hidden}.passfail-btn[data-pf=pass].active{border-color:var(--success);color:var(--success);background:#4dd0e11f}.passfail-btn[data-pf=fail].active{border-color:var(--danger);color:var(--danger);background:#ef53501f}.passfail-btn:not(.active):hover{border-color:var(--txt2);color:var(--txt)}.grade-pass{color:var(--success);background:#4dd0e12e}.badge-type{color:var(--txt3);background:#ffffff0f;font-size:11px}.drawer-overlay{z-index:150;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;display:none;position:fixed;inset:0}.drawer-overlay.open{display:block}.nav-drawer{border-right:1px solid var(--border);z-index:160;background:linear-gradient(#0d1f3c 0%,#081526 100%);flex-direction:column;width:240px;transition:transform .26s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:4px 0 32px #00000080}.nav-drawer.open{transform:translate(0)}.nav-drawer-header{border-bottom:1px solid var(--border);padding:28px 20px 18px}.nav-drawer-logo{background:linear-gradient(120deg, #fff 0%, var(--accent) 100%);-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;background-clip:text;margin-bottom:2px;font-size:20px;font-weight:700}.nav-drawer-sub{color:var(--txt3);letter-spacing:1px;font-size:11px}.nav-items{padding:12px 8px}.nav-item{border-radius:var(--r-sm);cursor:pointer;color:var(--txt2);transition:all var(--tr);text-align:left;background:0 0;border:none;align-items:center;gap:14px;width:100%;padding:12px 14px;font-family:inherit;font-size:15px;font-weight:500;display:flex;position:relative;overflow:hidden}.nav-item .material-icons{font-size:22px}.nav-item:hover,.nav-item.active{background:var(--accent-glow);color:var(--accent)}.task-list{flex-direction:column;gap:10px;display:flex}.task-card{--cat-color:var(--accent);--cat-bg:#29b6f60d;background:linear-gradient(120deg, var(--cat-bg) 0%, var(--card) 55%);border:1px solid var(--border);border-radius:var(--r);cursor:pointer;transition:border-color var(--tr), transform var(--tr), box-shadow var(--tr);padding:14px 16px 14px 50px;position:relative;overflow:hidden}.task-card:before{content:"";background:var(--cat-color);opacity:.7;width:3px;transition:opacity var(--tr);border-radius:3px 0 0 3px;position:absolute;top:0;bottom:0;left:0}.task-card:hover{border-color:var(--cat-color);transform:translateY(-1px);box-shadow:0 4px 20px #00000026}.task-card:hover:before{opacity:1}.task-card--done{opacity:.5}.task-card--done .task-name{text-decoration:line-through}.task-check-btn{cursor:pointer;width:30px;height:30px;color:var(--txt3);transition:color var(--tr), background var(--tr);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.task-check-btn:hover{color:var(--cat-color);background:var(--cat-bg)}.task-check-btn .material-icons{font-size:22px}.task-card--done .task-check-btn{color:var(--success)}.task-card-top{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.task-name{color:var(--txt);font-size:15px;font-weight:600}.task-badges{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.task-cat-badge{border-radius:50px;padding:3px 9px;font-size:11px;font-weight:600}.task-priority{border-radius:50px;padding:3px 9px;font-size:11px;font-weight:700}.task-priority--high{color:#ef5350;background:#ef535026}.task-priority--medium{color:#ffb74d;background:#ffb74d26}.task-priority--low{color:#90a4ae;background:#90a4ae26}.task-card-bottom{flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px;display:flex}.task-deadline{color:var(--txt3);align-items:center;gap:3px;font-size:12px;display:flex}.task-deadline .material-icons{font-size:14px}.task-deadline--overdue{color:var(--danger)}.task-memo{color:var(--txt3);white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:12px;overflow:hidden}.done-divider{color:var(--txt3);align-items:center;gap:10px;padding:14px 4px 6px;font-size:12px;font-weight:600;display:flex}.done-divider:before,.done-divider:after{content:"";background:var(--border);flex:1;height:1px}.priority-buttons{gap:8px;display:flex}.priority-btn{border:1px solid var(--border);color:var(--txt2);border-radius:var(--r-sm);cursor:pointer;transition:all var(--tr);background:0 0;flex:1;padding:10px;font-family:inherit;font-size:14px;font-weight:600;position:relative;overflow:hidden}.priority-btn[data-priority=high].active{color:#ef5350;background:#ef535026;border-color:#ef5350}.priority-btn[data-priority=medium].active{color:#ffb74d;background:#ffb74d26;border-color:#ffb74d}.priority-btn[data-priority=low].active{color:#90a4ae;background:#90a4ae26;border-color:#90a4ae}.priority-btn:not(.active):hover{border-color:var(--txt2);color:var(--txt)}.color-palette{flex-wrap:wrap;gap:10px;display:flex}.color-swatch{cursor:pointer;width:34px;height:34px;transition:transform var(--tr), border-color var(--tr);border:3px solid #0000;border-radius:50%;flex-shrink:0}.color-swatch:hover{transform:scale(1.15)}.color-swatch.active{border-color:#fff;transform:scale(1.1);box-shadow:0 0 0 2px #ffffff4d}.deadline-row{gap:8px;display:flex}.deadline-row input[type=date]{flex:3}.deadline-row input[type=time]{flex:2}.cat-select-row{align-items:center;gap:8px;display:flex}.cat-select-row select{flex:1}.btn-cat-add{white-space:nowrap;padding:10px 14px;font-size:13px}textarea.form-input{resize:vertical;min-height:72px}@media (width<=640px){.header{flex-wrap:wrap;align-items:center;row-gap:4px;height:auto;padding:8px 14px 6px}.header-left{flex:1;align-items:center}.header-right{flex:0}.header-center{flex:0 0 100%;order:3;padding-bottom:6px}.gpa-display{border-radius:10px;justify-content:space-around;gap:0;width:100%;padding:7px 14px}.gpa-divider{color:var(--border);font-size:13px}.gpa-value{font-size:16px}.gpa-gap-sub,.logo-sub{display:none}.fab{padding:12px 18px;font-size:13px;bottom:20px;right:16px}.main{padding:16px 12px 100px}}
