@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";
:root{--color-primary:#1b5e20;--color-primary-light:#2e7d32;--color-primary-dark:#145218;--color-primary-subtle:#e8f5e9;--color-secondary:#b8860b;--color-secondary-light:#daa520;--color-secondary-subtle:#fff8e1;--color-neutral-900:#1a1a2e;--color-neutral-800:#2d2d42;--color-neutral-700:#4a4a5a;--color-neutral-400:#9e9e9e;--color-neutral-300:#bdbdbd;--color-neutral-200:#e0e0e0;--color-neutral-100:#f5f5f5;--color-white:#fff;--color-error:#c62828;--color-error-light:#ffebee;--color-warning:#f57f17;--color-warning-light:#fff8e1;--color-success:#2e7d32;--color-success-light:#e8f5e9;--color-info:#1565c0;--color-info-light:#e3f2fd;--font-heading:"Playfair Display",Georgia,"Times New Roman",serif;--font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","Courier New",monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--text-4xl:2.5rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:99px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001f;--shadow-lg:0 8px 24px #00000029;--shadow-xl:0 12px 40px #0003;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--max-width:1200px;--max-width-narrow:480px;--max-width-form:640px;--navbar-height:72px;--sidebar-width:260px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-neutral-900);background-color:var(--color-neutral-100);min-height:100vh;font-weight:400;line-height:1.6}h1,h2,h3{font-family:var(--font-heading);color:var(--color-neutral-900);font-weight:700;line-height:1.2}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-family:var(--font-body);font-size:var(--text-xl);font-weight:600}p{margin-bottom:var(--space-4);color:var(--color-neutral-700)}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-light)}img{max-width:100%;height:auto;display:block}.container{max-width:var(--max-width);padding:0 var(--space-6);margin:0 auto}.text-mono{font-family:var(--font-mono);font-size:var(--text-sm)}.text-center{text-align:center}.text-right{text-align:right}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3)var(--space-6);min-height:48px;font-family:var(--font-body);font-size:var(--text-base);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;border:2px solid #0000;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-white);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background-color:var(--color-white);color:var(--color-primary);border-color:var(--color-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--color-primary-subtle)}.btn-danger{background-color:var(--color-error);color:var(--color-white)}.btn-danger:hover:not(:disabled){box-shadow:var(--shadow-md);background-color:#b71c1c}.btn-ghost{color:var(--color-neutral-700);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--color-neutral-100)}.btn-sm{min-height:36px;padding:var(--space-2)var(--space-4);font-size:var(--text-sm)}.btn-lg{min-height:56px;padding:var(--space-4)var(--space-8);font-size:var(--text-lg)}.card{background:var(--color-white);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6);transition:box-shadow var(--transition-base)}.card-clickable:hover{box-shadow:var(--shadow-md)}.card-accent{border-top:3px solid var(--color-primary)}.card-gold{border-top:3px solid var(--color-secondary)}.badge{padding:var(--space-1)var(--space-3);font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;border-radius:var(--radius-pill);white-space:nowrap;align-items:center;font-weight:600;display:inline-flex}.badge-pending-payment{background-color:var(--color-warning-light);color:var(--color-warning)}.badge-pending-review{background-color:var(--color-info-light);color:var(--color-info);animation:2s ease-in-out infinite subtlePulse}.badge-approved{background-color:var(--color-success-light);color:var(--color-success)}.badge-rejected{background-color:var(--color-error-light);color:var(--color-error)}.form-group{margin-bottom:var(--space-5)}.form-label{margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--color-neutral-700);font-weight:500;display:block}.form-label-required:after{content:" *";color:var(--color-error)}.form-input,.form-select,.form-textarea{width:100%;height:48px;padding:var(--space-3)var(--space-4);font-family:var(--font-body);font-size:var(--text-base);color:var(--color-neutral-900);background-color:var(--color-neutral-100);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none}.form-textarea{resize:vertical;height:auto;min-height:100px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);background-color:var(--color-white);box-shadow:0 0 0 3px #1b5e2026}.form-input::placeholder{color:var(--color-neutral-400)}.form-error{align-items:center;gap:var(--space-1);margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-error);display:flex}.form-input-error{border-color:var(--color-error)}.form-input-error:focus{box-shadow:0 0 0 3px #c6282826}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes subtlePulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes drawIn{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn var(--transition-slow)ease forwards}.animate-slide-left{animation:slideInLeft var(--transition-slow)ease forwards}.animate-slide-right{animation:slideInRight var(--transition-slow)ease forwards}.spinner{border:3px solid var(--color-primary-subtle);border-top-color:var(--color-primary);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin;display:inline-block}.spinner-lg{border-width:4px;width:40px;height:40px}.table-wrapper{border-radius:var(--radius-lg);border:1px solid var(--color-neutral-200);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table th{padding:var(--space-3)var(--space-4);text-align:left;color:var(--color-neutral-700);background-color:var(--color-neutral-100);border-bottom:2px solid var(--color-neutral-200);white-space:nowrap;font-weight:600}.table td{padding:var(--space-3)var(--space-4);border-bottom:1px solid var(--color-neutral-200);color:var(--color-neutral-900)}.table tr:last-child td{border-bottom:none}.table tr:hover td{background-color:var(--color-neutral-100)}@media (max-width:1024px){h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}}@media (max-width:640px){:root{--navbar-height:64px}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}.container{padding:0 var(--space-4)}.btn:not(.btn-sm):not(.btn-ghost){width:100%}.table-wrapper{font-size:var(--text-xs)}}
