:root{--primary:#c53030;--primary-dark:#9b2c2c;--primary-darker:#63171b;--primary-light:#fee2e2;--primary-lighter:#fff5f5;--bg:#fff;--bg-secondary:#f7fafc;--card:#fff;--card-secondary:#f7fafc;--text:#1a202c;--text-secondary:#4a5568;--text-tertiary:#718096;--border:#edf2f7;--border-light:#f7fafc;--badge-green:#38a169;--badge-green-light:#d1fae5;--badge-green-text:#065f46;--badge-amber:#d69e2e;--badge-amber-light:#fef3c7;--badge-amber-text:#92400e;--badge-orange:#ea580c;--badge-orange-light:#fef3c7;--badge-orange-text:#7b341e;--badge-red:#c53030;--badge-red-light:#fee2e2;--badge-red-text:#991b1b;--badge-critical:#1a202c;--badge-critical-light:#1f2937;--badge-critical-text:#f9fafb;--success:#38a169;--warning:#d69e2e;--error:#c53030;--info:#3182ce;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 4px 6px -1px #00000012;--shadow-lg:0 10px 15px -3px #00000014;--shadow-xl:0 20px 25px -5px #0000001a;--transition:all .3s ease;--transition-fast:all .15s ease;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{color:var(--text);margin-bottom:.5rem;font-weight:600;line-height:1.3}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.1rem}p{color:var(--text);margin-bottom:1rem}a{color:var(--primary);transition:var(--transition-fast);text-decoration:none}a:hover{color:var(--primary-dark);text-decoration:underline}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 1.5rem}.app-layout{min-height:100vh;display:flex}.app-sidebar{background-color:var(--bg-secondary);border-right:1px solid var(--border);z-index:100;width:260px;height:100vh;position:fixed;overflow-y:auto}.app-main{background-color:var(--bg);flex-direction:column;flex:1;margin-left:260px;display:flex}.app-content{flex:1;padding:2rem 2.5rem}.sidebar-logo{border-bottom:1px solid var(--border);color:var(--primary);align-items:center;gap:.5rem;padding:1.5rem;font-size:1.5rem;font-weight:700;display:flex}.sidebar-nav{padding:1rem 0;list-style:none}.sidebar-nav-item{margin:.25rem .75rem}.sidebar-nav-link{color:var(--text-secondary);transition:var(--transition-fast);border-radius:.5rem;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.95rem;display:flex}.sidebar-nav-link:hover{background-color:var(--bg);color:var(--text)}.sidebar-nav-link.active{background-color:var(--primary-light);color:var(--primary);font-weight:600}.sidebar-nav-icon{width:1.25rem;height:1.25rem}.sidebar-user{border-top:1px solid var(--border);background-color:var(--card-secondary);width:100%;padding:1rem 1.5rem;position:absolute;bottom:0}.sidebar-user-info{margin-bottom:.75rem}.sidebar-user-name{color:var(--text);word-break:break-all;font-size:.9rem;font-weight:600}.sidebar-user-role{color:var(--text-tertiary);font-size:.8rem}.btn{cursor:pointer;transition:var(--transition-fast);white-space:nowrap;border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;text-decoration:none;display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-dark)}.btn-secondary{background-color:var(--bg-secondary);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background-color:var(--border);border-color:var(--text-secondary)}.btn-outline{color:var(--primary);border:1px solid var(--primary);background-color:#0000}.btn-outline:hover{background-color:var(--primary-light)}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.btn-lg{padding:1rem 2rem;font-size:1.125rem}.btn-block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.form-group{margin-bottom:1.5rem}.form-label{color:var(--text);margin-bottom:.5rem;font-size:.95rem;font-weight:500;display:block}.form-label.required:after{content:" *";color:var(--error)}.form-input,.form-textarea,.form-select{border:1px solid var(--border);background-color:var(--card);width:100%;color:var(--text);transition:var(--transition-fast);border-radius:.5rem;padding:.75rem 1rem;font-family:inherit;font-size:1rem}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #c530301a}.form-input:disabled,.form-textarea:disabled,.form-select:disabled{background-color:var(--bg-secondary);color:var(--text-secondary);cursor:not-allowed}.form-input::placeholder{color:var(--text-tertiary)}.form-textarea{resize:vertical;min-height:120px}.form-error{color:var(--error);margin-top:.25rem;font-size:.875rem;display:block}.form-hint{color:var(--text-tertiary);margin-top:.25rem;font-size:.875rem;display:block}.card{background-color:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:var(--transition-fast);border-radius:.75rem;padding:1.5rem}.card:hover{box-shadow:var(--shadow)}.card-header{border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:1rem}.card-title{color:var(--text);font-size:1.25rem;font-weight:600}.card-subtitle{color:var(--text-secondary);margin-top:.25rem;font-size:.9rem}.card-body{flex:1}.card-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:.75rem;margin-top:1rem;padding-top:1rem;display:flex}.badge{border-radius:9999px;align-items:center;gap:.375rem;width:fit-content;padding:.375rem .875rem;font-size:.85rem;font-weight:500;display:inline-flex}.badge-green{background-color:var(--badge-green-light);color:#047857}.badge-yellow{background-color:var(--badge-yellow-light);color:#92400e}.badge-red{background-color:var(--badge-red-light);color:#991b1b}.badge-critical{background-color:var(--badge-critical-light);color:var(--badge-critical)}.badge-icon{font-size:1rem;line-height:1}.status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:.375rem;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.status-approved{background-color:var(--badge-green-light);color:#047857}.status-pending{background-color:var(--badge-yellow-light);color:#92400e}.status-rejected{background-color:var(--badge-red-light);color:#991b1b}.table{border-collapse:collapse;background-color:var(--card);border:1px solid var(--border);border-radius:.75rem;width:100%;overflow:hidden}.table thead{background-color:var(--bg-secondary);border-bottom:2px solid var(--border)}.table th{text-align:left;color:var(--text);padding:1rem;font-size:.9rem;font-weight:600}.table td{border-bottom:1px solid var(--border);color:var(--text);padding:1rem}.table tbody tr:hover{background-color:var(--bg-secondary)}.table tbody tr:last-child td{border-bottom:none}.search-bar{align-items:center;display:flex;position:relative}.search-bar input{width:100%;padding-left:2.75rem}.search-bar-icon{width:1.25rem;height:1.25rem;color:var(--text-secondary);pointer-events:none;position:absolute;left:1rem}.modal-overlay{z-index:200;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background-color:var(--card);box-shadow:var(--shadow-xl);border-radius:.75rem;width:90%;max-width:500px;max-height:90vh;animation:.3s modalSlideIn;overflow-y:auto}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-title{color:var(--text);font-size:1.25rem;font-weight:600}.modal-close{cursor:pointer;color:var(--text-secondary);transition:var(--transition-fast);background:0 0;border:none;font-size:1.5rem}.modal-close:hover{color:var(--text)}.modal-body{padding:1.5rem}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:.75rem;padding:1.5rem;display:flex}.loading-spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:2rem;height:2rem;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.alert{border-left:4px solid;border-radius:.5rem;align-items:flex-start;gap:1rem;margin-bottom:1rem;padding:1rem 1.5rem;display:flex}.alert-success{border-left-color:var(--success);color:#065f46;background-color:#d1fae5}.alert-warning{border-left-color:var(--warning);color:#78350f;background-color:#fef3c7}.alert-error{border-left-color:var(--error);color:#7f1d1d;background-color:#fee2e2}.alert-info{border-left-color:var(--info);color:#0c2d6b;background-color:#dbeafe}.alert-icon{flex-shrink:0;width:1.25rem;height:1.25rem;margin-top:.125rem}.alert-content{flex:1}.alert-title{margin-bottom:.25rem;font-weight:600}.grid{gap:1.5rem;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}@media (width<=1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.app-sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;height:auto;position:static}.app-main{margin-left:0}.app-content{padding:1.5rem 1rem}.sidebar-nav{-webkit-overflow-scrolling:touch;padding:.75rem 0;display:flex;overflow-x:auto}.sidebar-nav-item{flex-shrink:0;margin:0 .5rem}.sidebar-user{border-top:1px solid var(--border);padding:1rem;display:none;position:static}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.card{padding:1rem}.modal{width:95%}h1{font-size:1.5rem}h2{font-size:1.25rem}}@media (width<=480px){.container{padding:0 1rem}.card{padding:.75rem}.table th,.table td{padding:.75rem .5rem;font-size:.875rem}.btn{padding:.625rem 1rem;font-size:.875rem}.form-input,.form-textarea,.form-select{padding:.625rem .75rem;font-size:.95rem}}
