*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--font-ui: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--color-primary: #2563eb;--color-primary-dark: #1d4ed8;--color-primary-soft: #eff6ff;--color-bg: #f1f5f9;--color-surface: #ffffff;--color-surface-alt: #f8fafc;--color-border: #e2e8f0;--color-border-focus: #93c5fd;--color-text: #0f172a;--color-text-muted: #64748b;--color-text-subtle: #94a3b8;--color-approved: #16a34a;--color-approved-bg: #f0fdf4;--color-rejected: #dc2626;--color-rejected-bg: #fef2f2;--color-pending: #d97706;--color-pending-bg: #fffbeb;--shadow-xs: 0 1px 2px rgba(15,23,42,.05);--shadow-sm: 0 1px 3px rgba(15,23,42,.08), 0 1px 2px rgba(15,23,42,.04);--shadow-md: 0 4px 6px rgba(15,23,42,.07), 0 2px 4px rgba(15,23,42,.04);--shadow-lg: 0 10px 15px rgba(15,23,42,.08), 0 4px 6px rgba(15,23,42,.04);--shadow-xl: 0 20px 25px rgba(15,23,42,.1), 0 8px 10px rgba(15,23,42,.04);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}html,body{width:100%;min-height:100%;font-family:var(--font-ui);font-size:15px;color:var(--color-text);background:var(--color-bg);line-height:1.6;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-family:var(--font-ui);font-weight:600;line-height:1.25;letter-spacing:-.02em;color:var(--color-text)}h1{font-size:2.25rem;font-weight:700}h2{font-size:1.5rem}h3{font-size:1.125rem;font-weight:600}p{color:var(--color-text-muted)}code,.mono{font-family:var(--font-mono);font-size:.875em}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:.875rem;font-weight:500;cursor:pointer;border:none;text-decoration:none;transition:all var(--transition-base);white-space:nowrap}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-ghost{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border)}.btn-ghost:hover{background:var(--color-surface);color:var(--color-text);border-color:var(--color-text-subtle)}.btn-danger{background:var(--color-rejected);color:#fff}.btn-danger:hover{background:#b91c1c;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-success{background:var(--color-approved);color:#fff}.btn-success:hover{background:#15803d;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:.8rem}.btn-lg{padding:var(--space-3) var(--space-6);font-size:1rem}.btn-icon{padding:var(--space-2)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-pending{color:var(--color-pending);background:var(--color-pending-bg)}.badge-approved{color:var(--color-approved);background:var(--color-approved-bg)}.badge-rejected{color:var(--color-rejected);background:var(--color-rejected-bg)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base),transform var(--transition-base)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:.8rem;font-weight:600;color:var(--color-text);letter-spacing:.04em;text-transform:uppercase}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:.9rem;color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1f}.form-textarea{resize:vertical;min-height:80px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0f172a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--space-6);animation:fadeIn var(--transition-slow) ease both}.modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease both}.modal-header{padding:var(--space-6) var(--space-6) var(--space-4);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.modal-body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-5)}.modal-footer{padding:var(--space-4) var(--space-6) var(--space-6);display:flex;gap:var(--space-3);justify-content:flex-end}.divider{height:1px;background:var(--color-border);margin:var(--space-4) 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.w-full{width:100%}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-muted{color:var(--color-text-muted)}.text-subtle{color:var(--color-text-subtle)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.animate-in{animation:fadeInUp .5s ease both}.animate-in:nth-child(1){animation-delay:.05s}.animate-in:nth-child(2){animation-delay:.1s}.animate-in:nth-child(3){animation-delay:.15s}.animate-in:nth-child(4){animation-delay:.2s}.animate-in:nth-child(5){animation-delay:.25s}.animate-in:nth-child(6){animation-delay:.3s}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-subtle)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
