body{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.safe-area-top{padding-top:env(safe-area-inset-top,0)}.safe-area-right{padding-right:env(safe-area-inset-right,0)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom,0)}.safe-area-left{padding-left:env(safe-area-inset-left,0)}.app-sidebar{background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(248,250,252,.98) 100%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-right:1px solid rgba(226,232,240,.8);box-shadow:1px 0 3px #0000001a,1px 0 2px #0000000f;min-width:72px;max-width:200px;height:100vh;height:100dvh;padding-top:env(safe-area-inset-top,0);padding-left:env(safe-area-inset-left,0);position:fixed;left:0;top:0;z-index:999;transition:width .3s ease;display:flex;flex-direction:column;overflow:hidden}.app-sidebar:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(249,115,22,.01) 0%,transparent 70%);pointer-events:none}.app-sidebar .sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem .75rem;border-bottom:1px solid rgba(226,232,240,.5);flex-shrink:0;background:rgba(255,255,255,.9);position:relative;z-index:10}.app-sidebar .brand-section{flex:1;display:flex;align-items:center}.app-sidebar .logo-section{display:flex;align-items:center;gap:.5rem}.app-sidebar .logo-section-collapsed{display:flex;align-items:center;justify-content:center;width:100%}.app-sidebar .sidebar-logo{width:1.35rem;height:1.35rem;object-fit:contain;flex-shrink:0}.app-sidebar .brand-text{font-size:1.0625rem;font-weight:700;color:#111827}.app-sidebar .toggle-btn{background:rgba(249,115,22,.1);border:1px solid rgba(249,115,22,.2);color:#f97316;cursor:pointer;padding:.375rem;border-radius:.25rem;transition:all .2s ease;display:flex;align-items:center;justify-content:center;position:relative;min-width:32px;min-height:32px;animation:app-sidebar-pulse-attention 2s infinite}.app-sidebar .toggle-btn:hover{background:rgba(249,115,22,.2);color:#ea580c;transform:scale(1.05);border-color:#f9731666;box-shadow:0 2px 4px #f9731633}.app-sidebar .toggle-btn:active{transform:scale(.95)}.app-sidebar .toggle-btn i{transition:transform .3s ease}.app-sidebar .toggle-btn i.rotated{transform:rotate(180deg)}@keyframes app-sidebar-pulse-attention{0%,to{box-shadow:0 0 #f9731666}50%{box-shadow:0 0 0 8px #f9731600}}.app-sidebar .nav-container{flex:1;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;padding:.5rem 0;position:relative}.app-sidebar .nav-container::-webkit-scrollbar{width:4px}.app-sidebar .nav-container::-webkit-scrollbar-track{background:transparent}.app-sidebar .nav-container::-webkit-scrollbar-thumb{background:rgba(249,115,22,.3);border-radius:2px}.app-sidebar .nav-container::-webkit-scrollbar-thumb:hover{background:rgba(249,115,22,.5)}.app-sidebar .sidebar-nav{display:flex;flex-direction:column;gap:.2rem;padding:0 .75rem}.app-sidebar .nav-item{display:flex;align-items:center;padding:.5rem .75rem;color:#374151;text-decoration:none;font-weight:500;font-size:.875rem;border-radius:.375rem;transition:all .2s ease;position:relative;border:1px solid transparent;white-space:nowrap;animation:app-sidebar-slideIn .2s ease-out}.app-sidebar .nav-item:hover{background:linear-gradient(135deg,rgba(249,115,22,.08) 0%,rgba(249,115,22,.04) 100%);color:#ea580c;border-color:#f9731633;transform:translate(2px)}.app-sidebar .nav-item.active{color:#dc2626;background:linear-gradient(135deg,rgba(249,115,22,.1) 0%,rgba(249,115,22,.05) 100%);border-color:#f973164d;box-shadow:0 2px 4px #f973161a}.app-sidebar .nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:60%;background:linear-gradient(135deg,#f97316,#ea580c);border-radius:0 2px 2px 0}.app-sidebar .nav-icon{font-size:1rem;margin-right:.625rem;flex-shrink:0;width:1rem;text-align:center}.app-sidebar .nav-label{flex:1;overflow:hidden;text-overflow:ellipsis}.app-sidebar.collapsed{width:72px!important}.app-sidebar.collapsed .nav-icon{margin-right:0}.app-sidebar.collapsed .nav-item{justify-content:center;padding:.5rem .375rem;position:relative}.app-sidebar.collapsed .nav-item:hover{transform:none}.app-sidebar.collapsed .nav-item:hover:after{content:attr(aria-label);position:absolute;left:100%;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.8);color:#fff;padding:.5rem .75rem;border-radius:.375rem;font-size:.875rem;white-space:nowrap;z-index:1001;margin-left:.5rem;box-shadow:0 4px 6px #0000001a}.app-sidebar.collapsed .sidebar-header{justify-content:space-between;padding:.875rem .375rem}.app-sidebar.collapsed .brand-section{justify-content:center;flex:1}.app-sidebar.collapsed .toggle-btn{position:relative;right:auto;margin-left:.5rem}.app-sidebar .scroll-indicator{position:absolute;left:50%;transform:translate(-50%);background:rgba(249,115,22,.8);color:#fff;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:all .2s ease;box-shadow:0 2px 8px #00000026}.app-sidebar .scroll-indicator:hover{background:rgba(249,115,22,1);transform:translate(-50%) scale(1.1)}.app-sidebar .scroll-indicator.scroll-top{top:1rem}.app-sidebar .scroll-indicator.scroll-bottom{bottom:1rem}.app-sidebar .sidebar-footer{padding:.75rem;border-top:1px solid rgba(226,232,240,.5);flex-shrink:0}.app-sidebar .sidebar-footer .user-info{margin-bottom:.5rem}.app-sidebar .sidebar-footer .user-label{margin:0;font-size:.8125rem;font-weight:500;color:#111827}.app-sidebar .sidebar-footer .user-email{margin:0;font-size:.6875rem;color:#6b7280;word-break:break-all}.app-sidebar .logout-btn{width:100%;padding:.5rem;background:#ef4444;color:#fff;border:none;border-radius:.375rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.375rem}.app-sidebar .logout-btn:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 8px #ef44444d}@media (max-width: 768px){.app-sidebar{transform:translate(-100%);transition:transform .3s ease;z-index:1001;will-change:transform}.app-sidebar.mobile-open{transform:translate(0);width:min(280px,85vw)!important;box-shadow:4px 0 20px #00000026}.app-sidebar .nav-item,.app-sidebar .logout-btn{min-height:44px}}@keyframes app-sidebar-slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}h1,h2,h3,h4,h5,h6{font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}p,span,div,a,button,input,textarea,select,label{font-family:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.vb-form-group,.form-group{margin-bottom:1rem}.vb-label,.form-label{display:block;font-weight:500;margin-bottom:.5rem;color:#374151;font-size:.875rem}.vb-input,.form-input{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;transition:border-color .2s ease,box-shadow .2s ease;background-color:#fff}.vb-input:focus,.form-input:focus{outline:none;border-color:#f97316;box-shadow:0 0 0 3px #f973161a}.vb-input:invalid,.form-input:invalid{border-color:#ef4444}.vb-input.error,.form-input.error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.vb-input:disabled,.form-input:disabled{background:#f3f4f6;cursor:not-allowed;opacity:.9}.vb-input-error{color:#ef4444;font-size:.75rem;margin-top:.25rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:1rem}@media (max-width: 768px){.form-grid{grid-template-columns:1fr;gap:1rem}.vb-input,.form-input,input[type=text],input[type=email],input[type=number],input[type=tel],input[type=search],input[type=url],input[type=password]{font-size:16px}}.vb-form-group,.form-group{margin-bottom:1.5rem}.vb-input,.form-input{max-width:100%;box-sizing:border-box}.text-muted{color:#6b7280}.help-text{font-size:.875rem;margin-top:.25rem;color:#6b7280;display:block}.touch-target{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.touch-target-inline{min-height:44px;display:inline-flex;align-items:center;box-sizing:border-box;padding-top:.5rem;padding-bottom:.5rem}.empty-state{text-align:center;padding:2rem 1rem;color:#6b7280}.empty-state i{font-size:2rem;margin-bottom:.75rem;opacity:.6}.empty-state p{margin:0;font-size:.875rem}.login-page-wrapper{min-height:100vh;display:flex;flex-direction:column;background:#f8fafc;font-size:16px}.login-header{background:linear-gradient(135deg,rgba(255,255,255,.95) 0%,rgba(248,250,252,.95) 100%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(226,232,240,.8);box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;padding:.875rem 1.25rem;position:relative}.login-header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,rgba(249,115,22,.02) 0%,transparent 50%,rgba(249,115,22,.02) 100%);pointer-events:none}.login-header .branding-row{display:flex;align-items:center;gap:.75rem}.login-header .branding-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background:#f97316;border-radius:50%;color:#fff}.login-header .branding-logo{width:1.5rem;height:1.5rem;object-fit:contain}.login-header .branding-title{font-size:1.25rem;font-weight:700;color:#1f2937}.login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem 1.25rem}.login-box{background:white;border-radius:.75rem;padding:1.25rem 1.5rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;width:100%;max-width:420px;position:relative;text-align:center;box-sizing:border-box}.login-back-link{position:absolute;top:.75rem;left:.75rem}.login-box .back-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:#f3f4f6;border:none;border-radius:.375rem;color:#6b7280;font-size:.8125rem;cursor:pointer;transition:all .2s}.login-box .back-btn:hover{background:#e5e7eb;color:#374151}.login-logo-above{margin-bottom:.75rem;display:flex;justify-content:center}.login-box-logo-with-text{height:2.5rem;width:auto;max-width:100%;object-fit:contain}.login-box .login-title{font-size:1.25rem;font-weight:700;color:#1f2937;text-align:center;margin-bottom:.2rem}.login-box .login-subtitle{color:#6b7280;text-align:center;margin-bottom:1rem;font-size:.8125rem}.login-box .error-message{display:flex;align-items:center;gap:.5rem;background:#fef2f2;color:#dc2626;padding:.4rem .6rem;border-radius:.375rem;border:1px solid #fecaca;margin-bottom:.75rem;font-size:.75rem}.login-form{margin-bottom:1rem}.login-form .form-group{margin-bottom:.75rem}.login-form .form-label{display:flex;align-items:center;justify-content:flex-start;gap:.25rem;font-size:.8125rem;font-weight:500;color:#374151;margin-bottom:.25rem;text-align:left}.login-box .login-form .form-group{text-align:left}.login-form .form-input{width:100%;padding:.5rem .65rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.login-form .form-input:focus{outline:none;border-color:#f97316;box-shadow:0 0 0 3px #f973161a}.login-form.form-layout-row .form-group{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.login-form.form-layout-row .form-group>.form-label{width:10rem;min-width:10rem;flex-shrink:0;margin-bottom:0}.login-form.form-layout-row .form-group>.form-input{flex:1;min-width:12rem}.login-form.form-layout-row .form-group>div:not(.form-label){flex:1;min-width:12rem}.login-form.form-layout-row .form-group>small{width:100%;flex-basis:100%}@media (max-width: 480px){.login-form.form-layout-row .form-group{flex-direction:column;align-items:stretch}.login-form.form-layout-row .form-group>.form-label{width:auto;min-width:0}.login-form.form-layout-row .form-group>.form-input,.login-form.form-layout-row .form-group>div:not(.form-label){min-width:0}}.public-layout .login-header{background:linear-gradient(135deg,rgba(255,255,255,.95) 0%,rgba(248,250,252,.95) 100%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(226,232,240,.8);box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;padding:1.5rem 2rem;position:relative}.public-layout .login-header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,rgba(249,115,22,.02) 0%,transparent 50%,rgba(249,115,22,.02) 100%);pointer-events:none}.public-layout .branding-row{display:flex;align-items:center;gap:.75rem}.public-layout .branding-icon{display:flex;align-items:center;justify-content:center;width:3.25rem;height:3.25rem;background:#f97316;border-radius:50%;color:#fff}.public-layout .branding-logo{width:2rem;height:2rem;object-fit:contain}.public-layout .branding-title{font-size:1.25rem;font-weight:700;color:#1f2937}.public-layout .login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.home-page.login-page-wrapper{min-height:100vh;display:flex;flex-direction:column;background:#f8fafc}.home-page .login-header{padding:1rem 1.5rem}.home-page .branding-row{display:flex;align-items:center;gap:.75rem}.home-page .branding-icon{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;background:#f97316;border-radius:50%;color:#fff}.home-page .branding-logo{width:1.75rem;height:1.75rem;object-fit:contain}.home-page .welcome-logo-above{margin-bottom:1rem;display:flex;justify-content:center;padding-top:.25rem}.home-page .welcome-box-logo-with-text{height:3.25rem;width:auto;max-width:100%;object-fit:contain}.home-page .branding-title{font-size:1.25rem;font-weight:700;color:#1f2937}.home-page .login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:1.25rem 1.5rem}.home-page .homepage-container{background:white;border-radius:.75rem;padding:1.5rem 1.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;width:100%;max-width:420px;text-align:center;box-sizing:border-box}.home-page .login-title{font-size:1.25rem;font-weight:700;color:#1f2937;margin-bottom:.35rem;margin-top:.25rem}.home-page .institution-name{font-size:.8125rem;font-weight:600;color:#f97316;margin-bottom:1rem}.home-page .login-options-row{display:flex;gap:.875rem;justify-content:center;margin-bottom:1rem;max-width:100%;margin-left:auto;margin-right:auto}.home-page .vidyarthi-registration-row{display:flex;justify-content:center;max-width:100%;margin-left:auto;margin-right:auto;margin-top:.25rem}.home-page .login-option{flex:1;background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;border:none;border-radius:.5rem;padding:.6rem .5rem;display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:all .2s;min-width:100px}.home-page .login-option.admin:hover{background:linear-gradient(135deg,#ea580c,#dc2626);transform:translateY(-2px);box-shadow:0 10px 25px #f973164d}.home-page .login-option.parent{background:linear-gradient(135deg,#16a34a,#15803d)}.home-page .login-option.parent:hover{background:linear-gradient(135deg,#15803d,#166534);transform:translateY(-2px);box-shadow:0 10px 25px #16a34a4d}.home-page .login-option.public{background:linear-gradient(135deg,#10b981,#059669)}.home-page .login-option.public:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 10px 25px #10b9814d}.home-page .login-option.full-width{width:100%;max-width:100%;padding:.6rem .5rem}.home-page .login-icon{margin-bottom:.25rem;font-size:1rem}.home-page .login-icon i{font-size:inherit}.home-page .login-label{font-size:.8125rem;font-weight:600;margin-bottom:.1rem}.home-page .login-desc{font-size:.75rem;opacity:.9}@media (max-width: 640px){.home-page .login-options-row{flex-direction:column;max-width:100%}.home-page .vidyarthi-registration-row{max-width:100%}.home-page .login-option{min-width:unset}.home-page .homepage-container{padding:1rem 1.25rem;margin:.5rem}}.thank-you-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f97316,#ea580c)}.thank-you-page .thank-you-card{background:white;padding:3rem;border-radius:1rem;box-shadow:0 20px 25px -5px #0000001a;text-align:center;max-width:500px;margin:2rem}.thank-you-page .thank-you-icon{font-size:4rem;margin-bottom:1rem}.thank-you-page .thank-you-title{font-size:2rem;font-weight:700;color:#1f2937;margin-bottom:1rem}.thank-you-page .thank-you-lead{color:#6b7280;margin-bottom:2rem;line-height:1.6}.thank-you-page .thank-you-next{background:#f3f4f6;padding:1.5rem;border-radius:.5rem;margin-bottom:2rem}.thank-you-page .thank-you-next h3{font-size:1.125rem;font-weight:600;color:#374151;margin-bottom:.5rem}.thank-you-page .thank-you-next ul{text-align:left;color:#6b7280;line-height:1.6}.thank-you-page .thank-you-actions{display:flex;gap:1rem;justify-content:center}.thank-you-page .thank-you-redirect{color:#9ca3af;font-size:.875rem;margin-top:2rem}.thank-you-page .vb-btn{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.375rem;font-weight:500;cursor:pointer;transition:all .2s}.thank-you-page .vb-btn:hover{background:linear-gradient(135deg,#ea580c,#c2410c);transform:translateY(-1px)}.thank-you-page .vb-btn-secondary{background:white;color:#374151;border:1px solid #d1d5db;padding:.75rem 1.5rem;border-radius:.375rem;font-weight:500;cursor:pointer;transition:all .2s}.thank-you-page .vb-btn-secondary:hover{background:#f9fafb;border-color:#9ca3af}.terms-page .prose{color:#374151}.terms-page .prose h2{color:#1f2937;font-weight:700;margin-top:2rem;margin-bottom:1rem}.terms-page .prose p{line-height:1.6;margin-bottom:1rem}.terms-page .prose ul{margin-left:1.5rem;margin-bottom:1rem}.terms-page .prose li{line-height:1.6}.parent-dashboard.dashboard-container{max-width:100%}.parent-dashboard .welcome-section{text-align:center;margin-bottom:2rem;padding:2rem;background:linear-gradient(135deg,rgba(249,115,22,.05) 0%,rgba(255,255,255,.8) 100%);border-radius:1rem;border:1px solid rgba(249,115,22,.1)}.parent-dashboard .welcome-title{font-size:2rem;font-weight:700;color:#1f2937;margin-bottom:.5rem;font-family:Montserrat,sans-serif}.parent-dashboard .welcome-subtitle{font-size:1.125rem;color:#6b7280;margin:0}.parent-dashboard .quick-actions{margin-bottom:2rem;display:flex;justify-content:center}.parent-dashboard .create-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600}.parent-dashboard .requests-section{background:white;border-radius:1rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;border:1px solid #e5e7eb;margin-bottom:2rem}.parent-dashboard .section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.parent-dashboard .section-title{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:600;color:#1f2937;margin:0;font-family:Montserrat,sans-serif}.parent-dashboard .request-count{background:#f3f4f6;color:#374151;padding:.25rem .75rem;border-radius:1rem;font-size:.875rem;font-weight:500}.parent-dashboard .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:#6b7280}.parent-dashboard .loading-spinner{width:2rem;height:2rem;border:2px solid #e5e7eb;border-top:2px solid #f97316;border-radius:50%;animation:parent-dashboard-spin 1s linear infinite;margin-bottom:1rem}@keyframes parent-dashboard-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.parent-dashboard .empty-state{text-align:center;padding:3rem;color:#6b7280}.parent-dashboard .empty-state i{font-size:3rem;color:#d1d5db;margin-bottom:1rem}.parent-dashboard .empty-state h3{font-size:1.25rem;font-weight:600;color:#374151;margin-bottom:.5rem}.parent-dashboard .empty-state p{margin-bottom:1.5rem}.parent-dashboard .requests-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.parent-dashboard .request-card{background:white;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.parent-dashboard .request-card:hover{box-shadow:0 4px 6px #0000001a;border-color:#d1d5db}.parent-dashboard .card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1rem}.parent-dashboard .student-info{flex:1}.parent-dashboard .student-name{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0 0 .25rem;font-family:Montserrat,sans-serif}.parent-dashboard .student-details{font-size:.875rem;color:#6b7280;margin:0}.parent-dashboard .status-badge{padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.parent-dashboard .status-approved{background:#dcfce7;color:#166534}.parent-dashboard .status-pending{background:#fef3c7;color:#92400e}.parent-dashboard .status-rejected{background:#fee2e2;color:#991b1b}.parent-dashboard .card-content{margin-bottom:1rem}.parent-dashboard .info-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.parent-dashboard .info-row:last-child{margin-bottom:0}.parent-dashboard .info-label{font-size:.875rem;color:#6b7280;font-weight:500}.parent-dashboard .info-value{font-size:.875rem;color:#374151;font-weight:600}.parent-dashboard .admission-number{color:#f97316;font-family:Courier New,monospace}.parent-dashboard .card-actions{display:flex;gap:.75rem;justify-content:flex-end}.parent-dashboard .students-section{margin-bottom:2rem}.parent-dashboard .students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem}.parent-dashboard .student-card{background:linear-gradient(135deg,#f8fafc 0%,#ffffff 100%);border:2px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;transition:all .3s ease;box-shadow:0 2px 4px #0000000d;position:relative;overflow:hidden}.parent-dashboard .student-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#10b981,#059669)}.parent-dashboard .student-card:hover{box-shadow:0 8px 25px #0000001a;border-color:#10b981;transform:translateY(-2px)}.parent-dashboard .status-admitted{background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:.5rem 1rem;border-radius:2rem;font-size:.875rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.parent-dashboard .status-active{color:#10b981;font-weight:600;display:flex;align-items:center;gap:.5rem}.parent-dashboard .view-btn,.parent-dashboard .edit-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500}.parent-dashboard .vb-btn-primary{background:#f97316;color:#fff;border:none;border-radius:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem}.parent-dashboard .vb-btn-primary:hover:not(:disabled){background:#ea580c;transform:translateY(-1px)}.parent-dashboard .vb-btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.parent-dashboard .vb-btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem}.parent-dashboard .vb-btn-secondary:hover{background:#e5e7eb;border-color:#9ca3af}@media (max-width: 768px){.parent-dashboard .welcome-section{padding:1.5rem}.parent-dashboard .welcome-title{font-size:1.5rem}.parent-dashboard .welcome-subtitle{font-size:1rem}.parent-dashboard .requests-grid{grid-template-columns:1fr;gap:1rem}.parent-dashboard .request-card{padding:1rem}.parent-dashboard .card-header{flex-direction:column;align-items:flex-start;gap:.75rem}.parent-dashboard .card-actions{justify-content:stretch}.parent-dashboard .view-btn,.parent-dashboard .edit-btn{flex:1;justify-content:center}}.app-footer{text-align:center;padding:1.5rem;color:#4b5563cc;font-size:.875rem;position:relative}.app-footer .footer-content{margin:0}.footer-admin,.footer-public{background:linear-gradient(135deg,rgba(255,255,255,.95) 0%,rgba(248,250,252,.95) 100%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid rgba(226,232,240,.8);box-shadow:0 -1px 3px #0000001a,0 -1px 2px #0000000f}.footer-public:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,rgba(249,115,22,.01) 0%,transparent 50%,rgba(249,115,22,.01) 100%);pointer-events:none}.footer-parent{background:linear-gradient(135deg,rgba(255,255,255,.95) 0%,rgba(248,250,252,.95) 100%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid rgba(226,232,240,.8);box-shadow:0 -1px 3px #0000001a,0 -1px 2px #0000000f}.footer-default{background:#f8fafc;border-top:1px solid #e2e8f0}@media (max-width: 768px){.app-footer{padding:1rem;font-size:.75rem}}.login-box .login-btn{width:100%;padding:.5rem .65rem;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:.6rem}.login-box .login-btn.primary{background:#f97316;color:#fff}.login-box .login-btn.primary:hover:not(:disabled){background:#ea580c}.login-box .login-btn.google{background:white;color:#374151;border:1px solid #d1d5db}.login-box .login-btn.google:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.login-box .login-btn:disabled{opacity:.6;cursor:not-allowed}.login-box .login-btn.secondary{background:#f3f4f6;color:#374151}.login-box .login-btn.secondary:hover:not(:disabled){background:#e5e7eb}.login-box .google-icon{margin-right:.5rem}.login-method-toggle{display:flex;background:#f3f4f6;border-radius:.375rem;padding:.15rem;margin-bottom:1rem}.login-box .toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.25rem;padding:.4rem .5rem;border:none;background:transparent;color:#6b7280;font-weight:500;border-radius:.25rem;cursor:pointer;transition:all .2s;font-size:.75rem}.login-box .toggle-btn.active{background:white;color:#f97316;box-shadow:0 1px 3px #0000001a}.login-box .error-message{align-items:flex-start}.login-box .error-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.login-box .error-text{line-height:1.5}.login-box .retry-info{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:#991b1b;font-weight:500;margin-top:.25rem}.login-form .otp-info{margin-top:.5rem;text-align:center}.login-form .otp-info p{margin:.25rem 0;font-size:.875rem;color:#6b7280}.login-form .timer{color:#f97316;font-weight:500}.login-box .resend-btn{background:none;border:none;color:#f97316;cursor:pointer;font-size:.875rem;font-weight:500;text-decoration:underline}.login-box .resend-btn:hover{color:#ea580c}.login-box .quick-login{text-align:center;padding-top:.75rem;border-top:1px solid #e5e7eb}.login-box .quick-login-text{font-size:.75rem;color:#6b7280;margin-bottom:.5rem}.login-divider{display:flex;align-items:center;text-align:center;margin:1rem 0;color:#6b7280;font-size:.8125rem}.login-divider:before,.login-divider:after{content:"";flex:1;border-bottom:1px solid #e5e7eb}.login-divider span{padding:0 1rem}.login-box .btn-content{display:flex;align-items:center;justify-content:center;gap:.5rem}@media (max-width: 640px){.login-box{padding:1rem 1.25rem;margin:.5rem}.login-box .login-title{font-size:1.125rem}}.action-btn{width:2rem;height:2rem;border:none;border-radius:.375rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;font-size:.875rem}.action-btn:disabled{opacity:.5;cursor:not-allowed}.action-btn.view{background:#ccfbf1;color:#0d9488}.action-btn.view:hover:not(:disabled){background:#99f6e4;color:#0f766e}.action-btn.edit{background:#dbeafe;color:#2563eb}.action-btn.edit:hover:not(:disabled){background:#bfdbfe;color:#1d4ed8}.action-btn.delete{background:#fee2e2;color:#dc2626}.action-btn.delete:hover:not(:disabled){background:#fecaca;color:#b91c1c}.action-btn.reject{background:#fee2e2;color:#dc2626}.action-btn.reject:hover:not(:disabled){background:#fecaca;color:#b91c1c}.action-btn.add,.action-btn.add-child{background:#d1fae5;color:#059669}.action-btn.add:hover:not(:disabled),.action-btn.add-child:hover:not(:disabled){background:#a7f3d0;color:#047857}.action-btn.promote{background:#ede9fe;color:#7c3aed}.action-btn.promote:hover:not(:disabled){background:#ddd6fe;color:#6d28d9}.action-btn.admit{background:#e0e7ff;color:#4f46e5}.action-btn.admit:hover:not(:disabled){background:#c7d2fe;color:#4338ca}.action-btn.complete{background:#ccfbf1;color:#0d9488}.action-btn.complete:hover:not(:disabled){background:#99f6e4;color:#0f766e}.action-btn.small{width:1.5rem;height:1.5rem;font-size:.75rem}.action-buttons,.card-actions{display:flex;gap:.5rem;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;border-radius:.375rem;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s ease;border:none;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary,.btn.btn-primary,.vb-btn{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;border:none;padding:.5rem 1rem;border-radius:.375rem;font-weight:500;cursor:pointer;transition:all .2s ease;font-size:.875rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary:hover:not(:disabled),.btn.btn-primary:hover:not(:disabled),.vb-btn:hover:not(:disabled){background:linear-gradient(135deg,#ea580c,#c2410c);transform:translateY(-1px);box-shadow:0 4px 6px -1px #f973164d}.btn-primary:disabled,.btn.btn-primary:disabled,.vb-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary,.btn.btn-secondary,.vb-btn-secondary{background:#f3f4f6;color:#374151;border:none;padding:.5rem 1rem;border-radius:.375rem;font-weight:500;cursor:pointer;transition:all .2s ease;font-size:.875rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-secondary:hover:not(:disabled),.btn.btn-secondary:hover:not(:disabled),.vb-btn-secondary:hover:not(:disabled){background:#e5e7eb}.btn-secondary:disabled,.btn.btn-secondary:disabled,.vb-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-outline{background:white;color:#374151;border:1px solid #d1d5db;padding:.5rem 1rem;border-radius:.375rem;font-weight:500;cursor:pointer;transition:all .2s ease;font-size:.875rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-outline:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-outline:disabled{opacity:.5;cursor:not-allowed}.btn-danger,.btn.btn-danger{background:#ef4444;color:#fff;border:none;padding:.5rem 1rem;border-radius:.375rem;font-weight:500;cursor:pointer;transition:all .2s ease;font-size:.875rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-danger:hover:not(:disabled),.btn.btn-danger:hover:not(:disabled){background:#dc2626}.btn-danger:disabled,.btn.btn-danger:disabled{opacity:.5;cursor:not-allowed}.vb-btn.vb-btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.vb-btn.vb-btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c)}.vb-btn.vb-btn-danger:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:white;border-radius:.5rem;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a;display:flex;flex-direction:column}.modal-content.modal-small{max-width:400px}.modal-content.modal-narrow{max-width:420px}.modal-content.modal-medium{max-width:600px}.modal-content.modal-large{max-width:800px}.modal-content.modal-xlarge{max-width:900px}.modal-small{max-width:400px}.modal-medium{max-width:600px}.modal-large{max-width:800px}.modal-xlarge{max-width:900px}@media (max-width: 480px){.modal-overlay{padding:0;align-items:stretch}.modal-content{width:100%;max-width:none;max-height:none;height:100vh;height:100dvh;border-radius:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-sizing:border-box}.modal-content.modal-small,.modal-content.modal-narrow,.modal-content.modal-medium,.modal-content.modal-large,.modal-content.modal-xlarge{max-width:none}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.modal-header h2,.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#111827}.modal-header.modal-header-centered{flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:1rem 1.25rem 0;border-bottom:none}.modal-header-centered .modal-icon{margin-bottom:.75rem}.modal-header-centered .modal-icon i{font-size:2.25rem}.modal-header-centered .modal-title{font-size:1.125rem}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s ease}.modal-close:hover{color:#374151;background:#f3f4f6}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-footer,.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb;background:#f9fafb;flex-shrink:0}@media (max-width: 640px){.modal-content{width:95%;max-height:90vh;margin:.5rem}.modal-header{padding:.75rem 1rem}.modal-body{padding:1rem}.modal-footer{padding:.75rem 1rem;flex-direction:column}}.tab-navigation{display:flex;background:white;border-radius:1rem;padding:.5rem;margin-bottom:2rem;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #e2e8f0;overflow-x:auto}.tab-button{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 1.5rem;border:none;background:transparent;color:#64748b;font-weight:500;border-radius:.75rem;cursor:pointer;transition:all .2s ease;white-space:nowrap;min-width:200px}.tab-button:hover{background:#f1f5f9;color:#334155}.tab-button.active{background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);color:#fff;box-shadow:0 4px 6px -1px #f973164d}.tab-button i{font-size:1.125rem}.tab-content{background:white;border-radius:1rem;padding:2rem;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #e2e8f0;min-height:400px}@media (max-width: 768px){.tab-navigation{flex-direction:column}.tab-button{min-width:auto}}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.pt-4{padding-top:1rem}.pb-4{padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-4{padding-top:1rem;padding-bottom:1rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.border-t{border-top:1px solid #e5e7eb}.border-b{border-bottom:1px solid #e5e7eb}.border-gray-200{border-color:#e5e7eb}.rounded{border-radius:.5rem}.rounded-lg{border-radius:.75rem}.w-full{width:100%}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.text-center{text-align:center}.text-left{text-align:left}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.hidden{display:none}@media (max-width: 768px){.hide-mobile{display:none!important}.show-mobile{display:block!important}.flex-mobile{flex-direction:column}.w-full-mobile{width:100%}.text-center-mobile{text-align:center}}@media (min-width: 769px){.hide-desktop{display:none!important}.show-desktop{display:block!important}}.vb-card{background:white;border-radius:.5rem;padding:1.5rem;border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000001a}.vb-card:hover{box-shadow:0 4px 6px -1px #0000001a}.status-badge{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500;text-transform:uppercase}.status-badge.active,.status-badge.approved,.status-badge.admitted{background:#d1fae5;color:#065f46}.status-badge.inactive,.status-badge.rejected{background:#fee2e2;color:#dc2626}.status-badge.pending{background:#dbeafe;color:#1e40af}.status-badge.suspended,.status-badge.warning{background:#fef3c7;color:#d97706}.search-filter-bar{background:white;border-radius:.5rem;padding:1.5rem;margin-bottom:1.5rem;border:1px solid #e5e7eb}.search-row{margin-bottom:1rem}.search-input{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;transition:border-color .2s ease,box-shadow .2s ease}.search-input:focus{outline:none;border-color:#f97316;box-shadow:0 0 0 3px #f973161a}.search-input::placeholder{color:#9ca3af}.filters-row{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.filter-group{flex:1;min-width:150px}.filter-group.auto-width{flex:0 0 auto;min-width:auto}.filter-label{display:block;margin-bottom:.25rem;font-size:.75rem;color:#6b7280;font-weight:500}.filter-select{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;background:white;cursor:pointer;transition:border-color .2s ease}.filter-select:focus{outline:none;border-color:#f97316}.items-per-page{display:flex;align-items:center;gap:.5rem}.items-per-page-label{font-size:.875rem;color:#6b7280;white-space:nowrap}.items-per-page-select{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;background:white;cursor:pointer}.items-per-page-select:focus{outline:none;border-color:#f97316}.filter-hint{font-size:.75rem;margin-top:.25rem}.filter-hint.loading{color:#9ca3af}.filter-hint.error{color:#dc2626}.pagination-band{background:white;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.pagination-band.top{margin-bottom:1rem}.pagination-band.bottom{margin-top:1rem}.pagination-info{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.pagination-text{font-size:.875rem;color:#6b7280}.pagination-text strong{color:#374151;font-weight:600}.pagination-controls{display:flex;align-items:center;gap:.5rem}.pagination-page-info{font-size:.875rem;color:#6b7280;padding:0 .5rem}.data-grid-container{background:white;border-radius:.5rem;border:1px solid #d1d5db;overflow-x:auto;overflow-y:hidden;box-shadow:0 1px 3px #0000000d}.data-grid{width:100%;border-collapse:collapse}.data-grid th,.data-grid td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb}.data-grid th{background:#e2e8f0;font-weight:600;font-size:.875rem;color:#1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-bottom:2px solid #cbd5e1}.data-grid th:hover{background:#cbd5e1}.data-grid th .sort-icon{margin-left:.25rem;opacity:.5}.data-grid th.sorted .sort-icon{opacity:1;color:#f97316}.data-grid tbody{background:white}.data-grid tbody tr:hover{background:#f8fafc}.data-grid tbody tr:nth-child(2n){background:#fafbfc}.data-grid tbody tr:nth-child(2n):hover{background:#f1f5f9}.data-grid tbody tr:last-child td{border-bottom:none}.data-grid td{font-size:.875rem;color:#374151}.data-grid-empty{text-align:center;padding:3rem;color:#6b7280}.data-grid-empty i{font-size:2rem;margin-bottom:1rem;opacity:.5}.data-grid-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:#6b7280}.loading-spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top:3px solid #f97316;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-banner{background:#fee2e2;color:#dc2626;padding:1rem;border-radius:.375rem;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.master-wrap{max-width:100%}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #e2e8f0}.section-header h2,.section-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#374151;display:flex;align-items:center;gap:.5rem}.section-header h2 i,.section-header h3 i{color:#f97316}.add-btn{background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);color:#fff;border:none;padding:.5rem 1rem;border-radius:.5rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.875rem}.add-btn:hover{filter:brightness(1.05);box-shadow:0 2px 4px #f973164d}.master-toolbar,.toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.master-toolbar .search-label,.toolbar .search-label{font-size:.875rem;color:#6b7280;white-space:nowrap}.master-toolbar .search-input{flex:1;max-width:320px}.search-hint{font-size:.8125rem;color:#6b7280}.state-message{padding:2rem;text-align:center;color:#6b7280}.table-container{overflow-x:auto;border:1px solid #e5e7eb;border-radius:.5rem;background:#fff}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th,.data-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb}.data-table thead th{background:#f8fafc;font-weight:600;color:#374151}.data-table tbody tr:hover{background:#f8fafc}.data-table .col-actions{white-space:nowrap}.data-table .empty-cell{text-align:center;color:#6b7280;padding:2rem!important}.btn-icon{padding:.35rem .5rem;border:none;border-radius:.375rem;cursor:pointer;margin-right:.25rem;background:transparent;color:#6b7280}.btn-icon:hover{background:#f3f4f6;color:#111}.btn-icon.edit:hover{color:#2563eb}.btn-icon.delete:hover{color:#dc2626}@media (max-width: 640px){.section-header{flex-direction:column;align-items:flex-start;gap:.75rem}.master-toolbar,.toolbar{flex-wrap:wrap}.master-toolbar .search-input,.toolbar .search-input{max-width:none}}@media (max-width: 768px){.search-filter-bar{padding:1rem}.filters-row{flex-direction:column;align-items:stretch}.filter-group{min-width:100%}.items-per-page{width:100%;justify-content:space-between}.pagination-band{flex-direction:column;text-align:center}.pagination-controls{width:100%;justify-content:center}.data-grid{font-size:.8125rem}.data-grid th,.data-grid td{padding:.5rem .75rem}}
