*{margin:0;padding:0;box-sizing:border-box}:root{--indap-green: #00A651;--indap-green-dark: #008540;--indap-green-light: #4CAF50;--gobierno-blue: #0066CC;--gobierno-blue-dark: #004C99;--color-success: #4CAF50;--color-error: #F44336;--color-warning: #FF9800;--color-info: #2196F3;--bg-primary: #FFFFFF;--bg-secondary: #F5F5F5;--bg-light: #FAFAFA;--text-primary: #212121;--text-secondary: #757575;--text-light: #9E9E9E;--border-color: #E0E0E0;--shadow-sm: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24);--shadow-md: 0 3px 6px rgba(0,0,0,.16), 0 3px 6px rgba(0,0,0,.23);--shadow-lg: 0 10px 20px rgba(0,0,0,.19), 0 6px 6px rgba(0,0,0,.23);--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--spacing-2xl: 4rem;--spacing-3xl: 5rem;--font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--transition-speed: .3s}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--text-primary);background-color:var(--bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*:focus-visible{outline:3px solid var(--gobierno-blue);outline-offset:2px}.skip-link{position:absolute;top:-40px;left:0;background:var(--gobierno-blue);color:#fff;padding:8px;text-decoration:none;z-index:100}.skip-link:focus{top:0}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-sm)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mt-1{margin-top:var(--spacing-xs)}.mt-2{margin-top:var(--spacing-sm)}.mt-3{margin-top:var(--spacing-md)}.mt-4{margin-top:var(--spacing-lg)}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.p-1{padding:var(--spacing-xs)}.p-2{padding:var(--spacing-sm)}.p-3{padding:var(--spacing-md)}.p-4{padding:var(--spacing-lg)}.btn{display:inline-block;padding:12px 24px;font-size:var(--font-size-base);font-weight:500;text-align:center;text-decoration:none;border:none;border-radius:4px;cursor:pointer;transition:all var(--transition-speed) ease;min-height:44px}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary{background-color:var(--indap-green);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--indap-green-dark)}input,select,textarea{font-family:var(--font-family);font-size:var(--font-size-base)}.form-control{width:100%;padding:12px 16px;font-size:var(--font-size-base);line-height:1.5;color:var(--text-primary);background-color:var(--bg-primary);border:2px solid var(--border-color);border-radius:4px;transition:border-color var(--transition-speed) ease;min-height:44px}.form-control:focus{border-color:var(--indap-green);outline:none}.form-control:disabled{background-color:var(--bg-secondary);cursor:not-allowed}.form-label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;color:var(--text-primary)}.alert{padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-sm);border:1px solid transparent;border-radius:4px}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-error{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-info{color:#004085;background-color:#cce5ff;border-color:#b8daff}.spinner{border:3px solid var(--bg-secondary);border-top:3px solid var(--indap-green);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:var(--spacing-md) auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (min-width: 768px){.container{padding:0 var(--spacing-md)}body{font-size:var(--font-size-lg)}}@media (min-width: 1024px){.container{padding:0 var(--spacing-lg)}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: high){:root{--border-color: #000000;--text-primary: #000000}.btn{border:2px solid currentColor}}@media print{body{background-color:#fff}.btn,button{display:none}}
