@import url(https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap);.homepage-container{align-items:center;background-color:var(--background-color);color:var(--text-color);display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:2rem;position:relative;text-align:center}.homepage-container .theme-toggle-button{align-items:center;background-color:var(--card-background);border:1px solid var(--border-color);border-radius:50%;box-shadow:0 1px 3px var(--shadow-color);color:var(--primary-color);cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;position:absolute;right:1.5rem;top:1.5rem;transition:background-color .15s ease-in-out,color .15s ease-in-out,box-shadow .15s ease-in-out;width:40px}.homepage-container .theme-toggle-button:hover{background-color:var(--hover-background);box-shadow:0 3px 6px var(--shadow-color);color:var(--button-text)}.homepage-container .homepage-content{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 5px 10px var(--shadow-color);margin-bottom:1.5rem;max-width:700px;padding:3rem;width:90%}.homepage-container .homepage-content h1{color:var(--primary-color);font-size:2.5rem;margin-bottom:1rem}@media(max-width:575px){.homepage-container .homepage-content h1{font-size:2rem}}.homepage-container .homepage-content .subtitle{color:var(--secondary-color);font-size:1.25rem;margin-bottom:1.5rem}@media(max-width:575px){.homepage-container .homepage-content .subtitle{font-size:1rem}}.homepage-container .homepage-content .description{color:var(--text-color);font-size:1rem;margin-bottom:2rem}.homepage-container .homepage-content .auth-buttons{align-items:center;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center}.homepage-container .homepage-content .auth-buttons .btn{border:none;border-radius:10px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.homepage-container .homepage-content .auth-buttons .btn:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.homepage-container .homepage-content .auth-buttons .btn:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.homepage-container .homepage-content .auth-buttons .btn:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.homepage-container .homepage-content .auth-buttons .btn{font-size:1.25rem;min-width:150px;padding:1rem 2rem}.homepage-container .homepage-content .auth-buttons .btn.btn-primary{border:none;border-radius:10px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.homepage-container .homepage-content .auth-buttons .btn.btn-primary:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.homepage-container .homepage-content .auth-buttons .btn.btn-primary:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.homepage-container .homepage-content .auth-buttons .btn.btn-primary:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.homepage-container .homepage-content .auth-buttons .btn.btn-primary{background-color:var(--button-background);color:var(--button-text)}.homepage-container .homepage-content .auth-buttons .btn.btn-primary:hover{background-color:var(--hover-background)}.homepage-container .homepage-content .auth-buttons .btn.btn-secondary{border:none;border-radius:10px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.homepage-container .homepage-content .auth-buttons .btn.btn-secondary:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.homepage-container .homepage-content .auth-buttons .btn.btn-secondary:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.homepage-container .homepage-content .auth-buttons .btn.btn-secondary:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.homepage-container .homepage-content .auth-buttons .btn.btn-secondary{background-color:var(--secondary-color);color:var(--button-text)}.homepage-container .homepage-content .auth-buttons .btn.btn-secondary:hover{background-color:var(--secondary-button-hover-background)}.homepage-container .homepage-content .auth-buttons .btn.btn-secondary{background-color:var(--input-background);border:1px solid var(--border-color);color:var(--primary-color)}.homepage-container .homepage-content .auth-buttons .btn.btn-secondary:hover{background-color:var(--hover-background);border-color:var(--hover-background);color:var(--button-text)}.sidebar{background-color:var(--card-background);box-shadow:0 10px 20px var(--shadow-color);color:var(--text-color);display:flex;flex-direction:column;height:100%;left:-250px;padding:1.5rem 1rem;position:fixed;top:0;transition:left .3s ease-in-out;width:250px;z-index:1000}.sidebar.open{left:0}@media(max-width:575px){.sidebar{left:-200px;width:200px}.sidebar.open{left:0}}@media(min-width:992px){.sidebar{border-right:1px solid var(--border-color);box-shadow:none;display:flex;flex-direction:column;grid-column:1/2;grid-row:1/3;height:100vh;left:0;padding:2rem 1rem;position:-webkit-sticky;position:sticky;top:0;z-index:auto}}.sidebar .sidebar-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.sidebar .sidebar-header h3{color:var(--primary-color);font-size:1.5rem;margin:0}.sidebar .sidebar-header .close-btn{background:none;border:none;color:var(--secondary-color);cursor:pointer;font-size:2rem;transition:color .15s ease-in-out}.sidebar .sidebar-header .close-btn:hover{color:var(--delete-button-background)}@media(min-width:992px){.sidebar .sidebar-header .close-btn{display:none}}.sidebar .sidebar-nav{flex-grow:1}.sidebar .sidebar-nav ul{list-style:none;margin:0;padding:0}.sidebar .sidebar-nav ul li{margin-bottom:.75rem}.sidebar .sidebar-nav ul li a{align-items:center;border-radius:6px;color:var(--text-color);display:flex;font-size:1rem;font-weight:500;gap:1rem;padding:.75rem 1rem;text-decoration:none;transition:background-color .15s ease-in-out,color .15s ease-in-out}.sidebar .sidebar-nav ul li a .nav-icon{color:var(--primary-color);font-size:1.25rem;transition:color .15s ease-in-out}.sidebar .sidebar-nav ul li a:hover{background-color:var(--hover-background);color:var(--button-text)}.sidebar .sidebar-nav ul li a:hover .nav-icon{color:var(--button-text)}.sidebar .sidebar-nav ul li a.active{background-color:var(--primary-color);color:var(--button-text)}.sidebar .sidebar-nav ul li a.active .nav-icon{color:var(--button-text)}.sidebar .title-name{font-family:Geist,sans-serif;font-optical-sizing:auto;font-style:normal;font-weight:weight}.sidebar .sidebar-footer{border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:1rem;padding-top:1.5rem}.sidebar .sidebar-footer .theme-toggle{align-items:center;background-color:var(--input-background);border-radius:10px;box-shadow:0 1px 3px var(--shadow-color);color:var(--text-color);cursor:pointer;display:flex;font-size:1rem;gap:.75rem;justify-content:center;padding:.75rem 1rem;transition:background-color .15s ease-in-out,box-shadow .15s ease-in-out}.sidebar .sidebar-footer .theme-toggle .theme-icon{color:var(--primary-color);font-size:1.25rem}.sidebar .sidebar-footer .theme-toggle:hover{background-color:var(--hover-background);color:var(--button-text)}.sidebar .sidebar-footer .theme-toggle:hover .theme-icon{color:var(--button-text)}.sidebar .sidebar-footer .logout-btn{border:none;border-radius:10px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.sidebar .sidebar-footer .logout-btn:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.sidebar .sidebar-footer .logout-btn:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.sidebar .sidebar-footer .logout-btn:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.sidebar .sidebar-footer .logout-btn{background-color:var(--button-background);color:var(--button-text)}.sidebar .sidebar-footer .logout-btn:hover{background-color:var(--hover-background)}.sidebar .sidebar-footer .logout-btn{background-color:var(--delete-button-background)}.sidebar .sidebar-footer .logout-btn:hover{background-color:var(--delete-button-hover-background)}.sidebar .sidebar-footer .logout-btn{align-items:center;display:flex;gap:.75rem;justify-content:center;width:100%}.notif-bell,.notif-bell__btn{position:relative}.notif-bell__btn{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-color);cursor:pointer;display:flex;font-size:1.2rem;height:38px;justify-content:center;transition:background .15s;width:38px}.notif-bell__btn:hover{background:var(--input-background)}.notif-bell__badge{align-items:center;background:#ff453a;border-radius:10px;color:#fff;display:flex;font-size:.6rem;font-weight:800;height:16px;justify-content:center;line-height:1;min-width:16px;padding:0 3px;pointer-events:none;position:absolute;right:2px;top:2px}.notif-panel{background:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 12px 40px #0000002e;display:flex;flex-direction:column;max-height:480px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px);width:340px;z-index:500}@media(max-width:400px){.notif-panel{right:-1rem;width:calc(100vw - 1rem)}}.notif-panel__header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0;justify-content:space-between;padding:.85rem 1rem}.notif-panel__title{color:var(--text-color);font-size:.95rem;font-weight:700}.notif-panel__read-all{align-items:center;background:none;border:none;color:var(--primary-color);cursor:pointer;display:flex;font-size:.78rem;font-weight:600;gap:4px}.notif-panel__read-all:hover{opacity:.8}.notif-panel__list{flex:1 1;overflow-y:auto}.notif-panel__empty{color:var(--secondary-color);font-size:.88rem;padding:2rem 1rem;text-align:center}.notif-item{align-items:flex-start;border-bottom:1px solid var(--border-color);cursor:pointer;display:flex;gap:.65rem;padding:.75rem 1rem;transition:background .12s}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--input-background)}.notif-item--unread{background:#0a84ff0f}.notif-item--unread:hover{background:#0a84ff1a}.notif-item__icon{color:var(--primary-color);flex-shrink:0;font-size:.95rem;margin-top:2px}.notif-item__body{flex:1 1;min-width:0}.notif-item__title{color:var(--text-color);font-size:.85rem;font-weight:600;line-height:1.3}.notif-item__text{color:var(--secondary-color);font-size:.78rem;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif-item__time{color:var(--secondary-color);font-size:.7rem;margin-top:3px}.notif-item__del{background:none;border:none;border-radius:4px;color:var(--secondary-color);cursor:pointer;flex-shrink:0;font-size:.75rem;opacity:0;padding:2px 4px;transition:opacity .15s}.notif-item__del:hover{color:#ff453a}.notif-item:hover .notif-item__del{opacity:1}.dashboard-header{align-items:center;background-color:var(--card-background);box-shadow:0 3px 6px var(--shadow-color);color:var(--text-color);display:flex;justify-content:space-between;padding:1rem 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:999}@media(max-width:575px){.dashboard-header{padding:.75rem 1rem}}@media(min-width:992px){.dashboard-header{grid-column:2/3;grid-row:1/2}}.dashboard-header .menu-toggle-btn{background:none;border:none;color:var(--primary-color);cursor:pointer;display:block;font-size:1.5rem}@media(min-width:992px){.dashboard-header .menu-toggle-btn{display:none}}.dashboard-header .welcome-section{flex-grow:1;text-align:center}@media(min-width:992px){.dashboard-header .welcome-section{margin-left:1.5rem;text-align:left}}.dashboard-header .welcome-section .welcome-text{color:var(--primary-color);font-size:1.5rem;margin:0}@media(max-width:575px){.dashboard-header .welcome-section .welcome-text{font-size:1.25rem}}.dashboard-header .welcome-section .scholar-number{color:var(--secondary-color);display:block;font-size:.875rem;margin-top:.25rem}.dashboard-header .user-profile-section{align-items:center;display:flex;position:relative}.dashboard-header .user-profile-section .profile-icon-btn{background:none;border:none;border-radius:50%;color:var(--primary-color);cursor:pointer;font-size:1.5rem;padding:.5rem;transition:background-color .15s ease-in-out}.dashboard-header .user-profile-section .profile-icon-btn:hover{background-color:var(--hover-background);color:var(--button-text)}.dashboard-header .user-profile-section .profile-icon-btn .profile-icon{font-size:1.5rem}.dashboard-header .user-profile-section .profile-dropdown{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 5px 10px var(--shadow-color);font-size:.875rem;margin-bottom:1.5rem;padding:1rem;position:absolute;right:0;text-align:left;top:calc(100% + .75rem);width:250px;z-index:1001}.dashboard-header .user-profile-section .profile-dropdown p{margin-bottom:.5rem}.dashboard-header .user-profile-section .profile-dropdown p:last-child{margin-bottom:0}.dashboard-header .user-profile-section .profile-dropdown p strong{color:var(--primary-color)}.offline-banner{align-items:center;background-color:var(--warning-color);border-bottom:1px solid var(--border-color);color:var(--warning-text-color);display:flex;font-size:.875rem;font-weight:500;gap:.75rem;padding:.75rem 1rem;text-align:left}.offline-banner__icon{flex-shrink:0}.offline-banner__wifi{flex-shrink:0;margin-left:auto;opacity:.6}.offline-banner span{flex:1 1}@media(max-width:575px){.offline-banner{flex-wrap:wrap}.offline-banner__wifi{display:none}}.dashboard-layout{background-color:var(--background-color);color:var(--text-color);display:flex;flex-direction:column;min-height:100vh;transition:background-color .3s ease-in-out,color .3s ease-in-out}@media(min-width:992px){.dashboard-layout{display:grid;grid-template-columns:250px 1fr;grid-template-rows:auto 1fr}}.main-content{display:flex;flex-direction:column;flex-grow:1;padding-left:0;transition:margin-left .3s ease-in-out}@media(min-width:992px){.main-content{grid-column:2/3;grid-row:1/3;margin-left:0}}.dashboard-main{flex-grow:1;padding:1.5rem}@media(max-width:575px){.dashboard-main{padding:1rem}}@media(min-width:992px){.dashboard-main{padding-top:2rem}}.subject-card{align-items:center;background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 5px 10px var(--shadow-color);cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-bottom:1.5rem;padding:1rem;text-align:center;transition:transform .15s ease-in-out,box-shadow .15s ease-in-out}.subject-card:hover{box-shadow:0 10px 20px var(--shadow-color);transform:translateY(-3px)}.subject-card .subject-logo{background-color:var(--input-background);border:1px solid var(--border-color);border-radius:10px;height:80px;margin-bottom:.75rem;object-fit:contain;padding:.5rem;width:80px}.subject-card .subject-name{color:var(--primary-color);font-size:1.25rem;font-weight:600;margin-bottom:.25rem}.subject-card .subject-code{color:var(--secondary-color);font-size:.875rem;margin-bottom:.5rem}.subject-card .subject-semester{color:var(--text-color);font-size:.875rem;font-weight:500}.folder-list-container{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 5px 10px var(--shadow-color);margin-bottom:1.5rem;margin-top:1.5rem;padding:2rem;text-align:center}.folder-list-container h3{color:var(--primary-color);font-size:1.5rem;margin-bottom:1.5rem}.folder-list-container .folders-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));justify-content:center}.folder-list-container .folders-grid .folder-card{align-items:center;background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 5px 10px var(--shadow-color);cursor:pointer;display:flex;flex-direction:column;justify-content:center;margin-bottom:1.5rem;padding:1rem;transition:transform .15s ease-in-out,box-shadow .15s ease-in-out}.folder-list-container .folders-grid .folder-card:hover{box-shadow:0 10px 20px var(--shadow-color);transform:translateY(-3px)}.folder-list-container .folders-grid .folder-card .folder-icon{color:var(--accent-color);font-size:2rem;margin-bottom:.75rem}.folder-list-container .folders-grid .folder-card .folder-name{color:var(--text-color);font-size:1.25rem;font-weight:600}.file-list-container{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 5px 10px var(--shadow-color);margin-bottom:1.5rem;margin-top:1.5rem;padding:2rem}.file-list-container h3{color:var(--primary-color);font-size:1.5rem;margin-bottom:1.5rem;text-align:center}.file-list-container .no-files-message{color:var(--secondary-color);font-size:1rem;padding:1.5rem;text-align:center}.file-list-container .file-items-list{list-style:none;margin:0;padding:0}.file-list-container .file-items-list .file-item{align-items:center;background-color:var(--input-background);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 1px 3px var(--shadow-color);display:flex;justify-content:space-between;margin-bottom:1rem;padding:1rem;transition:background-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .15s ease-in-out}.file-list-container .file-items-list .file-item:hover{background-color:var(--hover-background);box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-2px)}.file-list-container .file-items-list .file-item:hover .file-info .file-icon,.file-list-container .file-items-list .file-item:hover .file-info .file-title{color:var(--button-text)}.file-list-container .file-items-list .file-item:hover .file-info .file-description{color:var(--button-text-hover-lightened)}.file-list-container .file-items-list .file-item .file-info{align-items:center;cursor:pointer;display:flex;flex-grow:1;padding-right:1rem}.file-list-container .file-items-list .file-item .file-info .file-icon{color:var(--accent-color);font-size:2rem;margin-right:1rem;transition:color .15s ease-in-out}.file-list-container .file-items-list .file-item .file-info .file-icon.pdf-icon{color:#e74c3c}.file-list-container .file-items-list .file-item .file-info .file-icon.image-icon{color:#2ecc71}.file-list-container .file-items-list .file-item .file-info .file-icon.url-icon{color:#3498db}.file-list-container .file-items-list .file-item .file-info .file-details{display:flex;flex-direction:column;text-align:left}.file-list-container .file-items-list .file-item .file-info .file-title{color:var(--text-color);font-size:1rem;font-weight:500;transition:color .15s ease-in-out}.file-list-container .file-items-list .file-item .file-info .file-description{color:var(--secondary-color);font-size:.875rem;margin-top:.25rem;transition:color .15s ease-in-out}.file-list-container .file-items-list .file-item .download-button{border-radius:10px;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.file-list-container .file-items-list .file-item .download-button:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.file-list-container .file-items-list .file-item .download-button:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.file-list-container .file-items-list .file-item .download-button:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.file-list-container .file-items-list .file-item .download-button{background-color:var(--button-background)}.file-list-container .file-items-list .file-item .download-button:hover{background-color:var(--hover-background)}.file-list-container .file-items-list .file-item .download-button{align-items:center;background-color:var(--accent-color);border:none;color:var(--button-text);cursor:pointer;display:flex;font-size:.875rem;gap:.25rem;padding:.5rem .75rem;text-decoration:none}.file-list-container .file-items-list .file-item .download-button:hover{background-color:var(--accent-button-hover-background)}@keyframes skeleton-shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton-block{animation:skeleton-shimmer 1.6s ease-in-out infinite;background:linear-gradient(90deg,var(--input-background) 25%,var(--border-color) 50%,var(--input-background) 75%);background-size:1200px 100%;border-radius:6px;height:16px;width:100%}.skeleton-block.skeleton-circle{border-radius:50%;flex-shrink:0;height:80px;width:80px}.skeleton-block.skeleton-title{height:20px;width:60%}.skeleton-block.skeleton-text{height:14px}.skeleton-block.skeleton-text-sm{height:12px;width:40%}.skeleton-block.skeleton-btn{border-radius:20px;height:34px;width:100px}.skeleton-block.skeleton-image{border-radius:10px;flex-shrink:0;height:80px;width:80px}.subject-card-skeleton{box-sizing:border-box;gap:10px;height:100%;padding:16px}.folder-card-skeleton,.subject-card-skeleton{align-items:center;background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column}.folder-card-skeleton{gap:12px;padding:20px 16px}.file-row-skeleton{align-items:center;background:var(--input-background);border:1px solid var(--border-color);border-radius:10px;display:flex;gap:14px;padding:14px 16px}.file-row-skeleton .file-row-skeleton-details{display:flex;flex:1 1;flex-direction:column;gap:7px}.dashboard-skeleton{margin:0 auto;max-width:1200px;padding:24px}.dashboard-skeleton .dashboard-skeleton-header{display:flex;justify-content:center;margin-bottom:28px}.dashboard-skeleton .dashboard-skeleton-header .skeleton-block{border-radius:8px}.dashboard-skeleton .subjects-skeleton-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.material-detail-skeleton{background-color:var(--background-color);display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:2000}.material-detail-skeleton .viewer-body-skeleton{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:12px;overflow:hidden;padding:16px}.material-detail-skeleton .viewer-body-skeleton .pdf-page-skeleton{animation:skeleton-shimmer 1.6s ease-in-out infinite;background:linear-gradient(90deg,var(--input-background) 25%,var(--border-color) 50%,var(--input-background) 75%);background-size:1200px 100%;border-radius:6px;border-radius:8px;flex-shrink:0;width:min(680px,92%)}.material-detail-skeleton .viewer-body-skeleton .pdf-page-skeleton:first-child{height:880px}.material-detail-skeleton .viewer-body-skeleton .pdf-page-skeleton:nth-child(2){height:200px;opacity:.45}.material-detail-skeleton .viewer-body-skeleton .image-skeleton{border-radius:6px;border-radius:10px;height:560px;width:min(680px,92%)}.material-detail-skeleton .viewer-body-skeleton .image-skeleton,.pdf-page-loading-skeleton{animation:skeleton-shimmer 1.6s ease-in-out infinite;background:linear-gradient(90deg,var(--input-background) 25%,var(--border-color) 50%,var(--input-background) 75%);background-size:1200px 100%}.pdf-page-loading-skeleton{border-radius:6px;height:860px;margin:8px auto;width:min(660px,90vw)}.announcements-container{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 5px 10px var(--shadow-color);margin-bottom:1.5rem;padding:2rem}.announcements-container h2{color:var(--primary-color);font-size:2rem;margin-bottom:1.5rem;text-align:center}@media(max-width:575px){.announcements-container h2{font-size:1.5rem}}.announcements-container .no-announcements{color:var(--secondary-color);font-size:1rem;padding:1.5rem;text-align:center}.announcements-container .announcements-error{margin-top:1.5rem;text-align:center}.announcements-container .announcements-list{grid-gap:1.5rem;display:grid;gap:1.5rem}.announcements-container .announcements-list .announcement-item{background-color:var(--input-background);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 3px 6px var(--shadow-color);padding:1rem;transition:transform .2s ease,box-shadow .2s ease}.announcements-container .announcements-list .announcement-item:hover{box-shadow:0 5px 10px var(--shadow-color);transform:translateY(-2px)}.announcements-container .announcements-list .announcement-item .announcement-title{color:var(--accent-color);font-size:1.25rem;margin-bottom:.5rem}.announcements-container .announcements-list .announcement-item .announcement-content{color:var(--text-color);font-size:1rem;margin-bottom:.75rem}.announcements-container .announcements-list .announcement-item .announcement-meta{color:var(--secondary-color);display:block;font-size:.875rem;text-align:right}.cal-locked{align-items:center;color:var(--secondary-color);display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem;text-align:center}.cal-locked__icon{color:#f6c90e;font-size:3rem;margin-bottom:1rem}.cal-locked h3{color:var(--text-color);font-size:1.4rem;margin-bottom:.5rem}.cal-locked p{font-size:.95rem;max-width:360px}.academic-calendar{color:var(--text-color);display:flex;flex-direction:column;font-family:inherit;gap:1.2rem;padding:1.2rem}.cal-header{border-bottom:1px solid var(--border-color);flex-wrap:wrap;gap:.8rem;justify-content:space-between;padding-bottom:.9rem}.cal-header,.cal-header__title{align-items:center;display:flex}.cal-header__title{color:var(--primary-color);font-size:1.25rem;font-weight:700;gap:.5rem}.cal-header__title svg{font-size:1.1rem}.cal-header__admin-badge{background:linear-gradient(135deg,#f6c90e,#e0a800);border-radius:10px;color:#1a1a1a;font-size:.7rem;font-weight:800;letter-spacing:.04em;padding:2px 8px}.cal-header__legend{display:flex;flex-wrap:wrap;gap:.7rem}.legend-item{align-items:center;color:var(--secondary-color);display:flex;font-size:.78rem;gap:5px}.legend-dot{border-radius:50%;flex-shrink:0;height:9px;width:9px}.cal-body{align-items:flex-start;display:flex;gap:1.2rem}@media(max-width:768px){.cal-body{flex-direction:column}}.cal-main{border:1px solid var(--border-color);border-radius:12px;flex:1 1;min-width:0;overflow:hidden}.cal-main,.cal-nav{background:var(--card-background)}.cal-nav{align-items:center;border-bottom:1px solid var(--border-color);display:flex;gap:.6rem;padding:.8rem 1rem}.cal-nav__label{align-items:baseline;display:flex;flex:1 1;gap:.4rem;justify-content:center}.cal-nav__month{color:var(--text-color);font-size:1.1rem;font-weight:700}.cal-nav__year{color:var(--secondary-color);font-size:.9rem}.cal-nav__btn{align-items:center;background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);cursor:pointer;display:flex;height:32px;justify-content:center;transition:background .15s;width:32px}.cal-nav__btn:hover,.cal-nav__today{background:var(--primary-color);color:#fff}.cal-nav__today{border:none;border-radius:8px;cursor:pointer;font-size:.8rem;font-weight:600;padding:5px 12px;transition:opacity .15s}.cal-nav__today:hover{opacity:.85}.cal-loading{color:var(--secondary-color);font-size:.88rem;padding:1rem;text-align:center}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-grid__day-name{background:var(--input-background);color:var(--secondary-color);font-size:.72rem;font-weight:700;letter-spacing:.05em;padding:.5rem 0;text-align:center}.cal-grid__cell,.cal-grid__day-name{border-bottom:1px solid var(--border-color)}.cal-grid__cell{border-right:1px solid var(--border-color);cursor:pointer;min-height:56px;padding:4px 5px;position:relative;transition:background .12s}.cal-grid__cell:nth-child(7n){border-right:none}.cal-grid__cell:hover:not(.cal-grid__cell--empty){background:var(--input-background)}.cal-grid__cell--empty{background:#0000;border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-color);cursor:default}.cal-grid__cell--sunday .cal-grid__date{color:#ff453a}.cal-grid__cell--holiday{background:#ff453a12}.cal-grid__cell--today .cal-grid__date{align-items:center;background:var(--primary-color);border-radius:50%;color:#fff;display:flex;font-weight:700;height:24px;justify-content:center;width:24px}.cal-grid__cell--selected{background:#0a84ff1a!important;outline:2px solid var(--primary-color);outline-offset:-2px}.cal-grid__date{align-items:center;color:var(--text-color);display:inline-flex;font-size:.82rem;font-weight:500;height:24px;justify-content:center;line-height:1;width:24px}.cal-grid__pills{display:flex;flex-wrap:wrap;gap:2px;margin-top:2px}.cal-grid__pill{border-radius:50%;flex-shrink:0;height:6px;width:6px}.cal-detail{background:var(--input-background);border-top:1px solid var(--border-color);padding:1rem}.cal-detail__heading{color:var(--text-color);font-size:1rem;font-weight:700;margin-bottom:.8rem}.cal-detail__sunday-label{color:#ff453a;font-size:.88rem;font-weight:400}.cal-detail__empty{align-items:center;color:var(--secondary-color);display:flex;font-size:.88rem;gap:.4rem}.cal-detail__item{align-items:flex-start;background:var(--card-background);border-left:3px solid var(--border-color);border-radius:0 6px 6px 0;display:flex;gap:.6rem;margin-bottom:.5rem;padding:.6rem .8rem}.cal-detail__type-icon{flex-shrink:0;font-size:.95rem;margin-top:2px}.cal-detail__item-title{color:var(--text-color);font-size:.9rem;font-weight:600;line-height:1.3}.cal-detail__item-sub{margin-top:2px}.cal-detail__edit-btn,.cal-detail__item-sub{color:var(--secondary-color);font-size:.75rem}.cal-detail__edit-btn{background:#0000;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;flex-shrink:0;margin-left:auto;padding:3px 9px}.cal-detail__edit-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.cal-sidebar{display:flex;flex-direction:column;flex-shrink:0;gap:1rem;width:260px}@media(max-width:768px){.cal-sidebar{width:100%}}.cal-upcoming{background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;padding:1rem}.cal-upcoming__heading{font-weight:700;letter-spacing:.06em;margin-bottom:.8rem;text-transform:uppercase}.cal-upcoming__empty,.cal-upcoming__heading{color:var(--secondary-color);font-size:.85rem}.cal-upcoming__item{align-items:flex-start;border-bottom:1px solid var(--border-color);border-left:3px solid #0000;display:flex;gap:.6rem;margin-bottom:.1rem;padding:.45rem 0 .45rem 6px}.cal-upcoming__item:last-child{border-bottom:none}.cal-upcoming__dot{border-radius:50%;flex-shrink:0;height:8px;margin-top:5px;width:8px}.cal-upcoming__title{color:var(--text-color);font-size:.82rem;font-weight:600;line-height:1.3}.cal-upcoming__date{color:var(--secondary-color);font-size:.72rem;margin-top:2px}.cal-admin-controls{background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;padding:1rem}.cal-admin-controls__heading{color:var(--secondary-color);font-size:.85rem;font-weight:700;letter-spacing:.06em;margin-bottom:.8rem;text-transform:uppercase}.cal-admin-controls__msg{color:#30d158;font-size:.8rem;margin-bottom:.6rem}.cal-admin-btn{border:none;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:600;margin-bottom:.5rem;padding:8px 0;transition:opacity .15s;width:100%}.cal-admin-btn:hover{opacity:.85}.cal-admin-btn--event{background:#0a84ff26;border:1px solid #0a84ff4d;color:var(--primary-color)}.cal-admin-btn--holiday{background:#ff453a1f;border:1px solid #ff453a4d;color:#ff453a}.cal-admin-list{margin-top:.8rem;max-height:220px;overflow-y:auto}.cal-admin-list__label{color:var(--secondary-color);font-size:.75rem;font-weight:700;letter-spacing:.05em;margin-bottom:.4rem;text-transform:uppercase}.cal-admin-list__item{align-items:center;border-bottom:1px solid var(--border-color);color:var(--text-color);display:flex;font-size:.78rem;gap:.4rem;padding:4px 0}.cal-admin-list__item:last-child{border-bottom:none}.cal-admin-list__item span:first-child{flex:1 1}.cal-admin-list__date{color:var(--secondary-color);flex-shrink:0;font-size:.72rem}.cal-admin-list__edit{background:none;border:none;cursor:pointer;flex-shrink:0;font-size:.8rem;opacity:.6;padding:0 2px}.cal-admin-list__edit:hover{opacity:1}.cal-modal-overlay{align-items:center;background:#0000008c;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.cal-modal{background:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 20px 60px #00000059;max-width:420px;padding:1.5rem;width:100%}.cal-modal__title{color:var(--text-color);font-size:1.05rem;font-weight:700;margin-bottom:1.1rem}.cal-modal__label{color:var(--secondary-color);display:block;font-size:.8rem;font-weight:600;margin-bottom:.3rem;margin-top:.7rem}.cal-modal__label:first-of-type{margin-top:0}.cal-modal__input{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;color:var(--text-color);font-size:.88rem;outline:none;padding:8px 10px;width:100%}.cal-modal__input:focus{border-color:var(--primary-color)}.cal-modal__actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:1.2rem}.cal-modal__cancel{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);cursor:pointer;font-size:.85rem;padding:7px 16px}.cal-modal__cancel:hover{opacity:.8}.cal-modal__save{background:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:7px 18px}.cal-modal__save:hover{opacity:.88}.cal-modal__delete{background:#ff453a1f;border:1px solid #ff453a4d;border-radius:8px;color:#ff453a;cursor:pointer;font-size:.85rem;font-weight:600;margin-right:auto;padding:7px 14px}.cal-modal__delete:hover{background:#ff453a38}.cal-my-events{background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;padding:1rem}.cal-my-events__heading{align-items:center;color:#bf5af2;display:flex;font-size:.85rem;font-weight:700;gap:.4rem;letter-spacing:.05em;margin-bottom:.8rem;text-transform:uppercase}.cal-admin-btn--personal{background:#bf5af21f;border:1px solid #bf5af24d;color:#bf5af2;margin-top:.6rem}.cal-detail__item--personal{background:#bf5af20d}.cal-detail__edit-btn--personal{border-color:#bf5af24d;color:#bf5af2}.cal-detail__edit-btn--personal:hover{border-color:#bf5af2;color:#bf5af2}.cal-detail__note{font-style:italic;opacity:.8}.cal-detail__add-personal{align-items:center;background:#bf5af21a;border:1px dashed #bf5af266;border-radius:8px;color:#bf5af2;cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:600;gap:5px;justify-content:center;margin-top:.7rem;padding:6px 14px;transition:background .15s;width:100%}.cal-detail__add-personal:hover{background:#bf5af22e}.cal-detail__heading{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.cal-modal__hint{color:var(--secondary-color);font-size:.78rem;font-style:italic;margin:-.5rem 0 .8rem}.ec-empty,.ec-loading{color:var(--secondary-color);font-size:.88rem;padding:1.5rem 1rem;text-align:center}.ec-empty{align-items:center;display:flex;flex-direction:column;gap:.5rem}.ec-empty__icon{color:#30d158;font-size:1.8rem;opacity:.6}.ec-empty p{color:var(--text-color);font-size:.9rem;margin:0}.exam-countdown{background:var(--card-background);border:1px solid var(--border-color);border-radius:14px;padding:1rem}.ec-header{align-items:center;display:flex;gap:.5rem;margin-bottom:.9rem}.ec-header__icon{color:#ff9f0a;font-size:1rem}.ec-header__title{color:var(--text-color);flex:1 1;font-size:.95rem;font-weight:700;margin:0}.ec-header__sub{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;color:var(--secondary-color);font-size:.72rem;padding:2px 8px}.ec-list{display:flex;flex-direction:column;gap:.5rem}.ec-card{align-items:center;background:var(--input-background);border-left:4px solid var(--border-color);border-radius:10px;display:flex;gap:.8rem;justify-content:space-between;padding:.6rem .8rem;transition:transform .12s}.ec-card:hover{transform:translateX(2px)}.ec-card--today{background:#ff453a0f}.ec-card--today,.ec-card--urgent{border-left-color:#ff453a}.ec-card--soon{border-left-color:#ff9f0a}.ec-card--upcoming{border-left-color:#0a84ff}.ec-card--future{border-left-color:var(--border-color)}.ec-card--past{border-left-color:#30d158;opacity:.6}.ec-card__left{flex:1 1;min-width:0}.ec-card__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-color);display:-webkit-box;font-size:.85rem;font-weight:600;line-height:1.3;margin-bottom:3px;overflow:hidden}.ec-card__dates{align-items:center;color:var(--secondary-color);display:flex;font-size:.72rem;gap:4px}.ec-card__dates svg{font-size:.65rem}.ec-badge{align-items:center;border-radius:10px;display:flex;flex-direction:column;flex-shrink:0;gap:2px;justify-content:center;min-width:62px;padding:6px 8px;text-align:center}.ec-badge__icon{font-size:.7rem}.ec-badge__count{font-size:.78rem;font-weight:800;line-height:1}.ec-badge--today{background:#ff453a26;color:#ff453a}.ec-badge--urgent{background:#ff453a1f;color:#ff453a}.ec-badge--soon{background:#ff9f0a26;color:#c97800}.ec-badge--upcoming{background:#0a84ff1f;color:var(--primary-color)}.ec-badge--future{background:var(--input-background);border:1px solid var(--border-color);color:var(--secondary-color)}.ec-badge--past{background:#30d1581f;color:#1a8a3c}.ec-show-more{background:none;border:1px dashed var(--border-color);border-radius:8px;color:var(--secondary-color);cursor:pointer;font-size:.8rem;margin-top:.6rem;padding:6px;transition:all .12s;width:100%}.ec-show-more:hover{border-color:var(--primary-color);color:var(--primary-color)}.feedback-form-container{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 5px 10px var(--shadow-color);margin:2rem auto;max-width:600px;padding:1.5rem;width:90%}.feedback-form-container h3{color:var(--primary-color);font-size:1.5rem;margin-bottom:1.5rem;text-align:center}.feedback-form-container .message-box{margin-bottom:1rem}.feedback-form-container .form-group{margin-bottom:1rem;text-align:left}.feedback-form-container .form-group label{color:var(--text-color);display:block;font-weight:500;margin-bottom:.5rem}.feedback-form-container .form-group input[type=email],.feedback-form-container .form-group input[type=text],.feedback-form-container .form-group textarea{background-color:var(--input-background);border:1px solid var(--input-border);border-radius:6px;color:var(--text-color);font-size:1rem;margin-bottom:1rem;padding:.75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.feedback-form-container .form-group input[type=email]:focus,.feedback-form-container .form-group input[type=text]:focus,.feedback-form-container .form-group textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px rgba(var(--accent-color-rgb),.2);outline:none}.feedback-form-container .form-group textarea{min-height:100px;resize:vertical}.feedback-form-container button[type=submit]{border:none;border-radius:10px;cursor:pointer;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.feedback-form-container button[type=submit]:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.feedback-form-container button[type=submit]:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.feedback-form-container button[type=submit]:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.feedback-form-container button[type=submit]{background-color:var(--button-background);color:var(--button-text)}.feedback-form-container button[type=submit]:hover{background-color:var(--hover-background)}.feedback-form-container button[type=submit]{font-size:1rem;margin-top:1rem;padding:1rem;width:100%}.doubt-board{color:var(--text-color);padding:1rem}.db-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between;margin-bottom:1.2rem}.db-toolbar__left{align-items:baseline;display:flex;gap:.6rem}.db-toolbar__title{color:var(--primary-color);font-size:1.2rem;font-weight:700;margin:0}.db-toolbar__count{color:var(--secondary-color);font-size:.8rem}.db-toolbar__right{flex-wrap:wrap;gap:.6rem}.db-search,.db-toolbar__right{align-items:center;display:flex}.db-search{position:relative}.db-search__icon{color:var(--secondary-color);font-size:.85rem;left:9px;pointer-events:none;position:absolute}.db-search__input{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);font-size:.85rem;outline:none;padding:7px 28px 7px 30px;width:200px}.db-search__input:focus{border-color:var(--primary-color)}.db-search__clear{color:var(--secondary-color);cursor:pointer;font-size:.75rem;position:absolute;right:8px}.db-search__clear:hover{color:#ff453a}.db-filter{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);cursor:pointer;font-size:.85rem;outline:none;padding:7px 10px}.db-post-btn{align-items:center;background:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.88rem;font-weight:600;gap:5px;padding:7px 14px;white-space:nowrap}.db-post-btn:hover{opacity:.88}.db-empty,.db-loading{color:var(--secondary-color);font-size:.9rem;padding:3rem 1rem;text-align:center}.db-list{display:flex;flex-direction:column;gap:.75rem}.db-card{background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;transition:box-shadow .15s}.db-card:hover{box-shadow:0 2px 12px #00000014}.db-card--resolved{border-left:4px solid #30d158}.db-card--pinned{border-left:4px solid #f6c90e}.db-card__header{cursor:pointer;padding:.85rem 1rem}.db-card__header:hover{background:var(--input-background)}.db-card__meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.4rem}.db-card__title{font-size:1rem;font-weight:600;line-height:1.35;margin-bottom:.35rem}.db-card__info{align-items:center;color:var(--secondary-color);display:flex;flex-wrap:wrap;font-size:.78rem;gap:.4rem}.db-card__body{border-top:1px solid var(--border-color);padding:.8rem 1rem 1rem}.db-card__text{font-size:.9rem;line-height:1.6;margin-bottom:.8rem;white-space:pre-wrap}.db-card__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.db-dot{color:var(--border-color)}.db-expand-icon{color:var(--secondary-color);font-size:.8rem;margin-left:auto}.db-badge{align-items:center;border-radius:8px;display:inline-flex;font-size:.72rem;font-weight:700;gap:3px;padding:2px 8px}.db-badge--pin{background:#f6c90e26;color:#c9a000}.db-badge--resolved{background:#30d15826;color:#1a8a3c}.db-badge--subject{background:#0a84ff1f;color:var(--primary-color)}.db-action{align-items:center;background:var(--input-background);border:1px solid var(--border-color);border-radius:7px;color:var(--secondary-color);cursor:pointer;display:inline-flex;font-size:.8rem;gap:4px;padding:5px 10px;transition:all .12s}.db-action--active,.db-action:hover{border-color:var(--primary-color);color:var(--primary-color)}.db-action--active{background:#0a84ff1f}.db-action--resolved{background:#30d15814;border-color:#30d158;color:#1a8a3c}.db-action--delete:hover{border-color:#ff453a;color:#ff453a}.db-action--sm{font-size:.75rem;padding:3px 8px}.db-action--confirm{background:#ff453a2e!important;border-color:#ff453a!important;color:#ff453a!important;font-weight:700}.db-answers{border-top:1px solid var(--border-color);margin-bottom:.8rem;padding-top:.8rem}.db-answers__heading{color:var(--secondary-color);font-size:.82rem;font-weight:700;letter-spacing:.05em;margin-bottom:.7rem;text-transform:uppercase}.db-answer{background:var(--input-background);border-left:3px solid var(--border-color);border-radius:8px;margin-bottom:.5rem;padding:.65rem .8rem}.db-answer--admin{border-left-color:var(--primary-color)}.db-answer__author{align-items:center;color:var(--text-color);display:flex;font-size:.8rem;gap:.4rem;margin-bottom:.3rem}.db-answer__admin-icon{color:var(--primary-color);font-size:.85rem}.db-answer__time{color:var(--secondary-color);font-weight:400;margin-left:4px}.db-answer__body{font-size:.88rem;line-height:1.55;margin-bottom:.4rem;white-space:pre-wrap}.db-answer__footer{display:flex;gap:.4rem}.db-answer-box{display:flex;flex-direction:column;gap:.5rem;margin-top:.8rem}.db-answer-box__input{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;color:var(--text-color);font-family:inherit;font-size:.88rem;outline:none;padding:8px 10px;resize:vertical;width:100%}.db-answer-box__input:focus{border-color:var(--primary-color)}.db-answer-box__btn{align-self:flex-end;background:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:7px 18px}.db-answer-box__btn:disabled{cursor:default;opacity:.5}.db-answer-box__btn:hover:not(:disabled){opacity:.88}.db-modal-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:999}.db-modal{background:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 20px 60px #0000004d;max-width:500px;padding:1.5rem;width:100%}.db-modal__title{color:var(--primary-color);font-size:1.1rem;font-weight:700;margin-bottom:1rem}.db-modal__err{color:#ff453a;font-size:.82rem;margin-bottom:.6rem}.db-modal__label{color:var(--secondary-color);display:block;font-size:.8rem;font-weight:600;margin-bottom:.3rem;margin-top:.7rem}.db-modal__label:first-of-type{margin-top:0}.db-modal__input{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;color:var(--text-color);font-family:inherit;font-size:.88rem;outline:none;padding:8px 10px;width:100%}.db-modal__input:focus{border-color:var(--primary-color)}.db-modal__textarea{resize:vertical}.db-modal__actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:1.2rem}.db-modal__cancel{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);cursor:pointer;font-size:.85rem;padding:7px 16px}.db-modal__submit{background:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:7px 20px}.db-modal__submit:disabled{cursor:default;opacity:.6}.db-modal__submit:hover:not(:disabled){opacity:.88}.tt-error,.tt-loading{font-size:.9rem;padding:3rem 1rem}.tt-empty,.tt-error,.tt-loading{color:var(--secondary-color);text-align:center}.tt-empty{align-items:center;display:flex;flex-direction:column;padding:4rem 1rem}.tt-empty__icon{color:var(--primary-color);font-size:2.5rem;margin-bottom:1rem;opacity:.5}.tt-empty p{color:var(--text-color);font-size:1rem;font-weight:600;margin:0 0 .3rem}.tt-empty span{font-size:.85rem}.timetable-view{color:var(--text-color);padding:1rem}.tt-header{align-items:baseline;gap:.8rem}.tt-header__title{align-items:center;color:var(--primary-color);display:flex;font-size:1.2rem;font-weight:700;gap:.4rem;margin:0}.tt-header__meta{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;color:var(--secondary-color);font-size:.82rem;padding:2px 10px}.tt-today{background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;margin-bottom:1.2rem;padding:1rem}.tt-today__label{color:var(--primary-color);font-size:.82rem;font-weight:700;letter-spacing:.06em;margin-bottom:.7rem;text-transform:uppercase}.tt-today__slots{display:flex;flex-wrap:wrap;gap:.6rem}.tt-today__slot{background:var(--input-background);border-left:3px solid var(--primary-color);border-radius:0 8px 8px 0;flex:1 1;max-width:200px;min-width:130px;padding:.5rem .8rem}.tt-today__time{color:var(--secondary-color);font-size:.7rem;margin-bottom:2px}.tt-today__subject{font-size:.9rem;font-weight:700;margin-bottom:4px}.tt-today__detail{align-items:center;color:var(--secondary-color);display:flex;flex-wrap:wrap;font-size:.72rem;gap:.5rem}.tt-today__detail svg{font-size:.68rem}.tt-today__free{color:var(--secondary-color);font-size:.88rem;padding:.5rem 0}.tt-type-pill{border-radius:6px;display:inline-block;font-size:.68rem;font-weight:700;padding:1px 7px}.tt-grid-wrap{border:1px solid var(--border-color);border-radius:12px;overflow-x:auto}.tt-grid{border-collapse:collapse;min-width:640px;width:100%}.tt-grid td,.tt-grid th{border:1px solid var(--border-color)}.tt-grid__period-head{color:var(--secondary-color);font-size:.75rem;letter-spacing:.04em;padding:.6rem .8rem;text-transform:uppercase;width:80px}.tt-grid__day-head,.tt-grid__period-head{background:var(--input-background);font-weight:700;text-align:center}.tt-grid__day-head{color:var(--text-color);font-size:.82rem;padding:.6rem .5rem}.tt-grid__day-head--today{background:#0a84ff1a;color:var(--primary-color)}.tt-grid__period-cell{background:var(--input-background);padding:.4rem;text-align:center;vertical-align:middle}.tt-grid__cell{min-width:110px;padding:.4rem;vertical-align:top}.tt-grid__cell--today{background:#0a84ff0a}.tt-period-num{color:var(--text-color);font-size:.9rem;font-weight:700}.tt-period-time{color:var(--secondary-color);font-size:.65rem;margin-top:2px}.tt-slot{border-radius:0 0 6px 6px;border-top:3px solid #0000;height:100%;padding:.3rem .4rem}.tt-slot,.tt-slot--free{min-height:60px}.tt-slot__subject{color:var(--text-color);font-size:.82rem;line-height:1.25}.tt-slot__subject,.tt-slot__type{font-weight:700;margin-bottom:3px}.tt-slot__type{display:block;font-size:.68rem}.tt-slot__detail{align-items:center;color:var(--secondary-color);display:flex;font-size:.68rem;gap:3px;margin-top:2px}.tt-slot__detail svg{font-size:.65rem}.tt-section-tabs{display:flex;gap:6px}.tt-section-tab{background:var(--input-background);border:1px solid var(--border-color);border-radius:20px;color:var(--secondary-color);cursor:pointer;font-size:.8rem;font-weight:600;padding:5px 14px;transition:all .15s}.tt-section-tab--active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.tt-section-tab:disabled{cursor:not-allowed;opacity:.5}.tt-header{flex-wrap:wrap;justify-content:space-between;margin-bottom:1.2rem}.tt-header,.tt-header__left,.tt-header__right{align-items:center;display:flex;gap:10px}.tt-header__right{flex-wrap:wrap}.tt-cancel-btn,.tt-edit-btn,.tt-save-btn{align-items:center;border:1px solid #0000;border-radius:8px;cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:600;gap:5px;padding:6px 14px;transition:opacity .15s}.tt-cancel-btn:hover,.tt-edit-btn:hover,.tt-save-btn:hover{opacity:.85}.tt-cancel-btn:disabled,.tt-edit-btn:disabled,.tt-save-btn:disabled{cursor:not-allowed;opacity:.5}.tt-edit-btn{background:var(--input-background);border-color:var(--border-color);color:var(--text-color)}.tt-save-btn{background:var(--primary-color);color:#fff}.tt-cancel-btn{background:var(--input-background);border-color:var(--border-color);color:var(--secondary-color)}.tt-edit-actions{display:flex;gap:8px}.tt-save-msg{border-radius:8px;font-size:.85rem;font-weight:600;margin-bottom:.8rem;padding:6px 12px;text-align:center}.tt-save-msg--ok{background:#30d1581f;color:#30d158}.tt-save-msg--err{background:#ff453a1f;color:#ff453a}.tt-edit-hint{color:var(--secondary-color);font-size:.82rem;margin-bottom:1rem}.tt-edit-grid-wrap{overflow-x:auto}.tt-edit-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(6,1fr);min-width:900px}.tt-edit-day{display:flex;flex-direction:column;gap:8px}.tt-edit-day__label{border-bottom:1px solid var(--border-color);color:var(--secondary-color);font-size:.8rem;font-weight:700;letter-spacing:.05em;padding-bottom:4px;text-transform:uppercase}.tt-edit-slot{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;display:flex;flex-direction:column;gap:5px;padding:8px}.tt-edit-slot__time{color:var(--primary-color);font-size:.68rem;font-weight:700;margin-bottom:2px}.tt-edit-input,.tt-edit-select{background:var(--card-background);border:1px solid var(--border-color);border-radius:5px;box-sizing:border-box;color:var(--text-color);font-family:inherit;font-size:.75rem;outline:none;padding:4px 6px;width:100%}.tt-edit-input:focus,.tt-edit-select:focus{border-color:var(--primary-color)}.dashboard-page{margin:0 auto;max-width:1200px;width:100%}@media(max-width:575px){.dashboard-page{padding:1rem}}.dashboard-page h2{color:var(--primary-color);font-size:2rem;margin-bottom:2rem;text-align:center}@media(max-width:575px){.dashboard-page h2{font-size:1.5rem}}.dashboard-page .semester-section{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 5px 10px var(--shadow-color);margin-bottom:1.5rem;margin-top:1.5rem;padding:2rem;text-align:center}.dashboard-page .semester-section h2{color:var(--primary-color);font-size:2rem;margin-bottom:1.5rem}@media(max-width:575px){.dashboard-page .semester-section h2{font-size:1.5rem}}.dashboard-page .semester-section .subjects-grid{grid-gap:1.5rem;align-items:stretch;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));justify-content:center}@media(max-width:575px){.dashboard-page .semester-section .subjects-grid{gap:1rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}.dashboard-page .semester-section .no-subjects-message{color:var(--secondary-color);font-size:1rem;padding:1.5rem}.dashboard-page .dashboard-error{margin-top:1.5rem;text-align:center}.dashboard-page .navigation-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.dashboard-page .navigation-header .back-button{border:none;border-radius:10px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.dashboard-page .navigation-header .back-button:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.dashboard-page .navigation-header .back-button:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.dashboard-page .navigation-header .back-button:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.dashboard-page .navigation-header .back-button{background-color:var(--secondary-color);color:var(--button-text)}.dashboard-page .navigation-header .back-button:hover{background-color:var(--secondary-button-hover-background)}.dashboard-page .navigation-header .back-button{align-items:center;display:flex;font-size:.875rem;gap:.25rem;padding:.5rem 1rem}.dashboard-page .navigation-header .current-category-title,.dashboard-page .navigation-header .current-file-title,.dashboard-page .navigation-header .current-subject-title{color:var(--primary-color);font-size:1.5rem;margin:0;text-align:right}@media(max-width:575px){.dashboard-page .navigation-header .current-category-title,.dashboard-page .navigation-header .current-file-title,.dashboard-page .navigation-header .current-subject-title{font-size:1.25rem}}.home-view{align-items:flex-start;display:flex;gap:1.2rem}.home-view .semester-section{flex:1 1;min-width:0}.home-view .home-widgets{flex-shrink:0;width:280px}@media(max-width:900px){.home-view .home-widgets{width:100%}.home-view{flex-direction:column}}.spinner-container{align-items:center;display:flex;height:100%;justify-content:center;min-height:200px;padding:2rem;width:100%}.loading-spinner{animation:spin 1s linear infinite;border:5px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);height:50px;width:50px}.admin-section{background-color:var(--card-background);border-radius:10px;box-shadow:0 5px 10px var(--shadow-color);margin-bottom:2rem;padding:2rem}.admin-section h3{color:var(--primary-color);font-size:1.5rem;margin-bottom:1.5rem;text-align:center}.admin-section .message-box{margin-bottom:1rem}.admin-section .admin-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.admin-section .admin-form .form-group{text-align:left}.admin-section .admin-form .form-group label{color:var(--text-color);display:block;font-weight:500;margin-bottom:.5rem}.admin-section .admin-form .form-group input[type=email],.admin-section .admin-form .form-group input[type=number],.admin-section .admin-form .form-group input[type=password],.admin-section .admin-form .form-group input[type=text],.admin-section .admin-form .form-group input[type=url],.admin-section .admin-form .form-group select,.admin-section .admin-form .form-group textarea{background-color:var(--input-background);border:1px solid var(--input-border);border-radius:6px;color:var(--text-color);font-size:1rem;margin-bottom:1rem;padding:.75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.admin-section .admin-form .form-group input[type=email]:focus,.admin-section .admin-form .form-group input[type=number]:focus,.admin-section .admin-form .form-group input[type=password]:focus,.admin-section .admin-form .form-group input[type=text]:focus,.admin-section .admin-form .form-group input[type=url]:focus,.admin-section .admin-form .form-group select:focus,.admin-section .admin-form .form-group textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px rgba(var(--accent-color-rgb),.2);outline:none}.admin-section .admin-form .form-group input[type=file]{background:none;border:none;color:var(--text-color);padding:.75rem 0}.admin-section .admin-form .form-group.checkbox-group{align-items:center;display:flex;gap:.75rem}.admin-section .admin-form .form-group.checkbox-group input[type=checkbox]{margin-bottom:0;width:auto}.admin-section .admin-form .form-group.checkbox-group label{cursor:pointer;margin-bottom:0}.admin-section .admin-form .form-actions{display:flex;gap:1rem;justify-content:center;margin-top:1rem}.admin-section .admin-form .form-actions button{border:none;border-radius:10px;cursor:pointer;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.admin-section .admin-form .form-actions button:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.admin-section .admin-form .form-actions button:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.admin-section .admin-form .form-actions button:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.admin-section .admin-form .form-actions button{background-color:var(--button-background);color:var(--button-text)}.admin-section .admin-form .form-actions button:hover{background-color:var(--hover-background)}.admin-section .admin-form .form-actions button{font-size:1rem;padding:1rem 1.5rem}.admin-section .admin-form .form-actions button.btn-secondary{border:none;border-radius:10px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.admin-section .admin-form .form-actions button.btn-secondary:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.admin-section .admin-form .form-actions button.btn-secondary:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.admin-section .admin-form .form-actions button.btn-secondary:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.admin-section .admin-form .form-actions button.btn-secondary{background-color:var(--secondary-color);color:var(--button-text)}.admin-section .admin-form .form-actions button.btn-secondary:hover{background-color:var(--secondary-button-hover-background)}.admin-section .list-heading{color:var(--primary-color);font-size:1.5rem;margin-bottom:1.5rem;margin-top:2rem;text-align:center}.admin-section .no-items-message{color:var(--secondary-color);padding:1.5rem;text-align:center}.admin-section .data-table{background-color:var(--input-background);border-collapse:collapse;margin-top:1rem;width:100%}.admin-section .data-table td,.admin-section .data-table th{border:1px solid var(--border-color);color:var(--text-color);padding:.75rem 1rem;text-align:left}@media(max-width:575px){.admin-section .data-table td,.admin-section .data-table th{font-size:.875rem;padding:.5rem}}.admin-section .data-table th{background-color:var(--primary-color);color:var(--button-text);font-weight:600;position:-webkit-sticky;position:sticky;top:0;z-index:1}.admin-section .data-table tbody tr:nth-child(2n){background-color:var(--table-even-row-background)}.admin-section .data-table tbody tr:hover{background-color:var(--hover-background);color:var(--button-text);cursor:pointer}.admin-section .data-table .btn-delete,.admin-section .data-table .btn-edit{border:none;border-radius:10px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.admin-section .data-table .btn-delete:hover,.admin-section .data-table .btn-edit:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.admin-section .data-table .btn-delete:active,.admin-section .data-table .btn-edit:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.admin-section .data-table .btn-delete:disabled,.admin-section .data-table .btn-edit:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.admin-section .data-table .btn-delete,.admin-section .data-table .btn-edit{font-size:.875rem;margin-right:.5rem;padding:.5rem .75rem}.admin-section .data-table .btn-delete.btn-edit,.admin-section .data-table .btn-edit.btn-edit{background-color:var(--accent-color);color:var(--button-text)}.admin-section .data-table .btn-delete.btn-edit:hover,.admin-section .data-table .btn-edit.btn-edit:hover{background-color:var(--accent-button-hover-background)}.admin-section .data-table .btn-delete.btn-delete,.admin-section .data-table .btn-edit.btn-delete{background-color:var(--delete-button-background);color:var(--button-text)}.admin-section .data-table .btn-delete.btn-delete:hover,.admin-section .data-table .btn-edit.btn-delete:hover{background-color:var(--delete-button-hover-background)}.admin-section .upload-material-btn{background-color:#1e90ff}.admin-section .access-logs-table-container,.admin-section .announcements-table-container,.admin-section .subjects-table-container,.admin-section .users-table-container{max-height:500px;overflow-y:auto}.admin-section .access-logs-table-container::-webkit-scrollbar,.admin-section .announcements-table-container::-webkit-scrollbar,.admin-section .subjects-table-container::-webkit-scrollbar,.admin-section .users-table-container::-webkit-scrollbar{height:8px;width:8px}.admin-section .access-logs-table-container::-webkit-scrollbar-thumb,.admin-section .announcements-table-container::-webkit-scrollbar-thumb,.admin-section .subjects-table-container::-webkit-scrollbar-thumb,.admin-section .users-table-container::-webkit-scrollbar-thumb{background-color:var(--primary-color);border-radius:10px}.admin-section .access-logs-table-container::-webkit-scrollbar-thumb:hover,.admin-section .announcements-table-container::-webkit-scrollbar-thumb:hover,.admin-section .subjects-table-container::-webkit-scrollbar-thumb:hover,.admin-section .users-table-container::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}.admin-section .access-logs-table-container::-webkit-scrollbar-track,.admin-section .announcements-table-container::-webkit-scrollbar-track,.admin-section .subjects-table-container::-webkit-scrollbar-track,.admin-section .users-table-container::-webkit-scrollbar-track{background-color:var(--card-background);border-radius:10px}.admin-section .access-logs-table-container,.admin-section .announcements-table-container,.admin-section .subjects-table-container,.admin-section .users-table-container{border:1px solid var(--border-color);border-radius:10px}.admin-section .subject-list-logo{border-radius:6px;height:40px;object-fit:contain;vertical-align:middle;width:40px}.admin-section .edit-user-modal{align-items:center;background-color:#0009;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:2000}.admin-section .edit-user-modal .modal-content{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 5px 10px var(--shadow-color);margin-bottom:1.5rem;max-width:600px;padding:2rem;position:relative;width:90%}.admin-section .edit-user-modal .modal-content h4{color:var(--primary-color);margin-bottom:1.5rem;text-align:center}.admin-timetable{color:var(--text-color);padding:1rem}.att-header{align-items:center;display:flex;gap:.5rem;margin-bottom:1rem}.att-header__icon{color:var(--primary-color);font-size:1.1rem}.att-header__title{font-size:1.1rem;font-weight:700;margin:0}.att-controls{align-items:flex-end;display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:1rem}.att-label{color:var(--secondary-color);display:flex;flex-direction:column;font-size:.78rem;font-weight:600;gap:.3rem;letter-spacing:.04em;text-transform:uppercase}.att-input{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);font-size:.88rem;outline:none;padding:7px 10px;width:80px}.att-input:focus{border-color:var(--primary-color)}.att-load-btn{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);cursor:pointer;font-size:.88rem;font-weight:600;height:36px;padding:7px 18px}.att-load-btn:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.att-load-btn:disabled{cursor:default;opacity:.5}.att-msg{border-radius:8px;font-size:.85rem;margin-bottom:.8rem;padding:.6rem 1rem}.att-msg--success{background:#30d1581f;border:1px solid #30d1584d;color:#1a8a3c}.att-msg--error{background:#ff453a1a;border:1px solid #ff453a4d;color:#ff453a}.att-grid-wrap{border:1px solid var(--border-color);border-radius:12px;margin-bottom:1rem;overflow-x:auto}.att-grid{border-collapse:collapse;min-width:700px;width:100%}.att-grid td,.att-grid th{border:1px solid var(--border-color)}.att-grid__th{background:var(--input-background);color:var(--secondary-color);font-size:.78rem;font-weight:700;letter-spacing:.04em;padding:.5rem .4rem;text-align:center;text-transform:uppercase}.att-grid__th--period{width:80px}.att-grid__period{background:var(--input-background);padding:.4rem;text-align:center;vertical-align:middle}.att-grid__cell{min-width:110px;padding:0;vertical-align:top}.att-period-num{font-size:.9rem;font-weight:700}.att-period-time{color:var(--secondary-color);font-size:.65rem;margin-top:2px}.att-slot-header{align-items:center;cursor:pointer;display:flex;gap:.3rem;justify-content:space-between;min-height:36px;padding:.4rem .5rem;transition:background .12s}.att-slot-header:hover{background:var(--input-background)}.att-slot-header--filled{background:#0a84ff0a}.att-slot-subject{color:var(--text-color);flex:1 1;font-size:.78rem;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-slot-subject em{color:var(--secondary-color);font-style:normal;font-weight:400}.att-slot-chevron{color:var(--secondary-color);flex-shrink:0;font-size:.65rem;transition:transform .15s}.att-slot-chevron--open{transform:rotate(180deg)}.att-slot-form{background:var(--input-background);border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:.3rem;padding:.4rem}.att-field{background:var(--card-background);border:1px solid var(--border-color);border-radius:6px;box-sizing:border-box;color:var(--text-color);font-family:inherit;font-size:.78rem;outline:none;padding:5px 7px;width:100%}.att-field:focus{border-color:var(--primary-color)}.att-clear-btn{background:#ff453a14;border:1px solid #ff453a33;border-radius:6px;color:#ff453a;cursor:pointer;font-size:.72rem;padding:4px;width:100%}.att-clear-btn:hover{background:#ff453a29}.att-save-btn{align-items:center;background:var(--primary-color);border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:.92rem;font-weight:700;gap:.4rem;padding:10px 24px;transition:opacity .15s}.att-save-btn:hover:not(:disabled){opacity:.88}.att-save-btn:disabled{cursor:default;opacity:.5}.admin-notif{color:var(--text-color);max-width:560px;padding:1rem}.an-header{align-items:center;display:flex;gap:.5rem;margin-bottom:.5rem}.an-header__icon{color:var(--primary-color);font-size:1.1rem}.an-header__title{font-size:1.1rem;font-weight:700;margin:0}.an-desc{color:var(--secondary-color);font-size:.85rem;line-height:1.5;margin-bottom:1.1rem}.an-msg{border-radius:8px;font-size:.85rem;margin-bottom:.9rem;padding:.6rem 1rem}.an-msg--success{background:#30d1581f;border:1px solid #30d1584d;color:#1a8a3c}.an-msg--error{background:#ff453a1a;border:1px solid #ff453a4d;color:#ff453a}.an-form{display:flex;flex-direction:column;gap:.2rem}.an-label{color:var(--secondary-color);display:block;font-size:.78rem;font-weight:600;letter-spacing:.04em;margin-top:.7rem;text-transform:uppercase}.an-label:first-of-type{margin-top:0}.an-input{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;color:var(--text-color);font-family:inherit;font-size:.88rem;outline:none;padding:8px 10px;width:100%}.an-input:focus{border-color:var(--primary-color)}.an-textarea{resize:vertical}.an-checkbox-row{align-items:center;color:var(--text-color);cursor:pointer;display:flex;font-size:.88rem;gap:.5rem;margin-top:.8rem}.an-checkbox-row input[type=checkbox]{accent-color:var(--primary-color);cursor:pointer;height:15px;width:15px}.an-send-btn{align-items:center;background:var(--primary-color);border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:.92rem;font-weight:700;gap:.4rem;justify-content:center;margin-top:1rem;padding:10px 24px;transition:opacity .15s}.an-send-btn:hover:not(:disabled){opacity:.88}.an-send-btn:disabled{cursor:default;opacity:.5}.an-preview{border-top:1px solid var(--border-color);margin-top:1.4rem;padding-top:1rem}.an-preview__label{color:var(--secondary-color);font-size:.72rem;font-weight:700;letter-spacing:.06em;margin-bottom:.5rem;text-transform:uppercase}.an-preview__card{align-items:flex-start;background:var(--card-background);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 2px 8px #0000000f;display:flex;gap:.7rem;padding:.8rem 1rem}.an-preview__icon{color:var(--primary-color);flex-shrink:0;font-size:1rem;margin-top:2px}.an-preview__title{color:var(--text-color);font-size:.88rem;font-weight:600;margin-bottom:3px}.an-preview__body{color:var(--secondary-color);font-size:.8rem;line-height:1.4}.admin-page{margin:0 auto;max-width:1200px;padding:1.5rem;width:100%}@media(max-width:575px){.admin-page{padding:1rem}}.admin-page h2{color:var(--primary-color);font-size:2rem;margin-bottom:2rem;text-align:center}@media(max-width:575px){.admin-page h2{font-size:1.5rem}}.admin-page .admin-tabs{align-items:center;background-color:var(--card-background);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 1px 3px var(--shadow-color);display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-bottom:1.5rem;padding:1rem}.admin-page .admin-tabs .tab-button{border:none;border-radius:10px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.admin-page .admin-tabs .tab-button:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.admin-page .admin-tabs .tab-button:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.admin-page .admin-tabs .tab-button:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.admin-page .admin-tabs .tab-button{background-color:var(--secondary-color);background-color:var(--input-background);color:var(--button-text);color:var(--text-color);flex-grow:1;font-size:.875rem;padding:.5rem 1rem;text-align:center;white-space:nowrap}.admin-page .admin-tabs .tab-button:hover{background-color:var(--secondary-button-hover-background);color:var(--button-text)}.admin-page .admin-tabs .tab-button.active{background-color:var(--primary-color);box-shadow:0 3px 6px var(--shadow-color);color:var(--button-text);font-weight:600;transform:translateY(-1px)}.file-viewer-container{background-color:var(--background-color);display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1001}.viewer-header{align-items:center;background-color:var(--card-background);box-shadow:0 3px 6px var(--shadow-color);color:var(--text-color);display:flex;flex-shrink:0;gap:1rem;justify-content:space-between;padding:.75rem 2rem;z-index:1010}.viewer-header h3{font-size:1.25rem;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-header .header-toolbar{align-items:center;display:flex;flex-shrink:0;gap:.75rem}.viewer-header .header-toolbar .toolbar-button{border:none;border-radius:10px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.viewer-header .header-toolbar .toolbar-button:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.viewer-header .header-toolbar .toolbar-button:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.viewer-header .header-toolbar .toolbar-button:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);opacity:.6;transform:translateY(0)}.viewer-header .header-toolbar .toolbar-button{background-color:var(--secondary-color);color:var(--button-text)}.viewer-header .header-toolbar .toolbar-button:hover{background-color:var(--secondary-button-hover-background)}.viewer-header .header-toolbar .toolbar-button{align-items:center;display:flex;font-size:.875rem;gap:.25rem;padding:.5rem .75rem}.viewer-header .header-toolbar .toolbar-button:disabled{cursor:not-allowed;opacity:.5}.viewer-header .header-toolbar .toolbar-separator{border-left:1px solid var(--border-color);height:20px}.viewer-header .header-toolbar .page-input{background-color:var(--input-background);border:1px solid var(--input-border);border-radius:6px;color:var(--text-color);font-size:.875rem;padding:.25rem .5rem;text-align:center;width:42px}.viewer-header .header-toolbar .page-count{color:var(--secondary-color);font-size:.875rem;white-space:nowrap}.viewer-header .header-toolbar .zoom-level{font-feature-settings:"tnum";color:var(--secondary-color);font-size:.875rem;font-variant-numeric:tabular-nums;min-width:40px;text-align:center}.viewer-header .close-viewer-btn{border:none;border-radius:10px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.viewer-header .close-viewer-btn:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.viewer-header .close-viewer-btn:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.viewer-header .close-viewer-btn:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.viewer-header .close-viewer-btn{background-color:var(--secondary-color);color:var(--button-text)}.viewer-header .close-viewer-btn:hover{background-color:var(--secondary-button-hover-background)}.viewer-header .close-viewer-btn{align-items:center;background-color:var(--delete-button-background);display:flex;flex-shrink:0;font-size:.875rem;gap:.5rem;padding:.5rem .75rem}.viewer-header .close-viewer-btn:hover{background-color:var(--delete-button-hover-background);color:var(--button-text)}.viewer-content{display:flex;flex-grow:1;overflow:hidden;padding:1rem}.pdf-viewer{flex-direction:column;height:100%}.pdf-document-wrapper,.pdf-viewer{align-items:center;display:flex;justify-content:flex-start;width:100%}.pdf-document-wrapper{flex-grow:1;overflow:auto}.pdf-document-wrapper::-webkit-scrollbar{height:8px;width:8px}.pdf-document-wrapper::-webkit-scrollbar-thumb{background-color:var(--primary-color);border-radius:10px}.pdf-document-wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}.pdf-document-wrapper::-webkit-scrollbar-track{background-color:var(--card-background);border-radius:10px}.pdf-document-wrapper{background-color:var(--input-background);border:1px solid var(--border-color);border-radius:10px}.pdf-document-wrapper.scroll-view{align-items:center;flex-direction:column;justify-content:flex-start}.pdf-document-wrapper.single-page-view{flex-direction:column;justify-content:center}.pdf-document-wrapper .react-pdf__Document{align-items:center;display:flex;flex-direction:column;padding:1rem;width:100%}.pdf-document-wrapper .react-pdf__Document .react-pdf__Page{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 3px 6px var(--shadow-color);margin-bottom:1rem}.pdf-document-wrapper .react-pdf__Document .react-pdf__Page canvas{height:auto!important;width:100%!important}.image-viewer{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.image-viewer .viewed-image{box-shadow:0 5px 10px var(--shadow-color);max-height:100%;max-width:100%;object-fit:contain}.url-viewer{display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.url-viewer .url-topbar{align-items:center;background:var(--card-background);border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0;gap:.75rem;padding:.5rem 1rem}.url-viewer .url-topbar .url-topbar-domain{color:var(--secondary-color);flex:1 1;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.url-viewer .url-topbar .url-topbar-link{align-items:center;border:1px solid var(--primary-color);border-radius:6px;color:var(--primary-color);display:flex;flex-shrink:0;font-size:.875rem;gap:6px;padding:4px 10px;text-decoration:none;transition:background .15s ease;white-space:nowrap}.url-viewer .url-topbar .url-topbar-link:hover{background:var(--primary-color);color:var(--button-text)}.url-viewer .external-iframe{border:none;flex-grow:1;opacity:0;transition:opacity .3s ease;width:100%}.url-viewer .external-iframe.iframe-loaded{opacity:1}.url-viewer .url-blocked-card{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:1rem;justify-content:center;margin:0 auto;max-width:560px;padding:2rem;text-align:center}.url-viewer .url-blocked-card .url-blocked-icon{align-items:center;background:var(--warning-color);border-radius:50%;color:var(--warning-text-color);display:flex;font-size:2.5rem;height:64px;justify-content:center;width:64px}.url-viewer .url-blocked-card h3{color:var(--text-color);font-size:1.5rem;margin:0}.url-viewer .url-blocked-card p{color:var(--secondary-color);font-size:.875rem;line-height:1.6;margin:0}.url-viewer .url-blocked-card .url-checking-spinner{animation:spin .9s linear infinite;border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);height:36px;width:36px}.url-viewer .url-blocked-card .url-hint{color:var(--secondary-color);font-size:.75rem;margin-top:.75rem;opacity:.7}.url-viewer .url-blocked-card .url-link-card{align-items:center;background:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 3px 6px var(--shadow-color);display:flex;flex-wrap:wrap;gap:1rem;padding:1rem 1.5rem;width:100%}.url-viewer .url-blocked-card .url-link-card .url-favicon{border-radius:4px;flex-shrink:0;height:24px;width:24px}.url-viewer .url-blocked-card .url-link-card .url-link-info{display:flex;flex:1 1;flex-direction:column;gap:3px;min-width:0;text-align:left}.url-viewer .url-blocked-card .url-link-card .url-link-info .url-link-title{color:var(--text-color);font-size:.875rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.url-viewer .url-blocked-card .url-link-card .url-link-info .url-link-domain{color:var(--secondary-color);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.url-viewer .url-blocked-card .url-link-card .url-open-btn{align-items:center;background:var(--primary-color);border-radius:6px;color:var(--button-text);display:flex;flex-shrink:0;font-size:.875rem;font-weight:500;gap:6px;padding:.5rem 1rem;text-decoration:none;transition:background .15s ease;white-space:nowrap}.url-viewer .url-blocked-card .url-link-card .url-open-btn:hover{background:var(--hover-background)}.error-message,.no-pdf-data{background-color:var(--error-color);border-radius:6px;box-shadow:0 3px 6px var(--shadow-color);color:var(--error-text);margin:1.5rem auto;max-width:500px;padding:1.5rem;text-align:center;width:90%}@keyframes mdp-fadein{0%{opacity:0}to{opacity:1}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.offline-copy-badge{background-color:var(--warning-color);border-radius:999px;color:var(--warning-text-color);display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.02em;margin-left:.6rem;padding:.15rem .55rem;vertical-align:middle}:root{--react-pdf-annotation-layer:1;--annotation-unfocused-field-background:url('data:image/svg+xml;charset=utf-8,<svg width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" style="fill:rgba(0,54,255,.13)"/></svg>');--input-focus-border-color:Highlight;--input-focus-outline:1px solid Canvas;--input-unfocused-border-color:#0000;--input-disabled-border-color:#0000;--input-hover-border-color:#000;--link-outline:none}@media screen and (forced-colors:active){:root{--input-focus-border-color:CanvasText;--input-unfocused-border-color:ActiveText;--input-disabled-border-color:GrayText;--input-hover-border-color:Highlight;--link-outline:1.5px solid LinkText}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .textWidgetAnnotation :is(input,textarea):required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{left:0;pointer-events:none;position:absolute;top:0;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translateX(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{height:100%;position:absolute;width:100%}.annotationLayer section{box-sizing:border-box;margin:0;pointer-events:auto;position:absolute;text-align:left;text-align:initial;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:none;outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{font-size:1em;height:100%;left:0;position:absolute;top:0;width:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{background:#ff0;box-shadow:0 2px 10px #ff0;opacity:.2}.annotationLayer .textAnnotation img{cursor:pointer;height:100%;left:0;position:absolute;top:0;width:100%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input,.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .textWidgetAnnotation :is(input,textarea){background-image:url('data:image/svg+xml;charset=utf-8,<svg width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" style="fill:rgba(0,54,255,.13)"/></svg>');background-image:var(--annotation-unfocused-field-background);border:2px solid #0000;border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px*var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .textWidgetAnnotation :is(input,textarea):required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled]{background:none;border:2px solid #0000;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .textWidgetAnnotation :is(input,textarea):hover{border:2px solid #000;border:2px solid var(--input-hover-border-color)}.annotationLayer .buttonWidgetAnnotation.checkBox input:hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .textWidgetAnnotation :is(input,textarea):hover{border-radius:2px}.annotationLayer .choiceWidgetAnnotation select:focus,.annotationLayer .textWidgetAnnotation :is(input,textarea):focus{background:none;border:2px solid Highlight;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:1px solid Canvas;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-color:initial;background-image:none}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid Highlight;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:1px solid Canvas;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid Highlight;border:2px solid var(--input-focus-border-color);outline:1px solid Canvas;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{font-size:calc(9px*var(--total-scale-factor));min-width:calc(180px*var(--total-scale-factor));pointer-events:none;position:absolute;width:100%}.annotationLayer .popup{word-wrap:break-word;background-color:#ff9;border-radius:calc(2px*var(--total-scale-factor));box-shadow:0 calc(2px*var(--total-scale-factor)) calc(5px*var(--total-scale-factor)) #888;cursor:pointer;font:message-box;margin-left:calc(5px*var(--total-scale-factor));max-width:calc(180px*var(--total-scale-factor));padding:calc(6px*var(--total-scale-factor));pointer-events:auto;position:absolute;white-space:normal}.annotationLayer .popup>*{font-size:calc(9px*var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px*var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid #333;margin-top:calc(2px*var(--total-scale-factor));padding-top:calc(2px*var(--total-scale-factor))}.annotationLayer .richText>*{font-size:calc(9px*var(--total-scale-factor));white-space:pre-wrap}.annotationLayer .caretAnnotation,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .fileAttachmentAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .highlightAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .lineAnnotation svg line,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .squareAnnotation svg rect,.annotationLayer .squigglyAnnotation,.annotationLayer .stampAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .underlineAnnotation{cursor:pointer}.annotationLayer section svg{height:100%;left:0;position:absolute;top:0;width:100%}.annotationLayer .annotationTextContent{color:#0000;height:100%;opacity:0;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.annotationLayer .annotationTextContent span{display:inline-block;width:100%}:root{--react-pdf-text-layer:1;--highlight-bg-color:#b400aa;--highlight-selected-bg-color:#006400}@media screen and (forced-colors:active){:root{--highlight-bg-color:Highlight;--highlight-selected-bg-color:ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translateX(-100%)}.textLayer{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;inset:0;line-height:1;overflow:hidden;position:absolute;text-align:left;text-align:initial;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:#0000;cursor:text;margin:0;position:absolute;transform-origin:0 0;white-space:pre}.textLayer span.markedContent{height:0;top:0}.textLayer .highlight{background-color:#b400aa;background-color:var(--highlight-bg-color);border-radius:4px;margin:-1px;padding:1px}.textLayer .highlight.appended{position:static}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:#006400;background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:#0000}.textLayer .endOfContent{cursor:default;display:block;inset:100% 0 0;position:absolute;-webkit-user-select:none;user-select:none;z-index:-1}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{display:none;height:0;left:0;position:absolute;top:0;width:0}.material-detail-page{background-color:var(--background-color);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:2000}.material-detail-page .mdp-layer{height:100%;inset:0;position:absolute;width:100%;will-change:opacity}.material-detail-page .material-detail-page-error,.material-detail-page .material-detail-page-info{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 10px 20px var(--shadow-color);left:50%;max-width:400px;padding:2rem;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);width:80%}.not-found-container{align-items:center;background-color:var(--background-color);color:var(--text-color);display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:2rem;text-align:center}.not-found-container h1{color:var(--primary-color);font-size:8rem;margin-bottom:1rem}@media(max-width:575px){.not-found-container h1{font-size:6rem}}.not-found-container p{color:var(--secondary-color);font-size:1.25rem;margin-bottom:1.5rem}.not-found-container .home-link{border:none;border-radius:10px;cursor:pointer;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.not-found-container .home-link:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.not-found-container .home-link:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.not-found-container .home-link:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.not-found-container .home-link{background-color:var(--button-background);color:var(--button-text)}.not-found-container .home-link:hover{background-color:var(--hover-background)}.not-found-container .home-link{font-size:1rem;padding:.75rem 1.5rem;text-decoration:none}.auth-container{align-items:center;background-color:var(--background-color);display:flex;justify-content:center;min-height:calc(100vh - 4rem);padding:2rem 0}.auth-card{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 5px 10px var(--shadow-color);margin-bottom:1.5rem;max-width:450px;padding:2rem;text-align:center;width:90%}.auth-card h2{color:var(--primary-color);font-size:2rem;margin-bottom:1.5rem}@media(max-width:575px){.auth-card h2{font-size:1.5rem}}.auth-card .message-box{margin-bottom:1rem}.auth-card .form-group{margin-bottom:1rem;text-align:left}.auth-card .form-group label{color:var(--text-color);display:block;font-weight:500;margin-bottom:.5rem}.auth-card .form-group input[type=email],.auth-card .form-group input[type=password],.auth-card .form-group input[type=text]{background-color:var(--input-background);border:1px solid var(--input-border);border-radius:6px;color:var(--text-color);font-size:1rem;margin-bottom:1rem;padding:.75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.auth-card .form-group input[type=email]:focus,.auth-card .form-group input[type=password]:focus,.auth-card .form-group input[type=text]:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px rgba(var(--accent-color-rgb),.2);outline:none}.auth-card button[type=submit]{border:none;border-radius:10px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.auth-card button[type=submit]:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.auth-card button[type=submit]:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.auth-card button[type=submit]:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.auth-card button[type=submit]{background-color:var(--button-background);color:var(--button-text)}.auth-card button[type=submit]:hover{background-color:var(--hover-background)}.auth-card button[type=submit]{font-size:1.25rem;margin-top:1rem;padding:1rem;width:100%}.auth-card .auth-link{color:var(--text-color);font-size:.875rem;margin-top:1.5rem}.auth-card .auth-link a{color:var(--accent-color);font-weight:600;text-decoration:none}.auth-card .auth-link a:hover{text-decoration:underline}.html-viewer-container{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 5px 10px var(--shadow-color);display:flex;flex-direction:column;height:calc(100vh - 2rem);margin-bottom:1.5rem;margin-top:1.5rem;padding:2rem}.html-viewer-container .html-viewer-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.html-viewer-container .html-viewer-header .back-button{border:none;border-radius:10px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}.html-viewer-container .html-viewer-header .back-button:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}.html-viewer-container .html-viewer-header .back-button:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}.html-viewer-container .html-viewer-header .back-button:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.html-viewer-container .html-viewer-header .back-button{background-color:var(--secondary-color);color:var(--button-text)}.html-viewer-container .html-viewer-header .back-button:hover{background-color:var(--secondary-button-hover-background)}.html-viewer-container .html-viewer-header .back-button{align-items:center;display:flex;font-size:.875rem;gap:.25rem;padding:.5rem 1rem}.html-viewer-container .html-viewer-header h3{color:var(--primary-color);flex-grow:1;font-size:1.5rem;margin:0;text-align:right}@media(max-width:575px){.html-viewer-container .html-viewer-header h3{font-size:1.25rem;text-align:center}}.html-viewer-container .html-viewer-content{background-color:var(--input-background);border:1px solid var(--border-color);border-radius:10px;flex-grow:1;overflow:hidden}.html-viewer-container .html-viewer-content .html-iframe{background-color:var(--card-background);border:none;height:100%;width:100%}.app-boot-loader{align-items:center;background:#0d1117;display:flex;font-family:Courier New,Lucida Console,monospace;inset:0;justify-content:center;position:fixed;z-index:9999}.abl-card{max-width:540px;padding:32px 28px;width:100%}.abl-logo-row{gap:12px;margin-bottom:28px}.abl-logo-icon,.abl-logo-row{align-items:center;display:flex}.abl-logo-icon{border:2px solid #1d9e75;border-radius:6px;color:#1d9e75;flex-shrink:0;font-size:12px;font-weight:700;height:34px;justify-content:center;letter-spacing:-.5px;width:34px}.abl-logo-name{color:#e6edf3;font-size:14px;font-weight:700;letter-spacing:.8px}.abl-logo-sub{color:#8b949e;font-size:11px;letter-spacing:.2px;margin-top:2px}.abl-log{display:flex;flex-direction:column;justify-content:flex-end;margin-bottom:24px;max-height:144px;min-height:144px;overflow:hidden}.abl-log-line{animation:abl-fadein .2s ease both;display:flex;font-size:11.5px;gap:8px;line-height:1.9}@keyframes abl-fadein{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.abl-ts{color:#484f58;flex-shrink:0}.abl-tag{flex-shrink:0;font-weight:700}.abl-tag.tag-ok{color:#1d9e75}.abl-tag.tag-info{color:#58a6ff}.abl-tag.tag-warn{color:#d29922}.abl-tag.tag-run{color:#8b949e}.abl-msg{color:#c9d1d9}.abl-cursor{animation:abl-blink 1s step-end infinite;background:#1d9e75;display:inline-block;height:13px;margin-left:3px;vertical-align:text-bottom;width:7px}@keyframes abl-blink{0%,to{opacity:1}50%{opacity:0}}.abl-bar-wrap{margin-bottom:16px}.abl-bar-labels{display:flex;justify-content:space-between;margin-bottom:7px}.abl-bar-label,.abl-bar-pct{color:#8b949e;font-size:11px;letter-spacing:.2px}.abl-bar-track{background:#21262d;border-radius:2px;height:3px;overflow:hidden}.abl-bar-fill{background:#1d9e75;border-radius:2px;height:100%;transition:width .5s ease}.abl-status-row{align-items:center;display:flex;gap:8px}.abl-dot{animation:abl-pulse 1.2s ease infinite;background:#1d9e75;border-radius:50%;flex-shrink:0;height:6px;width:6px}.abl-dot.done{animation:none}@keyframes abl-pulse{0%,to{opacity:1}50%{opacity:.3}}.abl-status-text{color:#8b949e;font-size:11px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background-color);color:var(--text-color);display:flex;flex-direction:column;font-family:Geist,sans-serif;font-optical-sizing:auto;font-style:normal;font-weight:400;line-height:1.6;min-height:100vh;overflow-x:hidden;transition:background-color .3s ease-in-out,color .3s ease-in-out}body.dark{--background-color:#121212;--text-color:#e0e0e0;--primary-color:#0a84ff;--secondary-color:#8e8e93;--accent-color:#32d74b;--accent-color-rgb:50,215,75;--border-color:#2c2c2e;--card-background:#1c1c1e;--input-background:#2c2c2e;--input-border:#48484a;--button-background:#0a84ff;--button-text:#fff;--button-text-hover-lightened:#e0e0e0;--hover-background:#006ee6;--secondary-button-hover-background:#6a6a6e;--accent-button-hover-background:#28a745;--delete-button-background:#ff453a;--delete-button-hover-background:#cc312b;--success-color:#1f3a2f;--success-text:#4cd964;--error-color:#3a1f1f;--error-text:#ff453a;--info-color:#1f2f3a;--info-text:#5ac8fa;--warning-color:#3a3a1f;--warning-text-color:#ffd60a;--shadow-color:#0009;--scrollbar-thumb-hover:#006ee6;--table-even-row-background:#252527;--gradient-start:#1c1c1e;--gradient-end:#29292b}body.light{--background-color:#f0f2f5;--text-color:#1a1a1c;--primary-color:#007aff;--secondary-color:#6a6a6e;--accent-color:#007aff;--accent-color-rgb:0,122,255;--border-color:#e0e0e0;--card-background:#fff;--input-background:#fff;--input-border:#d2d2d7;--button-background:#007aff;--button-text:#fff;--button-text-hover-lightened:#e0e0e0;--hover-background:#005bb5;--secondary-button-hover-background:#5a5a5e;--accent-button-hover-background:#005bb5;--delete-button-background:#ff3b30;--delete-button-hover-background:#cc2925;--success-color:#e6ffed;--success-text:#1a7f37;--error-color:#fff0f0;--error-text:#a00000;--info-color:#e0f2f7;--info-text:#0056b3;--warning-color:#fff9e6;--warning-text-color:#856404;--shadow-color:#0000000d;--scrollbar-thumb-hover:#005bb5;--table-even-row-background:#f8f8f8;--gradient-start:#f8f9fa;--gradient-end:#e9ecef}h1,h2,h3,h4,h5,h6{color:var(--primary-color);font-weight:600;margin-bottom:.75rem}h1{font-size:3.5rem}h2{font-size:2.5rem}h3{font-size:2rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1.125rem}p{color:var(--text-color);font-size:1rem;margin-bottom:1rem}a{color:var(--accent-color);text-decoration:none;transition:-webkit-text-decoration .15s ease-in-out;transition:text-decoration .15s ease-in-out;transition:text-decoration .15s ease-in-out,-webkit-text-decoration .15s ease-in-out}a:hover{text-decoration:underline}input[type=email],input[type=number],input[type=password],input[type=text],input[type=url],select,textarea{background-color:var(--input-background);border:1px solid var(--input-border);border-radius:6px;color:var(--text-color);font-size:1rem;padding:.75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px rgba(var(--accent-color-rgb),.2);outline:none}input[type=email],input[type=number],input[type=password],input[type=text],input[type=url],select,textarea{margin-bottom:1rem}button{border:none;border-radius:10px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;transition:background-color .15s ease-in-out,transform .1s ease,box-shadow .15s ease-in-out}button:hover{box-shadow:0 3px 6px var(--shadow-color);transform:translateY(-1px)}button:active{box-shadow:0 1px 3px var(--shadow-color);transform:translateY(0)}button:disabled{background-color:var(--input-border);box-shadow:none;color:var(--secondary-color);cursor:not-allowed;opacity:.6;transform:translateY(0)}.container{margin:0 auto;max-width:1200px;padding:1.5rem 0;width:90%}.flex-center{align-items:center;display:flex;justify-content:center}.text-center{text-align:center}.message-box{border:1px solid #0000;border-radius:6px;font-size:.875rem;margin-bottom:1.5rem;padding:1rem}.message-box.success{background-color:var(--success-color);border-color:var(--success-color);color:var(--success-text)}.message-box.error{background-color:var(--error-color);border-color:var(--error-color);color:var(--error-text)}.message-box.info{background-color:var(--info-color);border-color:var(--info-color);color:var(--info-text)}.message-box.warning{background-color:var(--warning-color);border-color:var(--warning-color);color:var(--warning-text-color)}.app-container{flex-direction:column;width:100%}.app-container,.app-loading{display:flex;min-height:100vh}.app-loading{align-items:center;color:var(--primary-color);font-size:1.5rem;justify-content:center}
/*# sourceMappingURL=main.d09906b4.css.map*/