:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.lesson-ticker{--accent: #007bff;--now-y: 50%;width:100%;overflow:hidden}@media(max-width:768px){.lesson-ticker{display:table;width:100%;table-layout:fixed;border-spacing:8px 0}}.card-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.card-label .label-text{display:inline-block;font-size:12px;font-weight:600;text-transform:uppercase;padding:4px 8px;border-radius:4px;letter-spacing:.5px}.card-label .label-time{font-size:13px;font-weight:600;color:#007bff;font-variant-numeric:tabular-nums}.card-time{font-size:14px;font-weight:600;color:var(--accent);margin-bottom:6px;font-variant-numeric:tabular-nums;display:none}.card-title{font-size:16px;font-weight:500;color:#2c3e50;line-height:1.4;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.ticker-track{display:flex;gap:16px;padding:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;border-radius:8px;background-color:#f8f9fa;border:1px solid #e0e0e0}@media(max-width:768px){.ticker-track{display:table-cell;width:70%;background:none;border:none;padding:0;gap:0;vertical-align:middle;overflow:visible}.ticker-track .ticker-card.current~.ticker-card.next,.ticker-track .ticker-card.current~.ticker-card.empty.rest,.ticker-track .ticker-card.next~.ticker-card.empty.rest{display:none!important}.ticker-track .ticker-card.current:not(:first-child){display:none!important}.ticker-track .ticker-card.next:not(:first-child){display:none!important}.ticker-track .ticker-card.empty.rest:not(:first-child){display:none!important}}@media(min-width:1024px){.ticker-track{flex-direction:column;overflow-x:visible;overflow-y:auto;scroll-snap-type:y mandatory;max-height:calc(100vh - 200px)}}.ticker-track::-webkit-scrollbar{height:6px;width:6px}.ticker-track::-webkit-scrollbar-track{background:#f1f3f4;border-radius:3px}.ticker-track::-webkit-scrollbar-thumb{background:#c1c7cd;border-radius:3px}.ticker-track::-webkit-scrollbar-thumb:hover{background:#a8b2ba}.ticker-card{flex:0 0 240px;background:#fff;border-radius:8px;padding:14px;box-shadow:0 2px 8px #0000001a;scroll-snap-align:start;border:2px solid transparent;position:relative;transition:all .2s ease}@media(min-width:1024px){.ticker-card{flex:0 0 auto;width:100%}}.ticker-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.ticker-card.previous{opacity:.45;border-color:#6c757d}.ticker-card.previous .card-label .label-text{color:#6c757d;background-color:#f8f9fa}.ticker-card.current{border-color:var(--accent);box-shadow:0 2px 8px #007bff33}.ticker-card.current .card-label .label-text{color:#fff;background-color:var(--accent)}.ticker-card.current:before{content:"";position:absolute;left:0;right:0;top:0;height:var(--now-y);background:linear-gradient(135deg,#007bff1a,#007bff26);border-radius:8px 8px 0 0;z-index:1}.ticker-card.next{opacity:.8;border-color:#28a745}.ticker-card.next .card-label .label-text{color:#fff;background-color:#28a745}.ticker-card.empty{display:flex;align-items:center;justify-content:center;min-height:120px;opacity:.6}.ticker-card.empty .card-label .label-text{font-size:18px;color:#6c757d;background:none}@media(max-width:768px){.ticker-card.empty{min-height:80px}.ticker-card.empty .card-label .label-text{font-size:14px}.ticker-card.empty .card-title{font-size:13px!important;margin-top:8px!important}}@media(max-width:480px){.ticker-card.empty{min-height:70px}.ticker-card.empty .card-label .label-text{font-size:12px}.ticker-card.empty .card-title{font-size:12px!important;margin-top:6px!important}}.ticker-card.empty.rest{background:linear-gradient(135deg,#fff8e1,#f3e5f5);border:2px solid #4caf50;opacity:1}.ticker-card.empty.rest .card-label .label-text{background:linear-gradient(135deg,#4caf50,#81c784);color:#fff;font-size:16px;margin-bottom:0;padding:8px 16px;border-radius:20px}@media(max-width:768px){.ticker-card.empty.rest .card-label .label-text{font-size:13px;padding:6px 12px}}@media(max-width:480px){.ticker-card.empty.rest .card-label .label-text{font-size:12px;padding:5px 10px}}.ticker-card.break{flex:0 0 220px;background:#fff;border-color:#ff6b35}@media(min-width:1024px){.ticker-card.break{flex:0 0 auto;width:100%}}.ticker-card.break .card-label .label-text{background-color:#ff6b35;color:#fff}.ticker-card.break .card-label .label-time{color:#ff6b35}.ticker-card.break .card-title{color:#ff6b35;font-weight:600}.ticker-card.break:hover{background:#fff0f0;border-color:#ff5722}.ticker-card.break.current{border-color:#ff6b35;box-shadow:0 2px 8px #ff6b3533}.ticker-card.break.current .card-label .label-text{background-color:#ff6b35;color:#fff}.ticker-card.break.current:before{content:"";position:absolute;left:0;right:0;top:0;height:var(--now-y);background:linear-gradient(135deg,#ff6b351a,#ff6b3526);border-radius:8px 8px 0 0;z-index:1}.ticker-card.break.next{opacity:.8;border-color:#ff8a65}.ticker-card.break.next .card-label .label-text{background-color:#ff8a65;color:#fff}@media(max-width:768px){.ticker-card{width:100%;max-width:none;padding:8px 12px;margin:0;box-shadow:none}.ticker-card.break{width:100%;max-width:none}.card-title{font-size:14px;margin-bottom:4px}.card-time{font-size:12px}.card-label{margin-bottom:4px}.card-label .label-text{font-size:11px;padding:3px 6px}.card-label .label-time{font-size:12px}}@media(max-width:480px){.ticker-card{width:100%;max-width:none;padding:6px 10px}.ticker-card.break{width:100%;max-width:none}.card-title{font-size:13px;line-height:1.3}.card-label{margin-bottom:3px}.card-label .label-text{font-size:10px;padding:2px 5px}.card-label .label-time{font-size:11px}}.ticker-card:focus-within{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-contrast:high){.ticker-card{border-width:3px}}.ticker-timer{margin-top:20px;padding:20px;display:flex;justify-content:center;border-radius:8px;background-color:#f8f9fa;border:1px solid #e0e0e0}@media(min-width:1024px){.ticker-timer{margin-top:16px}}@media(max-width:768px){.ticker-timer{display:table-cell;width:30%;margin-top:0;padding:0;background:none;border:none;vertical-align:middle}}.timer-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px;padding:16px 24px;text-align:center;box-shadow:0 4px 12px #667eea4d;min-width:200px}.timer-card.before-school{background:linear-gradient(135deg,#4caf50,#81c784);box-shadow:0 4px 12px #4caf504d}.timer-card.until-break{background:linear-gradient(135deg,#2196f3,#64b5f6);box-shadow:0 4px 12px #2196f34d}.timer-card.until-lesson{background:linear-gradient(135deg,#ff9800,#ffb74d);box-shadow:0 4px 12px #ff98004d}.timer-label{font-size:14px;font-weight:500;opacity:.9;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.timer-countdown{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}@media(max-width:768px){.timer-card{width:100%;height:100%;min-height:60px;padding:8px 12px;border-radius:6px;box-shadow:0 1px 3px #667eea33;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-width:0}.timer-card.before-school{box-shadow:0 1px 3px #4caf5033}.timer-card.until-break{box-shadow:0 1px 3px #2196f333}.timer-card.until-lesson{box-shadow:0 1px 3px #ff980033}.timer-label{font-size:11px;margin-bottom:4px;white-space:nowrap;line-height:1.2;text-overflow:ellipsis;overflow:hidden;max-width:100%;font-weight:600}.timer-countdown{font-size:16px;font-weight:700;line-height:1.1}}@media(max-width:480px){.timer-card{width:100%;height:100%;min-height:55px;padding:6px 10px;min-width:0}.timer-label{font-size:8px;margin-bottom:3px}.timer-countdown{font-size:14px}}@media(prefers-reduced-motion:reduce){.ticker-track{scroll-behavior:auto}.ticker-card{transition:none}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,sans-serif;line-height:1.5;color:#333;background-color:#fafafa}#root{margin:0 auto}.app{max-width:1400px;margin:0 auto;padding:20px;min-height:100vh}.app-header{display:flex;flex-direction:column;gap:20px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #e0e0e0}@media(min-width:768px){.app-header{flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px}}.app-title{font-size:28px;font-weight:600;color:#2c3e50;margin:0}.app-controls{display:flex;flex-direction:column;gap:15px}@media(min-width:768px){.app-controls{flex-direction:row;align-items:center}}.view-toggle,.week-toggle{display:flex;background-color:#f8f9fa;border-radius:8px;padding:4px;border:1px solid #dee2e6}.toggle-btn{padding:8px 16px;border:none;background:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease;color:#6c757d}.toggle-btn:hover{background-color:#e9ecef;color:#495057}.toggle-btn.active{background-color:#007bff;color:#fff;box-shadow:0 2px 4px #007bff33}.toggle-btn:focus-visible{outline:2px solid #007bff;outline-offset:2px}.selector{min-width:200px}.selector-dropdown{width:100%;padding:10px 12px;border:1px solid #ced4da;border-radius:6px;background-color:#fff;font-size:14px;color:#495057;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.selector-dropdown:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.selector-dropdown:hover{border-color:#adb5bd}.app-content{display:grid;gap:30px;grid-template-rows:auto 1fr}@media(min-width:1024px){.app-content{grid-template-columns:1fr 400px;grid-template-rows:1fr}.app-content .ticker-section{grid-column:2;grid-row:1}.app-content .week-section{grid-column:1;grid-row:1}}@media(min-width:1024px)and (max-width:1199px){.app-content{grid-template-columns:1fr 320px}.app-content .ticker-section{grid-column:2;grid-row:1}.app-content .week-section{grid-column:1;grid-row:1}}.section-title{font-size:20px;font-weight:600;color:#2c3e50;margin-bottom:15px}.ticker-section{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a}@media(max-width:768px){.ticker-section{background:none;border-radius:0;padding:0;box-shadow:none;margin-bottom:15px}.ticker-section .section-title{display:none}}@media(min-width:1024px)and (max-width:1199px){.ticker-section{padding:16px}.ticker-section .section-title{font-size:18px;margin-bottom:12px}.ticker-section .ticker-container{font-size:14px}.ticker-section .ticker-container .ticker-card{padding:12px}.ticker-section .ticker-container .ticker-card .lesson-time{font-size:12px}.ticker-section .ticker-container .ticker-card .lesson-title{font-size:13px}.ticker-section .ticker-container .ticker-card .lesson-info{font-size:11px}}.custom-calendar-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:8px 8px 0 0;font-size:14px;font-weight:500}.custom-calendar-header .header-left{flex:1;text-align:left;color:#495057}.custom-calendar-header .header-center{flex:1;text-align:center;color:#212529;font-weight:600}.custom-calendar-header .header-right{flex:1;text-align:right;color:#6c757d;font-size:13px}.week-section{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;min-height:600px}.week-section .student-week .custom-calendar-header,.week-section .teacher-week .custom-calendar-header{margin:-20px -20px 15px}.fc{font-family:inherit}.fc-theme-standard .fc-scrollgrid{border:1px solid #e0e0e0;border-radius:8px}.fc-theme-standard .fc-scrollgrid-section>td{border:none}.fc-theme-standard td,.fc-theme-standard th{border-color:#e0e0e0}.fc-col-header-cell{background-color:#f8f9fa;font-weight:600;color:#495057;padding:12px 8px}.fc-timegrid-slot{height:60px}.fc-timegrid-slot-label{font-size:12px;color:#6c757d}.fc-event{border:none;border-radius:6px;padding:4px 8px;margin:1px;font-size:12px;font-weight:500}.lesson-event{background-color:#007bff;color:#fff}.lesson-event:hover{background-color:#0056b3}.past-lesson{opacity:.7!important;filter:grayscale(.3)!important}.past-lesson:hover{opacity:.8!important}.demo-lesson{background-color:#fafbfc!important;color:#007bff!important;border:2px solid #007bff!important}.demo-lesson:hover{background-color:#f0f4ff!important}.demo-lesson .fc-event-main,.demo-lesson .fc-event-title,.demo-lesson .fc-event-time{color:#007bff!important}.custom-event-content{position:relative;width:100%;height:100%;padding:2px}.custom-event-content .event-time{font-size:11px;font-weight:500;line-height:1.2}.custom-event-content .event-title{font-size:12px;font-weight:500;line-height:1.2;margin:1px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-event-content .mobile-title{display:none}.custom-event-content .desktop-title{display:block}.custom-event-content .event-class-desktop{font-size:10px;opacity:.8;line-height:1.2;margin-top:2px}.custom-event-content .event-class-mobile{display:none}@media(max-width:480px){.custom-event-content .event-class-mobile{display:none}}.custom-event-content.compact-schedule .event-class-desktop{display:none!important}.custom-event-content.compact-schedule .event-class-mobile{display:flex!important;position:absolute;top:-4px;right:-8px;width:16px;height:16px;background-color:#ffffffe6;color:#333;border-radius:50%;font-size:9px;font-weight:700;align-items:center;justify-content:center;line-height:1;border:1px solid rgba(0,0,0,.1);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10}@media(max-width:480px){.custom-event-content .event-time{font-size:10px}.custom-event-content .event-title{font-size:11px}.custom-event-content .desktop-title{display:block}.custom-event-content .mobile-title{display:none}.custom-event-content .event-class-mobile{width:14px;height:14px;font-size:8px;top:1px;right:1px}}.fc-event-title{font-weight:500}.fc-timegrid-now-indicator-line{border-color:#dc3545;border-width:2px}.fc-timegrid-now-indicator-arrow{border-color:#dc3545}.schedule4-height .fc-timegrid-slot,.schedule4-height .fc-timegrid-slot-minor{height:28px!important}.normal-height .fc-timegrid-slot,.normal-height .fc-timegrid-slot-minor{height:20px!important}@media(max-width:767px){.app{padding:15px}.app-title{font-size:24px}.fc-toolbar{flex-direction:column;gap:10px}.fc-event{font-size:11px}}@media(min-width:481px)and (max-width:768px){.app-controls{flex-direction:row;flex-wrap:nowrap;align-items:center;gap:12px}.view-toggle,.week-toggle{flex-shrink:0}.toggle-btn{padding:6px 12px;font-size:13px}.selector{flex:1;min-width:140px}}@media(max-width:480px){.app-controls{align-items:stretch;flex-direction:row;gap:10px;flex-wrap:wrap}.view-toggle,.week-toggle{width:100%;order:2}.toggle-btn{flex:1;text-align:center;font-size:11px}.selector{flex:1;min-width:120px}.selector-dropdown{font-size:16px}}.mobile-day-switcher{display:none;background:#f8f9fa;border-bottom:1px solid #dee2e6;padding:12px 16px;justify-content:center;gap:4px}@media(max-width:768px){.mobile-day-switcher{display:flex}}.day-switch-btn{padding:8px 12px;border:1px solid #dee2e6;background:#fff;border-radius:6px;font-size:14px;font-weight:500;color:#6c757d;cursor:pointer;transition:all .2s ease;min-width:44px}.day-switch-btn:hover{background-color:#e9ecef;border-color:#adb5bd;color:#495057}.day-switch-btn.active{background-color:#007bff;border-color:#007bff;color:#fff;box-shadow:0 2px 4px #007bff33}.day-switch-btn:focus-visible{outline:2px solid #007bff;outline-offset:2px}@media(max-width:480px){.day-switch-btn{padding:6px 10px;font-size:13px;min-width:40px}}@media(max-width:768px){.teacher-week .fc,.student-week .fc,.teacher-week .fc .fc-view-harness,.teacher-week .fc .fc-view-harness-active,.student-week .fc .fc-view-harness,.student-week .fc .fc-view-harness-active{width:100%!important}.teacher-week .fc .fc-scrollgrid,.teacher-week .fc .fc-scrollgrid-liquid,.student-week .fc .fc-scrollgrid,.student-week .fc .fc-scrollgrid-liquid{width:100%!important;table-layout:fixed!important}.teacher-week .fc .fc-timegrid,.student-week .fc .fc-timegrid,.teacher-week .fc .fc-timegrid-body,.student-week .fc .fc-timegrid-body{width:100%!important}.teacher-week .fc .fc-timegrid-body table,.student-week .fc .fc-timegrid-body table{width:100%!important;table-layout:fixed!important}.teacher-week .fc .fc-col-header,.student-week .fc .fc-col-header{display:none!important}.teacher-week .fc .fc-timegrid-axis,.student-week .fc .fc-timegrid-axis{width:60px!important;min-width:60px!important;max-width:60px!important}.teacher-week .fc .fc-timegrid-cols,.student-week .fc .fc-timegrid-cols{width:calc(100% - 60px)!important}.teacher-week .fc .fc-timegrid-col,.student-week .fc .fc-timegrid-col{width:100%!important;min-width:100%!important;flex:none!important}.teacher-week .fc .fc-timegrid-col-frame,.student-week .fc .fc-timegrid-col-frame{width:100%!important}.teacher-week .fc .fc-timegrid-event-harness,.student-week .fc .fc-timegrid-event-harness{width:calc(100% - 2px)!important;margin:0 1px!important}.teacher-week .fc .fc-timegrid-event,.student-week .fc .fc-timegrid-event{width:100%!important;min-width:100%!important;left:0!important;right:0!important}.teacher-week .fc .fc-event-main,.student-week .fc .fc-event-main{padding:4px 8px!important}.week-section,.week-section .student-week,.week-section .teacher-week{overflow-x:visible!important}}.debug-panel-toggle{position:fixed;bottom:20px;right:20px;z-index:1000}.debug-toggle-btn{background:#ff6b6b;border:none;border-radius:50%;width:50px;height:50px;font-size:20px;cursor:pointer;box-shadow:0 2px 10px #0003;transition:transform .2s ease}.debug-toggle-btn:hover{transform:scale(1.1)}.debug-panel{position:fixed;bottom:20px;right:20px;width:300px;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:1000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.debug-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f8f9fa;border-bottom:1px solid #ddd;border-radius:8px 8px 0 0}.debug-header h3{margin:0;font-size:14px;font-weight:600;color:#333}.debug-close-btn{background:none;border:none;font-size:18px;cursor:pointer;color:#666;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.debug-close-btn:hover{color:#000}.debug-content{padding:16px}.debug-field{margin-bottom:12px}.debug-field label{display:block;font-size:12px;font-weight:500;color:#555;margin-bottom:4px}.debug-field label input[type=checkbox]{margin-right:6px}.debug-field input[type=date],.debug-field input[type=time]{width:100%;padding:6px 8px;border:1px solid #ddd;border-radius:4px;font-size:12px}.debug-quick-btn{background:#4caf50;color:#fff;border:none;padding:8px 12px;border-radius:4px;font-size:12px;cursor:pointer;width:100%}.debug-quick-btn:hover{background:#45a049}.debug-info{border-top:1px solid #eee;padding-top:12px;margin-top:12px}.time-display{font-family:Courier New,monospace;font-size:11px;color:#666;margin-bottom:4px}.time-display.debug-active{color:#ff6b6b;font-weight:700}
