@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap";.success-animation-container{position:fixed;inset:0;z-index:1000;display:flex;justify-content:center;align-items:center;width:100%;min-height:100dvh;min-height:100vh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-sizing:border-box;background-color:#ffffffeb}.success-animation-container__lottie{width:min(200px,70vw);height:min(200px,40dvh);flex-shrink:0}:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: #e74c3c;--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient( to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55 );--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%)}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right)}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%)}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right)}@media only screen and (max-width : 480px){.Toastify__toast-container{width:100vw;padding:0;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}}.Toastify__toast{--y: 0;position:relative;-ms-touch-action:none;touch-action:none;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px #0000001a;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0;overflow:hidden}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;-ms-flex:1 1 auto;flex:1 1 auto;padding:6px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;-ms-flex:1;flex:1}.Toastify__toast-icon{-webkit-margin-end:10px;margin-inline-end:10px;width:20px;-ms-flex-negative:0;flex-shrink:0;display:-ms-flexbox;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width : 480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;-ms-flex-item-align:start;align-self:flex-start;z-index:1}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial;border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp{position:absolute;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-page--success{overflow:hidden}.login-page{--login-bg: #f0f2f5;--login-bg-accent: #e8ecf1;--login-surface: #ffffff;--login-border: rgba(15, 23, 42, .08);--login-text: #0f172a;--login-text-muted: #64748b;--login-accent: #0f766e;--login-accent-hover: #0d9488;--login-accent-soft: rgba(15, 118, 110, .1);--login-focus: #0f766e;--login-radius: 14px;--login-radius-input: 10px;--login-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 12px 40px rgba(15, 23, 42, .06);font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-optical-sizing:auto;min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,2rem);box-sizing:border-box;color:var(--login-text);background-color:var(--login-bg);background-image:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(15,118,110,.07),transparent 55%),linear-gradient(180deg,var(--login-bg) 0%,var(--login-bg-accent) 100%)}.login-page__shell{width:100%;max-width:420px}.login-page__card{background:var(--login-surface);border:1px solid var(--login-border);border-radius:var(--login-radius);box-shadow:var(--login-shadow);padding:clamp(1.75rem,5vw,2.25rem);animation:login-page-enter .45s cubic-bezier(.22,1,.36,1) both}@keyframes login-page-enter{0%{opacity:0}to{opacity:1}}.login-page__brand{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:1.75rem}.login-page__logo{height:36px;width:auto;max-width:180px;object-fit:contain;display:block}.login-page__title{margin:1rem 0 0;font-size:1.375rem;font-weight:600;letter-spacing:-.02em;color:var(--login-text)}.login-page__subtitle{margin:.35rem 0 0;font-size:.875rem;font-weight:400;color:var(--login-text-muted);line-height:1.45;max-width:28ch}.login-page__form{width:100%}.login-page__field{margin-bottom:1.125rem}.login-page__field:last-of-type{margin-bottom:1.25rem}.login-page__label{display:block;font-size:.8125rem;font-weight:600;color:var(--login-text);margin-bottom:.4rem;letter-spacing:.01em}.login-page__input{width:100%;box-sizing:border-box;padding:.75rem .9rem;font-family:inherit;font-size:.9375rem;color:var(--login-text);background:#fafbfc;border:1px solid var(--login-border);border-radius:var(--login-radius-input);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.login-page__input::placeholder{color:#94a3b8}.login-page__input:hover{background:#fff;border-color:#0f172a1f}.login-page__input:focus{outline:none;background:#fff;border-color:var(--login-focus);box-shadow:0 0 0 3px var(--login-accent-soft)}.login-page__password-wrap{position:relative;display:flex;align-items:center;width:100%}.login-page__password-wrap .login-page__input{padding-right:2.75rem}.login-page__toggle{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:8px;background:transparent;color:var(--login-text-muted);cursor:pointer;transition:color .15s ease,background .15s ease}.login-page__toggle:hover{color:var(--login-accent);background:var(--login-accent-soft)}.login-page__toggle:focus-visible{outline:2px solid var(--login-focus);outline-offset:2px}.login-page__toggle svg{flex-shrink:0}.login-page__submit{width:100%;margin-top:.25rem;padding:.8125rem 1rem;font-family:inherit;font-size:.9375rem;font-weight:600;letter-spacing:.01em;color:#fff;background:var(--login-accent);border:none;border-radius:var(--login-radius-input);cursor:pointer;transition:background .15s ease,transform .1s ease,box-shadow .15s ease;box-shadow:0 1px 2px #0f766e33}.login-page__submit:hover:not(:disabled){background:var(--login-accent-hover)}.login-page__submit:active:not(:disabled){transform:scale(.992)}.login-page__submit:disabled{opacity:.65;cursor:not-allowed}.login-page__submit:focus-visible{outline:2px solid var(--login-focus);outline-offset:2px}.login-page__submit-inner{display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.login-page__spinner{width:1rem;height:1rem;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:login-spin .7s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}.login-page__links{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--login-border);display:flex;flex-direction:column;align-items:center;gap:.25rem}.login-page__link{display:inline;padding:.35rem .25rem;margin:0;font-family:inherit;font-size:.8125rem;font-weight:500;color:var(--login-text-muted);background:none;border:none;cursor:pointer;text-decoration:none;transition:color .15s ease}.login-page__link:hover{color:var(--login-accent)}.login-page__link:focus-visible{outline:2px solid var(--login-focus);outline-offset:2px;border-radius:4px}.login-page__link--primary{color:var(--login-accent);font-weight:600}.login-page__link--primary:hover{color:var(--login-accent-hover)}.login-page__legal{margin-top:1rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.35rem .65rem;font-size:.6875rem;line-height:1.4;color:var(--login-text-muted)}.login-page__legal-link{color:inherit;text-decoration:underline;text-underline-offset:2px;transition:color .15s ease}.login-page__legal-link:hover{color:var(--login-accent)}.login-page__legal-link:focus-visible{outline:2px solid var(--login-focus);outline-offset:2px;border-radius:4px}.login-page__legal-sep{user-select:none;opacity:.55}@media (max-width: 380px){.login-page__card{padding:1.5rem 1.25rem}.login-page__title{font-size:1.25rem}}.login-container{--login-bg: #f0f2f5;--login-bg-accent: #e8ecf1;--login-surface: #ffffff;--login-border: rgba(15, 23, 42, .08);--login-text: #0f172a;--login-text-muted: #64748b;--login-accent: #0f766e;--login-accent-hover: #0d9488;--login-accent-soft: rgba(15, 118, 110, .1);--login-focus: #0f766e;--login-radius: 14px;--login-radius-input: 10px;--login-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 12px 40px rgba(15, 23, 42, .06);font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,2rem);box-sizing:border-box;color:var(--login-text);background-color:var(--login-bg);background-image:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(15,118,110,.07),transparent 55%),linear-gradient(180deg,var(--login-bg) 0%,var(--login-bg-accent) 100%)}.login-container .login-card{background:var(--login-surface);border:1px solid var(--login-border);border-radius:var(--login-radius);box-shadow:var(--login-shadow);padding:clamp(1.75rem,5vw,2.25rem);max-width:420px;width:100%;display:flex;flex-direction:column;align-items:center;box-sizing:border-box}.login-container .login-brand-logo{height:36px;width:auto;max-width:180px;object-fit:contain;margin-bottom:.5rem}.login-container .login-card h2{margin:.5rem 0 1.25rem;font-size:1.375rem;font-weight:600;letter-spacing:-.02em;color:var(--login-text)}.login-container .login-form-group{width:100%;margin-bottom:1rem}.login-container .login-input{width:100%;box-sizing:border-box;padding:.75rem .9rem;font-family:inherit;font-size:.9375rem;color:var(--login-text);background:#fafbfc;border:1px solid var(--login-border);border-radius:var(--login-radius-input);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.login-container .login-input::placeholder{color:#94a3b8}.login-container .login-input:hover{background:#fff;border-color:#0f172a1f}.login-container .login-input:focus{outline:none;background:#fff;border-color:var(--login-focus);box-shadow:0 0 0 3px var(--login-accent-soft)}.login-container .button-container{width:100%;margin-top:.5rem}.login-container .login-button{width:100%;padding:.8125rem 1rem;font-family:inherit;font-size:.9375rem;font-weight:600;color:#fff;background:var(--login-accent);border:none;border-radius:var(--login-radius-input);cursor:pointer;transition:background .15s ease,transform .1s ease;box-shadow:0 1px 2px #0f766e33}.login-container .login-button:hover:not(:disabled){background:var(--login-accent-hover)}.login-container .login-button:disabled{opacity:.65;cursor:not-allowed}.login-container .login-button:focus-visible{outline:2px solid var(--login-focus);outline-offset:2px}.login-container form{width:100%}.app-shell:has(.dashboard-page){background:#f0f2f5}.main-content:has(.dashboard-page){flex:1;display:flex;flex-direction:column;background:#f0f2f5}.page-content:has(.dashboard-page){flex:1;display:flex;flex-direction:column;padding:0;background:#f0f2f5}.dashboard-page{flex:1;--dash-bg: #f0f2f5;--dash-bg-accent: #e8ecf1;--dash-surface: #ffffff;--dash-border: rgba(15, 23, 42, .08);--dash-text: #0f172a;--dash-muted: #64748b;--dash-accent: #0f766e;--dash-accent-soft: rgba(15, 118, 110, .12);--dash-warn-bg: #fffbeb;--dash-warn-border: rgba(180, 83, 9, .25);--dash-warn-text: #92400e;--dash-radius: 14px;--dash-radius-sm: 10px;--dash-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 28px rgba(15, 23, 42, .06);font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-optical-sizing:auto;width:100%;min-height:100%;min-height:calc(100dvh - var(--bottom-nav-height, 60px));box-sizing:border-box;padding:clamp(.75rem,3vw,1.25rem);padding-bottom:calc(clamp(.75rem,3vw,1.25rem) + var(--bottom-nav-height, 60px) + env(safe-area-inset-bottom,0px));color:var(--dash-text);background-color:var(--dash-bg);background-image:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(15,118,110,.07),transparent 55%),linear-gradient(180deg,var(--dash-bg) 0%,var(--dash-bg-accent) 100%);overflow-x:hidden}.dashboard-page__inner{width:100%;max-width:720px;margin:0 auto;box-sizing:border-box}.dashboard-hero{background:var(--dash-surface);border:1px solid var(--dash-border);border-radius:var(--dash-radius);box-shadow:var(--dash-shadow);padding:.6rem .75rem;margin-bottom:.75rem;display:flex;flex-direction:row;align-items:center;gap:.65rem;text-align:left}.dashboard-hero__logo-wrap{position:relative;flex-shrink:0;width:4.5rem;min-height:2.25rem;display:flex;align-items:center;justify-content:flex-start}.dashboard-hero__logo-placeholder{width:4rem;height:2rem;border-radius:var(--dash-radius-sm);background:linear-gradient(90deg,#f1f5f9,#e2e8f0,#f1f5f9);background-size:200% 100%;animation:dash-shimmer 1.2s ease-in-out infinite}.dashboard-hero__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem;justify-content:center}@keyframes dash-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.dashboard-hero__logo{max-width:4.5rem;max-height:2.25rem;width:auto;height:auto;object-fit:contain;display:block}.dashboard-hero__logo:not(.dashboard-hero__logo--visible){position:absolute;opacity:0;pointer-events:none}.dashboard-hero__logo--visible{animation:dash-fade-in .4s ease-out both}@keyframes dash-fade-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.dashboard-hero__greeting{margin:0;font-size:clamp(.875rem,2.8vw,1rem);font-weight:600;letter-spacing:-.02em;color:var(--dash-text);line-height:1.2}.dashboard-hero__name{color:var(--dash-accent);font-weight:700}.dashboard-hero__time{margin:0;font-size:.6875rem;font-weight:500;color:var(--dash-muted);letter-spacing:.01em}.dashboard-alert{background:var(--dash-warn-bg);border:1px solid var(--dash-warn-border);border-radius:var(--dash-radius);padding:.9rem 1rem;margin-bottom:1rem;cursor:pointer;transition:box-shadow .15s ease,border-color .15s ease,transform .1s ease;box-shadow:var(--dash-shadow)}.dashboard-alert:hover{border-color:#b4530959;box-shadow:0 4px 20px #92400e14}.dashboard-alert:active{transform:scale(.995)}.dashboard-alert__row{display:flex;align-items:center;gap:.75rem}.dashboard-alert__icon{flex-shrink:0;width:40px;height:40px;border-radius:var(--dash-radius-sm);background:#b453091f;color:var(--dash-warn-text);display:flex;align-items:center;justify-content:center;font-size:1.1rem}.dashboard-alert__body{flex:1;min-width:0}.dashboard-alert__title{margin:0 0 .2rem;font-size:.9375rem;font-weight:700;color:var(--dash-warn-text)}.dashboard-alert__desc{margin:0;font-size:.75rem;font-weight:500;color:#a16207;line-height:1.35}.dashboard-alert__stat{flex-shrink:0;text-align:right}.dashboard-alert__value{display:block;font-size:1.35rem;font-weight:700;color:var(--dash-warn-text);line-height:1;letter-spacing:-.02em}.dashboard-alert__label{font-size:.65rem;font-weight:600;color:#a16207;text-transform:uppercase;letter-spacing:.06em}.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,auto);gap:.5rem;width:100%;margin-bottom:.5rem}.dashboard-tile{appearance:none;-webkit-tap-highlight-color:transparent;font-family:inherit;text-align:center;background:var(--dash-surface);border:1px solid var(--dash-border);border-radius:var(--dash-radius);box-shadow:var(--dash-shadow);padding:.65rem .35rem;cursor:pointer;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:border-color .15s ease,box-shadow .15s ease;color:inherit}.dashboard-tile:hover{border-color:#0f766e40;box-shadow:0 4px 24px #0f172a14}.dashboard-tile:focus-visible{outline:2px solid var(--dash-accent);outline-offset:2px}.dashboard-tile__inner{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.dashboard-tile__icon{width:36px;height:36px;border-radius:var(--dash-radius-sm);background:var(--dash-accent-soft);color:var(--dash-accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.dashboard-tile__label{margin:0;font-size:.6875rem;font-weight:600;color:var(--dash-text);line-height:1.15;letter-spacing:-.01em}@media (max-width: 380px){.dashboard-page{padding:.5rem}.dashboard-tile{min-height:70px;padding:.55rem .25rem}.dashboard-tile__icon{width:32px;height:32px}.dashboard-tile__label{font-size:.625rem}.dashboard-alert__row{flex-wrap:wrap}.dashboard-alert__stat{width:100%;text-align:left;display:flex;align-items:baseline;gap:.5rem;padding-top:.25rem}}@media (prefers-reduced-motion: reduce){.dashboard-hero__logo-placeholder{animation:none;background:#e2e8f0}.dashboard-page *,.dashboard-page *:before,.dashboard-page *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.loading-spinner{position:fixed;inset:0;z-index:1000;display:flex;justify-content:center;align-items:center;width:100%;min-height:100dvh;min-height:100vh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-sizing:border-box;background-color:#fffc}.loading-spinner__lottie{width:min(200px,70vw);height:min(200px,40dvh);flex-shrink:0}.spinner{width:50px;height:50px;border:5px solid #f3f3f3;border-top:5px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}.app-shell:has(.profile-page){background:#f0f2f5}.main-content:has(.profile-page){flex:1;display:flex;flex-direction:column;background:#f0f2f5}.page-content:has(.profile-page){flex:1;display:flex;flex-direction:column;padding:0;background:#f0f2f5}.profile-page{flex:1;--profile-bg: #f0f2f5;--profile-bg-accent: #e8ecf1;--profile-surface: #ffffff;--profile-border: rgba(15, 23, 42, .08);--profile-text: #0f172a;--profile-muted: #64748b;--profile-accent: #0f766e;--profile-accent-soft: rgba(15, 118, 110, .12);--profile-danger: #dc2626;--profile-danger-soft: rgba(220, 38, 38, .08);--profile-radius: 14px;--profile-radius-sm: 10px;--profile-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 28px rgba(15, 23, 42, .06);font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;width:100%;min-height:100%;min-height:calc(100dvh - var(--bottom-nav-height, 60px));box-sizing:border-box;padding:clamp(.75rem,3vw,1.25rem);padding-bottom:calc(clamp(.75rem,3vw,1.25rem) + var(--bottom-nav-height, 60px) + env(safe-area-inset-bottom,0px));color:var(--profile-text);background-color:var(--profile-bg);background-image:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(15,118,110,.07),transparent 55%),linear-gradient(180deg,var(--profile-bg) 0%,var(--profile-bg-accent) 100%);overflow-x:hidden}.profile-page__inner{width:100%;max-width:720px;margin:0 auto;box-sizing:border-box;display:flex;flex-direction:column;gap:.65rem}.profile-page__empty{margin:2rem 0;text-align:center;color:var(--profile-muted);font-size:.9375rem}.profile-hero{background:var(--profile-surface);border:1px solid var(--profile-border);border-radius:var(--profile-radius);box-shadow:var(--profile-shadow);padding:.65rem .85rem;display:flex;flex-direction:row;align-items:center;gap:.75rem;text-align:left}.profile-hero__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem;justify-content:center}.profile-hero__avatar-btn{position:relative;appearance:none;border:none;background:none;padding:0;cursor:pointer;flex-shrink:0}.profile-hero__avatar-ring{display:flex;align-items:center;justify-content:center;width:4.25rem;height:4.25rem;border-radius:50%;background:linear-gradient(135deg,var(--profile-accent) 0%,#14b8a6 100%);padding:2px;box-shadow:0 2px 10px #0f766e38}.profile-hero__avatar-img,.profile-hero__avatar-initials{width:100%;height:100%;border-radius:50%;object-fit:cover;display:flex;align-items:center;justify-content:center;background:var(--profile-surface)}.profile-hero__avatar-initials{font-size:1.125rem;font-weight:700;color:var(--profile-accent);letter-spacing:.02em}.profile-hero__avatar-badge{position:absolute;right:0;bottom:0;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--profile-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;border:2px solid var(--profile-surface);box-shadow:0 2px 6px #0f172a1f}.profile-hero__avatar-loading{position:absolute;inset:0;border-radius:50%;background:#ffffffd9;display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:600;color:var(--profile-accent)}.profile-hero__name{margin:0;font-size:clamp(.9375rem,3vw,1.125rem);font-weight:700;letter-spacing:-.02em;color:var(--profile-text);line-height:1.2}.profile-hero__program{margin:0;font-size:.8125rem;font-weight:500;color:var(--profile-muted);line-height:1.35}.profile-hero__meta{margin:0;align-self:flex-start;font-size:.6875rem;font-weight:600;color:var(--profile-accent);background:var(--profile-accent-soft);padding:.15rem .5rem;border-radius:999px}.profile-tabs{display:flex;gap:.35rem;padding:.3rem;background:var(--profile-surface);border:1px solid var(--profile-border);border-radius:var(--profile-radius);box-shadow:var(--profile-shadow)}.profile-tabs__btn{flex:1;appearance:none;border:none;background:transparent;font-family:inherit;font-size:.875rem;font-weight:600;color:var(--profile-muted);padding:.55rem .75rem;border-radius:calc(var(--profile-radius-sm) + 2px);cursor:pointer;transition:background .15s ease,color .15s ease}.profile-tabs__btn--active{background:var(--profile-accent-soft);color:var(--profile-accent)}.profile-tabs__btn:focus-visible{outline:2px solid var(--profile-accent);outline-offset:2px}.profile-panel__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.profile-field{width:100%;display:flex;align-items:center;gap:.75rem;padding:.7rem .8rem;background:var(--profile-surface);border:1px solid var(--profile-border);border-radius:var(--profile-radius);box-shadow:var(--profile-shadow);text-align:left;font-family:inherit;box-sizing:border-box}.profile-field--clickable{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.profile-field--clickable:hover{border-color:#0f766e40}.profile-field--clickable:active{transform:scale(.995)}.profile-field__icon{flex-shrink:0;width:2.25rem;height:2.25rem;border-radius:var(--profile-radius-sm);background:var(--profile-accent-soft);color:var(--profile-accent);display:flex;align-items:center;justify-content:center;font-size:1rem}.profile-field__content{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.profile-field__label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--profile-muted)}.profile-field__value{font-size:.9375rem;font-weight:500;color:var(--profile-text);word-break:break-word}.profile-field__action{flex-shrink:0;font-size:.75rem;font-weight:600;color:var(--profile-accent)}.profile-logout{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-top:.35rem;padding:.85rem 1rem;font-family:inherit;font-size:.9375rem;font-weight:600;color:var(--profile-danger);background:var(--profile-danger-soft);border:1px solid rgba(220,38,38,.2);border-radius:var(--profile-radius);cursor:pointer;transition:background .15s ease,border-color .15s ease}.profile-logout:hover{background:#dc26261f}.profile-logout:focus-visible{outline:2px solid var(--profile-danger);outline-offset:2px}.profile-sheet{position:fixed;inset:0;z-index:2000;background:#0f172a73;display:flex;align-items:flex-end;justify-content:center;animation:profile-fade-in .2s ease}.profile-sheet__panel{width:100%;max-width:720px;background:var(--profile-surface);border-radius:var(--profile-radius) var(--profile-radius) 0 0;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 32px #0f172a1f;animation:profile-slide-up .25s ease}.profile-sheet__title{margin:0 0 .75rem;font-size:.8125rem;font-weight:600;color:var(--profile-muted);text-align:center;text-transform:uppercase;letter-spacing:.05em}.profile-sheet__action,.profile-sheet__cancel{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.85rem;margin-bottom:.4rem;font-family:inherit;font-size:.9375rem;font-weight:600;border-radius:var(--profile-radius-sm);border:1px solid var(--profile-border);background:var(--profile-surface);color:var(--profile-text);cursor:pointer;transition:background .15s ease}.profile-sheet__action:hover:not(:disabled),.profile-sheet__cancel:hover{background:#f8fafc}.profile-sheet__action:disabled{opacity:.45;cursor:not-allowed}.profile-sheet__action--danger{color:var(--profile-danger);border-color:#dc262633;background:var(--profile-danger-soft)}.profile-sheet__cancel{margin-bottom:0;margin-top:.25rem;color:var(--profile-muted);border:none;background:transparent}.profile-sheet__file-input{display:none}@keyframes profile-fade-in{0%{opacity:0}to{opacity:1}}@keyframes profile-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (min-width: 640px){.profile-sheet{align-items:center;padding:1rem}.profile-sheet__panel{border-radius:var(--profile-radius);max-width:22rem;padding:1.25rem}}:root{--header-height: 60px;--bottom-nav-height: 60px;--content-padding: 16px;--border-radius: 8px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--transition: all .3s ease}.header{position:fixed;top:0;left:0;right:0;height:var(--header-height);z-index:1000;background:#fff;box-shadow:var(--shadow-sm);border-bottom:1px solid #e5e7eb;backdrop-filter:blur(10px);background:#fffffff2}.header-inner{height:100%;width:100%;display:flex;align-items:center;justify-content:flex-start;gap:16px;padding:0 var(--content-padding);max-width:100%;margin:0}.header-back-button{background:none;border:none;cursor:pointer;color:#374151;padding:8px;border-radius:50%;transition:var(--transition);display:flex;align-items:center;justify-content:center;min-width:40px;height:40px;flex-shrink:0}.header-back-button:hover{background-color:#f3f4f6;transform:scale(1.05)}.header-back-button:active{transform:scale(.95)}.header-back-button:focus{outline:2px solid #3b82f6;outline-offset:2px}.header-ai-button{border:none;background:#eef2ff;color:#4f46e5;width:36px;height:36px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);flex-shrink:0}.header-ai-button svg{color:#4f46e5;fill:currentColor;stroke:currentColor;stroke-width:.8;display:block}.header-ai-image{width:18px;height:18px;display:block;object-fit:contain}.header-title-row{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.header-ai-button:hover{background:#e0e7ff;transform:translateY(-1px)}.header-ai-button:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.header .header-title{margin:0;font-size:18px;font-weight:600;color:#111827;text-align:left;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.app-container,.app-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:#f9fafb;position:relative}.main-content{flex:1;display:flex;flex-direction:column;min-height:0;position:relative}.main-content.has-header{padding-top:var(--header-height)}.main-content.no-header{padding-top:0}.page-content{flex:1;padding:var(--content-padding);overflow-y:auto;overflow-x:hidden;min-height:0;position:relative}.page-content.with-bottom-nav{padding-bottom:calc(var(--bottom-nav-height) + var(--content-padding))}.page-content.no-bottom-nav{padding-bottom:var(--content-padding)}.full-screen-component{position:fixed;inset:0;z-index:2000;background:#000;overflow:hidden;padding:0!important;margin:0!important}.attendance-success-page,.mark-attendance-page{position:fixed;inset:0;z-index:2000;overflow:hidden;padding:0!important;margin:0!important}@media (max-width: 768px){:root{--content-padding: 12px}.header .header-title{font-size:16px}.header-inner{padding:0 12px}}@media (max-width: 480px){:root{--content-padding: 8px}.header .header-title{font-size:15px}.header-inner{padding:0 8px;gap:12px}.header-back-button{min-width:36px;height:36px}}@media (prefers-reduced-motion: reduce){.header-back-button{transition:none}.header-back-button:hover{transform:none}}@media print{.header,.bottom-navigation{display:none}.main-content.has-header{padding-top:0}.page-content.with-bottom-nav{padding-bottom:var(--content-padding)}}.header-back-button:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@supports (padding: max(0px)){.header{padding-top:max(0px,env(safe-area-inset-top));height:calc(var(--header-height) + max(0px,env(safe-area-inset-top)))}.page-content.with-bottom-nav{padding-bottom:calc(var(--bottom-nav-height) + var(--content-padding) + max(0px,env(safe-area-inset-bottom)))}}.bottom-navigation{position:fixed;bottom:0;left:0;right:0;z-index:1100;display:flex;justify-content:space-around;align-items:stretch;min-height:var(--bottom-nav-height, 60px);padding:8px 12px;padding-bottom:max(8px,env(safe-area-inset-bottom,0px));box-sizing:border-box;background:#fffffffa;border-top:1px solid rgba(15,23,42,.1);box-shadow:0 -4px 24px #0f172a14;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.bottom-navigation .nav-item{flex:1;max-width:120px;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 12px;border-radius:10px;color:#64748b;transition:color .15s ease,background .15s ease;-webkit-tap-highlight-color:transparent}.bottom-navigation .nav-item svg{font-size:22px;width:22px;height:22px;flex-shrink:0}.bottom-navigation .nav-item span{font-size:.6875rem;font-weight:600;line-height:1;letter-spacing:.01em}.bottom-navigation .nav-item.active{color:#0f766e;background:#0f766e14}.bottom-navigation .nav-item:hover{color:#0f766e;background:#0f766e0d}.bottom-navigation .nav-item:focus-visible{outline:2px solid #0f766e;outline-offset:2px}@media (max-width: 380px){.bottom-navigation .nav-item span{font-size:.625rem}.bottom-navigation .nav-item svg{font-size:20px;width:20px;height:20px}}.mark-attendance-page{--ma-accent: #0f766e;--ma-accent-hover: #0d9488;--ma-accent-soft: rgba(15, 118, 110, .15);--ma-surface: #ffffff;--ma-text: #0f172a;--ma-muted: #64748b;--ma-border: rgba(15, 23, 42, .08);--ma-radius: 14px;--ma-shadow: 0 -8px 32px rgba(15, 23, 42, .12);font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;position:fixed;inset:0;z-index:100;background:#0f172a;overflow:hidden}.mark-attendance-page__scanner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}.mark-attendance-page__video-wrap{position:relative;width:100%;height:100%;background:#0f172a;display:flex;align-items:center;justify-content:center;overflow:hidden}.mark-attendance-page__video-wrap video{width:100%;height:100%;object-fit:cover}@supports (-webkit-touch-callout: none){.mark-attendance-page__video-wrap{height:-webkit-fill-available}}.mark-attendance-page__frame{position:absolute;top:50%;left:50%;transform:translate(-50%,-52%);width:min(280px,72vw);height:min(280px,72vw);border:2px solid rgba(255,255,255,.85);border-radius:16px;box-shadow:0 0 0 100vmax #0f172a8c;z-index:10;pointer-events:none}.mark-attendance-page__frame:before{content:"";position:absolute;inset:-2px;border-radius:16px;border:2px solid transparent;border-top-color:var(--ma-accent);border-left-color:var(--ma-accent);width:28px;height:28px;border-right:none;border-bottom:none}.mark-attendance-page__frame:after{content:"";position:absolute;bottom:-2px;right:-2px;width:28px;height:28px;border-radius:0 0 16px;border:2px solid var(--ma-accent);border-top:none;border-left:none}.mark-attendance-page__scan-line{position:absolute;left:8%;right:8%;height:2px;background:linear-gradient(90deg,transparent,var(--ma-accent),transparent);animation:ma-scan 2.2s ease-in-out infinite;z-index:11;pointer-events:none}@keyframes ma-scan{0%,to{top:12%;opacity:.6}50%{top:88%;opacity:1}}.mark-attendance-page__hint{position:absolute;bottom:calc(var(--bottom-nav-height, 60px) + 1.5rem);left:50%;transform:translate(-50%);margin:0;padding:.5rem 1rem;max-width:90%;font-size:.875rem;font-weight:500;color:#fff;text-align:center;text-shadow:0 1px 8px rgba(0,0,0,.5);z-index:11;background:#0f172a73;border-radius:999px;backdrop-filter:blur(8px)}.mark-attendance-page__error{margin:auto;max-width:340px;padding:1.5rem;text-align:center;background:var(--ma-surface);border-radius:var(--ma-radius);box-shadow:var(--ma-shadow);color:var(--ma-text)}.mark-attendance-page__error h2{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:#dc2626}.mark-attendance-page__error p{margin:0 0 1rem;font-size:.875rem;color:var(--ma-muted);line-height:1.45}.mark-attendance-page__btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.65rem 1rem;font-family:inherit;font-size:.875rem;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:background .15s ease,transform .1s ease}.mark-attendance-page__btn:active{transform:scale(.98)}.mark-attendance-page__btn--primary{background:var(--ma-accent);color:#fff}.mark-attendance-page__btn--primary:hover{background:var(--ma-accent-hover)}.mark-attendance-page__btn--secondary{background:#f1f5f9;color:var(--ma-text);border:1px solid var(--ma-border)}.mark-attendance-page__btn--secondary:hover{background:#e2e8f0}.mark-attendance-page__btn:focus-visible{outline:2px solid var(--ma-accent);outline-offset:2px}.mark-attendance-page__sheet{position:fixed;left:0;right:0;bottom:0;z-index:200;padding:0 .65rem calc(var(--bottom-nav-height, 60px) + .5rem + env(safe-area-inset-bottom,0px));animation:ma-sheet-up .3s cubic-bezier(.22,1,.36,1)}@keyframes ma-sheet-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.mark-attendance-page__sheet-card{background:var(--ma-surface);border:1px solid var(--ma-border);border-radius:var(--ma-radius);box-shadow:var(--ma-shadow);padding:1rem 1rem .85rem;color:var(--ma-text);max-height:55vh;overflow-y:auto}.mark-attendance-page__sheet-title{margin:0 0 .25rem;font-size:1rem;font-weight:600;letter-spacing:-.02em}.mark-attendance-page__sheet-status{display:inline-flex;align-items:center;gap:.35rem;margin:0 0 .75rem;font-size:.75rem;font-weight:600;color:var(--ma-accent);background:var(--ma-accent-soft);padding:.25rem .5rem;border-radius:6px}.mark-attendance-page__details{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.85rem;padding:.65rem;background:#f8fafc;border:1px solid var(--ma-border);border-radius:10px;font-size:.8125rem}.mark-attendance-page__detail-row{display:flex;justify-content:space-between;gap:.5rem;line-height:1.35}.mark-attendance-page__detail-label{color:var(--ma-muted);font-weight:500;flex-shrink:0}.mark-attendance-page__detail-value{font-weight:600;text-align:right;min-width:0;word-break:break-word}.mark-attendance-page__actions{display:flex;gap:.5rem}.mark-attendance-page__actions .mark-attendance-page__btn{flex:1}@media (max-width: 380px){.mark-attendance-page__frame{width:min(240px,78vw);height:min(240px,78vw)}.mark-attendance-page__hint{font-size:.8125rem}}@media (prefers-reduced-motion: reduce){.mark-attendance-page__scan-line{animation:none;top:50%}.mark-attendance-page__sheet{animation:none}}.app-shell:has(.attendance-success-page),.main-content:has(.attendance-success-page),.page-content:has(.attendance-success-page){background:#f0f2f5}.page-content:has(.attendance-success-page){flex:1;display:flex;flex-direction:column;padding:0}.attendance-success-page{--as-bg: #f0f2f5;--as-bg-accent: #e8ecf1;--as-surface: #ffffff;--as-border: rgba(15, 23, 42, .08);--as-text: #0f172a;--as-muted: #64748b;--as-accent: #0f766e;--as-accent-hover: #0d9488;--as-accent-soft: rgba(15, 118, 110, .12);--as-att-good: #0f766e;--as-att-warn: #b45309;--as-att-low: #dc2626;--as-gold: #d97706;--as-radius: 14px;--as-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 28px rgba(15, 23, 42, .06);--as-glow: 0 0 0 0 rgba(15, 118, 110, .35);font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;position:fixed;inset:0;z-index:150;display:flex;flex-direction:column;min-height:100dvh;box-sizing:border-box;color:var(--as-text);background-color:var(--as-bg);background-image:radial-gradient(ellipse 90% 60% at 50% 0%,rgba(15,118,110,.12),transparent 55%),linear-gradient(180deg,var(--as-bg) 0%,var(--as-bg-accent) 100%);overflow:hidden}.attendance-success-page__confetti{position:fixed;inset:0;z-index:300;pointer-events:none}.attendance-success-page__main{flex:1;overflow-y:auto;overflow-x:hidden;padding:1.25rem 1rem 1rem;display:flex;flex-direction:column;align-items:center}.attendance-success-page__inner{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:.75rem}.attendance-success-page__hero{width:100%;background:var(--as-surface);border:1px solid var(--as-border);border-radius:var(--as-radius);box-shadow:var(--as-shadow);padding:1rem 1rem .85rem;text-align:center;position:relative;overflow:hidden}.attendance-success-page__hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(15,118,110,.08),transparent 65%);pointer-events:none}.attendance-success-page__lottie{width:120px;height:120px;margin:-.25rem auto 0;pointer-events:none}.attendance-success-page__badge{display:inline-flex;align-items:center;gap:.35rem;margin:0 0 .35rem;padding:.3rem .65rem;font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--as-accent);background:var(--as-accent-soft);border-radius:999px}.attendance-success-page__title{margin:0 0 .25rem;font-size:1.35rem;font-weight:700;letter-spacing:-.03em;color:var(--as-text)}.attendance-success-page__subtitle{margin:0;font-size:.875rem;color:var(--as-muted);line-height:1.4}.attendance-success-page__course{width:100%;background:var(--as-surface);border:1px solid var(--as-border);border-radius:var(--as-radius);box-shadow:var(--as-shadow);padding:.75rem .9rem;text-align:center}.attendance-success-page__course-name{margin:0 0 .2rem;font-size:.9375rem;font-weight:600;letter-spacing:-.02em}.attendance-success-page__course-faculty{margin:0;font-size:.8125rem;color:var(--as-muted)}.attendance-success-page__meta{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;width:100%}.attendance-success-page__meta-chip{font-size:.6875rem;font-weight:500;color:var(--as-text);background:#f8fafc;border:1px solid var(--as-border);border-radius:8px;padding:.3rem .55rem}.attendance-success-page__ring-card{width:100%;background:var(--as-surface);border:1px solid var(--as-border);border-radius:var(--as-radius);box-shadow:var(--as-shadow);padding:1rem;display:flex;flex-direction:column;align-items:center}.attendance-success-page__ring-wrap{position:relative;width:140px;height:140px}.attendance-success-page__ring-svg{width:100%;height:100%;transform:rotate(-90deg)}.attendance-success-page__ring-bg{fill:none;stroke:#e2e8f0}.attendance-success-page__ring-progress{fill:none;stroke-linecap:round;transition:stroke-dashoffset 1.6s cubic-bezier(.22,1,.36,1)}.attendance-success-page__ring-progress--good{stroke:var(--as-att-good)}.attendance-success-page__ring-progress--warn{stroke:var(--as-att-warn)}.attendance-success-page__ring-progress--low{stroke:var(--as-att-low)}.attendance-success-page__ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.attendance-success-page__ring-value{font-size:1.75rem;font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--as-text)}.attendance-success-page__ring-label{margin-top:.2rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--as-muted)}.attendance-success-page__motivation{margin:.75rem 0 0;text-align:center;font-size:.875rem;font-weight:600;color:var(--as-accent);line-height:1.35}.attendance-success-page__motivation-emoji{display:block;font-size:1.5rem;margin-bottom:.25rem;animation:as-bounce 1.2s ease-in-out infinite}@keyframes as-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.attendance-success-page__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;width:100%}.attendance-success-page__stat{background:var(--as-surface);border:1px solid var(--as-border);border-radius:10px;box-shadow:var(--as-shadow);padding:.55rem .35rem;text-align:center}.attendance-success-page__stat-value{display:block;font-size:1.125rem;font-weight:700;color:var(--as-accent);line-height:1.1}.attendance-success-page__stat-label{display:block;margin-top:.15rem;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--as-muted)}.attendance-success-page__footer{flex-shrink:0;padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom,0px));width:100%;max-width:420px;margin:0 auto;box-sizing:border-box}.attendance-success-page__actions{display:flex;gap:.5rem}.attendance-success-page__btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.7rem .75rem;font-family:inherit;font-size:.875rem;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:background .15s ease,transform .1s ease}.attendance-success-page__btn:active{transform:scale(.98)}.attendance-success-page__btn--primary{background:var(--as-accent);color:#fff;box-shadow:0 2px 8px #0f766e40}.attendance-success-page__btn--primary:hover{background:var(--as-accent-hover)}.attendance-success-page__btn--secondary{background:#f1f5f9;color:var(--as-text);border:1px solid var(--as-border)}.attendance-success-page__btn--secondary:hover{background:#e2e8f0}.attendance-success-page__btn:focus-visible{outline:2px solid var(--as-accent);outline-offset:2px}.attendance-success-page--centered{justify-content:center;align-items:center;padding:2rem 1rem}.attendance-success-page__loading,.attendance-success-page__error{text-align:center;background:var(--as-surface);border:1px solid var(--as-border);border-radius:var(--as-radius);box-shadow:var(--as-shadow);padding:2rem 1.25rem;max-width:340px}.attendance-success-page__spinner{width:36px;height:36px;margin:0 auto .75rem;border:3px solid #e2e8f0;border-top-color:var(--as-accent);border-radius:50%;animation:as-spin .7s linear infinite}@keyframes as-spin{to{transform:rotate(360deg)}}.attendance-success-page__error h2{margin:0 0 .5rem;font-size:1.0625rem;font-weight:600;color:var(--as-att-low)}.attendance-success-page__error p{margin:0 0 1rem;font-size:.875rem;color:var(--as-muted)}.attendance-success-page__pulse{position:absolute;top:1.5rem;left:50%;transform:translate(-50%);width:88px;height:88px;border-radius:50%;background:var(--as-accent-soft);animation:as-pulse 2s ease-out infinite;z-index:0}@keyframes as-pulse{0%{transform:translate(-50%) scale(.85);opacity:.7}70%{transform:translate(-50%) scale(1.35);opacity:0}to{transform:translate(-50%) scale(1.35);opacity:0}}@media (max-width: 380px){.attendance-success-page__actions{flex-direction:column}.attendance-success-page__ring-wrap{width:120px;height:120px}.attendance-success-page__ring-value{font-size:1.5rem}}@media (prefers-reduced-motion: reduce){.attendance-success-page__motivation-emoji,.attendance-success-page__pulse{animation:none}.attendance-success-page__ring-progress{transition:none}.attendance-success-page__spinner{animation:none}}.app-shell:has(.courses-page){background:#f0f2f5}.main-content:has(.courses-page){flex:1;display:flex;flex-direction:column;background:#f0f2f5}.page-content:has(.courses-page){flex:1;display:flex;flex-direction:column;padding:0;background:#f0f2f5}.courses-page{flex:1;--courses-bg: #f0f2f5;--courses-bg-accent: #e8ecf1;--courses-surface: #ffffff;--courses-border: rgba(15, 23, 42, .08);--courses-text: #0f172a;--courses-muted: #64748b;--courses-accent: #0f766e;--courses-accent-soft: rgba(15, 118, 110, .12);--courses-radius: 14px;--courses-radius-sm: 10px;--courses-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 28px rgba(15, 23, 42, .06);--courses-att-good: #0f766e;--courses-att-warn: #b45309;--courses-att-low: #dc2626;font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;width:100%;min-height:100%;min-height:calc(100dvh - var(--header-height, 60px) - var(--bottom-nav-height, 60px));box-sizing:border-box;padding:.75rem 1rem 1.25rem;padding-bottom:calc(var(--bottom-nav-height, 60px) + .75rem + env(safe-area-inset-bottom,0px));color:var(--courses-text);background-color:var(--courses-bg);background-image:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(15,118,110,.07),transparent 55%),linear-gradient(180deg,var(--courses-bg) 0%,var(--courses-bg-accent) 100%);overflow-x:hidden}.courses-page__inner{width:100%;max-width:720px;margin:0 auto;box-sizing:border-box;flex:1}.courses-page__summary{margin-bottom:1rem;padding:.15rem .1rem .5rem}.courses-page__count{margin:0;font-size:.8125rem;font-weight:500;color:var(--courses-muted)}.courses-page__list{display:flex;flex-direction:column;gap:.5rem;list-style:none;margin:0;padding:0}.courses-card{appearance:none;width:100%;text-align:left;font-family:inherit;background:var(--courses-surface);border:1px solid var(--courses-border);border-radius:var(--courses-radius);box-shadow:var(--courses-shadow);padding:.65rem .75rem;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .1s ease,opacity .35s ease;opacity:0;transform:translateY(10px);border-left:3px solid var(--courses-muted)}.courses-card--visible{opacity:1;transform:translateY(0)}.courses-card:hover{border-color:#0f766e38;box-shadow:0 4px 24px #0f172a14}.courses-card:active{transform:scale(.995)}.courses-card:focus-visible{outline:2px solid var(--courses-accent);outline-offset:2px}.courses-card--att-good{border-left-color:var(--courses-att-good)}.courses-card--att-warn{border-left-color:var(--courses-att-warn)}.courses-card--att-low{border-left-color:var(--courses-att-low)}.courses-card--sample{opacity:.85}.courses-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.45rem}.courses-card__title-block{flex:1;min-width:0}.courses-card__title{margin:0;font-size:.9375rem;font-weight:600;letter-spacing:-.02em;color:var(--courses-text);line-height:1.25;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem}.courses-card__title-icon{flex-shrink:0;color:var(--courses-accent);font-size:1rem}.courses-card__code{display:inline-block;font-size:.625rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--courses-muted);background:#f1f5f9;padding:.15rem .4rem;border-radius:5px}.courses-card__badge{flex-shrink:0;font-size:.75rem;font-weight:700;padding:.25rem .45rem;border-radius:8px;line-height:1;letter-spacing:-.02em}.courses-card__badge--good{color:var(--courses-att-good);background:#0f766e1a}.courses-card__badge--warn{color:var(--courses-att-warn);background:#b453091a}.courses-card__badge--low{color:var(--courses-att-low);background:#dc26261a}.courses-card__progress{height:3px;border-radius:999px;background:#e2e8f0;margin-bottom:.45rem;overflow:hidden}.courses-card__progress-fill{height:100%;border-radius:inherit;transition:width .4s ease}.courses-card__progress-fill--good{background:var(--courses-att-good)}.courses-card__progress-fill--warn{background:var(--courses-att-warn)}.courses-card__progress-fill--low{background:var(--courses-att-low)}.courses-card__footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.75rem;line-height:1.2}.courses-card__faculty{flex:1;min-width:0;font-weight:500;color:var(--courses-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.courses-card__lectures{flex-shrink:0;font-weight:600;color:var(--courses-muted);white-space:nowrap}.courses-card__skeleton{min-height:72px;border-radius:var(--courses-radius-sm);background:linear-gradient(90deg,#f1f5f9,#e2e8f0,#f1f5f9);background-size:200% 100%;animation:courses-shimmer 1.2s ease-in-out infinite}@keyframes courses-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.courses-page__empty{text-align:center;padding:2.5rem 1rem;background:var(--courses-surface);border:1px dashed var(--courses-border);border-radius:var(--courses-radius);color:var(--courses-muted);font-size:.9375rem}@media (max-width: 480px){.courses-page{padding-left:.75rem;padding-right:.75rem}.courses-card__title{font-size:.875rem}.courses-card__footer{flex-wrap:wrap}}@media (prefers-reduced-motion: reduce){.courses-card{transition:none}.courses-card__skeleton{animation:none;background:#e2e8f0}}.app-shell:has(.courses-detail-page),.main-content:has(.courses-detail-page),.page-content:has(.courses-detail-page){background:#f0f2f5}.page-content:has(.courses-detail-page){flex:1;display:flex;flex-direction:column;padding:0}.courses-detail-page{flex:1;--cd-bg: #f0f2f5;--cd-bg-accent: #e8ecf1;--cd-surface: #ffffff;--cd-border: rgba(15, 23, 42, .08);--cd-text: #0f172a;--cd-muted: #64748b;--cd-accent: #0f766e;--cd-accent-soft: rgba(15, 118, 110, .12);--cd-att-good: #0f766e;--cd-att-warn: #b45309;--cd-att-low: #dc2626;--cd-radius: 14px;--cd-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 28px rgba(15, 23, 42, .06);font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;width:100%;min-height:100%;min-height:calc(100dvh - var(--header-height, 60px) - var(--bottom-nav-height, 60px));box-sizing:border-box;padding:.75rem 1rem 1.25rem;padding-bottom:calc(var(--bottom-nav-height, 60px) + .75rem + env(safe-area-inset-bottom,0px));color:var(--cd-text);background-color:var(--cd-bg);background-image:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(15,118,110,.07),transparent 55%),linear-gradient(180deg,var(--cd-bg) 0%,var(--cd-bg-accent) 100%);overflow-x:hidden}.courses-detail-page__inner{width:100%;max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:.65rem}.courses-detail-card{background:var(--cd-surface);border:1px solid var(--cd-border);border-radius:var(--cd-radius);box-shadow:var(--cd-shadow);padding:.85rem .9rem}.courses-detail-card__title{margin:0 0 .65rem;font-size:.8125rem;font-weight:600;color:var(--cd-muted);text-transform:uppercase;letter-spacing:.05em}.courses-detail-empty{text-align:center;padding:2rem 1rem;color:var(--cd-att-low);font-size:.9375rem}.courses-detail-hero{display:flex;align-items:center;gap:.85rem}.courses-detail-hero__ring{flex-shrink:0;width:72px;height:72px;border-radius:50%;border:3px solid var(--cd-muted);display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--cd-surface)}.courses-detail-hero__ring--good{border-color:var(--cd-att-good)}.courses-detail-hero__ring--warn{border-color:var(--cd-att-warn)}.courses-detail-hero__ring--low{border-color:var(--cd-att-low)}.courses-detail-hero__percent{font-size:1.125rem;font-weight:700;letter-spacing:-.02em;line-height:1}.courses-detail-hero__status{margin-top:.2rem;font-size:.5625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.courses-detail-hero__status--good{color:var(--cd-att-good)}.courses-detail-hero__status--warn{color:var(--cd-att-warn)}.courses-detail-hero__status--low{color:var(--cd-att-low)}.courses-detail-hero__info{flex:1;min-width:0}.courses-detail-hero__info h1{margin:0 0 .25rem;font-size:1rem;font-weight:600;letter-spacing:-.02em;line-height:1.25}.courses-detail-hero__info p{margin:0;font-size:.8125rem;color:var(--cd-muted);font-weight:500}.courses-detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;padding:0;background:transparent;border:none;box-shadow:none}.courses-detail-stat{background:var(--cd-surface);border:1px solid var(--cd-border);border-radius:10px;padding:.55rem .5rem;text-align:center;box-shadow:var(--cd-shadow)}.courses-detail-stat__value{display:block;font-size:1.125rem;font-weight:700;color:var(--cd-accent);line-height:1.1}.courses-detail-stat__label{display:block;margin-top:.15rem;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--cd-muted)}.courses-detail-graph{min-height:0;padding-bottom:.5rem}.courses-detail-graph__chart{position:relative;height:150px;padding:0 0 0 2rem}.courses-detail-graph__y{position:absolute;left:0;top:0;height:120px;display:flex;flex-direction:column;justify-content:space-between;font-size:.625rem;font-weight:500;color:var(--cd-muted)}.courses-detail-graph__svg-wrap{height:120px;width:100%}.courses-detail-graph__line{fill:none;stroke:var(--cd-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.courses-detail-graph__x{display:flex;justify-content:space-between;gap:.25rem;margin-top:.35rem;padding-left:2rem;font-size:.625rem;font-weight:500;color:var(--cd-muted)}.courses-detail-graph__x span{flex:1;text-align:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.courses-detail-records{padding-bottom:.5rem}.courses-detail-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--cd-border);border-radius:10px;background:#fafbfc}.courses-detail-table{width:100%;min-width:280px}.courses-detail-table__head,.courses-detail-table__row{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,.6fr) minmax(0,.6fr);gap:.5rem;align-items:center;padding:.5rem .65rem}.courses-detail-table__head{background:#f1f5f9;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--cd-muted);border-bottom:1px solid var(--cd-border)}.courses-detail-table__row{font-size:.8125rem;background:var(--cd-surface);border-bottom:1px solid var(--cd-border);transition:background .12s ease}.courses-detail-table__row:last-child{border-bottom:none}.courses-detail-table__row:hover{background:var(--cd-accent-soft)}.courses-detail-table__date{display:flex;flex-direction:column;gap:.1rem;min-width:0}.courses-detail-table__date-main{font-weight:600;color:var(--cd-text)}.courses-detail-table__date-time{font-size:.6875rem;color:var(--cd-muted)}.courses-detail-table__status{display:flex;justify-content:center}.courses-detail-table__status-icon{font-size:1.125rem}.courses-detail-table__status-icon--present{color:var(--cd-att-good)}.courses-detail-table__status-icon--absent{color:var(--cd-att-low)}.courses-detail-table__action{display:flex;justify-content:center}.courses-detail-view-btn{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:var(--cd-accent-soft);color:var(--cd-accent);font-size:.875rem;cursor:pointer;transition:background .15s ease,color .15s ease}.courses-detail-view-btn:hover{background:var(--cd-accent);color:#fff}.courses-detail-view-btn:focus-visible{outline:2px solid var(--cd-accent);outline-offset:2px}@media (max-width: 480px){.courses-detail-page{padding-left:.75rem;padding-right:.75rem}.courses-detail-hero__ring{width:64px;height:64px}.courses-detail-hero__percent{font-size:1rem}}@media (prefers-reduced-motion: reduce){.courses-detail-table__row{transition:none}}.support-page{height:100%;width:100%;display:flex;flex-direction:column}.support-container{display:flex;flex-direction:column;height:100%;min-height:100vh;background-color:#f3f4f6;position:relative;color:#1f2937;color-scheme:light;padding:0;margin:0}.messages-container{flex:1;overflow-y:auto;padding:1rem .5rem;background-color:#f3f4f6;color:#1f2937;padding-bottom:calc(70px + 1rem);padding-top:1rem}.message-wrapper{display:flex;margin-bottom:.5rem}.message-wrapper.user{justify-content:flex-end}.message-wrapper.admin{justify-content:flex-start}.message-bubble{max-width:75%;padding:.75rem 1rem;border-radius:.5rem;box-shadow:0 1px 3px #0000001a}.message-bubble.user{background-color:#3b82f6;color:#fff}.message-bubble.admin{background-color:#fff;color:#1f2937;border:1px solid #e5e7eb}.message-text{margin:0;padding:0;white-space:pre-wrap;word-wrap:break-word;line-height:1.3;color:inherit;font-size:.95rem}.message-text h1,.message-text h2,.message-text h3,.message-text h4,.message-text h5,.message-text h6{margin-top:.3em;margin-bottom:.2em;font-weight:700;color:inherit}.message-text p{margin:.75em 0;color:inherit}.message-text p:first-child{margin-top:0}.message-text p:last-child{margin-bottom:0}.message-text ul,.message-text ol{margin:.2em 0;padding-left:1.2em;list-style-position:outside;color:inherit}.message-text ol{counter-reset:item;list-style-type:none;padding-left:0;margin:.75em 0}.message-text ol>li{counter-increment:item;display:block;margin:.5em 0;padding-left:2.5em;position:relative;line-height:1.5}.message-text ol>li:before{content:counter(item) ".";position:absolute;left:0;width:2em;text-align:right;font-weight:600;color:inherit}.message-text ul{list-style-type:none;padding-left:0;margin:.75em 0}.message-text ul>li{position:relative;padding-left:1.5em;margin:.5em 0;line-height:1.5}.message-text ul>li:before{content:"•";position:absolute;left:.5em;color:inherit;font-size:1.2em}.message-text li:last-child{margin-bottom:0}.message-text li>p{margin:0;display:inline}.message-text strong{font-weight:600;color:inherit}.message-text em{font-style:italic;color:inherit}.message-text code{background-color:#f0f0f0;padding:.2em .4em;border-radius:3px;font-family:monospace;color:#1f2937}.message-text pre{background-color:#f0f0f0;padding:.75em;border-radius:5px;overflow-x:auto;margin:.3em 0;color:#1f2937}.message-text blockquote{border-left:3px solid #ccc;margin:.3em 0;padding-left:.75em;color:#666}.message-timestamp{font-size:.75rem;margin-top:.25rem;opacity:.75;color:inherit}.typing-indicator{display:flex;align-items:center;gap:.25rem;padding:.5rem;margin-bottom:1rem}.typing-dot{width:6px;height:6px;background-color:#9ca3af;border-radius:50%;animation:typing-bounce 1.4s infinite ease-in-out}.typing-dot:nth-child(1){animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,80%,to{transform:scale(.6)}40%{transform:scale(1)}}.message-form{padding:1rem;background-color:#fff;border-top:1px solid #e5e7eb;position:fixed;left:0;right:0;z-index:10;bottom:56px}.form-container{display:flex;gap:.5rem;max-width:100%}.message-input{flex:1;padding:.75rem;border:1px solid #e5e7eb;border-radius:.5rem;font-size:.875rem;background-color:#fff;color:#1f2937;min-height:44px}.message-input::placeholder{color:#9ca3af}.message-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.send-button{padding:.75rem;background-color:#3b82f6;color:#fff;border:none;border-radius:.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;width:44px;height:44px;position:relative;transition:background-color .2s ease}.send-button:hover{background-color:#2563eb}.send-button:disabled{background-color:#9ca3af;cursor:not-allowed}.spinner{width:1.2rem;height:1.2rem;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.fade-in-text{opacity:0;animation:fadeIn .3s ease-in-out forwards}.message-text ul ul,.message-text ol ul,.message-text ul ol,.message-text ol ol{margin:.25em 0 .25em 1em}@media (max-width: 768px){.support-container{height:100vh}.messages-container{padding:.75rem .5rem;padding-bottom:calc(126px + .75rem)}.message-bubble{max-width:85%;padding:.625rem .875rem}.message-text{font-size:.9rem}.message-form{padding:.75rem;bottom:56px}.message-input{padding:.625rem;font-size:.875rem}.send-button{width:40px;height:40px;padding:.625rem}}@media (max-width: 480px){.messages-container{padding:.5rem .25rem;padding-bottom:calc(126px + .5rem)}.message-bubble{max-width:90%;padding:.5rem .75rem}.message-text{font-size:.85rem}.message-form{padding:.5rem}.message-input{padding:.5rem;font-size:.875rem}.send-button{width:36px;height:36px;padding:.5rem}}@supports (padding: max(0px)){.message-form{padding-bottom:max(1rem,env(safe-area-inset-bottom))}}.app-shell:has(.notice-page){background:#f0f2f5}.main-content:has(.notice-page){flex:1;display:flex;flex-direction:column;background:#f0f2f5}.page-content:has(.notice-page){flex:1;display:flex;flex-direction:column;padding:0;background:#f0f2f5}.notice-page{flex:1;--notice-bg: #f0f2f5;--notice-bg-accent: #e8ecf1;--notice-surface: #ffffff;--notice-border: rgba(15, 23, 42, .08);--notice-text: #0f172a;--notice-muted: #64748b;--notice-accent: #0f766e;--notice-accent-soft: rgba(15, 118, 110, .12);--notice-radius: 14px;--notice-radius-sm: 10px;--notice-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 28px rgba(15, 23, 42, .06);font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;width:100%;min-height:100%;min-height:calc(100dvh - var(--header-height, 60px) - var(--bottom-nav-height, 60px));box-sizing:border-box;padding:.75rem 1rem 1.25rem;padding-bottom:calc(var(--bottom-nav-height, 60px) + .75rem + env(safe-area-inset-bottom,0px));color:var(--notice-text);background-color:var(--notice-bg);background-image:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(15,118,110,.07),transparent 55%),linear-gradient(180deg,var(--notice-bg) 0%,var(--notice-bg-accent) 100%);overflow-x:hidden}.notice-page__inner{width:100%;max-width:720px;margin:0 auto;box-sizing:border-box;display:flex;flex-direction:column;min-height:0}.notice-page__empty{margin:2rem 0;text-align:center;font-size:.9375rem;font-weight:500;color:var(--notice-muted)}.notice-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;padding:.65rem .85rem;background:var(--notice-surface);border:1px solid var(--notice-border);border-radius:var(--notice-radius);box-shadow:var(--notice-shadow)}.notice-toolbar__status{display:flex;align-items:center;gap:.5rem;min-width:0}.notice-toolbar__bell{position:relative;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--notice-accent-soft);color:var(--notice-accent);font-size:.95rem}.notice-toolbar__badge{position:absolute;top:-4px;right:-4px;min-width:1rem;height:1rem;padding:0 .2rem;border-radius:999px;background:#dc2626;color:#fff;font-size:.625rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--notice-surface)}.notice-toolbar__label{font-size:.8125rem;font-weight:600;color:var(--notice-text)}.notice-toolbar__actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.notice-toolbar__btn{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .55rem;border-radius:var(--notice-radius-sm);border:1px solid var(--notice-border);background:#f8fafc;color:var(--notice-muted);font-family:inherit;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.notice-toolbar__btn:hover{background:var(--notice-accent-soft);color:var(--notice-accent);border-color:#0f766e40}.notice-toolbar__btn--active{background:var(--notice-accent-soft);color:var(--notice-accent);border-color:#0f766e4d}.notice-toolbar__btn:focus-visible{outline:2px solid var(--notice-accent);outline-offset:2px}.notice-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.notice-filters__btn{appearance:none;border:1px solid var(--notice-border);background:var(--notice-surface);color:var(--notice-muted);font-family:inherit;font-size:.8125rem;font-weight:600;padding:.4rem .85rem;border-radius:999px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.notice-filters__btn--active{background:var(--notice-accent-soft);color:var(--notice-accent);border-color:#0f766e4d}.notice-page__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.notice-card{background:var(--notice-surface);border:1px solid var(--notice-border);border-radius:var(--notice-radius);box-shadow:var(--notice-shadow);padding:.85rem .9rem;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .1s ease}.notice-card:hover{border-color:#0f766e33;box-shadow:0 2px 4px #0f172a0d,0 12px 32px #0f172a14}.notice-card:active{transform:scale(.995)}.notice-card:focus-visible{outline:2px solid var(--notice-accent);outline-offset:2px}.notice-card--unread{border-left:3px solid var(--notice-accent)}.notice-card--read{border-left:3px solid var(--notice-muted);opacity:.92}.notice-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:.65rem;margin-bottom:.4rem}.notice-card__title{margin:0;font-size:.9375rem;font-weight:700;color:var(--notice-text);line-height:1.3;flex:1;min-width:0}.notice-card--unread .notice-card__title{color:var(--notice-accent)}.notice-card__date{flex-shrink:0;font-size:.6875rem;font-weight:600;color:var(--notice-muted);white-space:nowrap}.notice-card__preview{margin:0;font-size:.8125rem;font-weight:500;color:var(--notice-muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notice-card__footer{display:flex;justify-content:flex-end;margin-top:.55rem}.notice-card__toggle{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .45rem;border:none;border-radius:var(--notice-radius-sm);background:transparent;color:var(--notice-muted);font-family:inherit;font-size:.6875rem;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease}.notice-card__toggle:hover{background:var(--notice-accent-soft);color:var(--notice-accent)}.notice-detail-container{height:calc(100vh - 120px);background-color:#f3f4f6;display:flex;flex-direction:column}.notice-detail-header{background-color:#fff;padding:1rem;border-bottom:1px solid #e5e7eb}.back-button{display:flex;align-items:center;gap:1rem;background:none;border:none;color:#1f2937;font-size:1rem;cursor:pointer;padding:0}.notice-detail-content{padding:1rem;flex:1;overflow-y:auto}.notice-detail-title{background-color:#fff;padding:1rem;border-radius:.5rem;margin-bottom:1rem}.notice-detail-title h2{margin:0 0 .5rem;color:#1f2937}.notice-detail-date{color:#6b7280;font-size:.875rem}.notice-detail-body{background-color:#fff;padding:1rem;border-radius:.5rem;line-height:1.6}.app-shell:has(.lecture-summary-page),.main-content:has(.lecture-summary-page),.page-content:has(.lecture-summary-page){background:#f0f2f5}.page-content:has(.lecture-summary-page){flex:1;display:flex;flex-direction:column;padding:0}.lecture-summary-page{flex:1;--ls-bg: #f0f2f5;--ls-bg-accent: #e8ecf1;--ls-surface: #ffffff;--ls-border: rgba(15, 23, 42, .08);--ls-text: #0f172a;--ls-muted: #64748b;--ls-accent: #0f766e;--ls-accent-soft: rgba(15, 118, 110, .12);--ls-present: #0f766e;--ls-absent: #dc2626;--ls-radius: 14px;--ls-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 28px rgba(15, 23, 42, .06);font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;width:100%;min-height:100%;min-height:calc(100dvh - var(--header-height, 60px) - var(--bottom-nav-height, 60px));box-sizing:border-box;padding:.75rem 1rem 1.25rem;padding-bottom:calc(var(--bottom-nav-height, 60px) + .75rem + env(safe-area-inset-bottom,0px));color:var(--ls-text);background-color:var(--ls-bg);background-image:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(15,118,110,.07),transparent 55%),linear-gradient(180deg,var(--ls-bg) 0%,var(--ls-bg-accent) 100%);overflow-x:hidden}.lecture-summary-page__inner{width:100%;max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:.65rem}.lecture-summary-card{background:var(--ls-surface);border:1px solid var(--ls-border);border-radius:var(--ls-radius);box-shadow:var(--ls-shadow);padding:.85rem .9rem}.lecture-summary-course{display:flex;align-items:center;gap:.5rem;padding-bottom:.65rem;margin-bottom:.65rem;border-bottom:1px solid var(--ls-border)}.lecture-summary-course__icon{flex-shrink:0;color:var(--ls-accent);font-size:1.125rem}.lecture-summary-course__title{margin:0;font-size:.9375rem;font-weight:600;letter-spacing:-.02em;line-height:1.25}.lecture-summary-details__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.6rem}.lecture-summary-details__label{font-size:.8125rem;font-weight:600;color:var(--ls-muted);text-transform:uppercase;letter-spacing:.04em}.lecture-summary-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.6875rem;font-weight:600;padding:.2rem .5rem;border-radius:6px}.lecture-summary-badge--present{color:var(--ls-present);background:#0f766e1a}.lecture-summary-badge--absent{color:var(--ls-absent);background:#dc26261a}.lecture-summary-meta{display:flex;flex-wrap:wrap;gap:.5rem}.lecture-summary-meta__item{display:inline-flex;align-items:center;gap:.35rem;font-size:.8125rem;font-weight:500;color:var(--ls-text);background:#f8fafc;border:1px solid var(--ls-border);border-radius:8px;padding:.35rem .55rem}.lecture-summary-meta__icon{color:var(--ls-accent);font-size:.75rem}.lecture-summary-section__head{display:flex;align-items:center;gap:.45rem;margin-bottom:.5rem}.lecture-summary-section__head h2{margin:0;flex:1;font-size:.8125rem;font-weight:600;color:var(--ls-muted);text-transform:uppercase;letter-spacing:.05em}.lecture-summary-section__icon{color:var(--ls-accent);font-size:.9rem}.lecture-summary-section__actions{display:flex;align-items:center;gap:.25rem;margin-left:auto}.lecture-summary-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;border-radius:8px;background:var(--ls-accent-soft);color:var(--ls-accent);font-size:.8rem;cursor:pointer;transition:background .15s ease,color .15s ease;position:relative}.lecture-summary-btn:hover{background:var(--ls-accent);color:#fff}.lecture-summary-btn:focus-visible{outline:2px solid var(--ls-accent);outline-offset:2px}.lecture-summary-dropdown{position:relative}.lecture-summary-format-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:110px;background:var(--ls-surface);border:1px solid var(--ls-border);border-radius:10px;box-shadow:var(--ls-shadow);z-index:20;overflow:hidden}.lecture-summary-format-option{display:flex;align-items:center;gap:.4rem;width:100%;padding:.5rem .65rem;border:none;background:none;font-family:inherit;font-size:.8125rem;font-weight:500;color:var(--ls-text);cursor:pointer;text-align:left}.lecture-summary-format-option:hover{background:var(--ls-accent-soft)}.lecture-summary-copied{position:absolute;top:-1.6rem;left:50%;transform:translate(-50%);background:var(--ls-present);color:#fff;font-size:.6875rem;font-weight:600;padding:.15rem .45rem;border-radius:6px;white-space:nowrap;pointer-events:none}.lecture-summary-body{margin:0}.lecture-summary-text{background:#f8fafc;border:1px solid var(--ls-border);border-radius:10px;padding:.75rem;font-size:.875rem;line-height:1.55;color:var(--ls-text);white-space:pre-line}.lecture-summary-text p{margin:0}.lecture-summary-markdown{white-space:normal}.lecture-summary-markdown p{margin:0 0 .6rem}.lecture-summary-markdown p:last-child{margin-bottom:0}.lecture-summary-markdown h1,.lecture-summary-markdown h2,.lecture-summary-markdown h3,.lecture-summary-markdown h4{margin:.25rem 0 .55rem;line-height:1.3}.lecture-summary-markdown h2{font-size:1rem}.lecture-summary-markdown ul,.lecture-summary-markdown ol{margin:0 0 .6rem;padding-left:1.2rem}.lecture-summary-markdown li{margin-bottom:.25rem}.lecture-summary-markdown hr{border:0;border-top:1px solid var(--ls-border);margin:.7rem 0}.lecture-summary-markdown table{width:100%;border-collapse:collapse;margin:.35rem 0 .65rem;font-size:.8125rem;display:block;overflow-x:auto}.lecture-summary-markdown th,.lecture-summary-markdown td{border:1px solid var(--ls-border);padding:.35rem .45rem;text-align:left;white-space:nowrap}.lecture-summary-markdown th{background:#0f766e14;font-weight:600}.lecture-summary-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1.25rem 0;font-size:.8125rem;color:var(--ls-muted)}.lecture-summary-spinner{width:18px;height:18px;border:2px solid #e2e8f0;border-top-color:var(--ls-accent);border-radius:50%;animation:lecture-spin .7s linear infinite}@keyframes lecture-spin{to{transform:rotate(360deg)}}.lecture-summary-audio{width:100%;border-radius:10px;margin-top:.25rem}@media (max-width: 480px){.lecture-summary-page{padding-left:.75rem;padding-right:.75rem}.lecture-summary-meta{flex-direction:column}.lecture-summary-meta__item{width:100%;box-sizing:border-box}}@media (prefers-reduced-motion: reduce){.lecture-summary-spinner{animation:none}}.app-shell:has(.learn-page){background:#f0f2f5}.main-content:has(.learn-page){flex:1;display:flex;flex-direction:column;background:#f0f2f5}.page-content:has(.learn-page){flex:1;display:flex;flex-direction:column;padding:0;background:#f0f2f5}.learn-page{flex:1;--learn-bg: #f0f2f5;--learn-bg-accent: #e8ecf1;--learn-surface: #ffffff;--learn-border: rgba(15, 23, 42, .08);--learn-text: #0f172a;--learn-muted: #64748b;--learn-accent: #0f766e;--learn-accent-soft: rgba(15, 118, 110, .12);--learn-radius: 14px;--learn-radius-sm: 10px;--learn-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 28px rgba(15, 23, 42, .06);font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;width:100%;min-height:100%;min-height:calc(100dvh - var(--header-height, 60px) - var(--bottom-nav-height, 60px));box-sizing:border-box;padding:.75rem 1rem 1.25rem;padding-bottom:calc(var(--bottom-nav-height, 60px) + .75rem + env(safe-area-inset-bottom,0px));color:var(--learn-text);background-color:var(--learn-bg);background-image:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(15,118,110,.07),transparent 55%),linear-gradient(180deg,var(--learn-bg) 0%,var(--learn-bg-accent) 100%);overflow-x:hidden}.learn-page__inner{width:100%;max-width:720px;margin:0 auto;box-sizing:border-box}.learn-page__summary{margin-bottom:.85rem;padding:.15rem .1rem .35rem}.learn-page__count{margin:0;display:flex;align-items:center;gap:.4rem;font-size:.8125rem;font-weight:500;color:var(--learn-muted)}.learn-page__count-icon{font-size:1rem;color:var(--learn-accent)}.learn-page__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.learn-card{appearance:none;width:100%;display:flex;align-items:center;gap:.85rem;padding:.85rem .9rem;text-align:left;font-family:inherit;background:var(--learn-surface);border:1px solid var(--learn-border);border-radius:var(--learn-radius);box-shadow:var(--learn-shadow);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .1s ease;border-left:3px solid var(--learn-accent)}.learn-card:hover{border-color:#0f766e38;box-shadow:0 2px 4px #0f172a0d,0 12px 32px #0f172a14}.learn-card:active{transform:scale(.995)}.learn-card:focus-visible{outline:2px solid var(--learn-accent);outline-offset:2px}.learn-card__logo-wrap{flex-shrink:0;width:2.75rem;height:2.75rem;border-radius:var(--learn-radius-sm);background:#f8fafc;border:1px solid var(--learn-border);display:flex;align-items:center;justify-content:center;overflow:hidden}.learn-card__logo{width:2rem;height:2rem;object-fit:contain}.learn-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.learn-card__name{font-size:.9375rem;font-weight:600;color:var(--learn-text)}.learn-card__hint{font-size:.75rem;font-weight:500;color:var(--learn-muted)}.learn-card__arrow{flex-shrink:0;font-size:1.125rem;color:var(--learn-accent)}.app-shell:has(.assistant-page){background:#f0f2f5}.main-content:has(.assistant-page){flex:1;display:flex;flex-direction:column;background:#f0f2f5}.page-content:has(.assistant-page){flex:1;display:flex;flex-direction:column;padding:0;background:#f0f2f5;overflow:hidden}.assistant-page{flex:1;display:flex;flex-direction:column;min-height:0;height:100%;--asst-bg: #f0f2f5;--asst-bg-accent: #e8ecf1;--asst-surface: #ffffff;--asst-border: rgba(15, 23, 42, .08);--asst-text: #0f172a;--asst-muted: #64748b;--asst-accent: #0f766e;--asst-accent-soft: rgba(15, 118, 110, .12);--asst-user-bubble: #0f766e;--asst-radius: 14px;--asst-radius-sm: 10px;--asst-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 28px rgba(15, 23, 42, .06);font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;width:100%;min-height:calc(100dvh - var(--header-height, 60px) - var(--bottom-nav-height, 60px));box-sizing:border-box;color:var(--asst-text);background-color:var(--asst-bg);background-image:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(15,118,110,.07),transparent 55%),linear-gradient(180deg,var(--asst-bg) 0%,var(--asst-bg-accent) 100%)}.assistant-page__inner{flex:1;display:flex;flex-direction:column;min-height:0;width:100%;max-width:720px;margin:0 auto;padding:.65rem .85rem;padding-bottom:calc(var(--bottom-nav-height, 60px) + .65rem + env(safe-area-inset-bottom,0px));box-sizing:border-box}.assistant-context{flex-shrink:0;margin-bottom:.65rem;padding:.55rem .75rem;background:var(--asst-accent-soft);border:1px solid rgba(15,118,110,.2);border-radius:var(--asst-radius-sm);font-size:.75rem;font-weight:500;color:var(--asst-accent);line-height:1.4}.assistant-context strong{font-weight:700}.assistant-messages{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:.35rem}.assistant-hero{flex:1;display:flex;align-items:center;justify-content:center;padding:1.5rem .5rem 2rem}.assistant-hero__card{text-align:center;max-width:22rem;padding:1.5rem 1.25rem;background:var(--asst-surface);border:1px solid var(--asst-border);border-radius:var(--asst-radius);box-shadow:var(--asst-shadow)}.assistant-hero__icon{width:3.25rem;height:3.25rem;margin:0 auto .85rem;border-radius:50%;background:linear-gradient(135deg,var(--asst-accent) 0%,#14b8a6 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.35rem;box-shadow:0 4px 16px #0f766e47}.assistant-hero__title{margin:0 0 .5rem;font-size:clamp(1.15rem,4vw,1.35rem);font-weight:700;letter-spacing:-.02em;color:var(--asst-text);line-height:1.25}.assistant-hero__text{margin:0;font-size:.875rem;font-weight:500;color:var(--asst-muted);line-height:1.5}.assistant-chat{display:flex;flex-direction:column;gap:.55rem;padding:.35rem .1rem .75rem}.assistant-message{max-width:88%;padding:.65rem .85rem;border-radius:var(--asst-radius);font-size:.875rem;font-weight:500;line-height:1.45;word-break:break-word}.assistant-message p{margin:0}.assistant-message--assistant{align-self:flex-start;background:var(--asst-surface);border:1px solid var(--asst-border);color:var(--asst-text);border-bottom-left-radius:4px;box-shadow:var(--asst-shadow)}.assistant-message--user{align-self:flex-end;background:var(--asst-user-bubble);color:#fff;border-bottom-right-radius:4px;box-shadow:0 2px 10px #0f766e40}.assistant-message--typing{align-self:flex-start;background:var(--asst-surface);border:1px solid var(--asst-border);color:var(--asst-muted);font-size:.8125rem}.assistant-message--typing span{display:inline-flex;gap:.2rem;align-items:center}.assistant-message--typing span:after{content:"";width:4px;height:4px;border-radius:50%;background:var(--asst-accent);animation:asst-dot 1.2s ease-in-out infinite}@keyframes asst-dot{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.assistant-markdown{font-size:.9375rem;line-height:1.55;word-break:break-word}.assistant-markdown p{margin:0 0 .5rem}.assistant-markdown p:last-child{margin-bottom:0}.assistant-markdown ul,.assistant-markdown ol{margin:0 0 .5rem;padding-left:1.25rem}.assistant-markdown h1,.assistant-markdown h2,.assistant-markdown h3,.assistant-markdown h4{margin:.35rem 0 .5rem;line-height:1.3}.assistant-markdown h2{font-size:1rem}.assistant-markdown hr{border:0;border-top:1px solid var(--asst-border);margin:.6rem 0}.assistant-markdown table{width:100%;border-collapse:collapse;margin:.35rem 0 .6rem;font-size:.82rem;display:block;overflow-x:auto}.assistant-markdown th,.assistant-markdown td{border:1px solid var(--asst-border);padding:.35rem .45rem;text-align:left;white-space:nowrap}.assistant-markdown th{background:#0f766e14;font-weight:600}.assistant-markdown strong{font-weight:600}.assistant-markdown code{font-size:.85em;padding:.1rem .35rem;border-radius:4px;background:#0f172a0f}.assistant-markdown__cursor{display:inline-block;width:2px;height:1em;margin-left:2px;vertical-align:text-bottom;background:var(--asst-accent);animation:asst-cursor 1s step-end infinite}@keyframes asst-cursor{50%{opacity:0}}.assistant-suggestions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:1rem;width:100%}.assistant-suggestion{padding:.55rem .65rem;border:1px solid var(--asst-border);border-radius:var(--asst-radius-sm);background:var(--asst-surface);color:var(--asst-text);font-size:.75rem;font-weight:500;text-align:left;cursor:pointer;line-height:1.35;transition:border-color .15s,background .15s}.assistant-suggestion:hover:not(:disabled){border-color:#0f766e59;background:var(--asst-accent-soft)}.assistant-suggestion:disabled{opacity:.55;cursor:not-allowed}.assistant-attachments{display:flex;flex-wrap:wrap;gap:.5rem;padding:.35rem .1rem .65rem;flex-shrink:0}.assistant-attachment{position:relative;width:3.25rem;height:3.25rem;border-radius:var(--asst-radius-sm);overflow:hidden;background:var(--asst-surface);border:1px solid var(--asst-border);flex-shrink:0;box-shadow:0 2px 8px #0f172a14}.assistant-attachment__img{width:100%;height:100%;object-fit:cover}.assistant-attachment__label{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:.5625rem;font-weight:600;color:var(--asst-muted);padding:.2rem;text-align:center;line-height:1.2}.assistant-attachment__remove{position:absolute;top:2px;right:2px;width:1.125rem;height:1.125rem;border-radius:50%;border:none;background:#0f172abf;color:#fff;font-size:.75rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}.assistant-composer{flex-shrink:0;display:flex;align-items:center;gap:.35rem;margin-top:auto;padding:.45rem .5rem .45rem .65rem;background:var(--asst-surface);border:1px solid var(--asst-border);border-radius:999px;box-shadow:var(--asst-shadow);position:relative;z-index:1}.assistant-composer__file-input{display:none}.assistant-composer button{padding:0;margin:0;font-family:inherit;line-height:1;box-sizing:border-box}.assistant-composer__attach svg,.assistant-composer__send svg,.assistant-composer__voice svg{width:1.125rem;height:1.125rem;flex-shrink:0;display:block;pointer-events:none}.assistant-composer__attach{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;border:none;background:var(--asst-accent-soft);color:var(--asst-accent);cursor:pointer;flex-shrink:0;position:relative}.assistant-composer__attach svg{stroke:currentColor;fill:none}.assistant-composer__attach:hover{background:#0f766e2e}.assistant-composer__attach-dot{position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--asst-accent);border:1.5px solid var(--asst-surface)}.assistant-composer__input{flex:1;min-width:0;border:none;padding:.45rem .25rem;font-family:inherit;font-size:.9375rem;font-weight:500;outline:none;background:transparent;color:var(--asst-text)}.assistant-composer__input::placeholder{color:var(--asst-muted)}.assistant-composer__send{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;border:none;background:var(--asst-accent);color:#fff;cursor:pointer;flex-shrink:0;transition:background .15s ease,transform .1s ease,opacity .15s ease}.assistant-composer__send:hover:not(:disabled){background:#0d9488;transform:scale(1.04)}.assistant-composer__send:disabled{opacity:.45;cursor:not-allowed}.assistant-composer__send svg{fill:currentColor;stroke:none}.assistant-composer__voice{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;border:1px solid var(--asst-border);background:#f8fafc;color:var(--asst-muted);cursor:pointer;flex-shrink:0;transition:background .15s ease,border-color .15s ease,color .15s ease}.assistant-composer__voice svg{fill:currentColor}.assistant-composer__voice--listening{background:var(--asst-accent-soft);border-color:#0f766e59;color:var(--asst-accent);animation:asst-mic-pulse 1.2s ease-in-out infinite}.assistant-composer__voice:disabled{opacity:.4;cursor:not-allowed}@keyframes asst-mic-pulse{0%,to{box-shadow:0 0 #0f766e59}50%{box-shadow:0 0 0 6px #0f766e00}}@media (max-width: 380px){.assistant-composer__voice{display:none}}.exam-container{padding:16px;background-color:#fff;height:100%;overflow-y:auto}.exam-header{display:flex;align-items:center;gap:12px;padding:8px 0;margin-bottom:16px}.exam-header .back-button{border:none;background:none;padding:8px;cursor:pointer}.exam-header h1{font-size:20px;font-weight:600;color:#1a1a1a}.exam-list{display:flex;flex-direction:column;gap:16px}.exam-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 4px #0000001a;border:1px solid #eee;transition:transform .2s ease,box-shadow .2s ease}.exam-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.exam-title{font-size:16px;font-weight:600;color:#1a1a1a;margin-bottom:8px}.exam-status{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;margin-bottom:12px}.exam-status.active{background-color:#e3f2fd;color:#1976d2}.exam-status.upcoming{background-color:#fff3e0;color:#f57c00}.exam-status.completed{background-color:#e8f5e9;color:#388e3c}.exam-status.expired{background-color:#ffebee;color:#d32f2f}.exam-description{color:#666;font-size:14px;margin-bottom:16px}.exam-details{display:flex;flex-direction:column;gap:8px;color:#666;font-size:13px}.exam-detail-item{display:flex;gap:8px;align-items:center}.exam-detail-item svg{width:16px;height:16px;color:#666;opacity:.8}.exam-action{margin-top:16px;width:100%;padding:10px;border:none;border-radius:8px;font-weight:500;font-size:14px;cursor:pointer;transition:all .2s ease}.exam-action.start{background-color:#1976d2;color:#fff}.exam-action.start:hover{background-color:#1565c0}.exam-action.view{background-color:#388e3c;color:#fff}.exam-action.view:hover{background-color:#2e7d32}.exam-action.disabled{background-color:#f5f5f5;color:#9e9e9e;cursor:not-allowed;border:1px solid #e0e0e0}.loading-spinner{display:flex;justify-content:center;align-items:center;height:calc(100vh - 120px)}.result-summary{background:#fff;border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:0 2px 4px #0000001a;border:1px solid #eee}.result-status{margin-bottom:16px}.status{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:20px;font-weight:500}.status.passed{background-color:#e8f5e9;color:#2e7d32}.status.failed{background-color:#ffebee;color:#c62828}.status svg{width:20px;height:20px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.stat-item{background:#f5f5f5;padding:12px;border-radius:8px;text-align:center}.stat-item .label{display:block;color:#666;font-size:12px;margin-bottom:4px}.stat-item .value{display:block;color:#1a1a1a;font-size:20px;font-weight:600}.faculty-notes{background:#f8f9fa;padding:16px;border-radius:8px}.faculty-notes h3{font-size:14px;font-weight:600;color:#1a1a1a;margin-bottom:8px}.faculty-notes p{color:#666;font-size:14px;line-height:1.5}.questions-review{margin-top:24px}.questions-review h3{font-size:16px;font-weight:600;color:#1a1a1a;margin-bottom:16px}.question-card{background:#fff;border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:0 2px 4px #0000001a;border:1px solid #eee}.question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.question-number{font-weight:600;color:#1a1a1a}.question-marks{color:#666;font-size:14px}.question-text{color:#1a1a1a;font-size:14px;margin-bottom:16px;line-height:1.5}.options-list{display:flex;flex-direction:column;gap:8px}.option{display:flex;align-items:center;padding:12px;border-radius:8px;background:#f5f5f5;border:1px solid #eee;transition:all .2s ease}.option.selected.correct{background:#e8f5e9;border-color:#81c784}.option.selected.incorrect{background:#ffebee;border-color:#e57373}.option-letter{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:50%;font-size:12px;font-weight:600;margin-right:12px}.option-text{flex:1;font-size:14px;color:#1a1a1a}.result-icon{width:20px;height:20px;margin-left:12px}.descriptive-answer{display:flex;flex-direction:column;gap:16px}.answer-section{background:#f5f5f5;padding:16px;border-radius:8px}.answer-section h4{font-size:14px;font-weight:600;color:#1a1a1a;margin-bottom:8px}.answer-section p{color:#666;font-size:14px;line-height:1.5}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;height:100vh;width:100%;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#747bff}body{margin:0;padding:0;min-height:100vh;width:100%;overflow-x:hidden}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:#fff;cursor:pointer;transition:border-color .25s}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.back-button{position:fixed;z-index:2000;background:none;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#000;transition:transform .3s ease}.back-button:active{transform:scale(.95)}.back-button svg{filter:drop-shadow(0 0 2px rgba(0,0,0,.3))}:root,html,body{color-scheme:light!important;color:#213547!important;background-color:#fff!important}@media (prefers-color-scheme: dark){:root,html,body{color-scheme:light!important;color:#213547!important;background-color:#fff!important}}@supports (-webkit-touch-callout: none){:root,html,body{color-scheme:light only!important;appearance:none;-webkit-appearance:none;background-color:#fff!important;color:#213547!important}}@media (prefers-color-scheme: dark){:root,html,body{forced-color-adjust:none!important;-webkit-forced-color-adjust:none!important}}.light-mode{color-scheme:light!important;color:#213547!important;background-color:#fff!important;forced-color-adjust:none!important;-webkit-forced-color-adjust:none!important;appearance:none!important;-webkit-appearance:none!important}.light-mode *{color-scheme:light!important;forced-color-adjust:none!important;-webkit-forced-color-adjust:none!important}#root{height:100vh;width:100%;margin:0;padding:0}
