@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Montserrat:wght@600;700;800&display=swap";
:root{--color-primary:#006837;--color-primary-light:#008a4a;--color-primary-dark:#004d28;--color-primary-50:#0068370d;--color-primary-100:#0068371a;--color-primary-200:#00683733;--color-accent:gold;--color-accent-dark:#e6c200;--color-success:#22c55e;--color-danger:#ef4444;--color-warning:#f59e0b;--color-info:#3b82f6;--color-bg:#f0f7f3;--color-bg-card:#fff;--color-bg-glass:#fffc;--color-bg-sidebar:#004d28;--color-bg-sidebar-hover:#ffffff1a;--color-text-primary:#1a2e23;--color-text-secondary:#4d7060;--color-text-muted:#8aaa97;--color-text-on-dark:#f0f7f3;--color-text-on-primary:#fff;--color-border:#d1e8da;--color-border-focus:#006837;--shadow-sm:0 1px 3px #00683714, 0 1px 2px #0000000a;--shadow-md:0 4px 16px #0068371f, 0 2px 6px #0000000f;--shadow-lg:0 10px 40px #00683726, 0 4px 12px #00000014;--shadow-glow:0 0 20px #0068374d;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading:"Montserrat", "Inter", sans-serif;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--sidebar-width:260px;--header-height:68px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);color:var(--color-text-primary);background-color:var(--color-bg);min-height:100vh;line-height:1.6}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-primary-light)}.app-layout{min-height:100vh;display:flex}.main-content{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;display:flex}.page-content{padding:var(--space-xl);flex:1}.sidebar{width:var(--sidebar-width);background:var(--color-bg-sidebar);z-index:100;height:100vh;transition:transform var(--transition-base);flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.sidebar-brand{align-items:center;gap:var(--space-sm);padding:var(--space-lg);border-bottom:1px solid #ffffff1a;display:flex}.sidebar-brand-logo{background:var(--color-accent);border-radius:var(--radius-sm);width:40px;height:40px;font-family:var(--font-heading);color:var(--color-primary-dark);flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:800;display:flex}.sidebar-brand-text h1{font-family:var(--font-heading);color:var(--color-text-on-dark);font-size:14px;font-weight:700;line-height:1.2}.sidebar-brand-text span{color:#ffffff80;font-size:11px;font-weight:400}.sidebar-nav{padding:var(--space-md) 0;flex:1}.sidebar-section-label{letter-spacing:.1em;text-transform:uppercase;color:#ffffff59;padding:var(--space-sm) var(--space-lg);margin-top:var(--space-sm);font-size:10px;font-weight:600}.sidebar-link{align-items:center;gap:var(--space-sm);padding:10px var(--space-lg);color:#ffffffb3;transition:all var(--transition-fast);border-radius:0;font-size:14px;font-weight:500;display:flex;position:relative}.sidebar-link:hover{color:#fff;background:var(--color-bg-sidebar-hover)}.sidebar-link.active{color:#fff;background:#ffd70026}.sidebar-link.active:before{content:"";background:var(--color-accent);border-radius:0 2px 2px 0;width:3px;position:absolute;top:0;bottom:0;left:0}.sidebar-link svg{flex-shrink:0;width:18px;height:18px}.sidebar-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid #ffffff1a}.sidebar-user{align-items:center;gap:var(--space-sm);display:flex}.sidebar-user-avatar{border-radius:var(--radius-full);background:var(--color-primary-light);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:700;display:flex}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-info p{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.sidebar-user-info span{color:#ffffff80;text-transform:capitalize;font-size:11px}.sidebar-logout-btn{color:#ffffff80;border-radius:var(--radius-sm);transition:all var(--transition-fast);padding:4px;display:flex}.sidebar-logout-btn:hover{color:var(--color-danger);background:#ef44441a}.page-header{margin-bottom:var(--space-xl);justify-content:space-between;align-items:center;display:flex}.page-header-left h2{font-family:var(--font-heading);color:var(--color-text-primary);font-size:24px;font-weight:700}.page-header-left p{color:var(--color-text-secondary);margin-top:2px;font-size:14px}.card{background:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:var(--space-lg);transition:box-shadow var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-glass{background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px)}.stats-grid{gap:var(--space-md);margin-bottom:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat-card{background:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-border);padding:var(--space-lg);align-items:center;gap:var(--space-md);box-shadow:var(--shadow-sm);transition:all var(--transition-base);display:flex}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.stat-icon.green{background:var(--color-primary-100);color:var(--color-primary)}.stat-icon.gold{color:#b8860b;background:#ffd70026}.stat-icon.red{color:var(--color-danger);background:#ef44441a}.stat-icon.blue{color:var(--color-info);background:#3b82f61a}.stat-info p{color:var(--color-text-secondary);font-size:12px;font-weight:500}.stat-info h3{color:var(--color-text-primary);font-size:26px;font-weight:700;line-height:1.2}.btn{justify-content:center;align-items:center;gap:var(--space-xs);padding:10px var(--space-md);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;cursor:pointer;font-size:14px;font-weight:600;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff;border:2px solid var(--color-primary)}.btn-primary:hover{background:var(--color-primary-light);border-color:var(--color-primary-light);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-secondary{color:var(--color-primary);border:2px solid var(--color-primary);background:0 0}.btn-secondary:hover{background:var(--color-primary-50);transform:translateY(-1px)}.btn-danger{background:var(--color-danger);color:#fff;border:2px solid var(--color-danger)}.btn-danger:hover{background:#dc2626;border-color:#dc2626;transform:translateY(-1px)}.btn-success{background:var(--color-success);color:#fff;border:2px solid var(--color-success)}.btn-success:hover{background:#16a34a;border-color:#16a34a;transform:translateY(-1px)}.btn-ghost{color:var(--color-text-secondary);border:2px solid var(--color-border);background:0 0}.btn-ghost:hover{background:var(--color-bg);color:var(--color-text-primary)}.btn-sm{padding:6px var(--space-sm);font-size:12px}.btn-lg{padding:14px var(--space-xl);font-size:16px}.btn-icon{border-radius:var(--radius-sm);width:36px;height:36px;padding:8px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.form-group{gap:var(--space-xs);flex-direction:column;display:flex}.form-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:600}.form-control{border:1.5px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text-primary);background:var(--color-bg-card);transition:all var(--transition-fast);outline:none;padding:10px 14px;font-size:14px}.form-control:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-100)}.form-control::placeholder{color:var(--color-text-muted)}.form-control:disabled{background:var(--color-bg);opacity:.7}.form-grid{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.table-container{background:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow:hidden}.table-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.table-title{color:var(--color-text-primary);font-size:16px;font-weight:700}.table-wrapper{overflow-x:auto}table{border-collapse:collapse;width:100%}thead{background:var(--color-primary-50)}th{padding:12px var(--space-md);text-align:left;color:var(--color-primary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);white-space:nowrap;font-size:12px;font-weight:700}td{padding:14px var(--space-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border);vertical-align:middle;font-size:14px}tr:last-child td{border-bottom:none}tbody tr{transition:background var(--transition-fast)}tbody tr:hover{background:var(--color-primary-50)}.badge{border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-paid{color:#15803d;background:#22c55e1f}.badge-unpaid{color:#dc2626;background:#ef44441f}.badge-role-admin{color:#7c3aed;background:#8b5cf61f}.badge-role-student{background:var(--color-primary-100);color:var(--color-primary)}.badge-role-ncssc{color:#b8860b;background:#ffd70026}.badge-role-college_org{color:#2563eb;background:#3b82f61f}.badge-role-sub_org{color:#ea580c;background:#f973161f}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;padding:var(--space-md);animation:fadeIn var(--transition-fast) ease;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-bg-card);border-radius:var(--radius-xl);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);width:100%;max-width:540px;max-height:90vh;animation:slideUp var(--transition-base) ease;overflow-y:auto}.modal-header{padding:var(--space-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-header h3{font-family:var(--font-heading);color:var(--color-text-primary);font-size:18px;font-weight:700}.modal-body{padding:var(--space-lg);gap:var(--space-md);flex-direction:column;display:flex}.modal-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-border);justify-content:flex-end;gap:var(--space-sm);display:flex}.search-bar{align-items:center;gap:var(--space-sm);background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-full);transition:all var(--transition-fast);padding:8px 14px;display:flex}.search-bar:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-100);background:var(--color-bg-card)}.search-bar svg{color:var(--color-text-muted);flex-shrink:0}.search-bar input{color:var(--color-text-primary);background:0 0;border:none;outline:none;width:220px;font-size:14px}.alert{align-items:flex-start;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);font-size:14px;display:flex}.alert-error{color:var(--color-danger);background:#ef44441a;border:1px solid #ef444433}.alert-success{color:var(--color-success);background:#22c55e1a;border:1px solid #22c55e33}.alert-info{background:var(--color-primary-100);color:var(--color-primary);border:1px solid var(--color-primary-200)}.empty-state{text-align:center;padding:var(--space-3xl) var(--space-xl);color:var(--color-text-muted)}.empty-state svg{width:56px;height:56px;margin:0 auto var(--space-md);opacity:.4}.empty-state h4{color:var(--color-text-secondary);margin-bottom:var(--space-xs);font-size:16px;font-weight:600}.empty-state p{font-size:14px}.login-page{background:linear-gradient(135deg,#004d28 0%,#006837 40%,#008a4a 100%);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;background:radial-gradient(circle,#ffd70014 0%,#0000 70%);width:700px;height:700px;position:absolute;top:-50%;right:-20%}.login-page:after{content:"";pointer-events:none;background:radial-gradient(circle,#008a4a4d 0%,#0000 70%);width:500px;height:500px;position:absolute;bottom:-30%;left:-10%}.login-card-wrapper{z-index:10;width:100%;max-width:700px;padding:0 var(--space-xl)}.login-logo.centered{margin:0 auto 12px}.login-logo-text.centered{text-align:center}.login-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-xl);padding:var(--space-2xl);width:100%;box-shadow:var(--shadow-lg);background:linear-gradient(#fff,#fff) padding-box padding-box,linear-gradient(135deg,gold 0%,#006837 100%) border-box;border:2px solid #0000;animation:.5s slideUp}.login-card h2{font-family:var(--font-heading);color:var(--color-text-primary);margin-bottom:4px;font-size:26px;font-weight:800}.login-card>p{color:var(--color-text-secondary);margin-bottom:var(--space-xl);font-size:14px}.login-form{gap:var(--space-md);flex-direction:column;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse{animation:1.5s cubic-bezier(.4,0,.6,1) infinite pulse}.skeleton{background:linear-gradient(90deg, var(--color-border) 25%, #e8f4ed 50%, var(--color-border) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.flex{display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-col{flex-direction:column;display:flex}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.w-full{width:100%}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:13px}.font-bold{font-weight:700}.mt-md{margin-top:var(--space-md)}.mb-md{margin-bottom:var(--space-md)}.tabs-container{gap:var(--space-lg);flex-direction:column;display:flex}.tabs-list{gap:var(--space-xs);background:var(--color-border);border-radius:var(--radius-md);width:fit-content;padding:4px;display:flex}.tab-trigger{border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:all var(--transition-fast);padding:8px 24px;font-size:14px;font-weight:600}.tab-trigger:hover{color:var(--color-primary)}.tab-trigger.active{background:var(--color-bg-card);color:var(--color-primary);box-shadow:var(--shadow-sm)}.settings-card{max-width:600px}.tab-navigation{gap:var(--space-sm);border-bottom:1px solid var(--color-border);display:flex}.tab-button{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-md) var(--radius-md) 0 0;transition:all var(--transition-fast);align-items:center;gap:var(--space-xs);background:0 0;border:none;padding:12px 20px;font-size:14px;font-weight:600;display:flex;position:relative}.tab-button:hover{background:var(--color-primary-50);color:var(--color-primary)}.tab-button.active{background:var(--color-bg-card);color:var(--color-primary);border-bottom:2px solid var(--color-primary)}.notification-badge{background:var(--color-danger);color:#fff;border-radius:var(--radius-full);justify-content:center;align-items:center;min-width:16px;height:16px;padding:2px 6px;font-size:10px;font-weight:700;display:flex;position:absolute;top:6px;right:6px}.notifications-container{background:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden}.notifications-list{max-height:600px;overflow-y:auto}.notification-item{align-items:flex-start;gap:var(--space-md);padding:var(--space-md);border-bottom:1px solid var(--color-border);transition:all var(--transition-fast);display:flex;position:relative}.notification-item:hover{background:var(--color-primary-50)}.notification-item.unread{border-left:3px solid var(--color-accent);background:#ffd7000d}.notification-item:last-child{border-bottom:none}.notification-icon{border-radius:var(--radius-full);background:var(--color-bg);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:flex}.notification-content{flex:1;min-width:0}.notification-header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-xs);display:flex}.notification-header h4{color:var(--color-text-primary);margin:0;font-size:14px;font-weight:600;line-height:1.4}.notification-time{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;align-items:center;font-size:12px;display:flex}.notification-message{color:var(--color-text-secondary);margin:0;font-size:13px;line-height:1.5}.notification-dot{border-radius:var(--radius-full);background:var(--color-accent);flex-shrink:0;width:8px;height:8px;margin-top:6px}
