@import"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap";@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap";:root{--bg-color: #faf9fc;--card-bg: #ffffff;--text-color: #1a1a1a;--border-color: #e8e4ed;--hover-border-color: #a89db8;--focus-border-color: #7c6f8a;--button-bg: #2d2438;--button-hover: #3d3248;--button-active: #1d1428;--button-text: #fafafa;--select-bg: white;--option-hover-bg: #f8f5fb;--option-selected-bg: #2d2438;--option-selected-color: white;--success-color: #080b09;--box-shadow-color: #d8d0e0;--frosted-bg: rgba(252, 250, 255, .75);--frosted-border: #e8e4ed;--paper-details-bg: #f6f4f9;--accent-color: #7c5cbf;--error-color: #dc2626;--error-bg: #ffe5e5}.dark-theme{--bg-color: #0c0a0f;--card-bg: #1c1920;--text-color: #f5f3f7;--border-color: #2a2630;--hover-border-color: #4a4358;--focus-border-color: #8a7da0;--button-bg: #f5f3f7;--button-hover: #e5e2e8;--button-active: #d4d0d8;--button-text: #0c0a0f;--select-bg: #151318;--option-hover-bg: #1c1920;--option-selected-bg: #f5f3f7;--option-selected-color: #0c0a0f;--success-color: #4ade80;--box-shadow-color: #000000;--frosted-bg: rgba(12, 10, 15, .88);--frosted-border: #2a2630;--paper-details-bg: #151318;--accent-color: #a78bfa;--error-color: #f87171;--error-bg: #280000}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-color);font-family:Geist,sans-serif;transition:background-color .3s ease,color .3s ease;margin:0}pre{font-family:JetBrains Mono,monospace;font-weight:400;opacity:.7;white-space:pre-wrap;word-wrap:break-word;line-height:1.5}.main{display:flex;flex-direction:column;min-height:100vh}.main-content{padding:2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;flex:1;padding-top:calc(86px + 2rem)}.navbar{position:fixed;z-index:999;width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;border-bottom:1px solid var(--border-color);transition:background .3s ease,border-color .3s ease;background:var(--frosted-bg);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.navbar>.navbar-brand div>h1{font-size:1.75rem;font-weight:700;letter-spacing:.5px;color:var(--button-bg);transition:color .3s ease}.navbar-brand{display:flex;gap:1rem;align-items:center}.navbar .navbar-brand>div>h1>span{font-weight:300;color:var(--text-color)}.navbar-logo{width:50px}.subtitle{font-size:.75rem;font-weight:300;opacity:.6}.navbar-actions{display:flex;gap:1rem;align-items:center;justify-content:flex-end}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:.5rem;background:var(--select-bg);border:1px solid var(--border-color);padding:.5rem .75rem;border-radius:8px;cursor:pointer;color:var(--text-color);transition:all .2s ease}.user-menu-trigger:hover{border-color:var(--hover-border-color);background:var(--option-hover-bg)}.user-dropdown{position:absolute;top:calc(100% + .5rem);right:0;background:var(--select-bg);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000001a;min-width:200px;z-index:1000;overflow:hidden}.dark-theme .user-dropdown{box-shadow:0 4px 12px #0000004d}button:focus{outline:none!important}.user-info{padding:.75rem 1rem;border-bottom:1px solid var(--border-color)}.user-email{font-size:.875rem;color:var(--text-color);font-weight:500}.dropdown-signout{width:100%;background:none;border:none;padding:.75rem 1rem;text-align:left;color:var(--text-color);cursor:pointer;transition:background-color .2s ease;font-family:inherit}.dropdown-signout:hover{background:var(--option-hover-bg)}.main-container{display:flex;flex-direction:column;align-items:center;padding:3rem;padding-top:0;gap:1rem;width:100%}.session-manager{display:flex;gap:.5rem;align-items:center}.signout-button{background:var(--button-bg);color:var(--bg-color);border:none;padding:.5rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s ease}.signout-button:hover{background:var(--button-hover)}.github-logo{color:var(--text-color);cursor:pointer;transition:all .2s ease}.github-logo:hover{color:var(--button-bg)}.theme-toggle{background-color:transparent;color:var(--button-bg);border:0;padding:.5rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.theme-toggle:hover{color:var(--button-hover);transform:rotate(20deg)}.upload-button{display:none}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1.5rem;overflow-y:auto}.modal-content{background:var(--bg-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.5rem;border-radius:1rem;max-width:520px;width:90%;max-height:88vh;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;color:var(--text-color);position:relative;box-shadow:0 10px 25px var(--box-shadow-color);border:1px solid var(--border-color);display:flex;flex-direction:column}.modal-go-back{position:absolute;top:1rem;right:1rem;left:auto;background:none;color:var(--text-color);opacity:.7;border:none;padding:.25rem;cursor:pointer;font-family:JetBrains Mono,monospace;font-size:1.25rem;transition:opacity .2s ease,transform .15s ease;display:flex;align-items:center;justify-content:center;z-index:50}.modal-go-back:hover{opacity:1}.modal-content-inner{display:flex;flex-direction:column;gap:.75rem;flex:1;min-height:0}form{display:flex;flex-direction:column;gap:.75rem}form div{margin-bottom:0}form label{display:block;margin-bottom:.25rem;font-size:.85rem;font-weight:500;color:var(--text-color)}form input[type=text],form input[type=file],form input[type=email],form select{width:100%;padding:.55rem .65rem;border:1px solid var(--border-color);border-radius:8px;transition:all .2s ease;background:var(--select-bg);color:var(--text-color)}form select{font-family:JetBrains Mono,monospace;font-weight:400;font-size:.8rem;cursor:pointer;appearance:none;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='currentColor' 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-repeat:no-repeat;background-position:right .75rem center;background-size:1rem;padding-right:2.25rem}form select:hover{border-color:var(--hover-border-color)}form select option{background:var(--select-bg);color:var(--text-color);padding:.5rem;font-family:JetBrains Mono,monospace}form input[type=email]{font-family:JetBrains Mono,monospace;font-weight:400;font-size:.8rem}form input[type=text]{font-family:JetBrains Mono,monospace;font-weight:400;font-size:.85rem}form input[type=text]:focus,form input[type=file]:focus,form input[type=email]:focus,form select:focus{border-color:var(--focus-border-color);outline:none;box-shadow:0 0 0 3px #6b72801a}form button[type=submit]{background-color:var(--button-bg);color:var(--button-text);border:none;padding:.65rem 1.25rem;border-radius:8px;cursor:pointer;font-size:.95rem;transition:background-color .2s ease}.form-row{display:flex;gap:.5rem;width:100%}.form-field{flex:1;min-width:0;display:flex;flex-direction:column}@media (max-width: 920px){.navbar-actions{gap:.25rem;flex-grow:0}.user-menu-trigger,.theme-toggle,.github-logo{text-align:center;padding:.75rem}.upload-button{display:none!important}.main-container{padding:1rem 1rem 5rem}.responses-container{flex-direction:column!important;gap:1rem;padding-top:1rem;justify-content:flex-start!important}.free-class{width:100%!important;margin:0;flex-grow:0!important}.paper-actions{flex-direction:column;gap:.5rem}.view-button{flex:none}.modal-overlay{padding:0;align-items:stretch;justify-content:stretch}.modal-content{max-width:none;width:100%;height:100%;max-height:none;padding:3.5rem 1rem 1rem;margin:0;border-radius:0;display:flex;flex-direction:column}.modal-content-inner{height:auto;min-height:15vh}form input[type=text],form input[type=file],form input[type=email],form button[type=submit]{padding:.75rem}.footer{margin-bottom:5rem;padding:.75rem;font-size:.85rem}}form button[type=submit]:hover{background-color:var(--button-hover)}form button[type=submit]:active{background-color:var(--button-active)}.error-message{color:var(--error-color);margin-top:.75rem}.success-message{color:var(--success-color);margin-top:.75rem}.responses-container{display:block;column-count:3;column-gap:1.5rem;padding-top:1rem;width:100%}@media (max-width: 1400px){.responses-container{column-count:2}}@media (max-width: 768px){.responses-container{column-count:1}}.free-class{background:var(--card-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:1.5rem;border-radius:1rem;box-shadow:0 6px 18px var(--box-shadow-color);display:flex;flex-direction:column;justify-content:space-between;transition:all .3s ease;border:1px solid var(--border-color);width:100%;break-inside:avoid;margin-bottom:1.5rem}.free-class:hover{transform:translateY(-5px);box-shadow:0 10px 25px #00000014}.free-class h3{font-size:1.25rem;color:var(--text-color)}.free-class a{color:var(--text-color);text-decoration:none;margin-bottom:1rem;font-weight:500}.free-class a:hover{text-decoration:underline}.free-class p{font-size:.9rem;color:var(--text-color)}.free-class button{margin-top:1rem;background:var(--button-bg);color:var(--button-text);border:none;padding:.5rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s ease}.free-class button:hover{background:var(--button-hover)}.paper-info{display:flex;flex-direction:column;gap:.5rem;height:100%}.paper-header{display:flex;flex-direction:column;gap:.5rem}.paper-badges{display:flex;gap:.5rem;flex-wrap:wrap}.badge{padding:.25rem .5rem;border-radius:.5rem;font-size:.75rem;font-weight:600;font-family:JetBrains Mono,monospace;line-height:1;display:flex;align-items:center}.badge.subject{background:#f0f7ff;color:#1e40af;border:1px solid #bfdbfe}.dark-theme .badge.subject{background:#172033;color:#93c5fd;border:1px solid #1e3a5f}.badge.branch{background:#fefce8;color:#a16207;border:1px solid #facc15}.dark-theme .badge.branch{background:#422006;color:#fde047;border:1px solid #a16207}.badge.verified{color:#21914c}.dark-theme .badge.verified{color:#72d394}.badge.flagged{color:#c14040}.dark-theme .badge.flagged{color:#e55f5f}.paper-details{display:flex;flex-direction:column;gap:.5rem;flex-grow:1;background-color:var(--paper-details-bg);padding:1rem;border-radius:.75rem;font-family:JetBrains Mono,monospace}.paper-details p{margin:0;font-size:.8rem;line-height:1.4}.paper-details strong{color:var(--text-color);font-weight:600}.paper-actions{display:flex;gap:.75rem;margin-top:auto;flex-wrap:wrap}.view-button{background:var(--button-bg);color:var(--button-text)!important;text-decoration:none!important;padding:.5rem 1rem;border-radius:8px;font-weight:500;transition:all .2s ease;flex:1;text-align:center;margin-bottom:0!important}.view-button:hover{background:var(--button-hover);transform:none}.delete-button{background:#dc2626;color:#fff;border:none;padding:.5rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s ease;font-weight:500}.delete-button:hover{background:#b91c1c}.file-info{margin-top:.5rem;padding:.75rem;background:var(--select-bg);border:1px solid var(--border-color);border-radius:8px;font-size:.875rem}.file-info p{margin:0 0 .5rem;color:var(--text-color)}.file-info ul{margin:0;padding-left:1rem;list-style-type:disc}.file-info li{margin:.25rem 0;color:var(--text-color)}.conversion-progress{margin-top:.75rem;padding:.75rem;background:#e0f2fe;border:1px solid #0288d1;border-radius:8px;text-align:center}.dark-theme .conversion-progress{background:#0d47a1;border-color:#42a5f5;color:#e3f2fd}.field-locked{font-family:JetBrains Mono,monospace;font-size:.75rem;color:#6b7280;margin-top:.25rem;font-style:italic}.dark-theme .field-locked{color:#9ca3af}.branch-hint{display:block;font-size:.7rem;color:var(--accent-color);margin-top:.25rem;font-weight:500}.dark-theme .branch-hint{color:var(--accent-color)}.mobile-signout-button{display:none;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);background:var(--button-bg);color:var(--button-text);border:none;padding:.75rem 2rem;border-radius:25px;font-weight:600;font-size:.9rem;cursor:pointer;box-shadow:0 4px 12px #00000026;transition:all .2s ease;z-index:1000;font-family:Geist,sans-serif}.mobile-signout-button:hover{background:var(--button-hover);transform:translate(-50%) translateY(-2px);box-shadow:0 6px 16px #0003}.mobile-upload-button{display:none;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);border:none;padding:1rem 1.5rem;border-radius:25px;font-weight:600;font-size:.9rem;cursor:pointer;box-shadow:0 4px 12px var(--box-shadow-color);transition:all .2s ease;z-index:1000;font-family:Geist,sans-serif;width:calc(100vw - 2rem);max-width:400px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--frosted-bg);color:var(--button-bg);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border:1px solid var(--frosted-border)}.mobile-upload-button:hover{transform:translate(-50%) translateY(-2px);box-shadow:0 6px 16px #0003}@media (max-width: 1024px){.modal-content{max-width:600px;width:85%}}@media (max-width: 525px){.free-class{width:100%!important;padding:1rem}.responses-container{column-count:1!important;gap:1rem!important}.paper-header h3{font-size:1.1rem;line-height:1.3}.paper-badges{margin-top:.5rem}.badge{font-size:.7rem;padding:.2rem .4rem}.paper-details p{font-size:.8rem}.modal-overlay{padding:0}.modal-content{width:100%;height:100%;margin:0;border-radius:0;max-height:none;padding:1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}.modal-go-back{top:.75rem;right:.75rem;left:auto;font-size:1.15rem;z-index:50}.modal-content-inner{min-height:100px}}@media (max-width: 480px){.responses-container{column-count:1!important}.free-class{width:100%!important;margin-bottom:1rem}.paper-tile{align-items:flex-start;gap:.5rem}.tile-actions a,.tile-actions button{flex:1;min-width:0}.main-container{padding:.5rem .5rem 5rem}}.footer{text-align:center;padding:1rem;margin-top:auto;border-top:1px solid var(--border-color);background-color:var(--bg-color);color:var(--text-color);opacity:.7;font-size:.9rem}.footer p{margin:0;font-family:Geist,sans-serif}.filters-container{align-self:flex-start;margin-bottom:1.5rem}.filters-container h3{font-size:1.1rem;font-weight:600;margin-bottom:.5rem;color:var(--text-color)}.filters-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.filter-item{display:flex;align-items:center;gap:.5rem}.filter-item span{font-size:.95rem;color:var(--text-color)}.filter-select{padding:.4rem .6rem;border:1px solid var(--border-color);border-radius:.25rem;background:var(--select-bg);color:var(--text-color);font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:400;cursor:pointer}.filter-select:focus{outline:none;border-color:var(--focus-border-color)}.clear-filters-btn{background:none;border:none;color:var(--text-color);cursor:pointer;font-size:.9rem;text-decoration:underline;padding:0;opacity:.7}.clear-filters-btn:hover{opacity:1}.filter-group{display:flex;align-items:center;gap:.75rem}.pill-selector{position:relative;display:flex;gap:.5rem;background:var(--select-bg);padding:.25rem;border-radius:2rem;border:1px solid var(--border-color);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.pill-selector::-webkit-scrollbar{height:6px}.pill-selector::-webkit-scrollbar-track{background:transparent}.pill-selector::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.pill-selector::-webkit-scrollbar-thumb:hover{background:var(--text-color)}.pill-indicator{position:absolute;height:calc(100% - .5rem);background:var(--button-bg);border-radius:1.5rem;top:.25rem;left:0;transition:width .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #00000026;z-index:0;pointer-events:none;will-change:transform,width}.pill{position:relative;z-index:1;padding:.4rem .8rem;border:none;border-radius:1.5rem;background:transparent;color:var(--text-color);cursor:pointer;font-size:.85rem;font-weight:500;transition:color .3s ease;white-space:nowrap;flex-shrink:0}.pill:hover{color:var(--text-color)}.pill.active{color:var(--button-text)}@media (max-width: 768px){.filters-container{margin-bottom:1rem}.filters-row{flex-direction:column;align-items:stretch;gap:1rem}.filter-item{flex-direction:column;align-items:stretch;gap:.25rem}.filter-item span{font-size:.9rem;font-weight:500}.filter-select{width:100%;padding:.75rem;font-size:1rem;font-size:max(1rem,16px)}.clear-filters-btn{align-self:center;margin-top:.5rem;padding:.5rem;font-size:1rem}}@media (max-width: 480px){.filters-container{margin-bottom:.75rem;padding:1rem;padding-top:0}.filters-container h3{font-size:1rem;margin-bottom:.75rem}.filter-select{padding:.875rem;border-radius:.375rem}.main-content{padding:1rem;padding-top:calc(86px + 2rem)}}@media (max-width: 1300px){.free-class{width:100%}}@media (max-width: 1080px){.free-class{width:100%}}.dev-message{position:fixed;bottom:1.5rem;right:1.5rem;max-width:360px;z-index:1000;animation:slideInUp .3s ease-out}.dev-message-content{background:var(--select-bg);border:1px solid var(--border-color);border-radius:.75rem;padding:1rem;box-shadow:0 8px 25px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:flex-start;gap:.75rem}.dev-message-icon-nf{display:flex;align-items:center;justify-content:center;color:var(--accent-color);font-size:1.15rem;flex-shrink:0;margin-top:.1rem}.dev-message-text{flex:1;min-width:0}.dev-message-version{display:block;font-size:.75rem;font-family:JetBrains Mono,monospace;color:var(--text-color);opacity:.6;font-weight:600;margin-bottom:.25rem;letter-spacing:.5px}.dev-message-body{font-size:.88rem;line-height:1.4;color:var(--text-color);margin:0}.dev-message-close{background:none;border:none;font-size:1.4rem;color:var(--text-color);cursor:pointer;opacity:.5;transition:opacity .2s ease;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}.dev-message-close:hover{opacity:1}@keyframes slideInUp{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width: 768px){.dev-message{bottom:5.5rem;right:1rem;left:1rem;max-width:none}}.filtered-papers-counter{font-size:.9rem;color:var(--text-color);font-family:JetBrains Mono,monospace;opacity:.7;font-weight:400;background-color:var(--border-color);padding:.25rem .75rem;border-radius:.75rem}.main-container>h2{display:flex;align-items:center;gap:.5rem}.error-message{color:var(--error-color);margin-top:.75rem;font-family:JetBrains Mono,monospace;font-size:.8rem;background-color:var(--error-bg);padding:.5rem;border-radius:.25rem}.preferences-info{flex:1}.preferences-info p{margin:0;font-size:.95rem;color:var(--text-color);font-weight:500}.preferences-info strong{color:var(--accent-color);font-weight:600}.change-preferences-btn{background:var(--button-bg);color:var(--button-text);border:none;padding:.5rem 1.25rem;border-radius:.625rem;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease;white-space:nowrap}.change-preferences-btn:hover{background:var(--button-hover)}.preferences-banner{width:100%;background:#7c5cbf15;border:1px solid var(--border-color);border-radius:1rem;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}@media (max-width: 768px){.preferences-banner{flex-direction:column;align-items:stretch;gap:.75rem;padding:.875rem 1rem;margin-bottom:1rem}.preferences-info p{font-size:.9rem}.change-preferences-btn{width:100%;padding:.75rem;font-size:.95rem}}@media (max-width: 480px){.preferences-banner{padding:.75rem .875rem;margin-bottom:.875rem}.preferences-info p{font-size:.85rem}.change-preferences-btn{padding:.625rem 1rem;font-size:.85rem}}.onboarding-overlay{position:fixed;inset:0;background:#0006;display:flex;justify-content:center;align-items:center;z-index:10000;opacity:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.onboarding-overlay.visible{opacity:1}.onboarding-modal{background:var(--card-bg);border-radius:2rem;border:1px solid var(--border-color);max-width:800px;width:90%;max-height:90vh;overflow-y:auto;opacity:1}.onboarding-modal.slide-in{opacity:1}.onboarding-content{padding:3rem;display:flex;flex-direction:column;gap:2.5rem}.onboarding-header{text-align:center}.onboarding-header h1{font-size:2.5rem;font-weight:700;margin-bottom:.75rem;letter-spacing:-.5px}.brand-highlight{color:var(--button-bg)}.onboarding-header p{font-size:1.125rem;color:var(--text-color);opacity:.6;font-weight:400;font-family:JetBrains Mono,monospace;font-weight:200}.onboarding-body{display:flex;flex-direction:column;gap:0}.selection-section{opacity:1}.selection-section+.selection-section{margin-top:2rem}.selection-section.animate-in{opacity:1}.branch-section{overflow:hidden;transition:max-height .25s ease,opacity .2s ease,transform .2s ease,margin .25s ease}.branch-section.collapsed{max-height:0;opacity:0;transform:translateY(-6px);margin:0;pointer-events:none}.branch-section.expanded{max-height:420px;opacity:1;transform:translateY(0);margin-top:2rem}.section-title{font-size:1.25rem;font-weight:600;margin-bottom:1.5rem;color:var(--text-color);letter-spacing:-.3px;font-family:JetBrains Mono,monospace}.year-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.year-container{display:flex;flex-direction:column;gap:.75rem}.semester-container{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;height:100%}.semester-btn{font-family:JetBrains Mono,monospace;background:var(--select-bg);border:1px solid var(--border-color);border-radius:.75rem;padding:.875rem;cursor:pointer;transition:all .15s ease;font-size:.85rem;font-weight:600;color:var(--text-color);display:flex;align-items:center;justify-content:center;flex-direction:column}.semester-btn:hover{border-color:var(--hover-border-color)}.semester-btn.selected{background:var(--button-bg);border-color:#fff;color:var(--bg-color)}.year-card{font-family:JetBrains Mono,monospace;background:var(--select-bg);border:1px solid var(--border-color);border-radius:1.25rem;padding:1.75rem;cursor:pointer;transition:all .15s ease;font-size:1rem;font-weight:600;color:var(--text-color);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.year-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#7c5cbf15,#a78bfa15);opacity:0;transition:opacity .15s ease}.year-card:hover{border-color:var(--hover-border-color)}.year-card.selected{background:#fff;border-color:#fff;color:#000}.branch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem}.branch-card{font-family:JetBrains Mono,monospace;background:var(--select-bg);border:1px solid var(--border-color);border-radius:1.25rem;padding:1.5rem;cursor:pointer;transition:all .15s ease;font-size:.95rem;font-weight:600;color:var(--text-color);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.branch-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#7c5cbf15,#a78bfa15);opacity:0;transition:opacity .15s ease}.branch-card:hover{border-color:var(--hover-border-color)}.branch-card.selected{background:var(--button-bg);border-color:#fff;color:var(--bg-color)}.branch-label,.year-label{position:relative;z-index:1}.info-message{background:linear-gradient(135deg,#7c5cbf10,#a78bfa10);border:1px solid var(--border-color);border-radius:1rem;padding:1.25rem;text-align:center;overflow:hidden;transition:max-height .25s ease,opacity .2s ease,transform .2s ease,padding .25s ease,border-width .25s ease}.info-message.collapsed{max-height:0;opacity:0;transform:translateY(-6px);margin-top:0;padding-top:0;padding-bottom:0;border-width:0}.info-message.expanded{max-height:120px;opacity:1;transform:translateY(0);margin-top:2rem}.info-message p{color:var(--text-color);font-size:.95rem;font-weight:500;margin:0;font-family:JetBrains Mono,monospace;font-weight:400}.onboarding-footer{display:flex;flex-direction:column;gap:1rem}.continue-button{background:var(--button-bg);color:var(--bg-color);border:none;border-radius:1rem;padding:1rem 2rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s ease;width:100%}.continue-button:disabled{opacity:.5;cursor:not-allowed}.footer-text{text-align:center;font-size:.875rem;color:var(--text-color);opacity:.6;margin:0}@media (max-width: 768px){.onboarding-content{padding:2rem;gap:2rem}.onboarding-header h1{font-size:1.875rem}.onboarding-header p{font-size:1rem}.section-title{font-size:1.1rem}.year-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.year-card{padding:1.25rem;font-size:.9rem;border-radius:1rem}.branch-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.75rem}.branch-card{padding:1.25rem;font-size:.85rem;border-radius:1rem}.continue-button{padding:.875rem 1.5rem;font-size:.95rem}.semester-btn{padding:.75rem;font-size:.8rem}}@media (max-width: 480px){.onboarding-modal{width:95%;border-radius:1.5rem;max-height:85vh}.onboarding-content{padding:1.5rem;gap:1.5rem}.onboarding-header h1{font-size:1.5rem}.onboarding-header p{font-size:.9rem}.section-title{font-size:1rem}.year-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.year-card{padding:1rem;font-size:.8rem}.branch-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.branch-card{padding:1rem;font-size:.75rem}.info-message{padding:1rem}.info-message p{font-size:.85rem}.semester-btn{padding:.75rem;font-size:.8rem}}.academic-year-sections-wrapper{display:flex;flex-direction:column;gap:1.5rem;width:100%}.academic-year-section{display:flex;flex-direction:column;gap:1rem;width:100%}.academic-year-divider{display:flex;align-items:center;text-align:center;gap:1rem;margin:1rem 0 .25rem;width:100%}.academic-year-divider:before,.academic-year-divider:after{content:"";flex:1;height:1px;background:var(--border-color);opacity:.8}.academic-year-badge{font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:600;color:var(--text-color);opacity:.8;letter-spacing:.5px;padding:.25rem .85rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:20px;white-space:nowrap;box-shadow:0 1px 3px #0000000a}.grouped-paper-container{padding:0!important;display:flex;flex-direction:column}.grouped-paper-container .paper-header{padding:1.25rem 1.25rem .75rem}.grouped-papers-tiles{display:flex;flex-direction:column;gap:0;background-color:var(--paper-details-bg);border-top:1px solid var(--border-color);border-radius:0 0 .75rem .75rem;overflow:hidden}.paper-tile{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.25rem;border-bottom:1px solid var(--border-color);background-color:var(--paper-details-bg);transition:background-color .15s ease}.paper-tile:last-child{border-bottom:none}.paper-tile:hover{background-color:#7c5cbf08}.dark-theme .paper-tile:hover{background-color:#a78bfa0d}.tile-content{display:flex;flex-direction:column;gap:.3rem;flex:1;min-width:0}.tile-content p{margin:0;font-size:.8rem;line-height:1.4;font-family:JetBrains Mono,monospace}.tile-content strong{color:var(--text-color);font-weight:600}.tile-actions{display:flex;gap:.5rem;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.tile-actions .view-button{display:flex;padding:.6rem .9rem;font-size:.75rem;margin-bottom:0}.tile-actions .delete-button{display:flex;padding:.6rem .9rem;font-size:.75rem}.bi.bi-arrow-up-right{margin-top:1px}.search-filter-section{width:100%;max-width:800px;margin:.5rem auto 1.5rem;display:flex;flex-direction:row;align-items:center;gap:.75rem}.desktop-upload-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--button-bg);color:var(--button-text);border:none;font-weight:600;font-size:.9rem;padding:0 1.25rem;border-radius:12px;cursor:pointer;white-space:nowrap;transition:background .2s ease,transform .15s ease;flex-shrink:0;height:44px;font-family:inherit}.desktop-upload-btn:hover{background:var(--button-hover)}.desktop-upload-btn:active{transform:scale(.98)}@media (max-width: 768px){.desktop-upload-btn{display:none!important}.mobile-upload-button{display:block!important}}.search-bar-container{position:relative;flex:1;display:flex;align-items:center}.search-icon{position:absolute;left:1rem;color:var(--text-color);opacity:.5;pointer-events:none}.search-input{width:100%;padding:.75rem 2.5rem .75rem 2.6rem;background:var(--card-bg);color:var(--text-color);border:1px solid var(--border-color);border-radius:12px;font-size:.95rem;font-family:inherit;transition:all .2s ease;outline:none}.search-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #7c5cbf26}.clear-search-btn{position:absolute;right:.75rem;background:transparent;border:none;color:var(--text-color);opacity:.6;cursor:pointer;padding:.35rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:opacity .2s ease,background-color .2s ease}.clear-search-btn:hover{opacity:1;background-color:var(--border-color)}.empty-results-box{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2.5rem 1.5rem;text-align:center;background:var(--card-bg);border:1px dashed var(--border-color);border-radius:12px;width:100%;max-width:600px;margin:1.5rem auto}.empty-results-box p{color:var(--text-color);opacity:.8;font-size:.95rem;margin:0}.clear-filters-btn{background:var(--button-bg);color:var(--button-text);border:none;padding:.5rem 1.25rem;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.clear-filters-btn:hover{background:var(--button-hover)}.onboarding-close-btn{position:absolute;top:1rem;right:1.25rem;background:transparent;border:none;font-size:1.1rem;color:var(--text-color);opacity:.6;cursor:pointer;padding:.25rem .5rem;border-radius:6px;transition:all .2s ease}.onboarding-close-btn:hover{opacity:1;background:var(--border-color)}.back-nav-btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--card-bg);color:var(--text-color);border:1px solid var(--border-color);border-radius:8px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;cursor:pointer;font-family:inherit;transition:background-color .2s ease,border-color .2s ease;margin-bottom:1rem;text-decoration:none;outline:none}.back-nav-btn:hover{background:var(--option-hover-bg);border-color:var(--hover-border-color)}.login-modal-content{display:flex;flex-direction:column;gap:1rem}.login-description{font-size:.95rem;opacity:.85;line-height:1.5;margin-bottom:.25rem}.login-description code{background:var(--paper-details-bg);padding:2px 6px;border-radius:4px;font-size:.85rem;font-family:JetBrains Mono,monospace}.google-signin-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;background:var(--card-bg);color:var(--text-color);border:1px solid var(--border-color);border-radius:10px;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit;width:100%}.google-signin-btn:hover{background:var(--option-hover-bg);border-color:var(--hover-border-color)}.google-signin-btn:disabled{opacity:.6;cursor:not-allowed}@media (min-width: 921px){.modal-content.modal-content-large{max-width:780px;width:95%;transition:max-width .25s ease}}.upload-form-view{display:flex;flex-direction:column;gap:.75rem}.upload-form-view h2{font-size:1.25rem;margin-bottom:0}.upload-files-section{display:flex;flex-direction:column;gap:.35rem}.upload-file-trigger-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--card-bg);border:1.5px dashed var(--hover-border-color);border-radius:10px;cursor:pointer;transition:all .2s ease}.upload-file-trigger-card:hover{border-color:var(--accent-color);background:var(--option-hover-bg);transform:translateY(-1px)}.upload-file-trigger-card.disabled{opacity:.6;cursor:not-allowed;border-style:dashed;border-color:var(--border-color);background:var(--paper-details-bg)}.upload-file-trigger-card.disabled:hover{border-color:var(--border-color);background:var(--paper-details-bg);transform:none}.upload-file-trigger-card.disabled .upload-trigger-btn{opacity:.5;cursor:not-allowed;pointer-events:none}.input-needs-attention{border-color:var(--accent-color)!important;box-shadow:0 0 0 3px #7c5cbf38!important;animation:softPulse .35s ease}@keyframes softPulse{0%{transform:scale(1)}50%{transform:scale(1.015)}to{transform:scale(1)}}.upload-file-trigger-icon{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:10px;background:var(--paper-details-bg);color:var(--accent-color);flex-shrink:0}.upload-file-trigger-text{display:flex;flex-direction:column;gap:.2rem;flex:1}.upload-file-trigger-text strong{font-size:.95rem;color:var(--text-color)}.upload-file-trigger-text span{font-size:.8rem;opacity:.75;line-height:1.3}.upload-trigger-btn{background:var(--button-bg);color:var(--button-text);border:none;padding:.5rem .9rem;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s ease}.upload-trigger-btn:hover{background:var(--button-hover)}.upload-files-summary-card{background:var(--paper-details-bg);border:1px solid var(--border-color);border-radius:10px;padding:.65rem .85rem;display:flex;flex-direction:column;gap:.5rem}.upload-files-summary-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.upload-files-badge{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;color:var(--text-color);font-family:JetBrains Mono,monospace}.upload-files-header-actions{display:flex;align-items:center;gap:.5rem}.btn-reorder-link{background:var(--card-bg);color:var(--accent-color);border:1px solid var(--border-color);padding:.35rem .65rem;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn-reorder-link:hover{border-color:var(--accent-color);background:var(--option-hover-bg)}.btn-clear-link{background:transparent;color:var(--error-color);border:none;font-size:.8rem;font-weight:500;cursor:pointer;padding:.35rem .5rem;transition:opacity .2s ease}.btn-clear-link:hover{opacity:.8;text-decoration:underline}.upload-thumbnails-strip{display:flex;align-items:center;gap:.6rem;overflow-x:auto;padding:.35rem .2rem;cursor:pointer}.mini-thumbnail-item{position:relative;width:52px;height:68px;border-radius:6px;overflow:hidden;border:1px solid var(--border-color);background:var(--card-bg);flex-shrink:0;box-shadow:0 2px 5px #00000014}.mini-thumbnail-item img{width:100%;height:100%;object-fit:cover}.mini-page-badge{position:absolute;bottom:2px;right:2px;background:#000000bf;color:#fff;font-size:.65rem;font-weight:700;padding:1px 4px;border-radius:3px;font-family:JetBrains Mono,monospace;line-height:1.2}.mini-thumbnail-add{width:52px;height:68px;border-radius:6px;border:1.5px dashed var(--hover-border-color);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;font-size:.7rem;color:var(--text-color);opacity:.7;flex-shrink:0;transition:all .2s ease}.mini-thumbnail-add:hover{opacity:1;border-color:var(--accent-color);color:var(--accent-color)}.pdf-summary-info{display:flex;align-items:center;gap:.75rem;padding:.4rem .25rem}.pdf-icon-accent{color:var(--error-color)}.pdf-summary-text{display:flex;align-items:baseline;gap:.4rem;font-size:.85rem}.pdf-filename{font-weight:600;color:var(--text-color)}.pdf-filesize{font-size:.75rem;opacity:.7}.submit-paper-btn{background-color:var(--button-bg);color:var(--button-text);border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .2s ease;margin-top:.5rem}.submit-paper-btn:disabled,form button[type=submit]:disabled{opacity:.4;cursor:not-allowed;background-color:var(--border-color);color:var(--text-color);pointer-events:none;box-shadow:none}.file-manager-view{display:flex;flex-direction:column;gap:.75rem;flex:1;min-height:0;height:100%}.file-manager-topbar{display:flex;flex-direction:column;gap:.35rem;flex-shrink:0}.back-to-details-btn{display:inline-flex;align-items:center;gap:.4rem;background:none;border:none;color:var(--accent-color);font-size:.85rem;font-weight:600;cursor:pointer;padding:0;width:fit-content;font-family:inherit;transition:opacity .2s ease}.back-to-details-btn:hover{opacity:.8;text-decoration:underline}.file-manager-header-text h3{font-size:1.25rem;font-weight:700;color:var(--text-color);margin-bottom:.2rem}.file-manager-header-text p{font-size:.85rem;opacity:.75;line-height:1.4}.file-manager-actions-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.25rem;flex-shrink:0}.action-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .85rem;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.action-btn-add{background:var(--card-bg);border:1px solid var(--border-color);color:var(--text-color)}.action-btn-add:hover{border-color:var(--hover-border-color);background:var(--option-hover-bg)}.action-btn-clear{background:none;border:1px solid transparent;color:var(--error-color)}.action-btn-clear:hover{background:var(--error-bg);border-color:var(--error-color)}.file-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.75rem;padding:2.5rem 1.5rem;border:2px dashed var(--hover-border-color);border-radius:12px;background:var(--card-bg);cursor:pointer;transition:all .2s ease}.file-drop-zone:hover,.file-drop-zone.dragging{border-color:var(--accent-color);background:var(--option-hover-bg);transform:scale(1.005)}.drop-zone-icon{color:var(--accent-color);opacity:.85}.file-drop-zone h4{font-size:1rem;font-weight:600;color:var(--text-color)}.file-drop-zone p{font-size:.8rem;opacity:.7}.drop-zone-browse-btn{background:var(--button-bg);color:var(--button-text);border:none;padding:.5rem 1.25rem;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;margin-top:.25rem}.file-manager-pdf-card{display:flex;align-items:center;gap:1.25rem;padding:1.5rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 4px 12px #0000000d}.pdf-icon-large{color:var(--error-color);flex-shrink:0}.pdf-card-details{flex:1;display:flex;flex-direction:column;gap:.25rem}.pdf-card-details h4{font-size:1rem;font-weight:600;word-break:break-all}.pdf-card-details p{font-size:.8rem;opacity:.75}.pdf-card-actions{display:flex;gap:.5rem;align-items:center}.pdf-action-btn{background:var(--paper-details-bg);color:var(--text-color);border:1px solid var(--border-color);padding:.45rem .75rem;border-radius:6px;font-size:.8rem;cursor:pointer;transition:all .2s ease;font-family:inherit}.pdf-action-btn:hover{background:var(--option-hover-bg);border-color:var(--hover-border-color)}.pdf-action-btn.btn-danger{color:var(--error-color)}.pdf-action-btn.btn-danger:hover{background:var(--error-bg);border-color:var(--error-color)}.page-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));grid-auto-rows:max-content;align-content:start;align-items:start;gap:.75rem;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:.35rem .2rem;flex:1;min-height:0}.page-card{display:flex;flex-direction:column;background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;overflow:hidden;box-shadow:0 3px 10px #0000000f;transition:all .2s ease;cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;height:220px;min-height:220px}.page-card:hover{border-color:var(--hover-border-color);box-shadow:0 6px 16px #0000001a;transform:translateY(-2px)}.page-card:active{cursor:grabbing}.page-card-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .6rem;background:var(--paper-details-bg);border-bottom:1px solid var(--border-color);-webkit-user-select:none;user-select:none;flex-shrink:0}.page-number-pill{font-size:.75rem;font-weight:700;font-family:JetBrains Mono,monospace;color:var(--text-color)}.page-card-controls{display:flex;align-items:center;gap:.25rem}.page-ctrl-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-color);cursor:pointer;padding:0;transition:all .15s ease}.page-ctrl-btn:hover:not(:disabled){background:var(--button-bg);color:var(--button-text)}.page-ctrl-btn:disabled{opacity:.3;cursor:not-allowed}.page-ctrl-btn.delete-page-btn:hover{background:var(--error-color);border-color:var(--error-color);color:#fff}.page-card-preview{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#f4f2f7;overflow:hidden;padding:.25rem;pointer-events:none;-webkit-user-select:none;user-select:none}.dark-theme .page-card-preview{background:#121016}.page-card-preview img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 2px 6px #0000001f;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.page-card-footer{display:flex;align-items:center;justify-content:space-between;padding:.4rem .6rem;font-size:.7rem;opacity:.8;font-family:JetBrains Mono,monospace;background:var(--card-bg);-webkit-user-select:none;user-select:none;flex-shrink:0}.page-filename{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:65%}.page-filesize{flex-shrink:0}.add-more-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;height:220px;min-height:220px;border:2px dashed var(--hover-border-color);border-radius:10px;background:var(--card-bg);color:var(--text-color);opacity:.75;cursor:pointer;transition:all .2s ease;font-size:.85rem;font-weight:600}.add-more-card:hover{opacity:1;border-color:var(--accent-color);color:var(--accent-color);background:var(--option-hover-bg)}.file-manager-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.75rem;border-top:1px solid var(--border-color);margin-top:auto;flex-shrink:0}.file-manager-count-summary{font-size:.85rem;font-weight:600;font-family:JetBrains Mono,monospace;color:var(--text-color)}.confirm-pages-btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--button-bg);color:var(--button-text);border:none;padding:.65rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.confirm-pages-btn:hover{background:var(--button-hover)}@media (max-width: 920px){.file-manager-view{flex:1;min-height:0;display:flex;flex-direction:column;height:100%}.page-cards-grid{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 600px){.page-cards-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:max-content;align-content:start;align-items:start;gap:.6rem;flex:1;min-height:0}.page-card{height:180px;min-height:180px}.page-card-preview{height:115px;min-height:0}.add-more-card{height:180px;min-height:180px}}
