:root{--primary-color: #2f3e46;--secondary-color: #3e5053;--accent-color: #84dcc6;--background-color: #f0f2f5;--text-color: #333;--white: #fff;--button-bg: var(--primary-color);--button-hover-bg: var(--secondary-color);--button-text: var(--white);--auth-bg: var(--white);--header-bg: var(--primary-color);--header-text: var(--white);--footer-bg: var(--primary-color);--footer-text: var(--white);--sidebar-bg: var(--primary-color);--sidebar-text: var(--white);--exercise-bg: var(--white);--exercise-text: var(--text-color);--profile-ct: #f0f2f5;--profile-bg: var(--white);--profile-b: var(--primary-color);--profile-text: var(--text-color);--nav-b: var(--primary-color);--viewer-bg: var(--white);--viewer-text: var(--text-color);--course-card-bg: var(--white);--course-card-text: #000000de;--course-card-border: #d0d0d0;--splash-bg: rgba(255, 255, 255, .95);--header-height: 4rem;--footer-height: 2.5rem}html[data-theme=dark]{--primary-color: #1e1e1e;--secondary-color: #333;--accent-color: #84dcc6;--background-color: #121212;--text-color: #e0e0e0;--white: #373a40;--nav-b: #4a4a4a;--button-bg: var(--primary-color);--button-hover-bg: var(--secondary-color);--button-text: var(--white);--auth-bg: #181818;--profile-ct: #abaaaa21;--profile-b: #bac6c712;--header-bg: var(--primary-color);--header-text: var(--white);--footer-bg: var(--primary-color);--footer-text: var(--white);--sidebar-bg: var(--primary-color);--sidebar-text: var(--white);--exercise-bg: #1e1e1e;--exercise-text: var(--white);--profile-bg: #1e1e1e;--profile-text: var(--white);--viewer-bg: #212020;--viewer-text: var(--white);--course-card-bg: #1f1f1f;--course-card-text: #000000b0;--course-card-border: #333333;--splash-bg: rgba(30, 30, 30, .95)}.header{position:fixed;top:0;left:0;width:100%;height:var(--header-height);display:flex;align-items:center;background-color:var(--primary-color);color:var(--white);padding:0 1rem;z-index:1000;box-shadow:0 2px 8px #0000000a}.header-content{display:flex;justify-content:space-between;width:100%;align-items:center}.footer{position:fixed;bottom:0;left:0;width:100%;height:var(--footer-height);background-color:var(--primary-color);color:var(--white);text-align:center;font-size:.95rem;line-height:var(--footer-height);z-index:1000;box-shadow:0 -2px 8px #0000000a}.logo-container{display:flex;align-items:center;gap:.5rem}.logo{width:40px;height:40px;object-fit:contain}.main-content{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:calc(100vh - var(--header-height) - var(--footer-height));width:100vw;background-color:var(--background-color);padding:calc(var(--header-height) + 2rem) 0 calc(var(--footer-height) + 2rem) 0;box-sizing:border-box}.main-content.admin-flex{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2rem;width:100%;max-width:1600px;margin:0 auto}.admin-block{width:100%;max-width:500px;background:var(--white);border-radius:.5rem;box-shadow:0 0 10px #00000012;margin:0 auto;display:flex;flex-direction:column;align-items:center;padding:2rem 1.5rem}.admin-flex{display:flex;flex-direction:row;justify-content:center;align-items:flex-start;gap:2rem;width:100%;max-width:1600px;margin:0 auto}#courses-list,#units-list{width:100%;max-width:100%;background:#f8f9fa;border-radius:.4em;padding:.7em 1em;box-shadow:0 1px 4px #2f3e4612;margin-bottom:1em;overflow-x:auto;overflow-y:auto;max-height:220px;list-style:none}#courses-list li,#units-list li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:.4em .2em;border-bottom:1px solid #ececec;font-size:1em;color:#2f3e46;transition:background .2s;border-radius:.2em}#courses-list li:last-child,#units-list li:last-child{border-bottom:none}#courses-list li:hover,#units-list li:hover{background:#e9ecef}@media(max-width:600px){#courses-list,#units-list{padding:.5em;font-size:.95em;max-height:140px}}.global-course-selector{gap:.5rem}.global-course-selector label{font-weight:700;color:var(--text-color);align-self:flex-start;margin-bottom:.5rem}.global-course-selector select{width:100%;padding:.75rem;border:1px solid #ccc;border-radius:.25rem;font-size:1rem;background-color:#fff;color:#333}.global-course-selector select:focus{border-color:var(--accent-color);outline:none}form{display:flex;flex-direction:column;gap:1rem}form input,form select,form button{padding:.75rem;border:1px solid #ccc;border-radius:.25rem;font-size:1rem}form input:focus,form select:focus{border-color:var(--accent-color);outline:none}form button{background-color:var(--primary-color);color:var(--white);border:none;cursor:pointer;transition:background-color .2s ease}form button:hover{background-color:var(--secondary-color)}button,form button,.login-button,.profile-button{background-color:var(--primary-color)!important;color:var(--white)!important;border:none;border-radius:.3125rem;cursor:pointer;transition:background-color .2s ease}button:hover,form button:hover,.login-button:hover,.profile-button:hover{background-color:var(--secondary-color)!important}button{padding:.625rem 1.25rem;font-size:1rem;background-color:var(--primary-color);border:none;color:var(--white);border-radius:.3125rem;cursor:pointer;transition:background-color .2s ease}button:hover{background-color:var(--secondary-color)}.course-title-button{display:flex;align-items:center;gap:.5rem;background:none;color:var(--white);border:none;font-size:1.5rem;cursor:pointer;padding:0;transition:color .2s;text-align:left}.course-title-button:hover{color:var(--accent-color)}.course-title-button .logo{width:30px;height:30px;object-fit:contain}.login-button,.profile-button{background-color:var(--primary-color);color:var(--white);border:none;padding:.5rem 1rem;border-radius:.25rem;cursor:pointer;transition:background-color .2s}.login-button:hover,.profile-button:hover{background-color:var(--secondary-color)}.file-input-wrapper{display:flex;align-items:center;gap:.5em;width:100%;max-width:100%;overflow:hidden;position:relative}input[type=file]{width:120px;min-width:0;flex-shrink:0;opacity:0;position:absolute;left:0;top:0;height:100%;cursor:pointer;z-index:2}.file-custom-btn{display:inline-block;background:var(--primary-color);color:var(--white);padding:.5em 1.1em;border-radius:.3125rem;cursor:pointer;font-size:1em;font-weight:500;border:none;transition:background .2s;box-shadow:0 2px 6px #2f3e4612;-webkit-user-select:none;user-select:none;position:relative;z-index:1}.file-custom-btn:hover{background:var(--secondary-color)}.file-name-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%;font-size:.97em;color:#555;margin-left:.7em}.splash-spinner{display:flex;align-items:center;justify-content:center}.splash-spinner svg{display:block}.splash-spinner circle{stroke:url(#splash-spinner-gradient);stroke-width:5;stroke-linecap:round;filter:drop-shadow(0 0 8px #0078d7cc)}.splash-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 3.5rem;background:#fffffff2;border-radius:1.5rem;box-shadow:0 8px 32px #2c3e501a;animation:splash-pop .6s cubic-bezier(.23,1.02,.56,.98)}@keyframes splash-pop{0%{transform:scale(.92) translateY(30px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.splash-logo-anim{margin-bottom:1.5rem}.splash-title{font-size:1.25rem;font-weight:600;color:#2f3e46;letter-spacing:.01em;text-shadow:0 2px 8px rgba(44,62,80,.07)}#units-list li{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.splash-screen{position:fixed;inset:0;z-index:10000;background:#2f3e46d9;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .35s}.splash-screen.splash-visible{opacity:1;pointer-events:all}.splash-spinner-wrap{display:flex;align-items:center;justify-content:center}.splash-spinner{display:inline-block;width:54px;height:54px}@media(max-width:1200px){.admin-flex{flex-direction:column;align-items:center}}@media(max-width:600px){:root{--header-height: 3.2rem;--footer-height: 2.2rem}.header,.footer{font-size:.9rem}.admin-block{max-width:100%;padding:1rem .5rem;margin-bottom:1.2rem;margin-left:auto;margin-right:auto}.main-content{padding:1rem 0}input[type=file]{font-size:.95em}}@media(max-width:480px){.main-content section{padding:.5rem .2rem}.main-content h2{font-size:1rem}button,form button{font-size:.9rem;padding:.5rem .7rem}}.admin-auth-error{max-width:500px;margin:4rem auto 0;background:#fff3f3;color:#c0392b;padding:2rem 1.5rem;border-radius:.5rem;text-align:center;font-size:1.15rem;box-shadow:0 2px 16px #00000012}
