@media(max-width:991.98px){.bottom-nav-bar{position:fixed;bottom:0;left:0;right:0;z-index:1000;background:#ffffffd9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(226,232,240,.8);box-shadow:0 -8px 30px #0f172a14!important;padding:8px 16px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom,12px));transition:transform .3s cubic-bezier(.16,1,.3,1),background-color .3s ease}[data-theme=dark] .bottom-nav-bar{background:#0f172ad9;border-top:1px solid rgba(51,65,85,.5);box-shadow:0 -8px 30px #00000040!important}.bottom-nav-bar__container{display:flex;justify-content:space-around;align-items:center;max-width:600px;margin:0 auto}.bottom-nav-bar__slot{display:contents}.bottom-nav-bar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#64748b;text-decoration:none;font-size:.72rem;font-weight:500;padding:6px 12px;border-radius:16px;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;min-width:64px}[data-theme=dark] .bottom-nav-bar__item{color:#94a3b8}.bottom-nav-bar__item--special{background:linear-gradient(135deg,#10b981,#059669)!important;color:#fff!important;border-radius:50%!important;width:48px!important;height:48px!important;min-width:48px!important;max-width:48px!important;margin:-18px 8px 0!important;box-shadow:0 8px 20px #10b98159!important;border:3px solid #ffffff!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important}[data-theme=dark] .bottom-nav-bar__item--special{border:3px solid #0f172a!important}.bottom-nav-bar__item--special .bottom-nav-bar__icon-wrap{margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.bottom-nav-bar__item--special .bottom-nav-bar__icon{font-size:1.5rem!important;margin-bottom:0!important;color:#fff!important;transform:none!important}.bottom-nav-bar__item--special .bottom-nav-bar__label{display:none!important}.bottom-nav-bar__item--special.bottom-nav-bar__item--attendance .bottom-nav-bar__label{display:block!important;margin-top:0;font-size:.64rem;line-height:1;text-align:center}.bottom-nav-bar__item--special.bottom-nav-bar__item--attendance{width:54px!important;height:54px!important;min-width:54px!important;max-width:54px!important;padding-top:4px!important}.bottom-nav-bar__item--special.is-active{background:linear-gradient(135deg,#059669,#047857)!important;box-shadow:0 8px 24px #05966973!important}.bottom-nav-bar__icon{font-size:1.35rem;margin-bottom:4px;transition:transform .25s cubic-bezier(.175,.885,.32,1.275),color .25s ease}.bottom-nav-bar__label{opacity:.85;transition:opacity .25s ease,font-weight .25s ease}.bottom-nav-bar__item.is-active:not(.bottom-nav-bar__item--special){color:#f26522;font-weight:600;background:#f2652214}.bottom-nav-bar__item.is-active:not(.bottom-nav-bar__item--special) .bottom-nav-bar__icon{transform:translateY(-2px) scale(1.1);color:#f26522}@media(hover:hover){.bottom-nav-bar__item:hover:not(.is-active):not(.bottom-nav-bar__item--special){color:#334155;background:#64748b0f}[data-theme=dark] .bottom-nav-bar__item:hover:not(.is-active):not(.bottom-nav-bar__item--special){color:#f1f5f9;background:#94a3b814}}.page-wrapper{padding-bottom:80px!important}.bottom-nav-bar__profile-wrapper{position:relative}.bottom-nav-bar__profile-menu{position:absolute;bottom:calc(100% + 12px);right:50%;transform:translate(50%);background:#fffffff2;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(226,232,240,.8);border-radius:16px;box-shadow:0 10px 30px #0f172a26!important;padding:8px;min-width:140px;z-index:1010;display:flex;flex-direction:column;gap:4px;animation:slideUpFade .25s cubic-bezier(.16,1,.3,1)}[data-theme=dark] .bottom-nav-bar__profile-menu{background:#0f172af2;border-color:#334155cc;box-shadow:0 10px 30px #0000004d!important}.bottom-nav-bar__profile-item{display:flex;align-items:center;gap:8px;padding:10px 14px;color:#334155;text-decoration:none;font-size:.85rem;font-weight:500;border-radius:10px;transition:all .2s ease;background:transparent;border:none;width:100%;text-align:left;white-space:nowrap}[data-theme=dark] .bottom-nav-bar__profile-item{color:#cbd5e1}.bottom-nav-bar__profile-item:hover{background:#f2652214;color:#f26522}.bottom-nav-bar__profile-item--danger{color:#ef4444}.bottom-nav-bar__profile-item--danger:hover{background:#ef444414;color:#ef4444}@keyframes slideUpFade{0%{opacity:0;transform:translate(50%) translateY(8px)}to{opacity:1;transform:translate(50%) translateY(0)}}}.wf-shell .modal-dialog{width:calc(100% - 2rem);margin:1rem auto}.wf-shell .modal-dialog.modal-md{max-width:560px}.wf-shell .modal-dialog.modal-lg{max-width:920px}.wf-shell .modal-dialog.modal-xl{max-width:1080px}.wf-shell .modal-content{border:0;border-radius:.875rem;box-shadow:0 20px 60px #0000002e;overflow:hidden;max-height:90vh;display:flex;flex-direction:column;background:var(--bs-card-bg, #ffffff)}.wf-shell .modal-header{padding:1rem 1.25rem;border-bottom:1px solid #f0f2f5;flex-shrink:0}.wf-shell .modal-title{font-size:1rem;font-weight:700;color:#34393f}.wf-shell .modal-body{padding:1.15rem 1.25rem;overflow-y:auto;flex:1}.wf-shell .modal-footer{padding:.85rem 1.25rem 1rem;border-top:1px solid #f0f2f5;gap:.5rem;flex-shrink:0}.wf-shell .custom-btn-close,.wf-shell .btn-close{opacity:.72}.wf-shell .form-label{font-size:.875rem;font-weight:500;color:#34393f;margin-bottom:.25rem}.wf-shell .form-control,.wf-shell .form-select,.wf-shell textarea.form-control{min-height:2.5rem;padding:.55rem .85rem;font-size:.92rem;border-radius:2rem;border-color:#d0d5dd}.wf-shell .form-control:focus,.wf-shell .form-select:focus,.wf-shell textarea.form-control:focus{border-color:#45597a;box-shadow:0 0 0 3px #45597a1f}.wf-shell .row{--bs-gutter-x: 1rem;--bs-gutter-y: .75rem}.wf-shell .mb-3{margin-bottom:.9rem!important}.wf-shell .mb-2{margin-bottom:.6rem!important}.wf-shell .wf-form-panel{border:0;border-radius:.875rem;box-shadow:0 16px 40px #0f172a14;background:var(--bs-card-bg, #ffffff)}.wf-shell .wf-form-panel .card-body{padding:1.15rem 1.25rem}.wf-shell .wf-form-panel .form-control,.wf-shell .wf-form-panel .form-select,.wf-shell .wf-form-panel textarea.form-control{border-radius:.8rem}.wf-shell .wf-panel-title{font-size:.76rem;font-weight:700;color:#45597a;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.8rem;padding-bottom:.4rem;border-bottom:1px solid #e8edf4}.wf-shell .modal-header .btn-close,.wf-shell .modal-header .custom-btn-close{width:32px;height:32px;border-radius:50%;background:#f3f5f8;display:inline-flex;align-items:center;justify-content:center;opacity:1}.wf-shell .modal-header .btn-close:hover,.wf-shell .modal-header .custom-btn-close:hover{background:#e8edf4}.wf-shell .modal-footer .btn{min-width:96px;border-radius:.75rem}@media(max-width:768px){.wf-shell .modal-dialog{width:calc(100% - 1rem);max-width:none}.wf-shell .modal-header,.wf-shell .modal-body,.wf-shell .modal-footer,.wf-shell .wf-form-panel .card-body{padding-left:.85rem;padding-right:.85rem}}.signin-shell{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;background:#f4f5f9}.signin-shell *{box-sizing:border-box;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.signin-grid{min-height:100vh;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.signin-brand{position:relative;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:3rem 3.5rem;background:linear-gradient(155deg,#1a1033,#3a1a5c 42%,#f86f03 145%);color:#fff}.signin-brand-blob{position:absolute;border-radius:50%;filter:blur(10px);opacity:.55;pointer-events:none}.signin-brand-blob-a{width:420px;height:420px;top:-140px;right:-140px;background:radial-gradient(circle at 30% 30%,#ffb648,transparent 70%)}.signin-brand-blob-b{width:360px;height:360px;bottom:-160px;left:-120px;background:radial-gradient(circle at 60% 60%,#9b5cf6,transparent 70%)}.signin-brand-blob-c{width:220px;height:220px;bottom:18%;right:8%;background:radial-gradient(circle at 50% 50%,#ff8a3d,transparent 70%);opacity:.35}.signin-brand-top,.signin-brand-content,.signin-brand-footer{position:relative;z-index:2}.signin-brand-logo-chip{display:inline-flex;align-items:center;gap:16px;padding:16px 26px 16px 18px;background:linear-gradient(155deg,#14192b,#0a0d16);border-radius:16px;border:1px solid rgba(255,255,255,.08);box-shadow:0 16px 36px #0006,0 4px 14px #ff6f032e,inset 0 1px #ffffff0f;margin-bottom:2.5rem}.signin-brand-logo-img{height:84px;width:auto;display:block;border-radius:10px;box-shadow:0 8px 20px #0000004d,0 0 0 1px #ffffff14;margin-bottom:2.5rem}.signin-brand-logo-mark{flex-shrink:0;display:block;filter:drop-shadow(0 3px 6px rgba(0,0,0,.35))}.signin-brand-logo-text{display:flex;align-items:center;gap:8px;line-height:1.05}.signin-brand-logo-svl{font-size:2.05rem;font-weight:800;font-style:italic;color:#ff3b3b;letter-spacing:.01em;text-shadow:0 2px 10px rgba(255,59,59,.45)}.signin-brand-logo-sub{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#f4f5f9}.signin-brand-content h1{font-size:2.35rem;font-weight:800;line-height:1.15;margin-bottom:.9rem;max-width:460px}.signin-brand-content p{font-size:1rem;color:#ffffffd1;max-width:420px;margin-bottom:2rem}.signin-feature-list{display:flex;flex-direction:column;gap:14px}.signin-feature{display:flex;align-items:center;gap:12px;font-size:.92rem;color:#ffffffeb}.signin-feature-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:#ffffff24;font-size:1.05rem}.signin-brand-footer{font-size:.8rem;color:#fff9}.signin-panel{display:flex;align-items:center;justify-content:center;padding:2.5rem 1.5rem}.signin-card{width:100%;max-width:420px}.signin-card-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#f86f03;margin-bottom:.6rem}.signin-title{font-size:1.8rem;font-weight:800;color:#16121f;margin-bottom:.35rem}.signin-subtitle{color:#6b7280;font-size:.92rem;margin-bottom:1.75rem}.signin-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;background:#f1f2f6;border-radius:12px;margin-bottom:1.6rem}.signin-tab{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;border:none;border-radius:9px;background:transparent;color:#6b7280;font-size:.88rem;font-weight:700;transition:all .2s ease}.signin-tab.active{background:#fff;color:#16121f;box-shadow:0 2px 8px #0f172a1f}.signin-tab:not(.active):hover{color:#f86f03}.signin-field{margin-bottom:1.05rem}.signin-field label{display:block;font-size:.82rem;font-weight:600;color:#374151;margin-bottom:6px}.signin-input-wrap{position:relative;display:flex;align-items:center;background:#f8fafc;border:1.5px solid #e5e7eb;border-radius:12px;padding:0 14px;height:52px;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.signin-input-wrap:focus-within{border-color:#f86f03;background:#fff;box-shadow:0 0 0 4px #f86f031f}.signin-input-wrap i{color:#9ca3af;font-size:1.05rem;flex-shrink:0;transition:color .18s ease}.signin-input-wrap:focus-within i{color:#f86f03}.signin-input-wrap input{flex:1;background:none;outline:none;border:none;font-size:.95rem;font-weight:500;color:#16121f;padding:0 10px;min-width:0}.signin-input-wrap input::placeholder{color:#9ca3af;font-weight:400}.signin-toggle{border:none;background:transparent;color:#9ca3af;padding:4px;display:inline-flex;flex-shrink:0;transition:color .18s ease}.signin-toggle:hover{color:#6b7280}.signin-row{display:flex;align-items:center;justify-content:space-between;margin:-.2rem 0 1.3rem}.signin-remember{display:flex;align-items:center;gap:8px;font-size:.86rem;color:#4b5563;cursor:pointer;-webkit-user-select:none;user-select:none}.signin-remember input{width:16px;height:16px;cursor:pointer;accent-color:#f86f03}.signin-alert{display:flex;align-items:center;gap:8px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:10px;padding:10px 14px;font-size:.87rem;margin-bottom:1.1rem}.signin-submit{width:100%;height:52px;border:none;outline:none;border-radius:12px;color:#fff;font-weight:700;font-size:.98rem;letter-spacing:.01em;background:linear-gradient(120deg,#f86f03,#ff9838);box-shadow:0 10px 24px #f86f0347;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.signin-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 28px #f86f0357}.signin-submit:active:not(:disabled){transform:translateY(0)}.signin-submit:disabled{opacity:.7;cursor:not-allowed}.signin-footnote{text-align:center;color:#9ca3af;font-size:.82rem;margin-top:1.6rem}@media(max-width:992px){.signin-grid{grid-template-columns:1fr}.signin-brand{padding:2.25rem 1.75rem;min-height:280px}.signin-brand-content h1{font-size:1.6rem}.signin-brand-content p{margin-bottom:1.25rem}.signin-feature-list{display:none}}@media(max-width:480px){.signin-brand{padding:1.75rem 1.25rem;min-height:220px}.signin-panel{padding:2rem 1.1rem}.signin-title{font-size:1.5rem}}:root{--loading-spinner-outer: #32afa9;--loading-spinner-middle: #f17362;--loading-spinner-inner: #7e0cf5}@keyframes loading-spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner,.spinner-border{--spinner-size: 1.5rem;--spinner-border-width: 3px;--spinner-gap-1: clamp(2px, calc(var(--spinner-size) * .07), 5px);--spinner-gap-2: clamp(4px, calc(var(--spinner-size) * .17), 12px);width:var(--spinner-size);height:var(--spinner-size);display:inline-block;position:relative;vertical-align:middle;box-sizing:border-box;background:transparent;border:0;border-top:var(--spinner-border-width) solid var(--loading-spinner-outer);border-radius:50%;animation:loading-spinner-rotate 2s linear infinite;filter:drop-shadow(0 0 10px rgba(50,175,169,.15));color:transparent!important}.loading-spinner:before,.spinner-border:before{content:"";position:absolute;inset:var(--spinner-gap-1);box-sizing:border-box;border-right:0;border-bottom:0;border-left:0;border-top:var(--spinner-border-width) solid var(--loading-spinner-middle);border-radius:50%;animation:loading-spinner-rotate 2s linear infinite}.loading-spinner:after,.spinner-border:after{content:"";position:absolute;inset:var(--spinner-gap-2);box-sizing:border-box;border-right:0;border-bottom:0;border-left:0;border-top:var(--spinner-border-width) solid var(--loading-spinner-inner);border-radius:50%;animation:loading-spinner-rotate 1s linear infinite}.loading-spinner--page{--spinner-size: 7rem;--spinner-border-width: 3px}.loading-spinner--sm,.spinner-border.spinner-border-sm{--spinner-size: 1rem;--spinner-border-width: 2px}.spinner-border:not(.spinner-border-sm){display:none}.loading-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:9999;background:transparent}.loading-overlay--soft{background:#ffffffb3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading-spinner-shell{display:flex;align-items:center;justify-content:center;width:100%;min-height:100%}@keyframes spin-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin-animation{animation:spin-rotate .8s linear infinite;display:inline-block}
