@import "https://fonts.googleapis.com/css2?family=Sarabun:wght@300;400;500;600;700;800&family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--bg-primary:#0c1220;--bg-secondary:#111827;--bg-card:#111827a6;--bg-glass:#ffffff0a;--border-glass:#ffffff17;--text-primary:#f0f4f8;--text-secondary:#94a3b8;--text-muted:#64748b;--navy-dark:#1a1a2e;--navy-mid:#16213e;--navy-light:#0f3460;--neon-cyan:#4fc3f7;--neon-purple:#5b8def;--neon-pink:#7c9ff5;--neon-blue:#38bdf8;--neon-orange:#fb923c;--neon-yellow:#fbbf24;--neon-red:#f87171;--glow-cyan:0 0 20px #4fc3f747;--glow-purple:0 0 20px #5b8def47;--glow-pink:0 0 20px #7c9ff547;--radius:16px;--radius-sm:10px;--radius-xs:6px;--transition:all .3s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:Sarabun,Inter,-apple-system,sans-serif;line-height:1.6;overflow-x:hidden}body:before{content:"";z-index:-1;background:radial-gradient(circle at 15% 40%,#4fc3f70d 0%,#0000 50%),radial-gradient(circle at 80% 15%,#5b8def0a 0%,#0000 50%),radial-gradient(circle at 50% 85%,#0f346014 0%,#0000 50%);width:200%;height:200%;animation:24s ease-in-out infinite alternate bgShift;position:fixed;top:-50%;left:-50%}@keyframes bgShift{0%{transform:translate(0)rotate(0)}to{transform:translate(-2%,-2%)rotate(3deg)}}@keyframes spin{to{transform:rotate(360deg)}}[data-theme=light] body:before{background:radial-gradient(circle at 15% 40%,#4fc3f712 0%,#0000 50%),radial-gradient(circle at 80% 15%,#5b8def0f 0%,#0000 50%),radial-gradient(circle at 50% 85%,#0f34600d 0%,#0000 50%)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#4fc3f726;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#4fc3f740}.glass-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-glass);border-radius:var(--radius);transition:var(--transition);padding:24px}.glass-card:hover{background:#4fc3f708;border-color:#4fc3f726}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);border:none;align-items:center;gap:8px;padding:10px 20px;font-family:inherit;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{color:#fff;background:linear-gradient(135deg,#4fc3f7,#0288d1);box-shadow:0 4px 14px #0288d14d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0288d173}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-glass);background:#ffffff0f}.btn-secondary:hover{background:#ffffff1a}.btn-danger{background:linear-gradient(135deg, var(--neon-red), #dc2626);color:#fff}.btn-danger:hover{transform:translateY(-2px);box-shadow:0 0 20px #f871714d}.btn-purple{background:linear-gradient(135deg, var(--neon-purple), #3b5cb8);color:#fff}.btn-purple:hover{box-shadow:var(--glow-purple);transform:translateY(-2px)}.btn-sm{padding:6px 14px;font-size:.8rem}.btn-icon{border-radius:var(--radius-xs);border:1px solid var(--border-glass);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:var(--transition);background:#ffffff0f;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon:hover{color:var(--text-primary);background:#4fc3f71a}.input,.textarea,.select{border:1px solid var(--border-glass);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);transition:var(--transition);background:#ffffff0a;outline:none;padding:12px 16px;font-family:inherit;font-size:.9rem}.input:focus,.textarea:focus,.select:focus{border-color:var(--neon-cyan);box-shadow:0 0 0 3px #4fc3f71f}.textarea{resize:vertical;min-height:100px}.select option{background:var(--bg-secondary);color:var(--text-primary)}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.badge{text-transform:uppercase;letter-spacing:.05em;border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:.7rem;font-weight:700;display:inline-flex}.badge-success{color:var(--neon-cyan);background:#4fc3f726}.badge-warning{color:var(--neon-yellow);background:#fbbf2426}.badge-danger{color:var(--neon-red);background:#f8717126}.badge-info{color:var(--neon-blue);background:#38bdf826}.badge-purple{color:var(--neon-purple);background:#5b8def26}.stat-card{border-radius:var(--radius);background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-glass);transition:var(--transition);cursor:pointer;padding:20px 24px;position:relative;overflow:hidden}.stat-card:hover{transform:translateY(-2px)}.stat-card:before{content:"";border-radius:var(--radius) var(--radius) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.stat-card.cyan:before{background:linear-gradient(90deg, var(--neon-cyan), transparent)}.stat-card.purple:before{background:linear-gradient(90deg, var(--neon-purple), transparent)}.stat-card.pink:before{background:linear-gradient(90deg, var(--neon-pink), transparent)}.stat-card.orange:before{background:linear-gradient(90deg, var(--neon-orange), transparent)}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:600}.stat-value{margin-top:4px;font-size:2rem;font-weight:800}.stat-value.cyan{color:var(--neon-cyan)}.stat-value.purple{color:var(--neon-purple)}.stat-value.pink{color:var(--neon-pink)}.stat-value.orange{color:var(--neon-orange)}.tabs{border-radius:var(--radius-sm);background:#ffffff08;gap:4px;padding:4px;display:flex}.tab{border-radius:var(--radius-xs);cursor:pointer;color:var(--text-muted);transition:var(--transition);background:0 0;border:none;padding:8px 18px;font-size:.85rem;font-weight:500}.tab:hover{color:var(--text-secondary)}.tab.active{color:var(--neon-cyan);background:#4fc3f71f;font-weight:600}.table-wrap{border-radius:var(--radius);border:1px solid var(--border-glass);overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-bottom:1px solid var(--border-glass);white-space:nowrap;background:#4fc3f70a;padding:12px 16px;font-size:.75rem;font-weight:700}td{color:var(--text-secondary);border-bottom:1px solid #ffffff08;padding:12px 16px;font-size:.875rem}tr:hover td{background:#4fc3f705}.app-layout{min-height:100vh;display:flex}.sidebar{background:linear-gradient(180deg, var(--navy-dark) 0%, var(--navy-mid) 60%, #0f346099 100%);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:50;border-right:1px solid #4fc3f71a;flex-direction:column;width:260px;min-height:100vh;padding:24px 16px;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-logo{border-bottom:1px solid #4fc3f71a;flex-direction:column;align-items:center;gap:6px;margin-bottom:24px;padding:8px 12px 24px;display:flex}.sidebar-logo-circle{background:linear-gradient(135deg,#4fc3f740,#5b8def33);border:1.5px solid #4fc3f773;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:4px;font-size:1.4rem;display:flex;box-shadow:0 0 18px #4fc3f733}.sidebar-logo-title{color:var(--text-primary);text-align:center;letter-spacing:.02em;font-size:.82rem;font-weight:700}.sidebar-logo-subtitle{color:#64748b;text-align:center;font-size:.68rem;font-weight:400}.sidebar-nav{flex-direction:column;flex:1;gap:3px;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--text-muted);transition:var(--transition);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:10px 14px;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{color:var(--text-primary);background:#4fc3f70f}.nav-link.active{color:var(--neon-cyan);box-shadow:inset 3px 0 0 var(--neon-cyan);background:#4fc3f71f}.nav-link .icon{text-align:center;width:24px;font-size:1rem}.nav-link .nav-icon-svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:18px;height:18px}.main-content{flex:1;min-height:100vh;margin-left:260px;padding:32px 32px 90px}.app-layout.no-sidebar .main-content{margin-left:0}.page-header{margin-bottom:28px}.page-header h1{color:var(--text-primary);font-size:1.75rem;font-weight:800}.page-header p{color:var(--text-muted);margin-top:4px;font-size:.9rem}.hw-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-glass);border-radius:var(--radius);transition:var(--transition);border-left:3px solid #0000;padding:20px;position:relative}.hw-card:hover{border-color:#4fc3f733;border-left-color:var(--hw-accent,var(--neon-cyan));transform:translateY(-1px)}.hw-card.completed{opacity:.55}.hw-card.completed .hw-title{text-decoration:line-through}.hw-card.urgent{border-left-color:var(--neon-red)!important}.hw-card.urgent:before{content:"";background:linear-gradient(90deg, var(--neon-red), var(--neon-orange));height:2px;position:absolute;top:0;left:0;right:0}.hw-subject{text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px;font-size:.7rem;font-weight:700}.hw-title{color:var(--text-primary);margin-bottom:8px;font-size:1rem;font-weight:600}.hw-meta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hw-meta span{color:var(--text-muted);align-items:center;gap:4px;font-size:.8rem;display:flex}.hw-actions{border-top:1px solid #ffffff0a;align-items:center;gap:6px;margin-top:14px;padding-top:14px;display:flex}.star-btn{color:var(--text-muted);font-size:1.1rem}.star-btn.starred{color:var(--neon-yellow)}.toggle-wrap{align-items:center;gap:8px;display:flex}.toggle{cursor:pointer;width:40px;height:22px;transition:var(--transition);background:#ffffff1a;border:none;border-radius:11px;position:relative}.toggle.on{background:linear-gradient(135deg,#4fc3f7,#0288d1)}.toggle:after{content:"";width:16px;height:16px;transition:var(--transition);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.toggle.on:after{transform:translate(18px)}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000a6;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-secondary);border-radius:var(--radius);border:1px solid #4fc3f71f;width:90%;max-width:500px;max-height:85vh;padding:28px;animation:.3s slideUp;overflow-y:auto}.modal h2{margin-bottom:20px;font-size:1.2rem;font-weight:700}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.toast-container{z-index:200;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:80px;right:24px}.toast{border-radius:var(--radius-sm);border:1px solid var(--border-glass);padding:12px 20px;font-size:.85rem;font-weight:500;animation:.3s slideUp}.toast-success{color:var(--neon-cyan);background:#4fc3f726;border-color:#4fc3f74d}.toast-error{color:var(--neon-red);background:#f8717126;border-color:#f871714d}.toast-info{color:var(--neon-blue);background:#38bdf826;border-color:#38bdf84d}.login-page{background:linear-gradient(160deg, var(--navy-dark) 0%, var(--navy-mid) 55%, #0c1a30 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative;overflow:hidden}.login-blob{pointer-events:none;border-radius:50%;position:absolute}.login-blob-1{background:#4fc3f712;width:400px;height:400px;top:-120px;right:-100px}.login-blob-2{background:#5b8def0f;width:280px;height:280px;bottom:60px;left:-80px}.login-blob-3{background:#0f34601f;width:200px;height:200px;top:38%;right:-60px}.login-container{z-index:1;width:100%;max-width:420px;animation:.5s slideUp;position:relative}.login-logo{flex-direction:column;align-items:center;gap:8px;margin-bottom:32px;display:flex}.login-logo-circle{width:88px;height:88px;transition:var(--transition);background:#4fc3f72e;border:2px solid #4fc3f773;border-radius:50%;justify-content:center;align-items:center;margin-bottom:4px;font-size:2.4rem;display:flex;box-shadow:0 0 28px #4fc3f733,0 0 60px #4fc3f714}.login-logo-circle:hover{transform:scale(1.04);box-shadow:0 0 36px #4fc3f74d}.login-app-title{color:var(--text-primary);text-align:center;text-transform:uppercase;letter-spacing:.04em;margin-top:6px;font-size:1.2rem;font-weight:700}.login-school-name{color:#64748b;font-size:.8rem;font-weight:400}.login-form-card{background:var(--bg-card);-webkit-backdrop-filter:blur(28px);border:1px solid var(--border-glass);border-radius:22px;padding:32px 28px}.login-welcome{color:var(--text-primary);margin-bottom:4px;font-size:1.4rem;font-weight:700}.login-hint{color:var(--text-muted);margin-bottom:22px;font-size:.83rem}.login-input-group{background:var(--bg-glass);border:1px solid var(--border-glass);height:50px;transition:var(--transition);border-radius:12px;align-items:center;gap:10px;margin-bottom:14px;padding:0 14px;display:flex}.login-input-group:focus-within{background:#4fc3f70f;border-color:#4fc3f799;box-shadow:0 0 0 3px #4fc3f71a}.login-input-icon{opacity:.6;flex-shrink:0;font-size:1rem}.login-input-group input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:.92rem}.login-input-group input::placeholder{color:var(--text-muted)}.login-eye-btn{cursor:pointer;color:var(--text-muted);transition:var(--transition);background:0 0;border:none;padding:4px;font-size:1rem}.login-eye-btn:hover{color:var(--text-primary)}.login-btn{color:#fff;cursor:pointer;letter-spacing:.03em;width:100%;height:50px;transition:var(--transition);background:linear-gradient(135deg,#4fc3f7,#0288d1);border:none;border-radius:12px;margin-top:6px;font-family:inherit;font-size:.95rem;font-weight:700;box-shadow:0 4px 16px #0288d159}.login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 22px #0288d173}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-card{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff0a;border:1px solid #ffffff17;border-radius:24px;width:100%;max-width:420px;padding:40px;animation:.5s slideUp}.login-card h1{text-align:center;background:linear-gradient(135deg, var(--neon-cyan), var(--neon-purple));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:1.6rem;font-weight:800}.login-card .subtitle{text-align:center;color:var(--text-muted);margin-bottom:32px;font-size:.85rem}.login-card .form-group{margin-bottom:18px}.login-card .btn{justify-content:center;width:100%;margin-top:8px;padding:14px;font-size:1rem}.login-error{text-align:center;color:var(--neon-red);border-radius:var(--radius-xs);background:#f871711a;margin-top:12px;padding:8px;font-size:.85rem}.grid-2{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-gap{align-items:center;gap:8px;display:flex}.mt-20{margin-top:20px}.mb-20{margin-bottom:20px}.section-title{align-items:center;gap:8px;margin-bottom:16px;font-size:1rem;font-weight:700;display:flex}.section-title .icon{color:var(--neon-cyan)}.note-inline{border:none;border-bottom:1px solid var(--border-glass);color:var(--text-secondary);width:100%;transition:var(--transition);background:0 0;outline:none;padding:4px 0;font-family:inherit;font-size:.8rem}.note-inline:focus{border-color:var(--neon-cyan)}.score-inline{border:1px solid var(--border-glass);border-radius:var(--radius-xs);width:60px;color:var(--text-primary);text-align:center;transition:var(--transition);background:0 0;outline:none;padding:4px 8px;font-family:inherit;font-size:.85rem}.score-inline:focus{border-color:var(--neon-purple)}.mobile-nav-toggle{z-index:101;background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-glass);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;padding:8px 12px;font-size:1.2rem;display:none;position:fixed;top:16px;left:16px}@media (width<=1024px){.grid-4{grid-template-columns:repeat(2,1fr)}.main-content{padding:24px}.stat-value{font-size:1.6rem}}@media (width<=768px){.sidebar{z-index:100;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#111827fa;width:280px;display:none;position:fixed;top:0;bottom:0;left:0}.sidebar.open{display:flex}.sidebar-overlay{z-index:99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;position:fixed;inset:0}.mobile-nav-toggle{z-index:101;justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:flex;position:fixed;top:12px;left:12px}.main-content{min-height:100vh;margin-left:0;padding:60px 16px 24px;overflow-x:hidden}.page-header{margin-bottom:20px}.page-header h1{font-size:1.3rem}.page-header p{font-size:.8rem}.grid-2,.grid-3{grid-template-columns:1fr}.grid-4{grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{padding:14px 16px}.stat-value{font-size:1.4rem}.stat-label{font-size:.68rem}.stat-sub{font-size:.65rem}.table-wrap{border:none;border-radius:0;overflow:visible}.table-wrap table,.table-wrap thead,.table-wrap tbody,.table-wrap th,.table-wrap td,.table-wrap tr{display:block}.table-wrap thead{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.table-wrap tr{background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-sm);margin-bottom:10px;padding:14px 16px}.table-wrap td{border-bottom:1px solid #ffffff08;justify-content:space-between;align-items:center;padding:6px 0;font-size:.82rem;display:flex}.table-wrap td:last-child{border-bottom:none}.table-wrap td:before{content:attr(data-label);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;margin-right:12px;font-size:.72rem;font-weight:600}.subject-table-wrap tr{cursor:pointer}.subject-name-cell{text-align:right;align-items:flex-end}.tabs{flex-wrap:wrap;gap:6px}.tab{text-align:center;flex:1;min-width:0;padding:8px 12px;font-size:.78rem}.glass-card{padding:16px}.flex-between{flex-wrap:wrap;gap:10px}.flex-gap{flex-wrap:wrap;gap:6px}.login-card{padding:28px 20px}.login-card h1{font-size:1.3rem}.section-title{font-size:.9rem}.parse-card .parse-field{flex-direction:column;gap:2px}.hw-entries-list,.btn-add-entry{max-width:100%}.subject-detail-panel{padding:18px}.subject-detail-name{font-size:1.15rem}.subject-quick-stats{grid-template-columns:repeat(2,1fr);gap:8px;padding:12px}.sqs-num{font-size:1.2rem}.category-grid{grid-template-columns:1fr;gap:12px}.deadline-type-options{gap:4px}.deadline-type-btn{text-align:center;flex:1;padding:7px 10px;font-size:.72rem}}@media (width<=480px){.manage-hw-title{font-size:.88rem}.manage-hw-meta-item{font-size:.72rem}.manage-btn{padding:7px 10px;font-size:.7rem}}.bottom-navbar{-webkit-backdrop-filter:blur(24px);z-index:100;height:64px;padding:0 8px;padding-bottom:env(safe-area-inset-bottom);background:#16213ee6;border-top:1px solid #4fc3f71f;justify-content:space-around;align-items:center;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-navbar.nav-hidden{opacity:0;pointer-events:none;transform:translateY(100%)}.app-layout:not(.no-sidebar) .bottom-navbar{left:260px}@media (width<=768px){.app-layout:not(.no-sidebar) .bottom-navbar{left:0}}.bottom-nav-item{color:var(--text-muted);border-radius:var(--radius-sm);height:100%;transition:var(--transition);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:6px 4px;text-decoration:none;display:flex;position:relative}.bottom-nav-item.active{color:var(--neon-cyan)}.bottom-nav-item.active:before{content:"";background:var(--neon-cyan);border-radius:0 0 4px 4px;height:2px;position:absolute;top:0;left:20%;right:20%;box-shadow:0 0 8px #4fc3f799}.bottom-nav-item:hover{color:var(--text-secondary)}.bottom-nav-icon{width:22px;height:22px;transition:var(--transition);justify-content:center;align-items:center;display:flex}.bottom-nav-icon svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px;transition:var(--transition)}.bottom-nav-item.active .bottom-nav-icon svg{filter:drop-shadow(0 0 4px #4fc3f780);transform:translateY(-1px)}.bottom-nav-label{letter-spacing:.01em;font-size:.62rem;font-weight:600}.profile-header{border-bottom:1px solid var(--border-glass);flex-direction:column;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:24px;display:flex}.profile-avatar{color:#fff;background:linear-gradient(135deg,#4fc3f7,#0288d1);border-radius:50%;justify-content:center;align-items:center;width:84px;height:84px;font-size:2.5rem;font-weight:800;display:flex;box-shadow:0 4px 20px #0288d159}.profile-role{color:var(--text-muted);background:#ffffff0d;border-radius:20px;padding:4px 12px;font-size:.85rem;font-weight:600}.profile-form{flex-direction:column;gap:16px;display:flex}.form-help{color:var(--text-muted);margin-left:4px;font-size:.7rem}.news-page-container{max-width:700px;margin:0 auto}.news-input-card{padding:16px}.news-form-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.checkbox-label{color:var(--text-secondary);font-size:.85rem}.news-list{flex-direction:column;gap:16px;display:flex}.news-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-glass);border-radius:var(--radius);transition:var(--transition);padding:16px;position:relative}.news-card:hover{border-color:#ffffff26}.news-card.system{background:linear-gradient(135deg,#06d6a00d,#a855f70d);border:1px solid #06d6a04d;box-shadow:inset 0 0 20px #06d6a00d}.news-system-badge{color:var(--neon-cyan);background:#06d6a026;border-radius:12px;margin-bottom:12px;padding:4px 10px;font-size:.7rem;font-weight:700;display:inline-block}.news-card.normal{border-left:3px solid #ffffff1a}.news-card.normal.mine{border-left:3px solid var(--neon-cyan);background:#06d6a008}.news-author{color:var(--text-primary);margin-bottom:6px;font-size:.85rem;font-weight:700}.news-content{color:var(--text-secondary);white-space:pre-wrap;margin-bottom:12px;font-size:.95rem;line-height:1.5}.news-meta{color:var(--text-muted);align-items:center;gap:8px;font-size:.75rem;display:flex}.hw-entries-list{flex-direction:column;gap:16px;display:flex}.hw-entry-card{padding:16px;position:relative}.hw-entry-header{border-bottom:1px solid var(--border-glass);align-items:center;gap:10px;margin-bottom:16px;padding-bottom:12px;display:flex}.hw-entry-num{width:28px;height:28px;color:var(--neon-cyan);background:#06d6a026;border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;font-weight:800;display:flex}.hw-entry-title-label{color:var(--text-primary);flex:1;font-size:1.05rem;font-weight:600}.hw-entry-remove{color:var(--neon-red);background:#ef44440d;border-color:#ef444433}.hw-entry-remove:hover{color:var(--neon-red);background:#ef444426}.hw-entry-body{flex-direction:column;gap:14px;display:flex}.deadline-type-options{flex-wrap:wrap;gap:8px;display:flex}.deadline-type-btn{border:1px solid var(--border-glass);border-radius:var(--radius-sm);min-width:120px;color:var(--text-muted);cursor:pointer;transition:var(--transition);background:#ffffff08;flex:1;padding:10px;font-size:.8rem;font-weight:500}.deadline-type-btn:hover{color:var(--text-secondary);background:#ffffff14}.deadline-type-btn.active{border-color:var(--neon-cyan);color:var(--neon-cyan);background:#06d6a01a;font-weight:600}.btn-add-entry{border-radius:var(--radius);width:100%;color:var(--text-secondary);cursor:pointer;transition:var(--transition);background:0 0;border:2px dashed #ffffff26;justify-content:center;align-items:center;gap:10px;margin-top:16px;padding:14px;font-size:.95rem;font-weight:600;display:flex}.btn-add-entry:hover{border-color:var(--neon-cyan);color:var(--neon-cyan);background:#06d6a008}.btn-add-icon{font-size:1.2rem;font-weight:400}.flex-gap{flex-wrap:wrap;gap:12px;display:flex}.flex-gap .btn{flex:1}.section-title{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:12px;font-size:1rem;font-weight:700;display:flex}.subject-row{transition:var(--transition)}.subject-row:hover{background:#ffffff08}.subject-row.active{border-left:2px solid var(--neon-cyan);background:#06d6a014}.subject-row.urgency-overdue{background:#ef44440d}.subject-row.urgency-overdue:hover{background:#ef44441a}.subject-row.urgency-urgent{background:#f973160d}.subject-row.urgency-soon{background:#eab30808}.subject-code-with-urgency{align-items:center;display:flex}.subject-code-badge{border:1px solid var(--subject-color,var(--border-glass));border-radius:var(--radius-xs);color:var(--text-primary);background:#ffffff0d;padding:4px 8px;font-size:.8rem;font-weight:700;display:inline-block}.subject-name-cell{flex-direction:column;display:flex}.subject-name{color:var(--text-primary);font-weight:600}.subject-category{color:var(--text-muted);font-size:.7rem}.period-badge{width:24px;height:24px;color:var(--neon-purple);background:#a855f726;border-radius:50%;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:inline-flex}.completion-cell{flex-direction:column;align-items:center;display:flex}.completion-num{font-size:1rem;font-weight:800}.completion-slash{color:var(--text-muted);font-size:.75rem}.mini-progress{background:#ffffff1a;border-radius:2px;width:100%;height:4px;margin-top:4px;overflow:hidden}.mini-progress-fill{background:var(--neon-cyan);border-radius:2px;height:100%}.pending-badge{width:26px;height:26px;color:var(--neon-orange);background:#f9731626;border-radius:4px;justify-content:center;align-items:center;font-size:.9rem;font-weight:800;display:inline-flex}.done-badge{width:26px;height:26px;color:var(--neon-cyan);background:#06d6a026;border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;font-weight:800;display:inline-flex}.deadline-cell{flex-direction:column;align-items:center;display:flex}.deadline-day{color:var(--text-primary);font-size:.75rem;font-weight:600}.deadline-date{color:var(--text-muted);font-size:.7rem}.deadline-urgency-badge{border-radius:4px;margin-top:4px;padding:2px 6px;font-size:.65rem;font-weight:700}.deadline-urgency-badge.overdue{color:var(--neon-red);background:#ef444426;border:1px solid #ef44444d}.deadline-urgency-badge.urgent{color:var(--neon-orange);background:#f9731626;border:1px solid #f973164d}.deadline-urgency-badge.soon{color:var(--neon-yellow);background:#eab30826;border:1px solid #eab3084d}.urgency-dot{margin-left:4px;font-size:.8rem;animation:2s infinite pulse-urgency}@keyframes pulse-urgency{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.hw-time-remaining{border-radius:12px;margin-left:auto;padding:2px 8px;font-size:.75rem;font-weight:700}.hw-time-remaining.overdue{color:var(--neon-red);background:#ef444426}.hw-time-remaining.urgent{color:var(--neon-orange);background:#f9731626}.hw-time-remaining.soon{color:var(--neon-yellow);background:#eab30826}.hw-time-remaining.normal{color:var(--neon-cyan);background:#06d6a026}.category-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.category-card{border:1px solid var(--border-glass);border-radius:var(--radius);transition:var(--transition);background:#ffffff08;padding:20px;position:relative;overflow:hidden}.category-card:before{content:"";background:linear-gradient(90deg, var(--cat-color), transparent);height:3px;position:absolute;top:0;left:0;right:0}.cat-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.cat-name{color:var(--text-primary);font-size:1.1rem;font-weight:700}.cat-periods{color:var(--text-muted);background:#ffffff0d;border-radius:12px;padding:2px 8px;font-size:.75rem}.cat-subjects{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.cat-subj-chip{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition);background:#ffffff0d;border:1px solid #ffffff1a;padding:4px 10px;font-size:.75rem}.cat-subj-chip:hover{color:var(--text-primary);border-color:var(--cat-color);background:#ffffff1a}.cat-footer{color:var(--text-secondary);border-top:1px solid var(--border-glass);align-items:center;gap:12px;padding-top:16px;font-size:.85rem;display:flex}.cat-progress-bar{background:#ffffff0d;border-radius:3px;flex:1;height:6px;overflow:hidden}.cat-progress-fill{border-radius:3px;height:100%;transition:width .3s}.subject-detail-panel{border:1px solid var(--border-glass);border-radius:var(--radius);background:#ffffff08;margin-bottom:24px;padding:24px;position:relative;overflow:hidden}.subject-detail-panel:before{content:"";background:var(--accent);width:4px;position:absolute;top:0;bottom:0;left:0}.subject-detail-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.subject-detail-code{color:var(--accent);margin-bottom:4px;font-size:.9rem;font-weight:700}.subject-detail-name{color:var(--text-primary);margin-bottom:6px;font-size:1.5rem;font-weight:800}.subject-detail-teacher{color:var(--text-muted);font-size:.85rem}.subject-quick-stats{border-radius:var(--radius-sm);background:#ffffff05;border:1px solid #ffffff0d;gap:20px;margin-bottom:24px;padding:16px;display:flex}.sqs-item{flex-direction:column;gap:4px;display:flex}.sqs-num{font-size:1.5rem;font-weight:800}.sqs-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.hw-list-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.subject-modal{width:95%;max-width:700px;max-height:85vh;padding:28px;overflow-y:auto}.subject-modal .subject-detail-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.subject-modal .subject-detail-code{color:var(--accent,var(--neon-cyan));margin-bottom:4px;font-size:.9rem;font-weight:700}.subject-modal .subject-detail-name{color:var(--text-primary);margin:0 0 6px;font-size:1.4rem;font-weight:800}.subject-modal .subject-detail-teacher{color:var(--text-muted);font-size:.85rem}.subject-modal .sqs-item{flex-direction:column;gap:4px;display:flex}.subject-modal .sqs-num{font-size:1.5rem;font-weight:800}.subject-modal .sqs-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.subject-modal .hw-list-grid{grid-template-columns:1fr;gap:12px}.subject-modal .hw-card{cursor:pointer}.subject-modal .hw-card:hover{border-color:var(--neon-cyan);box-shadow:0 0 15px #06d6a01a}@media (width<=600px){.subject-modal{max-height:90vh;padding:18px}.subject-modal .subject-quick-stats{grid-template-columns:1fr 1fr;gap:12px;display:grid}}.hw-detail-overlay{z-index:200}.hw-detail-modal{width:95%;max-width:600px;max-height:90vh;padding:0;overflow-y:auto}.hw-detail-header{border-bottom:1px solid var(--border-glass);justify-content:space-between;align-items:flex-start;padding:24px 24px 16px;display:flex}.hw-detail-subject{margin-bottom:6px;font-size:.85rem;font-weight:700}.hw-detail-title{color:var(--text-primary);white-space:pre-wrap;margin:0;font-size:1.2rem;font-weight:700;line-height:1.5}.hw-detail-status-bar{border-bottom:1px solid var(--border-glass);background:#ffffff05;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 24px;display:flex}.hw-detail-section{border-bottom:1px solid #ffffff0a;padding:16px 24px}.hw-detail-section:last-child{border-bottom:none;padding-bottom:24px}.hw-detail-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:.8rem;font-weight:700}.hw-detail-description{color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;font-size:.95rem;line-height:1.7}.hw-detail-deadline-info{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:16px;font-size:.9rem;display:flex}.hw-detail-links{flex-direction:column;gap:8px;display:flex}.hw-detail-link{color:var(--neon-cyan);border-radius:var(--radius-sm);word-break:break-all;transition:var(--transition);background:#06d6a00d;border:1px solid #06d6a026;align-items:center;gap:6px;padding:8px 12px;font-size:.85rem;text-decoration:none;display:flex}.hw-detail-link:hover{border-color:var(--neon-cyan);background:#06d6a01a}.hw-detail-images{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;display:grid}.hw-detail-image-item{border-radius:var(--radius-sm);border:1px solid var(--border-glass);cursor:pointer;transition:var(--transition);aspect-ratio:1;overflow:hidden}.hw-detail-image-item:hover{border-color:var(--neon-cyan);transform:scale(1.03)}.hw-detail-image-item img{object-fit:cover;width:100%;height:100%}.hw-detail-score-input{max-width:200px}.hw-detail-note{resize:vertical;min-height:120px}.image-upload-area{border-radius:var(--radius-sm);text-align:center;transition:var(--transition);cursor:pointer;border:2px dashed #ffffff1f;padding:24px}.image-upload-area:hover,.image-upload-area.drag-over{border-color:var(--neon-cyan);background:#06d6a00a}.image-upload-label{cursor:pointer;color:var(--text-muted);font-size:.9rem;font-weight:500;display:block}.image-upload-area:hover .image-upload-label{color:var(--neon-cyan)}.image-preview-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin-top:12px;display:grid}.image-preview-item{border-radius:var(--radius-xs);border:1px solid var(--border-glass);aspect-ratio:1;position:relative;overflow:hidden}.image-preview-item img{object-fit:cover;width:100%;height:100%}.image-preview-remove{color:#fff;cursor:pointer;opacity:0;width:22px;height:22px;transition:var(--transition);background:#ef4444d9;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;display:flex;position:absolute;top:4px;right:4px}.image-preview-item:hover .image-preview-remove{opacity:1}.image-new-badge{color:#fff;background:#06d6a0d9;border-radius:4px;padding:2px 6px;font-size:.6rem;font-weight:700;position:absolute;bottom:4px;left:4px}.link-input-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.link-input-row .input{flex:1}.link-list{flex-direction:column;display:flex}.btn-add-link{border-radius:var(--radius-xs);color:var(--text-muted);cursor:pointer;transition:var(--transition);background:0 0;border:1px dashed #ffffff26;width:fit-content;margin-top:4px;padding:8px 14px;font-size:.8rem;font-weight:500}.btn-add-link:hover{border-color:var(--neon-cyan);color:var(--neon-cyan)}.manage-hw-desc{color:var(--text-secondary);margin-bottom:8px;font-size:.85rem;line-height:1.5}.btn-gcal{color:#fff;background:linear-gradient(135deg,#4285f4,#34a853);border:none;position:relative;overflow:hidden}.btn-gcal:before{content:"";opacity:0;background:linear-gradient(135deg,#ffffff26,#0000);transition:opacity .3s;position:absolute;inset:0}.btn-gcal:hover{transform:translateY(-2px);box-shadow:0 0 20px #4285f459,0 0 40px #34a85326}.btn-gcal:hover:before{opacity:1}.btn-gcal:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.btn-gcal-sm{color:#4285f4;transition:var(--transition);background:linear-gradient(135deg,#4285f426,#34a85326);font-size:1rem;border:1px solid #4285f433!important}.btn-gcal-sm:hover{background:linear-gradient(135deg,#4285f440,#34a85340);transform:scale(1.1);box-shadow:0 0 12px #4285f433;border-color:#4285f466!important}.btn-gcal-sm:disabled{opacity:.5;cursor:not-allowed;transform:none}.gcal-section-title{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:8px;font-size:1rem;font-weight:700;display:flex}.gcal-icon{font-size:1.2rem}.gcal-description{color:var(--text-muted);margin-bottom:16px;font-size:.82rem;line-height:1.6}.gcal-status-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.gcal-status-indicator{align-items:center;gap:8px;font-size:.85rem;font-weight:600;display:flex}.gcal-status-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.gcal-status-indicator.connected .gcal-status-dot{background:var(--neon-cyan);animation:2s ease-in-out infinite gcalPulse;box-shadow:0 0 8px #06d6a080}.gcal-status-indicator.connected{color:var(--neon-cyan)}.gcal-status-indicator.disconnected .gcal-status-dot{background:var(--text-muted)}.gcal-status-indicator.disconnected{color:var(--text-muted)}@keyframes gcalPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}.gcal-tip{border-radius:var(--radius-sm);color:#93b5f7;background:#4285f414;border:1px solid #4285f426;margin-top:14px;padding:10px 14px;font-size:.8rem;line-height:1.5}[data-theme=light] .toggle{background:#0000001f}[data-theme=light] .toggle.on{background:var(--neon-cyan)}[data-theme=light] ::-webkit-scrollbar-thumb{background:#00000026}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#00000040}[data-theme=light] .sidebar{background:#ffffffd9}[data-theme=light] .bottom-navbar{background:#ffffffe0}[data-theme=light] th{color:var(--text-muted);background:#00000008}[data-theme=light] td{border-bottom-color:#0000000a}[data-theme=light] tr:hover td{background:#00000005}[data-theme=light] .hw-actions{border-top-color:#0000000f}[data-theme=light] .hw-card:hover{border-color:#0000001f}[data-theme=light] .nav-link:hover{background:#0000000a}[data-theme=light] .nav-link.active{background:#06d6a01a}[data-theme=light] .btn-secondary{background:#0000000a;border-color:#0000001a}[data-theme=light] .btn-secondary:hover{background:#00000014}[data-theme=light] .btn-icon{color:var(--text-secondary);background:#0000000a;border-color:#00000014}[data-theme=light] .btn-icon:hover{background:#00000014}[data-theme=light] .note-inline{border-bottom-color:#0000001a}[data-theme=light] .score-inline{border-color:#0000001a}[data-theme=light] .modal-overlay{background:#0000004d}[data-theme=light] .tabs{background:#00000008}@media (width<=768px){[data-theme=light] .table-wrap tr{background:#fff9;border-color:#00000014}[data-theme=light] .table-wrap td{border-bottom-color:#0000000a}[data-theme=light] .sidebar{background:#fffffffa}}.theme-section{border-top:1px solid var(--border-glass);margin-top:30px;padding-top:20px}.theme-section-title{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:16px;font-size:1rem;font-weight:700;display:flex}.theme-mode-toggle{background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;margin-bottom:20px;padding:14px 16px;display:flex}.theme-mode-label{color:var(--text-primary);align-items:center;gap:10px;font-size:.9rem;font-weight:600;display:flex}.theme-mode-icon{font-size:1.4rem;transition:transform .4s cubic-bezier(.4,0,.2,1)}.theme-mode-icon.spin{transform:rotate(360deg)}.mode-switch{cursor:pointer;border:2px solid var(--border-glass);width:52px;height:28px;transition:var(--transition);background:#ffffff1a;border-radius:14px;padding:0;position:relative}.mode-switch.light{background:linear-gradient(135deg,#fbbf24,#f59e0b);border-color:#fbbf2466}.mode-switch.dark{background:linear-gradient(135deg,#6366f1,#4f46e5);border-color:#6366f166}.mode-switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .3s cubic-bezier(.4,0,.2,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.mode-switch.light:after{transform:translate(24px)}[data-theme=light] .mode-switch{background:#00000014;border-color:#0000001f}[data-theme=light] .mode-switch.light{background:linear-gradient(135deg,#fbbf24,#f59e0b);border-color:#fbbf2466}.theme-presets-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:.78rem;font-weight:600}.theme-presets-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-bottom:20px;display:grid}.theme-preset-card{border-radius:var(--radius-sm);background:var(--bg-glass);border:2px solid var(--border-glass);cursor:pointer;transition:var(--transition);text-align:center;padding:12px;position:relative;overflow:hidden}.theme-preset-card:hover{border-color:var(--neon-cyan);transform:translateY(-2px)}.theme-preset-card.active{border-color:var(--neon-cyan);box-shadow:0 0 12px #06d6a040}.theme-preset-card.active:after{content:"✓";color:var(--neon-cyan);background:#06d6a026;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:.7rem;font-weight:800;display:flex;position:absolute;top:6px;right:8px}.preset-colors-preview{justify-content:center;gap:4px;margin-bottom:8px;display:flex}.preset-color-dot{border:1px solid #ffffff26;border-radius:50%;width:16px;height:16px;transition:transform .2s}.theme-preset-card:hover .preset-color-dot{transform:scale(1.15)}.preset-label{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:600;overflow:hidden}.theme-custom-toggle{cursor:pointer;width:100%;color:var(--text-secondary);transition:var(--transition);background:0 0;border:none;justify-content:space-between;align-items:center;padding:10px 0;font-family:inherit;font-size:.82rem;font-weight:600;display:flex}.theme-custom-toggle:hover{color:var(--text-primary)}.theme-custom-toggle-arrow{font-size:.7rem;transition:transform .3s}.theme-custom-toggle-arrow.open{transform:rotate(180deg)}.theme-color-group{margin-bottom:16px}.theme-color-group-label{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:8px;font-size:.78rem;font-weight:700;display:flex}.theme-color-items{flex-direction:column;gap:6px;display:flex}.theme-color-item{border-radius:var(--radius-xs);background:var(--bg-glass);border:1px solid var(--border-glass);transition:var(--transition);align-items:center;gap:10px;padding:8px 10px;display:flex}.theme-color-item:hover{border-color:#ffffff1f}[data-theme=light] .theme-color-item:hover{border-color:#0000001f}.theme-color-picker-wrap{flex-shrink:0;width:32px;height:32px;position:relative}.theme-color-picker{border:2px solid var(--border-glass);cursor:pointer;appearance:none;background:0 0;border-radius:8px;width:32px;height:32px;padding:0;overflow:hidden}.theme-color-picker::-webkit-color-swatch-wrapper{padding:0}.theme-color-picker::-webkit-color-swatch{border:none;border-radius:6px}.theme-color-picker::-moz-color-swatch{border:none;border-radius:6px}.theme-color-label{color:var(--text-secondary);flex:1;font-size:.8rem;font-weight:500}.theme-color-var{color:var(--text-muted);font-family:monospace;font-size:.65rem}.theme-color-hex{background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-xs);width:76px;color:var(--text-primary);text-align:center;transition:var(--transition);outline:none;padding:4px 8px;font-family:monospace;font-size:.75rem}.theme-color-hex:focus{border-color:var(--neon-cyan)}.theme-color-reset{border:1px solid var(--border-glass);width:26px;height:26px;color:var(--text-muted);cursor:pointer;transition:var(--transition);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.7rem;display:flex}.theme-color-reset:hover{color:var(--neon-red);background:#ef444426;border-color:#ef44444d}.theme-color-reset.is-custom{color:var(--neon-cyan);background:#06d6a01a;border-color:#06d6a033}.theme-reset-all{border-radius:var(--radius-sm);border:1px dashed var(--border-glass);width:100%;color:var(--text-muted);cursor:pointer;transition:var(--transition);background:0 0;margin-top:12px;padding:10px;font-family:inherit;font-size:.82rem;font-weight:600}.theme-reset-all:hover{color:var(--neon-red);background:#ef44440d;border-color:#ef44444d}@media (width<=480px){.theme-presets-grid{grid-template-columns:repeat(2,1fr)}}.subject-cards-list{flex-direction:column;gap:10px;margin-bottom:24px;display:flex}.subject-card-row{background:var(--bg-card);border:1px solid var(--border-glass);cursor:pointer;border-radius:14px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.subject-card-row:hover{background:#ffffff0d;border-color:#4fc3f740;transform:translateY(-2px);box-shadow:0 4px 20px #4fc3f70d}.subject-card-strip{flex-shrink:0;width:5px}.subject-card-main{flex-direction:column;flex:1;gap:4px;padding:12px 18px;display:flex}.subject-card-top{align-items:center;gap:8px;display:flex}.subject-card-code{letter-spacing:.5px;font-size:.82rem;font-weight:700}.subject-card-urg-icon{justify-content:center;align-items:center;font-size:.85rem;display:inline-flex}.subject-card-urg-icon.overdue{color:var(--neon-red)}.subject-card-urg-icon.urgent{color:var(--neon-orange)}.subject-card-urg-icon.soon{color:var(--neon-yellow)}.subject-card-category{color:var(--text-muted);font-size:.72rem}.subject-card-middle{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.subject-card-name{color:var(--text-primary);margin:0;font-size:1.1rem;font-weight:700}.subject-card-pending-badge{border:1px solid #0000;border-radius:8px;padding:2px 8px;font-size:.72rem;font-weight:700}.subject-card-pending-badge.overdue,.subject-card-pending-badge.urgent{color:#ef4444;background:#ef44441f;border-color:#ef444440}.subject-card-pending-badge.soon{color:#ca8a04;background:#eab3081f;border-color:#eab30840}.subject-card-pending-badge.normal{color:#059669;background:#06d6a01f;border-color:#06d6a040}.subject-card-pending-badge.none{display:none}.subject-card-done-badge{color:#06d6a0;font-size:.75rem;font-weight:700}.subject-card-bottom{align-items:center;display:flex}.subject-card-teacher{color:var(--text-secondary);font-size:.85rem}.subject-card-right{justify-content:flex-end;align-items:center;gap:16px;padding-left:8px;padding-right:20px;display:flex}.subject-card-completion{flex-direction:column;align-items:center;gap:4px;font-size:1rem;font-weight:700;display:flex}.comp-completed{color:var(--neon-cyan)}.comp-slash{color:var(--text-muted)}.subject-card-nohw{color:var(--text-muted);font-size:.9rem}.subject-card-chevron{color:var(--text-muted);font-size:1.5rem;font-weight:300;transition:transform .2s}.subject-card-row:hover .subject-card-chevron{color:var(--text-primary);transform:translate(3px)}.subject-modal .subject-quick-stats{border-radius:var(--radius)!important;background:#ffffff05!important;border:1px solid #ffffff0d!important;gap:10px!important;margin-bottom:20px!important;padding:12px!important;display:flex!important}.subject-modal .sqs-item{background:#ffffff05!important;border-radius:10px!important;flex-direction:column!important;flex:1!important;justify-content:center!important;align-items:center!important;gap:4px!important;padding:10px 4px!important;display:flex!important}.subject-modal .sqs-num{text-align:center!important;font-size:1.35rem!important;font-weight:800!important}.subject-modal .sqs-label{color:var(--text-muted)!important;text-align:center!important;font-size:.75rem!important}.subject-modal-tabs{border:1px solid var(--border-glass);background:#ffffff05;border-radius:12px;gap:8px;margin-bottom:16px;padding:4px;display:flex}.subject-modal-tab{text-align:center;cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:9px;flex:1;padding:8px 12px;font-size:.85rem;font-weight:600;transition:all .2s}.subject-modal-tab:hover{color:var(--text-secondary);background:#ffffff08}.subject-modal-tab.active{color:var(--neon-cyan);background:#06d6a01a;border-color:#06d6a04d;box-shadow:inset 0 0 10px #06d6a00d}.subject-modal .hw-card{background:var(--bg-card);border-radius:12px;padding:16px 18px;border-left:5px solid var(--hw-accent,var(--neon-cyan))!important}.subject-modal .hw-card.completed{border-left-color:#06d6a0!important}.subject-modal .hw-card.overdue,.subject-modal .hw-card.urgent{border-left-color:#ef4444!important}.news-filter-tabs{-webkit-overflow-scrolling:touch;gap:8px;margin-bottom:20px;padding:4px 4px 12px;display:flex;overflow-x:auto}.news-filter-tabs::-webkit-scrollbar{height:4px}.news-filter-tabs::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.news-filter-tab{border:1px solid var(--border-glass);background:var(--bg-glass);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:8px 16px;font-size:.85rem;font-weight:500;transition:all .2s;display:inline-flex}.news-filter-tab:hover{color:var(--text-secondary);background:#ffffff0d}.news-filter-tab.active{color:var(--neon-cyan);background:#4fc3f71f;border-color:#4fc3f74d;font-weight:700}.news-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;margin:12px 0 10px 4px;font-size:.82rem;font-weight:700;display:flex}.news-section-title.pinned{color:var(--neon-orange)}.news-card-v2{background:var(--bg-card);border:1px solid var(--border-glass);cursor:pointer;border-radius:16px;margin-bottom:12px;transition:all .25s;display:flex;position:relative;overflow:hidden}.news-card-v2:hover{border-color:var(--border-hover);background:#ffffff08;transform:translateY(-1px)}.news-card-strip-v2{flex-shrink:0;width:5px}.news-card-body-v2{flex-direction:column;flex:1;gap:8px;padding:16px 18px;display:flex}.news-card-header-v2{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.news-type-chip{border:1px solid #0000;border-radius:20px;align-items:center;gap:6px;padding:3px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.news-card-time{color:var(--text-muted);font-size:.75rem}.news-card-pinned-tag{color:var(--neon-orange);background:#f9731626;border:1px solid #f973164d;border-radius:8px;align-items:center;gap:4px;margin-left:auto;padding:3px 8px;font-size:.7rem;font-weight:600;display:inline-flex}.news-card-title-v2{color:var(--text-primary);margin:0;font-size:1.05rem;font-weight:700;line-height:1.4}.news-card-text-v2{color:var(--text-secondary);margin:0;font-size:.88rem;line-height:1.5}.news-card-footer-v2{color:var(--text-muted);border-top:1px solid #ffffff0a;justify-content:space-between;align-items:center;margin-top:4px;padding-top:8px;font-size:.8rem;display:flex}.news-card-author-v2{align-items:center;gap:4px;display:inline-flex}.news-card-readmore-v2{font-weight:700;transition:transform .2s}.news-card-v2:hover .news-card-readmore-v2{transform:translate(2px)}.news-detail-modal{width:90%;max-width:580px}.news-detail-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.news-detail-title{color:var(--text-primary);margin:0 0 10px;font-size:1.35rem;font-weight:800;line-height:1.4}.profile-section-card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:20px;margin-bottom:20px;padding:18px 20px}.profile-section-header{border-bottom:1px solid #ffffff0d;align-items:center;gap:8px;margin-bottom:14px;padding-bottom:10px;display:flex}.profile-section-title{color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;font-size:.95rem;font-weight:700}.profile-info-list{flex-direction:column;gap:12px;display:flex}.profile-info-row{align-items:center;gap:12px;font-size:.9rem;display:flex}.profile-info-icon-circle{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.85rem;display:flex}.profile-info-label{color:var(--text-secondary);flex:1}.profile-info-value{color:var(--text-primary);text-align:right;font-weight:600}
