@charset "UTF-8";.lang-sel{position:relative;z-index:1000}.lang-sel__toggle{display:flex;align-items:center;gap:.5rem;padding:.4rem .625rem;background:#fffffff2;border:1px solid rgba(0,0,0,.1);border-radius:.5rem;cursor:pointer;transition:all .2s ease}@media(min-width:768px){.lang-sel__toggle{padding:.45rem .75rem;gap:.5rem}}.lang-sel__toggle:hover{background:#fff;border-color:#0000002e}.lang-sel__flag{width:20px;height:14px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 .5px #0000001a}@media(min-width:768px){.lang-sel__flag{width:22px;height:15px}}.lang-sel__code{font-size:.8rem;font-weight:600;color:#334155;letter-spacing:.02em;line-height:1}.lang-sel__chevron{color:#94a3b8;transition:transform .2s ease;flex-shrink:0}.lang-sel__chevron--open{transform:rotate(180deg)}.lang-sel__dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:150px;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:.5rem;box-shadow:0 8px 24px #0000001f;overflow:hidden;animation:langDropIn .15s ease}.lang-sel__option{display:flex;align-items:center;gap:.625rem;width:100%;padding:.625rem .875rem;background:transparent;border:none;cursor:pointer;transition:background .15s ease;text-align:left}.lang-sel__option:hover{background:#f8fafc}.lang-sel__option--active{background:#eff6ff}.lang-sel__option--active .lang-sel__option-name{font-weight:600;color:#007fff}.lang-sel__option-flag{width:22px;height:15px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 .5px #0000001a;flex-shrink:0}.lang-sel__option-name{font-size:.85rem;font-weight:500;color:#334155}@keyframes langDropIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.navbar{position:fixed;width:100%;z-index:1030;transition:all .3s ease;background-color:transparent}.navbar--scrolled{background-color:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 15px -3px #0000001a}.navbar__container{max-width:1280px;margin:0 auto;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between}@media(min-width:768px){.navbar__container{padding:1rem 1.5rem}}.navbar__logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;cursor:pointer;transition:opacity .3s ease}@media(min-width:768px){.navbar__logo{gap:.75rem}}.navbar__logo:hover{opacity:.85}.navbar__logo-icon{width:40px;height:40px;background:linear-gradient(135deg,#2563eb,#1d4ed8);border-radius:.75rem;display:flex;align-items:center;justify-content:center}@media(min-width:768px){.navbar__logo-icon{width:48px;height:48px}}.navbar__logo-icon-svg{width:24px;height:24px;color:#fff}@media(min-width:768px){.navbar__logo-icon-svg{width:28px;height:28px}}.navbar__logo-title{font-size:1.125rem;font-weight:600;color:#0f172a}@media(min-width:768px){.navbar__logo-title{font-size:1.25rem}}.navbar__logo-subtitle{font-size:.625rem;color:#334155}@media(min-width:768px){.navbar__logo-subtitle{font-size:.75rem}}.navbar__links{display:none;gap:2rem;font-size:.875rem;font-weight:500}@media(min-width:768px){.navbar__links{display:flex}}.navbar__link{color:#334155;text-decoration:none;transition:color .3s ease}.navbar__link:hover{color:#2563eb}.navbar__actions{display:flex;align-items:center;gap:.5rem}@media(min-width:768px){.navbar__actions{gap:.75rem}}.navbar__cta{background-color:#2563eb;color:#fff;padding:.5rem .75rem;font-size:.75rem;white-space:nowrap}@media(min-width:640px){.navbar__cta{padding:.625rem 1rem;font-size:.875rem}}@media(min-width:768px){.navbar__cta{padding:.625rem 1.5rem}}.navbar__cta:hover{background-color:#1d4ed8}.hero{position:relative;padding:6rem 1rem 3rem;overflow:hidden}@media(min-width:768px){.hero{padding:8rem 1.5rem 5rem}}.hero__container{max-width:1280px;margin:0 auto;position:relative;z-index:10}.hero__content{max-width:64rem}.hero__badge{display:inline-flex;align-items:center;gap:.5rem;background-color:#eff6ff;color:#1d4ed8;padding:.5rem 1rem;border-radius:9999px;font-size:.75rem;font-weight:500;margin-bottom:1.5rem}@media(min-width:768px){.hero__badge{font-size:.875rem}}.hero__badge-icon{width:14px;height:14px}@media(min-width:768px){.hero__badge-icon{width:16px;height:16px}}.hero__title{font-size:2.25rem;font-weight:700;color:#0f172a;margin-bottom:1.5rem;line-height:1.1}@media(min-width:640px){.hero__title{font-size:3rem}}@media(min-width:768px){.hero__title{font-size:4.5rem}}@media(min-width:1024px){.hero__title{font-size:6rem}}.hero__school-name{font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.15em;color:#2563eb;margin-bottom:1.5rem}@media(min-width:768px){.hero__school-name{font-size:1rem}}.hero__description{font-size:1rem;color:#334155;margin-bottom:2rem;max-width:42rem;line-height:1.75}@media(min-width:768px){.hero__description{font-size:1.25rem}}.hero__actions{display:flex;flex-direction:column;gap:1rem}@media(min-width:640px){.hero__actions{flex-direction:row;flex-wrap:wrap}}.hero__btn-primary{display:flex;align-items:center;gap:.5rem}.hero__btn-primary .hero__btn-icon{width:20px;height:20px;transition:transform .3s ease}.hero__btn-primary:hover .hero__btn-icon{transform:translate(4px)}.stats-bar{margin-top:3rem;padding-left:1rem;padding-right:1rem}@media(min-width:768px){.stats-bar{margin-top:6rem;padding-left:1.5rem;padding-right:1.5rem}}.stats-bar__container{max-width:1280px;margin:0 auto 4rem;display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;position:relative;z-index:10}@media(min-width:768px){.stats-bar__container{grid-template-columns:repeat(4,1fr)}}.stats-bar__item{background-color:#fff;padding:1rem;border-radius:.75rem;box-shadow:0 10px 15px -3px #0000001a;border:1px solid #F1F5F9}@media(min-width:768px){.stats-bar__item{padding:1.5rem;border-radius:1rem}}.stats-bar__number{font-size:1.5rem;font-weight:700;color:#0f172a;margin-bottom:.5rem}@media(min-width:768px){.stats-bar__number{font-size:2.25rem}}.stats-bar__label{font-size:.75rem;color:#334155}@media(min-width:768px){.stats-bar__label{font-size:.875rem}}.ideal-family{padding:4rem 1rem;background-color:#f8fafc}@media(min-width:768px){.ideal-family{padding:6rem 1.5rem}}.ideal-family__container{max-width:1280px;margin:0 auto}.ideal-family__header{text-align:center;margin-bottom:3rem}.ideal-family__title{font-size:2.25rem;font-weight:700;color:#0f172a;margin-bottom:1rem}@media(min-width:768px){.ideal-family__title{font-size:3rem}}.ideal-family__subtitle{font-size:1rem;color:#334155;max-width:42rem;margin:0 auto}@media(min-width:768px){.ideal-family__subtitle{font-size:1.25rem}}.ideal-family__content{max-width:48rem;margin:0 auto;background-color:#fff;border-radius:1.5rem;padding:2rem;box-shadow:0 10px 15px -3px #0000001a;border:1px solid #F1F5F9}@media(min-width:768px){.ideal-family__content{padding:3rem}}.ideal-family__intro{margin-bottom:2rem}.ideal-family__lead{font-size:1rem;color:#334155;line-height:1.8}@media(min-width:768px){.ideal-family__lead{font-size:1.125rem}}.ideal-family__traits{list-style:none;padding:0;margin:0 0 2rem;display:flex;flex-direction:column;gap:1rem}.ideal-family__trait{display:flex;align-items:flex-start;gap:1rem;font-size:1rem;color:#334155;line-height:1.6}@media(min-width:768px){.ideal-family__trait{font-size:1.125rem}}.ideal-family__check{flex-shrink:0;width:28px;height:28px;border-radius:9999px;background-color:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center;margin-top:2px}.ideal-family__check-icon{width:16px;height:16px}.ideal-family__closing{font-size:.875rem;color:#334155;line-height:1.75;border-top:1px solid #E2E8F0;padding-top:1.5rem;font-style:italic}@media(min-width:768px){.ideal-family__closing{font-size:1rem}}.values-section{padding:4rem 1rem;background-color:#fff}@media(min-width:768px){.values-section{padding:6rem 1.5rem}}.values-section__container{max-width:1280px;margin:0 auto}.values-section__header{text-align:center;margin-bottom:4rem}.values-section__title{font-size:2.25rem;font-weight:700;color:#0f172a;margin-bottom:1rem}@media(min-width:768px){.values-section__title{font-size:3rem}}.values-section__subtitle{font-size:1rem;color:#0f172a;max-width:42rem;margin:0 auto}@media(min-width:768px){.values-section__subtitle{font-size:1.25rem}}.values-section__grid{display:grid;gap:2rem}@media(min-width:768px){.values-section__grid{grid-template-columns:repeat(3,1fr)}}.value-card{background-color:#f8fafc;padding:2rem;border-radius:1.5rem;border:2px solid transparent}.value-card:hover{border-color:#bfdbfe}.value-card__icon{width:64px;height:64px;border-radius:1rem;margin-bottom:1.5rem;display:flex;align-items:center;justify-content:center}.value-card__icon .value-icon{width:32px;height:32px}.value-card__icon--blue{background-color:#dbeafe;color:#2563eb}.value-card__icon--yellow{background-color:#fef3c7;color:#fbbf24}.value-card__icon--red{background-color:#fee2e2;color:#dc2626}.value-card__title{font-size:1.25rem;font-weight:600;color:#0f172a;margin-bottom:.75rem}@media(min-width:768px){.value-card__title{font-size:1.5rem}}.value-card__description{color:#0f172a;line-height:1.75;font-size:.875rem}@media(min-width:768px){.value-card__description{font-size:1rem}}.programs-section{padding:4rem 1rem;background:linear-gradient(135deg,#0f172a,#1e293b);color:#fff;position:relative;overflow:hidden}@media(min-width:768px){.programs-section{padding:6rem 1.5rem}}.programs-section__bg-blur{position:absolute;width:384px;height:384px;border-radius:50%;filter:blur(100px);opacity:.1}.programs-section__bg-blur--blue{background-color:#007fff;top:0;left:0}.programs-section__bg-blur--yellow{background-color:#f7d618;bottom:0;right:0}.programs-section__container{max-width:1280px;margin:0 auto;position:relative;z-index:10}.programs-section__title{font-size:2.25rem;font-weight:700;margin-bottom:3rem;text-align:center}@media(min-width:768px){.programs-section__title{font-size:3rem;margin-bottom:4rem}}.programs-section__grid{display:grid;gap:2rem}@media(min-width:768px){.programs-section__grid{grid-template-columns:repeat(3,1fr)}}.program-card{background-color:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:2rem;border-radius:1.5rem;border:1px solid rgba(255,255,255,.1);transition:background-color .3s ease}.program-card:hover{background-color:#ffffff1a}.program-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.program-card__level{font-size:1.25rem;font-weight:600}@media(min-width:768px){.program-card__level{font-size:1.5rem}}.program-card__grades{font-size:.75rem;background-color:#fff3;padding:.25rem .75rem;border-radius:9999px}@media(min-width:768px){.program-card__grades{font-size:.875rem;padding:.25rem 1rem}}.program-card__highlights{list-style:none;padding:0;display:flex;flex-direction:column;gap:.75rem}.program-card__highlight{display:flex;align-items:center;gap:.75rem;font-size:.875rem}@media(min-width:768px){.program-card__highlight{font-size:1rem}}.program-card__bullet{width:6px;height:6px;background-color:#f7d618;border-radius:50%;flex-shrink:0}.registration-section{position:relative;overflow:hidden;padding:5rem 1rem;background:linear-gradient(135deg,#f8fafc,#eff6ff)}@media(min-width:768px){.registration-section{padding:6rem 1.5rem}}.registration-section__container{position:relative;z-index:1;max-width:56rem;margin:0 auto}.registration-section__header{text-align:center;margin-bottom:3rem}.registration-section__icon-wrapper{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:9999px;background:#007fff;color:#fff;margin-bottom:1.5rem}.registration-section__title{font-size:2.25rem;font-weight:700;color:#0f172a;margin-bottom:1rem}@media(min-width:768px){.registration-section__title{font-size:3rem}}.registration-section__subtitle{font-size:1rem;color:#475569;max-width:40rem;margin:0 auto;line-height:1.7}@media(min-width:768px){.registration-section__subtitle{font-size:1.125rem}}.reg-form{background:#fff;border-radius:1.5rem;padding:2rem;box-shadow:0 10px 15px -3px #0000001a;display:flex;flex-direction:column;gap:2rem}@media(min-width:768px){.reg-form{padding:3rem}}.reg-form__group{display:flex;flex-direction:column;gap:1.5rem}.reg-form__group-header{display:flex;align-items:center;gap:.75rem;color:#007fff;padding-bottom:.75rem;border-bottom:2px solid #DBEAFE}.reg-form__group-header h3{font-size:1.125rem;font-weight:600;color:#1e293b}.reg-form__row{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width:640px){.reg-form__row{grid-template-columns:1fr 1fr}}.reg-form__field{display:flex;flex-direction:column;gap:.5rem}.reg-form__label{font-size:.875rem;font-weight:500;color:#334155}.reg-form__required{color:#dc2626}.reg-form__input,.reg-form__select,.reg-form__textarea{width:100%;padding:.75rem 1rem;font-size:1rem;font-family:Work Sans,sans-serif;border:1.5px solid #E2E8F0;border-radius:.75rem;background:#fff;color:#0f172a;transition:border-color .15s ease,box-shadow .15s ease}.reg-form__input::placeholder,.reg-form__select::placeholder,.reg-form__textarea::placeholder{color:#94a3b8}.reg-form__input:focus,.reg-form__select:focus,.reg-form__textarea:focus{outline:none;border-color:#007fff;box-shadow:0 0 0 3px #007fff1f}.reg-form__input--error,.reg-form__select--error,.reg-form__textarea--error{border-color:#dc2626}.reg-form__input--error:focus,.reg-form__select--error:focus,.reg-form__textarea--error:focus{box-shadow:0 0 0 3px #dc26261f}.reg-form__select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2364748B' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 5.646a.5.5 0 0 1 .708 0L8 8.293l2.646-2.647a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem;cursor:pointer}.reg-form__textarea{resize:vertical;min-height:100px}.reg-form__error{font-size:.75rem;color:#dc2626;display:flex;align-items:center;gap:.25rem}.reg-form__submit{align-self:center;min-width:240px;padding:1rem 2.5rem;font-size:1rem;font-weight:600;margin-top:1rem}.reg-form__success{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border-radius:.75rem;background:#dcfce7;color:#166534;font-weight:500;margin-bottom:1rem;animation:slideIn .3s ease}.reg-form__success-icon{flex-shrink:0;width:22px;height:22px}.reg-form__server-error{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border-radius:.75rem;background:#fee2e2;color:#dc2626;font-weight:500;margin-bottom:1rem;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.cta-section{padding:4rem 1rem;background-color:#2563eb;color:#fff}@media(min-width:768px){.cta-section{padding:6rem 1.5rem}}.cta-section__container{max-width:64rem;margin:0 auto;text-align:center}.cta-section__title{font-size:2.25rem;font-weight:700;margin-bottom:1.5rem}@media(min-width:768px){.cta-section__title{font-size:3rem}}.cta-section__description{font-size:1rem;color:#dbeafe;margin-bottom:2rem;line-height:1.75}@media(min-width:768px){.cta-section__description{font-size:1.25rem}}.cta-section__actions{display:flex;flex-direction:column;gap:1rem;justify-content:center;align-items:center}@media(min-width:640px){.cta-section__actions{flex-direction:row;flex-wrap:wrap}}.footer{background-color:#0f172a;color:#94a3b8;padding:2rem 1rem}@media(min-width:768px){.footer{padding:3rem 1.5rem}}.footer__container{max-width:1280px;margin:0 auto;text-align:center}.footer__brand{margin-bottom:1.5rem}.footer__brand-name{font-size:1.25rem;font-weight:600;color:#fff;margin-bottom:.5rem}@media(min-width:768px){.footer__brand-name{font-size:1.5rem}}.footer__tagline{font-size:.75rem}@media(min-width:768px){.footer__tagline{font-size:.875rem}}.footer__links{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem;font-size:.875rem;margin-bottom:1.5rem}@media(min-width:768px){.footer__links{gap:2rem}}.footer__link{color:#94a3b8;text-decoration:none;transition:color .3s ease}.footer__link:hover{color:#fff}.footer__copyright{font-size:.75rem}.landing-page{min-height:100vh;background-color:#f8fafc}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.map-section{padding:4rem 1rem;background:linear-gradient(to bottom,#fff,#f8fafc)}@media(min-width:768px){.map-section{padding:6rem 1.5rem}}.map-section__container{max-width:1280px;margin:0 auto}.map-section__header{text-align:center;margin-bottom:3rem}.map-section__title{font-size:3rem;font-weight:700;color:#0f172a;margin-bottom:1rem}@media(max-width:768px){.map-section__title{font-size:2.25rem}}.map-section__subtitle{font-size:1.25rem;color:#475569}@media(max-width:768px){.map-section__subtitle{font-size:1.125rem}}.map-section__wrapper{display:grid;gap:2rem;grid-template-columns:1fr}@media(min-width:1024px){.map-section__wrapper{grid-template-columns:2fr 1fr}}.map-section__map{height:500px;width:100%;border-radius:1.5rem;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a;border:2px solid #E2E8F0}@media(max-width:768px){.map-section__map{height:400px}}.map-section__info{display:flex;align-items:start}.map-section__info-card{background-color:#fff;padding:2rem;border-radius:1.5rem;box-shadow:0 4px 6px -1px #0000001a;border:2px solid #E2E8F0;height:fit-content;width:100%}.map-section__info-title{font-size:1.5rem;font-weight:600;color:#0f172a;margin-bottom:1rem}.map-section__info-text{color:#475569;line-height:1.75;margin-bottom:1.5rem}.map-popup{padding:.5rem}.map-popup__title{font-size:1rem;font-weight:600;color:#0f172a;margin-bottom:.5rem}.map-popup__address{font-size:.875rem;color:#475569;line-height:1.6}.btn-outline-dark{border:2px solid #0F172A;background-color:transparent;color:#0f172a;display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;border-radius:.75rem;cursor:pointer;transition:all .3s ease;text-decoration:none}.btn-outline-dark:hover{background-color:#0f172a;color:#fff}.leaflet-popup-content-wrapper{border-radius:.75rem}.leaflet-popup-tip{background:#fff}.contact-page{min-height:100vh;background-color:#f8fafc}.contact-hero{position:relative;background:linear-gradient(135deg,#007fff,#1d4ed8);padding:6rem 1rem 4rem;overflow:hidden;text-align:center}@media(min-width:768px){.contact-hero{padding:8rem 1.5rem 6rem}}.contact-hero__container{max-width:1280px;margin:0 auto;position:relative;z-index:1}.contact-hero__title{font-size:2.25rem;font-weight:700;color:#fff;margin-bottom:1rem;animation:fadeInUp .8s ease-out}@media(min-width:768px){.contact-hero__title{font-size:3rem;margin-bottom:1.5rem}}@media(min-width:1024px){.contact-hero__title{font-size:4.5rem}}.contact-hero__subtitle{font-size:1rem;color:#dbeafe;max-width:42rem;margin:0 auto;animation:fadeInUp .8s ease-out .2s both;padding:0 1rem}@media(min-width:768px){.contact-hero__subtitle{font-size:1.125rem;padding:0}}@media(min-width:1024px){.contact-hero__subtitle{font-size:1.25rem}}.contact-info-section{padding:4rem 1rem;background-color:#fff}@media(min-width:768px){.contact-info-section{padding:6rem 1.5rem}}.contact-info-section__container{max-width:1280px;margin:0 auto}.contact-info-section__header{text-align:center;margin-bottom:4rem}.contact-info-section__title{font-size:3rem;font-weight:700;color:#0f172a;margin-bottom:1rem}@media(max-width:768px){.contact-info-section__title{font-size:2.25rem}}.contact-info-section__subtitle{font-size:1.25rem;color:#475569;max-width:42rem;margin:0 auto}@media(max-width:768px){.contact-info-section__subtitle{font-size:1.125rem}}.contact-info-section__grid{display:grid;gap:1.5rem;grid-template-columns:1fr;max-width:900px;margin:0 auto}@media(min-width:768px){.contact-info-section__grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.contact-info-section__grid{grid-template-columns:repeat(3,1fr)}}.contact-card{background-color:#f8fafc;padding:2rem;border-radius:1.5rem;border:2px solid transparent;transition:all .3s ease}.contact-card:hover{transform:translateY(-4px);box-shadow:0 10px 15px -3px #0000001a}.contact-card__icon{width:64px;height:64px;border-radius:1rem;margin-bottom:1.5rem;display:flex;align-items:center;justify-content:center}.contact-card__icon .contact-icon{width:32px;height:32px}.contact-card__icon--blue{background-color:#dbeafe;color:#2563eb}.contact-card__icon--yellow{background-color:#fef3c7;color:#fbbf24}.contact-card__icon--red{background-color:#fee2e2;color:#dc2626}.contact-card__title{font-size:1.25rem;font-weight:600;color:#0f172a;margin-bottom:.75rem}.contact-card__details{display:flex;flex-direction:column;gap:.5rem}.contact-card__detail{color:#475569;line-height:1.6;font-size:.875rem}.contact-form-section{padding:4rem 1rem;background-color:#f8fafc}@media(min-width:768px){.contact-form-section{padding:6rem 1.5rem}}.contact-form-section__container{max-width:800px;margin:0 auto}.contact-form-section__header{text-align:center;margin-bottom:3rem}.contact-form-section__title{font-size:3rem;font-weight:700;color:#0f172a;margin-bottom:1rem}@media(max-width:768px){.contact-form-section__title{font-size:2.25rem}}.contact-form-section__subtitle{font-size:1.125rem;color:#475569}.contact-form{background-color:#fff;padding:3rem;border-radius:1.5rem;box-shadow:0 4px 6px -1px #0000001a}@media(max-width:768px){.contact-form{padding:2rem}}.contact-form__row{display:grid;gap:1.5rem;grid-template-columns:1fr}@media(min-width:768px){.contact-form__row{grid-template-columns:repeat(2,1fr)}}.contact-form__field{margin-bottom:1.5rem}.contact-form__label{display:block;font-size:.875rem;font-weight:500;color:#334155;margin-bottom:.5rem}.contact-form__input,.contact-form__select,.contact-form__textarea{width:100%;padding:.75rem 1rem;font-size:1rem;color:#0f172a;background-color:#f8fafc;border:2px solid #E2E8F0;border-radius:.75rem;transition:all .3s ease;font-family:Work Sans,sans-serif}.contact-form__input:focus,.contact-form__select:focus,.contact-form__textarea:focus{outline:none;border-color:#007fff;background-color:#fff}.contact-form__input::placeholder,.contact-form__select::placeholder,.contact-form__textarea::placeholder{color:#94a3b8}.contact-form__textarea{resize:vertical;min-height:120px}.contact-form__submit{width:100%;margin-top:1rem;font-size:1.125rem;padding:1rem 1.5rem;transition:all .3s ease}@media(min-width:768px){.contact-form__submit{width:auto;min-width:200px}}.contact-form__submit:disabled{opacity:.6;cursor:not-allowed}.contact-form__required{color:#dc2626}.contact-form__error{display:block;color:#dc2626;font-size:.875rem;margin-top:.5rem;animation:slideDown .3s ease}.contact-form__input--error,.contact-form__select--error,.contact-form__textarea--error{border-color:#dc2626;background-color:#dc26260d}.contact-form__input--error:focus,.contact-form__select--error:focus,.contact-form__textarea--error:focus{border-color:#dc2626;background-color:#fff}.contact-form__success{background:linear-gradient(135deg,#22c55e1a,#22c55e0d);border:2px solid rgba(34,197,94,.3);border-radius:1rem;padding:1.5rem;margin-bottom:2rem;display:flex;align-items:center;gap:1rem;animation:slideDown .5s ease}.contact-form__success-icon{width:32px;height:32px;color:#22c55e;flex-shrink:0}.contact-form__success-text{color:#15803d;font-size:1rem;font-weight:500;margin:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.card-hover{transition:all .3s ease}.privacy-page{min-height:100vh;display:flex;flex-direction:column;background-color:#f8fafc}.privacy-page__content{flex:1;padding:4rem 1rem 6rem}@media(min-width:768px){.privacy-page__content{padding:6rem 1.5rem 8rem}}.privacy-page__container{max-width:900px;margin:0 auto;background-color:#fff;padding:2rem;border-radius:1.5rem;box-shadow:0 4px 6px -1px #0000001a}@media(min-width:768px){.privacy-page__container{padding:3rem 4rem}}.privacy-page__title{font-size:1.5rem;font-weight:700;color:#0f172a;margin-bottom:.5rem}@media(min-width:768px){.privacy-page__title{font-size:2.25rem}}.privacy-page__updated{color:#475569;font-size:.875rem;margin-bottom:2rem}.privacy-page__section{margin-bottom:2rem}.privacy-page__section h2{font-size:1.5rem;font-weight:600;color:#0f172a;margin-bottom:1rem;margin-top:1.5rem}.privacy-page__section h3{font-size:1.25rem;font-weight:600;color:#1e293b;margin-top:1.5rem;margin-bottom:.75rem}.privacy-page__section p{color:#334155;line-height:1.7;margin-bottom:1rem}.privacy-page__section ul{color:#334155;line-height:1.7;margin-left:1.5rem;margin-bottom:1rem}.privacy-page__section ul li{margin-bottom:.5rem}.privacy-page__section strong{color:#0f172a}.login-page{min-height:100vh;background-color:#f8fafc}.login-hero{position:relative;background:linear-gradient(135deg,#007fff,#1d4ed8);padding:6rem 1rem 4rem;overflow:hidden;text-align:center}@media(min-width:768px){.login-hero{padding:8rem 1.5rem 6rem}}.login-hero__container{max-width:1280px;margin:0 auto;position:relative;z-index:1}.login-hero__title{font-size:2.25rem;font-weight:700;color:#fff;margin-bottom:1rem;animation:fadeInUp .8s ease-out}@media(min-width:768px){.login-hero__title{font-size:3rem;margin-bottom:1.5rem}}@media(min-width:1024px){.login-hero__title{font-size:4.5rem}}.login-hero__subtitle{font-size:1rem;color:#dbeafe;max-width:42rem;margin:0 auto;animation:fadeInUp .8s ease-out .2s both;padding:0 1rem}@media(min-width:768px){.login-hero__subtitle{font-size:1.125rem;padding:0}}@media(min-width:1024px){.login-hero__subtitle{font-size:1.25rem}}.login-form-section{padding:4rem 1rem;background-color:#f8fafc;min-height:calc(100vh - 400px);display:flex;align-items:center}@media(min-width:768px){.login-form-section{padding:6rem 1.5rem}}.login-form-section__container{max-width:500px;margin:0 auto;width:100%}.login-card{background-color:#fff;padding:3rem;border-radius:1.5rem;box-shadow:0 20px 25px -5px #0000001a;border:2px solid #E2E8F0}@media(max-width:768px){.login-card{padding:2rem}}.login-card__title{font-size:2.25rem;font-weight:700;color:#0f172a;margin-bottom:.75rem;text-align:center}@media(max-width:768px){.login-card__title{font-size:1.5rem}}.login-card__subtitle{font-size:1rem;color:#475569;text-align:center;margin-bottom:2rem}.login-form__field{margin-bottom:1.5rem}.login-form__label{display:block;font-size:.875rem;font-weight:500;color:#334155;margin-bottom:.5rem}.login-form__input{width:100%;padding:.75rem 1rem;font-size:1rem;color:#0f172a;background-color:#f8fafc;border:2px solid #E2E8F0;border-radius:.75rem;transition:all .3s ease;font-family:Work Sans,sans-serif}.login-form__input:focus{outline:none;border-color:#007fff;background-color:#fff}.login-form__input::placeholder{color:#94a3b8}.login-form__forgot{text-align:right;margin-bottom:1.5rem}.login-form__link{font-size:.875rem;color:#007fff;text-decoration:none;transition:color .3s ease}.login-form__link:hover{color:#1d4ed8;text-decoration:underline}.login-form__submit{width:100%;padding:1rem 1.5rem;font-size:1.125rem;margin-top:1rem}.user-type-toggle{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;padding:.5rem;background-color:#f1f5f9;border-radius:.75rem}.user-type-toggle__btn{padding:.75rem 1rem;font-size:.875rem;font-weight:500;color:#475569;background-color:transparent;border:none;border-radius:.5rem;cursor:pointer;transition:all .3s ease;font-family:Work Sans,sans-serif}.user-type-toggle__btn:hover{color:#0f172a;background-color:#e2e8f0}.user-type-toggle__btn--active{color:#fff;background-color:#007fff;box-shadow:0 1px 2px #0000000d}.user-type-toggle__btn--active:hover{color:#fff;background-color:#1d4ed8}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.ui-field{margin-bottom:1rem}.ui-field__label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.ui-field__required{color:var(--error-text);margin-left:2px}.ui-field__control{width:100%;padding:.75rem 1rem;font-size:1rem;font-family:Work Sans,sans-serif;color:var(--text-primary);background-color:var(--input-bg);border:2px solid var(--input-border);border-radius:.75rem;transition:all .3s ease}.ui-field__control:focus{outline:none;border-color:var(--accent-text);background-color:var(--bg-surface)}.ui-field__control::placeholder{color:var(--text-muted)}.ui-field__control--error{border-color:var(--error-text);background-color:var(--error-bg)}.ui-field__textarea{resize:vertical;min-height:100px}.ui-field__select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 5.646a.5.5 0 0 1 .708 0L8 8.293l2.646-2.647a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem}.ui-field__input-wrap{position:relative}.ui-field__icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-muted);display:flex;pointer-events:none}.ui-field__input--with-icon{padding-left:2.5rem}.ui-field__hint{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.ui-field__error{display:block;font-size:.75rem;color:var(--error-text);margin-top:.25rem}.ui-modal-backdrop{position:fixed;inset:0;background:var(--overlay);z-index:1040;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .15s ease-out}.ui-modal{background:var(--card-bg);border-radius:1rem;box-shadow:var(--shadow-lg);max-height:90vh;display:flex;flex-direction:column;animation:slideUp .2s ease-out}.ui-modal--sm{width:100%;max-width:420px}.ui-modal--md{width:100%;max-width:560px}.ui-modal--lg{width:100%;max-width:720px}.ui-modal__header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-color)}.ui-modal__title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.ui-modal__close{background:none;border:none;padding:.5rem;color:var(--text-muted);cursor:pointer;border-radius:.5rem;transition:all .15s ease}.ui-modal__close:hover{color:var(--text-primary);background:var(--bg-surface-hover)}.ui-modal__body{padding:1.5rem;overflow-y:auto;flex:1}.ui-modal__footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color);background:var(--bg-surface-alt)}.ui-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem}.ui-loading--sm{padding:1.5rem}.ui-loading--lg{padding:5rem}.ui-loading__spinner{color:var(--accent-text);animation:spin 1s linear infinite}.ui-loading--sm .ui-loading__spinner{width:20px;height:20px}.ui-loading--md .ui-loading__spinner{width:32px;height:32px}.ui-loading--lg .ui-loading__spinner{width:48px;height:48px}.ui-loading__text{font-size:.875rem;color:var(--text-muted);margin:0}.ui-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;text-align:center}.ui-empty__icon{color:var(--text-muted);margin-bottom:1rem}.ui-empty__title{font-size:1.125rem;font-weight:600;color:var(--text-secondary);margin:0 0 .5rem}.ui-empty__description{font-size:.875rem;color:var(--text-muted);max-width:320px;margin:0 0 1.5rem}.ui-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:9999px;font-size:.75rem;font-weight:600;white-space:nowrap}.ui-badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor}.ui-badge--success{background:var(--success-bg);color:var(--success-text)}.ui-badge--warning{background:var(--warning-bg);color:var(--warning-text)}.ui-badge--error{background:var(--error-bg);color:var(--error-text)}.ui-badge--info{background:var(--info-bg);color:var(--info-text)}.ui-badge--neutral{background:var(--bg-surface-alt);color:var(--text-muted)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.forgot-password-page{min-height:100vh;background-color:#f8fafc}.forgot-password-hero{position:relative;background:linear-gradient(135deg,#007fff,#1d4ed8);padding:6rem 1rem 4rem;overflow:hidden;text-align:center}@media(min-width:768px){.forgot-password-hero{padding:8rem 1.5rem 6rem}}.forgot-password-hero__container{max-width:1280px;margin:0 auto;position:relative;z-index:1}.forgot-password-hero__title{font-size:2.25rem;font-weight:700;color:#fff;margin-bottom:1rem}@media(min-width:1024px){.forgot-password-hero__title{font-size:4.5rem}}.forgot-password-hero__subtitle{font-size:1rem;color:#dbeafe;max-width:42rem;margin:0 auto}@media(min-width:1024px){.forgot-password-hero__subtitle{font-size:1.25rem}}.forgot-password-form-section{padding:4rem 1rem;display:flex;align-items:center;min-height:calc(100vh - 400px)}.forgot-password-form-section__container{max-width:460px;margin:0 auto;width:100%}.forgot-password-card{background-color:#fff;padding:3rem;border-radius:1.5rem;box-shadow:0 20px 25px -5px #0000001a;border:2px solid #E2E8F0}@media(max-width:768px){.forgot-password-card{padding:2rem}}.forgot-password-card__title{font-size:1.5rem;font-weight:700;color:#0f172a;margin-bottom:.75rem;text-align:center}.forgot-password-card__subtitle{font-size:1rem;color:#475569;text-align:center;margin-bottom:2rem}.forgot-password-card__back-link{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1.5rem;font-size:.875rem;color:#007fff;text-decoration:none;transition:color .3s ease}.forgot-password-card__back-link:hover{color:#1d4ed8}.forgot-password-card__back{margin-top:1.5rem;display:inline-flex;gap:.5rem}.forgot-password-form__error{padding:.75rem 1rem;background:#fee2e2;color:#dc2626;border-radius:.5rem;font-size:.875rem;margin-bottom:1rem}.forgot-password-form__submit{width:100%;padding:1rem;font-size:1.125rem;margin-top:1rem}.forgot-password-success{text-align:center}.forgot-password-success__icon{color:#16a34a;margin-bottom:1.5rem}.forgot-password-success__title{font-size:1.5rem;font-weight:700;color:#0f172a;margin-bottom:1rem}.forgot-password-success__text{color:#475569;line-height:1.6;margin-bottom:1.5rem}.reset-password-page{min-height:100vh;background-color:#f8fafc}.reset-password-hero{position:relative;background:linear-gradient(135deg,#007fff,#1d4ed8);padding:6rem 1rem 4rem;overflow:hidden;text-align:center}@media(min-width:768px){.reset-password-hero{padding:8rem 1.5rem 6rem}}.reset-password-hero__container{max-width:1280px;margin:0 auto;position:relative;z-index:1}.reset-password-hero__title{font-size:2.25rem;font-weight:700;color:#fff}@media(min-width:1024px){.reset-password-hero__title{font-size:4.5rem}}.reset-password-form-section{padding:4rem 1rem;display:flex;align-items:center;min-height:calc(100vh - 400px)}.reset-password-form-section__container{max-width:460px;margin:0 auto;width:100%}.reset-password-card{background-color:#fff;padding:3rem;border-radius:1.5rem;box-shadow:0 20px 25px -5px #0000001a;border:2px solid #E2E8F0}@media(max-width:768px){.reset-password-card{padding:2rem}}.reset-password-card__title{font-size:1.5rem;font-weight:700;color:#0f172a;margin-bottom:.75rem;text-align:center}.reset-password-card__subtitle{font-size:1rem;color:#475569;text-align:center;margin-bottom:2rem}.reset-password-card__back-link{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1.5rem;font-size:.875rem;color:#007fff;text-decoration:none}.reset-password-card__back-link:hover{color:#1d4ed8}.reset-password-form__error{padding:.75rem 1rem;background:#fee2e2;color:#dc2626;border-radius:.5rem;font-size:.875rem;margin-bottom:1rem}.reset-password-form__submit{width:100%;padding:1rem;font-size:1.125rem;margin-top:1rem}.reset-password-success,.reset-password-invalid{text-align:center}.reset-password-success__icon,.reset-password-invalid__icon{margin-bottom:1.5rem}.reset-password-success__title,.reset-password-invalid__title{font-size:1.5rem;font-weight:700;color:#0f172a;margin-bottom:1rem}.reset-password-success__text,.reset-password-invalid__text{color:#475569;line-height:1.6;margin-bottom:1.5rem}.reset-password-success__icon{color:#16a34a}.reset-password-invalid__icon{color:#f59e0b}.portal-layout{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary);transition:background .2s ease}.portal-header{position:fixed;top:0;left:0;right:0;height:60px;background:#0f172a;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;z-index:100}.portal-header__left{display:flex;align-items:center;gap:.75rem}.portal-header__logo{display:flex;align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;color:#fff;text-decoration:none;letter-spacing:-.01em}.portal-header__logo svg{color:#007fff}.portal-header__right{display:flex;align-items:center;gap:1rem}.portal-header__view-as{display:flex;align-items:center;gap:.625rem;padding:.35rem .5rem .35rem .875rem;background:#fbbf2426;border:1px solid rgba(251,191,36,.4);border-radius:9999px;font-size:.8rem;font-weight:500;color:#fbbf24}.portal-header__view-as-exit{background:#fbbf2440;border:none;color:#fbbf24;padding:.2rem .625rem;border-radius:9999px;font-size:.7rem;font-weight:700;cursor:pointer;transition:background .15s}.portal-header__view-as-exit:hover{background:#fbbf2473}.portal-header__user{display:flex;align-items:center;gap:.625rem}.portal-header__avatar{width:34px;height:34px;border-radius:9999px;background:#007fff;color:#fff;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:.03em}.portal-header__user-info{display:flex;flex-direction:column;line-height:1.2}.portal-header__user-name{font-size:.875rem;font-weight:600;color:#fff}.portal-header__user-role{font-size:.7rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em}.portal-sidebar{position:fixed;left:0;top:60px;bottom:0;width:68px;background:#0f172a;display:flex;flex-direction:column;transition:width .25s ease;z-index:90;overflow:hidden}.portal-sidebar--expanded{width:248px}.portal-sidebar__footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.06)}.portal-sidebar__user-card{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.06);white-space:nowrap;overflow:hidden}.portal-sidebar__user-avatar{width:32px;height:32px;border-radius:9999px;background:#007fff;color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:.03em}.portal-sidebar__user-info{display:flex;flex-direction:column;line-height:1.25;min-width:0}.portal-sidebar__user-name{font-size:.8rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-sidebar__user-role{font-size:.68rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em}.portal-sidebar__actions{padding:.5rem;display:flex;flex-direction:column;gap:.125rem}.portal-sidebar__action{display:flex;align-items:center;gap:.625rem;width:100%;padding:.6rem .875rem;background:none;border:none;border-radius:.5rem;cursor:pointer;font-size:.825rem;color:#ffffffd9;text-decoration:none;transition:background .15s,color .15s;text-align:left;white-space:nowrap;overflow:hidden}.portal-sidebar__action svg{flex-shrink:0}.portal-sidebar__action:hover{background:#ffffff12;color:#fff}.portal-sidebar__action--logout:hover{background:#ce112626;color:#fca5a5}.portal-sidebar__toggle{display:flex;align-items:center;justify-content:center;padding:.75rem;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.06);cursor:pointer;color:#ffffffd9;transition:background .15s,color .15s}.portal-sidebar__toggle:hover{background:#ffffff12;color:#fff}.portal-nav{flex:1;overflow-y:auto;padding:.75rem .625rem}.portal-nav__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.125rem}.portal-nav__item{margin:0}.portal-nav__link{display:flex;align-items:center;gap:.75rem;padding:.6rem .875rem;border-radius:.5rem;color:#ffffffd9;text-decoration:none;transition:background .15s,color .15s;font-size:.875rem;white-space:nowrap;overflow:hidden}.portal-nav__link:hover{background:#ffffff12;color:#fff}.portal-nav__link--active{background:#ffffff1a;color:#fff;font-weight:500}.portal-nav__link--active:hover{background:#ffffff24;color:#fff}.portal-nav__icon{display:flex;align-items:center;flex-shrink:0}.portal-main{margin-top:60px;margin-left:248px;flex:1;overflow:auto;transition:margin-left .25s ease}.portal-layout--collapsed .portal-main{margin-left:68px}@media(max-width:767px){.portal-main{margin-left:68px}}.portal-content{padding:2rem;max-width:1400px;margin:0 auto}.portal-overlay{position:fixed;inset:0;background:var(--overlay);z-index:80;display:none}@media(max-width:767px){.portal-overlay{display:block}}.stat-card{background:var(--card-bg);border-radius:14px;padding:1.25rem;border:1px solid var(--border-color);box-shadow:var(--shadow);display:flex;align-items:flex-start;gap:.875rem}.stat-card--blue .stat-card__icon{background:linear-gradient(135deg,#3b82f6,#60a5fa);box-shadow:0 4px 10px #3b82f61f}.stat-card--green .stat-card__icon{background:linear-gradient(135deg,#16a34a,#4ade80);box-shadow:0 4px 10px #16a34a1f}.stat-card--amber .stat-card__icon{background:linear-gradient(135deg,#d97706,#fbbf24);box-shadow:0 4px 10px #d977061f}.stat-card--purple .stat-card__icon{background:linear-gradient(135deg,#7c3aed,#c4b5fd);box-shadow:0 4px 10px #7c3aed1f}.stat-card--red .stat-card__icon{background:linear-gradient(135deg,#dc2626,#fca5a5);box-shadow:0 4px 10px #dc26261f}.stat-card--teal .stat-card__icon{background:linear-gradient(135deg,#0d9488,#2dd4bf);box-shadow:0 4px 10px #0d94881f}.stat-card__icon{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.stat-card__body{display:flex;flex-direction:column;min-width:0}.stat-card__label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.25rem}.stat-card__value{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0;line-height:1.1;letter-spacing:-.02em}.stat-card__sub{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.chart-card{background:var(--card-bg);border-radius:14px;padding:1.375rem 1.25rem;border:1px solid var(--border-color);box-shadow:var(--shadow)}.chart-card__title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:0 0 1rem}.chart-card__body{width:100%;min-height:200px}.mini-table-wrap{background:var(--card-bg);border-radius:14px;border:1px solid var(--border-color);box-shadow:var(--shadow);overflow:hidden}.mini-table{width:100%;border-collapse:collapse;font-size:.875rem}.mini-table thead{background:var(--bg-surface-alt)}.mini-table th{text-align:left;padding:.625rem 1rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-bottom:1px solid var(--border-color)}.mini-table td{padding:.625rem 1rem;color:var(--text-primary);border-bottom:1px solid var(--border-light)}.mini-table tbody tr:last-child td{border-bottom:none}.mini-table tbody tr:hover{background:var(--bg-surface-hover)}.mini-table__empty{text-align:center;color:var(--text-muted);padding:2rem 1rem!important}.student-dashboard .page-title{font-size:1.75rem;font-weight:700;margin-bottom:.25rem;color:var(--text-primary);letter-spacing:-.02em}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:1.75rem}.dashboard-card:nth-child(6n+1){--card-from: #3b82f6;--card-to: #93c5fd;--card-glow: rgba(59, 130, 246, .22)}.dashboard-card:nth-child(6n+2){--card-from: #7c3aed;--card-to: #c4b5fd;--card-glow: rgba(124, 58, 237, .22)}.dashboard-card:nth-child(6n+3){--card-from: #0d9488;--card-to: #5eead4;--card-glow: rgba(13, 148, 136, .22)}.dashboard-card:nth-child(6n+4){--card-from: #d97706;--card-to: #fcd34d;--card-glow: rgba(217, 119, 6, .22)}.dashboard-card:nth-child(6n+5){--card-from: #db2777;--card-to: #f9a8d4;--card-glow: rgba(219, 39, 119, .22)}.dashboard-card:nth-child(6n+6){--card-from: #16a34a;--card-to: #86efac;--card-glow: rgba(22, 163, 74, .22)}.dashboard-card{background:var(--card-bg);border-radius:14px;padding:1.75rem 1.25rem 1.5rem;text-decoration:none;color:inherit;border:1px solid var(--border-color);box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;display:flex;flex-direction:column;align-items:center;text-align:center}.dashboard-card:hover{transform:translateY(-4px);border-color:transparent;box-shadow:0 0 0 1px rgba(var(--card-from),.15),0 12px 28px var(--card-glow),0 4px 8px #0000000f}.dashboard-card:hover .dashboard-card__icon{transform:scale(1.08);box-shadow:0 6px 18px var(--card-glow)}.dashboard-card__icon{width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,var(--card-from),var(--card-to));color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;transition:transform .18s ease,box-shadow .18s ease;box-shadow:0 4px 10px var(--card-glow);flex-shrink:0}.dashboard-card__title{font-size:.9375rem;font-weight:600;margin-bottom:.3rem;color:var(--text-primary);letter-spacing:-.01em}.dashboard-card__description{font-size:.775rem;color:var(--text-secondary);margin:0;line-height:1.45}.student-dashboard__header{margin-bottom:1.75rem}.student-dashboard__header .page-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;margin-bottom:.15rem}.student-dashboard__header .page-subtitle{font-size:.875rem;color:var(--text-secondary);margin:0}.student-dashboard__section{margin-bottom:2.5rem}.student-dashboard__loading,.student-dashboard__error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:5rem 2rem;color:var(--text-secondary);font-size:.875rem}.student-dashboard__loading .spin,.student-dashboard__error .spin{animation:spin .8s linear infinite}.student-dashboard__error{color:var(--error-text)}.student-dashboard__empty{color:var(--text-muted);font-size:.875rem;padding:1.25rem 0}.section-label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-weight:600;margin-bottom:.75rem}.schedule-grid{display:flex;flex-wrap:wrap;gap:.75rem}.schedule-item{background:var(--card-bg);border:1px solid var(--border-color);border-radius:14px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.35rem;min-width:180px;transition:box-shadow .15s ease,border-color .15s ease}.schedule-item:hover{border-color:#bfdbfe;box-shadow:0 4px 14px #3b82f614}.schedule-item__course{font-weight:600;font-size:.875rem;color:var(--text-primary)}.schedule-item__time,.schedule-item__room{font-size:.75rem;color:var(--text-secondary);display:flex;align-items:center;gap:.3rem}.type-badge{display:inline-block;font-size:.7rem;font-weight:600;text-transform:capitalize;padding:.15rem .55rem;border-radius:9999px;line-height:1.5}.type-badge--homework{background:#eff6ff;color:#1d4ed8}.type-badge--quiz{background:#fef3c7;color:#92400e}.type-badge--test{background:#fee2e2;color:#dc2626}.type-badge--project{background:#f3e8ff;color:#7c3aed}.score-cell{font-weight:600;font-size:.875rem}.charts-row .chart-card{max-width:640px}.quick-card{--qc-from: #007FFF;--qc-to: #BFDBFE;--qc-glow: rgba(37, 99, 235, .18);background:var(--card-bg);border:1px solid var(--border-color);border-radius:14px;padding:1.125rem .75rem;display:flex;flex-direction:column;align-items:center;gap:.625rem;text-decoration:none;color:var(--text-primary);font-size:.775rem;font-weight:500;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.quick-card__icon{width:40px;height:40px;border-radius:11px;background:#eff6ff;color:#007fff;display:flex;align-items:center;justify-content:center;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.quick-card:nth-child(4n+1){--qc-from: #3b82f6;--qc-to: #93c5fd;--qc-glow: rgba(59,130,246,.22)}.quick-card:nth-child(4n+2){--qc-from: #0d9488;--qc-to: #5eead4;--qc-glow: rgba(13,148,136,.22)}.quick-card:nth-child(4n+3){--qc-from: #7c3aed;--qc-to: #c4b5fd;--qc-glow: rgba(124,58,237,.22)}.quick-card:nth-child(4n+4){--qc-from: #d97706;--qc-to: #fcd34d;--qc-glow: rgba(217,119,6,.22)}.quick-card:hover{transform:translateY(-3px);border-color:transparent;box-shadow:0 8px 20px var(--qc-glow),0 2px 6px #0000000f}.courses-page .page-header{margin-bottom:2rem}.courses-page .page-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.courses-page .page-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.course-card{background:var(--card-bg);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow);transition:all .3s ease}.course-card:hover{box-shadow:0 4px 12px #00000026}.course-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.course-card__icon{width:48px;height:48px;border-radius:8px;background:#007fff1a;color:#007fff;display:flex;align-items:center;justify-content:center}.course-card__badge{padding:.25rem .75rem;background:var(--success-bg);color:var(--success-text);border-radius:12px;font-size:.75rem;font-weight:600}.course-card__title{font-size:1.25rem;font-weight:600;margin-bottom:.25rem;color:var(--text-primary)}.course-card__code{font-size:.875rem;color:var(--text-secondary);margin-bottom:1.5rem}.course-card__details{display:flex;flex-direction:column;gap:.75rem}.course-detail{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.course-detail svg{color:#007fff}.account-page .page-header{margin-bottom:2rem}.account-page .page-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.account-page .page-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.account-content{display:flex;flex-direction:column;gap:1.5rem}.info-card{background:var(--card-bg);border-radius:8px;padding:2rem;box-shadow:var(--shadow)}.info-card__title{font-size:1.25rem;font-weight:600;margin-bottom:1.5rem;color:var(--text-primary)}.info-card--status{background:linear-gradient(135deg,#007fff0d,#007fff1a)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.info-item{display:flex;align-items:flex-start;gap:.75rem}.info-item__icon{color:#007fff;margin-top:.25rem}.info-item label{display:block;font-size:.875rem;color:var(--text-secondary);margin-bottom:.25rem;font-weight:500}.info-item p{font-size:1rem;color:var(--text-primary);margin:0;font-weight:500}.status-display{display:flex;align-items:flex-start;gap:1rem;padding:1.5rem;background:var(--card-bg);border-radius:8px}.status-display__content{flex:1}.status-display__content h3{font-size:1.125rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.status-display__content p{font-size:.9375rem;color:var(--text-secondary);margin:0}.status-icon{margin-top:.25rem}.status-icon--active{color:var(--success-text)}.status-icon--pending{color:#f57c00}.status-icon--inactive{color:#c62828}.timetable-page .page-header{margin-bottom:2rem}.timetable-page .page-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.timetable-page .page-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.timetable-container{background:var(--card-bg);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow);overflow-x:auto}.timetable{min-width:900px}.timetable__header,.timetable__row{display:grid;grid-template-columns:120px repeat(5,1fr);gap:1px;background:var(--border-color)}.timetable__cell{background:var(--card-bg);padding:1rem;min-height:80px;display:flex;align-items:center;justify-content:center}.timetable__cell--corner{background:var(--bg-surface-alt);font-weight:600;color:var(--text-secondary)}.timetable__cell--day{background:#007fff1a;font-weight:600;color:#007fff;text-align:center}.timetable__cell--time{background:var(--bg-surface-alt);font-size:.875rem;font-weight:500;color:var(--text-secondary);gap:.5rem;flex-direction:column}.timetable__cell--class{padding:.5rem}.timetable__cell--filled{padding:0}.class-info{width:100%;height:100%;padding:.75rem;border-left:4px solid;background:#00000005;display:flex;flex-direction:column;justify-content:center}.class-info__course{font-size:.9375rem;font-weight:600;margin-bottom:.25rem;color:var(--text-primary)}.class-info__teacher{font-size:.8125rem;color:var(--text-secondary);margin-bottom:.25rem}.class-info__room{font-size:.75rem;color:var(--text-muted);display:flex;align-items:center;gap:.25rem;margin:0}.class-info__empty{color:var(--text-muted);font-size:1.5rem}.feedback-page .page-header{margin-bottom:2rem}.feedback-page .page-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.feedback-page .page-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.feedback-list{display:flex;flex-direction:column;gap:1.5rem}.feedback-card{background:var(--card-bg);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow);position:relative;transition:all .3s ease}.feedback-card:hover{box-shadow:0 4px 12px #00000026}.feedback-card__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.feedback-card__info{flex:1}.feedback-card__teacher{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.feedback-card__teacher svg{color:#007fff}.feedback-card__meta{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.feedback-card__course{font-weight:500}.feedback-card__separator{color:var(--text-muted)}.feedback-card__date{display:flex;align-items:center;gap:.25rem}.feedback-card__badge{padding:.375rem .875rem;border-radius:12px;font-size:.75rem;font-weight:600;color:#fff;white-space:nowrap}.feedback-card__content{margin-bottom:.5rem}.feedback-card__subject{font-size:1.125rem;font-weight:600;margin-bottom:.75rem;color:var(--text-primary)}.feedback-card__message{font-size:.9375rem;line-height:1.6;color:var(--text-secondary);margin:0}.feedback-card__icon{position:absolute;bottom:1rem;right:1rem;color:var(--text-muted)}.feedback-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:var(--card-bg);border-radius:8px;color:var(--text-muted)}.feedback-empty svg{margin-bottom:1rem}.feedback-empty p{font-size:1rem;margin:0}.report-card-page .page-header{margin-bottom:1.5rem}.report-card-page .page-header .page-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem}.report-card-page .page-header .page-subtitle{color:var(--text-secondary);margin:0;font-size:.875rem}.report-card-page__controls{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:flex-end;flex-wrap:wrap}.report-card-page__error{padding:1rem;background:var(--error-bg);color:var(--error-text);border-radius:.75rem;font-size:.875rem;margin-bottom:1rem}.control-group{display:flex;flex-direction:column;gap:.375rem}.control-group label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.control-select{padding:.625rem 1rem;font-size:.875rem;border:2px solid var(--input-border);border-radius:.75rem;background:var(--input-bg);color:var(--text-primary);font-family:Work Sans,sans-serif;min-width:140px}.report-card{background:var(--card-bg);border-radius:1rem;box-shadow:var(--shadow);padding:1.75rem}.report-card__student-info{margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:2px solid var(--border-color)}.report-card__student-info h2{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem}.report-card__meta{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.875rem;color:var(--text-secondary)}.report-card__summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.75rem}.report-card__table{width:100%;border-collapse:collapse;margin-bottom:1rem}.report-card__table th,.report-card__table td{padding:.75rem 1rem;text-align:left;font-size:.875rem}.report-card__table th{font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);background:var(--bg-surface-alt);border-bottom:2px solid var(--border-color)}.report-card__table td{color:var(--text-primary);border-bottom:1px solid var(--border-color)}.report-card__table tr:last-child td{border-bottom:none}.report-card__table tbody tr:hover{background:var(--bg-surface-alt)}.report-card__course-name{font-weight:600}.report-card__generated{font-size:.75rem;color:var(--text-muted);text-align:right;margin:0;padding-top:.75rem;border-top:1px solid var(--border-color)}.summary-card{display:flex;align-items:center;gap:.875rem;padding:1rem 1.25rem;border-radius:.75rem;border:1px solid var(--border-color);background:var(--bg-surface-alt)}.summary-card svg,.summary-card__icon-text{color:#007fff;flex-shrink:0}.summary-card__icon-text{font-size:1.25rem;font-weight:800;width:24px;text-align:center}.summary-card__label{display:block;font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.summary-card__value{display:block;font-size:1.125rem;font-weight:700;color:var(--text-primary)}.summary-card--gpa{border-color:#007fff4d;background:#007fff0a}.settings-page .page-header{margin-bottom:2rem}.settings-page .page-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.settings-page .page-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.settings-loading{text-align:center;padding:3rem 1rem;color:var(--text-muted);font-size:.9375rem}.settings-content{display:flex;flex-direction:column;gap:2rem}.settings-section{background:var(--card-bg);border-radius:8px;padding:2rem;box-shadow:var(--shadow);border:1px solid var(--border-color);transition:background .2s ease,border-color .2s ease}.settings-section__header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.settings-section__header>svg{color:var(--accent-text);flex-shrink:0}.settings-section__header h2{font-size:1.25rem;font-weight:600;margin:0;color:var(--text-primary)}.settings-section__desc{font-size:.85rem;color:var(--text-muted);margin:.125rem 0 0}.settings-msg{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;margin-bottom:1rem}.settings-msg--success{background:var(--success-bg);color:var(--success-text)}.settings-msg--error{background:var(--error-bg);color:var(--error-text)}.settings-form{display:flex;flex-direction:column;gap:1.5rem;max-width:600px}.settings-form .form-field{display:flex;flex-direction:column}.settings-form .form-field label{font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:.5rem}.settings-form .form-field input,.settings-form .form-field select{padding:.75rem;border:1px solid var(--input-border);border-radius:6px;font-size:.9375rem;background:var(--input-bg);color:var(--text-primary);transition:background .2s ease,border-color .2s ease,color .2s ease}.settings-form .form-field input:focus,.settings-form .form-field select:focus{outline:none;border-color:#007fff}.settings-form .btn{align-self:flex-start}.setting-toggle{display:flex;justify-content:space-between;align-items:center;gap:1rem}.setting-toggle h4{font-size:1rem;font-weight:600;margin:0 0 .25rem;color:var(--text-primary)}.setting-toggle p{font-size:.875rem;color:var(--text-secondary);margin:0}.toggle{position:relative;display:inline-block;width:50px;height:28px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0}.toggle input:checked+.toggle-slider{background-color:#007fff}.toggle input:checked+.toggle-slider:before{transform:translate(22px)}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--toggle-off);transition:.4s;border-radius:34px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#fff;transition:.4s;border-radius:50%}.language-picker{display:flex;gap:1rem;flex-wrap:wrap}.language-option{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border:2px solid var(--border-color);border-radius:10px;background:var(--bg-surface-alt);cursor:pointer;transition:all .2s;min-width:160px}.language-option:hover{border-color:var(--accent-text);background:var(--accent-soft)}.language-option--active{border-color:#007fff;background:var(--accent-soft);box-shadow:0 0 0 1px #007fff}.language-option__flag{width:32px;height:22px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 .5px #0000001a;flex-shrink:0}.language-option__label{font-size:1rem;font-weight:600;color:var(--text-primary)}.theme-picker{display:flex;gap:1rem;flex-wrap:wrap}.theme-option{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem;border:2px solid var(--border-color);border-radius:10px;background:var(--bg-surface-alt);cursor:pointer;transition:all .2s;min-width:110px}.theme-option:hover{border-color:var(--accent-text)}.theme-option--active{border-color:#007fff;background:var(--accent-soft);box-shadow:0 0 0 1px #007fff}.theme-option__preview{width:72px;height:48px;border-radius:6px;border:1px solid var(--border-color)}.theme-option__preview--light{background:linear-gradient(135deg,#fff 60%,#f0f0f0)}.theme-option__preview--dark{background:linear-gradient(135deg,#1e1e2e 60%,#2d2d3f)}.theme-option__preview--system{background:linear-gradient(135deg,#fff 50%,#1e1e2e 50%)}.theme-option span{font-size:.85rem;font-weight:500;color:var(--text-secondary)}.announcement-banner{display:flex;flex-direction:column;gap:.625rem;margin-bottom:1.5rem}.announcement-banner__item{display:flex;align-items:flex-start;gap:.875rem;padding:.875rem 1.125rem;border-radius:.75rem;border-left:4px solid;animation:slideDown .25s ease-out}.announcement-banner__item--high{background:#dc26260f;border-left-color:#dc2626}.announcement-banner__item--high .announcement-banner__icon{color:#dc2626}.announcement-banner__item--medium{background:#007fff0f;border-left-color:#007fff}.announcement-banner__item--medium .announcement-banner__icon{color:#007fff}.announcement-banner__item--low{background:var(--bg-surface-alt);border-left-color:#94a3b8}.announcement-banner__item--low .announcement-banner__icon{color:#64748b}.announcement-banner__icon{flex-shrink:0;margin-top:2px}.announcement-banner__content{flex:1;min-width:0}.announcement-banner__title{display:block;font-size:.875rem;font-weight:700;color:var(--text-primary);margin-bottom:.125rem}.announcement-banner__text{font-size:.875rem;color:var(--text-secondary);margin:0 0 .25rem;line-height:1.5}.announcement-banner__meta{font-size:.75rem;color:var(--text-muted)}.announcement-banner__close{flex-shrink:0;background:none;border:none;padding:.25rem;color:var(--text-muted);cursor:pointer;border-radius:.5rem;transition:all .15s ease}.announcement-banner__close:hover{color:var(--text-primary);background:#0000000f}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.teacher-dashboard__loading,.teacher-dashboard__error{padding:3rem;text-align:center;color:var(--text-secondary);font-size:1.125rem}.teacher-dashboard__error{color:var(--error-text)}.teacher-dashboard__header{margin-bottom:2rem}.teacher-dashboard__header .page-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem;letter-spacing:-.02em}.teacher-dashboard__header .page-subtitle{color:var(--text-secondary);margin:0;font-size:.875rem}.teacher-dashboard__section{margin-bottom:2.5rem}.schedule-grid{display:flex;flex-wrap:wrap;gap:1rem}.schedule-item{background:var(--card-bg);border:1px solid var(--border-color);border-radius:14px;padding:1.125rem 1.25rem;min-width:220px;flex:1 1 220px;max-width:320px;box-shadow:var(--shadow);border-left:4px solid var(--border-color);display:flex;flex-direction:column;gap:.375rem}.schedule-item:nth-child(1){border-left-color:#3b82f6}.schedule-item:nth-child(2){border-left-color:#0d9488}.schedule-item:nth-child(3){border-left-color:#7c3aed}.schedule-item:nth-child(4){border-left-color:#d97706}.schedule-item:nth-child(5){border-left-color:#16a34a}.schedule-item:nth-child(6){border-left-color:#db2777}.schedule-item__course{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.schedule-item__code{font-size:.75rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.schedule-item__detail{font-size:.875rem;color:var(--text-secondary);display:flex;align-items:center;gap:.375rem}.schedule-empty{color:var(--text-muted);font-size:.875rem;padding:1rem 0}.late-badge{display:inline-block;background:#dc26261f;color:#dc2626;font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:9999px;line-height:1.4}.quick-card:nth-child(5n+1){--qc-from: #3b82f6;--qc-to: #60a5fa;--qc-glow: rgba(59,130,246,.22)}.quick-card:nth-child(5n+2){--qc-from: #7c3aed;--qc-to: #c4b5fd;--qc-glow: rgba(124,58,237,.22)}.quick-card:nth-child(5n+3){--qc-from: #0d9488;--qc-to: #2dd4bf;--qc-glow: rgba(13,148,136,.22)}.quick-card:nth-child(5n+4){--qc-from: #16a34a;--qc-to: #4ade80;--qc-glow: rgba(22,163,74,.22)}.quick-card:nth-child(5n+5){--qc-from: #d97706;--qc-to: #fbbf24;--qc-glow: rgba(217,119,6,.22)}.course-mgmt-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.course-mgmt-page .page-header__text{flex:1}.course-mgmt-page .page-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.375rem}.course-mgmt-page .page-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.filters-bar{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.search-box{display:flex;align-items:center;gap:.75rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:.625rem 1rem;flex:1;max-width:480px}.search-box input{border:none;outline:none;width:100%;font-size:.875rem;color:var(--text-primary)}.result-count{font-size:.875rem;color:var(--text-muted);white-space:nowrap}.courses-grid{display:flex;flex-direction:column;gap:.75rem}.course-card{background:var(--card-bg);border-radius:10px;box-shadow:0 1px 2px #0000000d;overflow:hidden;transition:box-shadow .15s ease}.course-card:hover,.course-card--expanded{box-shadow:0 4px 6px -1px #0000001a}.course-card__top{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;cursor:pointer;gap:1rem;flex-wrap:wrap}.course-card__title-area{display:flex;align-items:center;gap:.75rem}.course-card__title-area h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.course-card__icon{width:38px;height:38px;border-radius:8px;background:#007fff1a;color:#007fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.course-card__code{font-size:.75rem;color:var(--text-secondary);font-weight:500;letter-spacing:.03em}.course-card__badges{display:flex;gap:.375rem;flex-wrap:wrap}.course-card__summary{display:flex;gap:1.25rem;padding:0 1.25rem .75rem;flex-wrap:wrap}.course-card__summary>span{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--text-secondary)}.course-card__summary>span svg{color:var(--text-muted)}.course-card__details{border-top:1px solid var(--border-light);padding:1.25rem}.course-card__actions{display:flex;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-light)}.badge{padding:.2rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600}.badge--blue{background:#dbeafe;color:#1d4ed8}.detail-section{margin-bottom:1rem}.detail-section h4{font-size:.875rem;font-weight:600;color:var(--text-secondary);margin:0 0 .5rem}.detail-section p{font-size:.875rem;color:var(--text-secondary);margin:0;line-height:1.5}.detail-section--meta{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.875rem;color:var(--text-secondary)}.detail-section--meta strong{color:var(--text-primary);margin-right:.25rem}.detail-section .no-data{font-size:.875rem;color:var(--text-muted);font-style:italic}.schedule-list{display:flex;flex-direction:column;gap:.375rem}.schedule-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-surface-alt);border:1px solid var(--border-light);border-radius:6px;font-size:.875rem;color:var(--text-primary);flex-wrap:wrap}.schedule-chip strong{color:var(--text-primary);min-width:80px}.schedule-chip__room{display:inline-flex;align-items:center;gap:.25rem;color:var(--text-secondary)}.schedule-chip__room svg{color:var(--text-muted)}.schedule-chip__audit{margin-left:auto;display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--text-muted);font-style:italic}.audit-row{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--text-muted);margin-top:.75rem}.audit-row svg{color:var(--text-muted);flex-shrink:0}.audit-row strong{color:var(--text-secondary)}.modal-panel{background:var(--card-bg);border-radius:12px;width:100%;max-width:740px;max-height:92vh;overflow-y:auto}.modal-panel--sm{max-width:440px}.course-form{padding:1.5rem 2rem 2rem;display:flex;flex-direction:column;gap:1rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.form-field label{font-size:.75rem;font-weight:600;color:var(--text-secondary);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.04em}.form-field input,.form-field select{padding:.575rem .75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;color:var(--text-primary);transition:border-color .15s ease}.schedule-editor{background:var(--bg-surface-alt);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.schedule-editor__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.schedule-editor__header h4{font-size:.875rem;font-weight:600;color:#007fff;margin:0;text-transform:uppercase;letter-spacing:.03em}.schedule-editor__row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap}.schedule-editor__row select,.schedule-editor__row input{padding:.5rem .625rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;background:var(--card-bg)}.schedule-editor__row select:focus,.schedule-editor__row input:focus{outline:none;border-color:#007fff}.schedule-editor__row select{min-width:110px}.schedule-editor__row input[type=time]{width:110px}.schedule-editor__row input[type=text]{flex:1;min-width:80px}.schedule-editor__row .sep{color:var(--text-muted);font-weight:500}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer}.icon-btn:hover{color:var(--text-primary)}.icon-btn--delete:hover{color:#dc2626;background:#fee2e2}.delete-body{padding:1.5rem 2rem 2rem}.delete-body p{color:var(--text-secondary);line-height:1.6;margin:0 0 1.25rem}.btn{display:inline-flex;align-items:center;gap:.375rem;padding:.575rem 1.125rem;border:none;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .15s ease}.btn--sm{padding:.375rem .75rem;font-size:.75rem}.btn-danger-outline{background:transparent;color:#dc2626;border:1px solid #DC2626}.btn-danger-outline:hover:not(:disabled){background:#fee2e2}.salary-page .page-header{margin-bottom:2rem}.salary-page .page-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.salary-page .page-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.salary-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.salary-card{background:var(--card-bg);border-radius:8px;padding:2rem;box-shadow:var(--shadow);display:flex;align-items:center;gap:1.5rem}.salary-card--primary{background:linear-gradient(135deg,#007fff,#06c);color:#fff}.salary-card--primary .salary-card__icon{background:#fff3;color:#fff}.salary-card__icon{width:64px;height:64px;border-radius:12px;background:#007fff1a;color:#007fff;display:flex;align-items:center;justify-content:center}.salary-card__content{flex:1}.salary-card__content h3{font-size:.875rem;font-weight:500;margin:0 0 .5rem;opacity:.9}.salary-amount{font-size:2rem;font-weight:700;margin:0}.payments-section{margin-bottom:2rem}.payments-section .section-title{font-size:1.5rem;font-weight:600;margin-bottom:1rem;color:var(--text-primary)}.payments-list{display:flex;flex-direction:column;gap:1rem}.payment-card{background:var(--card-bg);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;gap:1rem}.payment-card--paid svg{color:#4caf50}.payment-card--pending{background:var(--warning-bg);border-left:4px solid #FF9800}.payment-card--pending svg{color:#ff9800}.payment-card__info{display:flex;align-items:center;gap:1rem}.payment-card__info h4{font-size:1rem;font-weight:600;margin:0 0 .25rem;color:var(--text-primary)}.payment-card__info p{font-size:.875rem;color:var(--text-secondary);margin:0}.payment-card__amount{text-align:right}.payment-card__amount .amount{display:block;font-size:1.25rem;font-weight:700;margin-bottom:.25rem;color:var(--text-primary)}.payment-card__amount .status{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600}.payment-card__amount .status--paid{background:var(--success-bg);color:var(--success-text)}.payment-card__amount .status--pending{background:var(--warning-bg);color:var(--warning-text)}.students-page .page-header{margin-bottom:1.5rem}.students-page .page-title{font-size:1.75rem;font-weight:700;margin-bottom:.25rem;color:var(--text-primary)}.students-page .page-subtitle{font-size:.875rem;color:var(--text-secondary);margin:0}.students-page__filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.search-bar{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;background:var(--card-bg);border:2px solid var(--input-border);border-radius:.75rem;flex:1;min-width:220px}.search-bar input{flex:1;border:none;font-size:.875rem;outline:none;background:transparent;color:var(--text-primary);font-family:Work Sans,sans-serif}.search-bar input::placeholder{color:var(--text-muted)}.control-select{padding:.625rem 1rem;font-size:.875rem;border:2px solid var(--input-border);border-radius:.75rem;background:var(--input-bg);color:var(--text-primary);font-family:Work Sans,sans-serif;min-width:200px}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem}.student-card{background:var(--card-bg);border-radius:1rem;padding:1.25rem;box-shadow:var(--shadow);transition:all .2s ease;border:1px solid var(--border-color)}.student-card:hover{box-shadow:0 4px 12px #0000001f;border-color:#007fff33}.student-card__header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;padding-bottom:.875rem;border-bottom:1px solid var(--border-color)}.student-card__avatar{width:44px;height:44px;border-radius:50%;background:#007fff14;color:#007fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.student-card h3{font-size:1rem;font-weight:600;margin:0 0 .125rem;color:var(--text-primary)}.student-card p{font-size:.75rem;color:var(--text-secondary);margin:0}.student-card__contacts{display:flex;flex-direction:column;gap:.625rem}.contact-item{display:flex;align-items:center;gap:.625rem;font-size:.875rem;color:var(--text-secondary)}.contact-item svg{color:#007fff;flex-shrink:0}.contact-item--empty{font-style:italic;color:var(--text-muted)}.teacher-timetable-page{padding:2rem}.teacher-timetable-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.teacher-timetable-page .page-header .page-title{font-size:2rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.teacher-timetable-page .page-header .page-subtitle{color:var(--text-secondary);font-size:.95rem}.teacher-timetable-page .courses-info-card{background:var(--card-bg);border-radius:12px;padding:1.5rem;margin-bottom:2rem;box-shadow:var(--shadow)}.teacher-timetable-page .courses-info-card h3{font-size:1.1rem;font-weight:600;margin-bottom:1rem;color:var(--text-primary)}.teacher-timetable-page .courses-info-card .courses-list{display:flex;flex-wrap:wrap;gap:.75rem}.teacher-timetable-page .courses-info-card .course-badge{display:flex;align-items:center;gap:.5rem;background:#eff6ff;color:#007fff;padding:.5rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500}.teacher-timetable-page .courses-info-card .course-badge svg{flex-shrink:0}.teacher-timetable-page .timetable-container{background:var(--card-bg);border-radius:12px;padding:1.5rem;box-shadow:var(--shadow);overflow-x:auto}.teacher-timetable-page .timetable-grid{display:grid;grid-template-columns:100px repeat(5,1fr);gap:1px;background:var(--border-color);border:1px solid var(--border-color);border-radius:8px;overflow:hidden;min-width:900px}.teacher-timetable-page .timetable-cell{background:var(--card-bg);padding:1rem;min-height:80px;display:flex;align-items:center;justify-content:center}.teacher-timetable-page .timetable-cell.header-cell{background:#eff6ff;font-weight:600;color:#007fff;min-height:50px}.teacher-timetable-page .timetable-cell.time-cell{background:var(--bg-surface-alt);font-weight:500;color:var(--text-secondary);font-size:.9rem}.teacher-timetable-page .timetable-cell.has-schedule{padding:.5rem;align-items:stretch}.teacher-timetable-page .schedule-block{width:100%;background:linear-gradient(135deg,#eff6ff,#feffff);border-left:4px solid #007FFF;border-radius:6px;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;transition:all .2s ease}.teacher-timetable-page .schedule-block:hover{box-shadow:0 4px 12px #007fff26;transform:translateY(-2px)}.teacher-timetable-page .schedule-block .schedule-content{flex:1}.teacher-timetable-page .schedule-block .schedule-content strong{display:block;color:#007fff;font-size:.9rem;margin-bottom:.5rem}.teacher-timetable-page .schedule-block .schedule-content .schedule-details{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--text-secondary)}.teacher-timetable-page .schedule-block .schedule-content .schedule-details span{display:flex;align-items:center;gap:.25rem}.teacher-timetable-page .schedule-block .schedule-actions{display:flex;gap:.5rem;justify-content:flex-end}.teacher-timetable-page .icon-btn{background:var(--card-bg);border:1px solid var(--border-color);border-radius:4px;padding:.25rem .5rem;cursor:pointer;transition:all .2s ease;color:var(--text-secondary)}.teacher-timetable-page .icon-btn:hover{background:var(--bg-surface-alt);color:#007fff}.teacher-timetable-page .icon-btn.danger:hover{background:#fee2e2;color:#dc2626;border-color:#fecaca}.teacher-timetable-page .modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.teacher-timetable-page .modal-content{background:var(--card-bg);border-radius:12px;padding:2rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto}.teacher-timetable-page .modal-content h2{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:var(--text-primary)}.teacher-timetable-page .modal-content .form-group{margin-bottom:1.25rem}.teacher-timetable-page .modal-content .form-group label{display:block;font-weight:500;margin-bottom:.5rem;color:var(--text-primary);font-size:.9rem}.teacher-timetable-page .modal-content .form-group input,.teacher-timetable-page .modal-content .form-group select{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:8px;font-size:.95rem;transition:all .2s ease}.teacher-timetable-page .modal-content .form-group input:focus,.teacher-timetable-page .modal-content .form-group select:focus{outline:none;border-color:#007fff;box-shadow:0 0 0 3px #007fff1a}.teacher-timetable-page .modal-content .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.teacher-timetable-page .modal-content .modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}@media(max-width:768px){.teacher-timetable-page{padding:1rem}.teacher-timetable-page .page-header{flex-direction:column;gap:1rem}.teacher-timetable-page .timetable-container{padding:.5rem}.teacher-timetable-page .modal-content{padding:1.5rem}.teacher-timetable-page .modal-content .form-row{grid-template-columns:1fr}}.attendance-page .page-header{margin-bottom:1.5rem}.attendance-page .page-header .page-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem}.attendance-page .page-header .page-subtitle{color:var(--text-secondary);margin:0;font-size:.875rem}.attendance-page__controls{display:flex;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.attendance-page__tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid var(--border-color);padding-bottom:0}.attendance-page__footer{display:flex;justify-content:flex-end;align-items:center;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.control-select,.control-date{padding:.625rem 1rem;font-size:.875rem;border:2px solid var(--input-border);border-radius:.75rem;background:var(--input-bg);color:var(--text-primary);font-family:Work Sans,sans-serif;min-width:220px}.control-select:focus,.control-date:focus{outline:none;border-color:var(--accent-text)}.tab-btn{display:flex;align-items:center;gap:.375rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-2px;transition:all .15s ease}.tab-btn:hover{color:var(--text-primary)}.tab-btn--active{color:#007fff;border-bottom-color:#007fff}.bulk-actions{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.bulk-actions__label{font-size:.875rem;font-weight:600;color:var(--text-secondary);margin-right:.25rem}.status-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .65rem;font-size:.75rem;font-weight:600;border-radius:9999px;border:2px solid transparent;cursor:pointer;transition:all .15s ease;background:var(--bg-surface-alt);color:var(--text-muted)}.status-btn--present.status-btn--selected,.status-btn--present:hover{background:#dcfce7;color:#15803d;border-color:#86efac}.status-btn--absent.status-btn--selected,.status-btn--absent:hover{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.status-btn--late.status-btn--selected,.status-btn--late:hover{background:#fef3c7;color:#a16207;border-color:#fcd34d}.status-btn--excused.status-btn--selected,.status-btn--excused:hover{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}.attendance-table{background:var(--card-bg);border-radius:1rem;box-shadow:var(--shadow);overflow:hidden}.attendance-table__header{display:flex;justify-content:space-between;padding:.75rem 1.25rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);background:var(--bg-surface-alt);border-bottom:1px solid var(--border-color)}.attendance-table__row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;border-bottom:1px solid var(--border-color);transition:background .15s ease}.attendance-table__row:last-child{border-bottom:none}.attendance-table__row:hover{background:var(--bg-surface-alt)}.attendance-table__name{font-size:.875rem;font-weight:500;color:var(--text-primary)}.attendance-table__buttons{display:flex;gap:.375rem}.data-table{width:100%;border-collapse:collapse;background:var(--card-bg);border-radius:1rem;box-shadow:var(--shadow);overflow:hidden}.data-table th,.data-table td{padding:.75rem 1rem;text-align:left;font-size:.875rem}.data-table th{font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);background:var(--bg-surface-alt);border-bottom:2px solid var(--border-color)}.data-table td{color:var(--text-primary);border-bottom:1px solid var(--border-color)}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--bg-surface-alt)}.stats-summary{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.stat-pill{background:var(--card-bg);border:1px solid var(--border-color);border-radius:9999px;padding:.5rem 1.25rem;font-size:.875rem;color:var(--text-secondary);box-shadow:var(--shadow)}.stat-pill strong{color:var(--text-primary);font-weight:700;margin-right:.25rem}.stat-pill--accent{border-color:#007fff;background:#007fff0f}.grading-page .page-header{margin-bottom:1.5rem}.grading-page .page-header .page-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem}.grading-page .page-header .page-subtitle{color:var(--text-secondary);margin:0;font-size:.875rem}.grading-page__controls{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:center;flex-wrap:wrap}.grading-page__layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;min-height:400px}@media(max-width:768px){.grading-page__layout{grid-template-columns:1fr}}.grading-page__sidebar{background:var(--card-bg);border-radius:1rem;box-shadow:var(--shadow);padding:1rem;overflow-y:auto;max-height:70vh}.grading-page__main{background:var(--card-bg);border-radius:1rem;box-shadow:var(--shadow);padding:1.25rem}.grading-page__footer{display:flex;justify-content:flex-end;align-items:center;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.sidebar-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:0 0 .75rem;padding:0 .25rem}.sidebar-empty{font-size:.875rem;color:var(--text-muted);padding:1rem .25rem}.assignment-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.assignment-item{display:flex;align-items:center;justify-content:space-between;padding:.625rem .75rem;border-radius:.75rem;cursor:pointer;transition:all .15s ease;border:2px solid transparent}.assignment-item:hover{background:var(--bg-surface-alt)}.assignment-item--active{background:#007fff0f;border-color:#007fff40}.assignment-item__info{display:flex;flex-direction:column;gap:.25rem;min-width:0}.assignment-item__name{font-size:.875rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignment-item__meta{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-muted)}.btn-icon{background:none;border:none;padding:.25rem;color:var(--text-muted);cursor:pointer;border-radius:.5rem;transition:all .15s ease}.btn-icon:hover{color:#dc2626;background:#dc262614}.grade-header{margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.grade-header h3{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem}.grade-header__meta{font-size:.875rem;color:var(--text-muted)}.grade-table__header{display:grid;grid-template-columns:1fr 100px 1fr;gap:.75rem;padding:.625rem .5rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-bottom:2px solid var(--border-color)}.grade-table__row{display:grid;grid-template-columns:1fr 100px 1fr;gap:.75rem;padding:.5rem;align-items:center;border-bottom:1px solid var(--border-color)}.grade-table__row:last-child{border-bottom:none}.grade-table__row:hover{background:var(--bg-surface-alt)}.grade-table__name{font-size:.875rem;font-weight:500;color:var(--text-primary)}.grade-table__score{width:100%;padding:.375rem .5rem;font-size:.875rem;border:2px solid var(--input-border);border-radius:.5rem;background:var(--input-bg);color:var(--text-primary);font-family:Work Sans,sans-serif;text-align:center}.grade-table__score:focus{outline:none;border-color:var(--accent-text)}.grade-table__feedback{width:100%;padding:.375rem .5rem;font-size:.875rem;border:2px solid var(--input-border);border-radius:.5rem;background:var(--input-bg);color:var(--text-primary);font-family:Work Sans,sans-serif}.grade-table__feedback::placeholder{color:var(--text-muted)}.grade-table__feedback:focus{outline:none;border-color:var(--accent-text)}.control-select{padding:.625rem 1rem;font-size:.875rem;border:2px solid var(--input-border);border-radius:.75rem;background:var(--input-bg);color:var(--text-primary);font-family:Work Sans,sans-serif;min-width:220px}.control-select:focus{outline:none;border-color:var(--accent-text)}.success-msg{font-size:.875rem;color:#15803d;font-weight:500}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;border-radius:.75rem;border:none;cursor:pointer;transition:all .15s ease;font-family:Work Sans,sans-serif}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--bg-surface-alt);color:var(--text-primary);border:1px solid var(--border-color)}.secretary-dashboard__loading,.secretary-dashboard__error{padding:3rem;text-align:center;color:var(--text-secondary);font-size:1.125rem}.secretary-dashboard__error{color:var(--error-text)}.secretary-dashboard__header{margin-bottom:2rem}.secretary-dashboard__header .page-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem;letter-spacing:-.02em}.secretary-dashboard__header .page-subtitle{color:var(--text-secondary);margin:0;font-size:.875rem}.secretary-dashboard__section{margin-bottom:2.5rem}.pie-legend{display:flex;justify-content:center;gap:1.25rem;margin-top:.5rem}.pie-legend__item{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--text-secondary);font-weight:500}.pie-legend__dot{width:10px;height:10px;border-radius:9999px;flex-shrink:0}.status-badge{display:inline-block;padding:.15rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:capitalize}.status-badge--full{background:#16a34a1f;color:#16a34a}.status-badge--partial{background:#d977061f;color:#d97706}.status-badge--unpaid{background:#dc26261f;color:#dc2626}.quick-card:nth-child(4n+1){--qc-from: #3b82f6;--qc-to: #60a5fa;--qc-glow: rgba(59,130,246,.22)}.quick-card:nth-child(4n+2){--qc-from: #7c3aed;--qc-to: #c4b5fd;--qc-glow: rgba(124,58,237,.22)}.quick-card:nth-child(4n+3){--qc-from: #0d9488;--qc-to: #2dd4bf;--qc-glow: rgba(13,148,136,.22)}.quick-card:nth-child(4n+4){--qc-from: #16a34a;--qc-to: #4ade80;--qc-glow: rgba(22,163,74,.22)}.registration-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.registration-page .page-header .page-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0}.registration-error{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--error-bg);color:var(--error-text);border-radius:8px;margin-bottom:1rem;font-size:.875rem}.registration-error button{margin-left:auto;background:none;border:none;color:var(--error-text);cursor:pointer;font-size:1.25rem;line-height:1}.search-bar{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:var(--card-bg);border-radius:8px;box-shadow:var(--shadow);margin-bottom:2rem}.search-bar svg{color:var(--text-muted)}.search-bar input{flex:1;border:none;font-size:1rem;outline:none}.add-form{background:var(--card-bg);border-radius:8px;padding:2rem;box-shadow:var(--shadow);margin-bottom:2rem}.add-form h3{font-size:1.25rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.add-form .form-note{font-size:.9375rem;color:var(--text-secondary);margin-bottom:1.5rem}.form-field input,.form-field select{padding:.75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.9375rem}.form-field input:focus,.form-field select:focus{outline:none;border-color:#007fff}.btn-success{background:#4caf50;color:#fff}.btn-success:hover{background:#3d8b40}.btn-small{padding:.5rem 1rem;font-size:.875rem}.registrations-list{display:flex;flex-direction:column;gap:1rem}.registration-card{background:var(--card-bg);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;gap:2rem}.registration-card__info{flex:1}.registration-card__info h3{font-size:1.125rem;font-weight:600;margin:0 0 .25rem;color:var(--text-primary)}.registration-card__info .student-id{font-size:.875rem;color:var(--text-secondary);margin:0 0 .5rem}.registration-card__info .registration-details{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-muted)}.registration-card__payment{display:flex;align-items:center;gap:1.5rem}.payment-info{text-align:right}.payment-info .payment-amount{font-size:1.125rem;font-weight:700;margin:0 0 .5rem;color:var(--text-primary)}.payment-method-form{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;min-width:200px}.payment-method-form select,.payment-method-form input{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem}.payment-method-form select:focus,.payment-method-form input:focus{outline:none;border-color:#007fff}.payment-method-form__actions{display:flex;gap:.5rem}.payment-status{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .875rem;border-radius:12px;font-size:.8125rem;font-weight:600}.payment-status--full{background:var(--success-bg);color:var(--success-text)}.payment-status--partial{background:var(--warning-bg);color:var(--warning-text)}.mobile-payment-status{display:flex;flex-direction:column;gap:.5rem;margin-top:.25rem}.mobile-payment-status__row{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500}.mobile-payment-status__pending{background:var(--warning-bg, #fff7ed);color:var(--warning-text, #92400e)}.mobile-payment-status__success{background:var(--success-bg, #f0fdf4);color:var(--success-text, #166534)}.mobile-payment-status__failed{background:var(--error-bg, #fef2f2);color:var(--error-text, #991b1b)}.mobile-payment-status__link{align-self:flex-start}.mobile-payment-status__hint{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--text-muted);margin:0}.lesson-planner-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.lesson-planner-page .page-header .page-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary:hover{background:#06c}.btn-secondary{background:var(--bg-surface-alt);color:var(--text-secondary)}.note-form{background:var(--card-bg);border-radius:8px;padding:2rem;box-shadow:var(--shadow);margin-bottom:2rem}.note-form h3{font-size:1.25rem;font-weight:600;margin-bottom:1.5rem;color:var(--text-primary)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem}.form-field--full{grid-column:1/-1}.form-field label{font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:.5rem}.form-field input,.form-field textarea{padding:.75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.9375rem}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:#007fff}.form-field textarea{resize:vertical;font-family:inherit}.form-actions{display:flex;gap:1rem}.notes-list{display:flex;flex-direction:column;gap:1.5rem}.note-card{background:var(--card-bg);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow)}.note-card__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.note-card__meta{display:flex;gap:1rem}.note-card__meta svg{color:#007fff;margin-top:.25rem}.note-card__meta h3{font-size:1.125rem;font-weight:600;margin:0 0 .25rem;color:var(--text-primary)}.note-card__course{font-size:.9375rem;color:var(--text-secondary);margin:0 0 .25rem}.note-card__date{font-size:.8125rem;color:var(--text-muted);margin:0}.note-card__actions{display:flex;gap:.5rem}.note-card__content h4{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin:0 0 .5rem;letter-spacing:.5px}.note-card__content p{font-size:.9375rem;line-height:1.6;color:var(--text-primary);margin:0 0 1rem}.note-card__content p:last-child{margin-bottom:0}.note-card__reminders{padding:.75rem;background:var(--warning-bg);border-left:3px solid var(--warning-text);border-radius:4px}.btn-icon{background:none;border:1px solid var(--border-color);border-radius:4px;padding:.5rem;cursor:pointer;display:flex;align-items:center;color:var(--text-secondary);transition:all .2s}.btn-icon:hover{background:var(--error-bg);color:#f44336;border-color:#f44336}.planner-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.planner-page .page-header .page-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0}.reminders-list{display:flex;flex-direction:column;gap:1rem}.reminder-card{background:var(--card-bg);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow);display:flex;align-items:center;gap:1rem}.reminder-card>svg{color:#007fff}.reminder-info{flex:1}.reminder-info h3{font-size:1.125rem;font-weight:600;margin:0 0 .25rem;color:var(--text-primary)}.reminder-info .reminder-description{font-size:.9375rem;color:var(--text-secondary);margin:0 0 .5rem}.reminder-info .reminder-time{font-size:.8125rem;color:var(--text-muted);margin:0}.btn-icon--danger{color:#f44336;border-color:#f44336}.btn-icon--danger:hover{background:#f443361a}.admin-dashboard__loading,.admin-dashboard__error{padding:3rem;text-align:center;color:var(--text-secondary);font-size:1.125rem}.admin-dashboard__error{color:var(--error-text)}.admin-dashboard__header{margin-bottom:2rem}.admin-dashboard__header .page-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem;letter-spacing:-.02em}.admin-dashboard__header .page-subtitle{color:var(--text-secondary);margin:0;font-size:.875rem}.admin-dashboard__section{margin-bottom:2.5rem}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}.quick-card:nth-child(6n+1){--qc-from: #3b82f6;--qc-to: #60a5fa;--qc-glow: rgba(59,130,246,.22)}.quick-card:nth-child(6n+2){--qc-from: #7c3aed;--qc-to: #c4b5fd;--qc-glow: rgba(124,58,237,.22)}.quick-card:nth-child(6n+3){--qc-from: #0d9488;--qc-to: #2dd4bf;--qc-glow: rgba(13,148,136,.22)}.quick-card:nth-child(6n+4){--qc-from: #16a34a;--qc-to: #4ade80;--qc-glow: rgba(22,163,74,.22)}.quick-card:nth-child(6n+5){--qc-from: #d97706;--qc-to: #fbbf24;--qc-glow: rgba(217,119,6,.22)}.quick-card:nth-child(6n+6){--qc-from: #db2777;--qc-to: #f9a8d4;--qc-glow: rgba(219,39,119,.22)}.user-management-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.user-management-page .page-header__text{flex:1}.user-management-page .page-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.user-management-page .page-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.filters-bar{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.search-box{display:flex;align-items:center;gap:.75rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:.625rem 1rem;max-width:420px}.search-box svg{color:var(--text-muted);flex-shrink:0}.search-box input{border:none;outline:none;width:100%;font-size:.9375rem;color:var(--text-primary)}.role-filters{display:flex;gap:.5rem;flex-wrap:wrap}.filter-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .875rem;border:1px solid var(--border-color);border-radius:9999px;background:var(--card-bg);font-size:.875rem;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.filter-chip:hover{border-color:#007fff;color:#007fff}.filter-chip.active{background:#007fff;border-color:#007fff;color:#fff}.filter-chip.active svg{color:#fff}.users-table-wrapper{background:var(--card-bg);border-radius:8px;box-shadow:0 1px 2px #0000000d;overflow-x:auto}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:.875rem 1rem;text-align:left;font-size:.875rem}.users-table thead th{background:var(--bg-surface-alt);font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border-color);white-space:nowrap}.users-table tbody tr{border-bottom:1px solid var(--border-light);transition:background .15s ease}.users-table tbody tr:hover{background:var(--bg-surface-alt)}.users-table tbody tr:last-child{border-bottom:none}.users-table .name-cell{font-weight:500;color:var(--text-primary)}.users-table .actions-cell{display:flex;align-items:center;gap:.5rem}.role-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:capitalize}.role-badge--blue{background:#dbeafe;color:#1d4ed8}.role-badge--green{background:#dcfce7;color:#166534}.role-badge--purple{background:#f3e8ff;color:#6b21a8}.role-badge--orange{background:#ffedd5;color:#9a3412}.role-badge--red{background:#fee2e2;color:#dc2626}.role-badge--teal{background:#ccfbf1;color:#115e59}.protected-label{font-size:.75rem;color:var(--text-muted);font-style:italic}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;background:transparent;color:var(--text-secondary);transition:all .15s ease}.icon-btn.edit:hover{background:#dbeafe;color:#007fff}.icon-btn.delete:hover{background:#fee2e2;color:#dc2626}.loading-state,.empty-state{padding:3rem;text-align:center;color:var(--text-secondary);font-size:1rem}.pagination-bar{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding:.75rem 0}.pagination-info{font-size:.875rem;color:var(--text-secondary)}.pagination-controls{display:flex;align-items:center;gap:.75rem}.pagination-controls span{font-size:.875rem;color:var(--text-secondary)}.pagination-controls button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border-color);border-radius:6px;background:var(--card-bg);color:var(--text-secondary);cursor:pointer}.pagination-controls button:disabled{opacity:.4;cursor:default}.pagination-controls button:not(:disabled):hover{border-color:#007fff;color:#007fff}.modal-panel{background:var(--card-bg);border-radius:12px;width:100%;max-width:680px;max-height:90vh;overflow-y:auto}.modal-panel--small{max-width:440px}.modal-panel__header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem 1rem;border-bottom:1px solid var(--border-light)}.modal-panel__header h2{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0}.user-form{padding:1.5rem 2rem 2rem;display:flex;flex-direction:column;gap:1.25rem}.form-field label{font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:.375rem}.form-field input,.form-field select{padding:.625rem .75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;color:var(--text-primary);transition:border-color .15s ease}.form-field input:focus,.form-field select:focus{outline:none;border-color:#007fff;box-shadow:0 0 0 3px #007fff1a}.form-field input:disabled,.form-field select:disabled{background:var(--bg-surface-alt);color:var(--text-muted)}.form-field input::placeholder,.form-field select::placeholder{color:var(--text-muted)}.role-fields{background:var(--bg-surface-alt);border:1px solid var(--border-color);border-radius:8px;padding:1.25rem}.role-fields h4{font-size:.875rem;font-weight:600;color:#007fff;margin:0 0 1rem;text-transform:uppercase;letter-spacing:.03em}.role-fields .form-row+.form-row,.role-fields .form-row+.form-field,.role-fields .form-field+.form-row{margin-top:.75rem}.form-error{background:#fee2e2;color:#dc2626;padding:.625rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500}.delete-confirmation{padding:1.5rem 2rem 2rem}.delete-confirmation p{color:var(--text-secondary);line-height:1.6;margin:0 0 1.5rem}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover:not(:disabled){background:#bb1e1e}.schedule-calendar-page{--cal-blue: #3b82f6;--cal-green: #22c55e;--cal-purple: #8b5cf6;--cal-orange: #f97316;--cal-teal: #14b8a6;--cal-pink: #ec4899;--cal-indigo: #6366f1;--cal-amber: #f59e0b}.schedule-calendar-page .page-header{margin-bottom:1.5rem}.schedule-calendar-page .page-header__text{flex:1}.schedule-calendar-page .page-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.375rem}.schedule-calendar-page .page-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.loading-state,.empty-state{padding:3rem;text-align:center;color:var(--text-secondary)}.cal-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem}.cal-toolbar__nav{display:flex;align-items:center;gap:.5rem}.cal-toolbar__month{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0;min-width:200px;text-align:center}.cal-toolbar__views{display:flex;gap:.25rem;background:var(--bg-surface-alt);border-radius:8px;padding:3px}.cal-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border-color);border-radius:6px;background:var(--card-bg);color:var(--text-secondary);cursor:pointer}.cal-nav-btn:hover{border-color:#007fff;color:#007fff}.cal-today-btn{padding:.375rem .875rem;border:1px solid var(--border-color);border-radius:6px;background:var(--card-bg);font-size:.875rem;font-weight:500;color:var(--text-secondary);cursor:pointer;margin-left:.5rem}.cal-today-btn:hover{border-color:#007fff;color:#007fff}.cal-view-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:none;border-radius:6px;background:transparent;font-size:.875rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.cal-view-btn.active{background:var(--card-bg);color:#007fff;box-shadow:0 1px 2px #0000000d}.cal-view-btn:hover:not(.active){color:var(--text-primary)}.cal-body{background:var(--card-bg);border-radius:10px;box-shadow:0 1px 2px #0000000d;overflow:hidden}.week-view{display:grid;grid-template-columns:60px repeat(5,1fr);min-height:660px}.week-view__corner{height:44px;border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-light)}.week-view__time-col{position:relative}.week-view__time-label{height:60px;display:flex;align-items:flex-start;justify-content:flex-end;padding:0 8px;font-size:.75rem;color:var(--text-muted);border-right:1px solid var(--border-light);position:relative;top:-6px}.week-view__day-col{border-right:1px solid var(--border-light)}.week-view__day-col:last-child{border-right:none}.week-view__day-header{height:44px;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--border-color);background:var(--bg-surface-alt)}.week-view__day-body{position:relative;height:660px}.week-view__hour-line{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--border-light);pointer-events:none}.week-event{position:absolute;left:3px;right:3px;border-radius:6px;padding:4px 6px;overflow:hidden;cursor:pointer;border:none;text-align:left;display:flex;flex-direction:column;gap:1px;color:#fff;font-family:inherit;transition:opacity .15s ease,transform .15s ease;z-index:1}.week-event:hover{opacity:.88;transform:scale(1.02)}.week-event__code{font-size:.6875rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;opacity:.9}.week-event__name{font-size:.75rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-event__meta{font-size:.625rem;opacity:.8}.month-view__header{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-surface-alt);border-bottom:1px solid var(--border-color)}.month-view__day-label{padding:.625rem 0;text-align:center;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.month-view__grid{display:flex;flex-direction:column}.month-view__week{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--border-light)}.month-view__week:last-child{border-bottom:none}.month-cell{min-height:90px;padding:.375rem .5rem;border-right:1px solid var(--border-light);position:relative}.month-cell:last-child{border-right:none}.month-cell--muted{background:var(--bg-surface-alt)}.month-cell--muted .month-cell__date{color:var(--text-muted)}.month-cell--today .month-cell__date{background:#007fff;color:#fff;border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center}.month-cell__date{font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:.25rem;display:inline-block}.month-cell__events{display:flex;flex-direction:column;gap:2px}.month-cell__more{font-size:.625rem;color:var(--text-muted);padding-left:2px}.month-event-dot{display:block;width:100%;padding:1px 4px;border-radius:3px;font-size:.625rem;font-weight:600;color:#fff;text-align:left;border:none;cursor:pointer;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:inherit}.month-event-dot:hover{opacity:.85}.list-view{padding:1.5rem 2rem}.list-day-group{margin-bottom:1.5rem}.list-day-group__title{font-size:1rem;font-weight:700;color:var(--text-primary);margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-light)}.list-day-group__items{display:flex;flex-direction:column;gap:.5rem}.list-event{display:grid;grid-template-columns:4px 120px 1fr auto;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--bg-surface-alt);border:1px solid var(--border-light);border-radius:8px;cursor:pointer;text-align:left;font-family:inherit;transition:box-shadow .15s ease}.list-event:hover{box-shadow:0 4px 6px -1px #0000001a}.list-event__color{width:4px;height:100%;min-height:32px;border-radius:2px}.list-event__time{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--text-secondary);font-weight:500;white-space:nowrap}.list-event__time svg{color:#007fff}.list-event__info{font-size:.875rem;color:var(--text-primary)}.list-event__info strong{font-weight:600}.list-event__details{display:flex;gap:1rem;font-size:.75rem;color:var(--text-secondary)}.list-event__details span{display:inline-flex;align-items:center;gap:.25rem}.modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1050;padding:1rem}.event-detail-card{background:var(--card-bg);border-radius:12px;width:100%;max-width:400px;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a}.event-detail-card__color-bar{height:6px}.event-detail-card__body{padding:1.5rem}.event-detail-card__body h3{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem}.event-detail-card__code{display:inline-block;font-size:.75rem;font-weight:600;color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;margin-bottom:1rem}.event-detail-card__rows{display:flex;flex-direction:column;gap:.625rem;margin-bottom:1.25rem}.event-detail-card__rows>div{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.event-detail-card__rows>div svg{color:#007fff;flex-shrink:0}.event-detail-card__rows>div strong{color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-surface-hover)}@media(max-width:768px){.week-view{overflow-x:auto;min-width:700px}.cal-body{overflow-x:auto}.list-event{grid-template-columns:4px 1fr;gap:.5rem}.list-event__details{grid-column:1/-1}}.owner-dashboard__loading,.owner-dashboard__error{padding:3rem;text-align:center;color:var(--text-secondary);font-size:1.125rem}.owner-dashboard__error{color:var(--error-text)}.owner-dashboard__header{margin-bottom:2rem}.owner-dashboard__header .page-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem;letter-spacing:-.02em}.owner-dashboard__header .page-subtitle{color:var(--text-secondary);margin:0;font-size:.875rem}.owner-dashboard__section{margin-bottom:2.5rem}.cash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}.cash-card{background:var(--card-bg);border-radius:14px;padding:1.375rem 1.25rem;border:1px solid var(--border-color);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.25rem}.cash-card--blue .cash-card__icon{background:linear-gradient(135deg,#3b82f6,#60a5fa);box-shadow:0 4px 10px #3b82f61f}.cash-card--green .cash-card__icon{background:linear-gradient(135deg,#16a34a,#4ade80);box-shadow:0 4px 10px #16a34a1f}.cash-card--amber .cash-card__icon{background:linear-gradient(135deg,#d97706,#fbbf24);box-shadow:0 4px 10px #d977061f}.cash-card--purple .cash-card__icon{background:linear-gradient(135deg,#7c3aed,#c4b5fd);box-shadow:0 4px 10px #7c3aed1f}.cash-card__top{display:flex;align-items:center;gap:.625rem;margin-bottom:.625rem}.cash-card__icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.cash-card__label{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.cash-card__value{font-size:1.6rem;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.02em;line-height:1}.cash-card__sub{font-size:.775rem;color:var(--text-muted);margin:.25rem 0 0}.cash-card__action{display:inline-flex;align-items:center;gap:.3rem;margin-top:.625rem;font-size:.8rem;font-weight:600;color:#007fff;text-decoration:none;transition:gap .15s ease}.cash-card__action:hover{gap:.5rem}.collection-bar-wrap{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.collection-bar{flex:1;height:8px;background:var(--bg-surface-alt);border-radius:9999px;overflow:hidden}.collection-bar__fill{height:100%;background:linear-gradient(90deg,#3b82f6,#16a34a);border-radius:9999px;transition:width .6s ease}.collection-bar__label{font-size:.875rem;font-weight:700;color:var(--text-secondary);min-width:3rem;text-align:right}.method-breakdown{display:flex;flex-wrap:wrap;gap:.625rem}.method-pill{background:var(--bg-surface-alt);border:1px solid var(--border-color);border-radius:9999px;padding:.35rem .875rem;display:flex;align-items:center;gap:.5rem;font-size:.875rem}.method-pill__name{font-weight:600;color:var(--text-primary);text-transform:capitalize}.method-pill__amount{color:#16a34a;font-weight:600}.method-pill__count{color:var(--text-muted)}.snapshot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem}.snapshot-card{background:var(--card-bg);border-radius:14px;padding:1.25rem 1rem;border:1px solid var(--border-color);box-shadow:var(--shadow);text-align:center;display:flex;flex-direction:column;align-items:center;gap:.375rem}.snapshot-card__icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:.25rem}.snapshot-card__icon--blue{background:linear-gradient(135deg,#3b82f6,#60a5fa);box-shadow:0 4px 10px #3b82f633}.snapshot-card__icon--green{background:linear-gradient(135deg,#16a34a,#4ade80);box-shadow:0 4px 10px #16a34a33}.snapshot-card__icon--violet{background:linear-gradient(135deg,#7c3aed,#c4b5fd);box-shadow:0 4px 10px #7c3aed33}.snapshot-card__icon--amber{background:linear-gradient(135deg,#d97706,#fbbf24);box-shadow:0 4px 10px #d9770633}.snapshot-card__value{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.02em;line-height:1}.snapshot-card__label{font-size:.775rem;color:var(--text-secondary);margin:0}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}@media(max-width:768px){.charts-grid{grid-template-columns:1fr}}.attendance-donut{display:flex;flex-direction:column;align-items:center;gap:.25rem}.attendance-donut__chart{position:relative;width:100%;height:190px}.attendance-donut__center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;display:flex;flex-direction:column;align-items:center}.attendance-donut__rate{font-size:1.5rem;font-weight:700;color:var(--text-primary);line-height:1;letter-spacing:-.02em}.attendance-donut__rate-label{font-size:.7rem;color:var(--text-muted);margin-top:2px;text-transform:uppercase;font-weight:600;letter-spacing:.04em}.attendance-donut__legend{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;padding-top:.25rem}.attendance-donut__legend-item{display:flex;align-items:center;gap:.375rem;font-size:.8rem}.attendance-donut__dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.attendance-donut__legend-name{color:var(--text-secondary)}.attendance-donut__legend-value{font-weight:600;color:var(--text-primary)}.attendance-donut__legend-pct{color:var(--text-muted);font-size:.75rem}.at-risk-list{display:flex;flex-direction:column;gap:.75rem}.at-risk-card{background:var(--card-bg);border-radius:12px;padding:1rem 1.25rem;border:1px solid var(--border-color);border-left:4px solid #DC2626;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.5rem}.at-risk-card__header{display:flex;align-items:center;gap:.5rem}.at-risk-card__icon{color:var(--error-text);flex-shrink:0}.at-risk-card__name{font-weight:600;color:var(--text-primary);font-size:.925rem}.at-risk-card__grade{margin-left:auto;font-size:.775rem;font-weight:600;color:var(--text-secondary);background:var(--bg-surface-alt);padding:.15rem .5rem;border-radius:9999px}.at-risk-card__stats{display:flex;gap:1.25rem;font-size:.8rem;color:var(--text-secondary)}.at-risk-card__factors{display:flex;flex-wrap:wrap;gap:.375rem}.risk-pill{display:inline-block;font-size:.7rem;font-weight:600;padding:.2rem .625rem;border-radius:9999px;background:#ef44441a;color:#dc2626;text-transform:capitalize}.quick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.75rem}.quick-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:14px;padding:1.125rem .75rem;display:flex;flex-direction:column;align-items:center;gap:.625rem;text-decoration:none;color:var(--text-primary);font-size:.775rem;font-weight:500;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.quick-card__icon{width:40px;height:40px;border-radius:11px;background:#eff6ff;color:#007fff;display:flex;align-items:center;justify-content:center;transition:background .15s ease,box-shadow .15s ease,color .15s ease}.quick-card:nth-child(8n+1){--qc-from: #3b82f6;--qc-to: #60a5fa;--qc-glow: rgba(59,130,246,.22)}.quick-card:nth-child(8n+2){--qc-from: #7c3aed;--qc-to: #c4b5fd;--qc-glow: rgba(124,58,237,.22)}.quick-card:nth-child(8n+3){--qc-from: #0d9488;--qc-to: #2dd4bf;--qc-glow: rgba(13,148,136,.22)}.quick-card:nth-child(8n+4){--qc-from: #16a34a;--qc-to: #4ade80;--qc-glow: rgba(22,163,74,.22)}.quick-card:nth-child(8n+5){--qc-from: #d97706;--qc-to: #fbbf24;--qc-glow: rgba(217,119,6,.22)}.quick-card:nth-child(8n+6){--qc-from: #db2777;--qc-to: #f9a8d4;--qc-glow: rgba(219,39,119,.22)}.quick-card:nth-child(8n+7){--qc-from: #2563eb;--qc-to: #93c5fd;--qc-glow: rgba(37,99,235,.22)}.quick-card:nth-child(8n+8){--qc-from: #0d9488;--qc-to: #5eead4;--qc-glow: rgba(13,148,136,.22)}.quick-card:hover{transform:translateY(-3px);border-color:transparent;box-shadow:0 8px 20px var(--qc-glow),0 2px 6px #0000000f;color:var(--text-primary)}.quick-card:hover .quick-card__icon{background:linear-gradient(135deg,var(--qc-from),var(--qc-to));color:#fff;box-shadow:0 4px 10px var(--qc-glow)}.administrators-page .page-header{margin-bottom:2rem}.administrators-page .page-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.administrators-page .page-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.admin-card{background:var(--card-bg);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow);cursor:pointer;transition:all .3s ease}.admin-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.admin-card__header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.admin-card__avatar{width:48px;height:48px;border-radius:50%;background:#007fff1a;color:#007fff;display:flex;align-items:center;justify-content:center}.admin-card h3{font-size:1.125rem;font-weight:600;margin:0 0 .25rem;color:var(--text-primary)}.admin-card p{font-size:.875rem;color:var(--text-secondary);margin:0}.admin-card__stats{display:flex;flex-direction:column;gap:.5rem}.stat-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.stat-item svg{color:#007fff}.admin-details-modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--card-bg);border-radius:8px;padding:2rem;max-width:800px;width:100%;max-height:90vh;overflow-y:auto}.modal-content h2{font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;color:var(--text-primary)}.details-section{margin-bottom:2rem}.details-section h3{font-size:1.125rem;font-weight:600;margin-bottom:1rem;color:var(--text-primary);padding-bottom:.5rem;border-bottom:2px solid var(--border-color)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;font-size:.9375rem}.details-grid strong{color:var(--text-secondary);font-weight:500}.payroll-page__state{padding:3rem;text-align:center;color:var(--text-secondary);font-size:1.125rem}.payroll-page__state--error{color:#dc2626}.payroll-page__header{margin-bottom:1.5rem}.payroll-page__header .page-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem}.payroll-page__header .page-subtitle{color:var(--text-secondary);margin:0}.payroll-page__alert{display:flex;align-items:center;gap:.625rem;background:#fffbeb;border:1px solid #fcd34d;border-radius:.5rem;padding:.875rem 1.25rem;margin-bottom:1.5rem;font-size:.875rem;color:#92400e}.payroll-page__alert svg{flex-shrink:0;color:#d97706}.payroll-list{display:flex;flex-direction:column;gap:.75rem}.payroll-card{background:var(--card-bg);border-radius:.75rem;box-shadow:0 1px 2px #0000000d;border:1px solid var(--border-color);overflow:hidden}.payroll-card--action{border-color:#fbbf24}.payroll-card__header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;background:none;border:none;cursor:pointer;text-align:left;gap:1rem}.payroll-card__header:hover{background:var(--bg-surface-alt)}.payroll-card__identity{display:flex;align-items:center;gap:1rem}.payroll-card__avatar{width:44px;height:44px;border-radius:50%;background:#dbeafe;color:#007fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;flex-shrink:0;text-transform:uppercase}.payroll-card__name{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 .2rem}.payroll-card__meta{font-size:.75rem;color:var(--text-muted);margin:0;text-transform:capitalize}.payroll-card__right{display:flex;align-items:center;gap:1rem;flex-shrink:0}.payroll-card__right svg{color:var(--text-muted)}.payroll-card__salary{text-align:right}.payroll-card__salary-amount{font-size:1.125rem;font-weight:700;color:var(--text-primary)}.payroll-card__salary-label{font-size:.75rem;color:var(--text-muted);margin-left:.25rem}.payroll-card__payments{border-top:1px solid var(--border-light);padding:.75rem 1.5rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.payroll-card__empty{font-size:.875rem;color:var(--text-muted);padding:.5rem 0;margin:0}.payment-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-radius:.5rem;gap:1rem}.payment-row--paid{background:#f0fdf4}.payment-row--approved{background:#eff6ff}.payment-row--pending{background:var(--bg-surface-alt)}.payment-row__info{display:flex;align-items:center;gap:.75rem}.payment-row__icon{flex-shrink:0}.payment-row__icon--paid{color:#16a34a}.payment-row__icon--pending{color:var(--text-muted)}.payment-row__month{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0}.payment-row__date{font-size:.75rem;color:var(--text-muted);margin:0}.payment-row__right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.payment-row__amount{font-size:.875rem;font-weight:700;color:var(--text-primary)}.payroll-badge{display:inline-block;padding:.2rem .625rem;border-radius:9999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.payroll-badge--paid{background:#dcfce7;color:#166534}.payroll-badge--approved{background:#dbeafe;color:#1e40af}.payroll-badge--warning{background:#fef3c7;color:#92400e}.payroll-approve-btn{padding:.35rem .875rem;background:#007fff;color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s ease}.payroll-approve-btn:hover:not(:disabled){background:#06c}.payroll-approve-btn:disabled{opacity:.6;cursor:not-allowed}.search-page .page-header{margin-bottom:2rem}.search-page .page-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.search-page .page-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.search-container{background:var(--card-bg);border-radius:8px;padding:2rem;box-shadow:var(--shadow)}.search-bar-large{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background:var(--bg-surface-alt);border-radius:8px;margin-bottom:1.5rem}.search-bar-large svg{color:var(--text-secondary)}.search-bar-large input{flex:1;border:none;background:none;font-size:1.125rem;outline:none}.search-bar-large input::placeholder{color:var(--text-muted)}.category-filters{display:flex;gap:.75rem;margin-bottom:2rem;flex-wrap:wrap}.category-btn{padding:.625rem 1.25rem;border:1px solid var(--border-color);background:var(--card-bg);border-radius:20px;cursor:pointer;font-weight:500;transition:all .2s}.category-btn:hover{border-color:#007fff;color:#007fff}.category-btn--active{background:#007fff;color:#fff;border-color:#007fff}.search-results{display:flex;flex-direction:column;gap:1rem}.result-card{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--border-color);border-radius:8px;transition:all .2s;cursor:pointer}.result-card:hover{border-color:#007fff;box-shadow:0 2px 8px #0000001a}.result-icon{width:40px;height:40px;border-radius:50%;background:#007fff1a;color:#007fff;display:flex;align-items:center;justify-content:center}.result-info{flex:1}.result-info h3{font-size:1rem;font-weight:600;margin:0 0 .25rem;color:var(--text-primary)}.result-info p{font-size:.875rem;color:var(--text-secondary);margin:0 0 .5rem}.result-info .result-type{display:inline-block;padding:.25rem .75rem;background:var(--bg-surface-alt);border-radius:12px;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.view-as-page .page-header{margin-bottom:2rem}.view-as-page .page-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.view-as-page .page-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.role-selector{display:flex;gap:.75rem;margin-bottom:2rem;flex-wrap:wrap}.role-btn{padding:.75rem 1.5rem;border:2px solid var(--border-color);background:var(--card-bg);border-radius:8px;cursor:pointer;font-weight:600;font-size:.9375rem;transition:all .2s}.role-btn:hover{border-color:#007fff;color:#007fff}.role-btn--active{background:#007fff;color:#fff;border-color:#007fff}.view-as-search{display:flex;align-items:center;gap:.5rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:.625rem 1rem;margin-bottom:1.5rem;color:#94a3b8}.view-as-search input{flex:1;border:none;outline:none;font-size:.9375rem;color:var(--text-primary);background:transparent}.view-as-search input::placeholder{color:#94a3b8}.view-as-page__status{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:3rem 1rem;color:#64748b;font-size:.9375rem}.view-as-page__status--error{color:#dc2626}.view-as-page__status .spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.user-card{background:var(--card-bg);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow);display:flex;align-items:center;gap:1rem;cursor:pointer;transition:all .3s ease}.user-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.user-card:hover .user-card__action{opacity:1}.user-card__avatar{width:56px;height:56px;border-radius:50%;background:#007fff1a;color:#007fff;display:flex;align-items:center;justify-content:center}.user-card__info{flex:1}.user-card__info h3{font-size:1.125rem;font-weight:600;margin:0 0 .25rem;color:var(--text-primary)}.user-card__info p{font-size:.875rem;color:var(--text-secondary);margin:0 0 .5rem}.user-card__info .user-role{display:inline-block;padding:.25rem .75rem;background:#007fff1a;color:#007fff;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:capitalize}.user-card__action{color:#007fff;opacity:0;transition:opacity .2s}.transactions-page__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.transactions-page__title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0}.transactions-page__subtitle{color:var(--text-secondary);font-size:.875rem;margin:.25rem 0 0}.transactions-page__summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.transactions-page__controls{display:flex;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}.transactions-page__state{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:3rem 1rem;color:var(--text-secondary);font-size:.9375rem}.transactions-page__state .spin{animation:tx-spin 1s linear infinite}.transactions-page__state--error{color:#dc2626}.transactions-page__pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.25rem;font-size:.875rem;color:var(--text-secondary)}.transactions-page__pagination button{display:flex;align-items:center;gap:.25rem;padding:.4rem .75rem;border:1px solid var(--border-color);border-radius:6px;background:var(--card-bg);color:var(--text-primary);font-size:.8125rem;cursor:pointer;transition:background .15s}.transactions-page__pagination button:hover:not(:disabled){background:var(--bg-surface-alt)}.transactions-page__pagination button:disabled{opacity:.4;cursor:default}@keyframes tx-spin{to{transform:rotate(360deg)}}.summary-card{display:flex;align-items:center;gap:.875rem;padding:1rem 1.25rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow)}.summary-card__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--bg-surface-alt);color:var(--text-secondary);flex-shrink:0}.summary-card__label{display:block;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.summary-card__value{display:block;font-size:1.25rem;font-weight:700;color:var(--text-primary)}.summary-card--in .summary-card__icon{background:#dcfce7;color:#16a34a}.summary-card--out .summary-card__icon{background:#fee2e2;color:#dc2626}.summary-card--positive .summary-card__icon{background:#dbeafe;color:#2563eb}.summary-card--negative .summary-card__icon{background:#fef3c7;color:#d97706}.search-box{display:flex;align-items:center;gap:.5rem;flex:1;min-width:200px;max-width:360px;border:1px solid var(--border-color);border-radius:8px;padding:.5rem .75rem;background:var(--card-bg)}.search-box input{border:none;outline:none;flex:1;font-size:.875rem;color:var(--text-primary);background:transparent}.search-box input::placeholder{color:var(--text-muted)}.search-box__clear{border:none;background:none;color:var(--text-muted);cursor:pointer;padding:2px}.search-box__clear:hover{color:var(--text-secondary)}.search-box{color:var(--text-muted)}.filter-group{display:flex;align-items:center;gap:.5rem;color:var(--text-muted)}.filter-group select{border:1px solid var(--border-color);border-radius:8px;padding:.5rem .75rem;font-size:.875rem;color:var(--text-primary);background:var(--card-bg);cursor:pointer;outline:none}.transactions-table-wrapper{overflow-x:auto;border:1px solid var(--border-color);border-radius:12px;background:var(--card-bg)}.transactions-table{width:100%;border-collapse:collapse;font-size:.875rem}.transactions-table th{text-align:left;padding:.75rem 1rem;background:var(--bg-surface-alt);color:var(--text-secondary);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-color);white-space:nowrap}.transactions-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-light);color:var(--text-primary);vertical-align:middle}.transactions-table tbody tr:last-child td{border-bottom:none}.transactions-table tbody tr:hover{background:var(--bg-surface-alt)}.transactions-table .text-right{text-align:right}.transactions-table__date{white-space:nowrap;color:var(--text-secondary);font-size:.8125rem}.transactions-table__desc{font-weight:500;color:var(--text-primary)}.transactions-table__ref{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.125rem}.transactions-table__amount{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.transactions-table__empty{text-align:center;padding:2.5rem 1rem!important;color:var(--text-muted);font-style:italic}.amount--in{color:#16a34a}.amount--out{color:#dc2626}.type-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.type-badge--fee_payment{background:#dbeafe;color:#1e40af}.type-badge--salary{background:#f3e8ff;color:#7c3aed}.type-badge--expense{background:#fef3c7;color:#92400e}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:capitalize}.badge--green{background:#dcfce7;color:#166534}.badge--yellow{background:#fef3c7;color:#92400e}.badge--gray{background:var(--bg-surface-alt);color:var(--text-secondary)}.btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}.btn:disabled{opacity:.5;cursor:default}.btn--primary{background:#2563eb;color:#fff}.btn--primary:hover:not(:disabled){background:#1d4ed8}.btn--secondary{background:var(--bg-surface-alt);color:var(--text-primary)}.btn--secondary:hover:not(:disabled){background:var(--bg-surface-hover)}.expense-modal-overlay{position:fixed;inset:0;z-index:1000;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem}.expense-modal{background:var(--card-bg);border-radius:16px;width:100%;max-width:480px;box-shadow:0 20px 50px #0003;overflow:hidden}.expense-modal__header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.expense-modal__header h2{font-size:1.125rem;font-weight:700;margin:0}.expense-modal__header button{border:none;background:none;color:var(--text-muted);cursor:pointer;padding:4px}.expense-modal__header button:hover{color:var(--text-secondary)}.expense-modal__body{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.875rem}.expense-modal__body label{display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem;font-weight:600;color:var(--text-secondary)}.expense-modal__body label input,.expense-modal__body label select{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:8px;font-size:.875rem;color:var(--text-primary);outline:none}.expense-modal__body label input:focus,.expense-modal__body label select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.expense-modal__body label input::placeholder,.expense-modal__body label select::placeholder{color:var(--text-muted)}.expense-modal__footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color);background:var(--bg-surface-alt)}@media(max-width:640px){.transactions-page__summary{grid-template-columns:1fr 1fr}.transactions-table th:nth-child(4),.transactions-table td:nth-child(4){display:none}}.parent-dashboard__loading,.parent-dashboard__error{padding:3rem;text-align:center;color:var(--text-secondary);font-size:1.125rem}.parent-dashboard__error{color:var(--error-text)}.parent-dashboard__header{margin-bottom:2rem}.parent-dashboard__header .page-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem;letter-spacing:-.02em}.parent-dashboard__header .page-subtitle{color:var(--text-secondary);margin:0;font-size:.875rem}.parent-dashboard__section{margin-bottom:2.5rem}.section-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:0 0 .875rem}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.child-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:14px;padding:0;margin-bottom:1rem;box-shadow:var(--shadow);overflow:hidden}.child-card__header{width:100%;display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;transition:background .15s ease}.child-card__header:hover{background:var(--bg-surface-alt)}.child-card__name{font-size:1rem;font-weight:700;color:var(--text-primary)}.child-card__grade-badge{font-size:.75rem;font-weight:600;color:#007fff;background:#eff6ff;padding:.2rem .625rem;border-radius:9999px}.child-card__attendance{font-size:.875rem;color:var(--text-secondary);margin-left:auto}.child-card__toggle{color:var(--text-muted);display:flex;align-items:center}.child-card__body{padding:0 1.25rem 1.25rem}.child-card__chart{margin-bottom:1.5rem}.child-card__grades{margin-top:.5rem}.child-card__sub-title{font-size:.875rem;font-weight:600;color:var(--text-secondary);margin:0 0 .5rem}.gpa-badge{display:inline-block;font-size:.75rem;font-weight:700;padding:.2rem .625rem;border-radius:9999px}.gpa-badge--green{color:#15803d;background:#16a34a1f}.gpa-badge--amber{color:#b45309;background:#d977061f}.gpa-badge--red{color:#dc2626;background:#dc26261f}.child-card__fee-status{margin-bottom:1.5rem;padding:1rem;background:var(--bg-surface-alt);border-radius:10px;border:1px solid var(--border-color)}.fee-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-top:.5rem}.fee-item{display:flex;flex-direction:column;gap:.25rem}.fee-item__label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.fee-item__value{font-size:1.1rem;font-weight:700;color:var(--text-primary)}.fee-item__value--green{color:#15803d}.fee-item__value--red{color:#dc2626}.fee-badge{display:inline-block;font-size:.75rem;font-weight:700;padding:.25rem .75rem;border-radius:9999px;width:fit-content}.fee-badge--full{color:#15803d;background:#16a34a1f}.fee-badge--partial{color:#b45309;background:#d977061f}.fee-badge--unknown{color:var(--text-secondary);background:var(--bg-surface-alt)}.quick-link-card{display:flex;align-items:center;gap:.625rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:14px;padding:1rem 1.25rem;text-decoration:none;color:var(--text-primary);font-size:.875rem;font-weight:500;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.quick-link-card svg{color:#007fff;flex-shrink:0}.quick-link-card:hover{transform:translateY(-2px);border-color:#bfdbfe;box-shadow:0 6px 16px #3b82f61f;color:var(--text-primary)}@media(max-width:768px){.child-card__header{flex-wrap:wrap}.child-card__attendance{margin-left:0;width:100%;margin-top:.25rem}}.parent-children-page .page-header{margin-bottom:2rem}.parent-children-page .page-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.parent-children-page .page-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.loading-state,.empty-state{padding:2.5rem;text-align:center;color:var(--text-secondary)}.profile-section,.children-section{background:var(--card-bg);border-radius:8px;box-shadow:0 1px 2px #0000000d;padding:1.5rem 2rem;margin-bottom:1.5rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-light)}.section-header h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:.5rem}.section-header h2 svg{color:#007fff}.profile-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-item .info-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.info-item span:last-child{font-size:.875rem;color:var(--text-primary)}.profile-form,.child-edit-form{display:flex;flex-direction:column;gap:1rem}.child-edit-form{padding:1.5rem 2rem 2rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:640px){.form-row{grid-template-columns:1fr}}.form-field{display:flex;flex-direction:column}.form-field label{font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.375rem;display:flex;align-items:center;gap:.375rem}.form-field label svg{color:var(--text-muted)}.form-field input{padding:.625rem .75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem}.form-field input:focus{outline:none;border-color:#007fff;box-shadow:0 0 0 3px #007fff1a}.form-field input::placeholder{color:var(--text-muted)}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.children-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.child-card{border:1px solid var(--border-color);border-radius:8px;padding:1.25rem;transition:box-shadow .15s ease}.child-card:hover{box-shadow:0 4px 6px -1px #0000001a}.child-card__header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.child-card__header h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.child-card__header p{font-size:.875rem;color:var(--text-secondary);margin:0}.child-card__avatar{width:42px;height:42px;border-radius:50%;background:#007fff1a;color:#007fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;flex-shrink:0}.child-card__details{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.child-card .icon-btn{margin-left:auto;background:transparent;border:none;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;padding:4px;border-radius:4px}.child-card .icon-btn:hover{color:#007fff;background:#dbeafe}.status-badge{padding:.2rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:capitalize}.status-badge--active{background:#dcfce7;color:#166534}.status-badge--pending{background:#fef3c7;color:#92400e}.status-badge--inactive{background:var(--bg-surface-alt);color:var(--text-secondary)}.relationship{font-size:.75rem;color:var(--text-secondary);text-transform:capitalize}.primary-badge{font-size:.75rem;padding:.2rem .5rem;border-radius:9999px;background:#dbeafe;color:#1d4ed8;font-weight:600}.msg{padding:.625rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500}.msg--success{background:#dcfce7;color:#166534}.msg--error{background:#fee2e2;color:#dc2626}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1050;padding:1rem}.modal-panel{background:var(--card-bg);border-radius:12px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto}.modal-panel__header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 2rem 1rem;border-bottom:1px solid var(--border-light)}.modal-panel__header h2{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin:0}.modal-panel__header .icon-btn{background:transparent;border:none;cursor:pointer;color:var(--text-muted);display:flex;padding:4px}.modal-panel__header .icon-btn:hover{color:var(--text-primary)}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border:none;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .15s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:#007fff;color:#fff}.btn-primary:hover:not(:disabled){background:#006bd6}.btn-secondary{background:var(--bg-surface-alt);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:var(--bg-surface-hover)}.messaging-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.messaging-page .page-header .page-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0}.messaging-error{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--error-bg);color:var(--error-text);border-radius:8px;margin-bottom:1rem;font-size:.875rem}.messaging-error button{background:none;border:none;color:var(--error-text);cursor:pointer;font-size:1.25rem}.messaging-tabs{display:flex;gap:0;background:var(--card-bg);border-radius:8px 8px 0 0;overflow:hidden;box-shadow:var(--shadow)}.messaging-tabs__tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 1.5rem;background:none;border:none;border-bottom:3px solid transparent;font-size:.9375rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s}.messaging-tabs__tab:hover{color:var(--text-primary);background:var(--bg-surface-alt)}.messaging-tabs__tab--active{color:#007fff;border-bottom-color:#007fff;background:var(--card-bg)}.messaging-tabs__badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;font-size:.75rem;font-weight:700;background:#ce1126;color:#fff}.messaging-content{background:var(--card-bg);border-radius:0 0 8px 8px;box-shadow:var(--shadow);min-height:400px}.message-list{display:flex;flex-direction:column}.message-item{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.5rem;border:none;background:none;text-align:left;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border-light);width:100%}.message-item:hover{background:var(--bg-surface-alt)}.message-item--unread{background:var(--accent-soft)}.message-item--unread .message-item__subject{font-weight:700}.message-item--unread .message-item__party{font-weight:600}.message-item__icon{width:36px;height:36px;border-radius:50%;background:#dbeafe;color:#007fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.message-item__content{flex:1;min-width:0}.message-item__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}.message-item__party{font-size:.875rem;color:var(--text-primary)}.message-item__date{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.message-item__subject{font-size:.9375rem;font-weight:500;color:var(--text-primary);margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-item__preview{font-size:.8125rem;color:var(--text-secondary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-item__read-icon{color:#007fff;flex-shrink:0;margin-top:4px}.message-detail{padding:1.5rem}.message-detail__back{background:none;border:none;color:#007fff;cursor:pointer;font-size:.875rem;padding:0;margin-bottom:1rem;display:inline-flex;align-items:center;gap:.25rem}.message-detail__back:hover{text-decoration:underline}.message-detail__card{background:var(--bg-surface-alt);border-radius:8px;padding:1.5rem}.message-detail__subject{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0 0 .75rem}.message-detail__meta{display:flex;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.message-detail__party,.message-detail__date{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--text-secondary)}.message-detail__body{font-size:.9375rem;color:var(--text-primary);line-height:1.7;white-space:pre-wrap}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes expandLine{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes float{0%,to{transform:translate(0) rotate(0)}33%{transform:translate(30px,-30px) rotate(120deg)}66%{transform:translate(-20px,20px) rotate(240deg)}}.animate-fade-up{animation:fadeUp 1s ease-out forwards;opacity:0}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.delay-600{animation-delay:.6s}.delay-700{animation-delay:.7s}.card-hover{transition:all .4s cubic-bezier(.4,0,.2,1)}.card-hover:hover{transform:translateY(-8px);box-shadow:0 20px 60px #007fff26}html[data-theme=dark] .stat-card,html[data-theme=dark] .chart-card,html[data-theme=dark] .mini-table-wrap,html[data-theme=dark] .dashboard-card,html[data-theme=dark] .summary-card,html[data-theme=dark] .quick-card,html[data-theme=dark] .schedule-item,html[data-theme=dark] .info-card,html[data-theme=dark] .detail-card,html[data-theme=dark] .registration-card,html[data-theme=dark] .lesson-card,html[data-theme=dark] .feedback-card,html[data-theme=dark] .course-card,html[data-theme=dark] .salary-card,html[data-theme=dark] .payroll-card,html[data-theme=dark] .user-card,html[data-theme=dark] .planner-card,html[data-theme=dark] .child-card,html[data-theme=dark] .calendar-card,html[data-theme=dark] .note-card,html[data-theme=dark] .note-form,html[data-theme=dark] .add-form,html[data-theme=dark] .admin-card,html[data-theme=dark] .student-card,html[data-theme=dark] .search-result,html[data-theme=dark] .result-card,html[data-theme=dark] .reminder-card,html[data-theme=dark] .event-detail-card,html[data-theme=dark] .profile-section,html[data-theme=dark] .children-section,html[data-theme=dark] .courses-info-card,html[data-theme=dark] .search-container,html[data-theme=dark] .payment-card,html[data-theme=dark] .payroll-approve-card,html[data-theme=dark] .quick-link-card,html[data-theme=dark] .at-risk-card,html[data-theme=dark] .snapshot-card,html[data-theme=dark] .cash-card,html[data-theme=dark] .message-detail__card{background:var(--card-bg)!important;border-color:var(--border-color)!important;color:var(--text-primary);box-shadow:var(--shadow)!important}html[data-theme=dark] .search-bar,html[data-theme=dark] .search-box,html[data-theme=dark] .search-bar-large,html[data-theme=dark] .view-as-search{background:var(--card-bg)!important;border-color:var(--border-color)!important;box-shadow:var(--shadow)!important}html[data-theme=dark] .search-bar input,html[data-theme=dark] .search-box input,html[data-theme=dark] .search-bar-large input,html[data-theme=dark] .view-as-search input{background:transparent!important;color:var(--text-primary)!important}html[data-theme=dark] .search-bar input::placeholder,html[data-theme=dark] .search-box input::placeholder,html[data-theme=dark] .search-bar-large input::placeholder,html[data-theme=dark] .view-as-search input::placeholder{color:var(--text-muted)!important}html[data-theme=dark] .search-bar svg,html[data-theme=dark] .search-box svg,html[data-theme=dark] .search-bar-large svg,html[data-theme=dark] .view-as-search svg{color:var(--text-muted)!important}html[data-theme=dark] .transactions-table-wrapper,html[data-theme=dark] .registrations-table-wrapper,html[data-theme=dark] .users-table-wrapper,html[data-theme=dark] .table-wrapper,html[data-theme=dark] [class*=-table-wrapper]{background:var(--card-bg)!important;border-color:var(--border-color)!important;box-shadow:var(--shadow)!important}html[data-theme=dark] table thead,html[data-theme=dark] table thead tr,html[data-theme=dark] .mini-table thead,html[data-theme=dark] .mini-table thead tr,html[data-theme=dark] .transactions-table thead,html[data-theme=dark] .transactions-table thead tr,html[data-theme=dark] .registrations-table thead,html[data-theme=dark] .registrations-table thead tr,html[data-theme=dark] .users-table thead,html[data-theme=dark] .users-table thead tr{background:var(--bg-surface-alt)!important}html[data-theme=dark] table th,html[data-theme=dark] .mini-table th,html[data-theme=dark] .transactions-table th,html[data-theme=dark] .registrations-table th,html[data-theme=dark] .users-table th{background:var(--bg-surface-alt)!important;color:var(--text-muted)!important;border-color:var(--border-color)!important}html[data-theme=dark] table td,html[data-theme=dark] .mini-table td,html[data-theme=dark] .transactions-table td,html[data-theme=dark] .registrations-table td,html[data-theme=dark] .users-table td{color:var(--text-secondary)!important;border-color:var(--border-color)!important}html[data-theme=dark] table tbody tr:hover,html[data-theme=dark] .mini-table tbody tr:hover,html[data-theme=dark] .transactions-table tbody tr:hover,html[data-theme=dark] .registrations-table tbody tr:hover,html[data-theme=dark] .users-table tbody tr:hover{background:var(--bg-surface-hover)!important}html[data-theme=dark] table [class*=__desc],html[data-theme=dark] .mini-table [class*=__desc],html[data-theme=dark] .transactions-table [class*=__desc],html[data-theme=dark] .registrations-table [class*=__desc],html[data-theme=dark] .users-table [class*=__desc],html[data-theme=dark] .portal-layout .page-title,html[data-theme=dark] .portal-layout .section-title,html[data-theme=dark] .portal-layout [class*=__title]{color:var(--text-primary)!important}html[data-theme=dark] .portal-layout .page-subtitle,html[data-theme=dark] .portal-layout [class*=__subtitle],html[data-theme=dark] .portal-layout [class*=__desc],html[data-theme=dark] .portal-layout [class*=__description]{color:var(--text-secondary)!important}html[data-theme=dark] .portal-layout .section-label,html[data-theme=dark] .portal-layout [class*=__label],html[data-theme=dark] .portal-layout [class*=__date],html[data-theme=dark] .portal-layout [class*=__time],html[data-theme=dark] .portal-layout [class*=__room],html[data-theme=dark] .portal-layout [class*=__ref],html[data-theme=dark] .portal-layout [class*=__role],html[data-theme=dark] .portal-layout [class*=__meta],html[data-theme=dark] .portal-layout [class*=__separator],html[data-theme=dark] .portal-layout [class*=__course]:not(.feedback-card__course),html[data-theme=dark] .portal-layout [class*=__code],html[data-theme=dark] .portal-layout [class*=__sub]{color:var(--text-muted)!important}html[data-theme=dark] .portal-layout [class*=__value]{color:var(--text-primary)!important}html[data-theme=dark] .student-id,html[data-theme=dark] .registration-details,html[data-theme=dark] .contact-item,html[data-theme=dark] .form-note,html[data-theme=dark] .result-type{color:var(--text-muted)!important}html[data-theme=dark] .payment-amount,html[data-theme=dark] .amount,html[data-theme=dark] .payment-info .payment-amount{color:var(--text-primary)!important}html[data-theme=dark] .info-item label{color:var(--text-muted)!important}html[data-theme=dark] .info-item p{color:var(--text-secondary)!important}html[data-theme=dark] .info-item__icon{color:var(--text-muted)!important}html[data-theme=dark] .status-display__content h3{color:var(--text-primary)!important}html[data-theme=dark] .status-display__content p{color:var(--text-secondary)!important}html[data-theme=dark] .portal-main input:not([type=checkbox]):not([type=radio]),html[data-theme=dark] .portal-main select,html[data-theme=dark] .portal-main textarea{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--input-border)!important}html[data-theme=dark] .portal-main input:not([type=checkbox]):not([type=radio])::placeholder,html[data-theme=dark] .portal-main select::placeholder,html[data-theme=dark] .portal-main textarea::placeholder{color:var(--text-muted)!important}html[data-theme=dark] .portal-main input:not([type=checkbox]):not([type=radio]):focus,html[data-theme=dark] .portal-main select:focus,html[data-theme=dark] .portal-main textarea:focus{border-color:var(--accent-text)!important}html[data-theme=dark] .portal-main label,html[data-theme=dark] .form-field label,html[data-theme=dark] .form-grid .form-field label{color:var(--text-secondary)!important}html[data-theme=dark] .form-field input,html[data-theme=dark] .form-field select,html[data-theme=dark] .form-field textarea,html[data-theme=dark] .form-grid .form-field input,html[data-theme=dark] .form-grid .form-field select,html[data-theme=dark] .form-grid .form-field textarea{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--input-border)!important}html[data-theme=dark] .ui-field__label{color:var(--text-secondary)!important}html[data-theme=dark] .ui-field__hint{color:var(--text-muted)!important}html[data-theme=dark] .ui-field__error{color:var(--error-text)!important}html[data-theme=dark] .ui-field__control{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--input-border)!important}html[data-theme=dark] .ui-field__control::placeholder{color:var(--text-muted)!important}html[data-theme=dark] .ui-field__control:focus{border-color:var(--accent-text)!important;background:var(--bg-surface)!important}html[data-theme=dark] .ui-field__control--error{border-color:var(--error-text)!important;background:var(--error-bg)!important}html[data-theme=dark] .filter-group select,html[data-theme=dark] .filter-chip{background:var(--input-bg)!important;border-color:var(--input-border)!important;color:var(--text-primary)!important}html[data-theme=dark] .filter-chip.active{background:var(--accent-soft)!important;color:var(--accent-text)!important;border-color:var(--accent-text)!important}html[data-theme=dark] .category-btn{background:var(--bg-surface-alt)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}html[data-theme=dark] .category-btn--active,html[data-theme=dark] .category-btn.active{background:var(--accent-soft)!important;color:var(--accent-text)!important;border-color:var(--accent-text)!important}html[data-theme=dark] .role-btn{background:var(--bg-surface-alt)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}html[data-theme=dark] .role-btn--active{color:#fff!important}html[data-theme=dark] .ui-modal-backdrop,html[data-theme=dark] .modal-overlay,html[data-theme=dark] [class*=-modal-overlay],html[data-theme=dark] .admin-details-modal{background:var(--overlay)!important}html[data-theme=dark] .ui-modal,html[data-theme=dark] .modal-panel,html[data-theme=dark] .modal-content,html[data-theme=dark] .expense-modal,html[data-theme=dark] .event-detail-card,html[data-theme=dark] [class*=-modal]:not([class*=-modal-overlay]):not([class*=-modal-backdrop]){background:var(--card-bg)!important;color:var(--text-primary)!important}html[data-theme=dark] .ui-modal [class*=__header],html[data-theme=dark] .ui-modal [class*=__footer],html[data-theme=dark] .modal-panel [class*=__header],html[data-theme=dark] .modal-panel [class*=__footer],html[data-theme=dark] .modal-content [class*=__header],html[data-theme=dark] .modal-content [class*=__footer],html[data-theme=dark] .expense-modal [class*=__header],html[data-theme=dark] .expense-modal [class*=__footer],html[data-theme=dark] .event-detail-card [class*=__header],html[data-theme=dark] .event-detail-card [class*=__footer],html[data-theme=dark] [class*=-modal]:not([class*=-modal-overlay]):not([class*=-modal-backdrop]) [class*=__header],html[data-theme=dark] [class*=-modal]:not([class*=-modal-overlay]):not([class*=-modal-backdrop]) [class*=__footer]{border-color:var(--border-color)!important}html[data-theme=dark] .ui-modal [class*=__footer],html[data-theme=dark] .modal-panel [class*=__footer],html[data-theme=dark] .modal-content [class*=__footer],html[data-theme=dark] .expense-modal [class*=__footer],html[data-theme=dark] .event-detail-card [class*=__footer],html[data-theme=dark] [class*=-modal]:not([class*=-modal-overlay]):not([class*=-modal-backdrop]) [class*=__footer]{background:var(--bg-surface-alt)!important}html[data-theme=dark] .ui-modal h2,html[data-theme=dark] .ui-modal h3,html[data-theme=dark] .modal-panel h2,html[data-theme=dark] .modal-panel h3,html[data-theme=dark] .modal-content h2,html[data-theme=dark] .modal-content h3,html[data-theme=dark] .expense-modal h2,html[data-theme=dark] .expense-modal h3,html[data-theme=dark] .event-detail-card h2,html[data-theme=dark] .event-detail-card h3,html[data-theme=dark] [class*=-modal]:not([class*=-modal-overlay]):not([class*=-modal-backdrop]) h2,html[data-theme=dark] [class*=-modal]:not([class*=-modal-overlay]):not([class*=-modal-backdrop]) h3{color:var(--text-primary)!important}html[data-theme=dark] .ui-modal label,html[data-theme=dark] .modal-panel label,html[data-theme=dark] .modal-content label,html[data-theme=dark] .expense-modal label,html[data-theme=dark] .event-detail-card label,html[data-theme=dark] [class*=-modal]:not([class*=-modal-overlay]):not([class*=-modal-backdrop]) label{color:var(--text-secondary)!important}html[data-theme=dark] .ui-modal p,html[data-theme=dark] .modal-panel p,html[data-theme=dark] .modal-content p,html[data-theme=dark] .expense-modal p,html[data-theme=dark] .event-detail-card p,html[data-theme=dark] [class*=-modal]:not([class*=-modal-overlay]):not([class*=-modal-backdrop]) p{color:var(--text-secondary)!important}html[data-theme=dark] .ui-modal__close{color:var(--text-muted)!important}html[data-theme=dark] .ui-modal__close:hover{color:var(--text-primary)!important;background:var(--bg-surface-hover)!important}html[data-theme=dark] .timetable-container,html[data-theme=dark] .timetable{background:var(--card-bg)!important;box-shadow:var(--shadow)!important}html[data-theme=dark] .timetable__header,html[data-theme=dark] .timetable__cell--corner,html[data-theme=dark] .timetable__cell--day{background:var(--bg-surface-alt)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}html[data-theme=dark] .timetable__cell--time{background:var(--bg-surface-alt)!important;color:var(--text-muted)!important;border-color:var(--border-color)!important}html[data-theme=dark] .timetable__cell{border-color:var(--border-color)!important}html[data-theme=dark] .timetable__cell--class,html[data-theme=dark] .timetable__cell--filled{background:var(--bg-surface)!important}html[data-theme=dark] .timetable__row{border-color:var(--border-color)!important}html[data-theme=dark] .class-info{background:var(--bg-surface-alt)!important}html[data-theme=dark] .class-info__course{color:var(--text-primary)!important}html[data-theme=dark] .class-info__teacher{color:var(--text-secondary)!important}html[data-theme=dark] .class-info__room,html[data-theme=dark] .class-info__empty{color:var(--text-muted)!important}html[data-theme=dark] .timetable-grid{background:var(--border-color)!important;border-color:var(--border-color)!important}html[data-theme=dark] .timetable-cell{background:var(--bg-surface)!important;border-color:var(--border-color)!important}html[data-theme=dark] .timetable-cell.time-cell{background:var(--bg-surface-alt)!important;color:var(--text-muted)!important}html[data-theme=dark] .timetable-cell.day-header{background:var(--bg-surface-alt)!important;color:var(--text-primary)!important}html[data-theme=dark] .schedule-block:hover{background:var(--accent-soft)!important}html[data-theme=dark] .cal-nav-btn,html[data-theme=dark] .cal-today-btn,html[data-theme=dark] .cal-view-btn{background:var(--bg-surface-alt)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}html[data-theme=dark] .cal-nav-btn:hover,html[data-theme=dark] .cal-today-btn:hover,html[data-theme=dark] .cal-view-btn:hover{background:var(--bg-surface-hover)!important}html[data-theme=dark] .cal-nav-btn.active,html[data-theme=dark] .cal-today-btn.active,html[data-theme=dark] .cal-view-btn.active{background:var(--accent-soft)!important;color:var(--accent-text)!important}html[data-theme=dark] .cal-body{background:var(--card-bg)!important}html[data-theme=dark] .month-cell,html[data-theme=dark] .week-day-col,html[data-theme=dark] [class*=calendar-day]{background:var(--bg-surface)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}html[data-theme=dark] .month-cell--today .month-cell__date{background:var(--accent-text)!important;color:#fff!important}html[data-theme=dark] .calendar-event,html[data-theme=dark] .week-event{color:#fff!important}html[data-theme=dark] .messaging-tabs{background:var(--card-bg)!important;box-shadow:var(--shadow)!important}html[data-theme=dark] .messaging-tabs__tab{color:var(--text-muted)!important;border-bottom-color:transparent!important}html[data-theme=dark] .messaging-tabs__tab:hover{color:var(--text-secondary)!important;background:var(--bg-surface-hover)!important}html[data-theme=dark] .messaging-tabs__tab--active{color:var(--accent-text)!important;border-bottom-color:var(--accent-text)!important;background:var(--card-bg)!important}html[data-theme=dark] .messaging-content{background:var(--card-bg)!important;box-shadow:var(--shadow)!important}html[data-theme=dark] .message-item{border-bottom-color:var(--border-light)!important}html[data-theme=dark] .message-item:hover{background:var(--bg-surface-hover)!important}html[data-theme=dark] .message-item--unread{background:var(--accent-soft)!important}html[data-theme=dark] .message-item__icon{background:var(--accent-soft)!important;color:var(--accent-text)!important}html[data-theme=dark] .message-item__party{color:var(--text-primary)!important}html[data-theme=dark] .message-item__date{color:var(--text-muted)!important}html[data-theme=dark] .message-item__subject{color:var(--text-primary)!important}html[data-theme=dark] .message-item__preview{color:var(--text-muted)!important}html[data-theme=dark] .message-detail__back{color:var(--accent-text)!important}html[data-theme=dark] .message-detail__card{background:var(--bg-surface-alt)!important}html[data-theme=dark] .message-detail__subject{color:var(--text-primary)!important}html[data-theme=dark] .message-detail__meta{border-bottom-color:var(--border-color)!important}html[data-theme=dark] .message-detail__party,html[data-theme=dark] .message-detail__date{color:var(--text-muted)!important}html[data-theme=dark] .message-detail__body{color:var(--text-secondary)!important}html[data-theme=dark] .registration-error,html[data-theme=dark] .messaging-error{background:var(--error-bg)!important;color:var(--error-text)!important}html[data-theme=dark] .registration-error button,html[data-theme=dark] .messaging-error button{color:var(--error-text)!important}html[data-theme=dark] .payment-method-form select,html[data-theme=dark] .payment-method-form input{background:var(--input-bg)!important;border-color:var(--input-border)!important;color:var(--text-primary)!important}html[data-theme=dark] .payment-status--full,html[data-theme=dark] .status--paid,html[data-theme=dark] .status-badge--active,html[data-theme=dark] .badge--green,html[data-theme=dark] .role-badge--green,html[data-theme=dark] .payroll-badge--paid{background:var(--success-bg)!important;color:var(--success-text)!important}html[data-theme=dark] .payment-status--partial,html[data-theme=dark] .status--pending,html[data-theme=dark] .status-badge--pending,html[data-theme=dark] .badge--yellow,html[data-theme=dark] .badge--warning,html[data-theme=dark] .role-badge--orange,html[data-theme=dark] .payroll-badge--warning{background:var(--warning-bg)!important;color:var(--warning-text)!important}html[data-theme=dark] .badge--blue,html[data-theme=dark] .role-badge--teal,html[data-theme=dark] .payroll-badge--approved{background:var(--info-bg)!important;color:var(--info-text)!important}html[data-theme=dark] .status-badge--inactive,html[data-theme=dark] .badge--red{background:var(--error-bg)!important;color:var(--error-text)!important}html[data-theme=dark] .badge--gray,html[data-theme=dark] .role-badge--purple{background:var(--bg-surface-alt)!important;color:var(--text-muted)!important}html[data-theme=dark] .type-badge--fee_payment{background:var(--success-bg)!important;color:var(--success-text)!important}html[data-theme=dark] .type-badge--salary{background:var(--info-bg)!important;color:var(--info-text)!important}html[data-theme=dark] .type-badge--expense{background:var(--error-bg)!important;color:var(--error-text)!important}html[data-theme=dark] .ui-badge--success{background:var(--success-bg)!important;color:var(--success-text)!important}html[data-theme=dark] .ui-badge--warning{background:var(--warning-bg)!important;color:var(--warning-text)!important}html[data-theme=dark] .ui-badge--error{background:var(--error-bg)!important;color:var(--error-text)!important}html[data-theme=dark] .ui-badge--info{background:var(--info-bg)!important;color:var(--info-text)!important}html[data-theme=dark] .ui-badge--neutral{background:var(--bg-surface-alt)!important;color:var(--text-muted)!important}html[data-theme=dark] .btn-primary{color:#fff!important}html[data-theme=dark] .btn--secondary,html[data-theme=dark] .btn-secondary{background:var(--bg-surface-alt)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}html[data-theme=dark] .btn--secondary:hover:not(:disabled),html[data-theme=dark] .btn-secondary:hover:not(:disabled){background:var(--bg-surface-hover)!important}html[data-theme=dark] .btn-success{background:#16a34a!important;color:#fff!important}html[data-theme=dark] .btn-success:hover:not(:disabled){background:#15803d!important}html[data-theme=dark] .icon-btn,html[data-theme=dark] .btn-icon{background:var(--bg-surface-alt)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}html[data-theme=dark] .icon-btn:hover,html[data-theme=dark] .btn-icon:hover{background:var(--bg-surface-hover)!important;color:var(--text-primary)!important}html[data-theme=dark] .icon-btn--danger:hover,html[data-theme=dark] .icon-btn.danger:hover,html[data-theme=dark] .btn-icon--danger:hover,html[data-theme=dark] .btn-icon.danger:hover{background:var(--error-bg)!important;color:var(--error-text)!important}html[data-theme=dark] [class*=__pagination] button,html[data-theme=dark] .pagination-controls button{background:var(--bg-surface-alt)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}html[data-theme=dark] [class*=__pagination] button:hover:not(:disabled),html[data-theme=dark] .pagination-controls button:hover:not(:disabled){background:var(--bg-surface-hover)!important}html[data-theme=dark] [class*=__pagination] button.active,html[data-theme=dark] .pagination-controls button.active{background:var(--accent-soft)!important;color:var(--accent-text)!important}html[data-theme=dark] .stat-card{background:var(--card-bg)!important;border-color:var(--border-color)!important;box-shadow:var(--shadow)!important}html[data-theme=dark] .stat-card__label{color:var(--text-muted)!important}html[data-theme=dark] .stat-card__value{color:var(--text-primary)!important}html[data-theme=dark] .stat-card__sub{color:var(--text-muted)!important}html[data-theme=dark] .chart-card{background:var(--card-bg)!important;border-color:var(--border-color)!important;box-shadow:var(--shadow)!important}html[data-theme=dark] .chart-card__title{color:var(--text-muted)!important}html[data-theme=dark] .mini-table-wrap{background:var(--card-bg)!important;border-color:var(--border-color)!important;box-shadow:var(--shadow)!important}html[data-theme=dark] .mini-table thead{background:var(--bg-surface-alt)!important}html[data-theme=dark] .mini-table th{background:var(--bg-surface-alt)!important;color:var(--text-muted)!important;border-color:var(--border-color)!important}html[data-theme=dark] .mini-table td{color:var(--text-secondary)!important;border-color:var(--border-light)!important}html[data-theme=dark] .mini-table tbody tr:hover{background:var(--bg-surface-hover)!important}html[data-theme=dark] .mini-table__empty,html[data-theme=dark] .ui-loading__text{color:var(--text-muted)!important}html[data-theme=dark] .ui-loading__spinner{color:var(--accent-text)!important}html[data-theme=dark] .ui-empty__icon{color:var(--text-muted)!important}html[data-theme=dark] .ui-empty__title{color:var(--text-secondary)!important}html[data-theme=dark] .ui-empty__description,html[data-theme=dark] [class*=__loading],html[data-theme=dark] [class*=__empty],html[data-theme=dark] [class*=__state],html[data-theme=dark] .feedback-empty{color:var(--text-muted)!important}html[data-theme=dark] .feedback-empty svg{color:var(--text-muted)!important}html[data-theme=dark] .salary-card--primary .salary-card__icon{background:#fff3!important}html[data-theme=dark] .payment-card{background:var(--card-bg)!important;border-color:var(--border-color)!important}html[data-theme=dark] .payment-card--pending{background:var(--warning-bg)!important;border-color:var(--warning-text)!important}html[data-theme=dark] .payment-row--paid{background:var(--success-bg)!important}html[data-theme=dark] .payment-row--approved{background:var(--info-bg)!important}html[data-theme=dark] .payroll-page__alert{background:var(--warning-bg)!important;border-color:var(--warning-text)!important;color:var(--warning-text)!important}html[data-theme=dark] .collection-bar{background:var(--bg-surface-alt)!important}html[data-theme=dark] .method-pill__amount{color:var(--success-text)!important}html[data-theme=dark] .risk-pill{background:var(--error-bg)!important;color:var(--error-text)!important}html[data-theme=dark] .amount--in{color:var(--success-text)!important}html[data-theme=dark] .amount--out{color:var(--error-text)!important}html[data-theme=dark] .summary-card--in .summary-card__icon{color:var(--success-text)!important}html[data-theme=dark] .summary-card--out .summary-card__icon{color:var(--error-text)!important}html[data-theme=dark] .note-card__reminders,html[data-theme=dark] .note-card__attachments{background:var(--bg-surface-alt)!important;border-color:var(--border-color)!important}html[data-theme=dark] .note-card__header{border-color:var(--border-color)!important}html[data-theme=dark] .schedule-editor__row select,html[data-theme=dark] .schedule-editor__row input{background:var(--input-bg)!important;border-color:var(--input-border)!important;color:var(--text-primary)!important}html[data-theme=dark] .admin-card__header,html[data-theme=dark] .student-card__header,html[data-theme=dark] .course-card__header,html[data-theme=dark] .details-section h3{border-color:var(--border-color)!important}html[data-theme=dark] .portal-main{scrollbar-color:var(--border-color) transparent}html[data-theme=dark] .portal-main::-webkit-scrollbar{width:8px}html[data-theme=dark] .portal-main::-webkit-scrollbar-track{background:transparent}html[data-theme=dark] .portal-main::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}html[data-theme=dark] .recharts-cartesian-grid-horizontal line,html[data-theme=dark] .recharts-cartesian-grid-vertical line{stroke:var(--border-color)!important}html[data-theme=dark] .recharts-text{fill:var(--text-muted)!important}html[data-theme=dark] .recharts-tooltip-wrapper .recharts-default-tooltip{background:var(--card-bg)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}html[data-theme=dark] .feedback-card__icon{color:var(--text-muted)!important;border-color:var(--border-color)!important}html[data-theme=dark] .feedback-card__teacher span,html[data-theme=dark] .feedback-card__message{color:var(--text-secondary)!important}html[data-theme=dark] .feedback-card__course{color:var(--text-muted)!important}html[data-theme=dark] .course-detail{color:var(--text-secondary)!important}html[data-theme=dark] .course-detail svg{color:var(--accent-text)!important}html[data-theme=dark] .course-card__icon{background:var(--accent-soft)!important;color:var(--accent-text)!important}html[data-theme=dark] .course-card__badge{background:var(--success-bg)!important;color:var(--success-text)!important}html[data-theme=dark] .view-as-preview__status--error{color:var(--error-text)!important}html[data-theme=dark] .portal-nav__label{color:#ffffffd9!important}html[data-theme=dark] .portal-nav__link--active .portal-nav__label,html[data-theme=dark] .portal-sidebar__user-name{color:#fff!important}html[data-theme=dark] .portal-sidebar__user-role{color:#94a3b8!important}html[data-theme=dark] .portal-sidebar__action{color:#ffffffd9!important}html[data-theme=dark] .portal-sidebar__action:hover{color:#fff!important}html[data-theme=dark] .portal-sidebar__action--logout:hover{color:#fca5a5!important}:root,html[data-theme=light]{--bg-primary: #F8FAFC;--bg-surface: #ffffff;--bg-surface-alt: #F1F5F9;--bg-surface-hover: #E2E8F0;--text-primary: #0F172A;--text-secondary: #475569;--text-muted: #94A3B8;--border-color: #E2E8F0;--border-light: #F1F5F9;--shadow: 0 2px 4px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08);--input-bg: #ffffff;--input-border: #E2E8F0;--card-bg: #ffffff;--overlay: rgba(0, 0, 0, .5);--accent-soft: #EFF6FF;--accent-text: #007FFF;--success-bg: #dcfce7;--success-text: #166534;--warning-bg: #fef3c7;--warning-text: #92400e;--info-bg: #dbeafe;--info-text: #1e40af;--error-bg: #fee2e2;--error-text: #dc2626;--toggle-off: #cbd5e1;color-scheme:light}html[data-theme=dark]{--bg-primary: #0f1117;--bg-surface: #1a1b23;--bg-surface-alt: #22232d;--bg-surface-hover: #2a2b37;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--border-color: #2a2b37;--border-light: #22232d;--shadow: 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4);--input-bg: #22232d;--input-border: #3a3b47;--card-bg: #1a1b23;--overlay: rgba(0, 0, 0, .7);--accent-soft: rgba(0, 127, 255, .12);--accent-text: #60a5fa;--success-bg: rgba(22, 101, 52, .2);--success-text: #86efac;--warning-bg: rgba(217, 119, 6, .15);--warning-text: #fcd34d;--info-bg: rgba(59, 130, 246, .15);--info-text: #93c5fd;--error-bg: rgba(220, 38, 38, .15);--error-text: #fca5a5;--toggle-off: #475569;color-scheme:dark}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Work Sans,sans-serif;overflow-x:hidden;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;transition:background-color .2s ease,color .2s ease}.serif{font-family:Cormorant Garamond,serif}.geometric-bg{position:absolute;width:600px;height:600px;border-radius:40% 60% 70% 30%/40% 50% 60%;opacity:.08;filter:blur(60px)}.blue-blob{background:#007fff;top:-200px;right:-200px;animation:float 20s ease-in-out infinite}.yellow-blob{background:#f7d618;bottom:-200px;left:-200px;animation:float 25s ease-in-out infinite reverse}.accent-line{position:relative;display:inline-block}.accent-line:after{content:"";position:absolute;bottom:-8px;left:0;width:100%;height:4px;background:linear-gradient(90deg,#007fff,#f7d618,#ce1126);transform:scaleX(0);transform-origin:left;animation:expandLine .8s ease-out .5s forwards}.container{max-width:1280px;margin:0 auto;padding:0 1.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:1rem 2rem;font-size:1rem;font-weight:500;border-radius:.75rem;cursor:pointer;transition:all .3s ease;border:none;text-decoration:none;gap:.5rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:#007fff;color:#fff}.btn-primary:hover:not(:disabled){background-color:#1d4ed8}.btn-secondary{border:2px solid var(--border-color);background-color:transparent;color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-surface-hover)}.btn-white{background-color:#fff;color:#007fff}.btn-white:hover:not(:disabled){background-color:#eff6ff}.btn-outline-white{border:2px solid #FFFFFF;background-color:transparent;color:#fff}.btn-outline-white:hover:not(:disabled){background-color:#ffffff1a}
