:root{--primary: #0f172a;--primary-light: #1e293b;--accent: #3b82f6;--accent-hover: #2563eb;--background: #f8fafc;--surface: #ffffff;--text-main: #0f172a;--text-muted: #64748b;--border: #e2e8f0;--danger: #ef4444;--success: #22c55e;--radius: 8px;--shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--font-sans: "Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--background);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-.025em;color:var(--primary)}.app-container{max-width:1200px;margin:0 auto;padding:2rem;min-height:100vh}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1rem;border-bottom:1px solid var(--border);background-color:#006400;color:#fff}.brand{font-size:1.5rem;display:flex;align-items:center;gap:.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:var(--radius);font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s ease;border:none;gap:.5rem}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-light);box-shadow:0 4px 12px #0f172a33}.btn-accent{background-color:var(--accent);color:#fff}.btn-accent:hover{background-color:var(--accent-hover)}.btn-danger{background-color:transparent;color:var(--danger);border:1px solid var(--border)}.btn-danger:hover{background-color:#fef2f2;border-color:var(--danger)}.btn-outline{background-color:transparent;border:1px solid var(--border);color:var(--text-main)}.btn-outline:hover{background-color:var(--background);border-color:var(--text-muted)}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;margin-bottom:1rem}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:var(--text-main)}.form-input,.form-select{width:100%;padding:.625rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--background);color:var(--text-main);font-size:.875rem;transition:border-color .2s}.form-input:focus,.form-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #3b82f61a}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media(max-width:768px){.form-grid{grid-template-columns:1fr}}.table-container{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border)}.data-table{width:100%;border-collapse:collapse;background:var(--surface);font-size:.875rem}.data-table th,.data-table td{padding:1rem;text-align:left;border-bottom:1px solid var(--border)}.data-table th{background-color:var(--background);font-weight:600;color:var(--text-muted)}.data-table tr:hover{background-color:#f8fafc}.badge{display:inline-flex;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600}.badge-success{background-color:#dcfce7;color:#166534}.badge-danger{background-color:#fee2e2;color:#991b1b}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease}.modal-content{background:var(--surface);border-radius:var(--radius);width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp .3s ease}.modal-header{padding:1.5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:1.5rem}.modal-footer{padding:1.5rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:1rem}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:#f1f5f9}.login-card{width:100%;max-width:400px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
