@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";html{width:100%;height:100%;overflow:hidden}@font-face{font-family:Kubik Flags;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/notocoloremoji/v47/Yq6P-KqIXTD0t4D9z1ESnKM3-HpFabsE4tq3luCC7p-aXxcn.0.woff2)format("woff2");unicode-range:U+1F1E6-1F1FF}:root{--font-sans:"Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}html.os-windows{--font-sans:"Manrope", "Kubik Flags", "Segoe UI", "Segoe UI Emoji", sans-serif}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;width:100%;height:100%;margin:0;overflow:hidden}#root{width:100%;height:100%;overflow:hidden}.boot-error{color:#1a405f;background:#eaf3fa;justify-content:center;align-items:center;width:100%;height:100%;min-height:100dvh;padding:24px;display:flex}.boot-error__panel{text-align:center;background:#fff;border-radius:14px;width:min(100%,420px);padding:24px}.boot-error__panel h1{margin:0 0 10px;font-size:22px;line-height:1.25}.boot-error__panel p{color:#425b70;margin:0 0 20px;font-size:14px;line-height:1.5}.boot-error__panel button{color:#fff;width:100%;min-height:48px;font:inherit;cursor:pointer;background:#337bae;border:0;border-radius:10px;font-weight:700}.student-app,.content,.tab-viewport{max-width:100%}table{max-width:100%;display:block;overflow-x:auto}img{max-width:100%;height:auto}pre,code{word-wrap:break-word;max-width:100%;overflow-x:auto}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--control-radius:12px;--control-border:#e2ded6;--control-border-hover:#cfc9bf;--control-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7783' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}::selection{background:color-mix(in srgb, var(--kubik-blue,#337bae) 22%, transparent)}:where(input,textarea){caret-color:var(--kubik-blue,#337bae)}:where(button,input,select,textarea){font-family:inherit}select:not([multiple]):not([size]){appearance:none;text-overflow:ellipsis;cursor:pointer;background-image:var(--control-chevron)!important;background-position:right 12px center!important;background-repeat:no-repeat!important;background-size:16px 16px!important;padding-right:38px!important}select::-ms-expand{display:none}input[type=radio],input[type=checkbox]{appearance:none}:where(input[type=radio],input[type=checkbox]){box-sizing:border-box;cursor:pointer;vertical-align:middle;background:#fff;border:1.5px solid #b8c0c8;flex-shrink:0;place-content:center;width:20px;height:20px;margin:0;transition:border-color .14s,background-color .14s,box-shadow .14s;display:inline-grid}:where(input[type=radio]){border-radius:50%}:where(input[type=checkbox]){border-radius:6px}:where(input[type=radio]):before{content:"";background:var(--kubik-blue,#337bae);border-radius:50%;width:10px;height:10px;transition:transform .16s cubic-bezier(.22,1,.36,1);transform:scale(0)}:where(input[type=checkbox]):before{content:"";clip-path:polygon(14% 52%,0 66%,38% 100%,100% 22%,86% 8%,37% 70%);background:#fff;width:12px;height:12px;transition:transform .16s cubic-bezier(.22,1,.36,1);transform:scale(0)}:where(input[type=radio]:hover,input[type=checkbox]:hover),:where(input[type=radio]:checked){border-color:var(--kubik-blue,#337bae)}:where(input[type=checkbox]:checked){border-color:var(--kubik-blue,#337bae);background:var(--kubik-blue,#337bae)}:where(input[type=radio]:checked,input[type=checkbox]:checked):before{transform:scale(1)}:where(input[type=radio]:focus-visible,input[type=checkbox]:focus-visible){box-shadow:0 0 0 3px color-mix(in srgb, var(--kubik-blue,#337bae) 25%, transparent);outline:none}:where(input[type=radio]:disabled,input[type=checkbox]:disabled){opacity:.5;cursor:not-allowed}:where(.admin-panel) :where(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=hidden],[type=submit],[type=button],[type=reset],[type=image]),textarea,select){box-sizing:border-box;border:1px solid var(--control-border);border-radius:var(--control-radius);max-width:100%;min-height:42px;color:var(--kubik-text,#2a3744);background-color:#fff;padding:10px 14px;font-size:15px;line-height:1.35;transition:border-color .14s,box-shadow .14s}:where(.admin-panel) :where(textarea){resize:vertical;min-height:96px;line-height:1.5}:where(.admin-panel) :where(input,textarea,select):where(:hover:not(:disabled,:focus)){border-color:var(--control-border-hover)}:where(.admin-panel) :where(input,textarea,select):where(:focus){border-color:var(--kubik-blue,#337bae);box-shadow:0 0 0 3px color-mix(in srgb, var(--kubik-blue,#337bae) 20%, transparent);outline:none}:where(.admin-panel) :where(input,textarea,select):where(:disabled){color:var(--kubik-text-soft,#6b7783);cursor:not-allowed;background-color:#f5f4f0}:where(.admin-panel) :where(input,textarea)::placeholder{color:#8a95a0;opacity:1}@media (pointer:coarse){:where(.admin-panel) :where(input:not([type=checkbox],[type=radio]),textarea,select){font-size:16px}}@media (prefers-reduced-motion:reduce){:where(input,textarea,select),:where(input[type=radio],input[type=checkbox]):before{transition:none!important}}*{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none;-webkit-overflow-scrolling:touch;width:100%;height:100%;overflow:hidden}#root{width:100%;max-width:100vw;height:100%;overflow:hidden}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--kubik-pink:#ffbebd;--kubik-white:#fcfcfa;--kubik-blue:#337bae;--kubik-navy:#1a405f;--kubik-border:#eceae5;--kubik-text:#2a3744;--kubik-text-soft:#7b8794}.role-selection{background:linear-gradient(150deg, var(--kubik-blue) 0%, var(--kubik-navy) 100%);justify-content:center;align-items:center;height:100%;padding:24px;display:flex;overflow-y:auto}.kubik-role-logo{filter:brightness(0)invert();width:150px;height:auto;margin:0 auto 40px;animation:.6s both kubikFadeUp;display:block}.role-container{text-align:center;width:100%;max-width:480px}.role-logo{letter-spacing:-2px;text-shadow:0 4px 12px #0003;align-items:center;gap:4px;margin-bottom:48px;font-size:56px;font-weight:900;display:inline-flex}.role-logo .logo-ed{color:#fff}.role-logo .logo-me{color:var(--kubik-blue)}.role-title{color:#fff;letter-spacing:-.5px;margin-bottom:10px;font-size:28px;font-weight:600}.role-subtitle{color:#ffffffd9;margin-bottom:40px;font-size:15px;font-weight:400}.role-buttons{flex-direction:column;gap:20px;display:flex}.role-button{cursor:pointer;text-align:left;background:#fff;border:none;border-radius:20px;align-items:center;gap:18px;padding:22px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 8px 28px #1a405f38}.role-button:before{content:"";opacity:0;background:linear-gradient(135deg,#1e40af0d 0%,#3b82f60d 100%);transition:opacity .3s;position:absolute;inset:0}.role-button:hover:before{opacity:1}.role-button:hover{transform:translateY(-4px);box-shadow:0 16px 36px #1a405f4d}.role-button:active{transform:translateY(-3px)scale(1.01)}.role-icon{z-index:1;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:88px;height:88px;font-size:56px;display:flex;position:relative;box-shadow:0 4px 16px #0000001a}.role-student .role-icon{background:linear-gradient(135deg, var(--kubik-blue) 0%, #4a93c4 100%)}.role-admin .role-icon{background:linear-gradient(135deg, var(--kubik-navy) 0%, var(--kubik-blue) 100%)}.role-info{z-index:1;flex:1;position:relative}.role-info h2{color:var(--kubik-navy);margin-bottom:4px;font-size:19px;font-weight:600}.role-info p{color:#6b7280;font-size:15px;font-weight:500;line-height:1.5}@media (width<=400px){.role-logo{font-size:48px}.role-title{font-size:28px}.role-button{gap:16px;padding:20px}.role-icon{width:72px;height:72px;font-size:48px}.role-info h2{font-size:20px}.role-info p{font-size:14px}}.subject-filters{-webkit-overflow-scrolling:touch;gap:10px;margin-bottom:24px;padding-bottom:8px;display:flex;overflow-x:auto}.subject-filters::-webkit-scrollbar{height:4px}.subject-filters::-webkit-scrollbar-track{background:#f3f4f6;border-radius:2px}.subject-filters::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.filter-button{color:#6b7280;cursor:pointer;white-space:nowrap;background:#fff;border:2px solid #e5e7eb;border-radius:12px;flex-shrink:0;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:all .3s;display:flex}.filter-button:hover{border-color:var(--kubik-blue);color:var(--kubik-navy);background:#f2f8fc}.filter-button.active{border-color:var(--kubik-blue);background:var(--kubik-blue);color:#fff;box-shadow:0 4px 12px #337bae40}.filter-icon{font-size:18px}@media (width<=768px){.subject-filters{gap:8px}.filter-button{padding:8px 14px;font-size:13px}.filter-icon{font-size:16px}}.loading-screen{background:linear-gradient(150deg, var(--kubik-blue) 0%, var(--kubik-navy) 100%);flex-direction:column;justify-content:center;align-items:center;gap:32px;height:100%;display:flex;overflow-y:auto}.kubik-loading-logo{filter:brightness(0)invert();width:160px;height:auto;animation:2.4s ease-in-out infinite kubikBreathe}.kubik-loader{background:#ffffff40;border-radius:3px;width:140px;height:3px;position:relative;overflow:hidden}.kubik-loader-fill{background:linear-gradient(90deg, #fff 0%, var(--kubik-pink) 100%);border-radius:3px;width:40%;height:100%;animation:1.3s ease-in-out infinite kubikSlide;position:absolute;top:0;left:0}@keyframes kubikSlide{0%{left:-40%}to{left:100%}}@keyframes kubikBreathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.92;transform:scale(1.04)}}@keyframes kubikFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.blocked-screen{background:var(--kubik-white);justify-content:center;align-items:center;height:100%;padding:24px;display:flex;overflow-y:auto}.kubik-blocked-logo{opacity:.9;width:72px;height:auto;margin:0 auto 8px;display:block}.blocked-container{text-align:center;width:100%;max-width:480px}.blocked-icon{margin:32px 0;font-size:80px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.blocked-title{color:var(--kubik-navy);letter-spacing:-.5px;margin:0 0 14px;font-size:26px;font-weight:600}.blocked-description{color:var(--kubik-text-soft);margin:0 0 32px;font-size:15px;line-height:1.6}.telegram-button{background:var(--kubik-blue);color:#fff;border-radius:14px;align-items:center;gap:10px;padding:15px 30px;font-size:15px;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex;box-shadow:0 6px 18px #337bae40}.telegram-button:hover{transform:translateY(-2px);box-shadow:0 12px 32px #0003}.telegram-icon{font-size:24px}.guest-select{min-height:100vh;min-height:var(--app-height,100dvh);max-height:var(--app-height,100dvh);-webkit-overflow-scrolling:touch;padding:24px 18px calc(40px + env(safe-area-inset-bottom));box-sizing:border-box;background:linear-gradient(160deg,#f5f3ff,#eef2ff);justify-content:center;align-items:flex-start;display:flex;overflow-y:auto}.guest-select-container{flex-direction:column;align-items:center;width:100%;max-width:480px;display:flex}.guest-select-logo{object-fit:contain;width:64px;height:64px;margin-bottom:12px}.guest-select-title{color:#1a1a2e;text-align:center;margin:0 0 8px;font-size:24px;font-weight:800}.guest-select-subtitle{color:#6b7280;text-align:center;margin:0 0 22px;font-size:14px;line-height:1.45}.guest-select-empty{color:#9ca3af;text-align:center;margin:20px 0;font-size:14px}.guest-select-grid{flex-direction:column;gap:10px;width:100%;margin-bottom:18px;display:flex}.guest-subject-card{cursor:pointer;text-align:left;background:#fff;border:1.5px solid #e5e7eb;border-radius:16px;align-items:center;gap:12px;padding:15px 16px;transition:border-color .15s,background .15s,transform .1s;display:flex}.guest-subject-card:active{transform:scale(.99)}.guest-subject-card.active{background:linear-gradient(135deg,#eef2ff,#f5f3ff);border-color:#6366f1}.guest-subject-icon{flex-shrink:0;font-size:22px}.guest-subject-name{color:#1a1a2e;flex:1;font-size:16px;font-weight:600}.guest-subject-check{color:#6366f1;justify-content:center;align-items:center;width:24px;height:24px;font-size:15px;font-weight:700;display:flex}.guest-select-error{color:#ef4444;text-align:center;margin:0 0 14px;font-size:14px}.guest-select-continue{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:16px;width:100%;padding:16px;font-size:17px;font-weight:700;transition:opacity .15s,transform .1s;position:sticky;bottom:8px;box-shadow:0 6px 20px #6366f159}.guest-select-continue:active:not(:disabled){transform:scale(.99)}.guest-select-continue:disabled{opacity:.6;cursor:not-allowed}.guest-select-loading{background:linear-gradient(160deg,#f5f3ff,#eef2ff);flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100vh;display:flex}.guest-expired{min-height:100vh;min-height:var(--app-height,100dvh);max-height:var(--app-height,100dvh);-webkit-overflow-scrolling:touch;padding:32px 18px calc(32px + env(safe-area-inset-bottom));box-sizing:border-box;background:linear-gradient(160deg,#f5f3ff,#eef2ff);justify-content:center;align-items:center;display:flex;overflow-y:auto}.guest-expired-container{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:440px;display:flex}.guest-expired-logo{object-fit:contain;width:100px;height:100px;margin-bottom:16px}.guest-expired-icon{margin-bottom:12px;font-size:52px}.guest-expired-title{color:#1a1a2e;margin:0 0 12px;font-size:24px;font-weight:800}.guest-expired-text{color:#6b7280;margin:0 0 24px;font-size:15px;line-height:1.5}.guest-expired-actions{width:100%}.guest-expired-btn{cursor:pointer;border:none;border-radius:16px;width:100%;padding:16px;font-size:17px;font-weight:700;transition:opacity .15s,transform .1s}.guest-expired-btn:active{transform:scale(.99)}.guest-expired-btn--primary{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6)}.guest-expired-sent{color:#16a34a;margin-top:16px;font-size:15px;font-weight:600}.guest-expired-form{box-sizing:border-box;background:#fff;border-radius:20px;width:100%;padding:22px}.app-form{flex-direction:column;gap:14px;width:100%;display:flex}.app-form-title{color:#1a1a2e;text-align:center;margin:0;font-size:20px;font-weight:700}.app-form-subtitle{color:#6b7280;text-align:center;margin:0 0 4px;font-size:14px}.app-form-field{flex-direction:column;gap:6px;display:flex}.app-form-input{box-sizing:border-box;color:#1a1a2e;caret-color:#1a1a2e;-webkit-text-fill-color:#1a1a2e;text-align:left;direction:ltr;background:#f9fafb;border:1.5px solid #e5e7eb;border-radius:14px;outline:none;width:100%;padding:14px 16px;font-size:16px;transition:border-color .15s,background .15s}.app-form-input::placeholder{color:#9ca3af;-webkit-text-fill-color:#9ca3af;opacity:1}.app-form-input:focus{background:#fff;border-color:#6366f1}.app-form-input--error{background:#fef2f2;border-color:#ef4444}.app-form-error{color:#ef4444;padding-left:4px;font-size:13px}.app-form-checkbox{color:#6b7280;cursor:pointer;align-items:flex-start;gap:10px;font-size:13px;line-height:1.4;display:flex}.app-form-checkbox input{accent-color:#6366f1;flex-shrink:0;width:18px;height:18px;margin-top:1px}.app-form-submit{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:14px;width:100%;padding:15px;font-size:16px;font-weight:600;transition:opacity .15s,transform .1s}.app-form-submit:active:not(:disabled){transform:scale(.98)}.app-form-submit:disabled{opacity:.6;cursor:not-allowed}.app-form-submit-error{color:#ef4444;text-align:center;margin:0;font-size:14px}.app-form-tg-contact{box-sizing:border-box;color:#2481cc;cursor:pointer;background:#2481cc14;border:1.5px solid #2481cc4d;border-radius:14px;width:100%;margin-top:8px;padding:12px 14px;font-size:14px;font-weight:600;transition:background .15s,transform .1s,opacity .15s}.app-form-tg-contact:active:not(:disabled){transform:scale(.98)}.app-form-tg-contact:disabled{opacity:.6;cursor:not-allowed}.app-form-success{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:24px 0;display:flex}.app-form-success-icon{font-size:44px}.app-form-success p{color:#1a1a2e;margin:0;font-size:17px;font-weight:600}.access-expired{min-height:100vh;min-height:var(--app-height,100dvh);max-height:var(--app-height,100dvh);-webkit-overflow-scrolling:touch;padding:32px 18px calc(32px + env(safe-area-inset-bottom));box-sizing:border-box;background:linear-gradient(160deg,#f5f3ff,#eef2ff);justify-content:center;align-items:center;display:flex;overflow-y:auto}.access-expired-container{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:440px;display:flex}.access-expired-logo{object-fit:contain;width:100px;height:100px;margin-bottom:16px}.access-expired-icon{margin-bottom:12px;font-size:56px}.access-expired-title{color:#1a1a2e;margin:0 0 12px;font-size:26px;font-weight:800}.access-expired-text{color:#4b5563;margin:0 0 28px;font-size:16px;line-height:1.5}.access-expired-btn{box-sizing:border-box;text-align:center;cursor:pointer;border:none;border-radius:16px;width:100%;padding:16px;font-size:17px;font-weight:700;text-decoration:none;transition:opacity .15s,transform .1s;display:block}.access-expired-btn:active{transform:scale(.99)}.access-expired-btn:focus-visible{outline-offset:4px;outline:3px solid #235d85}.access-expired-btn--primary{color:#fff;background:linear-gradient(135deg,#5659d8,#7344d5)}.access-expired-btn--secondary{color:#484bc2;background:0 0;margin-top:12px;font-size:15px}@media (prefers-reduced-motion:reduce){.access-expired-btn{transition:none}.access-expired-btn:active{transform:none}}
