*,:before,:after{box-sizing:border-box}body{margin:0}img,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit}:root{--color-surface:#fff;--color-page:#f6f4f1;--color-border:#e6e1da;--color-text-primary:#1f1e1b;--color-text-secondary:#5b5a55;--color-text-muted:#8b887f;--color-primary:#1a5047;--color-primary-hover:#123c35;--color-primary-subtle:#1a50471f;--color-red:#d93025;--color-red-subtle:#d930251a;--color-yellow:#f5a623;--color-yellow-subtle:#f5a6231a;--color-blue:#2a7d6f;--color-blue-subtle:#2a7d6f1a;--color-green:#1e8c45;--color-green-subtle:#1e8c451a;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-pill:999px;--shadow-sm:0 1px 2px #1817140a, 0 1px 1px #18171405;--shadow-md:0 8px 30px #1817140a, 0 2px 8px #18171405;--shadow-lg:0 20px 48px #18171414, 0 8px 16px #1817140a;--shadow-modal:0 24px 64px #1817141f;--glass-bg:#ffffffb3;--glass-border:#ffffff80;--glass-blur:12px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--sidebar-width:72px;--navbar-height:56px;--bottom-nav-height:60px;--content-max-width:1100px;--offline-banner-h:0px}@font-face{font-family:IvyOra Display Light;src:url(/assets/IvyOraDisplay-Light-5ZwYwJwV.woff2)format("woff2");font-weight:200;font-style:normal}@font-face{font-family:IvyOra Display Regular;src:url(/assets/IvyOraDisplay-Regular-DF6itqda.woff2)format("woff2");font-weight:200;font-style:normal}@font-face{font-family:IvyOra Display Thin;src:url(/assets/IvyOraDisplay-Thin-Dkrk6ImO.woff2)format("woff2");font-weight:200;font-style:normal}@font-face{font-family:Manrope;src:url(/assets/Manrope-ExtraLight-DwTry_6E.woff2)format("woff2");font-weight:200;font-display:swap}@font-face{font-family:Manrope;src:url(/assets/Manrope-Light-Da1J8AqR.woff2)format("woff2");font-weight:300;font-display:swap}@font-face{font-family:Manrope;src:url(/assets/Manrope-Regular-B5jw9KDh.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Manrope;src:url(/assets/Manrope-Medium-RfWCML_O.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Manrope;src:url(/assets/Manrope-SemiBold-BfM-BnM9.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Manrope;src:url(/assets/Manrope-Bold-KmhOPUpT.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Manrope;src:url(/assets/Manrope-ExtraBold-BF6EEtMd.woff2)format("woff2");font-weight:800;font-display:swap}@font-face{font-family:Aboreto;src:url(/assets/Aboreto-Regular-DMvpVhmH.woff2)format("woff2");font-display:swap}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;margin:0;padding:0;font-family:Manrope,serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}body{background:var(--color-page);color:var(--color-text-primary);line-height:1.5}a{color:inherit;text-decoration:none}.layout,.app-shell{grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--navbar-height) 1fr;height:100vh;margin-top:var(--offline-banner-h,0px);height:calc(100vh - var(--offline-banner-h,0px));transition:margin-top .2s,height .2s;display:grid;overflow:hidden}.sidebar{background:var(--color-page);border-right:1px solid var(--color-border);flex-direction:column;grid-row:1/-1;align-items:center;gap:8px;padding:16px 0;display:flex}.topnav,.navbar-container{height:var(--navbar-height);z-index:100;padding:0 var(--space-6);grid-column:2;align-items:center;margin:10px 0;transition:all .3s;display:flex;position:sticky;top:0}.navbar-content{width:100%;max-width:var(--content-max-width);background:var(--glass-bg);height:48px;-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-pill);padding:0 var(--space-4);box-shadow:var(--shadow-sm);align-items:center;margin:0 auto;display:flex}.main,.page{background:var(--color-page);padding:var(--space-8);grid-column:2;overflow-y:auto}.container{max-width:var(--content-max-width);width:100%;margin:0 auto}.section{width:100%;padding:var(--space-8) 0}.row{max-width:1100px;padding:0 var(--space-8);margin:0 auto}.col-grid{gap:20px;display:grid}.col-grid-2{grid-template-columns:repeat(2,1fr)}.col-grid-3{grid-template-columns:repeat(3,1fr)}.col-grid-4{grid-template-columns:repeat(4,1fr)}.navbar-logo{color:var(--color-text-primary);letter-spacing:-.02em;margin-right:var(--space-6);align-items:center;gap:8px;font-size:1rem;font-weight:800;text-decoration:none;display:flex}.logo-img{object-fit:contain;width:22px;height:22px}.navbar-links{flex:1;align-items:center;gap:4px;display:flex}.navbar-link{color:var(--color-text-secondary);border-radius:var(--radius-pill);padding:6px 12px;font-size:.82rem;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative}.navbar-link:hover{color:var(--color-text-primary);background:#00000008}.navbar-link.active{color:var(--color-primary);background:var(--color-primary-subtle)}.navbar-actions{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.navbar-leaderboard-btn{border:1px solid var(--color-border);cursor:pointer;width:36px;height:36px;color:var(--color-text-secondary);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:none}.navbar-leaderboard-btn:hover{background:var(--color-page);color:var(--color-text-primary)}.navbar-leaderboard-btn.active{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-subtle)}.navbar-dropdown-item{width:100%;color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s;display:flex}.navbar-dropdown-item:hover{background:var(--color-page)}.dropdown-search-clear{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;font-size:1rem;display:flex}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sidebar-items{flex-direction:column;flex:1;align-items:center;gap:8px;width:100%;min-height:0;display:flex}.sidebar-scrollable{-ms-overflow-style:none;scrollbar-width:none;flex-direction:column;flex:1;align-items:center;width:100%;min-height:0;display:flex;overflow-y:auto}.sidebar-scrollable::-webkit-scrollbar{display:none}.sidebar-item{border-radius:var(--radius-sm);background:var(--color-primary-subtle);width:56px;height:38px;color:var(--color-primary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.sidebar-item:hover{background:var(--color-border);color:var(--color-text-primary)}.sidebar-item.active{background:var(--color-primary-subtle);color:var(--color-primary)}.sidebar-nav{color:var(--color-text-muted)!important;background:0 0!important}.sidebar-nav:hover{background:var(--color-page)!important;color:var(--color-text-primary)!important}.sidebar-nav.active{background:var(--color-border)!important;color:var(--color-text-primary)!important}.sidebar-add{border:1.5px dashed var(--color-border)}.sidebar-add:hover,.sidebar-add.active{border-style:solid}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:.65rem 1.25rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .2s,color .2s,box-shadow .2s,border-color .2s,transform .15s;display:inline-flex}.btn:focus-visible{outline:2px solid var(--color-primary-subtle);outline-offset:2px}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.btn-md{padding:.65rem 1.25rem;font-size:.875rem}.btn-sm{gap:4px;padding:.4rem .85rem;font-size:.75rem}.btn-primary{background:var(--color-primary);color:#fff;border:1px solid #0000;border-radius:30px;font-weight:400;box-shadow:0 1px #1817140f}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-page)}.btn-primary:hover{background:var(--color-primary-hover);box-shadow:0 3px 10px #1a504733}.btn-danger{background:var(--color-red);color:#fff;box-shadow:0 1px #1817140f}.btn-enrollments{color:#fff;background:#2a6f8f;box-shadow:0 1px #1817140f}.btn-enrollments:hover{background:#245f7a}.btn-courses{color:#2a7d6f;border:1px solid #2a7d6f;box-shadow:0 1px #1817140f}.btn-courses:hover{background:#e0e9df}.btn-danger:hover{opacity:.88}.btn-ghost{color:var(--color-primary);border:1px solid var(--color-border);background:0 0}.btn-ghost:hover{background:var(--color-primary-subtle)}.btn-subtle{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-subtle:hover{background:var(--color-page);color:var(--color-text-primary)}.btn-icon{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;width:36px;height:36px;color:var(--color-text-secondary);border-radius:50%;justify-content:center;align-items:center;transition:background .2s,box-shadow .2s,transform .15s;display:flex;box-shadow:0 1px #1817140a}.btn-icon:hover{background:var(--color-page)}.btn-icon:active{transform:translateY(1px)}.btn-icon:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.btn-icon.btn-danger-text{color:var(--color-red);border-color:#d9302540}.btn-icon.btn-danger-text:hover:not(:disabled){background:var(--color-red-subtle)}.btn-icon.btn-edit{color:var(--color-text-secondary);border-color:var(--color-border)}.btn-icon.btn-edit:hover:not(:disabled){background:var(--color-page);color:var(--color-text-primary)}.btn-icon.btn-ai{color:var(--color-primary);border-color:#0000}.btn-icon.btn-ai:hover:not(:disabled){background:var(--color-primary-subtle);color:var(--color-primary);transform:scale(1.05)}.btn-icon.btn-sm{border-radius:6px;width:26px;height:26px;font-size:.75rem}.byline-author,.author-tag,.file-meta a{color:inherit;text-decoration:none;transition:color .15s}.byline-author:hover,.author-tag:hover,.file-meta a:hover{color:var(--color-primary-hover)}.modal-overlay{padding:var(--space-6);z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#18171433;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{width:100%;max-width:520px;padding:var(--space-6);background:var(--color-surface);max-height:calc(100vh - 48px);color:var(--color-text-primary);border-radius:18px;flex-direction:column;display:flex}.modal-card.modal-wide{max-width:860px}.modal-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.modal-header>div{flex:1;min-width:0}.modal-title{letter-spacing:-.01em;font-size:1.1rem;font-weight:800}.modal-subtitle{color:var(--color-text-secondary);margin-top:2px;font-size:.82rem;line-height:1.5}.modal-body{gap:var(--space-3);margin-bottom:var(--space-5);padding-right:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden auto}.modal-body>*{min-width:0}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:0 0}.modal-body::-webkit-scrollbar-thumb{background:#0000001a;border-radius:10px}.modal-body::-webkit-scrollbar-thumb:hover{background:#0003}.modal-user{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-page);color:var(--color-text-primary)}.modal-user-name{font-weight:700}.modal-user-meta{color:var(--color-text-secondary);font-size:.85rem}.modal-warning{color:var(--color-red);background:var(--color-red-subtle);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid #d9302533;font-size:.85rem}.profile-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.profile-card{box-sizing:border-box;background:var(--color-page);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;padding:var(--space-4);box-shadow:var(--shadow-sm);color:var(--color-text-primary)}.profile-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:6px 0;display:flex}.profile-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700}.profile-value{color:var(--color-text-primary);letter-spacing:-.01em;font-size:1.1rem;font-weight:800}.profile-meta{color:var(--color-text-secondary);margin-top:6px;font-size:.78rem}.profile-section{margin-top:var(--space-4);padding:var(--space-4);background:var(--color-page);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary)}.course-badge-list{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.course-badge{background:var(--color-primary-subtle);color:var(--color-primary);border:1px solid #0679c826;border-radius:10px;padding:5px 14px;font-size:.8rem;font-weight:700;box-shadow:0 2px 4px #0679c80d}.modal-actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.empty-state{align-items:center;gap:var(--space-4);background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);text-align:center;width:100%;box-shadow:var(--shadow-md);border-radius:24px;flex-direction:column;padding:64px 32px;display:flex}.empty-state i{width:72px;height:72px;color:var(--color-primary);background:var(--color-primary-subtle);border-radius:50%;justify-content:center;align-items:center;font-size:2.25rem;display:flex}.empty-state h3{letter-spacing:-.01em;color:var(--color-text-primary);margin:0;font-size:1.25rem;font-weight:800}.empty-state p{color:var(--color-text-secondary);max-width:420px;margin:0;line-height:1.6}.empty-state .btn{margin-top:var(--space-2)}.modal-action-status{color:var(--color-text-secondary);align-items:center;gap:8px;margin-right:auto;font-size:.82rem;display:inline-flex}.loading-text{font-size:.88rem;font-weight:500}.inline-spinner{border:2px solid #1f1e1b26;border-top-color:#1f1e1b80;border-radius:999px;width:14px;height:14px;animation:.8s linear infinite spin}.form-field{gap:var(--space-1);flex-direction:column;display:flex}.form-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.input{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text-primary);background:var(--color-surface);appearance:none;outline:none;padding:.65rem 1rem;font-size:.9rem;font-weight:400;transition:border-color .15s,box-shadow .15s}select.input{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%235b5a55'%3E%3Cpath d='M12 16L6 10H18L12 16Z'%3E%3C/path%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;background-size:1.2rem;padding-right:2.5rem}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0679c81f}.input::placeholder{color:var(--color-text-muted)}@media (width<=600px){.form-row{grid-template-columns:1fr}}.card,.dashlet{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-6)}.dashlet-header{margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.dashlet-title{color:var(--color-text-primary);font-size:.9rem;font-weight:700}.view-toggle{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.btn-view-active{border-color:var(--color-primary);background:var(--color-primary-subtle)}.btn-outline{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);box-shadow:0 1px #1817140a}.btn-outline:hover{color:var(--color-primary);background:var(--color-primary-subtle);border-color:#2a7d6f4d}.conn-error-inline{border-radius:var(--radius-md);background:var(--color-red-subtle);color:var(--color-text-secondary);border:1px solid #d930252e;align-items:center;gap:10px;padding:14px 16px;font-size:.85em;display:flex}.conn-error-inline i{color:var(--color-red);flex-shrink:0;font-size:1.294em}.conn-error-inline span{flex:1;min-width:0}.conn-error-banner{background:var(--color-red-subtle);box-shadow:var(--shadow-sm);color:var(--color-text-secondary);border:1px solid #d930252e;border-radius:16px;align-items:center;gap:12px;padding:14px 20px;font-size:.85em;display:flex}.conn-error-banner i{color:var(--color-red);flex-shrink:0;font-size:1.412em}.conn-error-banner span{flex:1;min-width:0}.btn-retry{border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);cursor:pointer;flex-shrink:0;align-items:center;gap:6px;padding:.4em .95em;font-size:.78em;font-weight:700;transition:all .18s;display:inline-flex}.btn-retry:hover{border-color:var(--color-yellow);color:var(--color-primary);background:var(--color-page)}.btn-retry i{color:var(--color-yellow);font-size:1.218em;transition:transform .4s}.btn-retry:hover i{transform:rotate(180deg)}.link-retry{color:var(--color-primary);font-weight:700;font-size:inherit;cursor:pointer;text-underline-offset:.15em;background:0 0;border:none;padding:0;text-decoration:underline}.link-retry:hover{color:var(--color-primary-hover)}.conn-error-block-wrap{justify-content:center;align-items:center;width:100%;min-height:220px;padding:24px;display:flex}.conn-error-block{border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);width:100%;max-width:300px;box-shadow:var(--shadow-sm);color:var(--color-text-muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:28px 24px;display:flex}.conn-error-block-icon{background:var(--color-red-subtle);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.conn-error-block-icon i{color:var(--color-red);font-size:1.3em}.conn-error-block p{color:var(--color-text-secondary);font-size:.875em}.conn-error-block .btn-retry{margin-top:4px}.conn-error-progress-wrap{flex-direction:column;gap:4px;display:flex}.conn-error-progress-wrap--banner{width:100%;padding:8px}.conn-error-progress-wrap--block{align-items:center;margin-top:2px}.conn-error-countdown{color:var(--color-text-muted);font-size:.75em}.conn-error-progress-track{border-radius:var(--radius-pill);background:var(--color-primary-subtle);width:100%;height:3px;position:relative;overflow:hidden}.conn-error-progress-track--block{width:140px}.conn-error-progress-fill{transform-origin:0;background:var(--color-primary);animation-name:conn-error-fill;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;inset:0}@keyframes conn-error-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.dashboard-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.metrics-grid{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.metric-card{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-5);border-radius:20px;flex-direction:column;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;box-shadow:0 4px 12px #1817140a}.metric-card:hover{border-color:var(--color-primary-subtle);transform:translateY(-4px);box-shadow:0 12px 24px #18171414}.metric-icon{width:42px;height:42px;margin-bottom:var(--space-4);border-radius:12px;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.metric-card.m-semester .metric-icon{color:var(--color-primary);background:#0679c81a}.metric-card.m-courses .metric-icon{color:var(--color-green);background:#2a7d6f1a}.metric-card.m-progress .metric-icon{color:#e68c00;background:#e68c001a}.metric-card.m-completion .metric-icon{color:var(--color-red);background:#d930251a}.metric-card.m-points .metric-icon{color:#6c5ce7;background:#6c5ce71a}.metric-card.m-resources .metric-icon{color:var(--color-text-primary);background:#0f0f0f14}.metric-value{letter-spacing:-.02em;color:var(--color-text-primary);font-size:1.6rem;font-weight:800;line-height:1.1}.metric-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-top:4px;font-size:.72rem;font-weight:700}.notice-banner{border-radius:var(--radius-pill);color:var(--color-text-secondary);margin-bottom:var(--space-4);background:#2a7d6f1f;align-items:center;gap:8px;padding:8px 14px;font-size:.82rem;font-weight:600;display:inline-flex}.badge{border-radius:var(--radius-pill);letter-spacing:.02em;align-items:center;gap:4px;padding:3px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.badge-red{background:var(--color-red-subtle);color:var(--color-red)}.badge-yellow{background:var(--color-yellow-subtle);color:#b87a10}.badge-green{background:var(--color-green-subtle);color:var(--color-green)}.badge-gray{color:var(--color-text-secondary);background:#9b9eab1f}.badge-blue{color:var(--color-text-secondary);background:#53f9ff42}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}thead th{text-align:center;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:10px 16px;font-size:.72rem;font-weight:600}tbody td{text-align:center;color:var(--color-text-primary);border-bottom:1px solid var(--color-border);vertical-align:middle;padding:13px 16px}.table-section td{text-align:left;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.08em;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);background:linear-gradient(90deg,#2a7d6f1f,#2a7d6f05);padding:12px 16px;font-size:.86rem;font-weight:800;box-shadow:inset 3px 0 #2a7d6f73}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--color-page)}.text-trek{background:linear-gradient(135deg, var(--color-primary), #30aadd);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:900;display:inline-block}.page-loading{height:60vh;color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;font-weight:500;display:flex}.loading-spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.study-modal .modal-card{max-width:720px;max-height:85vh}.study-modal-content{gap:var(--space-4);flex-direction:column;display:flex}.study-modal .form-group{gap:var(--space-2);flex-direction:column;display:flex}.study-modal .form-group label{color:var(--color-text-primary);font-size:.9rem;font-weight:600}.study-modal .mode-buttons{gap:var(--space-2);display:flex}.study-modal .mode-buttons .btn{justify-content:center;align-items:center;gap:var(--space-1);flex:1;display:flex}.study-modal .mode-hint{color:var(--color-text-secondary);margin-top:var(--space-1);font-size:.85rem}.study-modal .generate-btn{justify-content:center;align-items:center;gap:var(--space-2);width:100%;display:flex}.study-modal .rotating{animation:1s linear infinite spin}.study-modal .error-message{align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--color-red-subtle);border-radius:var(--radius-md);color:var(--color-red);border:1px solid #d9302533;font-size:.9rem;display:flex}.study-modal .study-content{margin-top:var(--space-3);padding:var(--space-4);background:var(--color-page);border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:50vh;overflow-y:auto}.study-modal .markdown-content h2{margin-top:var(--space-4);margin-bottom:var(--space-2);color:var(--color-text-primary);font-size:1.2rem;font-weight:700}.study-modal .markdown-content h2:first-child{margin-top:0}.study-modal .markdown-content ul{padding-left:var(--space-5);margin:var(--space-2) 0;list-style:outside}.study-modal .markdown-content li{margin-bottom:var(--space-1);line-height:1.6}.study-modal .markdown-content p{margin-bottom:var(--space-3);line-height:1.6}.study-modal .markdown-content code{background:var(--color-surface);border-radius:4px;padding:2px 6px;font-family:Monaco,Courier New,monospace;font-size:.9em}.study-modal .markdown-content pre{background:var(--color-surface);padding:var(--space-3);border-radius:var(--radius-md);margin:var(--space-3) 0;overflow-x:auto}.study-modal .markdown-content pre code{background:0 0;padding:0}.markdown-content{color:var(--color-text-primary);line-height:1.7}.markdown-content a{color:var(--color-primary);text-underline-offset:.15em;text-decoration:underline}.markdown-content a:hover{color:var(--color-primary-hover)}.markdown-content h2{margin-top:var(--space-5);margin-bottom:var(--space-3);color:var(--color-text-primary);font-size:1.2rem;font-weight:700}.markdown-content h3{margin-top:var(--space-4);margin-bottom:var(--space-2);color:var(--color-text-primary);font-size:1rem;font-weight:700}.markdown-content h2:first-child,.markdown-content h3:first-child{margin-top:0}.markdown-content ul,.markdown-content ol{padding-left:var(--space-5);margin:var(--space-3) 0}.markdown-content ul{list-style:outside}.markdown-content ol{list-style:decimal}.markdown-content ul ul,.markdown-content ol ol,.markdown-content ul ol,.markdown-content ol ul{margin:var(--space-1) 0;padding-left:var(--space-4)}.markdown-content li{margin-bottom:var(--space-2);padding-left:var(--space-1);line-height:1.7}.markdown-content li:last-child{margin-bottom:0}.markdown-content ol li::marker{color:var(--color-primary)}.markdown-content ul li::marker{color:var(--color-primary)}.markdown-content p{margin-bottom:var(--space-3);line-height:1.7}.markdown-content strong{color:var(--color-text-primary);font-weight:700}.markdown-content code{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;padding:2px 6px;font-family:Monaco,Courier New,monospace;font-size:.9em}.markdown-content pre{background:var(--color-surface);padding:var(--space-4);border-radius:var(--radius-md);margin:var(--space-3) 0;border:1px solid var(--color-border);overflow-x:auto}.markdown-content pre code{background:0 0;border:none;padding:0}.markdown-content blockquote{border-left:3px solid var(--color-primary);margin:var(--space-3) 0;padding:var(--space-2) var(--space-4);background:var(--color-primary-subtle);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-text-secondary);font-style:normal}.markdown-content hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-4) 0}.markdown-content table{border-collapse:collapse;width:100%;margin:var(--space-4) 0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.markdown-content th,.markdown-content td{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);text-align:left;vertical-align:top;padding:10px 12px}.markdown-content th:last-child,.markdown-content td:last-child{border-right:none}.markdown-content tr:last-child td{border-bottom:none}.markdown-content th{background:#1a50470f;font-weight:700}.skeleton-block,.skeleton-text,.skeleton-circle,.skeleton-pill{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%) 0 0/200% 100%;animation:1.4s infinite shimmer}.skeleton-block{border-radius:var(--radius-md);width:100%;height:72px}.skeleton-text{border-radius:var(--radius-xs);width:100%;height:14px}.skeleton-circle{border-radius:50%;flex-shrink:0;width:40px;height:40px}.skeleton-pill{border-radius:var(--radius-pill);flex-shrink:0;width:80px;height:28px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.badge-coming-soon{border-radius:var(--radius-pill);background:var(--color-yellow-subtle);color:var(--color-yellow);letter-spacing:.03em;border:1px solid #f5a62340;align-items:center;gap:5px;padding:3px 10px;font-size:.68rem;font-weight:700;display:inline-flex}.page-hero{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;justify-content:space-between;align-items:center;gap:20px;padding:32px;display:flex}.hero-content{flex:1}.hero-title{color:var(--color-text-primary);margin-bottom:8px;font-family:IvyOra Display Thin;font-size:2.5rem;font-weight:800}.hero-subtitle{color:var(--color-text-secondary);margin:0;font-family:Manrope;font-size:1rem;font-weight:500;line-height:1.6}.bottom-tab-bar{-webkit-backdrop-filter:blur(20px);z-index:500;background:#ffffffe0;border:1px solid #00000012;border-radius:22px;justify-content:space-around;align-items:center;height:62px;padding:6px 8px;display:none;position:fixed;bottom:12px;left:12px;right:12px;box-shadow:0 8px 32px #0000001a,0 2px 8px #0000000f,inset 0 1px #ffffffe6}.bottom-tab-item{height:100%;color:var(--color-text-muted);letter-spacing:.02em;border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:6px 4px;font-size:.6rem;font-weight:200;text-decoration:none;transition:color .2s,background .2s;display:flex}.bottom-tab-item i{font-size:1.2rem;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.bottom-tab-item.active{color:var(--color-primary)}.bottom-tab-item.active i{color:#123c35;filter:drop-shadow(0 0 4px #0c8c76)drop-shadow(0 0 12px #00ffd5)drop-shadow(0 0 30px #57ffe3)}.bottom-tab-item:not(.active):active{background:var(--color-page)}@media (width<=950px){.modal-overlay{z-index:600}.layout,.app-shell{grid-template-columns:1fr;grid-template-rows:var(--navbar-height) 1fr;height:auto;min-height:100vh;overflow:visible}.sidebar{display:none}.topnav,.navbar-container{grid-column:1}.navbar-content{max-width:100%}.navbar-links{display:none}.navbar-leaderboard-btn{display:flex}.main,.page{padding:var(--space-4);grid-column:1;padding-bottom:86px;overflow:hidden visible}.bottom-tab-bar{display:flex}.bottom-tab-bar i{color:#123c35}.page-hero{padding:20px}.hero-title{font-size:1.7rem}.hero-subtitle{font-size:1rem}.modal-body{scrollbar-width:none;-ms-overflow-style:none}.modal-body::-webkit-scrollbar{display:none}}.login-shell{background:var(--color-page);min-height:100vh;color:var(--color-text-primary);grid-template-rows:56px 1fr;grid-template-columns:1fr;display:grid}.login-shell .navbar-container{grid-column:1/-1;width:100%}.login-shell .navbar-links{flex:0}.login-page{padding:var(--space-8);grid-column:1/-1;justify-content:center;align-items:center;display:flex}.login-card{background:var(--glass-bg);border:1px solid var(--glass-border);width:min(380px,92vw);box-shadow:var(--shadow-lg);padding:var(--space-8);-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:24px}.login-brand{text-align:center;margin-bottom:var(--space-6)}@keyframes google-spin{to{transform:rotate(360deg)}}.login-divider{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);color:var(--color-text-muted);font-size:.8rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:#e6e1dae6;flex:1;height:1px}.login-title{color:#123c35;font-size:1.35rem;font-weight:700}.login-subtitle{color:var(--color-text-secondary);margin-top:var(--space-2);font-size:.92rem}.login-notice{margin-top:var(--space-3);color:var(--color-text-primary);background:#ffc1071f;border:1px solid #ffc10740;border-radius:12px;padding:.65rem .85rem;font-size:.82rem;line-height:1.4}.login-form{gap:var(--space-4);flex-direction:column;display:flex}.login-label{color:var(--color-text-secondary);letter-spacing:.02em;margin-top:var(--space-1);font-size:.78rem;font-weight:600}.login-input{width:100%;color:var(--color-text-primary);background:#fbfaf8;border:1px solid #e6e1dae6;border-radius:12px;outline:none;padding:.65rem .9rem;transition:border-color .15s,box-shadow .15s,background .15s}.login-input::placeholder{color:var(--color-text-muted)}.login-input:focus{border-color:var(--color-primary);background:#fff;box-shadow:0 0 0 3px #2a7d6f24}.password-field .login-input{padding-right:2.6rem}.login-error{background:var(--color-red-subtle);color:var(--color-red);border:1px solid #d9302533;border-radius:12px;padding:.7rem .9rem;font-size:.85rem}.login-button{margin-top:var(--space-4);background:var(--color-primary);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:30px;width:100%;padding:.7rem 1rem;transition:background .2s,opacity .2s,transform .15s,box-shadow .2s;box-shadow:0 1px #1817140f}.login-button:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 6px 16px #18171414}.login-button:focus-visible{outline:2px solid var(--color-primary-subtle);outline-offset:2px}.login-button:disabled{opacity:.7;cursor:not-allowed;box-shadow:none}.login-footer{margin-top:var(--space-6);color:var(--color-text-secondary);justify-content:center;gap:6px;font-size:.88rem;display:flex}.login-link{color:var(--color-primary);font-weight:600}.login-domain-hint{margin-top:var(--space-2);text-align:center;color:var(--color-text-muted);font-size:.76rem}.auth-shell{min-height:100vh;color:var(--color-text-primary);box-sizing:border-box;background:linear-gradient(140deg,#f8f6f2 0%,#f2f0eb 45%,#eeede7 100%);grid-template-rows:56px 1fr;grid-template-columns:1fr;width:100%;max-width:100vw;display:grid;position:relative;overflow:hidden}.auth-shell:before,.auth-shell:after{content:"";filter:blur();opacity:.65;pointer-events:none;border-radius:999px;position:absolute}.auth-shell:before{background:#2a7d6f1f;width:420px;height:420px;top:-140px;right:-120px}.auth-shell:after{background:#1f1e1b0f;width:520px;height:520px;bottom:-240px;left:-160px}.auth-shell .navbar-container{grid-column:1/-1;width:100%}.auth-shell .navbar-links{flex:0}.auth-page{padding:var(--space-8) var(--space-4);z-index:1;box-sizing:border-box;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow-x:hidden}.signup-shell{background:var(--color-page);flex-direction:column;min-height:100vh;display:flex}.signup-page{padding:var(--space-8) var(--space-4);flex:1;justify-content:center;align-items:center;display:flex}.signup-card{padding:var(--space-8);-webkit-backdrop-filter:blur(16px);background:#ffffffc7;border:1px solid #ffffff8c;border-radius:20px;width:100%;max-width:420px;box-shadow:0 18px 40px #18171429}.signup-brand{margin-bottom:var(--space-6)}.google-btn{width:100%;margin-bottom:var(--space-4);color:#3c4043;letter-spacing:.01em;cursor:pointer;background:#fff;border:1.5px solid #e6e1daf2;border-radius:12px;justify-content:center;align-items:center;gap:.65rem;padding:.68rem 1rem;font-size:.9rem;font-weight:600;transition:background .18s,border-color .18s,box-shadow .18s,transform .14s;display:flex;box-shadow:0 1px 3px #00000014,0 1px 2px #0000000a}.google-btn:hover:not(:disabled){background:#f8f8f8;border-color:#c8c3bc;transform:translateY(-1px);box-shadow:0 3px 10px #0000001a,0 1px 3px #0000000f}.google-btn:active:not(:disabled){background:#f1f1f1;transform:translateY(0);box-shadow:0 1px 3px #00000014}.google-btn:disabled{opacity:.65;cursor:not-allowed}.google-btn-icon{flex-shrink:0;width:20px;height:20px}.google-btn-spinner{border:2.5px solid #3c404333;border-top-color:#4285f4;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite google-spin;display:inline-block}.signup-domain-notice{margin:var(--space-1) 0 var(--space-2);color:var(--color-text-secondary);text-align:center;font-size:.82rem;line-height:1.5}.signup-domain-notice strong{color:var(--color-text-primary)}.signup-divider{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);color:var(--color-text-muted);font-size:.8rem;display:flex}.signup-divider:before,.signup-divider:after{content:"";background:#e6e1dae6;flex:1;height:1px}.signup-title{color:#123c25;letter-spacing:-.02em;margin-bottom:var(--space-1);font-size:1.5rem;font-weight:700}.signup-subtitle{color:var(--color-text-secondary);font-size:.92rem;font-weight:400}.signup-form{gap:var(--space-4);flex-direction:column;display:flex}.signup-label{color:var(--color-text-secondary);letter-spacing:.02em;margin-bottom:2px;font-size:.78rem;font-weight:600}.signup-input{width:100%;color:var(--color-text-primary);background:#fbfaf8;border:1px solid #e6e1dae6;border-radius:12px;outline:none;padding:.65rem .9rem;font-size:.9rem;font-weight:400;transition:border-color .15s,box-shadow .15s,background .15s}.signup-input:focus{border-color:var(--color-primary);background:#fff;box-shadow:0 0 0 3px #2a7d6f24}.password-field{position:relative}.password-field .signup-input{padding-right:2.6rem}.password-toggle{width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;transition:color .15s,background .15s,border-color .15s;display:inline-flex;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.password-toggle:hover{color:var(--color-text-primary);background:#ffffffb3;border-color:#e6e1dab3}.password-toggle svg{width:18px;height:18px}.signup-input::placeholder{color:var(--color-text-muted);font-weight:300}.signup-error{color:var(--color-red);background:var(--color-red-subtle);border-radius:12px;padding:.7rem .9rem;font-size:.85rem;font-weight:500}.signup-button{background:var(--color-primary);color:#fff;cursor:pointer;width:100%;margin-top:var(--space-1);border:1px solid #0000;border-radius:30px;padding:.7rem 1rem;transition:background .2s,transform .15s,box-shadow .2s;box-shadow:0 1px #1817140f}.signup-button:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 6px 16px #18171414}.signup-button:focus-visible{outline:2px solid var(--color-primary-subtle);outline-offset:2px}.signup-button:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.signup-footer{margin-top:var(--space-5);text-align:center;color:var(--color-text-secondary);justify-content:center;align-items:center;gap:var(--space-1);font-size:.88rem;font-weight:400;display:flex}.signup-link{color:var(--color-primary);font-weight:600;text-decoration:none}.signup-link:hover{text-decoration:underline}.onboarding-shell{background:linear-gradient(140deg,#f8f6f2 0%,#f2f0eb 45%,#eeede7 100%);flex-direction:column;min-height:100vh;font-family:Manrope,sans-serif;display:flex;overflow-x:hidden}.onboarding-header{-webkit-backdrop-filter:blur(14px);background:#ffffffd1;border-bottom:1px solid #e6e1dab3;align-items:center;height:56px;padding:0 32px;display:flex;box-shadow:0 10px 24px #1817140f}.onboarding-logo{color:var(--color-text-primary);letter-spacing:-.01em;font-size:1.1rem;font-weight:700}.onboarding-page{box-sizing:border-box;flex:1;justify-content:center;align-items:center;width:100%;max-width:100vw;padding:10px;display:flex;overflow-x:hidden}.onboarding-card{-webkit-backdrop-filter:blur(16px);padding:var(--space-8);box-sizing:border-box;background:#ffffffc7;border:1px solid #ffffff8c;border-radius:20px;width:100%;min-width:0;max-width:min(560px,100%);box-shadow:2px 2px 8px #18171429}.onboarding-brand{margin-bottom:var(--space-6)}.onboarding-title{color:var(--color-text-primary);letter-spacing:-.02em;margin-bottom:var(--space-1);font-size:1.5rem;font-weight:800}.onboarding-subtitle{color:var(--color-text-secondary);font-size:.9rem;font-weight:400;line-height:1.5}.semester-grid{margin-bottom:var(--space-6);grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.semester-tile{border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:#fff9;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:14px 8px;font-family:Manrope,sans-serif;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s;display:flex}.semester-tile:hover{border-color:var(--color-primary);background:var(--color-primary-subtle)}.semester-tile.selected{border-color:var(--color-primary);background:var(--color-primary-subtle);box-shadow:0 0 0 3px #2a7d6f26}.semester-num{color:var(--color-text-primary);font-size:.875rem;font-weight:700}.semester-tile.selected .semester-num{color:var(--color-primary)}.semester-term{color:var(--color-text-muted);font-size:.7rem;font-weight:400}.onboarding-error{color:var(--color-red);background:var(--color-red-subtle);border-radius:var(--radius-sm);margin-bottom:var(--space-4);padding:.5rem .875rem;font-size:.85rem;font-weight:500}.onboarding-button{background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);text-align:center;cursor:pointer;border:1px solid #0000;width:100%;padding:.65rem 1rem;font-family:Manrope,sans-serif;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .2s,transform .15s,box-shadow .2s;display:block;box-shadow:0 1px #1817140f}.onboarding-button:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:0 6px 16px #18171414}.onboarding-button:focus-visible{outline:2px solid var(--color-primary-subtle);outline-offset:2px}.onboarding-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.onboarding-card--wide{max-width:min(680px,100%)}.semester-tile.loading{pointer-events:none}.tile-spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:18px;height:18px;animation:.6s linear infinite ob-spin;display:inline-block}@keyframes ob-spin{to{transform:rotate(360deg)}}.ob-tabs{margin-bottom:var(--space-4);justify-content:center;align-items:center;gap:8px;display:flex}.ob-tab-content{min-height:220px;margin-bottom:var(--space-4)}.ob-search{width:100%;margin-bottom:var(--space-3);border-radius:var(--radius-md);padding:9px 14px}.ob-tab-content .resources-search{box-sizing:border-box;width:100%;max-width:100%}.ob-course-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;max-height:340px;padding-right:2px;display:grid;overflow-y:auto}.ob-course-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff9;flex-direction:column;gap:10px;padding:16px 18px;transition:border-color .2s,box-shadow .2s;display:flex}.ob-course-card:hover{box-shadow:var(--shadow-sm);border-color:#2a7d6f4d}.ob-course-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.ob-course-card-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ob-lab-badge{color:var(--color-primary);background:#2a7d6f14}.ob-course-card-title{color:var(--color-text-primary);letter-spacing:-.01em;margin:0;font-size:.95rem;font-weight:700;line-height:1.3}.ob-course-card-meta{color:var(--color-text-muted);font-size:.75rem;font-weight:500}.resource-card-action.ob-add-btn{background:var(--color-primary-subtle);width:30px;height:30px;color:var(--color-primary);justify-content:center;font-size:1rem}.resource-card-action.ob-add-btn:hover{color:var(--color-primary-hover);background:#1a504733}.ob-empty{min-height:160px;color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.ob-empty i{opacity:.5;font-size:2rem}.ob-empty p{margin:0;font-size:.875rem}.course-fetch-error{color:var(--color-red);background:var(--color-red-subtle);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:12px;padding:.5rem .875rem;font-size:.85rem;display:flex}.course-retry-btn{color:var(--color-red);border:1px solid var(--color-red);border-radius:var(--radius-sm);cursor:pointer;background:0 0;flex-shrink:0;padding:3px 10px;font-family:Manrope,sans-serif;font-size:.8rem;font-weight:600;transition:background .15s}.course-retry-btn:hover{background:#d9302514}.onboarding-footer{margin-top:var(--space-2);gap:10px;display:flex}.onboarding-footer .onboarding-button{flex:1}.onboarding-button--back{color:var(--color-text-secondary);border:1px solid var(--color-border);box-shadow:none;background:0 0}.onboarding-button--back:hover:not(:disabled){border-color:var(--color-text-muted);box-shadow:none;background:#fff9;transform:none}.ob-enrolled-toolbar{margin-bottom:var(--space-3);justify-content:flex-end;display:flex}.ob-delete-all-btn{color:var(--color-red);background:var(--color-red-subtle);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:6px 14px;font-family:Manrope,sans-serif;font-size:.8rem;font-weight:600;transition:background .15s;display:inline-flex}.ob-delete-all-btn:hover:not(:disabled){background:#d9302529}.ob-delete-all-btn i{font-size:.95rem}.ob-confirm-bar{color:var(--color-red);background:var(--color-red-subtle);border-radius:var(--radius-sm);justify-content:flex-end;align-items:center;gap:10px;padding:.5rem .875rem;font-size:.85rem;font-weight:500;display:flex}.ob-confirm-bar .onboarding-button{flex:none;width:auto;padding:.4rem .85rem;font-size:.8rem}.ob-danger-btn{background:var(--color-red)}.ob-danger-btn:hover:not(:disabled){background:#b91c1c}.ob-course-card .resource-card-action:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}@media (width<=720px){.onboarding-card--wide{max-width:100%}}@media (width<=640px){.auth-page{padding:var(--space-5) var(--space-3)}.onboarding-page{align-items:flex-start}.onboarding-card,.onboarding-card--wide{max-width:100%;padding:var(--space-6) var(--space-5);border-radius:16px}.semester-grid{grid-template-columns:repeat(2,1fr)}.ob-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:6px;width:100%;max-width:100%;padding-bottom:4px;display:flex;overflow-x:auto}.ob-tabs::-webkit-scrollbar{display:none}.ob-tabs .review-tab{white-space:nowrap;flex-shrink:0}.ob-course-grid{scrollbar-width:none;-ms-overflow-style:none;grid-template-columns:minmax(0,1fr);max-height:380px}.ob-course-grid::-webkit-scrollbar{display:none}.ob-confirm-bar{text-align:center;flex-direction:column;align-items:stretch;gap:8px}.ob-confirm-bar .onboarding-button{flex:none;width:100%}.ob-enrolled-toolbar{width:100%}.ob-delete-all-btn{justify-content:center;width:100%}.onboarding-footer{gap:8px}}@media (width<=440px){.auth-page{padding:var(--space-4) var(--space-3)}.onboarding-card,.onboarding-card--wide{padding:var(--space-5) var(--space-4);border-radius:14px}.onboarding-title{font-size:1.25rem}.onboarding-subtitle{font-size:.825rem}.semester-tile{padding:12px 6px}.semester-num{font-size:.8rem}.ob-course-grid{max-height:300px}.onboarding-footer{flex-direction:column;gap:8px}.onboarding-footer .onboarding-button{width:100%}.ob-course-card{padding:12px 14px}.ob-tabs .review-tab{padding:6px 12px;font-size:.8rem}}@media (width<=320px){.auth-page{padding:var(--space-3) var(--space-2)}.onboarding-card,.onboarding-card--wide{padding:var(--space-4) var(--space-3);border-radius:12px;min-width:0;overflow:hidden}.onboarding-brand{margin-bottom:var(--space-4)}.onboarding-title{font-size:1.1rem}.onboarding-subtitle{font-size:.8rem}.semester-grid{margin-bottom:var(--space-4);grid-template-columns:repeat(2,1fr);gap:7px}.semester-tile{padding:10px 4px}.semester-num{font-size:.75rem}.ob-course-grid{gap:10px;max-height:260px}.ob-course-card{gap:8px;padding:10px 12px}.ob-course-card-title{font-size:.875rem}.ob-tabs .review-tab{padding:5px 10px;font-size:.75rem}.onboarding-footer{flex-direction:column;gap:8px}.onboarding-footer .onboarding-button{width:100%;padding:.55rem .875rem;font-size:.85rem}}.admin-toast{z-index:9999;border-radius:12px;align-items:flex-start;gap:10px;width:max-content;max-width:calc(100% - 56px);padding:12px 18px;font-size:.875rem;font-weight:500;animation:.25s toast-in;display:flex;position:fixed;bottom:28px;left:28px;box-shadow:0 6px 24px #0000004d}@media (width<=768px){.admin-toast{width:max-content;max-width:calc(100% - 24px);padding:10px 14px;font-size:.75rem;bottom:90px;left:12px}}.admin-toast-progress{color:#e0e0f0;background:#2d2d3a}.admin-toast-success{color:#fff;background:#1a7a50}.admin-toast-error{color:#fff;background:#c0392b}.admin-toast button{cursor:pointer;color:inherit;opacity:.7;background:0 0;border:none;padding:0;font-size:1rem}.admin-toast button:hover{opacity:1}.toast-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite spin}.dropdown-panel-body{padding:6px 10px}@media (width<=576px){.dropdown-panel-body{padding:6px 2px}}.dropdown-panel-body button,.dropdown-panel-body a{border-radius:8px}.dropdown-search-bar{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-page);align-items:center;gap:8px;margin:10px 10px 6px;padding:9px 14px;display:flex}.dropdown-search-icon{color:var(--color-text-muted);flex-shrink:0;font-size:1rem}.dropdown-search-input{min-width:0;color:var(--color-text);background:0 0;border:none;outline:none;flex:1;font-size:.875rem}.dropdown-search-input::placeholder{color:var(--color-text-muted)}.dropdown-search-clear{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;font-size:1rem;display:flex}.dropdown-search-clear:hover{color:var(--color-text)}.dropdown-item{width:100%;color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;border-image:;flex-direction:column;align-items:flex-start;margin:2px 0;padding:9px 14px;font-size:.875rem;transition:background .1s;display:flex}.dropdown-item:hover{background:var(--color-page)}.dropdown-kbd-focus{background:var(--color-page);outline:2px solid var(--color-primary-subtle);outline-offset:-2px}.dropdown-item.is-active{color:var(--color-primary);font-weight:500}.dropdown-item.is-active i{color:var(--color-primary);font-size:.9rem}.dropdown-item-hint{color:var(--color-text-muted);margin-right:4px;font-size:.775rem}.push-prompt-modal{max-width:400px}.push-prompt-body{text-align:center;color:var(--color-text-secondary)}.push-prompt-body>i{width:48px;height:48px;color:var(--color-primary);background:var(--color-primary-subtle);border-radius:50%;justify-content:center;align-items:center;font-size:1.4rem;display:inline-flex}.push-prompt-body h3{color:var(--color-text-primary);margin:12px 0 6px;font-size:1.05rem;font-weight:800}.push-prompt-body p{margin:0;font-size:.85rem;line-height:1.55}.offline-banner{z-index:901;color:#fff;background:var(--color-text-primary);justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:.82rem;font-weight:700;animation:.2s offline-banner-slide-in;display:flex;position:fixed;top:0;left:0;right:0}.offline-banner i{font-size:1rem}.offline-banner--online{background:var(--color-green);animation:.2s offline-banner-slide-in,.22s 2.28s forwards offline-banner-fade-out}@keyframes offline-banner-slide-in{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes offline-banner-fade-out{0%{opacity:1}to{opacity:0;transform:translateY(-100%)}}@media (width<=480px){.offline-banner{padding:8px 12px;font-size:.76rem}}.dash-install-card{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:20px;align-items:center;gap:20px;padding:20px 22px;display:flex;position:relative;overflow:hidden}.dash-install-card:before{display:none}.dash-install-close{z-index:1;cursor:pointer;width:24px;height:24px;color:var(--color-text-muted);background:#fff6;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.95rem;transition:background .15s,color .15s;display:flex;position:absolute;top:12px;right:12px}.dash-install-close:hover{color:var(--color-text-primary);background:#ffffffa6}.dash-install-body{flex:1;min-width:0;position:relative}.dash-install-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--color-primary);margin-bottom:4px;font-size:.7rem;font-weight:700;display:block}.dash-install-title{letter-spacing:-.02em;color:var(--color-text-primary);margin:0 0 4px;font-size:1rem;font-weight:800}.dash-install-desc{color:var(--color-text-secondary);margin:0 0 10px;font-size:.82rem;line-height:1.55}.dash-install-perks{flex-wrap:wrap;gap:6px;display:flex}.dash-install-perks span{color:var(--color-text-secondary);white-space:nowrap;background:#f0f0eb;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:.7rem;font-weight:600;display:inline-flex}.dash-install-perks i{color:var(--color-primary)}.dash-install-cta{z-index:1;background:var(--color-primary);color:#fff;white-space:nowrap;cursor:pointer;border:none;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:.6rem 1.15rem;font-size:.82rem;transition:background .15s,box-shadow .15s,transform .15s;display:inline-flex;position:relative}.dash-install-cta:hover{background:var(--color-primary-hover);box-shadow:0 4px 12px #1a504733}.dash-install-cta:active{transform:translateY(1px)}.dash-install-cta:disabled{opacity:.7;cursor:not-allowed}@media (width<=768px){.dash-install-card{flex-direction:column;align-items:flex-start;gap:12px;padding:18px 18px 18px 20px}.dash-install-close{top:12px;right:12px}.dash-install-cta{justify-content:center;width:100%}}.dash-install-fab{right:20px;bottom:calc(var(--bottom-nav-height,60px) + 28px);z-index:40;border:1px solid var(--glass-border);background:linear-gradient(135deg, var(--glass-bg), #ffffff59);width:52px;height:52px;-webkit-backdrop-filter:blur(var(--glass-blur));color:var(--color-primary);cursor:pointer;box-shadow:var(--shadow-lg);border-radius:50%;justify-content:center;align-items:center;font-size:1.15rem;transition:background .15s,box-shadow .15s,transform .15s;display:none;position:fixed}.dash-install-fab:hover{box-shadow:var(--shadow-lg), 0 0 0 4px var(--color-primary-subtle);background:linear-gradient(135deg,#ffffffd9,#ffffff80)}.dash-install-fab:active{transform:translateY(1px)scale(.97)}.dash-install-fab:disabled{opacity:.7;cursor:not-allowed}@media (width<=768px){.dash-install-fab{display:flex}}.install-modal-close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:2px;font-size:1.2em;transition:background .15s,color .15s}.install-modal-close:hover{background:var(--color-page);color:var(--color-text-primary)}.install-step{border-radius:var(--radius-md);background:var(--color-page);color:var(--color-text-primary);align-items:flex-start;gap:12px;padding:10px 12px;font-size:.9em;line-height:1.5;display:flex}.install-step i{color:var(--color-primary);vertical-align:-.15em}.install-step-text{flex-wrap:wrap;align-items:center;gap:0 5px;display:inline-flex}.install-inline-icon{background:var(--color-primary-subtle);border-radius:5px;justify-content:center;align-items:center;width:1.3em;height:1.3em;display:inline-flex}.install-inline-icon i{vertical-align:unset;font-size:.85em}.install-step-num{background:var(--color-primary-subtle);width:22px;height:22px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.78em;font-weight:800;display:flex}.install-spin{animation:.8s linear infinite install-spin}@keyframes install-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dash-page{flex-direction:column;gap:20px;padding-bottom:40px;display:flex}.dash-welcome{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;justify-content:space-between;align-items:center;gap:20px;padding:32px;display:flex}.dash-welcome-content{flex:1}.dash-welcome-text{letter-spacing:-.03em;color:var(--color-text-primary);margin-bottom:8px;font-family:IvyOra Display Thin;font-size:2.5rem}.dash-welcome-subtitle{color:var(--color-text-secondary);margin:0;font-family:Manrope;font-size:1rem;font-weight:500;line-height:1.6}.dash-grid{grid-template-columns:1fr 2fr;align-items:start;gap:20px;display:grid}.dash-left{flex-direction:column;gap:12px;display:flex;position:sticky;top:24px}.dash-courses-header{background:var(--color-surface);border:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);border-radius:12px;justify-content:space-between;align-items:center;padding:10px 16px;font-size:.82rem;font-weight:800;text-decoration:none;transition:all .15s;display:flex}.dash-courses-header:hover{background:var(--color-primary-subtle);color:var(--color-primary);border-color:#0000}.dash-courses-header i{font-size:1rem;transition:transform .15s}.dash-courses-header:hover i{transform:translate(3px)}.dash-course-list{flex-direction:column;gap:10px;display:flex}.dash-course-card{border-radius:16px;flex-direction:column;flex-shrink:0;gap:4px;padding:16px 18px;text-decoration:none;transition:filter .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.dash-course-card:hover{filter:brightness(.95);box-shadow:0 2px 8px #0000000d}.dash-course-code{text-transform:uppercase;letter-spacing:.08em;opacity:.65;font-size:.7rem;font-weight:800}.dash-course-name{font-size:.92rem;font-weight:700;line-height:1.35}.dash-course-arrow{opacity:.4;font-size:1rem;transition:opacity .15s,transform .15s;position:absolute;top:14px;right:14px}.dash-course-card:hover .dash-course-arrow{opacity:.9;transform:translate(2px,-2px)}.dash-course-empty{border:1.5px dashed var(--color-border);text-align:center;color:var(--color-text-muted);border-radius:16px;flex-direction:column;align-items:center;gap:10px;padding:32px 20px;font-size:.88rem;display:flex}.dash-course-empty>i{font-size:1.8rem}.dash-right{flex-direction:column;gap:16px;display:flex}.dash-card{border:1px solid var(--color-border);background:#fff;border-radius:20px;padding:22px 24px;transition:background-color .2s,box-shadow .2s;box-shadow:0 1px 6px #0000000a}.dash-card-title{color:var(--color-text-primary);letter-spacing:-.015em;margin-top:0;margin-bottom:16px;font-family:IvyOra Display Regular,IvyOra Display Thin,serif;font-size:1.5rem;font-weight:500}.dash-card-label{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);align-items:center;gap:7px;margin-bottom:14px;font-size:.72rem;font-weight:700;display:flex}.dash-forum-inner{color:inherit;border-top:1px solid var(--color-border);flex-direction:column;gap:12px;padding:1em 0;text-decoration:none;display:flex}.forum-split{flex-direction:column;display:flex}.dash-forum-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dash-tag{background:var(--color-page);color:var(--color-text-secondary);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700}.dash-tag-primary{background:var(--color-primary-subtle);color:var(--color-primary)}.dash-forum-title-row{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.dash-time{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;margin-top:3px;font-size:.72rem}.dash-forum-title{letter-spacing:-.02em;color:var(--color-text-primary);min-width:0;margin:0;font-size:1.05rem;font-weight:800;line-height:1.4}.dash-forum-snippet{color:var(--color-text-secondary);margin:0;font-size:.88rem;line-height:1.6}.dash-forum-cta{color:var(--color-primary);align-items:center;gap:5px;margin-top:4px;font-size:.8rem;font-weight:700;transition:gap .15s;display:inline-flex}.dash-forum-inner:hover .dash-forum-cta{gap:8px}.dash-forum-empty{color:var(--color-text-muted);align-items:center;gap:10px;font-size:.88rem;display:flex}.dash-forum-empty a{color:var(--color-primary)}.dash-row-half{grid-template-columns:3fr 2fr;gap:16px;display:grid}.dash-row-half.second{grid-template-columns:2.25fr 1.75fr}.dash-row-half:last-child{grid-template-columns:1fr 1fr}.dash-card-desc{color:var(--color-text-secondary);margin-bottom:14px;font-size:.85rem;line-height:1.6}.dash-projects-preview{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.dash-project-item{background:var(--color-page);color:var(--color-text-primary);border-radius:10px;align-items:center;gap:10px;padding:.4rem .85rem;font-size:.84rem;font-weight:600;display:flex}.dash-project-item i{color:var(--color-primary);flex-shrink:0;font-size:1rem}.dash-tl-seating-link{color:var(--color-green);align-items:center;gap:5px;margin-top:6px;font-size:.78rem;font-weight:700;text-decoration:none;transition:gap .15s;display:inline-flex}.dash-tl-seating-link:hover{color:var(--color-primary)}.dash-cta-link{color:var(--color-primary);align-items:center;gap:5px;font-size:.8rem;font-weight:700;text-decoration:none;transition:gap .15s;display:inline-flex}.dash-cta-link:hover{gap:8px}.dash-timeline-scroll{scrollbar-width:none;-ms-overflow-style:none;height:230px;margin-top:-6px;margin-right:-2px;padding:12px 2px 14px 5px;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000 0%,#000 16px calc(100% - 24px),#0000 100%);mask-image:linear-gradient(#0000 0%,#000 16px calc(100% - 24px),#0000 100%)}.dash-timeline-scroll::-webkit-scrollbar{display:none}.dash-timeline{padding-top:2px 5px;flex-direction:column;display:flex}.dash-timeline-item{align-items:stretch;gap:12px;display:flex}.dash-tl-dot-wrap{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.dash-tl-dot{border:2px solid var(--color-border);width:24px;height:24px;color:var(--color-text-muted);background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;transition:all .2s;display:flex}.dash-timeline-item.is-done .dash-tl-dot{background:var(--color-green-subtle);border-color:var(--color-green);color:var(--color-green)}.dash-timeline-item.is-current .dash-tl-dot{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 0 0 4px var(--color-primary-subtle)}.dash-tl-line{background:var(--color-border);flex:1;width:2px;min-height:22px;margin:3px 0}.dash-timeline-item.is-done .dash-tl-line{background:var(--color-green);opacity:.35}.dash-tl-content{flex-direction:column;gap:2px;padding-bottom:18px;display:flex}.dash-tl-label{color:var(--color-text-primary);padding-top:3px;font-size:.88rem;font-weight:700;line-height:1}.dash-timeline-item.is-done .dash-tl-label{color:var(--color-text-muted)}.dash-tl-date{color:var(--color-text-muted);font-size:.74rem}.dash-timeline-item.is-current .dash-tl-content{background:#2a7d6f08;border:1px solid #2a7d6f80;border-radius:12px;width:100%;margin-top:-6px;margin-bottom:12px;padding:10px 14px}.dash-cta-card{flex-direction:column;gap:12px;display:flex}.dash-cta-body p{color:var(--color-text-secondary);margin:0;font-size:.82rem;line-height:1.55}.dash-cta-btn{align-items:center;gap:6px;width:fit-content;margin-top:auto;display:inline-flex;color:#fff!important;background-color:#1a5047!important;border:1px solid #0000!important;transition:all .2s!important}.dash-cta-btn:hover{background-color:#123c35!important;box-shadow:0 3px 10px #1a504733!important}.dash-tt-sync-label{color:var(--color-text-muted);align-items:center;gap:4px;margin-top:6px;font-size:.72rem;display:flex}@media (width<=768px){.dash-welcome{padding:20px}.dash-welcome-text{font-size:1.7rem}.dash-welcome-subtitle{font-size:1rem}.dash-grid{grid-template-columns:1fr}.dash-left{display:none}.dash-row-half,.dash-row-half.second,.dash-row-half:last-child{grid-template-columns:1fr}.dash-course-list{scrollbar-width:none;-ms-overflow-style:none;background-color:#123c35;border-radius:15px;max-height:280px;padding:.5em;overflow-y:auto}.dash-course-list::-webkit-scrollbar{display:none}.dash-promo{display:none}}.dash-timetable-hero{color:#f0f0f0;background:linear-gradient(90deg,#1e1e1e 0%,#2d3748 100%);border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;text-decoration:none;transition:opacity .18s,transform .18s;display:flex;position:relative;overflow:hidden}.dash-timetable-hero:before{content:"";pointer-events:none;background:radial-gradient(at 100% 0,#a8efcb12 0%,#0000 65%);position:absolute;inset:0}.dash-tt-hero-left{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.dash-tt-hero-label{text-transform:uppercase;letter-spacing:.07em;color:#f0f0f08c;align-items:center;gap:6px;font-size:.72rem;font-weight:700;display:flex}.dash-tt-hero-label i{color:#f0f0f099;font-size:.95rem}.dash-tt-hero-course{color:#a8efcb;white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;font-size:1.05rem;font-weight:800;overflow:hidden}.dash-tt-hero-meta{color:#f0f0f0b3;align-items:flex-start;gap:12px;font-size:.78rem;font-weight:500;display:flex}.dash-tt-hero-meta i{opacity:.7;margin-right:3px}.dash-tt-hero-empty{color:#f0f0f0bf;margin-top:4px;font-size:.85rem}.dash-tt-hero-right{color:#f0f0f099;flex-direction:column;flex-shrink:0;align-items:center;gap:8px;display:flex}.dash-tt-hero-right>i{font-size:2.2rem}.dash-tt-hero-right>span{white-space:nowrap;opacity:.8;font-size:.72rem;font-weight:700}.dash-timetable-hero .skeleton-pill,.dash-timetable-hero .skeleton-text{background:#ffffff1a linear-gradient(90deg,#ffffff14 0,#ffffff26 40px,#ffffff14 80px)}@media (width<=600px){.dash-tt-hero-meta{flex-direction:column;gap:4px}}@media (width<=340px){.dash-tt-hero-meta{font-size:.7rem}.dash-tt-hero-course{font-size:1rem}.dash-tt-hero-right>i{font-size:1.8rem}.dash-tt-hero-right>span{font-size:.6rem}.dash-tt-hero-label{font-size:.7rem}}.tt-page{flex-direction:column;gap:20px;padding-bottom:48px;display:flex}.tt-hero-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.tt-hero-actions .btn-primary i{margin-right:6px}.tt-hero{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:32px;display:flex}.tt-tab-bar{background:var(--color-page);border:1px solid var(--color-border);border-radius:999px;align-self:flex-start;align-items:center;gap:2px;padding:3px;display:flex}.tt-tab{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:4px 12px;font-size:.78rem;font-weight:600;transition:all .15s;display:flex}.tt-tab:hover{color:var(--color-text-primary)}.tt-tab.active{background-color:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 3px #0000001a}.tt-day-tabs{flex-wrap:wrap;gap:6px;display:flex}.tt-day-tab{border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;padding:8px 18px;font-size:.82rem;font-weight:700;transition:all .18s;position:relative}.tt-day-tab:hover:not(.active){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-subtle)}.tt-day-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.tt-day-tab.is-today:not(.active){border-color:var(--color-primary);color:var(--color-primary)}.tt-day-tab-abbr{display:none}.tt-day-tab-today-dot{vertical-align:middle;background:currentColor;border-radius:50%;width:5px;height:5px;margin-bottom:2px;margin-left:5px;display:inline-block}.tt-search-wrap{position:relative}.tt-search-icon{color:var(--color-text-muted);pointer-events:none;font-size:1rem;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.tt-search-input{background:var(--color-surface);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);border-radius:30px;outline:none;padding:11px 44px;font-size:.9rem;transition:border-color .18s,box-shadow .18s}.tt-search-input::placeholder{color:var(--color-text-muted)}.tt-search-clear{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;align-items:center;padding:2px;font-size:1rem;transition:color .15s;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.tt-search-clear:hover{color:var(--color-text-primary)}.tt-results-header{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;font-size:.8rem;font-weight:700;display:flex}.tt-results-count{background:var(--color-primary-subtle);color:var(--color-primary);border-radius:var(--radius-pill);padding:2px 8px;font-size:.73rem;font-weight:700}.tt-group-day-header{color:var(--color-text-primary);letter-spacing:-.01em;align-items:center;font-size:1.5rem;font-weight:400;display:flex}.tt-tile-grid{grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:16px;display:grid}.tt-tile{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:20px;flex-direction:column;justify-content:center;gap:10px;padding:20px;transition:all .22s cubic-bezier(.4,0,.2,1);display:flex}.tt-tile.teach{flex-direction:column;justify-content:space-between}.tt-tile:hover{box-shadow:var(--shadow-md)}.tt-tile.is-reserved{background:linear-gradient(135deg,#fffbf0,#fff8e6);border-color:#f5a6234d}.tt-tile.is-reserved:hover{border-color:#f5a62380}.tt-tile-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.tt-tile-code{background:var(--color-primary-subtle);color:var(--color-primary);letter-spacing:.06em;border-radius:var(--radius-pill);align-items:center;padding:4px 10px;font-size:.72rem;font-weight:800;display:inline-flex}.tt-tile-reserved-badge{background:var(--color-yellow-subtle);color:#8a5a00;letter-spacing:.06em;border-radius:var(--radius-pill);align-items:center;padding:4px 10px;font-size:.72rem;font-weight:800;display:inline-flex}.tt-tile-title{letter-spacing:-.01em;color:var(--color-text-primary);font-size:1.5rem;font-weight:200;line-height:1.3}.tt-tile-alt-codes{color:var(--color-text-muted);margin-top:-4px;font-size:.74rem;font-weight:600}.tt-tile-section{color:var(--color-text-secondary);border-radius:var(--radius-pill);align-self:flex-start;align-items:center;font-size:.8rem;font-weight:800;display:inline-flex}.tt-tile-footer{border-top:1px solid var(--color-border);flex-direction:column;gap:10px;margin-top:auto;padding-top:12px;display:flex}.tt-tile-meta{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.tt-tile-meta-row{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;align-items:flex-start;gap:5px;font-size:.8rem;display:flex;overflow:hidden}.tt-tile-meta-row i{color:var(--color-text-muted);flex-shrink:0;font-size:.85rem}.tt-tile-meta-row.time{font-weight:800}.tt-tile-sessions{flex-direction:column;gap:10px;display:flex}.tt-tile-sessions.is-multi{padding-left:18px;position:relative}.tt-tile-sessions.is-multi:before{content:"";background:var(--color-border);width:1px;position:absolute;top:8px;bottom:8px;left:5px}.tt-tile-session{position:relative}.tt-tile-session-dot{background:var(--color-primary);border:2px solid var(--color-surface);border-radius:50%;width:8px;height:8px;position:absolute;top:5px;left:-17px}.tt-tile-session-info{flex-direction:column;gap:4px;min-width:0;display:flex}.tt-tile-action-btn{background:var(--color-primary-subtle);width:32px;height:32px;color:var(--color-primary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;transition:all .2s;display:flex}.tt-tile-action-btn:hover:not(:disabled){background:var(--color-primary);color:#fff}.tt-tile-action-btn:disabled{opacity:.55;cursor:not-allowed}.tt-tile-action-btn.is-added{background:var(--color-green-subtle);color:var(--color-green)}.tt-tile-action-btn.remove{color:var(--color-red);background:0 0}.tt-tile-action-btn.remove:hover:not(:disabled){color:var(--color-red);background:var(--color-red-subtle)}.tt-skeleton-tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;height:190px;position:relative;overflow:hidden}.tt-skeleton-tile:after{content:"";background:linear-gradient(90deg,#0000 0%,#0000000a 50%,#0000 100%);animation:1.4s infinite tt-shimmer;position:absolute;inset:0}@keyframes tt-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.tt-skeleton-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);height:64px;position:relative;overflow:hidden}.tt-skeleton-card:after{content:"";background:linear-gradient(90deg,#0000 0%,#0000000a 50%,#0000 100%);animation:1.4s infinite tt-shimmer;position:absolute;inset:0}.tt-empty{color:var(--color-text-muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:56px 24px;display:flex}.tt-empty i{opacity:.4;font-size:2.5rem}.tt-empty p{font-size:.875rem}.tt-conflict-warning{background:var(--color-yellow-subtle);border-radius:var(--radius-md);color:#7a4800;border:1px solid #f5a6234d;align-items:flex-start;gap:10px;padding:12px 14px;font-size:.825rem;animation:.2s tt-slide-in;display:flex}.tt-conflict-warning i{color:var(--color-yellow);flex-shrink:0;margin-top:1px;font-size:1rem}.tt-conflict-warning ul{margin:4px 0 0;padding-left:16px}.tt-conflict-warning ul li{font-size:.8rem}@keyframes tt-slide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.tt-dash-widget{flex-direction:column;gap:10px;display:flex}.tt-dash-next-class{background:linear-gradient(135deg, var(--color-primary), #2a7d6f);border-radius:var(--radius-md);color:#fff;align-items:center;gap:12px;padding:14px;display:flex;position:relative;overflow:hidden}.tt-dash-next-class:before{content:"";background:#ffffff12;border-radius:50%;width:80px;height:80px;position:absolute;top:-20px;right:-20px}.tt-dash-next-icon{border-radius:var(--radius-sm);background:#ffffff2e;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.1rem;display:flex}.tt-dash-next-body{flex:1;min-width:0}.tt-dash-next-label{text-transform:uppercase;letter-spacing:.06em;opacity:.75;margin-bottom:2px;font-size:.68rem;font-weight:700}.tt-dash-next-course{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:700;overflow:hidden}.tt-dash-next-meta{opacity:.8;margin-top:2px;font-size:.75rem}.tt-dash-no-class{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);align-items:center;gap:10px;padding:12px 14px;font-size:.82rem;display:flex}.tt-dash-no-class i{opacity:.5;font-size:1.1rem}.tt-dash-link{color:var(--color-primary);justify-content:space-between;align-items:center;font-size:.78rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:flex}.tt-dash-link:hover{opacity:.75}.tt-free-rooms-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:20px;flex-direction:column;gap:10px;padding:15px;display:flex}.tt-free-rooms-card:hover{box-shadow:var(--shadow-md);border-color:#2a323f}.tt-free-rooms-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.tt-free-rooms-tag{background:var(--color-primary-subtle);color:var(--color-primary);letter-spacing:.06em;border-radius:var(--radius-pill);align-items:center;padding:4px 10px;font-size:.72rem;font-weight:800;display:inline-flex}.tt-free-rooms-count{background:var(--color-primary-subtle);color:var(--color-primary);white-space:nowrap;border-radius:99px;padding:2px 10px;font-size:.75rem;font-weight:700}.tt-free-rooms-subtitle{color:var(--color-text-muted);font-size:.78rem;font-weight:600}.tt-free-rooms-hero-time{letter-spacing:-.02em;color:var(--color-text-primary);font-family:Aboreto,sans-serif;font-size:2.4rem;font-weight:600;line-height:1.1}.tt-free-rooms-hero-end{color:var(--color-text-muted);margin-top:4px;font-size:.8rem;font-weight:600}.tt-free-rooms-pills{word-break:break-word;flex-wrap:wrap;gap:6px;display:flex}.tt-room-pill{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary);white-space:normal;word-break:break-word;border-radius:6px;padding:3px 10px;font-size:.78rem;font-weight:500}.tt-teacher-slot-count{background:var(--color-surface-alt,var(--color-bg));border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:99px;padding:2px 9px;font-size:.72rem;font-weight:700}.tt-teacher-day-label{text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:.72rem;font-weight:800;display:block}.tt-teachers-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.tt-teacher-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);cursor:pointer;text-align:center;border-radius:20px;flex-direction:column;justify-content:space-between;align-items:center;gap:8px;padding:16px 12px;display:flex}.tt-teacher-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tt-teacher-avatar{background:var(--color-primary-subtle);width:48px;height:48px;color:var(--color-primary);letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:800;display:flex}.tt-teacher-name{color:var(--color-text-primary);word-break:break-word;font-size:.82rem;line-height:1.3}.tt-teacher-slot-pill{background:var(--color-bg);color:#000;border:1px solid #2a7d6f4d;border-radius:99px;padding:2px 10px;font-size:.72rem;font-weight:700}.tt-feature-notice{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-secondary);align-items:flex-start;gap:10px;padding:14px 16px;font-size:.875rem;display:flex}.tt-feature-notice i{color:var(--color-text-muted);flex-shrink:0;margin-top:1px;font-size:1.1rem}.tt-feature-notice p{margin:0}.tt-tile-clickable{cursor:pointer}.tt-tile-clickable:hover{box-shadow:var(--shadow-md)}.tt-tile-clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tt-card-arrow{color:var(--color-text-muted);flex-shrink:0;align-self:flex-start;font-size:1.05rem;transition:color .2s,transform .2s}.tt-tile-clickable:hover .tt-card-arrow{color:var(--color-primary);transform:translate(2px,-2px)}.tt-tile-card-top-right{align-items:center;gap:6px;display:flex}.tt-teacher-card{position:relative}.tt-teacher-card-arrow{position:absolute;top:10px;right:12px}.tt-teacher-card:hover .tt-teacher-card-arrow{color:var(--color-primary);transform:translate(2px,-2px)}.tt-modal-scroll{scrollbar-width:none;flex-direction:column;gap:16px;max-height:60vh;padding-right:4px;display:flex;overflow-y:auto}.tt-modal-scroll .tt-tile-meta-row{white-space:normal;text-overflow:unset;overflow:visible}.tt-room-pill.is-lab{color:var(--color-primary);background:#2a7d6f14;border-color:#2a7d6f40;font-weight:600}.tt-skeleton-dash{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);height:72px;position:relative;overflow:hidden}.tt-skeleton-dash:after{content:"";background:linear-gradient(90deg,#0000 0%,#0000000a 50%,#0000 100%);animation:1.4s infinite tt-shimmer;position:absolute;inset:0}@media (width<=768px){.tt-hero{flex-direction:column;align-items:flex-start}.tt-hero-actions{flex-direction:column;align-items:stretch;width:100%}.tt-day-tabs{justify-content:center;gap:4px}.tt-day-tab{padding:7px 12px;font-size:.78rem}.tt-tab{padding:6px 12px;font-size:.78rem}.tt-tab-bar{align-self:center}}@media (width<=480px){.tt-page{gap:10px}.tt-teachers-grid{grid-template-columns:repeat(2,1fr)}.tt-hero{gap:14px;padding:20px 16px}.tt-tab-bar{scroll-snap-type:x proximity;scrollbar-width:none;align-self:stretch;gap:0;margin:0;padding:2px 4px 6px;overflow-x:auto;transform:none;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000 100%);mask-image:linear-gradient(90deg,#000 85%,#0000 100%)}.tt-tab-bar::-webkit-scrollbar{display:none}.tt-tab{scroll-snap-align:start;flex-shrink:0;gap:4px;padding:5px 11px;font-size:.74rem}.tt-day-tab-full{display:none}.tt-day-tab-abbr{display:inline}.tt-day-tabs{gap:4px}.tt-day-tab{padding:6px 10px;font-size:.72rem}.tt-results-header{gap:6px;font-size:.72rem}.tt-results-count{padding:2px 7px;font-size:.66rem}.tt-group-day-header{font-size:1.25rem}.tt-tile-grid{gap:12px}.tt-tile{border-radius:16px;flex-direction:column;gap:8px;padding:15px}.tt-tile-code,.tt-tile-reserved-badge{padding:3px 8px;font-size:.65rem}.tt-tile-title{font-size:1.2rem}.tt-tile-section{font-size:.72rem}.tt-tile-footer{gap:8px;padding-top:10px}.tt-tile-meta{gap:3px}.tt-tile-meta-row{gap:4px;font-size:.72rem}.tt-tile-meta-row i{font-size:.76rem}.tt-tile-sessions{gap:8px}.tt-tile-sessions.is-multi{padding-left:15px}.tt-tile-session-dot{width:7px;height:7px;left:-14px}.tt-tile-action-btn{width:27px;height:27px;font-size:.95rem}.tt-skeleton-tile{border-radius:16px;height:155px}.tt-slot-main{font-size:.78rem}.tt-slot-meta-item{font-size:.7rem}.tt-search-input{padding:9px 38px;font-size:.85rem}.tt-search-icon{font-size:.92rem;left:12px}.tt-search-clear{font-size:.92rem;right:10px}.tt-conflict-warning{padding:10px 12px;font-size:.78rem}}.resources-page{flex-direction:column;gap:20px;display:flex}.resources-hero{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:32px;display:flex}.resources-toolbar{flex-shrink:0;align-items:center;gap:12px;display:flex}.resources-search-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.resources-search{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);min-width:200px;box-shadow:none;flex:1;align-items:center;gap:8px;max-width:100%;padding:10px 16px;display:flex}.resources-search i{color:var(--color-text-muted);font-size:1rem}.resources-search input{width:100%;color:var(--color-text-primary);background:0 0;border:none;outline:none;font-size:.9rem}.resources-search input::placeholder{color:var(--color-text-muted)}.resources-filters{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:24px;display:flex}.filter-group{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.filter-group-label{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);font-size:.72rem;font-weight:800}.filter-chip-group{background-color:var(--color-page);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:2px;padding:4px;display:inline-flex}.filter-chip{color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:3px 14px;font-size:.8rem;font-weight:700;transition:all .15s}.filter-chip:hover{background:var(--color-page);color:var(--color-text-primary)}.filter-chip.active{background-color:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 3px #0000001a}.course-grid-section{flex-direction:column;display:flex}.course-grid{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:20px;display:grid}.resource-course-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);color:inherit;border-radius:20px;flex-direction:column;gap:14px;padding:24px;text-decoration:none;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.resource-course-card:hover{box-shadow:var(--shadow-md);border-color:#2a7d6f4d}.resource-course-card-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.resource-course-card-badges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.resource-course-card-code{background:var(--color-primary-subtle);color:var(--color-primary);letter-spacing:.06em;border-radius:var(--radius-pill);align-items:center;padding:4px 10px;font-size:.72rem;font-weight:800;display:inline-flex}.resource-course-card-arrow{color:var(--color-text-muted);flex-shrink:0;font-size:1.1rem;transition:all .2s}.resource-course-card:hover .resource-course-card-arrow{color:var(--color-primary);transform:translate(2px,-2px)}.resource-course-card-title{letter-spacing:-.02em;color:var(--color-text-primary);font-size:1.5rem;font-weight:800;line-height:1.25}.resource-course-card-alias{color:var(--color-text-muted);margin-top:-10px;font-size:.78rem;font-weight:600}.resource-course-card-desc{color:var(--color-text-secondary);line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;line-height:1.55;display:-webkit-box;overflow:hidden}.resource-course-card-chips{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.resource-course-card-chip{background:var(--color-page);border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:4px 10px;font-size:.74rem;font-weight:700;display:inline-flex}.resource-chip-count{background:var(--color-surface);color:var(--color-text-primary);border-radius:999px;padding:1px 6px;font-size:.68rem;font-weight:800}.resource-course-card-chip-more{color:var(--color-primary);background:var(--color-primary-subtle);border-color:#0000}.resource-course-card-footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding-top:14px;display:flex}.resource-course-card-count{color:var(--color-primary);font-size:.82rem;font-weight:700}.resource-course-card-footer-empty{border-top:1px dashed var(--color-border)}.resource-course-card-count.empty{color:var(--color-text-muted);font-weight:600}.resource-card-action{white-space:nowrap;cursor:pointer;border:none;border-radius:10px;align-items:center;gap:5px;font-size:.78rem;font-weight:700;transition:background .18s,opacity .18s;display:inline-flex}.resource-card-action.enroll{background:var(--color-primary);color:#fff;padding:6px 12px}.resource-card-action.enroll:hover:not(:disabled){background:var(--color-primary-hover)}.resource-card-action.enroll:disabled{opacity:.65;cursor:not-allowed}.resource-card-action.drop{color:#d93025b8;background:#d9302512;justify-content:center;width:30px;height:30px;font-size:.95rem}.resource-card-action.drop:hover:not(:disabled){color:var(--color-red);background:#d930251f}.drop-bin-icon{justify-content:center;align-items:center;width:1em;height:1em;display:inline-flex;position:relative}.drop-bin-icon i{font-size:inherit;justify-content:center;align-items:center;line-height:1;display:flex;position:absolute;inset:0}.drop-bin-base{clip-path:inset(32% 0 0)}.drop-bin-lid{clip-path:inset(0 0 68%);transform-origin:50% 100%;transition:transform .22s cubic-bezier(.34,1.56,.64,1)}.resource-card-action.drop:hover:not(:disabled) .drop-bin-lid{transform:rotate(-22deg)}.resource-card-action .btn-spinner{border:2px solid color-mix(in srgb, currentColor 30%, transparent);border-top-color:currentColor;border-radius:50%;width:11px;height:11px;animation:.65s linear infinite resource-card-action-spin}@keyframes resource-card-action-spin{to{transform:rotate(360deg)}}.resource-card-action.enroll i{transition:transform .22s cubic-bezier(.34,1.56,.64,1);display:inline-flex}.resource-card-action.enroll:hover:not(:disabled) i{transform:rotate(90deg)}.modal-content-inner{text-align:center;flex-direction:column;align-items:center;width:100%;margin:0 auto;padding:12px 0;display:flex}.modal-icon-large{color:var(--color-red);justify-content:center;align-items:center;margin-bottom:16px;display:flex}.review-panel{flex-direction:column;gap:20px;display:flex}.review-tabs{align-items:center;gap:12px;margin-bottom:8px;display:inline-flex}.review-section{flex-direction:column;gap:12px;display:flex}.review-section-header{color:var(--color-text-primary);justify-content:space-between;align-items:center;padding:6px 4px;font-size:.95rem;font-weight:800;display:flex}.review-section-header h2{letter-spacing:-.01em;font-size:1rem;font-weight:800}.review-count{color:var(--color-primary);background:#2a7d6f1f;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:700}.review-list{gap:14px;display:grid}.review-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.review-main{flex-direction:column;gap:6px;display:flex}.review-title{color:var(--color-text-primary);font-size:1rem;font-weight:700}.review-meta{color:var(--color-text-secondary);font-size:.8rem}.review-actions{align-items:center;gap:10px;display:flex}.review-reason{flex-direction:column;gap:10px;width:100%;margin-top:4px;display:flex}.review-reason label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em;padding-left:4px;font-size:.75rem;font-weight:800}.review-reason textarea{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-page);width:100%;color:var(--color-text-primary);resize:vertical;border-radius:16px;min-height:140px;padding:16px;font-family:inherit;font-size:.95rem;line-height:1.6;transition:all .25s}.review-reason textarea:focus{outline:none}.review-reason textarea::placeholder{color:var(--color-text-muted);font-style:italic}.contribute-form{flex-direction:column;gap:20px;display:flex}.form-group label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:700}@keyframes skeleton-shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton-chip{border-radius:999px;height:30px}.skeleton-hero{pointer-events:none}.skeleton-hero-text{flex-direction:column;display:flex}.skeleton-search-bar{border-radius:999px;width:260px;height:42px}.skeleton-btn{border-radius:10px;width:120px;height:42px}.skeleton-chip-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.resource-course-card-skeleton{background:var(--color-surface);border:1px solid var(--color-border);pointer-events:none;border-radius:20px;flex-direction:column;gap:14px;padding:24px;display:flex}.skeleton-card-top{justify-content:space-between;align-items:center;display:flex}.skeleton-card-footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-top:auto;padding-top:14px;display:flex}@media (width<=950px){.resources-search-toolbar{flex-direction:column;align-items:stretch}.filter-chip-group{justify-content:center;align-self:start}.filter-chip{text-align:center;line-clamp:2;-webkit-line-clamp:2;overflow-wrap:break-word;word-break:break-word;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media (width<=768px){.resources-page{gap:var(--space-4)}.resources-search{min-width:0}.resources-filters{flex-wrap:wrap;gap:14px}.resources-toolbar{justify-content:space-between;width:100%}.resources-search,.resources-search.compact{width:100%}}@media (width<=600px){.resources-hero{padding:20px}.resources-toolbar{flex-direction:column;align-items:stretch;width:100%}.resources-toolbar .btn{width:100%}.resources-filters{flex-direction:column;align-items:normal}.skeleton-search-bar,.skeleton-btn{width:100%}}@media (width<=480px){.filter-chip-group{align-self:center}}.admin-review-panel{flex-direction:column;gap:16px;display:flex}.admin-stat-card{border:1px solid var(--color-border);background:var(--color-surface);min-width:160px;box-shadow:var(--shadow-sm);border-radius:18px;flex:1;align-items:center;gap:14px;padding:18px 22px;display:flex}.admin-toolbar-resources{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.admin-search-input{flex:1;min-width:220px;max-width:340px}.admin-quota-badge{border-radius:var(--radius-pill,999px);border:1px solid var(--color-border);background:var(--color-page);color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0;align-items:center;gap:10px;padding:6px 14px;font-size:.78rem;font-weight:700;display:inline-flex}.admin-card-wrap{border-radius:16px;flex-direction:column;transition:box-shadow .18s;display:flex}.admin-card-wrap.is-expanded{box-shadow:var(--shadow-md)}.admin-card-wrap.is-expanded .admin-resource-card{border-bottom-color:#0000;border-bottom-right-radius:0;border-bottom-left-radius:0}.admin-resource-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;transition:border-color .18s,box-shadow .18s;display:flex}.admin-resource-card:hover{box-shadow:var(--shadow-md);border-color:#2a7d6f38}.admin-resource-left{flex:1;align-items:flex-start;gap:14px;min-width:0;display:flex}.admin-resource-icon{color:#c4443a;flex-shrink:0;margin-top:2px;font-size:1.7rem}.admin-resource-info{flex-direction:column;gap:6px;min-width:0;display:flex}.admin-resource-title{color:var(--color-text-primary);font-size:.95rem;font-weight:700;line-height:1.35}.admin-resource-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.admin-badge{border-radius:var(--radius-pill,999px);letter-spacing:.05em;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:800;display:inline-flex}.admin-badge-course{background:var(--color-primary-subtle);color:var(--color-primary)}.admin-badge-category{color:#4f46e5;background:#6366f114}.admin-resource-sub{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:4px;font-size:.78rem;display:flex}.admin-uploader-link{color:var(--color-primary);font-weight:600;text-decoration:none;transition:opacity .15s}.admin-uploader-link:hover{opacity:.75}.admin-resource-date{color:var(--color-text-muted)}.admin-resource-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.admin-inline-preview{background:var(--color-page);border:1px solid var(--color-border);border-top:none;border-bottom-right-radius:16px;border-bottom-left-radius:16px;height:72vh;max-height:780px;animation:.22s expandPreview;overflow:hidden}.admin-inline-preview iframe{border:none;width:100%;height:100%;display:block}.link-preview-fallback{text-align:center;background:var(--color-page);flex-direction:column;justify-content:center;align-items:center;gap:10px;height:100%;padding:32px;display:flex}.link-preview-fallback p{color:var(--color-text-secondary);flex-direction:column;gap:2px;margin:0;font-size:.88rem;font-weight:600;display:flex}.link-preview-fallback .btn{margin-top:4px}.video-playlist-badge{border-radius:var(--radius-pill,999px);color:#0891b2;letter-spacing:.04em;text-transform:uppercase;background:#00d1ff1a;align-items:center;gap:4px;padding:2px 8px;font-size:.68rem;font-weight:800;display:inline-flex}.admin-drive-toggle{border:1.5px solid var(--color-border);background:var(--color-page);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:14px;align-items:flex-start;gap:14px;padding:14px 16px;transition:border-color .15s,background .15s;display:flex}.admin-drive-toggle:hover{border-color:var(--color-primary);background:var(--color-primary-subtle)}.admin-drive-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0;margin-top:3px}.admin-drive-toggle-content{flex:1;align-items:flex-start;gap:10px;display:flex}.admin-drive-toggle-content>i{color:var(--color-text-muted);flex-shrink:0;margin-top:1px;font-size:1.15rem}.admin-drive-toggle-content>div{flex-direction:column;gap:2px;display:flex}.admin-drive-toggle-label{color:var(--color-text-primary);font-size:.88rem;font-weight:700}.admin-drive-toggle-hint{color:var(--color-text-muted);font-size:.76rem;line-height:1.45}.admin-resource-title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.skeleton-review-card{pointer-events:none}.skeleton-review-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.skeleton-btn-sm{border-radius:10px;width:76px;height:34px}.admin-resource-checkbox{cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:flex}.admin-resource-checkbox input[type=checkbox]{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.admin-resource-checkbox-box{justify-content:center;align-items:center;display:flex}.admin-resource-checkbox-box .ri-checkbox-fill{color:var(--color-primary);font-size:1.5rem}.admin-card-wrap.is-selected .admin-resource-card{background:color-mix(in srgb, var(--color-primary) 6%, var(--color-surface));border-color:var(--color-primary)}.bulk-action-bar{background:color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));border:1px solid color-mix(in srgb, var(--color-primary) 25%, transparent);border-radius:10px;align-items:center;gap:10px;margin-bottom:10px;padding:10px 14px;font-size:.875rem;display:flex}.bulk-action-count{color:var(--color-primary);align-items:center;gap:6px;font-weight:600;display:flex}.bulk-deselect-btn{cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;margin-right:auto;padding:0;font-size:.8125rem;text-decoration:underline}.bulk-deselect-btn:hover{color:var(--color-text)}@media (width<=720px){.admin-stats-row{gap:8px}.admin-stat-card{min-width:140px;padding:14px 16px}.admin-stat-card i{width:30px;height:30px;font-size:1rem}.admin-stat-body strong{font-size:1.2rem}.admin-toolbar-resources{flex-direction:column;align-items:stretch}.admin-search-input{max-width:100%}.admin-quota-badge{justify-content:center;width:100%}.admin-resource-card{flex-wrap:wrap;gap:12px}.admin-resource-actions{justify-content:flex-end;width:100%}.admin-inline-preview{height:55vh}}@media (width<=480px){.admin-stats-row{flex-direction:column}.admin-stat-card{min-width:unset}.admin-inline-preview{height:45vh}}.course-page{flex-direction:column;gap:24px;display:flex}.course-page-topbar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.course-page-header{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;padding:32px;display:flex}.course-page-header-main{flex-direction:column;gap:8px;max-width:640px;display:flex}.course-page-code{background:var(--color-primary-subtle);color:var(--color-primary);letter-spacing:.07em;border-radius:var(--radius-pill);align-self:flex-start;padding:4px 12px;font-size:.74rem;font-weight:800;display:inline-flex}.course-page-title{letter-spacing:-.02em;color:var(--color-text-primary);font-family:IvyOra Display Thin;font-size:2.25rem;font-weight:800}.course-page-alias{color:var(--color-text-muted);font-size:.82rem;font-weight:600}.course-page-desc{color:var(--color-text-secondary);font-size:.95rem;line-height:1.6}.course-page-stats{flex-shrink:0;gap:28px;display:flex}.course-page-stat{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.course-page-stat strong{color:var(--color-text-primary);letter-spacing:-.02em;font-size:1.6rem;font-weight:800}.course-page-stat span{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);font-size:.7rem;font-weight:700}.course-page-body{grid-template-columns:240px 1fr;align-items:start;gap:24px;display:grid}.course-sidebar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;flex-direction:column;gap:4px;padding:12px;display:flex;position:sticky;top:0}.course-sidebar-nav{flex-direction:column;gap:2px;display:flex}.course-sidebar-item{color:var(--color-text-secondary);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:.85rem;font-weight:700;transition:all .15s;display:flex}.course-sidebar-label{align-items:center;gap:10px;display:flex}.course-sidebar-label i{text-align:center;width:18px;color:var(--color-text-muted);font-size:1rem}.course-sidebar-item:hover{background:var(--color-page);color:var(--color-text-primary)}.course-sidebar-item.active{background:var(--color-primary-subtle);color:var(--color-primary)}.course-sidebar-item.active .course-sidebar-label i{color:var(--color-primary)}.course-sidebar-count{color:inherit;background:#0000000f;border-radius:999px;padding:1px 7px;font-size:.7rem;font-weight:800}.course-sidebar-item.active .course-sidebar-count{background:#2a7d6f2e}.course-sidebar-empty-hint{color:var(--color-text-muted);padding:8px 12px;font-size:.78rem}.course-sidebar-divider{background:var(--color-border);height:1px;margin:8px 4px}.course-sidebar-guide:hover{background:var(--color-primary-subtle)}.course-main{flex-direction:column;gap:20px;min-width:0;min-height:400px;display:flex}.course-main-toolbar{flex-direction:column;gap:16px;display:flex}.course-main-toolbar-controls{flex-direction:column;align-items:flex-start;gap:10px;width:100%;display:flex}.resources-search.compact{width:100%}.course-resources-sort-tabs{background:var(--color-page);border:1px solid var(--color-border);border-radius:999px;flex-shrink:0;align-items:center;gap:2px;padding:3px;display:flex}.course-resources-sort-tab{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:600;transition:all .15s}.course-resources-sort-tab:hover{color:var(--color-text-primary)}.course-resources-sort-tab.active{background:var(--color-primary-subtle);color:var(--color-primary);box-shadow:0 1px 3px #0000001a}.course-main-category-title{color:var(--color-text-primary);letter-spacing:-.01em;font-size:1.1rem;font-weight:800}.file-list{flex-direction:column;gap:10px;display:flex}.file-list-grouped{gap:16px}.file-group{flex-direction:column;display:flex}.file-group-header{cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;border:none;align-items:center;gap:8px;padding:4px 2px 10px;display:flex}.file-group-chevron{color:var(--color-text-muted);font-size:1.1rem;transition:transform .18s}.file-group.is-collapsed .file-group-chevron{transform:rotate(-90deg)}.file-group-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);font-size:.78rem;font-weight:800}.file-group-count{border-radius:var(--radius-pill);background:var(--color-page);color:var(--color-text-muted);padding:2px 8px;font-size:.72rem;font-weight:700}.file-group-body{grid-template-rows:1fr;transition:grid-template-rows .2s;display:grid}.file-group.is-collapsed .file-group-body{grid-template-rows:0fr}.file-group-body-inner{flex-direction:column;gap:10px;display:flex;overflow:hidden}.file-row{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);cursor:pointer;border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;transition:all .18s;display:flex}.file-row:hover{box-shadow:var(--shadow-md);border-color:#2a7d6f40}.file-main{align-items:center;gap:16px;min-width:0;display:flex}.file-type-icon{color:#c4443a;flex-shrink:0;font-size:1.5rem}.video-type-icon{color:var(--color-blue)}.file-details{flex-direction:column;flex:1;min-width:0;display:flex}.file-title{color:var(--color-text-primary);min-width:0;font-size:.95rem;font-weight:700}.file-title-row{flex-wrap:wrap;align-items:center;column-gap:8px;display:flex}.video-playlist-badge{border-radius:var(--radius-pill);background:var(--color-primary-subtle);color:var(--color-blue);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;align-items:center;gap:4px;padding:2px 8px;font-size:.68em;font-weight:800;display:inline-flex}.video-playlist-badge i{font-size:1.15em}.file-meta{color:var(--color-text-muted);font-size:.75rem}.file-uploader-link{color:var(--color-text-muted);cursor:pointer;text-decoration:none}.file-uploader-link:hover{color:var(--color-primary);text-decoration:underline}.file-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.action-btn{border:1px solid var(--color-border);background:var(--color-primary-subtle);width:38px;height:38px;color:var(--color-text-secondary);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;font-size:1.05rem;text-decoration:none;transition:all .2s;display:flex}.action-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.file-row-wrap{border-radius:16px;flex-direction:column;scroll-margin-top:90px;transition:box-shadow .18s;display:flex}.file-row-wrap.is-expanded{box-shadow:var(--shadow-md)}.file-row-wrap.is-expanded .file-row{border-bottom-color:#0000;border-bottom-right-radius:0;border-bottom-left-radius:0}.file-row-wrap.is-target-highlight .file-row{animation:1.6s target-highlight}@keyframes target-highlight{0%{background:var(--color-primary-subtle)}to{background:0 0}}.action-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.study-ai-action{color:#00d1fff2;background:radial-gradient(circle at 30% 30%,#00d1ff2e,#0000 55%),#00d1ff14;border-color:#00d1ff40}.study-ai-action:hover{background:radial-gradient(circle at 30% 30%,#00d1ff47,#0000 55%),#00d1ff24;border-color:#00d1ff61;transform:translateY(-1px)}.file-inline-preview{background:var(--color-page);border:1px solid var(--color-border);border-top:none;border-bottom-right-radius:16px;border-bottom-left-radius:16px;height:70vh;max-height:720px;animation:.2s expandPreview;overflow:hidden}.file-inline-preview.is-closing{animation:.2s forwards collapsePreview}@keyframes expandPreview{0%{opacity:0;max-height:0}55%{opacity:0;max-height:720px}to{opacity:1;max-height:720px}}@keyframes collapsePreview{0%{opacity:1;max-height:720px}35%{opacity:0;max-height:720px}to{opacity:0;max-height:0}}.file-inline-preview iframe{border:none;width:100%;height:100%;display:block}.link-preview-fallback{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;height:auto;min-height:160px;padding:32px 24px;display:flex}.link-preview-fallback>i{color:var(--color-text-muted);font-size:1.8rem}.link-preview-fallback p{color:var(--color-text-secondary);flex-direction:column;gap:2px;font-size:.88rem;display:flex}.link-preview-fallback p span{color:var(--color-text-muted);font-size:.8rem;font-weight:600}.guide-panel{flex-direction:column;gap:20px;display:flex}.guide-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.guide-panel-header h2{color:var(--color-text-primary);margin-bottom:4px;font-size:1.2rem;font-weight:800}.course-guide-eyebrow{letter-spacing:.07em;text-transform:uppercase;color:var(--color-text-muted);align-items:center;margin-bottom:6px;font-size:.72rem;font-weight:800;display:inline-flex}.guide-panel-header p{color:var(--color-text-secondary);max-width:480px;font-size:.88rem;line-height:1.55}.guide-content{background:var(--color-surface);border:1px solid var(--color-border);overflow-wrap:break-word;word-break:break-word;border-radius:18px;min-width:0;padding:28px 32px}.guide-content img{max-width:100%;height:auto}.guide-content pre{max-width:100%;overflow-x:auto}.guide-content code{overflow-wrap:break-word;word-break:break-word}.guide-content pre code{word-break:normal;white-space:pre}.guide-content table{max-width:100%;display:block;overflow-x:auto}.guide-panel-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.guide-panel-actions .btn{min-height:32px}.guide-panel-header .btn{white-space:nowrap}.guide-empty-v2{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:6px;padding:48px 40px;display:flex}.guide-empty-v2-icon{border-radius:var(--radius-pill);background:var(--color-primary-subtle);width:56px;height:56px;color:var(--color-primary);justify-content:center;align-items:center;margin-bottom:10px;font-size:1.5rem;display:flex}.guide-empty-v2 h3{color:var(--color-text-primary);letter-spacing:-.01em;font-size:1.2rem;font-weight:800}.guide-empty-v2-lede{color:var(--color-text-secondary);max-width:460px;margin-bottom:8px;font-size:.9rem;line-height:1.6}.guide-empty-v2-options{align-items:stretch;gap:20px;width:100%;max-width:760px;margin-top:20px;display:flex}.guide-empty-v2-option{text-align:center;border:1px solid var(--color-border);background:var(--color-page);border-radius:16px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;min-width:0;padding:24px 20px;transition:all .18s;display:flex}.guide-empty-v2-option.is-recommended{background:var(--color-surface);box-shadow:var(--shadow-sm);border-color:#2a7d6f47}.guide-empty-v2-option h4{color:var(--color-text-primary);font-size:1rem;font-weight:800}.guide-empty-v2-option p{color:var(--color-text-secondary);font-size:.82rem;line-height:1.55}.guide-empty-v2-option .btn{min-height:32px;margin-top:4px}.guide-empty-v2-option-eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary);align-items:center;gap:4px;font-size:.68rem;font-weight:800;display:inline-flex}.guide-empty-v2-option-hint{color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.72rem;display:flex}.guide-empty-v2-divider{background:var(--color-border);flex-shrink:0;justify-content:center;align-items:center;width:1px;display:flex;position:relative}.guide-empty-v2-divider span{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-pill);justify-content:center;align-items:center;width:26px;height:26px;font-size:.68rem;font-weight:700;display:flex;position:absolute}@media (width<=700px){.guide-empty-v2{padding:32px 20px}.guide-empty-v2-options{flex-direction:column}.guide-empty-v2-divider{width:100%;height:1px;margin:-6px 0}}.course-skeleton-sidebar-row{border-radius:12px;height:38px;margin-bottom:6px}.course-skeleton-file-row{border-radius:16px;height:70px}@media (width<=880px){.course-page-body{grid-template-columns:1fr}.course-sidebar{scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex-direction:row;align-items:center;gap:6px;padding:8px 10px;position:static;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 88%,#0000 100%);mask-image:linear-gradient(90deg,#000 88%,#0000 100%)}.course-sidebar::-webkit-scrollbar{display:none}.course-sidebar-nav{flex-direction:row;flex-shrink:0;gap:4px}.course-sidebar-item{white-space:nowrap;scroll-snap-align:start;border:1px solid var(--color-border);background:#fff;border-radius:999px;flex-shrink:0;min-height:38px;padding:8px 14px;transition:background .15s,color .15s}.course-sidebar-label i,.course-sidebar-count{display:none}.course-sidebar-divider{flex-shrink:0;width:1px;height:20px;margin:0 4px}.course-sidebar-guide{scroll-snap-align:start;flex-shrink:0}.file-inline-preview{height:60vh}}@media (width<=768px){.course-main-toolbar{flex-direction:column;align-items:stretch}.course-main-toolbar-controls{flex-direction:column;justify-content:center;align-items:center;width:100%}}@media (width<=600px){.file-main{align-items:normal}.course-page-header{align-items:flex-start;padding:20px}.course-page-title{font-size:1.6rem}.course-page-stats{justify-content:flex-start;gap:20px;width:100%}.course-page-stat{align-items:flex-start}}@media (width<=480px){.file-row{flex-wrap:wrap}.file-title{max-width:100vw}.file-actions{justify-content:flex-end;width:100%}.file-inline-preview{height:50vh}.guide-content{padding:20px}.course-page-topbar{flex-direction:column;align-items:flex-start}.course-page-topbar button{align-self:center;width:100%}.course-page{gap:10px}}.edit-modal-cards{align-items:stretch;gap:var(--space-6);display:flex}.edit-modal-cards .guide-empty-v2-option{flex:1}.edit-modal-card-actions{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}@media (width<=600px){.edit-modal-cards{flex-direction:column}}.guide-content-skeleton .skeleton-text{margin-bottom:10px}.guide-content-skeleton .skeleton-text:last-child{margin-bottom:0}.guide-contributing-link{align-items:center;gap:var(--space-2);margin-top:var(--space-6);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:700;transition:color .15s;display:inline-flex}.guide-contributing-link:hover{color:var(--color-primary)}.guide-contributing-link i{font-size:.9rem}@media (width<=950px){.course-main-toolbar-controls .sort-tabs{align-self:center}}.course-search-picker{position:relative}.course-search-trigger{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text-primary);background:var(--color-surface);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:.9rem;font-weight:600;transition:border-color .15s,box-shadow .15s;display:flex}.course-search-trigger:hover{border-color:#2a7d6f4d}.course-search-trigger:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.course-search-trigger.is-empty span{color:var(--color-text-muted);font-weight:500}.course-search-trigger i{color:var(--color-text-muted);flex-shrink:0;font-size:1.1rem}.course-search-option{text-align:left;border-radius:var(--radius-sm);cursor:pointer;width:100%;color:var(--color-text-primary);background:0 0;border:none;align-items:center;gap:6px;padding:8px 10px;font-size:.85rem;font-weight:600;transition:background .15s;display:flex}.course-search-option:hover{background:var(--color-page)}.course-search-option.is-selected{background:var(--color-primary-subtle);color:var(--color-primary)}.course-search-option i{flex-shrink:0;font-size:.9rem}.course-search-option-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.course-search-option-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.course-search-option-alias{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:600;overflow:hidden}.course-search-option.is-selected .course-search-option-alias{color:var(--color-primary)}.course-search-option-code{color:var(--color-text-muted);flex-shrink:0;font-size:.74rem;font-weight:700}.course-search-option.is-selected .course-search-option-code{color:var(--color-primary)}.course-search-empty{color:var(--color-text-muted);padding:10px;font-size:.82rem}.contribute-page{flex-direction:column;gap:24px;display:flex}.contribute-page-topbar{display:flex}.course-back-link{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:.9rem;font-weight:400;transition:color .15s;display:inline-flex}.course-back-link:hover{color:var(--color-text-primary)}.contribute-page-header{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;flex-direction:column;gap:8px;padding:32px;display:flex}.contribute-page-header h1{letter-spacing:-.02em;color:var(--color-text-primary);font-family:IvyOra Display Thin;font-size:2rem;font-weight:800}.contribute-page-header p{color:var(--color-text-secondary);max-width:520px;font-size:.92rem;line-height:1.6}.contribute-form-page{background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;flex-direction:column;gap:20px;padding:28px 32px;display:flex}.contribute-success{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:12px;padding:64px 32px;display:flex}.contribute-success i{color:var(--color-primary);font-size:2.8rem}.contribute-success h3{color:var(--color-text-primary);font-size:1.2rem;font-weight:800}.contribute-success p{color:var(--color-text-secondary);font-size:.9rem}.contribute-success-actions{align-items:center;gap:12px;margin-top:12px;display:flex}.form-error-banner{background:var(--color-red-subtle);color:var(--color-red);border:1px solid #d9302533;border-radius:12px;align-items:center;gap:10px;padding:12px 16px;font-size:.88rem;font-weight:600;display:flex}.form-error-banner i{flex-shrink:0;font-size:1.1rem}.category-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;display:grid}.category-card{border:1.5px solid var(--color-border);background:var(--color-page);cursor:pointer;text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:14px 10px;transition:all .18s;display:flex}.category-card:hover,.category-card.active{border-color:var(--color-primary);background:var(--color-primary-subtle)}.category-card-icon{color:var(--color-text-muted);font-size:1.35rem;transition:color .18s}.category-card:hover .category-card-icon,.category-card.active .category-card-icon{color:var(--color-primary)}.category-card-name{color:var(--color-text-secondary);font-size:.76rem;font-weight:700;line-height:1.3;transition:color .18s}.category-card:hover .category-card-name,.category-card.active .category-card-name{color:var(--color-primary)}.contribute-details{flex-direction:column;gap:20px;padding-top:4px;animation:.18s contribute-slide-in;display:flex}@keyframes contribute-slide-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.category-blurb{background:var(--color-primary-subtle);color:var(--color-primary);border-radius:12px;align-items:center;gap:12px;padding:12px 16px;font-size:.85rem;line-height:1.55;display:flex}.category-blurb i{flex-shrink:0;margin-top:1px;font-size:1.1rem}.solution-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:inline-flex}.solution-toggle input[type=checkbox]{opacity:0;width:0;height:0;position:absolute}.solution-toggle-track{background:var(--color-border);border-radius:999px;flex-shrink:0;width:38px;height:22px;transition:background .2s;position:relative}.solution-toggle input:checked+.solution-toggle-track{background:var(--color-primary)}.solution-toggle-thumb{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000002e}.solution-toggle input:checked+.solution-toggle-track .solution-toggle-thumb{transform:translate(16px)}.solution-toggle-label{color:var(--color-text-secondary);font-size:.88rem;font-weight:600}.url-input-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);align-items:center;gap:10px;padding:0 14px;transition:border-color .15s,box-shadow .15s;display:flex}.url-input-wrap.has-error{border-color:var(--color-red)}.url-input-wrap.has-error:focus-within{box-shadow:0 0 0 3px #d930251f}.url-input-wrap .input{box-shadow:none;background:0 0;border:none;border-radius:0;padding-left:0;padding-right:0}.field-hint{color:var(--color-text-muted);font-size:.78rem;line-height:1.5}.contribute-course-alias{color:var(--color-text-muted);margin-top:6px;font-size:.78rem;font-weight:600;display:block}.lab-past-paper-fields{gap:12px;display:flex}.lab-past-paper-fields>.form-group{flex:1;min-width:0}@media (width<=600px){.lab-past-paper-fields{flex-direction:column}}.lab-daydate-row{align-items:center;gap:8px;display:flex}.lab-daydate-mode-btn{flex:0 0 96px;width:96px;font-size:.82rem}.dropzone{border:1.5px dashed var(--color-border);background:var(--color-page);cursor:pointer;border-radius:14px;outline:none;justify-content:center;align-items:center;min-height:120px;padding:24px;transition:border-color .18s,background .18s;display:flex}.bulk-dropzone{min-height:150px}.dropzone:hover,.dropzone:focus-visible,.dropzone.dragging{border-color:var(--color-primary);background:var(--color-primary-subtle)}.dropzone.has-file{border-style:solid;border-color:var(--color-border);background:var(--color-surface);cursor:default}.dropzone.has-error{border-color:var(--color-red);background:var(--color-red-subtle)}.dropzone-empty{text-align:center;color:var(--color-text-secondary);pointer-events:none;flex-direction:column;align-items:center;gap:8px;font-size:.88rem;font-weight:600;display:flex}.dropzone-empty i{color:var(--color-text-muted);font-size:2rem;transition:color .18s}.dropzone:hover .dropzone-empty i,.dropzone.dragging .dropzone-empty i{color:var(--color-primary)}.dropzone-hint{color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.74rem;font-weight:700}.dropzone-count{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:800}.file-chip-list{flex-direction:column;gap:10px;width:100%;max-height:220px;display:flex;overflow-y:auto}.file-chip{align-items:center;gap:12px;width:100%;min-height:40px;display:flex}.file-chip>i{color:#c4443a;flex-shrink:0;font-size:1.6rem}.file-chip-meta{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.file-chip-name{color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:700;overflow:hidden}.file-chip-size{color:var(--color-text-muted);font-size:.74rem}.file-chip-identifier{width:100%;min-height:34px;padding:7px 10px;font-size:.82rem}.selected-file-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.selected-file-row{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;grid-template-columns:minmax(0,1.1fr) minmax(180px,.9fr);align-items:center;gap:12px;padding:12px;display:grid}.selected-file-main{align-items:center;gap:12px;min-width:0;display:flex}.selected-file-main>i{color:#c4443a;flex-shrink:0;font-size:1.45rem}.file-chip-remove{width:28px;height:28px;color:var(--color-red);cursor:pointer;background:#d9302514;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;transition:background .15s;display:flex}.contribute-file-error{color:var(--color-red);margin-top:4px;font-size:.8rem}.contribute-filename-preview{background:var(--color-page);border:1px solid var(--color-border);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;font-size:.85rem;display:flex}.contribute-filename-preview-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0;font-size:.7rem;font-weight:700}.contribute-filename-preview code{color:var(--color-text-primary);word-break:break-all;font-family:Monaco,Courier New,monospace}.contr-form-actions{align-items:center;gap:16px;margin-top:4px;display:flex}.upload-progress{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.upload-progress-bar{background:var(--color-border);border-radius:999px;flex:1;height:5px;overflow:hidden}.upload-progress-fill{background:var(--color-primary);border-radius:999px;height:100%;transition:width .2s}.upload-progress-label{color:var(--color-text-secondary);white-space:nowrap;font-size:.78rem;font-weight:700}.contribute-select-btn{text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.contribute-select-btn span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}@media (width<=768px){.contr-form-actions{flex-direction:column}}@media (width<=600px){.contribute-page-header,.contribute-form-page{padding:20px}.category-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.upload-progress{width:100%}.selected-file-row{grid-template-columns:1fr}.contribute-success-actions{flex-direction:column;width:100%}.contribute-success-actions .btn{width:100%}}.project-detail-modal{max-width:900px}.project-detail-modal .modal-body{margin-bottom:0;padding-right:4px}.pdm-header,.pdm-meta,.pdm-links,.pdm-team-member{align-items:center;display:flex}.pdm-header{justify-content:space-between;gap:16px}.pdm-tags,.pdm-header-actions{flex-wrap:wrap;gap:8px;display:flex}.pdm-tag{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-page);color:var(--color-text-muted);text-transform:capitalize;padding:4px 10px;font-size:.72rem;font-weight:700}.pdm-tag-course{background:var(--color-primary-subtle);color:var(--color-primary);border-color:#0000;font-weight:800}.pdm-tag-status--pending{color:#8a5a00;background:#c07a001a;border-color:#c07a0033}.pdm-tag-status--rejected{color:var(--color-red);background:var(--color-red-subtle);border-color:#d9302533}.pdm-icon-action{border:1px solid var(--color-border);background:var(--color-surface);width:34px;height:34px;color:var(--color-text-secondary);cursor:pointer;border-radius:50%}.pdm-icon-action:hover{background:var(--color-page);color:var(--color-primary)}.pdm-icon-action--danger:hover{background:var(--color-red-subtle);color:var(--color-red);border-color:#d9302540}.pdm-icon-action--reported,.pdm-icon-action:disabled{color:var(--color-red);opacity:.55;cursor:not-allowed}.pdm-icon-action--reported:hover,.pdm-icon-action:disabled:hover{background:var(--color-surface);color:var(--color-red)}.pdm-title{color:var(--color-text-primary);letter-spacing:-.025em;overflow-wrap:break-word;margin:14px 0 8px;font-size:2.15rem;line-height:1.15}.pdm-meta{color:var(--color-text-secondary);flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:.86rem;display:flex}.pdm-meta-two{align-items:center}.pdm-contributor-meta{flex-wrap:wrap;align-items:baseline;gap:7px;display:flex}.pdm-contributed-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:700}.pdm-avatar,.pdm-team-avatar{background:var(--color-primary-subtle);color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.pdm-avatar{width:26px;height:26px;font-size:.7rem}.pdm-user-link{color:var(--color-text-primary);font-weight:700;text-decoration:none}.pdm-user-link:hover{color:var(--color-primary)}.pdm-date{color:var(--color-text-muted)}.pdm-heart-compact{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;align-items:center;gap:5px;margin-left:auto;padding:6px 12px;font-weight:700;display:inline-flex}.pdm-heart-compact:hover:not(:disabled),.pdm-heart-compact.active{color:#d92d20;background:#fff1f0;border-color:#d92d204d}.pdm-heart-compact:disabled{cursor:not-allowed;opacity:.55}.pdm-status{border-radius:12px;align-items:flex-start;gap:9px;padding:11px 14px;font-size:.84rem;line-height:1.45;display:flex}.pdm-status--pending{color:#8a5a00;background:#c07a0014;border:1px solid #c07a0033}.pdm-status--rejected{color:var(--color-red);background:var(--color-red-subtle);border:1px solid #d9302533}.pdm-content-grid{grid-template-columns:minmax(0,1fr) 280px;gap:20px;margin-top:4px;display:grid}.pdm-section{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);min-width:0;padding:20px}.pdm-content-grid>.pdm-section:first-child{flex-direction:column;height:fit-content;display:flex}.pdm-section h3{color:var(--color-text-muted);letter-spacing:.07em;text-transform:uppercase;gap:8px;margin:0 0 14px;font-size:.73rem;font-weight:800;display:flex}.pdm-description{color:var(--color-text-secondary);white-space:pre-wrap;overflow-wrap:break-word;margin:0;line-height:1.7}.pdm-links{flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:20px}.pdm-link{border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-text-primary);background:var(--color-page);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;text-decoration:none;display:inline-flex}.pdm-link:hover{color:var(--color-primary);border-color:var(--color-primary)}.pdm-link--primary{color:#fff;background:var(--color-primary);border-color:var(--color-primary)}.pdm-link--primary:hover{color:#fff;background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.pdm-team-list{gap:3px;display:grid}.pdm-team-member{min-width:0;color:inherit;border-radius:10px;gap:10px;padding:8px;text-decoration:none}.pdm-team-member--link:hover{background:var(--color-page)}.pdm-team-avatar{background:var(--color-primary);color:#fff;width:34px;height:34px;font-size:.75rem}.pdm-team-avatar--external{background:var(--color-page);color:var(--color-text-muted);border:1px solid var(--color-border)}.pdm-team-name{overflow-wrap:break-word;min-width:0;color:var(--color-text-primary);font-size:.86rem;font-weight:700}.pdm-team-role{border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-muted);background:var(--color-page);margin-left:auto;padding:2px 7px;font-size:.64rem;font-weight:700}.pdm-confirm-modal,.pdm-report-modal{max-width:440px}.pdm-confirm-body,.pdm-report-success{text-align:center;color:var(--color-text-secondary)}.pdm-confirm-body>i,.pdm-report-success>i{border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.4rem;display:inline-flex}.pdm-confirm-body>i{color:var(--color-red);background:var(--color-red-subtle)}.pdm-report-success>i{color:var(--color-green);background:#1e8c451a}.pdm-confirm-body h3,.pdm-report-success h3{color:var(--color-text-primary);margin:12px 0 6px}.pdm-confirm-body p,.pdm-report-success p{margin:0}.project-detail-modal--featured{background:linear-gradient(var(--color-surface), var(--color-surface)) padding-box, linear-gradient(135deg, #c9a84c, #f0d080 45%, #b8860b 100%) border-box;border-color:#0000;box-shadow:0 0 0 1px #b48c2826,0 8px 40px #a078141a}.pdm-featured-badge i{color:#7e5a00;font-size:1.2rem;animation:2.4s ease-in-out infinite star-pulse}@keyframes star-pulse{0%,to{color:#7e5a00;filter:drop-shadow(0 0 #c9a84c00)}50%{color:#c08c14;filter:drop-shadow(0 0 6px #c9a84cd9)}}.pdm-title--featured{color:#654800;font-family:IvyOra Display Thin;font-size:2.5rem;line-height:60%}.pdm-content-grid--featured{grid-template-columns:1fr}.project-detail-modal--featured .pdm-description{color:#7e5a00;opacity:.85}.project-detail-modal--featured .pdm-contributed-label,.project-detail-modal--featured .pdm-date{color:#7e5a0099}.project-detail-modal--featured .pdm-user-link{color:#654800}.project-detail-modal--featured .pdm-user-link:hover{color:#a06e00}@media (width<=700px){.pdm-content-grid{grid-template-columns:1fr}.project-detail-modal{max-width:100%}}@media (width<=600px){.project-detail-modal{max-width:calc(100vw - 32px);padding:20px}.pdm-header{gap:12px}.pdm-title{font-size:1.75rem}.pdm-section{padding:16px}.pdm-description{font-size:.9rem;line-height:1.62}}@media (width<=480px){.project-detail-modal{max-width:calc(100vw - 24px);padding:16px}.pdm-header{align-items:flex-start;gap:8px}.pdm-tags{gap:5px}.pdm-tag{padding:3px 8px;font-size:.68rem}.pdm-header-actions{flex-shrink:0;gap:5px}.pdm-icon-action{width:32px;height:32px}.pdm-title{margin-top:10px;font-size:1.52rem}.pdm-meta{flex-direction:column;align-items:flex-start;gap:8px}.pdm-contributor-meta{flex:1;gap:3px 6px;min-width:0}.pdm-contributed-label{font-size:.68rem}.pdm-user-link{text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;overflow:hidden}.pdm-date{font-size:.74rem}.pdm-heart-compact{flex:none;margin-left:0;padding:5px 9px}.pdm-status{padding:10px 12px;font-size:.79rem}.pdm-content-grid{gap:12px}.pdm-section{padding:14px}.pdm-section h3{margin-bottom:10px;font-size:.69rem}.pdm-description{font-size:.86rem;line-height:1.55}.pdm-team-member{padding:6px}.pdm-team-avatar{width:30px;height:30px}.pdm-team-name{font-size:.82rem}.pdm-team-role{display:none}}.projects-page{flex-direction:column;gap:20px;display:flex}.projects-hero{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;justify-content:space-between;align-items:center;gap:24px;padding:32px;display:flex}.projects-hero-content{flex-direction:column;gap:8px;max-width:640px;display:flex}.projects-hero-title{letter-spacing:-.02em;color:var(--color-text-primary);margin:0;font-family:IvyOra Display Thin;font-size:2.25rem;font-weight:800}.projects-hero-subtitle{color:var(--color-text-secondary);margin:0;font-size:.95rem;line-height:1.6}.projects-toolbar{flex-wrap:wrap;gap:12px;display:flex}.projects-search{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);flex:1;align-items:center;gap:10px;min-width:200px;padding:10px 16px;display:flex}.projects-search i{color:var(--color-text-muted);flex-shrink:0;font-size:1.05rem}.projects-search input{color:var(--color-text-primary);background:0 0;border:none;outline:none;width:100%;font-size:.88rem}.projects-search input::placeholder{color:var(--color-text-muted)}.projects-search-clear{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1rem;transition:color .15s;display:flex}.projects-search-clear:hover{color:var(--color-text-primary)}.projects-filters{flex-shrink:0;align-items:center;gap:10px;display:flex}.projects-select-wrap{align-items:center;display:flex;position:relative}.projects-select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer;text-align:left;align-items:center;gap:8px;width:300px;padding:5px 14px;font-family:inherit;font-size:.85rem;font-weight:600;transition:border-color .15s;display:flex}.projects-select-btn:hover,.projects-select-btn.open{border-color:var(--color-primary)}.projects-select-btn:focus-visible{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #1a50471f}.projects-select-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.projects-select-chevron{color:var(--color-text-muted);flex-shrink:0;font-size:1rem;transition:transform .15s}.projects-select-btn.open .projects-select-chevron{transform:rotate(180deg)}.projects-course-results{padding:4px}.projects-course-item{border-radius:var(--radius-sm);width:100%;color:var(--color-text-primary);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-family:inherit;font-size:.85rem;font-weight:600;transition:background .12s;display:flex}.projects-course-item:hover{background:var(--color-page)}.projects-course-item--active{color:var(--color-primary);background:var(--color-primary-subtle)}.projects-course-item--active:hover{background:var(--color-primary-subtle)}.projects-course-item-hint{color:var(--color-text-muted);flex-shrink:0;font-size:.75rem;font-weight:700}.projects-course-item--active .projects-course-item-hint{color:var(--color-primary);opacity:.7}.projects-course-empty{color:var(--color-text-muted);text-align:center;padding:10px 12px;font-size:.83rem}.projects-sort-tabs{background:var(--color-page);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:2px;padding:3px;display:flex}.projects-sort-tab{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:600;transition:all .15s}.projects-sort-tab:hover{color:var(--color-text-primary)}.projects-sort-tab.active{background-color:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 3px #0000001a}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:16px;display:grid}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;flex-direction:column;gap:10px;padding:20px;transition:box-shadow .18s,border-color .18s;display:flex}.project-card:hover{box-shadow:var(--shadow-md);border-color:#2a7d6f40}.project-card:focus-visible{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #1a50471f}.project-card-header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-card-course{background:var(--color-primary-subtle);color:var(--color-primary);letter-spacing:.05em;border-radius:var(--radius-pill);text-overflow:ellipsis;white-space:nowrap;align-items:center;max-width:180px;padding:3px 10px;font-size:.7rem;font-weight:800;display:inline-flex;overflow:hidden}.project-card-term,.project-card-status{color:var(--color-text-muted);background:var(--color-page);border:1px solid var(--color-border);border-radius:var(--radius-pill);white-space:nowrap;padding:2px 8px;font-size:.72rem;font-weight:700}.project-card-status{text-transform:capitalize}.project-card-status--pending{color:#8a5a00;background:#c07a001a;border-color:#c07a0033}.project-card-status--rejected{color:var(--color-red);background:var(--color-red-subtle);border-color:#d9302533}.project-card-title{color:var(--color-text-primary);letter-spacing:-.01em;overflow-wrap:break-word;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:1.05rem;font-weight:800;line-height:1.35;display:-webkit-box;overflow:hidden}.project-card-desc{color:var(--color-text-secondary);overflow-wrap:break-word;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;flex:1;margin:0;font-size:.85rem;line-height:1.6;display:-webkit-box;overflow:hidden}.project-card-footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:10px;margin-top:4px;padding-top:12px;display:flex}.project-card-team{align-items:center;display:flex}.project-avatar{background:var(--color-primary-subtle);width:26px;height:26px;color:var(--color-primary);border:2px solid var(--color-surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:-8px;font-size:.7rem;font-weight:800;display:flex}.project-card-team .project-avatar:first-child{margin-left:0}.project-avatar-overflow{background:var(--color-page);color:var(--color-text-muted);font-size:.62rem}.project-card-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.project-card-skeleton{cursor:default;pointer-events:none}.project-heart-btn{border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;flex-shrink:0;align-items:center;gap:5px;padding:4px 10px 4px 8px;font-size:.9rem;font-weight:700;transition:all .15s;display:inline-flex}.project-heart-btn i{font-size:1rem;line-height:1}.project-heart-btn span{font-size:.8rem;line-height:1}.project-heart-btn:hover:not(:disabled){color:#d92d20;background:#fff1f0;border-color:#d92d20}.project-heart-btn:disabled{cursor:not-allowed;opacity:.55}.project-heart-btn.active{color:#d92d20;background:#fff1f0;border-color:#d92d204d}.project-action-btn{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;text-decoration:none;transition:all .15s;display:flex}.project-action-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-subtle)}.project-action-link{color:var(--color-text-secondary)}.project-action-delete:hover{border-color:var(--color-red);color:var(--color-red);background:var(--color-red-subtle)}.project-row-skeleton{pointer-events:none}.project-submit-modal{max-width:640px}.project-submit-modal .modal-body{gap:16px}.project-submit-modal .report-form-page{gap:14px}.report-form-page{flex-direction:column;gap:16px;padding:4px 0 0;display:flex}.form-group label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:.8rem;font-weight:700;display:flex}.form-group .input,.form-group .select,.form-group textarea{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);border-radius:12px;padding:12px 16px;font-family:inherit;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.form-group .input:focus,.form-group .select:focus,.form-group textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #1a50471f}.form-group .select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b5a55' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:40px}.form-group .textarea{resize:vertical;overflow-wrap:break-word;word-break:break-word;white-space:pre-wrap;min-height:110px}.desc-counter{letter-spacing:0;text-transform:none;color:var(--color-text-muted);margin-left:auto;font-size:.72rem;font-weight:600;transition:color .15s}.desc-counter--warn{color:#c07a00}.desc-counter--over{color:var(--color-red)}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.url-input-wrap{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;align-items:center;gap:10px;min-width:0;padding:0 14px;transition:border-color .15s,box-shadow .15s;display:flex}.url-input-wrap:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #1a50471f}.url-input-wrap>i{color:var(--color-text-muted);flex-shrink:0;font-size:1.05rem}.url-input-wrap .input{min-width:0;box-shadow:none;overflow-wrap:break-word;word-break:break-all;background:0 0;border:none;border-radius:0;padding:12px 0}.url-input-wrap .input:focus{box-shadow:none;border-color:#0000}.contributor-row{grid-template-columns:148px 1fr auto;align-items:center;gap:8px;margin-bottom:8px;display:grid}.select-dropdown-trigger.contributor-mode-select{font-size:.82rem}.contributor-row .input-prefix-wrap{position:relative}.contributor-row .input-prefix{color:var(--color-text-muted);pointer-events:none;font-size:.85rem;font-weight:700;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.file-chip-remove{background:var(--color-red-subtle);width:28px;height:28px;color:var(--color-red);cursor:pointer;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;transition:background .15s;display:flex}.file-chip-remove:hover{background:#d930252e}.contribute-form-actions{align-items:center;gap:10px;margin-top:4px;display:flex}.field-hint{color:var(--color-text-muted);font-size:.75rem;font-weight:400}.form-error-banner{background:var(--color-red-subtle);color:var(--color-red);overflow-wrap:break-word;word-break:break-word;border:1px solid #d9302533;border-radius:12px;align-items:flex-start;gap:10px;padding:12px 16px;font-size:.88rem;font-weight:600;display:flex}.form-error-banner i{flex-shrink:0;margin-top:1px;font-size:1.1rem}.submit-project-form label{flex-wrap:wrap;display:flex}.select-dropdown-trigger{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text-primary);cursor:pointer;background-image:none;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;font-family:inherit;font-size:.9rem;transition:border-color .15s,box-shadow .15s;display:flex}.select-dropdown-trigger:hover{border-color:var(--color-primary-light)}.select-dropdown-trigger:focus-visible{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #1a50471f}.select-dropdown-trigger i{color:var(--color-text-muted);flex-shrink:0;font-size:1rem}.dropdown-course-list,.dropdown-season-list,.dropdown-year-list,.dropdown-mode-list,.dropdown-user-list{padding:4px}.dropdown-item--active{background:var(--color-primary-subtle);color:var(--color-primary);font-weight:600}.dropdown-user-list .dropdown-item{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.dropdown-user-fullname{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.8rem;overflow:hidden}.dropdown-user-status{color:var(--color-text-muted);text-align:center;padding:10px 12px;font-size:.82rem}.project-card--featured{background:linear-gradient(var(--color-surface), var(--color-surface)) padding-box, linear-gradient(135deg, #c9a84c, #f0d080 45%, #b8860b 100%) border-box;box-shadow:0 0 0 1px #b48c2826, var(--shadow-sm), 0 4px 24px #a0781414;border-color:#0000;position:relative}.project-card--featured:before{content:"";border-radius:var(--radius-lg);pointer-events:none;background:linear-gradient(135deg,#c9a84c0f 0%,#0000 50%);position:absolute;inset:0}.project-card--featured:hover{box-shadow:0 0 0 1px #b48c2847, var(--shadow-md), 0 8px 32px #a0781421}.project-card-featured-badge{flex-shrink:0;margin-left:auto}.project-card-featured-badge i{color:#7e5a00;font-size:1.1rem;animation:2.4s ease-in-out infinite star-pulse}.project-card--featured .project-card-title{color:#654800;font-family:IvyOra Display Thin;font-size:1.5rem}.project-card--featured .project-card-desc{color:#7e5a00;opacity:.8;-webkit-line-clamp:unset;line-clamp:unset;display:block;overflow:visible}.featured-desc-break{height:6px;display:block}.project-card--featured .project-card-header{margin-bottom:-2.5rem}.project-card--featured .project-card-footer{justify-content:flex-end}@media (width<=950px){.projects-toolbar{flex-direction:column}}@media (width<=768px){.projects-hero{padding:20px}.projects-hero-title{font-size:1.6rem}.projects-toolbar{flex-direction:column;align-items:stretch}.projects-search{min-width:0}.projects-filters{flex-wrap:wrap}.projects-select-wrap{flex:1}.projects-select{width:100%;min-width:0}.project-row{gap:10px;padding:16px}.project-row-actions{gap:6px}.contributor-mode-select{grid-column:1/-1}}@media (width<=600px){.projects-page{gap:var(--space-4)}.url-form-row{grid-template-columns:1fr}.contributor-row{grid-template-rows:auto auto;grid-template-columns:1fr auto}.contributor-row div:first-child{grid-column:1/-1}.projects-hero{flex-direction:column;align-items:normal}.contribute-form-actions{flex-flow:wrap}.contribute-form-actions>*{flex:1;min-width:0}.projects-filters{flex-direction:column;align-items:normal}.projects-sort-tabs{justify-content:center;align-self:center}.projects-sort-tab{justify-content:center}.project-row-course{max-width:160px}.project-submit-modal{max-width:calc(100vw - 32px);max-height:80vh;padding:20px}.project-submit-modal .form-group{gap:6px}.project-submit-modal .form-group .input,.project-submit-modal .form-group .select,.project-submit-modal .form-group textarea{border-radius:10px;padding:10px 12px;font-size:.88rem}.project-submit-modal .form-group .textarea{min-height:96px}.project-submit-modal .url-input-wrap{border-radius:10px;padding:0 12px}.project-submit-modal .url-input-wrap .input{padding:10px 0}}@media (width<=480px){.project-submit-modal{max-width:calc(100vw - 24px);padding:16px}.project-submit-modal .url-input-wrap{gap:8px;padding:0 10px}.project-submit-modal .url-input-wrap .input{padding:10px 0}.project-submit-modal .report-form-page{gap:12px}}.contributor-row .input.prefixed{padding-left:28px}.forum-page{flex-direction:column;gap:20px;display:flex}.forum-hero{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;justify-content:space-between;align-items:center;gap:20px;padding:32px;display:flex}.hero-discussion-button{flex-shrink:0;align-items:center;gap:8px;padding:12px 18px;display:inline-flex}.hero-actions{align-items:center;gap:12px;display:flex}.forum-content{grid-template-columns:250px minmax(0,1fr);align-items:start;gap:28px;display:grid}.forum-sidebar{position:sticky;top:24px}.sidebar-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;flex-direction:column;gap:4px;padding:12px;display:flex}.category-list{flex-direction:column;gap:2px;display:flex}.category-item{text-align:left;width:100%;color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:12px;padding:10px 12px;font-size:.85rem;font-weight:700;transition:all .15s}.category-item:hover{background:var(--color-page);color:var(--color-text-primary)}.category-item.active{background:var(--color-primary-subtle);color:var(--color-primary)}.more-dropdown-wrapper{position:relative}.more-toggle{justify-content:space-between;align-items:center;display:flex}.more-dropdown{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-lg);border-radius:16px;flex-direction:column;gap:4px;margin-top:8px;padding:8px;display:flex}.more-dropdown-item{text-align:left;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:space-between;align-items:center;padding:10px 12px;font-size:.85rem;font-weight:700;transition:all .15s;display:flex}.tag-delete-btn{width:26px;height:26px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-left:8px;transition:all .15s;display:flex}.tag-delete-btn:hover{color:#ef4444;background:#fee2e2}.more-dropdown-item:hover{background:var(--color-page)}.more-dropdown-item.active{background:var(--color-primary-subtle);color:var(--color-primary)}.new-tag-btn{border:1px solid #123c35;padding:.5rem .8rem}.new-tag-btn:hover{color:#000;background:0 0;border:1px solid #123c35}.forum-main{flex-direction:column;gap:18px;min-width:0;display:flex}.forum-toolbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.forum-toolbar .internships-search{flex:1;min-width:0}.category-strip{scroll-snap-type:x proximity;scrollbar-width:none;gap:8px;padding-bottom:4px;display:none;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000 100%);mask-image:linear-gradient(90deg,#000 85%,#0000 100%)}.category-strip::-webkit-scrollbar{display:none}.strip-item{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;scroll-snap-align:start;background:#fff;border-radius:999px;flex-shrink:0;padding:8px 14px;font-size:.8rem;font-weight:700;transition:all .15s}.strip-item.active{background:var(--color-primary-subtle);border-color:var(--color-primary-subtle);color:var(--color-primary)}.thread-list{flex-direction:column;gap:16px;display:flex}.thread-card{background:var(--color-surface);padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--color-border);cursor:pointer;box-shadow:var(--shadow-sm);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main stats""vote stats";align-items:start;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid}.thread-main{grid-area:main;min-width:0}.thread-stats{white-space:nowrap;flex-shrink:0;grid-area:stats;place-self:start end;align-items:center;gap:8px;padding-left:16px;display:flex}.thread-vote-row{grid-area:vote;align-self:end;align-items:center;gap:12px;margin-top:14px;display:flex}.thread-card:hover{box-shadow:var(--shadow-md);border-color:#123c35}.thread-meta{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.thread-meta-badges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.thread-meta-byline{align-items:center;gap:6px;display:flex}.course-tag,.tag-badge{border-radius:10px;padding:5px 10px;font-size:.74rem;font-weight:800}.course-tag{background:var(--color-page);color:var(--color-text-secondary)}.tag-badge{background:var(--color-primary-subtle);color:var(--color-primary)}.author-tag{color:var(--color-primary);font-size:.8rem;font-weight:700}.thread-meta-dot{color:var(--color-text-secondary);font-size:.9rem}.time-tag{color:var(--color-text-muted);font-size:.76rem}.thread-title{color:var(--color-text-primary);line-clamp:2;-webkit-line-clamp:2;overflow-wrap:break-word;word-break:break-word;-webkit-box-orient:vertical;margin:0 0 10px;font-size:1.1rem;font-weight:800;line-height:1.35;display:-webkit-box;overflow:hidden}.thread-divider{border:none;border-top:1px solid var(--color-border);opacity:.6;margin:10px 0}.thread-snippet{color:var(--color-text-secondary);line-clamp:2;-webkit-line-clamp:2;overflow-wrap:break-word;word-break:break-word;-webkit-box-orient:vertical;margin:0;font-size:.92rem;line-height:1.7;display:-webkit-box;overflow:hidden}.stat{color:var(--color-text-muted);align-items:center;gap:5px;font-size:.9rem;font-weight:700;display:inline-flex}.thread-vote-row .vote-group{background:var(--color-page);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:2px;padding:3px;display:inline-flex}.thread-vote-row .vote-button{width:30px;height:30px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;font-size:.9rem;transition:all .15s;display:inline-flex}.thread-vote-row .vote-button:hover{color:var(--color-text-primary);background:#fff}.thread-vote-row .vote-button.upvote.active{color:#027a48;background:#ecfdf3}.thread-vote-row .vote-button.downvote.active{color:#d92d20;background:#fff1f0}.thread-vote-row .vote-count{text-align:center;min-width:22px;color:var(--color-text-secondary);font-size:.8rem;font-weight:700}.thread-vote-row .vote-count.positive{color:#027a48}.thread-vote-row .vote-count.negative{color:#d92d20}.thread-save-btn{cursor:pointer;width:34px;height:34px;color:var(--color-text-muted);background:0 0;background:var(--color-page);border:1px solid #0000;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;transition:all .15s;display:inline-flex}.thread-save-btn:hover{border-color:var(--color-primary-subtle);color:var(--color-primary);background:var(--color-primary-subtle)}.thread-save-btn.saved{color:var(--color-primary);background:var(--color-primary-subtle);border-color:var(--color-primary-subtle)}.skeleton{background:linear-gradient(90deg, var(--color-border) 25%, var(--color-page) 50%, var(--color-border) 75%);background-size:600px 100%;border-radius:8px;flex-shrink:0;animation:1.4s ease-in-out infinite skeleton-shimmer}.skeleton-line{border-radius:6px;height:14px}.skeleton-pill{border-radius:999px;height:24px}.thread-card-skeleton{background:var(--color-surface);padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);pointer-events:none}.skeleton-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pagination{justify-content:center;align-items:center;gap:8px;margin-top:8px;display:flex}.page-btn{border:1px solid var(--color-border);min-width:38px;height:38px;color:var(--color-text-secondary);cursor:pointer;background:#fff;border-radius:12px;font-size:.84rem;font-weight:700;transition:all .15s}.page-btn:hover:not(:disabled){border-color:var(--color-primary-subtle);color:var(--color-primary)}.page-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.page-btn:disabled{opacity:.45;cursor:not-allowed}.discussion-type-toggle{grid-template-columns:1fr 1fr;gap:10px;display:grid}.type-btn{border:1.5px solid var(--color-border);color:#908d83;cursor:pointer;background:0 0;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:.88rem;font-weight:700;transition:all .15s;display:flex}.type-btn:hover{border-color:var(--color-primary)}.type-btn.active{background:var(--color-primary-subtle);border-color:var(--color-primary);color:var(--color-primary)}.type-hint{color:var(--color-text-muted);margin:4px 0 0;font-size:.78rem;line-height:1.5}.forum-form{flex-direction:column;gap:20px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:var(--color-text-secondary);font-size:.84rem;font-weight:700}.tag-label-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.label-optional{color:var(--color-text-muted);font-weight:500}.tag-mode-toggle{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-size:.78rem;font-weight:700}.dropdown-trigger-wrapper{position:relative}.dropdown-trigger-btn{text-align:left;cursor:pointer;color:var(--color-text-primary);background:#fff;justify-content:space-between;align-items:center;gap:8px;display:flex}.dropdown-trigger-btn i{color:var(--color-text-muted);flex-shrink:0}.dropdown-empty{color:var(--color-text-muted);text-align:center;padding:12px;font-size:.82rem}.forum-tag-item{width:100%;color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;padding:12px 14px;font-size:.875rem;font-weight:700;transition:background .1s;display:flex}.forum-tag-item:hover{background:var(--color-page)}.forum-tag-item.active{background:var(--color-primary-subtle);color:var(--color-primary)}@media (width<=950px){.forum-content{grid-template-columns:1fr;gap:16px}.forum-sidebar{display:none}.category-strip{display:flex}.forum-toolbar{flex-direction:column;gap:10px}.forum-toolbar .internships-search{width:100%;max-width:100%}.sort-tabs{justify-content:center;align-self:start}.sort-tab{text-align:center;line-clamp:2;-webkit-line-clamp:2;overflow-wrap:break-word;word-break:break-word;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.forum-main{gap:10px}}@media (width<=768px){.forum-page{gap:16px}.forum-hero{flex-direction:column;align-items:flex-start;gap:14px;padding:20px}.hero-discussion-button{justify-content:center;width:100%}.hero-actions{flex-direction:column;align-items:stretch;width:100%}.hero-actions>button{justify-content:center;width:100%}.thread-card{flex-wrap:wrap;grid-template-columns:none;grid-template-areas:none;gap:10px 8px;padding:16px;display:flex}.thread-main{flex:100%}.thread-vote-row{flex:1;order:1;align-items:center;gap:8px;margin-top:0;display:flex}.thread-stats{order:2;gap:0;padding-left:0}.stat{padding:6px 10px}.thread-vote-row .vote-button{width:26px;height:26px;font-size:.82rem}.thread-save-btn{width:32px;height:32px}.pagination{gap:4px}.page-btn{min-width:34px;height:34px;font-size:.8rem}}@media (width<=480px){.forum-hero{padding:16px}.thread-title{font-size:.98rem}.thread-meta{gap:6px}.sort-tabs{align-self:center}.type-btn,.form-group label{font-size:.75rem}.form-group .input{font-size:.8rem}.form-group textarea{white-space:pre-wrap;overflow-wrap:break-word;font-size:.8rem}.tag-label-row{flex-direction:column;justify-content:normal;align-items:normal;gap:1rem}}.thread-page{flex-direction:column;gap:20px;display:flex}.breadcrumbs{align-items:center;gap:8px;font-size:.82rem;font-weight:600;display:flex}.breadcrumb-link{color:var(--color-text-secondary);text-decoration:none;transition:color .15s}.breadcrumb-link:hover{color:var(--color-primary)}.breadcrumb-sep{color:var(--color-text-muted)}.breadcrumb-text{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:220px;overflow:hidden}.breadcrumb-current{color:var(--color-text-primary)}.thread-card-main{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-sm);flex-direction:column;gap:4px;display:flex}.thread-tags-row{justify-content:space-between;align-items:center;display:flex}.thread-tags-left{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.thread-views-badge{color:var(--color-text-muted);flex-shrink:0;align-items:center;gap:5px;font-size:.8rem;font-weight:600;display:inline-flex}.thread-tags-right{flex-shrink:0;align-items:center;gap:4px;display:flex}.thread-menu-wrap{display:inline-flex;position:relative}.dropdown-menu-item{color:var(--color-text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:.85rem;font-weight:600;transition:background .15s,color .15s;display:flex}.dropdown-menu-item:hover{background:var(--color-page);color:var(--color-text-primary)}.dropdown-menu-item.danger{color:#d92d20}.dropdown-menu-item.danger:hover{background:#fff1f0}.dropdown-menu-item:disabled{opacity:.55;cursor:not-allowed}.dropdown-menu-item:disabled:hover{background:0 0}.thread-delete-btn:hover{opacity:1}.thread-title.inner{-webkit-line-clamp:unset;white-space:normal;margin:0;display:block;overflow:visible}.byline-division{flex-direction:column;width:100%;display:flex}.byline-division .one{align-items:center;gap:10px;display:flex}.thread-byline{align-items:center;gap:6px;display:flex}.thread-byline .thread-meta-dot{color:var(--color-text-secondary);font-size:.9rem}.byline-author{color:var(--color-primary);font-size:.85rem;font-weight:700}.byline-date{color:var(--color-text-muted);font-size:.82rem;font-weight:500}.thread-card-main .thread-body-text{color:var(--color-text-primary);padding-top:4px;font-size:1rem;line-height:1.75}.clamp-thread-body{-webkit-line-clamp:8;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.clamp-reply-body{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.see-more-btn{color:var(--color-primary);cursor:pointer;background:0 0;border:none;margin:0;padding:4px 0 0;font-size:.85rem;font-weight:700;display:inline-block}.see-more-btn:hover{text-decoration:underline}.thread-card-footer{align-items:center;gap:8px;padding-top:4px;display:flex}.thread-footer-right{align-items:center;gap:8px;margin-left:auto;display:flex}.thread-card-footer .thread-save-btn{background:var(--color-page);cursor:pointer;width:34px;height:34px;color:var(--color-text-muted);border:1px solid #0000;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;transition:all .15s;display:inline-flex}.thread-card-footer .thread-save-btn:hover{border-color:var(--color-primary-subtle);color:var(--color-primary);background:var(--color-primary-subtle)}.thread-card-footer .thread-save-btn.saved{color:var(--color-primary);background:var(--color-primary-subtle);border-color:var(--color-primary-subtle)}.thread-card-main .vote-button{width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;font-size:.95rem;transition:all .15s;display:inline-flex}.thread-card-main .vote-button:hover{color:var(--color-text-primary);background:#fff}.thread-card-main .vote-button.upvote.active{color:#027a48;background:#ecfdf3}.thread-card-main .vote-button.downvote.active{color:#d92d20;background:#fff1f0}.thread-card-main .vote-count{text-align:center;min-width:26px;color:var(--color-text-secondary);font-size:.85rem;font-weight:700}.thread-card-main .vote-count.positive{color:#027a48}.thread-card-main .vote-count.negative{color:#d92d20}.icon-ghost-button{cursor:pointer;color:var(--color-text-muted);box-shadow:none;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;padding:6px;font-size:.95rem;transition:all .15s;display:inline-flex}.icon-ghost-button.visible{opacity:1}.icon-ghost-button:hover{background:var(--color-page)}.icon-ghost-button:disabled,.icon-ghost-button.reported{color:#d92d20;opacity:.55;cursor:not-allowed}.icon-ghost-button:disabled:hover,.icon-ghost-button.reported:hover{background:0 0}.delete-modal-text{color:var(--color-text-secondary);margin:0;font-size:.92rem;line-height:1.6}.ghost-button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-size:.82rem;font-weight:600;transition:all .15s;display:inline-flex}.ghost-button:hover{border-color:var(--color-primary-subtle);color:var(--color-primary);background:var(--color-primary-subtle)}.danger-ghost-button{color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-size:.82rem;font-weight:600;transition:all .15s;display:inline-flex}.danger-ghost-button:hover{color:#d92d20;background:#fff1f0;border-color:#fecdca}.icon-ghost-button{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:8px;align-items:center;padding:4px 6px;font-size:.85rem;transition:all .15s;display:inline-flex}.icon-ghost-button.danger:hover{color:#d92d20;background:#fff1f0}.ghost-button.active{color:#027a48}.replies-section{flex-direction:column;gap:14px;display:flex}.replies-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.replies-header h4{color:var(--color-text-primary);margin:0;padding-left:.2rem;font-size:.85rem;font-weight:400}.sort-tabs{background:var(--color-page);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:2px;padding:3px;display:flex}.sort-tab{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:600;transition:all .15s}.sort-tab:hover{color:var(--color-text-primary)}.sort-tab.active{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 3px #0000001a}.replies-empty{color:var(--color-text-muted);flex-direction:column;align-items:center;font-size:.9rem;font-weight:600;display:flex}.replies-empty i{opacity:.4;font-size:1.8rem}.replies-list{flex-direction:column;gap:12px;display:flex}.reply-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:10px;padding:16px 20px;transition:box-shadow .15s;display:flex}.reply-card:hover{box-shadow:var(--shadow-sm)}.reply-header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.reply-author-row{align-items:center;gap:6px;display:flex}.reply-header-actions{align-items:center;gap:4px;display:flex}.reply-body{color:var(--color-text-primary);font-size:.9rem;line-height:1.65}.reply-footer{align-items:center;gap:8px;padding-top:4px;display:flex}.input,select.input{appearance:none;box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;width:100%;max-width:100%;padding:12px 14px;overflow:hidden}.vote-group{background:var(--color-page);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:2px;padding:0;display:inline-flex}.vote-button{width:30px;height:30px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;font-size:.9rem;transition:all .15s;display:inline-flex}.vote-button:hover{color:var(--color-text-primary);background:#fff}.vote-button.upvote.active{color:#027a48;background:#ecfdf3}.vote-button.downvote.active{color:#d92d20;background:#fff1f0}.vote-count{text-align:center;min-width:22px;color:var(--color-text-secondary);font-size:.8rem;font-weight:700}.vote-count.positive{color:#027a48}.vote-count.negative{color:#d92d20}.reply-composer{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:20px;flex-direction:column;gap:12px;padding:22px 24px;display:flex}.composer-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.88rem;font-weight:700}form{flex-direction:column;gap:12px;display:flex}.reply-textarea{border:1px solid var(--color-border);resize:vertical;box-sizing:border-box;background:var(--color-page);border-radius:12px;width:100%;padding:12px 14px;font-size:.9rem;line-height:1.6;transition:border-color .15s}.reply-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);background:#fff;outline:none}.composer-footer{justify-content:flex-end;display:flex}.course-tag{background:var(--color-page);color:var(--color-text-secondary);border-radius:8px;padding:4px 10px;font-size:.75rem;font-weight:700}.tag-badge{background:var(--color-primary-subtle);color:var(--color-primary);border-radius:8px;padding:4px 10px;font-size:.75rem;font-weight:700}.thread-edit-form{flex-direction:column;gap:10px;padding:4px 0;display:flex}.thread-edit-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.edited-badge{color:var(--color-text-muted);font-size:.75rem;font-style:italic;font-weight:500}.online-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-bottom:1px;display:inline-block}.online-dot.online{background:#12b76a;box-shadow:0 0 0 2px #d1fadf}.online-dot.offline{background:var(--color-border)}@media (width<=768px){.thread-page{gap:14px}.breadcrumb-text{max-width:140px}.thread-card-main{gap:6px;padding:16px}.thread-title{font-size:1.2rem}.thread-card-main .thread-body-text{font-size:.8rem}.reply-body,.reply-textarea{font-size:.75rem}.clamp-thread-body{-webkit-line-clamp:20}.clamp-reply-body{-webkit-line-clamp:5}.thread-card-footer{flex-wrap:nowrap;gap:6px}.thread-footer-right{flex-shrink:0;gap:6px}.thread-card-footer .ghost-button{padding:6px 10px;font-size:.78rem}.thread-card-footer .ghost-button span,.thread-card-footer .ghost-button{white-space:nowrap}.thread-tags-row{flex-wrap:wrap;gap:0}.reply-card{padding:14px 16px}.reply-composer{padding:16px}}@media (width<=480px){.thread-title{font-size:1.05rem}.ghost-button{padding:6px 12px;font-size:.78rem}.reply-header{flex-wrap:wrap}.composer-footer button{font-size:.75rem}.thread-tags-left{gap:2px}}.contributors-page{flex-direction:column;max-width:900px;margin:0 auto;display:flex}.leaderboard-hero{text-align:center;flex-direction:column;align-items:center;padding:40px 0;display:flex}.hero-icon{width:64px;height:64px;color:var(--color-primary);border:1px solid var(--color-primary);background:#fff;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 20px;font-size:1.75rem;display:flex}.leaderboard-hero h1{color:var(--color-text-primary);font-size:2.5rem;font-weight:800}.leaderboard-container{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);border-radius:32px;margin-top:8px;overflow:hidden}.leaderboard-header{background:var(--color-page);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-secondary);grid-template-columns:80px 1fr 90px;padding:20px 32px;font-size:.75rem;font-weight:700;display:grid}.leaderboard-list{flex-direction:column;display:flex}.leaderboard-item{border-bottom:1px solid var(--color-border);grid-template-columns:80px 1fr 90px;align-items:center;padding:24px 32px;transition:background .2s;display:grid}.leaderboard-item .user{color:inherit;text-decoration:none}.leaderboard-item:last-child{border-bottom:none}.leaderboard-item.top-three{background:#0679c805}.leaderboard-item:hover{background:var(--color-page)}.leaderboard-item .rank{color:var(--color-text-muted);font-size:1.25rem;font-weight:800}.leaderboard-item .user{align-items:center;gap:16px;display:flex}.avatar{background:var(--color-primary);color:#fff;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.2rem;font-weight:800;display:flex}.name{color:var(--color-text-primary);font-weight:400}.username{color:#123c35;font-size:.85rem;font-weight:600}.leaderboard-item .points{align-items:baseline;gap:4px;font-size:1.2rem;display:flex}.pts-label{color:var(--color-text-muted);font-size:.7rem;font-weight:800}.how-to-earn{text-align:center;margin-top:40px}.how-to-earn h3{margin-bottom:32px;font-size:1.25rem;font-weight:800}.earning-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;display:grid}.earning-card{background:var(--color-surface);border:1px solid var(--color-border);text-align:left;border-radius:24px;padding:32px}.card-icon{color:var(--color-primary);margin-bottom:16px;font-size:1.5rem}.earning-card h4{margin-bottom:8px;font-size:1rem;font-weight:700}.earning-card p{color:var(--color-text-secondary);font-size:.85rem;line-height:1.5}.leaderboard-loading{height:60vh;color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;font-weight:600;display:flex}.how-to-earn-btn{z-index:550;border:1px solid var(--color-border);background:var(--color-surface);width:48px;height:48px;color:var(--color-text-secondary);cursor:pointer;box-shadow:var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;font-size:1.3rem;font-weight:700;transition:all .2s;display:inline-flex;position:fixed;bottom:22px;right:20px}.how-to-earn-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:#0679c80d;transform:scale(1.05)}@media (width<=950px){.how-to-earn-btn{bottom:92px}}@media (width<=768px){.contributors-page{width:100%;min-width:0}.leaderboard-hero{padding:24px 0 16px}.leaderboard-hero h1{justify-content:center;align-items:center;gap:8px;font-size:1.9rem;display:flex}.how-to-earn{display:none}.leaderboard-container{border-radius:16px}.leaderboard-header{grid-template-columns:56px 1fr 70px;padding:14px 18px;font-size:.7rem}.leaderboard-item{grid-template-columns:56px 1fr 70px;padding:16px 18px}.avatar{display:none}.leaderboard-item .user{gap:10px}.name{font-size:.9rem}.username{font-size:.78rem}.leaderboard-item .points{font-size:1rem}.earning-grid{grid-template-columns:1fr;gap:14px}.earning-card{padding:22px}}@media (width<=480px){.leaderboard-header{grid-template-columns:55px 1fr 58px;padding:12px 14px}.leaderboard-item{grid-template-columns:55px 1fr 58px;gap:1rem;padding:14px}.leaderboard-hero h1{font-size:1.6rem}}.earning-grid-modal{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}@media (width<=600px){.earning-grid-modal{grid-template-columns:1fr}}.earning-grid-modal .earning-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:20px}.how-to-earn-modal{max-height:70vh}.how-to-earn-modal .modal-body{scrollbar-width:none;-ms-overflow-style:none}.how-to-earn-modal .modal-body::-webkit-scrollbar{display:none}.profile-page{flex-direction:column;gap:20px;width:100%;min-width:0;max-width:860px;margin:0 auto;display:flex}.skeleton-text,.skeleton-pill,.skeleton-chip,.skeleton-circle,.skeleton-block{background:linear-gradient(90deg, var(--color-border) 25%, var(--color-page) 50%, var(--color-border) 75%);background-size:600px 100%;flex-shrink:0;animation:1.4s ease-in-out infinite skeleton-shimmer}.skeleton-text{border-radius:var(--radius-xs);display:block}.skeleton-pill,.skeleton-chip{border-radius:var(--radius-pill);display:inline-block}.skeleton-circle{border-radius:50%;display:inline-block}.skeleton-block{border-radius:var(--radius-md);width:100%;display:block}.profile-header-card{-webkit-backdrop-filter:blur(16px);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);background:#ffffffbf;border-radius:24px;align-items:flex-start;gap:24px;padding:32px;display:flex;position:relative}.profile-avatar{background:var(--color-primary-subtle);width:72px;height:72px;color:var(--color-primary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.8rem;font-weight:800;display:flex}.profile-identity{flex-direction:column;flex:1;gap:10px;line-height:110%;display:flex}.user-status{justify-content:flex-start;align-items:center;gap:1rem;display:flex}.profile-name-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.profile-fullname{letter-spacing:-.02em;color:var(--color-text-primary);margin:0;font-size:1.5rem;font-weight:800}.profile-edit-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);background:#fff;border-radius:10px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:700;text-decoration:none;transition:all .15s;display:inline-flex}.profile-edit-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.profile-username{color:var(--color-text-muted);font-size:.92rem;font-weight:600}.profile-meta-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.profile-badge{background:var(--color-page);border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.profile-badge.points{background:var(--color-primary-subtle);border-color:var(--color-primary-subtle);color:var(--color-primary)}.profile-private{border:1px solid var(--color-border);text-align:center;background:#fff;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:64px 24px;display:flex}.profile-private i{color:var(--color-text-muted);font-size:2rem}.profile-private h3{color:var(--color-text-primary);margin:0;font-size:1.1rem;font-weight:800}.profile-private p{color:var(--color-text-secondary);margin:0;font-size:.9rem}.heatmap-card{border:1px solid var(--color-border);background:#fff;border-radius:24px;flex-direction:column;gap:14px;width:100%;min-width:0;padding:24px 28px;display:flex}.heatmap-header{justify-content:space-between;align-items:center;display:flex}.heatmap-title{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);font-size:.78rem;font-weight:800}.heatmap-total{color:var(--color-text-secondary);font-size:.82rem;font-weight:600}.heatmap-wrap{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;gap:6px;width:100%;min-width:0;padding-bottom:6px;display:flex;position:relative;overflow-x:auto}.heatmap-wrap::-webkit-scrollbar{display:none}.heatmap-day-labels{z-index:10;background:#fff;flex-direction:column;flex-shrink:0;gap:2px;padding-top:20px;padding-right:8px;display:flex;position:sticky;left:0}.day-label{height:11px;color:var(--color-text-muted);font-size:.65rem;font-weight:600;line-height:11px}.heatmap-right{flex-direction:column;flex-shrink:0;gap:4px;min-width:max-content;display:flex}.heatmap-month-labels{grid-auto-columns:13px;grid-auto-flow:column;gap:2px;height:16px;display:grid}.month-label{color:var(--color-text-muted);white-space:nowrap;font-size:.65rem;font-weight:600}.heatmap-grid{gap:2px;display:flex}.heatmap-week{flex-direction:column;gap:2px;display:flex}.heatmap-cell{border-radius:2px;width:11px;height:11px}.level-future{background:0 0}.level-empty{background:var(--color-page);border:1px solid var(--color-border)}.level-low{background:#bbf7d0}.level-mid{background:#4ade80}.level-high{background:#16a34a}.heatmap-legend{justify-content:flex-end;align-items:center;gap:4px;display:flex}.legend-label{color:var(--color-text-muted);font-size:.7rem;font-weight:600}.profile-tabs{border:1px solid var(--color-border);background:var(--color-primary-subtle);-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;border-radius:16px;flex-wrap:nowrap;align-self:center;gap:4px;width:fit-content;max-width:100%;padding:4px;display:flex;overflow-x:auto}.profile-tabs::-webkit-scrollbar{display:none}.profile-tab{white-space:nowrap;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:12px;flex-shrink:0;align-items:center;gap:7px;padding:9px 16px;font-size:.85rem;font-weight:700;transition:all .15s;display:inline-flex}.profile-tab:hover{color:var(--color-text-primary)}.profile-tab.active{background:var(--color-primary-subtle);color:var(--color-primary)}.tab-count{background:var(--color-page);color:var(--color-text-muted);border-radius:999px;padding:1px 7px;font-size:.72rem;font-weight:800}.profile-tab.active .tab-count{background:#fff}.profile-list{flex-direction:column;gap:10px;display:flex}.profile-list-item{border:1px solid var(--color-border);cursor:pointer;background:#fff;border-radius:18px;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;transition:all .15s;display:flex}.profile-list-item:hover{border-color:var(--color-primary-subtle);box-shadow:var(--shadow-sm)}.profile-load-more{align-self:center;margin-top:4px}.pli-main{flex-direction:column;gap:6px;min-width:0;display:flex}.pli-title{color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:700;overflow:hidden}.pli-meta{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.pli-badge{background:var(--color-page);color:var(--color-text-secondary);border-radius:8px;padding:3px 8px;font-size:.72rem;font-weight:800}.pli-badge.tag{background:var(--color-primary-subtle);color:var(--color-primary)}.pli-time{color:var(--color-text-muted);font-size:.74rem;font-weight:500}.pli-stat{background:var(--color-page);color:var(--color-text-secondary);border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:6px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.pli-icon{color:var(--color-text-muted);flex-shrink:0;font-size:1.1rem}.profile-empty{border:1px solid var(--color-border);text-align:center;color:var(--color-text-muted);background:#fff;border-radius:18px;flex-direction:column;align-items:center;gap:10px;padding:48px 24px;display:flex}.profile-empty i{font-size:1.8rem}.profile-empty p{margin:0;font-size:.9rem}.profile-not-found{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:80px 24px;display:flex}.profile-status-badge{background:0 0;border:none;border-radius:0;align-items:center;gap:6px;width:fit-content;padding:2px 0;font-size:.76rem;font-weight:500;display:inline-flex}.status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.profile-status-badge.status-online{color:#16a34a}.profile-status-badge.status-online .status-dot{background:#22c55e;animation:2s infinite pulse-online;box-shadow:0 0 0 2px #bbf7d0}@keyframes pulse-online{0%,to{box-shadow:0 0 0 2px #bbf7d0}50%{box-shadow:0 0 0 4px #bbf7d080}}.profile-status-badge.status-last_seen{color:var(--color-text-secondary)}.profile-status-badge.status-last_seen .status-dot{background:var(--color-text-muted)}.profile-status-badge.status-offline{color:var(--color-text-muted)}.profile-status-badge.status-offline .status-dot{background:#cbd5e1}@media (width<=768px){.profile-page{gap:14px;width:100%;min-width:0;overflow-x:hidden}.profile-header-card{gap:14px;padding:18px}.profile-avatar{width:52px;height:52px;font-size:1.3rem}.profile-fullname{font-size:1.1rem}.profile-identity{gap:8px}.profile-name-row{flex-wrap:wrap;gap:8px}.heatmap-card{padding:16px}.heatmap-wrap{width:100%;overflow-x:auto}.profile-tab{gap:5px;padding:8px 12px;font-size:.8rem}.profile-list-item{padding:14px 16px}.pli-title{white-space:normal}.profile-empty{padding:32px 16px}.profile-not-found{padding:48px 16px}}@media (width<=576px){.profile-header-card{text-align:center;flex-direction:column;align-items:center;padding:24px 16px}.profile-name-row{flex-direction:column;align-items:center;gap:8px;width:100%}.profile-tab i{display:none}.profile-tabs{scroll-snap-type:x proximity;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000 100%);mask-image:linear-gradient(90deg,#000 85%,#0000 100%)}.profile-edit-btn.profile-edit-btn-icon{border-radius:10px;justify-content:center;width:32px;height:32px;padding:0;position:absolute;top:14px;right:14px}.profile-edit-btn.profile-edit-btn-icon i{margin:0;font-size:1rem}.profile-edit-btn.profile-edit-btn-icon span,.profile-edit-btn.profile-edit-btn-icon>:not(i){display:none}.profile-meta-row{justify-content:center;width:100%}.profile-status-badge{align-self:center}.user-status{flex-direction:column;justify-content:center;gap:6px}}.settings-page{flex-direction:column;gap:20px;max-width:860px;margin:0 auto;display:flex}.settings-header{-webkit-backdrop-filter:blur(18px);border:1px solid var(--glass-border);background:linear-gradient(135deg,#ffffffd9,#ffffff8c);border-radius:28px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:24px 28px;display:flex;box-shadow:0 8px 32px #0f172a0d}.settings-header-left{align-items:center;gap:14px;display:flex}.settings-header-icon{background:var(--color-primary-subtle);width:46px;height:46px;color:var(--color-primary);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.2rem;display:flex}.settings-title{letter-spacing:-.045em;color:var(--color-text-primary);margin:0 0 4px;font-size:1.75rem;font-weight:800;line-height:1.1}.settings-subtitle{color:var(--color-text-secondary);margin:0;font-size:.88rem;font-weight:500}.settings-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:24px;overflow:hidden}.settings-card-header{border-bottom:1px solid var(--color-border);align-items:center;gap:14px;padding:24px 28px 20px;display:flex}.settings-card-icon{background:var(--color-primary-subtle);width:38px;height:38px;color:var(--color-primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.settings-card-title{color:var(--color-text-primary);margin:0 0 2px;font-size:1rem;font-weight:800}.settings-card-sub{color:var(--color-text-secondary);margin:0;font-size:.82rem}.settings-fields{flex-direction:column;gap:18px;padding:24px 28px;display:flex}.settings-field-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.settings-field{flex-direction:column;gap:7px;display:flex}.settings-field label{color:var(--color-text-secondary);font-size:.82rem;font-weight:700}.input-readonly{background:var(--color-page);color:var(--color-text-muted);cursor:not-allowed}.field-hint{color:var(--color-text-muted);margin-top:2px;font-size:.76rem}.input-prefix-wrap{position:relative}.input-prefix{color:var(--color-text-muted);pointer-events:none;font-size:.9rem;font-weight:700;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.input.prefixed{padding-left:28px}.input-eye-wrap{position:relative}.eye-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:1rem;transition:color .15s;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.eye-btn:hover{color:var(--color-text-primary)}.input-eye-wrap .input{padding-right:40px}.settings-toggle-row{background:var(--color-page);border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.toggle-label{color:var(--color-text-primary);margin-bottom:3px;font-size:.88rem;font-weight:700;display:block}.toggle-hint{color:var(--color-text-muted);font-size:.78rem}.toggle-switch{background:var(--color-border);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:44px;height:24px;padding:0;transition:background .2s;position:relative}.settings-msg{border-radius:12px;margin:0 28px;padding:10px 14px;font-size:.82rem;font-weight:600}.settings-msg.success{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0}.settings-msg.error{color:#b91c1c;background:#fff1f0;border:1px solid #fecaca}.settings-card-footer{justify-content:flex-end;padding:16px 28px 24px;display:flex}.settings-connect-row{border:1px solid var(--color-border);background:var(--color-page);border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.settings-connect-title{color:var(--color-text-primary);font-size:.9rem;font-weight:700}.settings-connect-sub{color:var(--color-text-muted);margin-top:4px;font-size:.78rem}.settings-connect-action{justify-content:flex-end;align-items:center;display:flex}.settings-connect-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.settings-connect-status{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.settings-connect-guard{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;margin:0 28px 18px;padding:10px 14px;font-size:.82rem;font-weight:600}.semester-open-btn{border:1.5px dashed var(--color-border);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:14px;align-items:center;gap:8px;margin:20px 28px 24px;padding:11px 18px;font-size:.88rem;font-weight:700;transition:all .15s;display:inline-flex}.semester-open-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-subtle)}.disconnect-modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(4px);background:#00000073;justify-content:center;align-items:center;padding:24px;animation:.18s modal-fade-in;display:flex;position:fixed;inset:0}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.disconnect-modal{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:24px;flex-direction:column;align-items:center;gap:12px;width:min(420px,100%);padding:32px 28px 28px;animation:.22s cubic-bezier(.34,1.56,.64,1) modal-scale-in;display:flex;box-shadow:0 24px 64px #0000002e,0 4px 16px #00000014}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.88)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.disconnect-modal-icon{color:#dc2626;background:#fff1f0;border:1px solid #fecaca;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:4px;font-size:1.6rem;display:flex}.disconnect-modal-title{color:var(--color-text-primary);letter-spacing:-.02em;margin:0;font-size:1.1rem;font-weight:800}.disconnect-modal-body{color:var(--color-text-secondary);max-width:300px;margin:0;font-size:.88rem;line-height:1.6}.disconnect-modal-actions{gap:10px;width:100%;margin-top:8px;display:flex}.disconnect-modal-actions .btn{flex:1;justify-content:center}@media (width<=768px){.settings-header{gap:12px;padding:18px 20px}.settings-title{font-size:1.4rem}.settings-card-header{padding:18px 20px 16px}.settings-fields{padding:18px 20px}.settings-card-footer{padding:12px 20px 20px}.settings-field-row{grid-template-columns:1fr}.settings-toggle-row{gap:12px}.settings-msg{margin:0 20px}.settings-connect-row{flex-direction:column;align-items:flex-start;gap:12px}.settings-connect-actions,.settings-connect-action{justify-content:flex-start;width:100%}.semester-open-btn{margin:16px 20px 20px}.disconnect-modal{padding:24px 20px 20px}.disconnect-modal-actions{flex-direction:column}}.danger-zone-card{border-color:#d9302540}.settings-card-icon.danger-zone-icon{background:var(--color-red-subtle);color:var(--color-red)}.danger-zone-body{flex-direction:column;align-items:flex-start;gap:30px;padding:20px 24px;display:flex}.danger-zone-text{color:var(--color-text-secondary);margin:0;font-size:.85rem;line-height:1.6}.danger-zone-body button{align-self:flex-end}.danger-zone-modal-error{color:#b91c1c;margin:4px 0 0;font-size:.8rem;font-weight:600}@media (width<=768px){.danger-zone-body{padding:18px 20px}}.gpa-container{flex-direction:column;gap:32px;margin:0 auto;padding-bottom:40px;display:flex}.gpa-header{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:32px;display:flex}.cgpa-badge{background:var(--color-primary);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;align-items:center;width:fit-content;padding:12px 24px;display:flex}.gpa-feedback-footer{text-align:center;color:var(--color-primary);background:var(--color-primary-subtle);border-radius:var(--radius-md);border:1px dashed var(--color-primary);padding:20px;font-size:1.1rem;font-weight:700;animation:.5s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.cgpa-label{text-transform:uppercase;letter-spacing:.05em;opacity:.9;font-size:.7rem;font-weight:700}.cgpa-value{font-size:2rem;font-weight:800}.gpa-card{padding:24px}.course-list-header{border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;grid-template-columns:1fr 100px 150px 180px 40px;gap:16px;padding:0 12px 12px;font-size:.75rem;font-weight:700;display:grid}.course-list{flex-direction:column;gap:12px;margin:16px 0;display:flex}.course-row{border-radius:var(--radius-md);grid-template-columns:1fr 100px 150px 180px 40px;align-items:center;gap:16px;padding:8px 12px;transition:background .2s;display:grid}.course-row:hover{background:#00000005}.input-group input,.input-group select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text-primary);padding:10px 14px;font-size:.9rem;transition:all .2s}.input-group select{cursor:pointer;background-image:none;appearance:none!important}.select-wrap{position:relative}.select-wrap select{padding-right:2.25rem}.gpa-mode-select select{padding-left:12px;padding-right:1.9rem;font-size:.82rem}.select-wrap:after{content:"";border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid var(--color-text-muted);pointer-events:none;width:0;height:0;position:absolute;top:50%;right:12px;transform:translateY(-35%)}.gpa-custom-select-wrap{position:relative}.gpa-custom-select-trigger{background:var(--color-surface);border:1px solid var(--color-border);width:100%;color:var(--color-text);cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:space-between;align-items:center;gap:6px;padding:8px 12px;font-size:.875rem;transition:border-color .15s,box-shadow .15s;display:flex}.gpa-custom-select-trigger:hover{border-color:var(--color-primary)}.gpa-custom-select-trigger i{color:var(--color-text-muted);flex-shrink:0;font-size:1rem;transition:transform .15s}.gpa-grade-pts{color:var(--color-text-muted);font-size:.8rem}.gpa-dropdown-item{width:100%;color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:9px 14px;font-size:.875rem;transition:background .1s;display:flex}.gpa-dropdown-item:hover{background:var(--color-page)}.gpa-dropdown-item.is-active{color:var(--color-primary);font-weight:500}.gpa-dropdown-item.is-active i{color:var(--color-primary);font-size:.9rem}.gpa-dropdown-item-hint{color:var(--color-text-muted);margin-left:auto;margin-right:4px;font-size:.775rem}.gpa-category-item{width:100%;color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 14px;font-size:.875rem;font-weight:700;transition:background .1s;display:flex}.gpa-category-item:hover{background:var(--color-page)}.gpa-category-item-hint{color:var(--color-text-muted);font-size:.775rem;font-weight:500}.gpa-category-item:last-child{border-top:1px solid var(--color-border);color:var(--color-primary);margin-top:4px;padding-top:14px}.input-group input[type=number]{appearance:textfield!important}.input-group input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none!important}.input-group input[type=number]::-webkit-inner-spin-button{margin:0;-webkit-appearance:none!important}.input-group input:focus,.input-group select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.percentage-input{align-items:center;display:flex;position:relative}.percent-unit{color:var(--color-text-muted);font-weight:600;position:absolute;right:12px}.btn-remove{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:1.2rem;transition:color .2s;display:flex}.btn-remove:hover{color:var(--color-red)}.gpa-actions{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-top:24px;padding-top:24px;display:flex}.summary-info{color:var(--color-text-secondary);font-size:.95rem}.grading-info{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:32px}.grading-info h3{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:10px;margin-bottom:24px;font-size:1rem;font-weight:800;display:flex}.grading-info h3:after{content:"";background:var(--color-border);flex:1;height:1px}.scale-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;display:grid}.scale-item{border-radius:var(--radius-md);border:1px solid #c4c1b9;flex-direction:column;padding:12px;transition:all .2s;display:flex}.scale-grade{color:var(--color-primary);font-size:1rem;font-weight:800}.scale-points{color:var(--color-text-primary);margin:2px 0;font-size:.8rem;font-weight:700}.scale-range{color:var(--color-text-muted);font-size:.7rem;font-weight:600}input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}.gpa-badge-group{gap:12px;display:flex}.cgpa-badge-outline{background:var(--color-surface);color:var(--color-primary);border:1.5px solid var(--color-primary);box-shadow:var(--shadow-sm)}.cgpa-badge-outline .cgpa-label{color:var(--color-text-muted);opacity:1}.gpa-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.gpa-baseline-toggle{align-items:flex-start;gap:14px;display:flex}.gpa-baseline-title{color:var(--color-text-primary);font-size:.95rem;font-weight:700}.gpa-privacy-note{color:var(--color-text-muted);align-items:center;gap:6px;margin-top:4px;font-size:.8rem;display:flex}.gpa-baseline-fields{border-top:1px solid var(--color-border);grid-template-columns:1fr 1fr;gap:16px;margin-top:18px;padding-top:18px;display:grid}.gpa-field-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:6px;font-size:.74rem;font-weight:700;display:block}.gpa-switch{flex-shrink:0;width:40px;height:22px;margin-top:2px;display:inline-block;position:relative}.gpa-switch input{opacity:0;width:0;height:0}.gpa-switch-track{background:var(--color-border);border-radius:var(--radius-pill);cursor:pointer;transition:background .2s;position:absolute;inset:0}.gpa-switch input:checked+.gpa-switch-track{background:var(--color-primary)}.gpa-switch-thumb{width:18px;height:18px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .2s;position:absolute;top:2px;left:2px}.gpa-switch input:checked~.gpa-switch-track .gpa-switch-thumb{transform:translate(18px)}.gpa-course-list-head{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;padding:24px 24px 20px;display:flex}.gpa-section-title{color:var(--color-text-primary);margin-bottom:4px;font-size:1.05rem;font-weight:800}.gpa-section-sub{color:var(--color-text-secondary);max-width:480px;font-size:.85rem}.gpa-add-course-btn,.gpa-cat-add-btn{padding:.65rem 2.5rem}.gpa-add-course-results{flex-direction:column;gap:2px;max-height:260px;margin-top:8px;display:flex;overflow-y:auto}.gpa-add-course-result{text-align:left;border-radius:var(--radius-sm);cursor:pointer;width:100%;color:var(--color-text-primary);background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:.85rem;transition:background .15s;display:flex}.gpa-add-course-result:hover{background:var(--color-page)}.gpa-add-course-empty{color:var(--color-text-muted);padding:10px;font-size:.82rem}.gpa-empty-state{color:var(--color-text-muted);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:48px 24px;display:flex}.gpa-empty-state i{font-size:1.8rem}.gpa-course-list-header{border-bottom:1px solid var(--color-border);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;grid-template-columns:1fr 80px 180px 170px 36px;align-items:center;gap:16px;padding:14px 24px;font-size:.72rem;font-weight:700;display:grid}.gpa-course-list{flex-direction:column;gap:10px;padding:20px;display:flex}.gpa-course-row-wrap{border-radius:16px;transition:box-shadow .2s}.gpa-course-row-wrap.is-expanded{box-shadow:var(--shadow-md)}.gpa-course-row{border:1px solid var(--color-border);background:var(--color-surface);border-radius:16px;grid-template-columns:1fr 80px 180px 170px 36px;align-items:center;gap:16px;padding:14px 16px;transition:border-color .15s;display:grid;position:relative}.gpa-course-row .btn-remove{width:auto}.gpa-course-row-wrap.is-expanded .gpa-course-row{border-bottom-color:#0000;border-bottom-right-radius:0;border-bottom-left-radius:0}.gpa-course-row-wrap:hover .gpa-course-row{border-color:#2a7d6f40}.gpa-course-row-skeleton{cursor:default;pointer-events:none}.gpa-course-row-skeleton .gpa-course-title-block{gap:6px}.gpa-course-title-block{flex-direction:column;gap:5px;min-width:0;display:flex}.gpa-course-name{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:700;overflow:hidden}.gpa-course-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gpa-course-code{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:700}.gpa-assumed-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-pill);background:var(--color-yellow-subtle);color:#92620a;cursor:help;align-items:center;gap:4px;padding:2px 8px;font-size:.66rem;font-weight:700;display:inline-flex}.gpa-course-credits-cell{color:var(--color-text-primary);justify-content:end;align-items:baseline;gap:3px;font-size:.9rem;font-weight:700;display:flex}.gpa-cr-unit{color:var(--color-text-muted);text-transform:uppercase;font-size:.68rem;font-weight:600}.gpa-result-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-page);width:100%;color:var(--color-text-primary);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;font-size:.85rem;font-weight:700;transition:all .15s;display:flex}.gpa-result-toggle:hover,.gpa-result-toggle:focus-visible{background:var(--color-surface);border-color:var(--color-text-muted)}.gpa-result-toggle span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gpa-chevron{color:var(--color-text-muted);flex-shrink:0;font-size:1.05rem;transition:transform .18s}.gpa-chevron.is-open{transform:rotate(90deg)}.gpa-inline-breakdown{border:1px solid var(--color-border);background:var(--color-page);border-top:none;border-bottom-right-radius:16px;border-bottom-left-radius:16px;flex-direction:column;gap:12px;padding:14px 16px;animation:.2s gpaExpandPreview;display:flex}@keyframes gpaExpandPreview{0%{opacity:0;max-height:0}to{opacity:1;max-height:2000px}}.gpa-weight-bar{flex-direction:column;gap:6px;display:flex}.gpa-weight-bar-track{border-radius:var(--radius-pill);background:var(--color-border);height:8px;overflow:hidden}.gpa-weight-bar-fill{background:var(--color-primary);height:100%;transition:width .2s}.gpa-weight-bar.over .gpa-weight-bar-fill{background:var(--color-red)}.gpa-weight-label{color:var(--color-text-secondary);font-size:.78rem;font-weight:700}.gpa-weight-bar.over .gpa-weight-label{color:var(--color-red)}.gpa-computed-grade{color:var(--color-primary);font-size:.85rem;font-weight:800}.gpa-category-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:stretch;gap:10px;display:grid}.gpa-category-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:6px;height:100%;padding:10px 12px;display:flex}.gpa-category-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.gpa-category-label{color:var(--color-text-primary);font-size:.85rem;font-weight:700}.gpa-category-label-input{border:none;border-bottom:1px dashed var(--color-border);color:var(--color-text-primary);background:0 0;padding:2px 0;font-size:.85rem;font-weight:700}.gpa-category-label-input:focus{border-bottom-color:var(--color-primary);outline:none}.gpa-remove-category,.gpa-remove-instance{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;align-items:center;transition:color .15s;display:flex}.gpa-remove-category:hover,.gpa-remove-instance:hover{color:var(--color-red)}.gpa-instance-list{flex-direction:column;gap:6px;display:flex}.gpa-instance-row{grid-template-columns:16px 1fr 1fr 1fr 20px;align-items:end;gap:8px;display:grid}.gpa-instance-index{color:var(--color-text-muted);padding-bottom:8px;font-size:.7rem}.gpa-instance-field label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:3px;font-size:.65rem;font-weight:700;display:block}.gpa-instance-field input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;padding:7px 10px;font-size:.82rem}.gpa-instance-field input:focus{border-color:var(--color-primary);outline:none}.gpa-add-instance{color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin-top:auto;padding-top:10px;font-size:.78rem;font-weight:700;display:inline-flex}.gpa-add-category-wrap{align-self:flex-start;position:relative}.gpa-category-picker-item{text-align:left;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-primary);background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;font-size:.84rem;font-weight:700;transition:background .15s;display:flex}.gpa-category-picker-item:hover{background:var(--color-page)}.gpa-category-picker-hint{color:var(--color-text-muted);text-transform:none;letter-spacing:0;font-size:.7rem;font-weight:600}.gpa-category-picker-custom{border-top:1px solid var(--color-border);color:var(--color-primary);margin-top:4px;padding-top:10px}.gpa-save-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:16px 24px;display:flex}.gpa-save-bar-inline{border:none;border-top:1px solid var(--color-border);border-top-left-radius:0;border-top-right-radius:0;margin-bottom:0}.gpa-save-status{color:var(--color-text-secondary);align-items:flex-start;gap:6px;font-size:.85rem;font-weight:600;display:flex}.gpa-save-actions{gap:10px;margin-left:auto;display:flex}@media (width<=880px){.gpa-header{flex-direction:column;align-items:flex-start}.gpa-badge-group{flex-wrap:wrap}.cgpa-badge,.cgpa-badge-outline{flex:1}.cgpa-value{font-size:1.4rem}.gpa-baseline-fields{grid-template-columns:1fr 1fr;align-items:end}.gpa-course-list-head{flex-direction:column;align-items:flex-start}.gpa-course-list-header{display:none}.gpa-course-row{grid-template-columns:1fr;gap:6px}.gpa-course-row .btn-remove{position:absolute;top:14px;right:16px}.gpa-course-row>*{width:100%}.gpa-course-title-block{padding-right:44px}.gpa-course-credits-cell{justify-content:start}.gpa-instance-row{grid-template-columns:1fr 1fr}.gpa-instance-index{display:none}.gpa-category-list{grid-template-columns:1fr}.gpa-inline-breakdown{padding:12px}.gpa-category-picker{width:min(260px,100vw - 64px)}.scale-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}.scale-item{padding:8px}.scale-grade{font-size:.85rem}.scale-points{font-size:.72rem}.scale-range{font-size:.62rem}}@media (width<=480px){.gpa-feedback-footer{display:none}.gpa-course-list-head,.gpa-course-list{padding:16px}.gpa-add-course-btn-div,.gpa-add-course-btn,.gpa-cat-add-btn{width:100%}}.teacher-detail-modal{max-width:720px;padding:0;overflow:hidden}.teacher-detail-modal .modal-body{margin:0;padding:0;display:block;overflow-y:auto}.tdm-shell{position:relative}.tdm-topbar{z-index:2;background:var(--color-surface);min-height:66px;padding:16px 20px 0;position:sticky;top:0}.tdm-topbar-actions{grid-template-columns:1fr auto;align-items:center;display:grid}.tdm-back-btn,.tdm-close-btn,.tdm-category-nav button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:color .18s,border-color .18s,background .18s,transform .18s}.tdm-back-btn:hover:not(:disabled),.tdm-close-btn:hover,.tdm-category-nav button:hover{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-subtle)}.tdm-back-btn:disabled{opacity:.45;cursor:default}.tdm-back-btn{border-radius:var(--radius-pill);justify-self:start;align-items:center;gap:5px;padding:7px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.tdm-close-btn{border-radius:50%;justify-self:end;width:34px;height:34px;font-size:1.1rem}.tdm-compact-profile{color:var(--color-text-primary);opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;margin-top:10px;font-size:1rem;font-weight:800;transition:opacity .2s,transform .2s;display:flex;transform:translateY(-8px)}.teacher-detail-modal--rating .tdm-compact-profile{opacity:1;transform:translateY(0)}.tdm-compact-avatar,.tdm-avatar{background:var(--color-primary-subtle);color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;font-weight:800;display:inline-flex;overflow:hidden}.tdm-compact-avatar{width:120px;height:120px;font-size:.82rem}.tdm-compact-avatar img,.tdm-avatar img{object-fit:cover;width:100%;height:100%}.tdm-view{transition:opacity .2s,transform .2s}.tdm-view--details{padding:0 32px 32px}.tdm-view--rating{padding:4px 32px 22px;display:none}.tdm-view.is-active{animation:.22s both tdm-view-in;display:block}.tdm-view--details:not(.is-active){display:none}@keyframes tdm-view-in{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:translate(0)}}.tdm-profile{align-items:center;gap:22px;padding-bottom:24px;display:flex}.tdm-avatar{flex:none;width:180px;height:180px;font-size:1.55rem;box-shadow:0 8px 24px #18171426}.tdm-profile-info{min-width:0}.tdm-profile-info h2{letter-spacing:-.02em;margin:0;font-family:IvyOra Display Light;font-size:2.1rem;font-weight:400}.tdm-email{color:var(--color-text-muted);overflow-wrap:anywhere;margin-top:5px;font-size:.9rem;display:block}.tdm-overall{border-radius:var(--radius-pill);color:var(--color-text-primary);background:#e68c0014;align-items:center;gap:5px;margin-top:12px;padding:4px 10px;font-size:.86rem;font-weight:800;display:inline-flex}.tdm-overall i{color:#e68c00}.tdm-rating-count{color:var(--color-text-muted);border-left:1px solid #e68c0038;align-items:center;gap:4px;margin-left:3px;padding-left:7px;font-size:.76rem;display:inline-flex}.tdm-titles{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.tdm-section{border-top:1px solid var(--color-border);padding:20px 0}.tdm-section-label,.tdm-rating-intro span{color:var(--color-text-secondary);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-size:.72rem;font-weight:800}.tdm-course-list{flex-wrap:wrap;gap:7px;display:flex}.tdm-course-badge{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-page);color:var(--color-text-secondary);padding:6px 12px;font-size:.78rem;font-weight:700}.tdm-averages{flex-direction:column;gap:12px;display:flex}.tdm-average-row{color:var(--color-text-secondary);grid-template-columns:96px 1fr 38px;align-items:center;gap:12px;font-size:.84rem;font-weight:600;display:grid}.tdm-average-row strong{color:var(--color-text-primary);text-align:right;font-size:.8rem}.tdm-average-track{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-page);height:8px;overflow:hidden}.tdm-average-fill{border-radius:inherit;background:linear-gradient(90deg, var(--color-primary), #30aadd);height:100%;transition:width .4s cubic-bezier(.4,0,.2,1)}.tdm-rate-cta{border-radius:var(--radius-pill);justify-content:center;gap:8px;width:100%}.tdm-anonymous{color:var(--color-text-muted);text-align:center;margin:11px 0 0;font-size:.78rem}.tdm-rating-intro{text-align:center}.tdm-rating-intro span{margin-bottom:6px;display:block}.tdm-rating-intro h2{margin:0;font-family:IvyOra Display Light;font-size:1.65rem;font-weight:400}.tdm-category-dots{justify-content:center;gap:7px;margin:10px 0 14px;display:flex}.tdm-category-dots button{border-radius:var(--radius-pill);background:var(--color-border);cursor:pointer;border:0;width:7px;height:7px;padding:0;transition:width .2s,background .2s}.tdm-category-dots button.is-active{background:var(--color-primary);width:20px}.tdm-rating-step{touch-action:pan-y}.tdm-reactions{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.tdm-reactions button{border-radius:var(--radius-md);min-width:0;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:4px 3px;transition:color .18s,background .18s;display:flex}.tdm-reactions button span{background:var(--color-page);border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:66px;max-width:100%;height:66px;transition:border-color .18s,background .18s,transform .18s;display:flex}.tdm-reactions button:hover span,.tdm-reactions button.is-selected span{border-color:var(--color-primary);background:var(--color-primary-subtle);transform:translateY(-2px)}.tdm-reactions button.is-selected{color:var(--color-primary)}.tdm-reactions img{width:88%;height:88%}.tdm-reactions small{text-align:center;font-size:.66rem;font-weight:700;line-height:1.2}.tdm-category-nav{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.tdm-category-nav button{border-radius:50%;width:36px;height:36px;font-size:1.15rem}.tdm-category-nav span{color:var(--color-text-muted);font-size:.8rem;font-weight:700}.tdm-error{color:var(--color-red);text-align:center;margin:14px 0 0;font-size:.84rem}.tdm-submit{border-radius:var(--radius-pill);width:min(220px,100%);margin:12px auto 0;display:block}.tdm-success{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:320px;animation:.22s both tdm-view-in;display:flex}.tdm-success i{color:var(--color-primary);font-size:3rem}.tdm-success h3{margin:0;font-size:1.25rem}.tdm-success p{color:var(--color-text-secondary);margin:0}@media (width<=768px){.teacher-detail-modal{border-radius:18px;width:100%;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px)}.tdm-shell{min-height:0}.tdm-topbar{padding:12px 16px 0}.tdm-view--details,.tdm-view--rating{padding-bottom:20px;padding-left:20px;padding-right:20px}.tdm-profile{text-align:center;flex-direction:column;gap:14px}.tdm-profile-info{flex-direction:column;align-items:center;display:flex}.tdm-avatar{width:108px;height:108px}.tdm-profile-info h2{font-size:1.8rem}.tdm-titles{justify-content:center}.tdm-average-row{grid-template-columns:75px 1fr 34px;gap:9px;font-size:.76rem}.tdm-rating-intro h2{font-size:1.5rem}}@media (width<=600px){.tdm-reactions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.tdm-reactions button{padding:5px}.tdm-reactions small{font-size:.68rem}}.teacher-list-page{flex-direction:column;gap:20px;display:flex}.teachers-search{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);box-shadow:none;flex:1;align-items:center;gap:8px;padding:10px 16px;display:flex}.teachers-search i{color:var(--color-text-muted);font-size:1rem}.teachers-search input{width:100%;color:var(--color-text-primary);background:0 0;border:none;outline:none;font-size:.9rem}.teachers-search input::placeholder{color:var(--color-text-muted)}.tl-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;display:grid}.tl-card{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;cursor:pointer;border-radius:20px;flex-direction:column;align-items:center;gap:12px;padding:32px 20px;text-decoration:none;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;box-shadow:0 4px 12px #1817140a}.tl-card:hover{border-color:#123c35;box-shadow:0 12px 24px #18171414}.tl-card.tl-card--rated{border-color:#123c356b;box-shadow:0 0 0 1px #123c3514,0 4px 12px #1817140a}.tl-card.tl-card--rated:hover{border-color:var(--color-primary);box-shadow:0 0 0 1px #123c3521,0 12px 24px #18171414}.tl-rating-badge{color:var(--color-text-secondary);background:#e68c0014;border-radius:12px;align-items:center;gap:4px;padding:4px 8px;font-size:.78rem;font-weight:700;display:inline-flex}.tl-rating-count{color:var(--color-text-muted);border-left:1px solid #e68c0038;align-items:center;gap:3px;margin-left:2px;padding-left:6px;font-size:.72rem;display:inline-flex}.tl-arrow-btn{width:32px;height:32px;color:var(--color-text-muted);background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:16px;right:16px}.tl-card:hover .tl-arrow-btn{color:var(--color-primary);border-color:var(--color-primary-subtle);transform:translate(2px,-2px)}.tl-avatar{background:var(--color-primary-subtle);border:1px solid var(--color-border);width:120px;height:120px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:8px;font-size:1.4rem;font-weight:800;display:flex;overflow:hidden}.tl-avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%}.tl-info{flex-direction:column;align-items:center;gap:8px;width:100%;min-width:0;display:flex}.tl-name{color:var(--color-text-primary);text-overflow:ellipsis;width:100%;font-size:1.2rem;font-weight:400}.tl-email{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:.8rem;font-weight:600;overflow:hidden}.tl-pills{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}@media (width<=768px){.page-hero{flex-direction:column;align-items:flex-start}.page-hero>button{justify-content:center;align-items:center;width:100%;display:inline-flex}.teacher-list-page{gap:14px}.tl-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.tl-card{gap:4px;padding:24px 16px}.tl-avatar{width:120px;height:120px;margin-bottom:12px;font-size:1.25rem}}.il-page{flex-direction:column;gap:20px;display:flex}.il-list-hero{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;align-items:center;gap:24px;padding:32px;display:flex}.il-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.il-title{letter-spacing:-.02em;color:var(--color-text-primary);margin:0;font-size:1.75rem;font-weight:800}.il-subtitle{color:var(--color-text-secondary);margin:4px 0 0;font-size:.9rem}.il-count-pill{border-radius:var(--radius-pill);color:var(--color-primary);white-space:nowrap;background:var(--color-primary-subtle);border:none;align-self:center;padding:10px 28px;font-size:1rem}.internships-filters{justify-content:flex-start;display:flex}.il-tabs{background-color:var(--color-page);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:2px;padding:4px;display:inline-flex}.il-tab{color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:3px 14px;font-size:.8rem;font-weight:700;transition:all .15s}.il-tab:hover{color:var(--color-text-primary);background:0 0}.il-tab.active{background-color:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 3px #0000001a}.il-tab-count{color:inherit;background:#0000000f;border-radius:8px;margin-left:10px;padding:1px 8px;font-size:.8rem;font-weight:800}.intern-list-search{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;flex:1;align-items:center;gap:8px;width:100%;padding:8px 14px;transition:border-color .15s,box-shadow .15s;display:flex}.intern-list-search>i{color:var(--color-text-muted);flex-shrink:0;font-size:.95rem}.intern-list-search input{color:var(--color-text-primary);background:0 0;border:none;outline:none;width:100%;font-size:.85rem}.intern-list-search input::placeholder{color:var(--color-text-muted)}.il-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px;display:grid}.il-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;flex-direction:column;gap:10px;width:100%;padding:20px;transition:box-shadow .18s,border-color .18s,transform .18s;display:flex;position:relative}.il-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary)}.il-card:active{transform:translateY(0)}.il-card-top{align-items:flex-start;gap:14px;display:flex}.il-card-meta{flex-direction:column;flex:1;align-items:flex-start;gap:5px;min-width:0;display:flex}.il-card-title{color:var(--color-text-primary);line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:1.2rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.il-card-company{color:var(--color-text-secondary);line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:3px 0 0;font-size:.82rem;font-weight:500;display:-webkit-box;overflow:hidden}.il-flag-btn{cursor:pointer;color:var(--color-text-secondary,#888);background:0 0;border:none;border-radius:8px;padding:4px;font-size:1.1rem;transition:color .15s,background .15s}.il-flag-btn:hover:not(:disabled){color:#c0392b;background:#dc323214}.il-flag-btn.flagged{color:#c0392b}.il-flag-btn:disabled{cursor:default;opacity:.7}.il-card-arrow{color:var(--color-text-muted);flex-shrink:0;margin-top:2px;font-size:1.1rem;transition:color .18s,transform .18s}.il-card:hover .il-card-arrow{color:var(--color-primary);transform:translate(2px,-2px)}.il-card-badges{flex-direction:column;gap:10px;display:flex}.il-card-badges-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.il-location-text{color:var(--color-text-muted);align-items:center;gap:3px;font-size:.78rem;font-weight:500;display:flex}.intern-badge{align-items:flex-start;font-size:.8rem;display:flex}.il-card-eligibility{color:var(--color-text-muted);line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.8rem;line-height:1.45;display:-webkit-box;overflow:hidden}.il-card-footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;display:flex}.il-deadline{color:var(--color-text-muted);align-items:center;gap:5px;font-size:.8rem;font-weight:500;display:flex}.il-deadline i{font-size:.9rem}.il-deadline-urgent{color:#c0392b;font-weight:700}.il-deadline-none{color:var(--color-text-muted);font-style:italic}.il-card-skeleton{cursor:default;pointer-events:none}.il-card-skeleton:hover{box-shadow:var(--shadow-sm);border-color:var(--color-border);transform:none}@media (width<=768px){.il-page{gap:var(--space-4)}.il-grid{grid-template-columns:1fr}.il-header{flex-direction:column;align-items:flex-start}.resources-hero{flex-direction:column;justify-content:flex-start;align-items:normal;display:flex}.il-count-pill{align-self:flex-start;padding:8px 14px;font-size:.7rem}.il-tabs{justify-content:center}.internships-search.user,.internships-search.user.compact{width:100%}}@media (width<=480px){.internships-filters{justify-content:center}.resources-toolbar{align-items:normal}.intern-list-search.user{width:100%}}.id-page{flex-direction:column;gap:20px;display:flex}.id-layout{flex-direction:column;gap:20px;width:100%;display:flex}.id-main{flex-direction:column;gap:16px;width:100%;display:flex}.id-header-card{background:linear-gradient(180deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));flex-direction:column;gap:16px;padding:24px;display:flex}.id-header-top{align-items:center;gap:18px;display:flex}.id-header-info{flex:1;min-width:0}.id-title{letter-spacing:-.02em;color:var(--color-text-primary);margin:0 0 4px;font-family:IvyOra Display Thin;font-size:2.25rem;font-weight:600;line-height:1.3}.id-company{color:var(--color-text-secondary);margin:0;font-size:1.5rem;font-weight:400}.id-badges-card{box-shadow:none;background:0 0;border:none;justify-content:center;padding:0;display:flex}.id-badges-section{border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:8px;padding-top:16px;display:flex}.id-badges-section .badge{align-items:center;gap:4px;font-size:16px;display:flex}.id-section-card{flex-direction:column;gap:14px;padding:24px;display:flex}.id-section-title{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-secondary);align-items:center;gap:6px;margin:0;font-size:.8rem;font-weight:800;display:flex}.id-section-title i{color:var(--color-primary);font-size:1rem}.id-role-text{color:var(--color-text-primary);margin:0;font-size:1rem;font-weight:600}.id-description{color:var(--color-text-secondary);flex-direction:column;gap:4px;font-size:.92rem;line-height:1.7;display:flex}.id-description p{margin:0}.id-sidebar-card{flex-direction:column;gap:20px;padding:24px;display:flex}.id-apply-section{flex-flow:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.id-apply-btn{text-align:center;justify-content:center;align-items:center;gap:8px;width:auto;min-width:200px;padding:12px 24px;font-size:.9rem;text-decoration:none;transition:opacity .15s,transform .15s;display:flex}.id-apply-btn:hover{opacity:.9}.id-flag-btn{text-align:center;cursor:pointer;border:none;border-radius:30px;justify-content:center;align-self:flex-end;align-items:center;gap:8px;max-width:250px;margin-top:2rem;padding:12px 24px;font-size:.9rem;text-decoration:none;transition:opacity .15s,transform .15s;display:flex}.id-flag-btn:disabled{cursor:default;opacity:.7}.id-flag-spin{animation:.8s linear infinite id-flag-spin}@keyframes id-flag-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.id-no-apply{color:var(--color-text-muted);text-align:center;margin:0;font-size:.85rem;font-style:italic}.id-divider{background:var(--color-border);height:1px;margin:0}.id-details{justify-content:space-between;align-items:flex-start;gap:25px;display:flex}.id-detail-item{flex-direction:column;gap:4px;display:flex}.id-detail-item dt{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);align-items:center;gap:5px;font-size:.72rem;font-weight:700;display:flex}.id-detail-item dt i{font-size:.85rem}.id-detail-item dd{color:var(--color-text-primary);flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:.88rem;font-weight:600;display:flex}.id-detail-urgent{color:#c0392b!important}.id-detail-expired{text-decoration:line-through;color:var(--color-text-muted)!important}.id-days-badge{border-radius:var(--radius-pill);background:var(--color-primary-subtle);color:var(--color-primary);padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.id-days-badge.urgent{color:#c0392b;background:#c0392b1a}.id-email-link{color:var(--color-primary);word-break:break-all;font-weight:600;text-decoration:none}.id-email-link:hover{text-decoration:underline}.breadcrumbs{padding:.65rem 0 0;font-size:.9rem;font-weight:400}.id-extra-details{flex-direction:column;gap:10px;margin:0;display:flex}.id-extra-item{flex-wrap:wrap;align-items:flex-start;gap:8px;font-size:.9rem;line-height:1.6;display:flex}.id-extra-item dt{color:var(--color-text-primary);white-space:nowrap;flex-shrink:0;font-weight:700}.id-extra-item dt:after{content:":"}.id-extra-item dd{color:var(--color-text-secondary);flex:1;margin:0}@media (width<=768px){.id-header-top{flex-direction:column;align-items:flex-start;gap:14px}.id-title{font-size:1.8rem}.id-company{font-size:1rem}.id-badges-section .badge{gap:4px;font-size:.8rem}.id-apply-section{flex-direction:column;align-items:stretch}.id-apply-btn{width:100%}.id-details{flex-wrap:wrap}.id-flag-btn{width:100%;font-size:.8rem}}.sr-overlay{z-index:700;background:var(--color-page);background-image:radial-gradient(600px at 12% 8%,#1a504712,#0000 60%),radial-gradient(500px at 92% 88%,#f5a6230d,#0000 55%);flex-direction:column;height:100dvh;display:flex;position:fixed;inset:0;overflow:hidden}.sr-overlay:before{content:"";pointer-events:none;opacity:0;z-index:0;transition:opacity .18s,background .18s;position:absolute;inset:0}.sr-overlay--hint-left:before{opacity:1;background:radial-gradient(900px at 0%,#d930251a,#0000 60%)}.sr-overlay--hint-right:before{opacity:1;background:radial-gradient(900px at 100%,#1e8c451a,#0000 60%)}.sr-topbar{z-index:2;background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:20px;flex-shrink:0;grid-template-columns:1fr minmax(0,auto) 1fr;align-items:center;gap:8px;margin:12px 12px 0;padding:12px 16px;display:grid;position:relative}.sr-close{border:1px solid var(--color-border);background:var(--color-surface);width:38px;height:38px;color:var(--color-text-secondary);cursor:pointer;border-radius:50%;justify-content:center;justify-self:start;align-items:center;font-size:1.15rem;transition:color .15s,border-color .15s,background .15s,transform .15s;display:flex}.sr-close:hover{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-subtle)}.sr-close:active{transform:scale(.92)}.sr-counter{border-radius:var(--radius-pill);background:var(--color-primary-subtle);min-width:0;max-width:100%;color:var(--color-primary);letter-spacing:.01em;align-items:center;gap:6px;padding:7px 16px;font-size:.82rem;font-weight:800;transition:transform .18s cubic-bezier(.34,1.56,.64,1);display:inline-flex}.sr-counter i{flex-shrink:0}.sr-counter-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sr-counter--pulse{transform:scale(1.12)}.sr-counter i{font-size:.95rem}.sr-topbar-right{justify-self:end;align-items:center;gap:8px;display:flex}.sr-help-btn{border:1px solid var(--color-border);background:var(--color-surface);width:34px;height:34px;color:var(--color-text-secondary);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;transition:color .15s,border-color .15s,background .15s,transform .15s;display:flex}.sr-help-btn--floating{z-index:3;box-shadow:var(--shadow-md);position:absolute;bottom:35px;left:20px}.sr-help-btn:hover{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-subtle)}.sr-help-btn:active{transform:scale(.92)}.sr-timer{border-radius:var(--radius-pill);background:var(--color-page);border:1px solid var(--color-border);min-width:38px;color:var(--color-text-muted);font-variant-numeric:tabular-nums;align-items:center;gap:5px;padding:7px 14px;font-size:.78rem;font-weight:700;display:inline-flex}.sr-timer i{font-size:.9rem}.sr-save-progress{z-index:2;background:var(--color-border);flex-shrink:0;height:2.5px;position:relative;overflow:hidden}.sr-save-progress-bar{background:var(--color-primary);width:40%;height:100%;animation:1.1s ease-in-out infinite sr-save-progress-slide;position:absolute;top:0;left:0}@keyframes sr-save-progress-slide{0%{left:-40%}to{left:100%}}.sr-stage{z-index:1;perspective:900px;flex:1;justify-content:center;align-items:center;min-height:0;padding:0 20px 16px;display:flex;position:relative}.sr-card{background:var(--color-surface);border:1px solid var(--color-border);width:clamp(240px,80vw,380px);box-shadow:var(--shadow-lg);border-radius:22px;position:absolute}.sr-card--top{z-index:10;cursor:grab;touch-action:pan-y}.sr-card--top:active{cursor:grabbing}.sr-card--stacked{box-shadow:var(--shadow-sm);transform:translateY(calc(var(--stack-index) * 10px)) scale(calc(1 - var(--stack-index) * .05)) rotate(calc(var(--tilt,0) * 1deg));transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.sr-card--loading,.sr-card--rating-panel{z-index:10;flex-direction:column;justify-content:center;align-items:center;animation:.18s cubic-bezier(.34,1.56,.64,1) both sr-panel-in;display:flex}@keyframes sr-panel-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.sr-swipe-tag{background:var(--color-surface);pointer-events:none;opacity:0;z-index:5;border:3px solid;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.6rem;transition:opacity .12s,transform .12s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute;top:24px;transform:scale(.8)}.sr-swipe-tag.is-visible{opacity:1;transform:scale(1)}.sr-swipe-tag--skip{color:var(--color-red);border-color:var(--color-red);right:20px;transform:rotate(14deg)scale(.8)}.sr-swipe-tag--skip.is-visible{transform:rotate(14deg)scale(1)}.sr-swipe-tag--rate{color:var(--color-green);border-color:var(--color-green);left:20px;transform:rotate(-14deg)scale(.8)}.sr-swipe-tag--rate.is-visible{transform:rotate(-14deg)scale(1)}.sr-card-content{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;height:100%;padding:clamp(20px,5vh,32px) 22px;display:flex}.sr-card-avatar{background:var(--color-primary-subtle);border:1px solid var(--color-border);width:clamp(84px,22vh,132px);height:clamp(84px,22vh,132px);color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:4px;font-size:1.4rem;font-weight:800;display:flex;overflow:hidden}.sr-card-avatar img{object-fit:cover;width:100%;height:100%}.sr-card-name{letter-spacing:-.01em;color:var(--color-text-primary);margin:0;font-family:IvyOra Display Light;font-size:clamp(1.3rem,4vh,1.7rem);font-weight:400}.sr-card-pills{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.sr-card-courses{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:2px;display:flex}.sr-course-badge{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-page);color:var(--color-text-secondary);padding:4px 11px;font-size:.72rem;font-weight:700}.sr-card-rating{border-radius:var(--radius-pill);color:var(--color-text-primary);background:#e68c0014;align-items:center;gap:5px;margin-top:6px;padding:5px 12px;font-size:.86rem;font-weight:800;display:inline-flex}.sr-card-rating i{color:#e68c00}.sr-card-rating-count{color:var(--color-text-muted);border-left:1px solid #e68c0038;align-items:center;gap:3px;margin-left:3px;padding-left:7px;font-size:.74rem;display:inline-flex}.sr-rating-view{flex-direction:column;gap:8px;width:100%;height:100%;padding:clamp(14px,3vh,20px) 22px clamp(18px,4vh,26px);display:flex;position:relative}.sr-rating-back{border:1px solid var(--color-border);background:var(--color-surface);width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;z-index:1;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;transition:color .15s,border-color .15s,background .15s;display:flex;position:absolute;top:clamp(14px,3vh,20px);left:16px}.sr-rating-back:hover{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-subtle)}.sr-rating-header{color:var(--color-text-primary);flex-direction:column;align-items:center;gap:8px;font-size:.92rem;font-weight:800;display:flex}.sr-rating-avatar{background:var(--color-primary-subtle);width:clamp(48px,10vh,64px);height:clamp(48px,10vh,64px);color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;font-size:.78rem;font-weight:800;display:flex;overflow:hidden}.sr-rating-avatar img{object-fit:cover;width:100%;height:100%}.sr-category-fade{animation:.2s both sr-category-fade-in}@keyframes sr-category-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.sr-rating-category{text-align:center;color:var(--color-text-primary);margin:clamp(8px,2.5vh,14px) 0 0;font-family:IvyOra Display Light;font-size:clamp(1.2rem,3.5vh,1.5rem);font-weight:400}.sr-category-dots{justify-content:center;gap:7px;margin:8px 0 clamp(10px,2.5vh,18px);display:flex}.sr-category-dots button{border-radius:var(--radius-pill);background:var(--color-border);cursor:pointer;border:0;width:7px;height:7px;padding:0;transition:width .18s,background .18s}.sr-category-dots button.is-active{background:var(--color-primary);width:20px}.sr-reactions{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:clamp(8px,2vh,14px) 14px;min-height:0;display:grid}.sr-reactions button{border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:2px;transition:color .15s;display:flex}.sr-reactions button span{background:var(--color-page);border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:clamp(48px,11vh,68px);transition:border-color .15s,background .15s,transform .15s cubic-bezier(.34,1.56,.64,1);display:flex}.sr-reactions button:hover span{transform:translateY(-2px)}.sr-reactions button.is-selected span{border-color:var(--color-primary);background:var(--color-primary-subtle);animation:.32s cubic-bezier(.34,1.56,.64,1) both sr-reaction-pop}@keyframes sr-reaction-pop{0%{transform:translateY(0)scale(1)}45%{transform:translateY(-4px)scale(1.14)}to{transform:translateY(-2px)scale(1.06)}}.sr-reactions button.is-selected{color:var(--color-primary)}.sr-reactions img{width:86%;height:86%}.sr-reactions small{text-align:center;font-size:.68rem;font-weight:700;line-height:1.2}.sr-error{color:var(--color-red);text-align:center;margin:6px 0 0;font-size:.8rem}.sr-submit{border-radius:var(--radius-pill);width:100%;margin-top:12px}.sr-toast{z-index:20;border-radius:var(--radius-pill);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);color:var(--color-text-primary);opacity:0;pointer-events:none;align-items:center;gap:8px;padding:9px 18px;font-size:.85rem;font-weight:700;animation:.22s cubic-bezier(.34,1.56,.64,1) forwards sr-toast-in,.22s 1.55s forwards sr-toast-out;display:inline-flex;position:absolute;top:10px;left:50%}.sr-toast i{color:var(--color-green);font-size:1rem}.sr-toast--error i{color:var(--color-red)}@keyframes sr-toast-in{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes sr-toast-out{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(-8px)}}.sr-fallback-actions{z-index:2;flex-shrink:0;justify-content:center;align-items:center;gap:26px;padding:6px 20px 24px;display:flex;position:relative}.sr-fallback-btn{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;width:58px;height:58px;box-shadow:var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;transition:transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .15s,border-color .15s,color .15s;display:flex}.sr-fallback-btn:hover{transform:translateY(-2px)}.sr-fallback-btn:active{transform:scale(.92)}.sr-fallback-btn--skip{color:var(--color-red)}.sr-fallback-btn--skip:hover{border-color:var(--color-red);background:var(--color-red-subtle)}.sr-fallback-btn--rate{color:var(--color-green)}.sr-fallback-btn--rate:hover{border-color:var(--color-green);background:var(--color-green-subtle)}.sr-tone-neutral{--sr-accent:var(--color-text-secondary);--sr-accent-subtle:var(--color-page)}.sr-tone-teal{--sr-accent:var(--color-primary);--sr-accent-subtle:var(--color-primary-subtle)}.sr-tone-gold{--sr-accent:#e6a70c;--sr-accent-subtle:#e6a70c24}.sr-tone-hot{--sr-accent:#e2542f;--sr-accent-subtle:#e2542f24}.sr-overlay--summary{background-image:radial-gradient(700px circle at 15% 8%, color-mix(in srgb, var(--sr-accent) 14%, transparent), transparent 62%), radial-gradient(600px circle at 88% 94%, color-mix(in srgb, var(--sr-accent) 10%, transparent), transparent 58%)}.sr-summary{z-index:2;text-align:center;background:var(--glass-bg);width:min(400px,92vw);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);border-radius:24px;flex-direction:column;align-items:center;gap:10px;margin:auto;padding:36px 28px 28px;animation:.28s cubic-bezier(.34,1.56,.64,1) both sr-panel-in;display:flex;position:relative;overflow:hidden}.sr-summary-icon{background:var(--sr-accent-subtle);width:72px;height:72px;color:var(--sr-accent);box-shadow:0 0 0 6px color-mix(in srgb, var(--sr-accent) 8%, transparent);border-radius:50%;justify-content:center;align-items:center;margin:8px 0 2px;font-size:2rem;animation:.4s cubic-bezier(.34,1.56,.64,1) .12s both sr-icon-pop,2.2s ease-in-out .6s infinite sr-icon-pulse;display:flex}@keyframes sr-icon-pop{0%{opacity:0;transform:scale(.4)rotate(-8deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes sr-icon-pulse{0%,to{box-shadow:0 0 0 6px color-mix(in srgb, var(--sr-accent) 8%, transparent)}50%{box-shadow:0 0 0 10px color-mix(in srgb, var(--sr-accent) 4%, transparent)}}.sr-summary h2{color:var(--color-text-primary);margin:0;font-family:IvyOra Display Light;font-size:1.6rem;font-weight:400}.sr-summary p{color:var(--color-text-secondary);margin:0 0 8px;font-size:.9rem;line-height:1.6}.sr-summary-stats{grid-template-columns:repeat(2,minmax(80px,1fr));gap:8px;width:100%;margin:4px 0;display:grid}.sr-summary-stat{border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;align-items:center;gap:3px;padding:12px 6px;transition:border-color .2s,transform .2s cubic-bezier(.34,1.56,.64,1);display:flex}.sr-summary-stat:hover{border-color:color-mix(in srgb, var(--sr-accent) 30%, var(--color-border));transform:translateY(-2px)}.sr-summary-stat i{color:var(--sr-accent);margin-bottom:2px;font-size:1.05rem}.sr-summary-stat-value{color:var(--color-text-primary);font-size:1.05rem;font-weight:800}.sr-summary-stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:.66rem;font-weight:700}.sr-summary-actions{flex-wrap:wrap;gap:10px;width:100%;margin-top:10px;display:flex}.sr-summary-actions .btn{border-radius:var(--radius-pill);flex:1}.sr-help-backdrop{z-index:800;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;justify-content:center;align-items:center;padding:20px;animation:.18s sr-help-fade-in;display:flex;position:fixed;inset:0}@keyframes sr-help-fade-in{0%{opacity:0}to{opacity:1}}.sr-help-modal{background:var(--color-surface);width:min(380px,100%);max-height:86vh;box-shadow:var(--shadow-modal);border-radius:20px;padding:28px 24px 24px;animation:.22s cubic-bezier(.34,1.56,.64,1) sr-help-scale-in;position:relative;overflow-y:auto}@keyframes sr-help-scale-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.sr-help-modal h2{color:var(--color-text-primary);margin:0 0 18px;padding-right:24px;font-family:IvyOra Display Light;font-size:1.35rem;font-weight:400}.sr-help-close{border:1px solid var(--color-border);background:var(--color-surface);width:30px;height:30px;color:var(--color-text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:.95rem;transition:color .15s,border-color .15s,background .15s;display:flex;position:absolute;top:18px;right:18px}.sr-help-close:hover{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-subtle)}.sr-help-list{flex-direction:column;gap:16px;margin:0 0 20px;padding:0;list-style:none;display:flex}.sr-help-list li{align-items:flex-start;gap:12px;display:flex}.sr-help-list i{background:var(--color-primary-subtle);width:34px;height:34px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;display:flex}.sr-help-list div{flex-direction:column;gap:2px;padding-top:3px;display:flex}.sr-help-list strong{color:var(--color-text-primary);font-size:.88rem;font-weight:800}.sr-help-list span{color:var(--color-text-secondary);font-size:.82rem;line-height:1.4}.sr-help-modal .btn{border-radius:var(--radius-pill);width:100%}@media (width<=768px){.sr-topbar{margin:10px 10px 0;padding:12px 14px}.sr-card{width:clamp(240px,88vw,380px)}.sr-summary-stats{grid-template-columns:repeat(2,minmax(80px,1fr))}}@media (width<=480px){.sr-card{border-radius:18px}.sr-fallback-btn{width:52px;height:52px;font-size:1.35rem}.sr-swipe-tag{width:44px;height:44px;font-size:1.35rem;top:18px}.sr-close,.sr-help-btn{width:34px;height:34px}.sr-timer{padding:6px 11px;font-size:.72rem}.sr-counter{padding:6px 12px;font-size:.75rem}.sr-reactions button span{width:clamp(44px,10vh,60px)}.sr-rating-view{padding-left:18px;padding-right:18px}}@media (width<=360px){.sr-topbar{margin:8px 8px 0;padding:10px 12px}.sr-counter{padding:5px 10px;font-size:.7rem}.sr-topbar-right{gap:6px}.sr-fallback-actions{gap:18px}.sr-card-courses{display:none}}@media (height<=700px){.sr-topbar{margin:8px 10px 0;padding:10px 14px}.sr-stage{padding:0 16px 10px}}@media (height<=520px){.sr-card-courses,.sr-card-rating{display:none}.sr-card-avatar{width:clamp(56px,16vh,84px);height:clamp(56px,16vh,84px)}}@keyframes tt-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tt-setup-modal{width:660px;max-width:94vw}.tt-setup-modal .modal-body{max-height:62vh;padding-right:0;overflow-y:auto}.tt-setup-loading{flex-direction:column;gap:10px;display:flex}.tt-setup-skeleton-row{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--color-border) 25%, var(--color-page) 50%, var(--color-border) 75%);background-size:600px 100%;height:52px;animation:1.4s ease-in-out infinite skeleton-shimmer}.tt-setup-unresolved{background:var(--color-yellow-subtle);border-radius:var(--radius-md);color:#7a4800;border:1px solid #f5a6234d;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:.85rem;display:flex}.tt-setup-unresolved i{flex-shrink:0;margin-top:1px;font-size:1.1rem}.tt-setup-unresolved ul{margin:4px 0 0;padding-left:18px}.tt-setup-import-panel{background:var(--color-page);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.tt-setup-import-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);flex-shrink:0;align-items:center;gap:5px;font-size:.74rem;font-weight:700;display:flex}.tt-setup-unsaved-note{color:var(--color-text-muted);margin-right:auto;font-size:.78rem;font-weight:600}.tt-setup-actions-btns{align-items:center;gap:10px;display:flex}.tt-setup-import-label i{color:var(--color-primary);font-size:.85rem}.tt-setup-import-hint{color:var(--color-text-muted);flex-basis:100%;font-size:.76rem}.tt-setup-roll-panel{background:var(--color-page);border-radius:var(--radius-md);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.tt-setup-roll-row{align-items:center;gap:8px;display:flex}.tt-setup-roll-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);height:34px;color:var(--color-text-primary);outline:none;flex:1;padding:0 10px;font-family:inherit;font-size:.85rem;font-weight:600;transition:border-color .15s}.tt-setup-roll-input::placeholder{color:var(--color-text-muted);font-weight:400}.tt-setup-roll-input:focus{border-color:#2a7d6f73}.tt-setup-roll-input:disabled{opacity:.6;cursor:not-allowed}.tt-setup-roll-btn:hover:not(:disabled){background:var(--color-primary-subtle);border-color:#2a7d6f66}.tt-setup-body{flex-direction:column;gap:20px;display:flex}.tt-setup-section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;padding-right:4px;display:flex}.tt-setup-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-size:.74rem;font-weight:700}.tt-setup-empty{color:var(--color-text-muted);padding:8px 0;font-size:.85rem}.tt-setup-rows{flex-direction:column;gap:6px;display:flex}.tt-setup-row{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;transition:border-color .15s,background .15s;display:flex}.tt-setup-row-title{color:var(--color-text-primary);flex-direction:column;gap:3px;min-width:0;font-size:.87rem;font-weight:600;display:flex}.tt-setup-row-title span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tt-setup-row-note{color:var(--color-text-muted);font-size:.74rem;font-weight:600}.tt-setup-row-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.tt-setup-drop-btn{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);width:30px;height:30px;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.tt-setup-drop-btn:hover{border-color:var(--color-red);color:var(--color-red);background:var(--color-red-subtle)}.tt-setup-row.is-unmatched{background:var(--color-page);border-style:dashed}.tt-setup-row.is-unmatched .tt-setup-row-title span:first-child{color:var(--color-text-secondary)}.tt-setup-row.is-dropped{background:var(--color-page);border-color:var(--color-border);opacity:.7}.tt-setup-row-strike{color:var(--color-text-muted);text-decoration:line-through}.tt-setup-undo-btn{color:var(--color-primary);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;gap:5px;padding:4px 6px;font-size:.8rem;font-weight:700;display:flex}.tt-setup-undo-btn:hover{color:var(--color-primary-hover)}.tt-setup-section-picker{position:relative}.cmp-course-card .tt-setup-section-picker{flex:1}.tt-setup-section-trigger{border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:130px;color:var(--color-text-primary);background:var(--color-page);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:6px 8px 6px 10px;font-size:.82rem;font-weight:600;transition:border-color .15s;display:flex}.tt-setup-section-trigger:hover{border-color:#2a7d6f4d}.tt-setup-section-trigger.is-empty span{color:var(--color-text-muted);font-weight:500}.tt-setup-section-trigger i{color:var(--color-text-muted);flex-shrink:0;font-size:1rem}.tt-setup-section-option{text-align:left;border-radius:var(--radius-sm);cursor:pointer;width:100%;color:var(--color-text-primary);background:0 0;border:none;align-items:center;gap:6px;padding:7px 10px;font-size:.85rem;font-weight:600;transition:background .15s;display:flex}.tt-setup-section-option:hover{background:var(--color-page)}.tt-setup-section-option.is-selected{background:var(--color-primary-subtle);color:var(--color-primary)}.tt-setup-section-option i{flex-shrink:0;font-size:.9rem}.tt-setup-add-wrap{flex-shrink:0;position:relative}.tt-setup-add-wrap button{box-shadow:none;border:none;padding:.4rem .8rem;font-size:.95rem}.tt-setup-add-wrap button i{font-size:1.2rem}.tt-setup-add-results{flex-direction:column;gap:2px;max-height:260px;display:flex;overflow-y:auto}.tt-setup-add-result{text-align:left;border-radius:var(--radius-sm);cursor:pointer;width:100%;color:var(--color-text-primary);background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:.85rem;transition:background .15s;display:flex}.tt-setup-add-result:hover{background:var(--color-page)}.tt-setup-add-code{color:var(--color-text-muted);flex-shrink:0;font-size:.74rem;font-weight:700}.tt-setup-add-empty{color:var(--color-text-muted);padding:10px;font-size:.82rem}@media (width<=600px){.tt-setup-modal{width:100%}.tt-setup-modal .modal-body{max-height:68vh}.tt-setup-add-wrap button i{font-size:1rem}.tt-setup-row{flex-direction:column;align-items:stretch}.tt-setup-row-actions{justify-content:space-between}.tt-setup-section-picker{flex:1}.tt-setup-section-trigger{width:100%}}@media (width<=480px){.tt-setup-modal .modal-actions{flex-direction:column}.tt-setup-unsaved-note{text-align:center;margin-right:0}.tt-setup-actions-btns{flex-direction:column-reverse;gap:8px;width:100%}.tt-setup-actions-btns button{width:100%}}.cmp-page{flex-direction:column;gap:20px;padding-bottom:48px;display:flex}.cmp-back-link{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:6px;margin-bottom:-6px;padding:0;font-size:.85rem;font-weight:700;transition:color .15s;display:flex}.cmp-back-link:hover{color:var(--color-primary)}.cmp-step-bar{background:var(--color-page);border:1px solid var(--color-border);border-radius:999px;align-self:flex-start;align-items:center;gap:2px;padding:3px;display:flex}.cmp-step-bar .tt-tab:disabled{opacity:.5;cursor:not-allowed}.cmp-build{flex-direction:column;gap:16px;display:flex}.cmp-friend-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:18px;flex-direction:column;padding:20px;transition:border-color .15s,box-shadow .15s;display:flex}.cmp-friend-card:hover{box-shadow:var(--shadow-md)}.cmp-card-head{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:10px;display:flex}.cmp-card-actions{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.cmp-collapse-btn{width:26px;height:26px;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.cmp-collapse-btn:hover{background:var(--color-page);color:var(--color-text-primary)}.cmp-collapse-btn i{font-size:1.1rem}.cmp-collapse-icon{transition:transform .22s cubic-bezier(.4,0,.2,1)}.cmp-friend-card.is-collapsed .cmp-collapse-icon{transform:rotate(-90deg)}.cmp-collapsed-count{color:var(--color-text-muted);background:var(--color-page);border-radius:var(--radius-pill);white-space:nowrap;flex-shrink:0;padding:3px 10px;font-size:.78rem;font-weight:700}.cmp-friend-card.is-collapsed{padding-bottom:20px}.cmp-avatar{background:var(--color-primary-subtle);width:36px;height:36px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;font-weight:800;display:flex}.cmp-avatar-you{font-size:1rem}.cmp-name-input{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;border-bottom:1px solid #0000;outline:none;flex:1;min-width:0;padding:4px 0;font-size:1rem;font-weight:700;overflow:hidden}.cmp-name-input:focus{border-bottom-color:var(--color-border)}.cmp-name-static{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:50px;padding:4px 0;overflow:hidden}.cmp-collapse-wrap{opacity:1;grid-template-rows:1fr;margin-top:14px;transition:grid-template-rows .24s cubic-bezier(.4,0,.2,1),opacity .18s,margin-top .24s cubic-bezier(.4,0,.2,1);display:grid}.cmp-collapse-wrap.is-collapsed{opacity:0;grid-template-rows:0fr;margin-top:0}.cmp-collapse-wrap>.cmp-card-body{min-height:0;overflow:hidden}.cmp-card-body{flex-direction:column;gap:16px;display:flex}.cmp-import-panel{border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cmp-import-block{background:var(--color-page);border-radius:var(--radius-md);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.cmp-import-divider{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);align-items:center;gap:10px;font-size:.68rem;font-weight:700;display:flex}.cmp-import-divider:before,.cmp-import-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.cmp-roll-panel{flex-direction:column;gap:8px;display:flex}.cmp-roll-row{align-items:center;gap:8px;display:flex}.cmp-roll-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);height:34px;color:var(--color-text-primary);outline:none;flex:1;padding:0 10px;font-family:inherit;font-size:.85rem;font-weight:600;transition:border-color .15s}.cmp-roll-input::placeholder{color:var(--color-text-muted);font-weight:400}.cmp-roll-input:focus{border-color:#2a7d6f73}.cmp-roll-input:disabled{opacity:.6;cursor:not-allowed}.cmp-import-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);flex-shrink:0;align-items:center;gap:5px;font-size:.74rem;font-weight:700;display:flex}.cmp-import-label i{color:var(--color-primary);font-size:.85rem}.cmp-empty-note{color:var(--color-text-muted);padding:6px 0;font-size:.85rem}.cmp-course-section{flex-direction:column;gap:10px;display:flex}.cmp-course-section-head{align-items:center;gap:8px;display:flex}.cmp-course-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.cmp-course-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:8px;padding:12px 14px;transition:border-color .15s,box-shadow .15s;display:flex}.cmp-course-card:hover{box-shadow:var(--shadow-sm);border-color:#2a7d6f40}.cmp-course-card-static{background:var(--color-page)}.cmp-course-card-static:hover{border-color:var(--color-border);box-shadow:none}.cmp-course-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.cmp-course-code{letter-spacing:.02em;color:var(--color-primary);font-size:.74rem;font-weight:800}.cmp-course-remove{width:20px;height:20px;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.cmp-course-remove:hover{background:var(--color-red-subtle);color:var(--color-red)}.cmp-course-title{color:var(--color-text-primary);line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;font-weight:700;line-height:1.3;display:-webkit-box;overflow:hidden}.cmp-course-card-bottom{flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;display:flex}.cmp-course-warn{color:var(--color-yellow);font-size:.72rem;font-weight:700}.cmp-section-tag{color:var(--color-text-muted);background:var(--color-page);border-radius:var(--radius-pill);padding:4px 12px 4px 0;font-size:.78rem;font-weight:700}.cmp-add-wrap{justify-content:center;align-self:flex-start;display:flex}.add-class-btn{padding:8px 50px}.cmp-add-friend-btn{align-self:flex-start}.cmp-edit-btn{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);width:30px;height:30px;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.cmp-edit-btn:hover{color:var(--color-primary);background:var(--color-primary-subtle);border-color:#2a7d6f4d}.cmp-build-footer{justify-content:flex-end;margin-top:4px;display:flex}.tt-results-count.cmp-dayoff-tag{background:var(--color-page);color:var(--color-text-muted)}.cmp-day-note{color:var(--color-text-muted);letter-spacing:.01em;margin:0 0 4px;font-size:.75rem;font-weight:500}.cmp-results{flex-direction:column;gap:1.2rem;display:flex}.cmp-day-block{flex-direction:column;gap:12px;display:flex}.cmp-free-panel{flex-direction:column;gap:14px;display:flex}.cmp-free-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.cmp-free-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:20px;flex-direction:column;gap:8px;padding:18px 18px 18px 22px;transition:all .22s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.cmp-free-card:before{content:"";background:var(--color-primary);opacity:.3;width:4px;transition:opacity .22s;position:absolute;top:0;bottom:0;left:0}.cmp-free-card:hover{box-shadow:var(--shadow-md)}.cmp-free-card:hover:before{opacity:.6}.cmp-free-duration{color:var(--color-text-primary);letter-spacing:-.02em;align-items:baseline;gap:5px;font-size:1.9rem;font-weight:800;line-height:1;display:flex}.cmp-free-duration-unit{color:var(--color-text-muted);font-size:.8rem;font-weight:700}.cmp-free-range{color:var(--color-text-secondary);align-items:center;gap:5px;font-size:.82rem;font-weight:700;display:flex}.cmp-free-range i{color:var(--color-primary);flex-shrink:0;font-size:.9rem}.cmp-free-footer{border-top:1px solid var(--color-border);align-items:center;gap:6px;margin-top:auto;padding-top:10px;display:flex}.cmp-free-meta-row{color:var(--color-text-secondary);align-items:center;gap:5px;font-size:.8rem;font-weight:700;display:flex}.cmp-free-meta-row i{color:var(--color-primary);flex-shrink:0;font-size:.9rem}@media (width<=768px){.cmp-import-panel{gap:8px}.cmp-course-grid{grid-template-columns:1fr 1fr}.cmp-free-list{grid-template-columns:1fr 1fr;gap:10px}.cmp-free-card{border-radius:16px;gap:6px;padding:15px 15px 15px 18px}.cmp-free-duration{font-size:1.6rem}.cmp-step-bar{align-self:center}}@media (width<=480px){.cmp-course-grid,.cmp-free-list{grid-template-columns:1fr}.cmp-page{gap:1rem}.cmp-add-wrap,.add-class-btn{width:100%}.cmp-tt-panel .tt-tile-grid,.cmp-free-panel .tt-tile-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}.tt-setup-roll-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:34px;height:34px;color:var(--color-primary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;transition:all .15s;display:flex}.tt-setup-roll-btn:hover:not(:disabled){background:var(--color-primary-subtle)}.tt-setup-roll-btn:disabled{opacity:.45;cursor:not-allowed}.tt-setup-roll-error{color:var(--color-red);align-items:center;gap:5px;font-size:.78rem;font-weight:600;display:flex}.tt-setup-roll-error i{flex-shrink:0;font-size:.85rem}.tt-setup-spin{animation:.8s linear infinite tt-spin}:root{--cmp-you-bg:#2a7d6f1a;--cmp-you-border:#2a7d6f59;--cmp-you-text:var(--color-primary);--cmp-f1-bg:#6366f11a;--cmp-f1-border:#6366f159;--cmp-f1-text:#6366f1;--cmp-f2-bg:#f59e0b1a;--cmp-f2-border:#f59e0b59;--cmp-f2-text:#d97706;--cmp-f3-bg:#f43f5e1a;--cmp-f3-border:#f43f5e59;--cmp-f3-text:#e11d48;--cmp-f4-bg:#8b5cf61a;--cmp-f4-border:#8b5cf659;--cmp-f4-text:#7c3aed}.cmp-tt-panel{flex-direction:column;gap:16px;display:flex}.cmp-tt-person-chips{flex-wrap:wrap;gap:5px;width:100%;min-width:0;display:flex}.cmp-tt-class-person.outside{border-radius:var(--radius-pill);white-space:nowrap;border:1px solid;flex-shrink:1;align-items:center;min-width:0;max-width:100%;padding:3px 10px;font-size:.74rem;font-weight:800;display:inline-flex}.cmp-tt-class-person.inside{white-space:nowrap;flex-shrink:0;align-items:center;min-width:0;max-width:100%;margin-bottom:8px;font-size:1rem;font-weight:800;display:inline-flex}.cmp-tt-class-person span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tt-modal-scroll.cmp{gap:0}.cmp-tt-class-card{justify-content:space-between}.cmp-tt-panel .tt-free-rooms-hero-time{font-size:2rem}.cmp-tt-free-card{color:#f0f0f0;background:linear-gradient(90deg,#1e1e1e 0%,#2d3748 100%);border:none;justify-content:center}.cmp-tt-free-card .tt-free-rooms-subtitle{color:#f0f0f0a6}.cmp-tt-free-card .tt-free-rooms-count{color:#f0f0f0;background:#ffffff1f}.cmp-tt-free-card .tt-free-rooms-hero-time{color:#f0f0f0}.cmp-tt-free-card .tt-free-rooms-hero-end{color:#f0f0f0a6}.cmp-slot-modal-person{border-bottom:1px solid var(--color-border);flex-direction:column;margin-bottom:16px;padding-bottom:16px;display:flex}.cmp-slot-modal-person:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.es-page{flex-direction:column;gap:20px;padding-bottom:48px;display:flex}.es-hero{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:32px;display:flex}.es-tab-bar{background-color:var(--color-page);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:2px;padding:4px;display:inline-flex}.es-tab{color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:3px 14px;font-size:.8rem;font-weight:700;transition:all .15s}.es-tab:hover{color:var(--color-text-primary);background:0 0}.es-tab.active{background-color:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 3px #0000001a}.es-controls{flex-wrap:wrap;gap:12px;display:flex}.es-session-dd{position:relative}.es-session-select{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;border-radius:30px;outline:none;justify-content:space-between;align-items:center;gap:10px;min-width:200px;padding:11px 16px;font-size:.85rem;font-weight:600;transition:border-color .18s;display:flex}.es-type-select{appearance:none;background-color:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23767676' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:16px;border-radius:30px;outline:none;min-width:200px;padding:11px 40px 11px 16px;font-size:.85rem;font-weight:600;transition:border-color .18s}.es-type-select:hover,.es-session-select:hover:not(:disabled){border-color:var(--color-primary)}.es-session-select:disabled{opacity:.6;cursor:not-allowed}.es-session-select-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.es-session-select-chevron{color:var(--color-text-muted);flex-shrink:0;font-size:1.05rem;transition:transform .18s}.es-session-select-chevron.open{transform:rotate(180deg)}.es-search-wrap{flex:1;min-width:240px;position:relative}.es-search-icon{color:var(--color-text-muted);pointer-events:none;font-size:1rem;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.es-search-input{background:var(--color-surface);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);border-radius:30px;outline:none;padding:11px 44px;font-size:.9rem;transition:border-color .18s,box-shadow .18s}.es-search-input::placeholder{color:var(--color-text-muted)}.es-file-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:30px;flex:1;align-items:center;gap:10px;min-width:220px;padding:6px;transition:border-color .18s;display:flex}.es-file-wrap:hover{border-color:var(--color-primary)}.es-file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.es-file-label{background:var(--color-primary-subtle);color:var(--color-primary);cursor:pointer;white-space:nowrap;border-radius:30px;flex-shrink:0;align-items:center;gap:6px;padding:8px 16px;font-size:.82rem;font-weight:700;transition:filter .18s;display:inline-flex}.es-file-label:hover{filter:brightness(.96)}.es-file-name{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.83rem;overflow:hidden}.es-file-name.has-file{color:var(--color-text-primary);font-weight:600}.es-search-clear{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;align-items:center;padding:2px;font-size:1rem;transition:color .15s;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.es-search-clear:hover{color:var(--color-text-primary)}.es-results-header{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;font-size:.8rem;font-weight:700;display:flex}.es-results-count{background:var(--color-primary-subtle);color:var(--color-primary);border-radius:var(--radius-pill);padding:2px 8px;font-size:.73rem;font-weight:700}.es-group-header{color:var(--color-text-primary);letter-spacing:-.01em;align-items:center;padding-bottom:10px;font-size:.95rem;font-weight:800;display:flex}.es-card-list{flex-direction:column;gap:16px;display:flex}.es-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:20px;transition:border-color .2s;overflow:hidden}.es-card:hover{border-color:#2a7d6f4d}.es-card-header{border-bottom:1px solid var(--color-border);background:var(--color-page);justify-content:space-between;align-items:center;gap:10px;padding:16px 20px;display:flex}.es-card-student{align-items:center;gap:10px;min-width:0;display:flex}.es-card-avatar{background:var(--color-primary-subtle);width:34px;height:34px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:800;display:flex}.es-card-name{color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:700;overflow:hidden}.es-card-id{color:var(--color-text-muted);font-size:.75rem;font-weight:600}.es-table-wrap{overflow-x:auto}.es-table{border-collapse:collapse;width:100%;font-size:.83rem}.es-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);white-space:nowrap;padding:10px 16px;font-size:.7rem;font-weight:700}.es-table td{color:var(--color-text-primary);border-top:1px solid var(--color-border);white-space:nowrap;padding:12px 16px}.es-table td.wrap{white-space:normal;min-width:160px}.es-table tr:hover td{background:var(--color-page)}.es-save-btn{width:30px;height:30px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.05rem;transition:all .18s;display:flex}.es-save-btn:hover:not(:disabled){background:var(--color-primary-subtle);color:var(--color-primary)}.es-save-btn.is-saved{color:var(--color-primary)}.es-save-btn:disabled{opacity:.55;cursor:not-allowed}.es-skeleton-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;height:140px;position:relative;overflow:hidden}.es-skeleton-card:after{content:"";background:linear-gradient(90deg,#0000 0%,#0000000a 50%,#0000 100%);animation:1.4s infinite es-shimmer;position:absolute;inset:0}@keyframes es-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.es-empty{color:var(--color-text-muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:56px 24px;display:flex}.es-empty i{opacity:.4;font-size:2.5rem}.es-empty p{font-size:.875rem}.es-empty-lg{padding:72px 24px}.es-empty-lg i{opacity:.35;color:var(--color-primary);font-size:3rem}.es-empty-lg p{color:var(--color-text-primary);margin:0;font-size:1rem;font-weight:700}.es-empty-hint{color:var(--color-text-muted);max-width:320px;font-size:.8rem}.es-btn{border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:10px 20px;font-size:.85rem;font-weight:700;transition:all .18s;display:inline-flex}.es-btn:disabled{opacity:.6;cursor:not-allowed}.es-btn-primary{background:var(--color-primary);color:#fff}.es-btn-primary:hover:not(:disabled){filter:brightness(1.05)}.es-btn-ghost{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-secondary)}.es-btn-ghost:hover:not(:disabled){border-color:var(--color-text-secondary);color:var(--color-text-primary)}.es-btn-danger{background:var(--color-red);color:#fff}.es-btn-danger:hover:not(:disabled){filter:brightness(1.08)}@media (width<=768px){.es-controls{flex-direction:column}.es-session-dd,.es-session-select,.es-type-select{width:100%}.es-tab{padding:6px 12px;font-size:.78rem}}@media (width<=480px){.es-page{gap:16px}.es-hero{flex-direction:column;gap:14px;padding:20px 16px}.es-tab-bar{transform-origin:50%;align-self:center;margin:0 auto;padding:2px;transform:scale(.92)}.es-card-header{padding:12px 14px}.es-card-name{font-size:.85rem}.es-table th,.es-table td{padding:8px 10px;font-size:.76rem}}.fb-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.fb-form{min-width:0}.fb-area-item{flex-direction:row;justify-content:flex-start;align-items:center;gap:1rem;display:flex}.fb-area-dropdown{position:relative}.fb-area-trigger{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;font-size:.875rem;font-weight:500;transition:border-color .15s,box-shadow .15s;display:flex}.fb-area-trigger:hover,.fb-area-trigger.is-open{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle)}.fb-area-trigger-left{align-items:center;gap:8px;display:flex}.fb-area-trigger-left i{color:var(--color-primary);font-size:1rem}.fb-area-placeholder{color:var(--color-text-muted);font-weight:400}.fb-area-chevron{color:var(--color-text-muted);flex-shrink:0;font-size:1.1rem;transition:transform .18s}.fb-area-chevron.rotated{transform:rotate(180deg)}.fb-area-panel{z-index:120;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);border-radius:12px;max-height:280px;animation:.15s dropdown-in;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.fb-area-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.fb-submit-btn{align-self:flex-start;margin-top:4px}.fb-history{background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;flex-direction:column;gap:14px;padding:24px;display:flex}.fb-history-title{letter-spacing:-.01em;color:var(--color-text-primary);margin:0;font-size:1.1rem}.fb-history-list{gap:12px;max-height:560px;padding-right:2px;overflow-y:auto}.fb-empty{padding:40px 20px}.fb-empty h2{font-size:20px;font-weight:200}.fb-report-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:column;gap:10px;padding:16px 18px;transition:border-color .18s,box-shadow .18s;display:flex}.fb-report-card:hover{box-shadow:var(--shadow-md);border-color:#2a7d6f38}.fb-report-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.fb-report-title{color:var(--color-text-primary);min-width:0;font-size:.94rem;font-weight:700;line-height:1.35}.fb-report-tags{flex-wrap:wrap;gap:6px;display:flex}.fb-report-desc{color:var(--color-text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.82rem;line-height:1.5;display:-webkit-box;overflow:hidden}.fb-resolution-note{background:var(--color-green-subtle);border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.fb-resolution-note p{color:var(--color-text-primary);margin:0;font-size:.82rem;line-height:1.5}.fb-resolution-author{color:var(--color-green);align-self:flex-end;font-size:.72rem;font-weight:700}.fb-report-meta{color:var(--color-text-muted);justify-content:space-between;align-items:center;font-size:.74rem;display:flex}.fb-withdraw-btn{color:var(--color-red);cursor:pointer;background:0 0;border:none;padding:0;font-size:.74rem;font-weight:700}.fb-withdraw-btn:hover:not(:disabled){text-decoration:underline}.fb-withdraw-btn:disabled{opacity:.5;cursor:not-allowed}.fb-badge-type{letter-spacing:.05em;background:var(--color-blue-subtle);color:var(--color-blue);border-radius:999px;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:800;display:inline-flex}.fb-status-pill{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:.68rem;font-weight:800}.fb-status-open{background:var(--color-yellow-subtle);color:var(--color-yellow)}.fb-status-progress{background:var(--color-primary-subtle);color:var(--color-primary)}.fb-status-resolved{background:var(--color-green-subtle);color:var(--color-green)}.fb-status-wontfix{background:var(--color-page);color:var(--color-text-muted);border:1px solid var(--color-border)}.fb-type-group{scrollbar-width:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 90%,#0000 100%);mask-image:linear-gradient(90deg,#000 90%,#0000 100%)}.fb-type-group::-webkit-scrollbar{display:none}.fb-type{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:1px solid #e3eae9;border-radius:999px;flex-shrink:0;padding:8px 14px;font-size:.8rem;font-weight:700;transition:all .15s}.fb-type:hover{color:var(--color-text-primary);background:0 0}.fb-type.active{background-color:var(--color-surface);color:var(--color-primary);border:solid 1px var(--color-text-secondary);box-shadow:0 1px 3px #0000001a}.fb-confirm-modal{max-width:440px}.fb-confirm-body{text-align:center;color:var(--color-text-secondary)}.fb-confirm-body>i{width:48px;height:48px;color:var(--color-red);background:var(--color-red-subtle);border-radius:50%;justify-content:center;align-items:center;font-size:1.4rem;display:inline-flex}.fb-confirm-body h3{color:var(--color-text-primary);margin:12px 0 6px}.fb-confirm-body p{margin:0}.form-group.inp.fb input:focus,.form-group.txt.fb textarea:focus{border:1px solid var(--color-border);box-shadow:none}.fb-course-fields{flex-direction:column;gap:1rem;display:flex}.fb-course-code,.fb-course-name{width:100%}.fb-course-grid-3{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}@media (width<=950px){.fb-grid{grid-template-columns:minmax(0,1fr)}.fb-history-list{max-height:400px}}@media (width<=600px){.fb-area-group::-webkit-scrollbar{display:none}.fb-area-group i{display:none}.fb-area-chip{scroll-snap-align:start}.fb-type-group{gap:5px}.fb-type{padding:8px 10px}.fb-course-grid-3{grid-template-columns:1fr 1fr}.fb-course-grid-3>:last-child{grid-column:1/-1}}.fb-course-sem,.fb-course-cr,.fb-course-type{justify-content:space-between}.status-indicator{border-radius:4px;align-items:center;gap:6px;padding:4px 8px;font-size:.85rem;font-weight:500;display:inline-flex}.status-indicator.online{color:#059669;background-color:#10b9811a}.status-indicator.away{color:#4b5563;background-color:#9ca3af1a}.status-dot{border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;display:inline-block}.status-dot.online{background-color:#10b981}.status-dot.away{background-color:#9ca3af}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.admin-users-toolbar{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.users-review-tabs{flex-shrink:0;align-items:center;gap:12px;display:inline-flex}.users-review-tab{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-weight:700;transition:all .2s;display:inline-flex}.users-review-tab:hover{background:var(--color-page);color:var(--color-text-primary)}.users-review-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.std-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);box-shadow:none;flex:1;align-items:center;gap:8px;min-width:0;max-width:340px;padding:10px 16px;display:flex}.row-selected td{background:var(--color-red-subtle,#dc26260f)}@media (width<=480px){.admin-users-toolbar{flex-direction:column}.std-input{width:100%}}.adash-page{flex-direction:column;gap:20px;padding-bottom:40px;display:flex}.adash-welcome{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;justify-content:space-between;align-items:center;gap:16px;padding:28px 32px;display:flex}.adash-welcome-text{letter-spacing:-.03em;color:var(--color-text-primary);margin:0 0 6px;font-family:IvyOra Display Thin;font-size:2rem}.adash-welcome-subtitle{color:var(--color-text-secondary);margin:0;font-size:.9rem;line-height:1.5}.adash-welcome-subtitle strong{color:var(--color-text-primary);font-weight:700}.adash-badge{text-transform:uppercase;letter-spacing:.07em;color:#1a5047;background:#1a50471a;border:1px solid #1a504733;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:6px 14px;font-size:.75rem;font-weight:700;display:inline-flex}.adash-badge i{font-size:.9rem}.adash-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.adash-section-title{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin:4px 0 -4px;font-size:.78rem;font-weight:800}.adash-queue-card{gap:14px}.adash-queue-stat{background:var(--color-page);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 8px;display:inline-flex}.adash-queue-number{color:var(--color-text-muted);letter-spacing:-.01em;font-size:.85rem;font-weight:800;line-height:1}.adash-queue-stat.has-pending{background:#f5a62324}.adash-queue-stat.has-pending .adash-queue-number{color:#b8790f}.adash-card{border:1px solid var(--color-border);color:inherit;background:#fff;border-radius:18px;align-items:center;gap:16px;padding:22px 20px;text-decoration:none;transition:box-shadow .18s,border-color .18s,transform .18s;display:flex;position:relative;box-shadow:0 1px 4px #0000000a}.adash-card:hover{border-color:var(--card-accent,var(--color-border));box-shadow:0 4px 16px #00000014}.adash-card-icon{background:var(--card-accent-subtle);width:46px;height:46px;color:var(--card-accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.35rem;transition:background .18s;display:flex}.adash-card-body{flex:1;min-width:0}.adash-card-label{color:var(--color-text-primary);letter-spacing:-.01em;margin-bottom:3px;font-size:.95rem;font-weight:800;display:block}.adash-card-desc{color:var(--color-text-secondary);margin:0;font-size:.8rem;line-height:1.5}.adash-card-arrow{color:var(--color-text-muted);flex-shrink:0;font-size:1.1rem;transition:color .15s,transform .15s}.adash-card:hover .adash-card-arrow{color:var(--card-accent);transform:translate(3px)}@media (width<=640px){.adash-welcome{padding:20px}.adash-welcome-text{font-size:1.6rem}.adash-grid{grid-template-columns:1fr}}.adash-email-card{align-items:flex-start}.adash-email-body{flex-direction:column;gap:12px;display:flex}.adash-email-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.adash-flush-btn{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;cursor:pointer;white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:8px 14px;font-size:.8rem;font-weight:700;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}.adash-flush-btn:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.adash-flush-btn:disabled{background:var(--color-page);border-color:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.adash-spin{animation:.8s linear infinite adash-spin}@keyframes adash-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.adash-quota-bar{background:var(--color-page);border-radius:999px;width:100%;height:6px;overflow:hidden}.adash-quota-bar-fill{background:var(--color-primary);border-radius:999px;height:100%;transition:width .2s}.adash-quota-bar.is-warning .adash-quota-bar-fill{background:var(--color-yellow)}.adash-quota-bar.is-critical .adash-quota-bar-fill{background:var(--color-red)}.adash-email-breakdown{flex-wrap:wrap;gap:24px;display:flex}.adash-email-type{color:var(--color-text-secondary);align-items:center;gap:10px;font-size:.8rem;display:flex}.adash-email-type-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-size:.7rem;font-weight:800}.adash-email-stat.is-warning{color:#b8790f;font-weight:700}.adash-email-stat.is-critical{color:var(--color-red);font-weight:700}.adash-flush-msg{color:var(--color-text-secondary);margin:0;font-size:.8rem}@media (width<=640px){.adash-email-header{flex-direction:column;align-items:stretch}.adash-flush-btn{justify-content:center}}@keyframes adash-skeleton-shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.adash-skeleton{background:linear-gradient(90deg, var(--color-border) 25%, var(--color-page) 50%, var(--color-border) 75%);background-size:600px 100%;animation:1.4s ease-in-out infinite adash-skeleton-shimmer;border-color:#0000!important}.adash-skeleton-line{border-radius:var(--radius-xs);height:12px}.adash-skeleton-pill{border-radius:999px}.adash-skeleton-circle{background:linear-gradient(90deg, var(--color-border) 25%, var(--color-page) 50%, var(--color-border) 75%);background-size:600px 100%;animation:1.4s ease-in-out infinite adash-skeleton-shimmer}.adash-email-card .adash-skeleton.adash-quota-bar{border-radius:999px}.adash-badge.is-live{color:#1e8c45;background:#1e8c451a;border:1px solid #1e8c4533}.adash-live-dot{background:#1e8c45;border-radius:999px;flex-shrink:0;width:7px;height:7px;position:relative}.adash-live-dot:after{content:"";background:#1e8c45;border-radius:999px;animation:1.8s ease-out infinite adash-live-pulse;position:absolute;inset:0}@keyframes adash-live-pulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.8)}}.ap-page{flex-direction:column;gap:32px;display:flex}.ap-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.ap-title{letter-spacing:-.02em;margin:0;font-size:1.75rem;font-weight:800}.ap-subtitle{color:var(--color-text-secondary);margin:4px 0 0;font-size:.9rem}.ap-counts{align-items:center;gap:8px;display:flex}.ap-count-pill{border-radius:99px;padding:4px 12px;font-size:.8rem;font-weight:700}.ap-count-pending{color:#b87c00;background:#e6a0001a;border:1px solid #e6a00033}.ap-count-approved{color:#1a7a50;background:#22a0641a;border:1px solid #22a06433}.ap-list{flex-direction:column;gap:12px;display:flex}.ap-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:16px;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;transition:box-shadow .18s;display:flex}.ap-card:hover{box-shadow:var(--shadow-md)}.ap-card-main{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.ap-card-meta{flex-direction:column;gap:6px;display:flex}.ap-card-title{color:var(--color-text-primary);margin:0;font-size:1rem;font-weight:700;line-height:1.35}.ap-card-subtitle{color:var(--color-text-secondary);align-items:center;gap:8px;margin:0;font-size:.82rem;display:flex}.ap-course-badge{background:var(--color-primary-subtle);color:var(--color-primary);letter-spacing:.06em;border-radius:var(--radius-pill);align-items:center;padding:2px 8px;font-size:.7rem;font-weight:800;display:inline-flex}.ap-card-desc{color:var(--color-text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.85rem;line-height:1.5;display:-webkit-box;overflow:hidden}.ap-card-link{align-items:center;gap:4px;margin:0;font-size:.82rem;display:flex}.ap-card-link a{color:var(--color-primary);word-break:break-all;font-weight:600;text-decoration:none}.ap-card-link a:hover{text-decoration:underline}.ap-card-link i{flex-shrink:0;font-size:.9rem}.ap-card-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.ap-icon-btn{border:1px solid var(--color-border);background:var(--color-surface);width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;transition:all .15s;display:flex}.ap-icon-btn:hover,.ap-review-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-subtle)}.ap-delete-btn:hover{border-color:var(--color-red);color:var(--color-red);background:#d9302514}.ap-review-form{border-top:1px solid var(--color-border);flex-direction:column;gap:12px;width:100%;padding-top:12px;display:flex}.ap-form{flex-direction:column;gap:12px;display:flex}.ap-field{flex-direction:column;gap:6px;display:flex}.ap-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;font-weight:700}.ap-textarea{resize:vertical;border:1px solid var(--color-border);background:var(--color-surface);min-height:80px;color:var(--color-text-primary);white-space:pre-wrap;overflow-wrap:break-word;border-radius:12px;padding:12px;font-family:inherit;font-size:.9rem;line-height:1.5}.ap-textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #1a50471f}.ap-form-actions{justify-content:flex-end;gap:10px;display:flex}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.internships-search{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);box-shadow:none;flex:1;align-items:center;gap:8px;min-width:0;max-width:340px;padding:10px 16px;display:flex}.internships-search i{color:var(--color-text-muted);font-size:1rem}.internships-search input{width:100%;color:var(--color-text-primary);background:0 0;border:none;outline:none;font-size:.9rem}.admin-quota-badge{border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-page);color:var(--color-text-secondary);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;padding:6px 14px;font-size:.78rem;font-weight:700;display:inline-flex}.admin-quota-badge i{color:var(--color-text-muted);font-size:.95rem}.admin-quota-badge strong{color:var(--color-text-primary);font-weight:800}.admin-quota-sep{color:var(--color-border)}.admin-quota-badge.is-warning strong{color:#b45309}.admin-quota-badge.is-critical strong{color:var(--color-red)}.admin-email-toggle{cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;gap:8px;padding:0;font-size:.82rem;font-weight:700;display:inline-flex}.toggle-switch{background:var(--color-border);border:none;border-radius:999px;width:44px;height:24px;padding:0;transition:background .2s;display:inline-block;position:relative}.toggle-switch.sm{width:34px;height:19px}.toggle-switch.on{background:var(--color-primary)}.toggle-thumb{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000026}.toggle-switch.sm .toggle-thumb{width:15px;height:15px;top:2px;left:2px}.toggle-switch.on .toggle-thumb{transform:translate(20px)}.toggle-switch.sm.on .toggle-thumb{transform:translate(15px)}.ap-page .resources-hero{margin-bottom:0}.admin-stats-row{flex-wrap:wrap;gap:12px;display:flex}.admin-stat-card{background:var(--color-surface);border:1px solid var(--color-border);min-width:160px;box-shadow:var(--shadow-sm);border-radius:18px;flex:1;align-items:center;gap:14px;padding:18px 22px;display:flex}.admin-stat-card>i{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.5rem;display:flex}.admin-stat-pending>i{color:#b45309;background:#f59e0b1a}.admin-stat-approved>i{color:var(--color-primary);background:#2a7d6f1a}.admin-stat-total>i{color:var(--color-red);background:#d930251a}.admin-stat-body strong{letter-spacing:-.03em;color:var(--color-text-primary);font-size:1.6rem;font-weight:800;line-height:1}.admin-stat-body span{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-size:.74rem;font-weight:700}.ap-error-banner,.ap-modal-error{color:var(--color-red);background:var(--color-red-subtle);border:1px solid #d930252e;border-radius:12px;align-items:center;gap:8px;padding:10px 14px;font-size:.86rem;font-weight:700;display:flex}.ap-modal-error{background:0 0;border:none;margin:0 auto 0 0;padding:0}.ap-project-card{align-items:flex-start}.ap-status-pending{color:#b87c00;background:var(--color-yellow-subtle)}.ap-status-approved{color:var(--color-green);background:#22a0641a}.ap-status-rejected,.ap-report-badge{color:var(--color-red);background:var(--color-red-subtle)}.ap-card-desc-full{color:var(--color-text-secondary);-webkit-line-clamp:2;overflow-wrap:break-word;-webkit-box-orient:vertical;margin:0;font-size:.86rem;line-height:1.5;display:-webkit-box;overflow:hidden}.ap-card-links{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.ap-card-links a{color:var(--color-primary);align-items:center;gap:5px;font-size:.82rem;font-weight:700;text-decoration:none;display:inline-flex}.ap-card-links i{font-size:1rem}.ap-resource-actions{flex-wrap:wrap;justify-content:flex-end;max-width:360px}.ap-report-action-hot{color:var(--color-red);background:var(--color-red-subtle);border-color:#d930253d}.ap-edit-form{flex-direction:column;gap:16px;display:flex}.ap-form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.ap-contributors{flex-direction:column;gap:8px;display:flex}.ap-contributor-row{grid-template-columns:150px 1fr auto;align-items:center;gap:8px;display:grid}.ap-remove-btn{width:32px;height:32px;color:var(--color-red);background:var(--color-red-subtle);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex}.ap-reports-list{flex-direction:column;gap:12px;display:flex}.ap-report-item{border:1px solid var(--color-border);background:var(--color-page);border-radius:12px;padding:14px 16px}.ap-report-meta{color:var(--color-text-muted);text-transform:lowercase;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:.76rem;font-weight:700;display:flex}.ap-report-item p,.ap-muted{color:var(--color-text-secondary);margin:6px 0 0;font-size:.9rem;line-height:1.5}.ap-muted{margin:0}@media (width<=720px){.admin-stats-row{gap:8px}.admin-stat-card{min-width:140px;padding:14px 16px}.admin-stat-body strong{font-size:1.3rem}.admin-toolbar{flex-direction:column;align-items:stretch}.internships-search{max-width:100%}.admin-quota-badge{justify-content:center;width:100%}.admin-resource-card{flex-wrap:wrap;gap:12px}.ap-resource-actions{justify-content:flex-end;width:100%;max-width:none}.ap-card,.ap-header{flex-direction:column}.ap-form-actions{flex-wrap:wrap}}@media (width<=480px){.admin-stats-row{flex-direction:column}.admin-stat-card{min-width:unset}.admin-resource-actions .btn,.ap-resource-actions .btn{flex:1}.ap-form-row{grid-template-columns:1fr}.ap-contributor-row{grid-template-columns:1fr auto}.ap-contributor-row select{grid-column:1/-1}}@media (width<=375px){.ap-page{gap:20px}.review-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;width:100%;padding-bottom:2px;overflow-x:auto}.review-tabs::-webkit-scrollbar{display:none}.review-tab{white-space:nowrap;flex-shrink:0;padding:7px 12px;font-size:.8rem}.admin-resource-card,.ap-card{padding:12px 14px}.admin-stat-card{gap:10px;padding:12px 14px}.admin-stat-body strong{font-size:1.2rem}.admin-quota-badge{gap:6px;padding:6px 10px;font-size:.72rem}.ap-resource-actions{flex-direction:column;align-items:stretch}.ap-resource-actions .btn,.ap-resource-actions button{justify-content:center;width:100%}.internships-search{max-width:100%}}.af-page{flex-direction:column;gap:32px;display:flex}.admin-stats-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.admin-stat-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:16px;align-items:center;gap:14px;padding:18px 20px;display:flex}.admin-stat-card i{border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.2rem;display:flex}.admin-stat-pending i{background:var(--color-primary-subtle);color:var(--color-primary)}.admin-stat-approved i{color:var(--color-blue);background:#2a7d6f1a}.admin-stat-total i{background:var(--color-red-subtle);color:var(--color-red)}.admin-stat-body{flex-direction:column;gap:2px;display:flex}.admin-stat-body strong{color:var(--color-text-primary);font-size:1.45rem;line-height:1}.admin-stat-body span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;font-weight:700}.review-tabs{flex-shrink:0;align-items:center;gap:12px;display:inline-flex}.review-tab{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-weight:700;transition:all .2s;display:inline-flex}.review-tab:hover{background:var(--color-page);color:var(--color-text-primary)}.review-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.review-tab-count{color:inherit;background:#0000001a;border-radius:6px;padding:1px 6px;font-size:.7rem;font-weight:800}.review-tab.active .review-tab-count{background:#ffffff2e}.af-section{flex-direction:column;gap:16px;display:flex}.af-card{align-items:flex-start;gap:16px}.af-title-link{color:var(--color-text-primary);text-decoration:none}.af-title-link:hover{color:var(--color-primary)}.af-meta{color:var(--color-text-muted);font-size:.78rem;font-weight:600}.af-body-preview{color:var(--color-text-secondary);overflow-wrap:break-word;margin:8px 0 0;font-size:.86rem;line-height:1.5}.af-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.af-icon-btn{border:1px solid var(--color-border);background:var(--color-surface);min-width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:.95rem;transition:all .15s;display:flex}.af-icon-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-subtle)}.af-icon-btn:disabled{opacity:.55;cursor:not-allowed}.af-report-count{font-size:.78rem;font-weight:800}.af-dismiss-btn:hover:not(:disabled){border-color:var(--color-green);color:var(--color-green);background:#1e8c4514}.af-delete-btn:hover:not(:disabled){border-color:var(--color-red);color:var(--color-red);background:var(--color-red-subtle)}.af-spin{animation:.7s linear infinite af-spin}@keyframes af-spin{to{transform:rotate(360deg)}}.af-reports-list{flex-direction:column;gap:12px;display:flex}.af-report-item{border:1px solid var(--color-border);background:var(--color-page);border-radius:12px;padding:14px 16px}.af-report-meta{color:var(--color-text-muted);text-transform:lowercase;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:.76rem;font-weight:700;display:flex}.af-report-item p{color:var(--color-text-secondary);margin:6px 0 0;font-size:.9rem;line-height:1.5}.af-muted{color:var(--color-text-secondary);margin:0;font-size:.9rem}.af-delete-modal-text{color:var(--color-text-secondary);margin:0;font-size:.92rem;line-height:1.6}@media (width<=768px){.admin-stats-row{grid-template-columns:1fr}.af-card{flex-direction:column}.af-actions{align-self:flex-end}.admin-stat-body strong{font-size:1.2rem}.admin-stat-card{padding:10px 16px}.admin-stat-card i{width:30px;height:30px;font-size:1rem}.admin-stats-row{gap:8px}}.ai-page{flex-direction:column;gap:16px;display:flex}.admin-stat-card:has(>.ri-pulse-line)>i{background:#22a0641a}.ai-tabs{background:var(--color-page);border:1px solid var(--color-border);border-radius:12px;flex-shrink:0;align-items:center;gap:4px;padding:4px;display:flex}.ai-tab{color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:9px;align-items:center;gap:6px;padding:6px 14px;font-size:.82rem;font-weight:700;transition:background .15s,color .15s;display:inline-flex}.ai-tab:hover{background:var(--color-surface);color:var(--color-text-primary)}.ai-tab.active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm)}.ai-tab-count{background:var(--color-border);min-width:20px;height:20px;color:var(--color-text-muted);border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:.7rem;font-weight:800;line-height:1;display:inline-flex}.ai-tab.active .ai-tab-count{background:var(--color-primary-subtle);color:var(--color-primary)}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.internships-search{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;flex:1;align-items:center;gap:8px;min-width:200px;max-width:320px;padding:8px 14px;transition:border-color .15s,box-shadow .15s;display:flex}.internships-search:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle)}.internships-search>i{color:var(--color-text-muted);flex-shrink:0;font-size:.95rem}.internships-search input{color:var(--color-text-primary);background:0 0;border:none;outline:none;width:100%;font-size:.85rem}.internships-search input::placeholder{color:var(--color-text-muted)}.ai-section{flex-direction:column;gap:8px;display:flex}.row-checkbox{cursor:pointer;flex-shrink:0;align-items:center;display:flex}.row-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.admin-resource-card.is-selected{border-color:var(--color-primary);background:var(--color-primary-subtle)}.bulk-select-header{color:var(--color-text-muted);align-items:center;gap:10px;padding:6px 12px;font-size:.8rem;font-weight:700;display:flex}.bulk-action-bar{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-lg,0 8px 32px #00000024);z-index:200;white-space:nowrap;border-radius:999px;align-items:center;gap:12px;padding:10px 16px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.bulk-count{color:var(--color-text-primary);border-right:1px solid var(--color-border);padding-right:4px;font-size:.85rem;font-weight:800}.bulk-actions{align-items:center;gap:8px;display:flex}.bulk-clear{background:var(--color-page);width:30px;height:30px;color:var(--color-text-muted);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;transition:background .15s,color .15s;display:flex}.bulk-clear:hover{background:var(--color-border);color:var(--color-text-primary)}.ai-form{flex-direction:column;gap:14px;display:flex}.ai-form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.ai-field{flex-direction:column;gap:6px;display:flex}.ai-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;font-weight:700}.ai-textarea{resize:vertical;min-height:72px}@media (width<=720px){.admin-toolbar{flex-direction:column;align-items:stretch}.ai-tabs{justify-content:center;width:100%}.internships-search{max-width:100%}.bulk-action-bar{border-radius:18px;flex-wrap:wrap;justify-content:center;bottom:16px;left:16px;right:16px;transform:none}.ai-form-row{grid-template-columns:1fr}}@media (width<=480px){.admin-resource-card{flex-wrap:wrap;gap:12px}.admin-resource-actions{justify-content:flex-end;width:100%}.bulk-action-bar{gap:8px}}.fba-stat-progress i{background:var(--color-primary-subtle);color:var(--color-primary)}.fba-visible-tag{text-transform:uppercase;letter-spacing:.04em;background:var(--color-green-subtle);color:var(--color-green);border-radius:999px;align-items:center;margin-left:6px;padding:2px 8px;font-size:.64rem;font-weight:800;display:inline-flex}.fba-badge-type{letter-spacing:.05em;background:var(--color-blue-subtle);color:var(--color-blue);border-radius:999px;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:800;display:inline-flex}.fba-card{text-align:left;background:var(--color-surface);border:1px solid var(--color-border);width:100%;box-shadow:var(--shadow-sm);cursor:pointer;font:inherit;color:inherit;border-radius:16px;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;transition:border-color .18s,box-shadow .18s;display:flex}.fba-card:hover{box-shadow:var(--shadow-md);border-color:#2a7d6f38}.fba-area-icon{color:var(--color-primary)!important}.fba-card-desc{color:var(--color-text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:2px 0 0;font-size:.82rem;line-height:1.5;display:-webkit-box;overflow:hidden}.fba-status-pill{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:.68rem;font-weight:800}.fba-status-open{background:var(--color-yellow-subtle);color:var(--color-yellow)}.fba-status-progress{background:var(--color-primary-subtle);color:var(--color-primary)}.fba-status-resolved{background:var(--color-green-subtle);color:var(--color-green)}.fba-status-wontfix{background:var(--color-page);color:var(--color-text-muted);border:1px solid var(--color-border)}.fba-detail-desc{color:var(--color-text-primary);white-space:pre-wrap;margin:0;font-size:.9rem;line-height:1.6}.fba-detail-page{color:var(--color-text-secondary);background:var(--color-page);white-space:nowrap;border-radius:8px;margin:0;padding:6px 10px;font-family:Monaco,Courier New,monospace;font-size:.8rem;overflow-x:auto}.fba-confirm-modal{max-width:440px}.fba-confirm-body{text-align:center;color:var(--color-text-secondary)}.fba-confirm-body>i{width:48px;height:48px;color:var(--color-red);background:var(--color-red-subtle);border-radius:50%;justify-content:center;align-items:center;font-size:1.4rem;display:inline-flex}.fba-confirm-body h3{color:var(--color-text-primary);margin:12px 0 6px}.fba-confirm-body p{margin:0}@media (width<=600px){.fba-card{flex-wrap:wrap}}.ac-page{flex-direction:column;gap:20px;display:flex}.ac-hero{justify-content:space-between;align-items:center;gap:16px;display:flex}.ac-table-wrap{border:1px solid var(--color-border);background:#fff;border-radius:16px;overflow:hidden}.ac-table{border-collapse:collapse;width:100%}.ac-table th{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);background:var(--color-page);text-align:center;padding:12px 14px;font-size:.72rem;font-weight:700}.ac-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;text-align:center;padding:10px 14px;font-size:.88rem}.ac-table tr:last-child td{border-bottom:none}.ac-row-current{background:var(--color-primary-subtle)}.ac-row-new{background:var(--color-page)}.ac-input{width:100%;color:var(--color-text-primary);text-align:center;background:0 0;border:1px solid #0000;border-radius:6px;padding:6px 8px;font-size:.88rem;transition:border-color .15s,background .15s}.ac-input:hover{background:var(--color-page)}.ac-input:focus{border-color:var(--color-primary);background:#fff;outline:none}.ac-order-controls{flex-direction:column;align-items:center;display:flex}.ac-order-btn{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:0;line-height:1;transition:color .15s}.ac-order-btn:hover:not(:disabled){color:var(--color-primary)}.ac-order-btn:disabled{opacity:.25;cursor:not-allowed}.ac-row-actions{justify-content:center;align-items:center;gap:6px;display:flex}.ac-action-btn{border:1px solid var(--color-border);width:30px;height:30px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;margin:0 auto;transition:all .15s;display:flex}.ac-action-btn:hover:not(:disabled){background:var(--color-page);color:var(--color-text-primary)}.ac-action-btn:disabled{opacity:.35;cursor:not-allowed}.ac-action-danger:hover:not(:disabled){color:#d93025;background:#fdecea;border-color:#f3c6c2}.ac-skeleton-row{background:var(--color-page);border-radius:10px;height:48px;margin-bottom:8px}.ac-empty{color:var(--color-text-muted);flex-direction:column;align-items:center;gap:10px;padding:40px 20px;font-size:.88rem;display:flex}.ac-empty i{font-size:1.8rem}.acourses-page{flex-direction:column;gap:20px;padding-bottom:40px;display:flex}.acourses-header{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;padding:28px 32px}.acourses-title{letter-spacing:-.03em;color:var(--color-text-primary);margin:0 0 6px;font-family:IvyOra Display Thin;font-size:2rem}.acourses-subtitle{color:var(--color-text-secondary);margin:0;font-size:.9rem;line-height:1.5}.acourses-tabs{border-bottom:1px solid var(--color-border);gap:8px;padding-bottom:2px;display:flex}.acourses-tab{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 16px;font-size:.85rem;font-weight:700;transition:color .15s,border-color .15s;display:inline-flex}.acourses-tab:hover{color:var(--color-text-primary)}.acourses-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.acourses-toolbar{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.acourses-search-wrap{flex:1;min-width:220px;max-width:360px;position:relative}.acourses-search-wrap>i{color:var(--color-text-muted);pointer-events:none;font-size:.95rem;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.acourses-search{padding-left:38px!important}.acourses-check-inline{color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;font-size:.82rem;font-weight:600;display:inline-flex}.acourses-check-inline input{accent-color:var(--color-primary);cursor:pointer;width:15px;height:15px}.acourses-semester-count{color:var(--color-text-muted);white-space:nowrap;font-size:.82rem;font-weight:700}.acourses-list{flex-direction:column;gap:10px;display:flex}.acourses-row{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;transition:border-color .18s,box-shadow .18s;display:flex}.acourses-row:hover{box-shadow:var(--shadow-md);border-color:#2a7d6f38}.acourses-row.is-deprecated{opacity:.72}.acourses-row-main{flex-direction:column;gap:6px;min-width:0;display:flex}.acourses-row-title-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.acourses-code{color:var(--color-primary);font-family:Monaco,Courier New,monospace;font-size:.85rem;font-weight:700}.acourses-name{color:var(--color-text-primary);font-size:.95rem;font-weight:700}.acourses-row-meta{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:14px;font-size:.78rem;display:flex}.acourses-row-meta span{align-items:center;gap:4px;display:inline-flex}.acourses-row-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.acourses-tag{border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.05em;background:var(--color-page);color:var(--color-text-secondary);align-items:center;padding:3px 10px;font-size:.7rem;font-weight:800;display:inline-flex}.acourses-tag.is-lab{background:var(--color-primary-subtle);color:var(--color-primary)}.acourses-tag.is-deprecated-tag{background:var(--color-yellow-subtle);color:#b8790f}.acourses-icon-btn{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;justify-content:center;align-items:center;font-size:1rem;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.acourses-icon-btn:hover{background:var(--color-page);border-color:var(--color-primary);color:var(--color-primary)}.acourses-icon-btn.is-danger:hover{border-color:var(--color-red);color:var(--color-red);background:var(--color-red-subtle)}.acourses-empty{color:var(--color-text-muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:48px 20px;display:flex}.acourses-empty i{font-size:2rem}.acourses-empty p{margin:0;font-size:.88rem}@keyframes acourses-shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.acourses-skeleton-row{background:linear-gradient(90deg, var(--color-border) 25%, var(--color-page) 50%, var(--color-border) 75%);background-size:600px 100%;border-radius:16px;height:68px;animation:1.4s ease-in-out infinite acourses-shimmer}.acourses-semester-panel{flex-direction:column;gap:16px;display:flex}.acourses-semester-pills{flex-wrap:wrap;gap:8px;display:flex}.acourses-pill{border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.acourses-pill:hover{border-color:var(--color-primary)}.acourses-pill.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.acourses-checklist{flex-direction:column;gap:8px;display:flex}.acourses-check-row{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:12px 16px;transition:border-color .15s,background .15s;display:flex}.acourses-check-row:hover{border-color:#2a7d6f4d}.acourses-check-row.is-checked{background:var(--color-primary-subtle);border-color:var(--color-primary)}.acourses-check-row input{width:17px;height:17px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.acourses-check-code{color:var(--color-primary);flex-shrink:0;font-family:Monaco,Courier New,monospace;font-size:.8rem;font-weight:700}.acourses-check-name{color:var(--color-text-primary);flex:1;min-width:0;font-size:.88rem}.acourses-checklist-divider{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);align-items:center;gap:10px;margin:4px 2px;font-size:.72rem;font-weight:800;display:flex}.acourses-checklist-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.admin-modal-body{flex-direction:column;gap:16px;display:flex}.acourses-hint{color:var(--color-text-muted);font-size:.76rem;line-height:1.4}.acourses-form-error{color:var(--color-red);background:var(--color-red-subtle);border-radius:var(--radius-sm);padding:8px 12px;font-size:.82rem;font-weight:600}@media (width<=720px){.acourses-header{padding:20px}.acourses-title{font-size:1.6rem}.acourses-toolbar{flex-direction:column;align-items:stretch}.acourses-search-wrap{max-width:100%}.acourses-row{flex-direction:column;align-items:stretch}.acourses-row-actions{justify-content:flex-end}}.apn-page{flex-direction:column;gap:20px;padding-bottom:40px;display:flex}.apn-header{background:linear-gradient(135deg, var(--glass-bg), #ffffff0d);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:24px;padding:28px 32px}.apn-title{letter-spacing:-.03em;color:var(--color-text-primary);margin:0 0 6px;font-family:IvyOra Display Thin;font-size:2rem}.apn-subtitle{color:var(--color-text-secondary);margin:0;font-size:.9rem;line-height:1.5}.apn-stats-row{flex-wrap:wrap;gap:12px;display:flex}.apn-stat-card{border:1px solid var(--color-border);background:var(--color-surface);min-width:160px;box-shadow:var(--shadow-sm);border-radius:18px;flex:1;align-items:center;gap:14px;padding:18px 22px;display:flex}.apn-stat-card>i{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.5rem;display:flex}.apn-stat-body{flex-direction:column;gap:2px;display:flex}.apn-stat-body strong{letter-spacing:-.03em;color:var(--color-text-primary);font-size:1.6rem;font-weight:800;line-height:1}.apn-stat-body span{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-size:.74rem;font-weight:700}.apn-stat-users>i{color:#155e75;background:#155e751a}.apn-stat-devices>i{color:var(--color-primary);background:#2a7d6f1a}.apn-stat-coverage>i{color:#4f46e5;background:#6366f11a}.apn-toolbar{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.apn-search-wrap{flex:1;min-width:220px;max-width:360px;position:relative}.apn-search-wrap>i{color:var(--color-text-muted);pointer-events:none;font-size:.95rem;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.apn-search{padding-left:38px!important}.apn-icon-btn{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;justify-content:center;align-items:center;font-size:1rem;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.apn-icon-btn:hover{background:var(--color-page);border-color:var(--color-primary);color:var(--color-primary)}.apn-form-error{color:var(--color-red);background:var(--color-red-subtle);border-radius:var(--radius-sm);padding:8px 12px;font-size:.82rem;font-weight:600}@keyframes apn-shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.apn-skeleton-list{flex-direction:column;gap:10px;padding:4px;display:flex}.apn-skeleton-row{background:linear-gradient(90deg, var(--color-border) 25%, var(--color-page) 50%, var(--color-border) 75%);background-size:600px 100%;border-radius:12px;height:52px;animation:1.4s ease-in-out infinite apn-shimmer}@media (width<=720px){.apn-header{padding:20px}.apn-title{font-size:1.6rem}.apn-stats-row{gap:8px}.apn-stat-card{min-width:140px;padding:14px 16px}.apn-stat-card>i{width:30px;height:30px;font-size:1rem}.apn-stat-body strong{font-size:1.2rem}.apn-toolbar{flex-direction:column;align-items:stretch}.apn-search-wrap{max-width:100%}}@media (width<=480px){.apn-stats-row{flex-direction:column}.apn-stat-card{min-width:unset}}
