*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{display:flex;min-height:100vh}.sidebar{background-color:#e9eaee;border-radius:12px;box-shadow:0 6px 20px #12182814;color:#1f2a44;height:calc(100vh - 40px);left:20px;overflow-y:auto;padding:12px 0;position:fixed;top:20px;transform:translateX(0);transition:transform .3s ease-in-out;width:260px;z-index:1000}.sidebar-header{align-items:center;border-bottom:1px solid #1f2a4414;display:flex;justify-content:space-between;padding:12px 16px}.sidebar-brand{color:#0b005f;font-size:1.5rem;font-weight:800}.sidebar-toggle{background:#0000;border:none;border-radius:6px;color:#1f2a44;cursor:pointer;padding:6px}.sidebar-nav{display:flex;flex-direction:column;gap:6px;padding:8px}.sidebar-link{align-items:center;border-radius:10px;color:#1f2a44;display:flex;gap:10px;margin:0 6px;padding:12px 14px;text-decoration:none;transition:background-color .2s ease,color .2s ease}.sidebar-link:hover{background:#d7e9ea}.sidebar-link.active{background:#8cd0d2;color:#0b005f;font-weight:700}.main-content{background-color:#f8fafc;flex:1 1;margin-left:0;min-height:100vh;width:100%}.main-content.with-sidebar{margin-left:310px}.sidebar.mobile-hidden{box-shadow:none;pointer-events:none;transform:translateX(-120%);visibility:hidden}.main-content.sidebar-hidden{margin-left:0}.mobile-overlay{background:#00000080;bottom:0;left:0;opacity:0;position:fixed;right:0;top:0;transition:opacity .3s ease-in-out,visibility .3s ease-in-out;visibility:hidden;z-index:999}.mobile-overlay.active{opacity:1;visibility:visible}.header{align-items:center;background-color:#0b005f;border-bottom-left-radius:0;border-top-left-radius:0;box-shadow:0 8px 24px #0b005f40;color:#fff;display:flex;justify-content:space-between;padding:14px 24px}.header button{align-items:center;display:inline-flex;height:36px;justify-content:center;width:36px}.user-menu{background:#fff;border-radius:10px;box-shadow:0 8px 24px #12182826;color:#0b005f;min-width:140px;padding:6px;position:absolute;right:0;top:36px;z-index:1100}.user-menu-item{align-items:center;background:#0000;border:none;border-radius:8px;color:#0b005f;cursor:pointer;display:flex;font-weight:600;gap:8px;padding:10px 12px;text-align:left;width:100%}.user-menu-item:hover{background:#8cd0d2}.user-toggle{align-items:center;background:#0000;border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;gap:8px;padding:6px 8px;transition:background-color .2s ease}.user-toggle:hover{background:#8cd0d24d}.user-toggle-label{font-size:14px}.content-area{margin:20px auto;max-width:1120px;padding:30px}.content-area.wide{max-width:none}.btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.btn-primary{background-color:#06b6d4;color:#fff}.btn-primary:hover{background-color:#0891b2}.btn-secondary{background-color:#6b7280;color:#fff}.btn-secondary:hover{background-color:#4b5563}.btn-view{align-items:center;background-color:#cfcfd2;border:2px solid #1a146b;border-radius:24px;box-shadow:inset 0 2px 0 #ffffff73,0 2px 0 #1a146b;color:#0b005f;cursor:pointer;display:inline-flex;font-size:14px;font-weight:800;justify-content:center;letter-spacing:1px;min-width:120px;padding:8px 18px;text-transform:uppercase;transition:background-color .15s ease,box-shadow .15s ease,transform .05s ease}.btn-view:hover{background-color:#c4c4c8;box-shadow:inset 0 2px 0 #ffffff8c,0 2px 0 #1a146b,0 0 0 3px #1a146b14}.btn-download{align-items:center;background-color:#d0d0d3;border:2px solid #1a146b;border-radius:24px;box-shadow:inset 0 2px 0 #ffffff73,0 2px 0 #1a146b;color:#0b005f;cursor:pointer;display:inline-flex;font-size:14px;font-weight:800;justify-content:center;letter-spacing:1px;min-width:120px;padding:8px 18px;text-transform:uppercase;transition:background-color .15s ease,box-shadow .15s ease,transform .05s ease}.btn-download span,.btn-view span{margin-left:8px}.btn-download:hover{background-color:#c6c6ca;box-shadow:inset 0 2px 0 #ffffff8c,0 2px 0 #1a146b,0 0 0 3px #1a146b14}.card{border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;padding:20px}.card,.table{background:#fff}.table{border:2px solid #6d54b5;border-collapse:collapse;border-radius:16px;box-shadow:0 6px 0 #6d54b526;overflow:hidden;width:100%}.table .actions{align-items:center;display:flex;flex-direction:row;gap:12px;justify-content:flex-end}.table td,.table th{border-bottom:1px solid;border-image:linear-gradient(90deg,#6d54b5 0,#fff) 1;padding:12px 15px;text-align:left}.table th:last-child{padding-right:24px;text-align:center;width:360px}.table td:last-child{padding-right:24px;text-align:right}.table th{background-color:#f9fafb;font-weight:600}.table td,.table th{color:#0b005f}.table tbody tr:hover{background-color:#f9fafb}.form-group{margin-bottom:20px}.form-label{color:#374151;display:block;font-weight:500;margin-bottom:5px}.form-input{border:1px solid #d1d5db;border-radius:6px;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.form-input:focus{border-color:#06b6d4;box-shadow:0 0 0 3px #06b6d41a;outline:none}.text-center{text-align:center}.text-right{text-align:right}.mb-4{margin-bottom:1rem}.mt-4{margin-top:1rem}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}@media (max-width:480px){.container{flex-direction:column}.sidebar{height:auto;padding:10px 0;position:relative;transform:translateX(0);transition:transform .3s ease-in-out;width:100%}.sidebar.mobile-hidden{transform:translateX(-100%)}.main-content{margin-left:0;width:100%}.mobile-overlay{background:#00000080;bottom:0;left:0;opacity:0;position:fixed;right:0;top:0;transition:opacity .3s ease-in-out,visibility .3s ease-in-out;visibility:hidden;z-index:999}.mobile-overlay.active{opacity:1;visibility:visible}.header{align-items:flex-start;flex-direction:column;gap:10px;padding:10px 15px}.content-area{padding:15px}.table{font-size:12px}.table td,.table th{padding:8px 6px}.btn{font-size:12px;padding:8px 12px}.card{margin-bottom:15px;padding:15px}}@media (min-width:481px) and (max-width:768px){.sidebar{transform:translateX(0);transition:transform .3s ease-in-out;width:200px}.sidebar.mobile-hidden{transform:translateX(-100%)}.main-content{margin-left:200px;transition:margin-left .3s ease-in-out}.main-content.sidebar-hidden{margin-left:0}.content-area{padding:20px}.header{padding:12px 20px}.table td,.table th{padding:10px 8px}.mobile-overlay{background:#00000080;bottom:0;left:0;opacity:0;position:fixed;right:0;top:0;transition:opacity .3s ease-in-out,visibility .3s ease-in-out;visibility:hidden;z-index:999}.mobile-overlay.active{opacity:1;visibility:visible}}@media (min-width:769px) and (max-width:1024px){.sidebar{transform:translateX(0);transition:transform .3s ease-in-out;width:220px}.sidebar.mobile-hidden{transform:translateX(-100%)}.main-content{margin-left:220px;transition:margin-left .3s ease-in-out}.main-content.sidebar-hidden{margin-left:0}.content-area{padding:25px}.mobile-overlay{background:#00000080;bottom:0;left:0;opacity:0;position:fixed;right:0;top:0;transition:opacity .3s ease-in-out,visibility .3s ease-in-out;visibility:hidden;z-index:999}.mobile-overlay.active{opacity:1;visibility:visible}}@media (min-width:1025px){.sidebar{transform:translateX(0);transition:transform .3s ease-in-out;width:260px}.sidebar.mobile-hidden{transform:translateX(-100%)}.main-content{margin-left:310px;transition:margin-left .3s ease-in-out}.main-content.sidebar-hidden{margin-left:0}.content-area{padding:30px}.mobile-overlay{background:#00000080;bottom:0;left:0;opacity:0;position:fixed;right:0;top:0;transition:opacity .3s ease-in-out,visibility .3s ease-in-out;visibility:hidden;z-index:999}.mobile-overlay.active{opacity:1;visibility:visible}}@media (hover:none) and (pointer:coarse){.btn{min-height:44px;min-width:44px}.table td,.table th{padding:12px 8px}.form-input{font-size:16px;min-height:44px}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.btn{border-width:.5px}}.App{text-align:left}.auth-container{background:linear-gradient(135deg,#667eea,#764ba2);display:flex;min-height:100vh}.auth-left{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000'%3E%3Cpath d='M0 0h1000v1000H0z'/%3E%3Ccircle fill='%2300f' cx='200' cy='200' r='100'/%3E%3Ccircle fill='%23f0f' cx='800' cy='300' r='150'/%3E%3Ccircle fill='%23ff0' cx='400' cy='700' r='120'/%3E%3C/svg%3E") 50%/cover;flex:1 1;position:relative}.auth-right{align-items:center;background:#f8fafc;display:flex;flex:1 1;justify-content:center;padding:40px}.auth-form{max-width:400px;width:100%}.auth-title{color:#1f2937;font-size:2rem;font-weight:700;margin-bottom:.5rem}.auth-subtitle{color:#6b7280;margin-bottom:2rem}.auth-form-group{margin-bottom:1.5rem}.auth-label{color:#374151;display:block;font-weight:500;margin-bottom:.5rem}.auth-input{background:#374151;border:1px solid #d1d5db;border-radius:6px;color:#fff;font-size:16px;padding:12px;width:100%}.auth-input:focus{border-color:#06b6d4;box-shadow:0 0 0 3px #06b6d41a;outline:none}.auth-options{justify-content:space-between;margin-bottom:1.5rem}.auth-checkbox,.auth-options{align-items:center;display:flex}.auth-checkbox{gap:.5rem}.auth-link{color:#06b6d4;font-size:14px;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-button{background:#06b6d4;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:12px;transition:background-color .2s;width:100%}.auth-button:hover{background:#0891b2}.auth-switch{color:#6b7280;margin-top:1.5rem;text-align:center}.auth-switch-link{color:#06b6d4;font-weight:500;text-decoration:none}.auth-switch-link:hover{text-decoration:underline}.dashboard-cards{grid-gap:36px;display:grid;gap:36px;grid-template-columns:repeat(3,1fr);margin:20px 0 24px}.dashboard-card{background:#0b005f;border-radius:12px;box-shadow:0 8px 0 #0b005f40;color:#fff;padding:26px 28px;text-align:left}.dashboard-card-title{font-size:22px;font-weight:700;letter-spacing:.5px;margin-bottom:6px;opacity:.85}.dashboard-card-value{font-size:1.75rem;font-weight:800;margin-bottom:12px}.dashboard-card-icon{font-size:0;line-height:0;margin-top:8px}.timetable-container{background:#fff;border-radius:10px;box-shadow:0 6px 0 #6d54b526;padding:18px 18px 10px}.timetable-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.timetable-title{color:#0b005f;font-size:1.5rem;font-weight:700}.timetable-table{border-collapse:collapse;font-size:12px;width:100%}.timetable-table td,.timetable-table th{border:1px solid #e5e7eb;padding:8px 4px;text-align:left;vertical-align:top}.timetable-table th{background-color:#0b005f;color:#fff;font-weight:600;text-align:center}.timetable-table td{background-color:#fff;min-height:60px}.timetable-period{background-color:#f3f4f6;font-weight:600;text-align:center;width:80px}.timetable-subject{word-wrap:break-word;font-size:10px;line-height:1.2}.timetable-teacher{color:#6b7280;font-size:9px;margin-top:2px}.upload-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin:0 auto;max-width:600px;padding:30px}.upload-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.upload-title{color:#1f2937;font-size:1.5rem;font-weight:700}.upload-close{background:none;border:none;color:#6b7280;cursor:pointer;font-size:1.5rem}.upload-area{align-items:center;border:2px dashed #d1d5db;border-radius:8px;display:flex;flex-direction:column;justify-content:center;margin-bottom:20px;padding:40px;text-align:center;transition:border-color .2s}.upload-area:hover{border-color:#06b6d4}.upload-area.dragover{background-color:#f0f9ff;border-color:#06b6d4}.upload-icon{color:#9ca3af;font-size:3rem;margin-bottom:10px}.upload-text{color:#6b7280;margin-bottom:5px}.upload-subtext{color:#9ca3af;font-size:14px}.upload-browse-btn{margin-top:15px}.upload-separator{align-items:center;display:flex;margin:20px 0}.upload-separator:after,.upload-separator:before{background:#e5e7eb;content:"";flex:1 1;height:1px}.upload-separator span{color:#6b7280;font-weight:500;padding:0 20px}.upload-url-section{margin-top:20px}.upload-url-title{color:#374151;font-size:1.1rem;font-weight:600;margin-bottom:10px}.upload-url-input{display:flex;gap:10px;margin-bottom:10px}.upload-url-list{margin-top:15px}.upload-url-item{align-items:center;background:#f9fafb;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:8px;padding:10px}.upload-url-info{align-items:center;display:flex;gap:10px}.upload-url-avatar{align-items:center;background:#06b6d4;border-radius:50%;color:#fff;display:flex;font-size:12px;font-weight:700;height:30px;justify-content:center;width:30px}.upload-url-delete{background:none;border:none;color:#ef4444;cursor:pointer;padding:5px}.upload-loading{align-items:center;display:flex;flex-direction:column;padding:40px}.upload-spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top-color:#06b6d4;height:40px;margin-bottom:15px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.auth-input:disabled{cursor:not-allowed;opacity:.6}.auth-button:disabled{cursor:not-allowed;opacity:.7}code{background:#f3f4f6;border-radius:4px;font-family:Courier New,monospace;font-size:12px;padding:2px 6px}.upload-error{align-items:center;display:flex;flex-direction:column;padding:40px}.upload-error-icon{color:#ef4444;font-size:3rem;margin-bottom:15px}@media (max-width:480px){.auth-container{flex-direction:column;min-height:100vh}.auth-left{height:150px;min-height:150px}.auth-right{flex:1 1;padding:20px 15px}.auth-form{max-width:100%}.auth-title{font-size:1.5rem}.auth-subtitle{font-size:14px}.auth-input{font-size:16px;padding:14px 12px}.auth-button{font-size:16px;padding:14px}.auth-options{align-items:flex-start;flex-direction:column;gap:10px}.dashboard-cards{gap:15px;grid-template-columns:1fr;margin-bottom:20px}.dashboard-card{padding:15px}.dashboard-card-title{font-size:20px}.dashboard-card-value{font-size:1.5rem}.timetable-container{overflow-x:auto;padding:15px}.timetable-header{align-items:flex-start;flex-direction:column;gap:15px}.timetable-title{font-size:1.2rem}.timetable-table{font-size:10px;min-width:600px}.timetable-table td,.timetable-table th{padding:6px 4px;white-space:nowrap}.timetable-period{width:60px}.timetable-subject{font-size:9px;line-height:1.1}.timetable-teacher{font-size:8px}.upload-container{margin:0 10px;padding:20px 15px}.upload-header{align-items:flex-start;flex-direction:column;gap:15px}.upload-title{font-size:1.2rem}.upload-area{padding:30px 20px}.upload-icon{font-size:2.5rem}.upload-url-input,.upload-url-item{flex-direction:column;gap:10px}.upload-url-info,.upload-url-item{align-items:flex-start}.upload-url-info{flex-direction:column;gap:5px}}@media (min-width:481px) and (max-width:768px){.auth-container{flex-direction:column}.auth-left{height:200px}.auth-right{padding:30px 25px}.auth-form{max-width:450px}.dashboard-cards{gap:20px;grid-template-columns:repeat(2,1fr)}.timetable-table{font-size:11px}.timetable-table td,.timetable-table th{padding:6px 4px}.upload-container{padding:25px}.upload-url-input{flex-direction:row}}@media (min-width:769px) and (max-width:1024px){.auth-container{flex-direction:row}.auth-left{flex:0.6 1}.auth-right{flex:0.4 1;padding:40px 30px}.dashboard-cards{grid-template-columns:repeat(3,1fr)}.timetable-table{font-size:12px}.timetable-table td,.timetable-table th{padding:8px 6px}}@media (min-width:1025px){.auth-container{flex-direction:row}.auth-left{flex:1 1}.auth-right{flex:1 1;padding:40px}.dashboard-cards{grid-template-columns:repeat(3,1fr)}.timetable-table{font-size:12px}.timetable-table td,.timetable-table th{padding:8px 4px}}@media (hover:none) and (pointer:coarse){.auth-button,.auth-input{min-height:48px}.dashboard-card{min-height:120px}.btn{min-height:44px;min-width:44px}}@media (max-height:500px) and (orientation:landscape){.auth-container{flex-direction:row}.auth-left{flex:0.4 1;height:100vh}.auth-right{flex:0.6 1;padding:20px}.auth-form{max-width:100%}}@media (prefers-contrast:high){.auth-input{border-width:2px}.auth-button{border:2px solid #0891b2}.dashboard-card{border:2px solid #fff3}}@media (prefers-reduced-motion:reduce){.auth-button,.btn,.upload-area{transition:none}.upload-spinner{animation:none}}
/*# sourceMappingURL=main.2493e17c.css.map*/