@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800;900&display=swap";:root{--primary:#5a1c1d;--primary-hover:#441415;--secondary:#64748b;--background:#f8fafc;--surface:#fff;--text-main:#0f172a;--text-muted:#64748b;--border:#e2e8f0;--success:#10b981;--pending:#f59e0b;--danger:#ef4444;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-primary:0 10px 15px -3px #5a1c1d66;--radius:1rem;--radius-lg:1.5rem}[data-theme=dark]{--background:#0f172a;--surface:#1e293b;--text-main:#f8fafc;--text-muted:#cbd5e1;--border:#ffffff1a;--shadow-sm:0 1px 2px 0 #00000080;--shadow-md:0 10px 15px -3px #00000080;--shadow-lg:0 20px 25px -5px #000000b3;--primary:#c53030;--primary-hover:#e53e3e}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--background);color:var(--text-main);-webkit-font-smoothing:antialiased;font-family:Montserrat,sans-serif;line-height:1.6;transition:background-color .4s,color .4s,border-color .4s,box-shadow .4s}.modal-content,.imposing-class-card,.student-row,.form-input,.form-select,.main-header,.status-pill,.detail-card,.category-divider,.btn-primary,.btn-secondary,.close-x,.delete-btn,.expand-btn,.profile-avatar.large,.student-avatar,.logo-badge{transition:background-color .4s,color .4s,border-color .4s,box-shadow .4s}.app-container{max-width:1200px;margin:0 auto;padding:1.5rem 2rem 5rem}.vertical-layout{flex-direction:column;align-items:center;gap:3rem;width:100%;display:flex}.fade-in{animation:.4s ease-out forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.loading-screen{height:80vh;color:var(--primary);letter-spacing:.1em;justify-content:center;align-items:center;font-weight:800;display:flex}@media (width<=768px){.app-container{padding:1rem 1rem 4rem}.vertical-layout{gap:1.5rem}}.btn-primary{background:linear-gradient(135deg, var(--primary) 0%, #7c2d2e 100%);color:#fff;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;box-shadow:var(--shadow-primary);border:none;border-radius:100px;justify-content:center;align-items:center;padding:1rem 2.5rem;font-size:.9rem;font-weight:900;transition:all .3s;display:flex}.btn-primary:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-3px);box-shadow:0 15px 30px #5a1c1d80}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.btn-secondary{background:var(--border);color:var(--text-main);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;border:none;border-radius:100px;padding:1rem 2.5rem;font-size:.85rem;font-weight:900;transition:all .2s}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:.75rem;display:flex;position:fixed;top:1.5rem;right:1.5rem}.toast{pointer-events:auto;background:var(--surface);border:1px solid var(--border);min-width:300px;max-width:450px;color:var(--text-main);border-radius:12px;align-items:center;gap:.75rem;padding:1rem 1.25rem;font-size:.95rem;font-weight:600;animation:.3s cubic-bezier(.68,-.55,.265,1.55) forwards toast-in;display:flex;box-shadow:0 8px 32px #00000040}.toast.success svg{color:var(--primary)}.toast.error{border-left:4px solid var(--danger)}.toast.error svg{color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast.exiting{animation:.3s ease-in forwards toast-out}@keyframes toast-out{to{opacity:0;transform:translate(100%)}}@media (width<=600px){.toast-container{display:none}}.btn-secondary:hover{background:#e2e8f0}.btn-danger{background:var(--danger);color:#fff;text-transform:uppercase;cursor:pointer;letter-spacing:.05em;border:none;border-radius:100px;padding:1rem 2.5rem;font-size:.85rem;font-weight:900;transition:all .3s;box-shadow:0 4px 12px #ef44444d}.btn-danger:hover{background:#dc2626;transform:translateY(-3px);box-shadow:0 12px 20px -3px #ef444480}.btn-small{padding:.625rem 1.25rem;font-size:.75rem}.form-group{flex-direction:column;gap:.5rem;width:100%;margin-bottom:1.25rem;display:flex}.form-group label{color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase;font-size:.75rem;font-weight:800}.form-input,.form-select{border:1px solid var(--border);background:var(--surface);color:var(--text-main);border-radius:14px;width:100%;padding:1rem;font-family:inherit;font-size:1rem;font-weight:600;transition:all .2s}.form-input:focus,.form-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 4px #5a1c1d1a}.add-student-inline{background:var(--surface);border:2px dashed var(--primary);border-radius:20px;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding:1.5rem;display:flex}.btn-group{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.text-primary{color:var(--primary)}.text-danger{color:var(--danger)}.text-muted{color:var(--text-muted)}.centered-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:2rem;display:flex}.minimal-spacing{gap:.5rem;padding-top:0}.logo-container{flex-direction:column;align-items:center;gap:.5rem;display:flex}.logo-img{filter:drop-shadow(0 6px 10px #00000026);background:#fff;border-radius:12px;width:auto;height:100px;padding:4px}[data-theme=dark] .logo-img{background:#ffffffe6;box-shadow:0 0 20px #c530304d}.title-group h1{color:var(--text-main);letter-spacing:-.01em;font-size:1.9rem;font-weight:900;line-height:1.2}.subtitle{color:var(--text-muted);letter-spacing:.25em;margin-top:.25rem;font-size:.75rem;font-weight:800}.logout-btn,.theme-toggle-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:flex}.logout-btn:hover,.theme-toggle-btn:hover{background:var(--border);color:var(--primary);transform:scale(1.1)}.app-container>.centered-header{width:100%;max-width:1200px;position:relative}.app-container>.centered-header .logout-btn{position:absolute;top:50%;right:0;transform:translateY(-50%)}.app-container>.centered-header .theme-toggle-btn{position:absolute;top:50%;left:0;transform:translateY(-50%)}@media (width<=600px){.logo-img{height:70px}.title-group h1{font-size:1.4rem}.subtitle{letter-spacing:.15em;font-size:.6rem}.app-container>.centered-header .logout-btn{position:absolute;top:0;right:-.5rem;transform:none}.app-container>.centered-header .theme-toggle-btn{position:absolute;top:0;left:-.5rem;transform:none}}.login-page{background-color:var(--background);justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem;display:flex}.login-card{background:var(--surface);box-shadow:var(--shadow-lg);border:1px solid var(--border);border-radius:40px;width:100%;max-width:500px;padding:3rem}.login-form{flex-direction:column;align-items:center;gap:1.5rem;margin-top:2.5rem;display:flex}.login-form .form-group{flex-direction:column;align-items:center;width:100%;display:flex}.login-form .form-group label{color:var(--text-muted);letter-spacing:.1em;text-align:center;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-bottom:.75rem;font-size:.75rem;font-weight:800;display:flex}.login-form .form-input{text-align:center;background-color:var(--background);border:1px solid var(--border);transition:all .2s}.login-form .form-input:focus{background-color:var(--surface);border-color:var(--primary);box-shadow:0 0 0 4px #c530301a}.login-error{color:var(--danger);text-align:center;background:#fef2f2;border:1px solid #fee2e2;border-radius:12px;padding:.75rem;font-size:.8rem;font-weight:800;animation:.4s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@media (width<=600px){.login-card{padding:2rem 1.5rem}}.login-options{justify-content:center;width:100%;margin:.5rem 0;display:flex}.remember-checkbox-container{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;align-items:center;padding-left:35px;font-size:.85rem;font-weight:500;transition:color .2s;display:flex;position:relative}.remember-checkbox-container:hover{color:var(--primary)}.remember-checkbox-container input{opacity:0;cursor:pointer;width:0;height:0;position:absolute}.checkmark{background-color:var(--background);border:2px solid var(--border);border-radius:6px;width:22px;height:22px;transition:all .2s cubic-bezier(.4,0,.2,1);position:absolute;top:50%;left:0;transform:translateY(-50%)}.remember-checkbox-container:hover input~.checkmark{border-color:var(--primary)}.remember-checkbox-container input:checked~.checkmark{background-color:var(--primary);border-color:var(--primary);box-shadow:0 4px 10px #c530304d}.checkmark:after{content:"";display:none;position:absolute}.remember-checkbox-container input:checked~.checkmark:after{display:block}.remember-checkbox-container .checkmark:after{border:2.5px solid #fff;border-width:0 2.5px 2.5px 0;width:4px;height:9px;top:3px;left:7px;transform:rotate(45deg)}.label-text{letter-spacing:.02em;font-weight:700}.month-navigator{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:30px;flex-direction:column;gap:1.5rem;width:100%;max-width:600px;padding:1.5rem 2.5rem;display:flex}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.navigator-top-row{justify-content:space-between;align-items:center;width:100%;display:flex}.current-month-display{justify-content:center;align-items:center;gap:1rem;display:flex}.current-month-display h2{color:var(--primary);letter-spacing:-.01em;font-size:1.4rem;font-weight:900}.nav-btn{background:var(--background);color:var(--primary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.625rem;transition:all .2s;display:flex}.nav-btn:hover{background:var(--primary);color:#fff;transform:scale(1.1)}.total-progress-wrapper{border-top:1px dashed var(--border);flex-direction:column;gap:.75rem;width:100%;padding-top:1rem;display:flex}.total-progress-info{justify-content:space-between;align-items:center;display:flex}.total-progress-label{color:var(--text-muted);letter-spacing:.15rem;font-size:.7rem;font-weight:900}.total-progress-count{color:var(--primary);letter-spacing:.05rem;font-size:.8rem;font-weight:900}.total-progress-track{background:var(--background);border-radius:100px;width:100%;height:10px;overflow:hidden;box-shadow:inset 0 2px 4px #0000000d}.total-progress-fill{background:linear-gradient(90deg, var(--primary) 0%, #b91c1c 100%);border-radius:100px;height:100%;transition:width 1s cubic-bezier(.34,1.56,.64,1)}.imposing-class-list{flex-direction:column;gap:3rem;width:100%;max-width:800px;display:flex}.category-section{flex-direction:column;gap:1.5rem;display:flex}.category-divider{align-items:center;gap:1rem;display:flex}.category-divider:before,.category-divider:after{content:"";background:linear-gradient(to right, transparent, var(--border), transparent);flex:1;height:2px}.category-divider span{color:var(--text-muted);letter-spacing:.35em;background:var(--background);border-radius:100px;padding:.375rem 1.25rem;font-size:.8rem;font-weight:900}.category-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;width:100%;display:grid}.class-tab.imposing{background:var(--surface);border:2px solid var(--border);color:var(--text-main);box-shadow:var(--shadow-sm);cursor:pointer;letter-spacing:-.01em;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:120px;padding:1.25rem;font-size:1.1rem;font-weight:800;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.class-tab.imposing:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-5px);box-shadow:0 20px 25px -5px #0003}.class-tab.imposing.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 10px 30px #5a1c1d66}.class-tab-content{flex-direction:column;align-items:center;gap:1rem;width:100%;display:flex}.class-tab-name{line-height:1.2}.dashboard-progress{flex-direction:column;align-items:center;gap:.5rem;width:100%;padding:0 .5rem;display:flex}.progress-track{background:var(--background);border-radius:100px;width:100%;height:6px;overflow:hidden;box-shadow:inset 0 1px 2px #0000000d}.progress-fill{background:linear-gradient(90deg, var(--primary) 0%, #b91c1c 100%);border-radius:100px;height:100%;transition:width .8s cubic-bezier(.34,1.56,.64,1)}.progress-counter{color:var(--text-muted);letter-spacing:.1em;background:var(--background);border:1px solid var(--border);border-radius:100px;padding:.15rem .6rem;font-size:.7rem;font-weight:900}.class-tab.imposing.active .progress-counter{color:#fff;background:#fff3;border-color:#0000}.class-tab.imposing.active .progress-track{background:#fff3}.class-tab.imposing.active .progress-fill{background:#fff}.class-tab.add-tab{background:var(--background);border-style:dashed}.grid-footer{justify-content:center;margin-top:2rem;display:flex}.tab-constrained{align-items:center;max-width:300px;display:flex!important}.icon-right-margin{margin-right:.75rem}@media (width<=768px){.month-navigator{border-radius:20px;gap:1rem;padding:1.25rem}.current-month-display h2{font-size:1.1rem}.imposing-class-list{gap:2rem}.total-progress-info{text-align:center;flex-direction:column;gap:.5rem}.current-month-display svg{display:none}}@media (width<=480px){.current-month-display h2{font-size:.95rem}.nav-btn{padding:.4rem}}@media (width<=900px){.category-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.category-grid{grid-template-columns:1fr}}[data-theme=dark] .current-month-display h2,[data-theme=dark] .total-progress-count{color:var(--text-main)}.modal-overlay{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;color:var(--text-main);background:#0f172a99;justify-content:center;align-items:center;padding:1rem;animation:.3s forwards fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--background);border-radius:var(--radius-lg);width:95vw;min-width:320px;max-width:850px;max-height:90vh;box-shadow:var(--shadow-lg);border:1px solid var(--border);flex-direction:column;animation:.4s cubic-bezier(.34,1.56,.64,1) forwards modalSlideUp;display:flex;overflow:hidden}.modal-header{background:var(--surface);border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;padding:1.75rem;display:flex}.modal-header-actions{align-items:center;gap:1rem;display:flex}.modal-header h3{color:var(--text-main);letter-spacing:-.02em;font-size:1.35rem;font-weight:900}.modal-body{background:var(--background);flex:1;padding:1.5rem;overflow-y:auto}.modal-footer{background:var(--surface);border-top:1px solid var(--border);justify-content:center;gap:1.25rem;padding:1.25rem;display:flex}.close-x{cursor:pointer;color:var(--text-muted);background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.close-x:hover{color:var(--primary)}.close-x.rotate:hover{transform:rotate(90deg)}.modal-content.confirm-modal{text-align:center;background:var(--surface);width:90vw;min-width:300px;max-width:500px}.alert-icon-container{filter:drop-shadow(0 4px 10px #0000001a);color:var(--accent);justify-content:center;padding:1.5rem 0 .5rem;display:flex}.alert-message{color:var(--text-main);padding:0 2.5rem 2.5rem;font-size:1.05rem;font-weight:600;line-height:1.7}.confirm-modal-header{border:none;justify-content:center;padding-bottom:.5rem}.confirm-modal-header h3{color:var(--accent)}.confirm-modal-footer{border:none;padding:0 2rem 2.5rem}.btn-confirm-main{background-color:var(--accent);border-color:var(--accent);flex:1}.btn-confirm-main:hover{filter:brightness(.9)}.student-list{flex-direction:column;gap:.75rem;display:flex}.student-row{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:18px;justify-content:space-between;align-items:center;gap:2rem;padding:1.125rem;transition:all .2s;display:flex}.student-row:hover{border-color:var(--primary);transform:translate(5px)}.student-info{flex:1;align-items:center;gap:1.25rem;min-width:0;display:flex}.student-avatar{width:44px;height:44px;color:var(--primary);background:#fcf1f1;border-radius:14px;justify-content:center;align-items:center;display:flex;box-shadow:inset 0 2px 4px #0000000d}.student-name{color:var(--text-main);font-size:1rem;font-weight:700}.status-pill{cursor:pointer;border-radius:100px;justify-content:center;align-items:center;gap:.5rem;min-width:135px;padding:.5rem 1rem;font-size:.7rem;font-weight:800;transition:all .2s;display:flex}.status-pill.paid{color:#059669;background:#ecfdf5}.status-pill.pending{color:#dc2626;background:#fef2f2}.delete-btn{color:#dc2626;cursor:pointer;background:#fef2f2;border:1.5px solid #fecaca;border-radius:10px;justify-content:center;align-items:center;padding:.4rem;transition:all .2s;display:flex}.delete-btn:hover{color:#b91c1c;background:#fee2e2;border-color:#fca5a5;transform:translateY(-1px)scale(1.05)}.icon-actions{align-items:center;gap:.5rem;display:flex}.action-group{align-items:center;gap:1rem;display:flex}.modal-action-row{justify-content:center;margin-bottom:1.5rem;display:flex}.full-width{width:100%}.m-0{margin:0!important}.icon-left{margin-right:.5rem}.flex-1{flex:1}.align-center-gap{align-items:center;gap:.5rem;display:flex}.text-center-muted{text-align:center;color:var(--text-muted);padding:2rem}.student-form-grid{background:var(--surface);border-radius:var(--radius-lg);border:2px solid var(--primary);grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:2rem;padding:1.5rem;animation:.3s ease-out slideDown;display:grid}.student-form-grid .form-group{margin:0}.student-form-grid .full-span{grid-column:span 2}.student-details-panel{background:var(--background);border-left:4px solid var(--primary);border-radius:14px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:1rem;padding:1.25rem;animation:.2s ease-out slideDown;display:grid}.toast.success{border-left:4px solid var(--primary)}.detail-item{color:var(--text-main);align-items:center;gap:.75rem;font-size:.85rem;display:flex}.detail-item svg{color:var(--primary);opacity:.7}.detail-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem;font-size:.7rem;font-weight:700;display:block}.student-profile-content{padding:.5rem}.profile-header{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;margin-bottom:2.5rem;display:flex}.profile-avatar.large{background:var(--surface);width:100px;height:100px;color:var(--primary);box-shadow:var(--shadow-lg);border:2px solid var(--primary);border-radius:30px;justify-content:center;align-items:center;display:flex}.profile-name{color:var(--text-main);letter-spacing:-.02em;font-size:1.8rem;font-weight:900}.profile-grid{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.detail-card{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border);align-items:center;gap:1.25rem;padding:1.25rem;transition:all .2s;display:flex}.detail-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.detail-icon{color:var(--primary);opacity:.8;flex-shrink:0}.detail-body{flex-direction:column;gap:.25rem;display:flex}.detail-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.65rem;font-weight:800}.detail-value{color:var(--text-main);word-break:break-all;font-size:.95rem;font-weight:700}.profile-grid .form-group{grid-column:span 1}.profile-grid .full-span{grid-column:span 2}.expand-btn{color:#2563eb;cursor:pointer;background:#f0f9ff;border:1.5px solid #bae6fd;border-radius:10px;justify-content:center;align-items:center;margin-left:.5rem;padding:.4rem;transition:all .2s;display:flex}.expand-btn:hover{color:#1d4ed8;background:#e0f2fe;border-color:#7dd3fc;transform:translateY(-1px)}@media (width<=600px){.modal-overlay{justify-content:center;align-items:center;padding:1rem;display:flex;overflow-y:auto}.modal-content{width:98vw;max-height:95vh;margin:auto}.modal-header{padding:1.25rem}.modal-header h3{font-size:1.1rem}.modal-body{padding:1rem}.student-form-grid,.profile-grid{gap:.75rem;grid-template-columns:1fr!important}.full-span{grid-column:span 1!important}.student-row{flex-direction:column;align-items:flex-start;gap:1rem}.student-row .align-center-gap{justify-content:space-between;align-items:center;width:100%}.icon-actions{flex-direction:column;align-items:center;gap:.5rem;display:flex}.expand-btn{margin:0!important}.btn-group,.modal-footer{flex-direction:column-reverse;gap:.5rem;width:100%;padding:1rem!important}.btn-group .btn-primary,.btn-group .btn-secondary,.btn-group .btn-danger,.modal-footer button{width:100%!important;margin:0!important;padding:.75rem 1rem!important;font-size:.8rem!important}.profile-header{margin-bottom:1.5rem}.profile-name{font-size:1.4rem}.profile-avatar.large{width:80px;height:80px}.form-input,.form-select{padding:.75rem!important;font-size:16px!important}}.modal-overlay.exiting{animation:.3s forwards fadeOut}.modal-content.exiting{animation:.3s cubic-bezier(.4,0,1,1) forwards modalSlideDown}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(40px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes modalSlideDown{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(20px)scale(.95)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}
