.card{background:#FFFFFF;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:22px;transition:transform .2s ease,box-shadow .2s ease}.card:hover{box-shadow:var(--shadow-md)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-family:var(--font-mono);font-size:11px;font-weight:500;white-space:nowrap}.badge-success{background:#ECFDF5;color:#065F46;border:1px solid #a7f3d0}.badge-warning{background:#FFFBEB;color:#92400E;border:1px solid #fde68a}.badge-danger{background:#FEF2F2;color:#991B1B;border:1px solid #fecaca}.badge-info{background:#DCFCE7;color:#14532D;border:1px solid #bbf7d0}.badge-gray{background:#F8FAFC;color:#475569;border:1px solid #e2e8f0}.badge-purple{background:#F5F3FF;color:#5B21B6;border:1px solid #ddd6fe}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 18px;border-radius:8px;cursor:pointer;font-family:var(--font-body);font-size:13.5px;font-weight:500;border:1px solid transparent;transition:all .18s cubic-bezier(.4,0,.2,1);line-height:1.2}.btn:active:not(:disabled){transform:scale(.97);filter:brightness(.96)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:#14532D;color:#FFFFFF!important;box-shadow:0 2px 6px rgba(20,83,45,.22)}.btn-primary,.btn-primary *,.btn-primary span,.btn-primary svg{color:#FFFFFF!important;stroke:#FFFFFF!important}.btn-primary:hover:not(:disabled){background:#0F3D21;transform:translateY(-1px);box-shadow:0 4px 12px rgba(20,83,45,.32);color:#FFFFFF!important}.btn-secondary{background:#FFFFFF;color:var(--text);border-color:var(--border);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}.btn-danger{background:#FEE2E2;color:#DC2626;border-color:#FECACA}.btn-danger:hover:not(:disabled){background:#FCA5A5}.btn-sm{padding:6px 12px;font-size:12px;border-radius:6px}.table-wrapper{background:#FFFFFF;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.data-table{width:100%;border-collapse:collapse;font-size:13.5px}.data-table th{background:#F8FAFC;border-bottom:1px solid var(--border);padding:12px 16px;text-align:left;font-family:var(--font-heading);font-weight:600;color:var(--text-sm);font-size:11px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.data-table td{padding:14px 16px;border-bottom:1px solid #f1f5f9;color:var(--text)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#FAFCFE}.form-group{margin-bottom:18px}.form-label{display:flex;align-items:center;gap:6px;font-family:var(--font-heading);font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.form-input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:14px;color:var(--text);background:#FFFFFF;transition:all .18s ease}.form-input:focus{border-color:#14532D;box-shadow:0 0 0 3px rgba(20,83,45,.15)}.form-select{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:14px;color:var(--text);background:#FFFFFF;cursor:pointer;transition:all .18s ease}.form-select:focus{border-color:#14532D;box-shadow:0 0 0 3px rgba(20,83,45,.15)}.form-error{color:var(--danger);font-size:12px;margin-top:4px;display:block}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.alert{display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:var(--radius-sm);margin-bottom:18px;font-size:13.5px;font-weight:500;line-height:1.5}.alert-danger{background:#FEF2F2;border:1px solid #fecaca;color:#DC2626}.alert-success{background:#ECFDF5;border:1px solid #a7f3d0;color:#065F46}.alert-info{background:#F0FDF4;border:1px solid #bbf7d0;color:#14532D}.alert-warning{background:#FFFBEB;border:1px solid #fde68a;color:#D97706}.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(2px);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s ease-out}.modal{background:#FFFFFF;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:540px;width:100%;padding:30px;animation:fadeInScale .25s cubic-bezier(.16,1,.3,1) both}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-title{font-family:var(--font-heading);font-size:17px;font-weight:600;color:var(--text)}.modal-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-sm);line-height:1;padding:4px;border-radius:4px}.modal-close:hover{background:#F1F5F9;color:var(--text)}.modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}@media (max-width:768px){.form-row,.form-row-3{grid-template-columns:1fr;gap:12px}.modal{padding:22px 18px}.table-wrapper{overflow-x:auto}}.badge-info-dark,.btn[style*="#0F3D21"],.btn[style*="#14532D"],.onboard-left,.shell-nav,[style*="#0F3D21"],[style*="#14532D"],[style*="background-color: #0F3D21"],[style*="background-color: #14532D"],[style*="background-color:#0F3D21"],[style*="background-color:#14532D"],[style*="background: #0F3D21"],[style*="background: #14532D"],[style*="background:#0F3D21"],[style*="background:#14532D"],button[style*="#0F3D21"],button[style*="#14532D"]{color:#FFFFFF!important}.onboard-left *,.shell-nav *,[style*="#0F3D21"] *,[style*="#14532D"] *,[style*="background-color: #0F3D21"] *,[style*="background-color: #14532D"] *,[style*="background-color:#0F3D21"] *,[style*="background-color:#14532D"] *,[style*="background: #0F3D21"] *,[style*="background: #14532D"] *,[style*="background:#0F3D21"] *,[style*="background:#14532D"] *{color:#FFFFFF!important;stroke:#FFFFFF!important}.btn-primary,.btn-primary *,.btn-primary span,.ch-btn-primary,.ch-btn-primary *,.ch-btn-primary span,.exec-btn-primary,.exec-btn-primary *,.exec-btn-primary span,.login-btn,.login-btn *,.login-btn span,.submit-btn,.submit-btn *,.submit-btn span,button[type=submit]:not(.btn-secondary):not(.btn-danger):not(.btn-ghost):not(.officer-tab-btn),button[type=submit]:not(.btn-secondary):not(.btn-danger):not(.btn-ghost):not(.officer-tab-btn) *{color:#FFFFFF!important}.btn-primary svg,.ch-btn-primary svg,.exec-btn-primary svg,.login-btn svg,.submit-btn svg{stroke:#FFFFFF!important}