*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f0f2f5;color:#1a1a2e;font-size:14px}a{cursor:pointer;color:#3b82f6;text-decoration:none}a:hover{text-decoration:underline}input,select,textarea{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;transition:border-color .2s}input:focus,select:focus{border-color:#3b82f6}input[type=checkbox]{width:auto}button{padding:8px 16px;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:opacity .2s,background .2s;font-family:inherit}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover:not(:disabled){background:#4b5563}.btn-success{background:#10b981;color:#fff}.btn-success:hover:not(:disabled){background:#059669}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-sm{padding:4px 10px;font-size:12px}.card{background:#fff;border-radius:10px;box-shadow:0 1px 4px #00000014;padding:24px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-weight:500;font-size:13px;color:#374151}.error-msg{color:#ef4444;font-size:12px}.global-error{color:#ef4444;font-size:13px;padding:8px 12px;background:#fef2f2;border-radius:6px}.global-success{color:#065f46;font-size:13px;padding:8px 12px;background:#d1fae5;border-radius:6px}table{width:100%;border-collapse:collapse}thead th{padding:10px 12px;text-align:left;background:#f8fafc;font-weight:600;font-size:12px;text-transform:uppercase;color:#6b7280;border-bottom:2px solid #e5e7eb}tbody tr{border-bottom:1px solid #f3f4f6;transition:background .1s}tbody tr:hover{background:#f9fafb}tbody td{padding:10px 12px}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600}.badge-green{background:#dcfce7;color:#166534}.badge-red{background:#fee2e2;color:#991b1b}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:#fff;border-radius:12px;width:100%;max-width:680px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb}.modal-header h2{font-size:18px}.modal-close{background:none;font-size:20px;color:#6b7280;padding:4px 8px}.modal-close:hover{background:#f3f4f6;border-radius:4px}.modal-body{padding:24px;display:flex;flex-direction:column;gap:16px}.modal-footer{padding:16px 24px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:10px}.navbar{background:#1e3a5f;color:#fff;padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 8px #00000026;position:sticky;top:0;z-index:50}.navbar-brand{font-size:18px;font-weight:700;color:#fff}.navbar-right{display:flex;align-items:center;gap:16px}.navbar-user{font-size:13px;color:#93c5fd}.navbar-logout{background:#ffffff1a;color:#fff;font-size:13px}.navbar-logout:hover{background:#fff3}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:#fff;border-radius:12px;padding:40px;width:100%;max-width:400px;box-shadow:0 4px 24px #0000001a}.login-card h1{font-size:26px;color:#1e3a5f;margin-bottom:4px}.login-card h2{font-size:16px;color:#6b7280;font-weight:400;margin-bottom:28px}.login-card form{display:flex;flex-direction:column;gap:16px}.login-card .footer-links{text-align:center;margin-top:16px;font-size:13px;color:#6b7280}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{background:#fff;border-radius:12px;padding:40px;width:100%;max-width:440px;box-shadow:0 4px 24px #0000001a;display:flex;flex-direction:column;gap:20px}.auth-card h1{font-size:22px;color:#1e3a5f}.password-policy{font-size:12px;color:#6b7280;background:#f8fafc;padding:10px 12px;border-radius:6px;line-height:1.8}.page-content{padding:32px;max-width:1200px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-header h1{font-size:22px;font-weight:700}.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;align-items:flex-end}.filters input{max-width:200px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.table-actions{display:flex;gap:6px}.pagination{display:flex;align-items:center;gap:12px;margin-top:16px;justify-content:flex-end;font-size:13px;color:#6b7280}.permissions-grid{display:flex;flex-direction:column;gap:8px}.permission-item{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer}.permission-item:hover{background:#f8fafc}.permission-item input[type=checkbox]{width:16px;height:16px;cursor:pointer;margin-top:2px;flex-shrink:0}.permission-item .perm-info .perm-name{font-weight:500}.permission-item .perm-info .perm-desc{font-size:12px;color:#6b7280}#app{min-height:100vh}
