*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#eef1f6;--bg-soft:#f6f8fb;--card:#fff;--navy:#1e2a78;--navy-deep:#16205c;--navy-light:#2d3a8c;--accent:#2563eb;--accent-light:#3b82f6;--gold:#c79a3a;--gold-light:#e3c061;--text:#1e293b;--text-dim:#64748b;--text-soft:#94a3b8;--ok:#16a34a;--err:#dc2626;--orange:#ea7a1d;--line:#e2e8f0;--shadow-sm:0 1px 3px #1e2a7814;--shadow-md:0 6px 20px #1e2a781a;--shadow-lg:0 14px 40px #1e2a7829;--radius:16px}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;overflow:hidden}h1,h2,h3,.serif{font-family:Georgia,Times New Roman,serif}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.96)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.login-screen{background:linear-gradient(135deg,#1e2a78 0%,#16205c 60%,#0f1845 100%);justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background:var(--card);width:400px;box-shadow:var(--shadow-lg);border-top:4px solid var(--gold);border-radius:22px;flex-direction:column;align-items:center;padding:44px 38px;animation:.5s popIn;display:flex}.login-logo{background:linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);letter-spacing:1px;color:#fff;border-radius:20px;justify-content:center;align-items:center;width:84px;height:84px;font-size:24px;font-weight:800;display:flex;box-shadow:0 10px 30px #2563eb66}.login-title{color:var(--navy);margin-top:18px;font-size:28px;font-weight:800}.login-subtitle{color:var(--gold);letter-spacing:.3px;margin-top:4px;margin-bottom:26px;font-family:Segoe UI,sans-serif;font-size:13px;font-weight:700}.login-field{width:100%;margin-bottom:16px}.login-field label{color:var(--text-dim);margin-bottom:7px;font-size:13px;font-weight:600;display:block}.login-field input{border:1.5px solid var(--line);background:var(--bg-soft);width:100%;color:var(--text);border-radius:11px;outline:none;padding:12px 15px;font-size:14px;transition:all .18s}.login-field input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #2563eb1f}.login-error{width:100%;color:var(--err);text-align:center;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:14px;padding:10px 12px;font-size:13px;animation:.25s fadeIn}.login-button{background:linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);color:#fff;cursor:pointer;border:none;border-radius:11px;width:100%;padding:13px;font-size:15px;font-weight:700;transition:all .2s;box-shadow:0 6px 18px #2563eb4d}.login-button:hover{transform:translateY(-2px);box-shadow:0 10px 26px #2563eb6b}.login-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-footer{color:var(--text-soft);margin-top:24px;font-size:12px}.app-shell{height:100vh;display:flex;overflow:hidden}.sidebar{background:linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);flex-direction:column;width:256px;min-width:256px;display:flex;overflow-y:auto;box-shadow:4px 0 24px #1e2a782e}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.sidebar-brand{border-bottom:1px solid #ffffff1a;align-items:center;gap:13px;padding:22px 20px;display:flex}.sidebar-logo{background:linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 100%);width:46px;height:46px;color:var(--navy-deep);border-radius:13px;justify-content:center;align-items:center;font-size:14px;font-weight:800;display:flex;box-shadow:0 4px 16px #c79a3a66}.sidebar-brand-title{color:#fff;font-family:Georgia,serif;font-size:17px;font-weight:800}.sidebar-brand-sub{color:#ffffff8c;font-size:11px}.sidebar-nav{flex:1;padding:14px 12px}.sidebar-group{margin-bottom:18px}.sidebar-group-title{text-transform:uppercase;letter-spacing:1.2px;color:#fff6;padding:6px 12px;font-size:10px;font-weight:700}.sidebar-item{text-align:left;color:#ffffffb8;cursor:pointer;background:0 0;border:none;border-radius:10px;width:100%;margin-bottom:3px;padding:10px 14px;font-size:13.5px;transition:all .16s;display:block;position:relative}.sidebar-item:hover{color:#fff;background:#ffffff14;transform:translate(3px)}.sidebar-item.active{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-light) 100%);color:#fff;font-weight:700;box-shadow:0 6px 18px #2563eb66}.sidebar-item.active:before{content:"";background:var(--gold);border-radius:0 3px 3px 0;width:4px;height:60%;position:absolute;top:50%;left:-12px;transform:translateY(-50%)}.app-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.app-header{background:var(--card);border-bottom:1px solid var(--line);height:68px;min-height:68px;box-shadow:var(--shadow-sm);z-index:5;justify-content:space-between;align-items:center;padding:0 28px;display:flex}.app-header-title{color:var(--navy);font-family:Georgia,serif;font-size:19px;font-weight:800}.app-header-user{align-items:center;gap:14px;display:flex}.user-info{text-align:right}.user-name{color:var(--text);font-size:13.5px;font-weight:700}.user-role{color:var(--gold);font-size:11.5px;font-weight:600}.user-avatar{background:linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:13px;font-weight:700;display:flex;box-shadow:0 4px 12px #2563eb4d}.logout-btn{color:var(--err);cursor:pointer;background:#fef2f2;border:1.5px solid #fecaca;border-radius:10px;padding:9px 16px;font-size:13px;font-weight:600;transition:all .16s}.logout-btn:hover{background:var(--err);color:#fff;border-color:var(--err)}.app-content{background:var(--bg);flex:1;overflow-y:auto}.app-content::-webkit-scrollbar{width:9px}.app-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:5px}.page{padding:30px 34px;animation:.4s fadeUp}.page-header{margin-bottom:26px}.page-title{color:var(--navy);font-size:27px;font-weight:800}.page-subtitle{color:var(--text-dim);margin-top:5px;font-size:14px}.kpi-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px;display:grid}.kpi-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-md);border-left:5px solid var(--accent);padding:22px 24px;transition:all .22s;animation:.5s backwards fadeUp}.kpi-card:first-child{border-left-color:var(--ok);animation-delay:50ms}.kpi-card:nth-child(2){border-left-color:var(--accent);animation-delay:.1s}.kpi-card:nth-child(3){border-left-color:var(--err);animation-delay:.15s}.kpi-card:nth-child(4){border-left-color:var(--gold);animation-delay:.2s}.kpi-card:nth-child(5){border-left-color:var(--orange);animation-delay:.25s}.kpi-card:nth-child(6){border-left-color:var(--navy);animation-delay:.3s}.kpi-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-5px)}.kpi-label{color:var(--text-dim);margin-bottom:12px;font-size:13px;font-weight:500}.kpi-value{color:var(--navy);font-family:Georgia,serif;font-size:30px;font-weight:800}.kpi-hint{color:var(--text-soft);margin-top:8px;font-size:12px}.dash-placeholder{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-md);color:var(--text-dim);border-left:5px solid var(--gold);padding:26px;font-size:14px;line-height:1.7;animation:.6s .2s backwards fadeUp}.dash-placeholder strong{color:var(--navy)}.btn-primary{background:linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:11px;padding:11px 20px;font-size:14px;font-weight:700;transition:all .2s;box-shadow:0 6px 18px #2563eb4d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 26px #2563eb6b}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-sm{cursor:pointer;border:none;border-radius:8px;padding:6px 13px;font-size:12.5px;font-weight:600;transition:all .16s}.btn-green{color:var(--ok);background:#dcfce7}.btn-green:hover{background:var(--ok);color:#fff}.btn-red{color:var(--err);background:#fee2e2}.btn-red:hover{background:var(--err);color:#fff}.btn-blue{color:var(--accent);background:#dbeafe}.btn-blue:hover{background:var(--accent);color:#fff}.btn-gold{color:var(--gold);background:#fdf3d7}.btn-gold:hover{background:var(--gold);color:#fff}.form-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-md);border-left:5px solid var(--gold);margin-bottom:22px;padding:24px 26px;animation:.35s fadeUp}.form-card-title{color:var(--navy);margin-bottom:18px;font-family:Georgia,serif;font-size:17px;font-weight:700}.form-row{flex-wrap:wrap;gap:16px;margin-bottom:18px;display:flex}.form-group{flex:1;min-width:180px}.form-group label{color:var(--text-dim);margin-bottom:7px;font-size:13px;font-weight:600;display:block}.form-group input,.form-group select{border:1.5px solid var(--line);background:var(--bg-soft);width:100%;color:var(--text);border-radius:10px;outline:none;padding:11px 14px;font-family:inherit;font-size:14px;transition:all .18s}.form-group input:focus,.form-group select:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #2563eb1f}.table-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-md);border-left:5px solid var(--accent);animation:.45s .1s backwards fadeUp;overflow:hidden}.data-table{border-collapse:collapse;width:100%}.data-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.6px;color:var(--text-soft);border-bottom:2px solid var(--line);background:var(--bg-soft);padding:16px 20px;font-size:11.5px;font-weight:700}.data-table tbody td{color:var(--text);border-bottom:1px solid var(--line);padding:15px 20px;font-size:14px}.data-table tbody tr{transition:background .14s}.data-table tbody tr:hover{background:var(--bg-soft)}.data-table tbody tr:last-child td{border-bottom:none}.table-empty{text-align:center;color:var(--text-soft);font-style:italic;padding:30px!important}.table-actions{flex-wrap:wrap;gap:8px;display:flex}.badge{border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700;display:inline-block}.badge-ok{color:var(--ok);background:#dcfce7}.badge-err{color:var(--err);background:#fee2e2}.badge-gray{color:var(--text-dim);background:#e2e8f0}.badge-gold{color:var(--gold);background:#fdf3d7}.badge-blue{color:var(--accent);background:#dbeafe}.section-chip{color:var(--navy);background:linear-gradient(135deg,#eef2ff 0%,#e0e7ff 100%);border:1px solid #c7d2fe;border-radius:999px;align-items:center;gap:8px;padding:7px 8px 7px 15px;font-size:13.5px;font-weight:600;display:inline-flex}.chip-x{width:20px;height:20px;color:var(--navy);cursor:pointer;background:#1e2a781f;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:12px;line-height:1;transition:all .15s;display:flex}.chip-x:hover{background:var(--err);color:#fff}.app-header-right{align-items:center;gap:22px;display:flex}.year-selector{border:1.5px solid var(--gold);background:linear-gradient(135deg,#fdf6e3 0%,#faedd0 100%);border-radius:11px;flex-direction:column;gap:2px;padding:6px 14px;display:flex}.year-selector-label{text-transform:uppercase;letter-spacing:.8px;color:var(--gold);font-size:9.5px;font-weight:700}.year-selector select{color:var(--navy);cursor:pointer;background:0 0;border:none;outline:none;font-family:Georgia,serif;font-size:14px;font-weight:700}.year-selector-empty{color:var(--err);background:#fef2f2;border:1px solid #fecaca;border-radius:11px;padding:8px 14px;font-size:12.5px;font-weight:600}.breadcrumb{align-items:center;gap:10px;margin-bottom:18px;font-size:14px;display:flex}.crumb{cursor:pointer;color:var(--text-dim);border-radius:7px;padding:4px 10px;font-weight:600;transition:all .15s}.crumb:hover{background:var(--bg-soft);color:var(--navy)}.crumb.active{color:var(--navy);background:#eef2ff}.crumb-sep{color:var(--text-soft);font-size:16px}.add-bar{gap:12px;max-width:560px;margin-bottom:24px;display:flex}.add-bar input{border:1.5px solid var(--line);background:var(--card);box-shadow:var(--shadow-sm);border-radius:11px;outline:none;flex:1;padding:12px 16px;font-size:14px;transition:all .18s}.add-bar input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1f}.card-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px;display:grid}.folder-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-md);cursor:pointer;border-bottom:4px solid #0000;flex-direction:column;align-items:center;gap:8px;padding:24px 20px;transition:all .22s;animation:.35s backwards popIn;display:flex;position:relative}.folder-card:hover{box-shadow:var(--shadow-lg);border-bottom-color:var(--gold);transform:translateY(-6px)}.folder-icon{color:#fff;letter-spacing:.5px;width:58px;height:58px;box-shadow:var(--shadow-sm);border-radius:15px;justify-content:center;align-items:center;font-size:14px;font-weight:800;display:flex}.folder-section{background:linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%)}.folder-class{background:linear-gradient(135deg,#0891b2 0%,#06b6d4 100%)}.folder-room{background:linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 100%);color:var(--navy-deep)}.folder-name{color:var(--navy);text-align:center;font-family:Georgia,serif;font-size:16px;font-weight:700}.folder-meta{color:var(--text-dim);text-align:center;font-size:12px}.folder-del{width:22px;height:22px;color:var(--text-soft);cursor:pointer;opacity:0;background:#f1f5f9;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:12px;transition:all .15s;display:flex;position:absolute;top:10px;right:10px}.folder-card:hover .folder-del{opacity:1}.folder-del:hover{background:var(--err);color:#fff}.folder-fees-btn{border:1px solid var(--gold);color:var(--gold);cursor:pointer;background:#fdf6e3;border-radius:8px;margin-top:6px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .15s}.folder-fees-btn:hover{background:var(--gold);color:#fff}.grid-empty{text-align:center;color:var(--text-soft);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);grid-column:1/-1;padding:40px;font-style:italic}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d14248c;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-card{background:var(--card);width:560px;max-width:92vw;max-height:85vh;box-shadow:var(--shadow-lg);border-top:4px solid var(--gold);border-radius:18px;padding:26px;animation:.3s popIn;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h3{color:var(--navy);font-family:Georgia,serif;font-size:19px}.modal-close{width:32px;height:32px;color:var(--text-dim);cursor:pointer;background:#f1f5f9;border:none;border-radius:50%;font-size:15px;transition:all .15s}.modal-close:hover{background:var(--err);color:#fff}.fee-add-row{gap:10px;display:flex}.fee-add-row input,.fee-add-row select{border:1.5px solid var(--line);background:var(--bg-soft);border-radius:9px;outline:none;padding:10px 13px;font-size:13.5px}.fee-add-row input:first-child{flex:1}.fee-add-row input[type=number]{width:110px}.modal-textarea{border:1.5px solid var(--line);background:var(--bg-soft);width:100%;color:var(--text);resize:vertical;border-radius:10px;outline:none;padding:11px 14px;font-family:inherit;font-size:14px;transition:all .18s}.modal-textarea:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #2563eb1f}.btn-gray-cancel{color:var(--text-dim);background:#f1f5f9;border-radius:11px;padding:11px 20px}.btn-gray-cancel:hover{background:#e2e8f0}.folder-desc{color:var(--text-soft);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11.5px;font-style:italic;overflow:hidden}.student-photo{object-fit:cover;border:2px solid var(--line);width:44px;height:44px;box-shadow:var(--shadow-sm);border-radius:50%}.student-photo-empty{background:linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:13px;font-weight:700;display:flex}.modal-large{width:680px}.photo-upload{flex-direction:column;align-items:center;gap:10px;min-width:120px;display:flex}.photo-upload-preview{object-fit:cover;border:2px solid var(--line);width:110px;height:110px;box-shadow:var(--shadow-sm);border-radius:14px}.photo-upload-placeholder{background:var(--bg-soft);border:2px dashed var(--line);width:110px;height:110px;color:var(--text-soft);border-radius:14px;justify-content:center;align-items:center;font-size:13px;display:flex}.photo-upload-btn{border:1.5px solid var(--accent);color:var(--accent);cursor:pointer;background:#eff6ff;border-radius:9px;padding:7px 16px;font-size:13px;font-weight:600;transition:all .15s}.photo-upload-btn:hover{background:var(--accent);color:#fff}.folder-student{cursor:default}.folder-student:hover{border-bottom-color:var(--accent);transform:translateY(-4px)}.student-card-photo{object-fit:cover;border:3px solid var(--line);width:64px;height:64px;box-shadow:var(--shadow-sm);border-radius:50%}.student-card-photo-empty{background:linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:18px;font-weight:700;display:flex}.cashier-search{max-width:520px;margin-bottom:22px;position:relative}.cashier-search input{border:1.5px solid var(--line);background:var(--card);width:100%;box-shadow:var(--shadow-sm);border-radius:12px;outline:none;padding:14px 18px;font-size:15px;transition:all .18s}.cashier-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1f}.search-dropdown{background:var(--card);box-shadow:var(--shadow-lg);z-index:20;border-radius:12px;max-height:320px;margin-top:6px;animation:.2s fadeUp;position:absolute;top:100%;left:0;right:0;overflow:hidden auto}.search-item{cursor:pointer;border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 16px;transition:background .14s;display:flex}.search-item:last-child{border-bottom:none}.search-item:hover{background:var(--bg-soft)}.student-banner{background:linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);border-radius:var(--radius);box-shadow:var(--shadow-md);color:#fff;align-items:center;gap:18px;margin-bottom:24px;padding:22px 26px;animation:.4s fadeUp;display:flex}.student-banner-photo{object-fit:cover;border:3px solid #fff6;border-radius:50%;width:72px;height:72px}.student-banner-photo-empty{color:#fff;background:#fff3;border:3px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:24px;font-weight:700;display:flex}.student-banner-name{font-family:Georgia,serif;font-size:22px;font-weight:800}.student-banner-mat{opacity:.85;margin-top:2px;font-size:13px}.student-banner-class{color:var(--gold-light);margin-top:6px;font-size:13.5px;font-weight:600}.receipt-banner{color:var(--ok);background:#dcfce7;border:1px solid #86efac;border-radius:11px;justify-content:space-between;align-items:center;margin-bottom:18px;padding:12px 18px;font-size:14px;animation:.3s fadeUp;display:flex}.receipt-banner-x{color:var(--ok);cursor:pointer;background:0 0;border:none;font-size:16px;font-weight:700}.receipt-preview{background:var(--card);border:2px dashed var(--line);text-align:center;border-radius:14px;padding:26px 24px;position:relative}.receipt-logo{background:linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);color:#fff;border-radius:13px;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 12px;font-size:15px;font-weight:800;display:flex}.receipt-title{color:var(--navy);font-family:Georgia,serif;font-size:16px}.receipt-sub{color:var(--text-dim);margin-bottom:12px;font-size:12px}.receipt-number{color:var(--gold);letter-spacing:1px;background:#fdf6e3;border-radius:8px;margin-bottom:16px;padding:8px;font-size:15px;font-weight:800}.receipt-line{border-bottom:1px solid var(--line);justify-content:space-between;padding:8px 0;font-size:13.5px;display:flex}.receipt-line span{color:var(--text-dim)}.receipt-total{background:var(--navy);color:#fff;border-radius:10px;justify-content:space-between;align-items:center;margin-top:14px;padding:14px;display:flex}.receipt-total span{opacity:.85;font-size:13px}.receipt-total strong{font-family:Georgia,serif;font-size:20px}.receipt-cancelled{color:#dc262659;letter-spacing:3px;border:4px solid #dc262659;border-radius:10px;padding:6px 24px;font-size:38px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-18deg)}.sidebar-logo-img{object-fit:cover;object-fit:cover;background:#fff;border-radius:13px;width:46px;min-width:46px;height:46px;box-shadow:0 4px 16px #00000040}.store-tabs{background:var(--card);box-shadow:var(--shadow-sm);border-radius:12px;gap:6px;width:fit-content;margin-bottom:22px;padding:5px;display:flex}.store-tab{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:9px;padding:9px 22px;font-size:14px;font-weight:600;transition:all .16s}.store-tab:hover{color:var(--navy)}.store-tab.active{background:linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);color:#fff;box-shadow:0 4px 12px #2563eb4d}.cart-total{background:var(--navy);color:#fff;border-radius:10px;justify-content:space-between;align-items:center;margin-top:16px;padding:14px 16px;display:flex}.cart-total span{opacity:.85;font-size:14px}.cart-total strong{font-family:Georgia,serif;font-size:22px}.selected-client{color:var(--navy);background:linear-gradient(135deg,#eef2ff 0%,#e0e7ff 100%);border:1px solid #c7d2fe;border-radius:10px;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.selected-client .chip-x{margin-left:auto}.perm-table th:not(:first-child),.perm-table td:not(:first-child){text-align:center;width:90px}.perm-table input[type=checkbox]{cursor:pointer;width:18px;height:18px;accent-color:var(--accent)}.reports-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;display:grid}.report-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-md);border-left:4px solid var(--accent);flex-direction:column;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden}.report-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.report-card-body{flex:1;padding:20px 20px 12px}.report-card-title{color:var(--navy);margin-bottom:6px;font-family:Georgia,serif;font-size:16px}.report-card-desc{color:var(--text-dim);margin-bottom:12px;font-size:13px;line-height:1.5}.report-card-actions{background:var(--bg-soft);border-top:1px solid var(--line);gap:10px;padding:14px 20px;display:flex}.report-card-actions button{flex:1}.program-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-md);cursor:pointer;border-top:4px solid var(--accent);flex-direction:column;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden}.program-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.program-card-head{justify-content:space-between;align-items:flex-start;gap:10px;padding:18px 18px 10px;display:flex}.program-card-head h3{color:var(--navy);font-family:Georgia,serif;font-size:16px;line-height:1.3}.program-card-body{justify-content:space-between;align-items:center;padding:0 18px 14px;display:flex}.program-meta{color:var(--text-dim);font-size:13px}.program-cost{color:var(--accent);font-family:Georgia,serif;font-size:18px;font-weight:800}.program-card-stats{border-top:1px solid var(--line);background:var(--bg-soft);display:flex}.program-card-stats>div{text-align:center;border-right:1px solid var(--line);flex:1;padding:12px 6px}.program-card-stats>div:last-child{border-right:none}.program-card-stats strong{color:var(--navy);font-size:18px;display:block}.program-card-stats span{color:var(--text-soft);text-transform:uppercase;letter-spacing:.3px;font-size:11px}.dev-tag{text-align:center;color:var(--text-soft);letter-spacing:.5px;opacity:.7;padding:18px 0 12px;font-family:Segoe UI,Arial,sans-serif;font-size:11px}.dev-tag strong{color:var(--navy);font-weight:700}.smart-greeting{flex-direction:column;align-items:flex-start;margin-right:auto;padding-left:18px;display:flex}.greeting-text{color:var(--navy);font-family:Georgia,serif;font-size:15px;font-weight:700}.greeting-motivation{color:var(--text-soft);margin-top:2px;font-size:12px;font-style:italic}.dash-welcome{background:linear-gradient(135deg, var(--navy), var(--accent));color:#fff;border-radius:var(--radius);margin-bottom:24px;padding:28px 32px;position:relative;overflow:hidden}.dash-welcome h2{margin:0 0 6px;font-family:Georgia,serif;font-size:22px}.dash-welcome p{opacity:.85;margin:0;font-size:14px}.dash-welcome:after{content:"";background:#ffffff14;border-radius:50%;width:120px;height:120px;position:absolute;top:-30px;right:-30px}.smart-notif{z-index:9999;pointer-events:none;max-width:380px;position:fixed}.notif-top-right{top:80px;right:24px}.notif-bottom-right{bottom:32px;right:24px}.notif-bottom-left{bottom:32px;left:300px}.notif-top-center{top:80px;left:50%;transform:translate(-50%)}.smart-notif-content{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e2a78eb;border-radius:16px;align-items:center;gap:10px;padding:14px 20px;font-size:14px;line-height:1.5;display:flex;box-shadow:0 8px 32px #1e2a7840,0 0 0 1px #ffffff1a}.smart-notif-icon{flex-shrink:0;font-size:20px}.smart-notif-text{font-family:Segoe UI,Arial,sans-serif}.notif-cloud{animation:.8s ease-out forwards cloudIn}.notif-cloud.notif-exit{animation:.8s ease-in forwards cloudOut}@keyframes cloudIn{0%{opacity:0;filter:blur(4px);transform:translateY(-20px)scale(.9)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes cloudOut{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;filter:blur(6px);transform:translateY(-30px)scale(.85)}}.notif-slide-right{animation:.6s ease-out forwards slideRight}.notif-slide-right.notif-exit{animation:.6s ease-in forwards slideRightOut}@keyframes slideRight{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes slideRightOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100px)}}.notif-slide-left{animation:.6s ease-out forwards slideLeft}.notif-slide-left.notif-exit{animation:.6s ease-in forwards slideLeftOut}@keyframes slideLeft{0%{opacity:0;transform:translate(-100px)}to{opacity:1;transform:translate(0)}}@keyframes slideLeftOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100px)}}.notif-float-up{animation:.7s ease-out forwards floatUp}.notif-float-up.notif-exit{animation:.7s ease-in forwards floatUpOut}@keyframes floatUp{0%{opacity:0;transform:translateY(40px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes floatUpOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(40px)scale(.9)}}.notif-fade-pop{animation:.5s ease-out forwards fadePop}.notif-fade-pop.notif-exit{animation:.5s ease-in forwards fadePopOut}@keyframes fadePop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes fadePopOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.7)}}
