*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--green-900: #1B5E20;--green-800: #2E7D32;--green-700: #388E3C;--green-600: #43A047;--green-500: #4CAF50;--green-400: #66BB6A;--green-300: #A5D6A7;--green-100: #E8F5E9;--green-50: #F1F8E9;--orange-700: #E65100;--orange-600: #EF6C00;--orange-500: #FF8F00;--orange-400: #FFA726;--orange-100: #FFF3E0;--sky-100: #E3F2FD;--white: #FFFFFF;--gray-50: #FAFAFA;--gray-100: #F5F5F5;--gray-200: #EEEEEE;--gray-300: #E0E0E0;--gray-500: #9E9E9E;--gray-700: #616161;--gray-900: #212121;--red-500: #F44336;--red-100: #FFEBEE;--color-primary: var(--green-600);--color-primary-dark: var(--green-800);--color-primary-light: var(--green-300);--color-secondary: var(--orange-500);--color-secondary-light: var(--orange-400);--color-success: var(--green-500);--color-warning: var(--orange-500);--color-danger: var(--red-500);--color-bg: var(--gray-100);--color-border: var(--gray-200);--color-text: var(--gray-900);--color-text-light: var(--gray-500);--radius-sm: 10px;--radius: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(46,125,50,.08);--shadow: 0 4px 16px rgba(46,125,50,.12);--shadow-md: 0 8px 32px rgba(46,125,50,.16);--shadow-lg: 0 16px 48px rgba(46,125,50,.2);--shadow-orange: 0 4px 16px rgba(255,143,0,.25);--shadow-green: 0 4px 16px rgba(76,175,80,.3);--transition: all .2s cubic-bezier(.4, 0, .2, 1);--transition-bounce: all .3s cubic-bezier(.34, 1.56, .64, 1)}body{font-family:Poppins,sans-serif;background:var(--green-50);color:var(--gray-900);min-height:100vh;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}button{font-family:Poppins,sans-serif;cursor:pointer;border:none;outline:none}input,select,textarea{font-family:Poppins,sans-serif;outline:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:var(--radius-full);font-size:.875rem;font-weight:600;transition:var(--transition-bounce);cursor:pointer;border:none;white-space:nowrap}.btn-primary{background:linear-gradient(135deg,var(--green-600),var(--green-500));color:#fff;box-shadow:var(--shadow-green)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #4caf5066}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:linear-gradient(135deg,var(--orange-500),var(--orange-400));color:#fff;box-shadow:var(--shadow-orange)}.btn-secondary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #ff8f0066}.btn-outline{background:white;color:var(--green-700);border:2px solid var(--green-300);box-shadow:var(--shadow-sm)}.btn-outline:hover:not(:disabled){border-color:var(--green-500);background:var(--green-100);transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg,#EF5350,#F44336);color:#fff;box-shadow:0 4px 16px #f4433640}.btn-danger:hover:not(:disabled){transform:translateY(-2px)}.btn-ghost{background:transparent;color:var(--green-700)}.btn-ghost:hover{background:var(--green-100)}.btn-sm{padding:6px 14px;font-size:.8rem}.btn-lg{padding:14px 32px;font-size:1rem}.card{background:white;border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:24px;border:1px solid rgba(165,214,167,.3)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 12px;border-radius:var(--radius-full);font-size:.72rem;font-weight:700;letter-spacing:.3px}.badge-green{background:var(--green-100);color:var(--green-800)}.badge-orange{background:var(--orange-100);color:var(--orange-600)}.badge-red{background:var(--red-100);color:var(--red-500)}.badge-gray{background:var(--gray-100);color:var(--gray-700)}.badge-sky{background:var(--sky-100);color:#1565c0}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:.8rem;font-weight:600;color:var(--green-900);letter-spacing:.3px}.form-control{width:100%;padding:11px 16px;border:2px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.875rem;transition:var(--transition);background:var(--gray-50);color:var(--gray-900)}.form-control:focus{border-color:var(--green-500);background:white;box-shadow:0 0 0 4px #4caf501f}.table-container{overflow-x:auto;border-radius:var(--radius)}table{width:100%;border-collapse:collapse}thead tr{background:linear-gradient(135deg,var(--green-900),var(--green-700))}th{padding:13px 16px;text-align:left;font-size:.78rem;font-weight:700;color:#fff;letter-spacing:.5px;white-space:nowrap}th:first-child{border-radius:12px 0 0 12px}th:last-child{border-radius:0 12px 12px 0}td{padding:12px 16px;border-bottom:1px solid var(--gray-100);font-size:.84rem}tbody tr{transition:var(--transition)}tbody tr:hover td{background:var(--green-50)}tbody tr:last-child td{border-bottom:none}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.w-full{width:100%}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.p-4{padding:16px}.text-right{text-align:right}.text-center{text-align:center}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-green{color:var(--green-700)}.text-orange{color:var(--orange-500)}.text-red{color:var(--red-500)}.text-gray{color:var(--gray-500)}.page-title{font-size:1.5rem;font-weight:800;color:var(--green-900);margin-bottom:24px;display:flex;align-items:center;gap:10px}.section-title{font-size:.95rem;font-weight:700;color:var(--green-800);margin-bottom:16px}.divider{height:1px;background:var(--gray-100);margin:16px 0}.grid{display:grid}.grid-2{grid-template-columns:repeat(2,1fr);gap:16px}.grid-3{grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{grid-template-columns:repeat(4,1fr);gap:16px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--green-300);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--green-400)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(27,94,32,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-box{background:white;border-radius:var(--radius-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--gray-100)}.modal-header h3{font-size:1.05rem;font-weight:800;color:var(--green-900)}.modal-body{padding:20px 24px}.modal-footer{display:flex;gap:10px;justify-content:flex-end;padding:16px 24px;background:var(--gray-50);border-top:1px solid var(--gray-100);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.close-btn{width:32px;height:32px;border-radius:var(--radius-full);background:var(--gray-100);border:none;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition);color:var(--gray-700);flex-shrink:0}.close-btn:hover{background:var(--red-100);color:var(--red-500)}.toast{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast-item{padding:12px 20px;border-radius:var(--radius);color:#fff;font-size:.84rem;font-weight:600;box-shadow:var(--shadow-md);animation:toastIn .4s cubic-bezier(.34,1.56,.64,1);display:flex;align-items:center;gap:8px;min-width:240px}.toast-success{background:linear-gradient(135deg,var(--green-600),var(--green-500))}.toast-error{background:linear-gradient(135deg,#EF5350,#F44336)}.toast-warning{background:linear-gradient(135deg,var(--orange-500),var(--orange-400))}@keyframes toastIn{0%{transform:translate(120%) scale(.8);opacity:0}to{transform:translate(0) scale(1);opacity:1}}@media (max-width: 768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
